/* Ċ Ġ* ĠMIT ĠLicense Ċ Ġ* Ċ Ġ* ĠCopyright Ġ( c ) Ġ 2 0 1 8 ĠO li via ĠZ oe Ċ Ġ* Ċ Ġ* ĠPermission Ġis Ġhereby Ġgranted , Ġfree Ġof Ġcharge , Ġto Ġany Ġperson Ġobtaining Ġa Ġcopy Ċ Ġ* Ġof Ġthis Ġsoftware Ġand Ġassociated Ġdocumentation Ġfiles Ġ( the Ġ" Software "), Ġto Ġdeal Ċ Ġ* Ġin Ġthe ĠSoftware Ġwithout Ġrestriction , Ġincluding Ġwithout Ġlimitation Ġthe Ġrights Ċ Ġ* Ġto Ġuse , Ġcopy , Ġmodify , Ġmerge , Ġpublish , Ġdistribute , Ġsublicense , Ġand / or Ġsell Ċ Ġ* Ġcopies Ġof Ġthe ĠSoftware , Ġand Ġto Ġpermit Ġpersons Ġto Ġwhom Ġthe ĠSoftware Ġis Ċ Ġ* Ġfurnished Ġto Ġdo Ġso , Ġsubject Ġto Ġthe Ġfollowing Ġconditions : Ċ Ġ* Ċ Ġ* ĠThe Ġabove Ġcopyright Ġnotice Ġand Ġthis Ġpermission Ġnotice Ġshall Ġbe Ġincluded Ġin Ġall Ċ Ġ* Ġcopies Ġor Ġsubstantial Ġportions Ġof Ġthe ĠSoftware . Ċ Ġ* Ċ Ġ* ĠTHE ĠSOFTWARE ĠIS ĠPROVIDED Ġ" AS ĠIS ", ĠWITHOUT ĠWARRANTY ĠOF ĠANY ĠKIND , ĠEXPRESS ĠOR Ċ Ġ* ĠIMPLIED , ĠINCLUDING ĠBUT ĠNOT ĠLIMITED ĠTO ĠTHE ĠWARRANTIES ĠOF ĠMERCHANTABILITY , Ċ Ġ* ĠFITNESS ĠFOR ĠA ĠPARTICULAR ĠPURPOSE ĠAND ĠNONINFRINGEMENT . ĠIN ĠNO ĠEVENT ĠSHALL ĠTHE Ċ Ġ* ĠAUTHORS ĠOR ĠCOPYRIGHT ĠHOLDERS ĠBE ĠLIABLE ĠFOR ĠANY ĠCLAIM , ĠDAMAGES ĠOR ĠOTHER Ċ Ġ* ĠLIABILITY , ĠWHETHER ĠIN ĠAN ĠACTION ĠOF ĠCONTRACT , ĠTORT ĠOR ĠOTHERWISE , ĠARISING ĠFROM , Ċ Ġ* ĠOUT ĠOF ĠOR ĠIN ĠCONNECTION ĠWITH ĠTHE ĠSOFTWARE ĠOR ĠTHE ĠUSE ĠOR ĠOTHER ĠDEALINGS ĠIN ĠTHE Ċ Ġ* ĠSOFTWARE . Ċ Ġ* Ċ Ġ*/ Ċ Ċ package Ġio . github . lun ar watcher . java . ha iley bot . bot meta Ċ Ċ import Ġio . github . lun ar watcher . java . ha iley bot . Ha iley Bot Ċ import Ġio . github . lun ar watcher . java . ha iley bot . commands . Command Ċ import Ġio . github . lun ar watcher . java . ha iley bot . data . Database Ċ import Ġio . github . lun ar watcher . java . ha iley bot . utils . can User Run Bot Admin Command Ċ import Ġnet . dv 8 tion . j da . core . entities . Guild Ċ import Ġnet . dv 8 tion . j da . core . entities . Message Ċ import Ġorg . jetbrains . annotations . NotNull Ċ import Ġjava . util .* ĊĊ Ċ class ĠBlack list Storage ( var Ġguild s : ĠArrayList < Long >) Ġ{ ĊĠĠĠ Ġ@ Suppress (" UN CHECK ED _ CAST ") ĊĠĠĠ Ġconstructor ( database : ĠDatabase ) Ġ: Ġthis ( database . get ( KEY ) Ġas ? ĠArrayList < Long > Ġ?: Ġarray ListOf < Long >()) ĊĊĠĠĠ Ġfun Ġis Black listed ( guild : ĠGuild ) Ġ= Ġis Black listed ( guild . id Long ) ĊĠĠĠ Ġfun Ġis Black listed ( guild : ĠLong ) Ġ= Ġguild s . contains ( guild ) ĊĊĠĠĠ Ġfun Ġblacklist ( guild : ĠGuild ) Ġ= Ġblacklist ( guild . id Long ) ĊĠĠĠ Ġfun Ġblacklist ( guild : ĠLong ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(! guild s . contains ( guild )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġguild s . add ( guild ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġun blacklist ( guild : ĠGuild ) Ġ= Ġun blacklist ( guild . id Long ) ĊĠĠĠ Ġfun Ġun blacklist ( guild : ĠLong ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( guild s . contains ( guild )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġguild s . remove ( guild ); ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġsave ( database : ĠDatabase ) Ġ{ ĊĠĠĠĠĠĠĠ Ġdatabase . put ( KEY , Ġguild s ); ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠKEY Ġ= Ġ" black listed - guild s "; ĊĠĠĠ Ġ} Ċ Ċ } Ċ Ċ class ĠList Guild s Command Ġ: ĠCommand Ġ{ ĊĠĠĠ Ġoverride Ġfun ĠgetName (): ĠString Ġ= Ġ" list Guild s " ĊĠĠĠ Ġoverride Ġfun Ġget Help (): ĠString ? Ġ= Ġ" S ends Ġa ĠDM Ġcontaining Ġjoined Ġguild s . ĠBot Ġadmins Ġonly !" ĊĠĠĠ Ġoverride Ġfun ĠgetDescription (): ĠString ? Ġ= Ġhelp ĊĠĠĠ Ġoverride Ġfun Ġon Message ( bot : ĠHa iley Bot , Ġmessage : Ġ@ NotNull ĠMessage , Ġraw Message : ĠString , Ġcommand Name : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(! message . can User Run Bot Admin Command ( bot )) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġmessage . channel . sendMessage (" You Ġcan 't Ġue Ġthis Ġcommand . "). queue () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ; ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġauthor Ġ= Ġmessage . author ĊĠĠĠĠĠĠĠ Ġauthor . open Private Channel (). queue Ġ{ Ġd ms Ġ-> ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġres Ġ= Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġguild s Ġ= Ġmessage . j da . guild s ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 Ġuntil Ġguild s . size ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġguild Ġ= Ġguild s [ i ] ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġappend ix Ġ= Ġ"${ guild . name } Ġ( UID Ġ${ guild . id Long })" Ġ+ Ġif Ġ( i Ġ== Ġguild s . size Ġ- Ġ 1 ) Ġ"" Ġelse Ġ", Ġ" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġres Ġ+= Ġif Ġ( res . length Ġ+ Ġappend ix . length Ġ>= Ġ 2 0 0 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġres Ġ= Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġd ms . sendMessage ( res ). queue () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġappend ix ; ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġappend ix ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( res Ġ!= Ġ"") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġd ms . sendMessage ( res ). queue (); ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmessage . channel . sendMessage (" You Ġhave Ġmail ! "). queue () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Aliases (): ĠMutable List < String >? Ġ= Ġnull Ċ Ċ } Ċ Ċ class ĠBlack list Guild Command Ġ: ĠCommand Ġ{ ĊĠĠĠ Ġoverride Ġfun ĠgetName (): ĠString Ġ= Ġ" blacklist Guild " ĊĠĠĠ Ġoverride Ġfun Ġget Aliases (): ĠMutable List < String >? Ġ= Ġnull ĊĊĠĠĠ Ġoverride Ġfun Ġget Help (): ĠString ? Ġ= Ġ" Black lists Ġa Ġguild Ġby ĠID ." ĊĠĠĠ Ġoverride Ġfun ĠgetDescription (): ĠString ? Ġ= Ġhelp ĊĠĠĠ Ġoverride Ġfun Ġon Message ( bot : ĠHa iley Bot , Ġmessage : Ġ@ NotNull ĠMessage , Ġraw Message : ĠString , Ġcommand Name : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(! message . can User Run Bot Admin Command ( bot )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmessage . channel . sendMessage (" You Ġcan 't Ġdo Ġthat . "). queue () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ; ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġid Ġ= Ġraw Message . to Long OrNull () ĊĠĠĠĠĠĠĠ Ġif Ġ( id Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmessage . channel . sendMessage (" Which Ġguild ? "). queue () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ; ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġguild Ġ= Ġmessage . j da . get Guild ById ( id ); ĊĠĠĠĠĠĠĠ Ġif Ġ( guild Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmessage . channel . sendMessage (" Failed Ġto Ġfind Ġguild Ġwith Ġthe ĠID Ġ$ id "). queue () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ; ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġguild . leave () ĊĊĠĠĠĠĠĠĠ Ġif Ġ( message . guild . id Long Ġ!= Ġid ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmessage . channel . sendMessage (" Successfully Ġblack listed Ġthe Ġguild . "). queue () ĊĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġbot . blacklist Storage . blacklist ( guild ) ĊĠĠĠ Ġ} Ċ Ċ } Ċ Ċ class ĠU nb l ack list Guild Command Ġ: ĠCommand Ġ{ ĊĠĠĠ Ġoverride Ġfun ĠgetName (): ĠString Ġ= Ġ" un blacklist Guild " ĊĠĠĠ Ġoverride Ġfun Ġget Aliases (): ĠMutable List < String >? Ġ= Ġnull ĊĊĠĠĠ Ġoverride Ġfun Ġget Help (): ĠString ? Ġ= Ġ" Black lists Ġa Ġguild Ġby ĠID ." ĊĠĠĠ Ġoverride Ġfun ĠgetDescription (): ĠString ? Ġ= Ġhelp ĊĠĠĠ Ġoverride Ġfun Ġon Message ( bot : ĠHa iley Bot , Ġmessage : Ġ@ NotNull ĠMessage , Ġraw Message : ĠString , Ġcommand Name : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(! message . can User Run Bot Admin Command ( bot )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmessage . channel . sendMessage (" You Ġcan 't Ġdo Ġthat . "). queue () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ; ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġid Ġ= Ġraw Message . to Long OrNull () ĊĠĠĠĠĠĠĠ Ġif Ġ( id Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmessage . channel . sendMessage (" Which Ġguild ? "). queue () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ; ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġguild Ġ= Ġmessage . j da . get Guild ById ( id ); ĊĠĠĠĠĠĠĠ Ġif Ġ( guild Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmessage . channel . sendMessage (" Failed Ġto Ġfind Ġguild Ġwith Ġthe ĠID Ġ$ id "). queue () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ; ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġbot . blacklist Storage . un blacklist ( guild ) ĊĊĠĠĠĠĠĠĠ Ġmessage . channel . sendMessage (" Removed Ġthe Ġguild Ġ$ id Ġfrom Ġthe Ġblacklist "). queue () ĊĊĠĠĠ Ġ} Ċ Ċ }