package Ġcom . fortun et eller . d client Ċ Ċ import Ġcom . fortun et eller . d client . utils . load Env Ċ import Ġcom . j ag ro sh . j da utilities . command . Command Ċ import Ġio . github . class graph . Class Graph Ċ import Ġnet . dv 8 tion . j da . api . hooks . Listener Adapter Ċ import Ġjava . time . Instant Ċ import Ġjava . util .* Ċ Ċ /* Ċ Ġ* ĠCopyright Ġ 2 0 1 9 - 2 0 2 0 Ġr xc mr Ġ< ly the 1 1 0 7 @ gmail . com > Ġor Ġ< ly the 1 1 0 7 @ ic loud . com >. Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ* Ċ Ġ* Ġd client , Ġa ĠJ DA ĠDiscord Ġbot Ċ Ġ* ĠĠĠĠĠ ĠCopyright Ġ( C ) Ġ 2 0 1 9 - 2 0 2 0 Ġr xc mr Ġ< ly the 1 1 0 7 @ gmail . com > Ġor Ġ< ly the 1 1 0 7 @ ic loud . com > Ċ Ġ* Ċ Ġ* ĠThis Ġprogram Ġis Ġfree Ġsoftware : Ġyou Ġcan Ġredistribute Ġit Ġand / or Ġmodify Ċ Ġ* Ġit Ġunder Ġthe Ġterms Ġof Ġthe ĠGNU ĠAffero ĠGeneral ĠPublic ĠLicense Ġas Ġpublished Ċ Ġ* Ġby Ġthe ĠFree ĠSoftware ĠFoundation , Ġeither Ġversion Ġ 3 Ġof Ġthe ĠLicense , Ġor Ċ Ġ* Ġ( at Ġyour Ġoption ) Ġany Ġlater Ġversion . Ċ Ġ* Ċ Ġ* ĠThis Ġprogram Ġis Ġdistributed Ġin Ġthe Ġhope Ġthat Ġit Ġwill Ġbe Ġuseful , Ċ Ġ* Ġbut ĠWITHOUT ĠANY ĠWARRANTY ; Ġwithout Ġeven Ġthe Ġimplied Ġwarranty Ġof Ċ Ġ* ĠMERCHANTABILITY Ġor ĠFITNESS ĠFOR ĠA ĠPARTICULAR ĠPURPOSE . Ġ ĠSee Ġthe Ċ Ġ* ĠGNU ĠAffero ĠGeneral ĠPublic ĠLicense Ġfor Ġmore Ġdetails . Ċ Ġ* Ċ Ġ* ĠYou Ġshould Ġhave Ġreceived Ġa Ġcopy Ġof Ġthe ĠGNU ĠAffero ĠGeneral ĠPublic ĠLicense Ċ Ġ* Ġalong Ġwith Ġthis Ġprogram . Ġ ĠIf Ġnot , Ġsee Ġ< http :// www . gnu . org / licenses />. Ċ Ġ*/ Ċ Ċ /** Ċ Ġ* Ġ@ author Ġr xc mr Ġ< ly the 1 1 0 7 @ gmail . com > Ġor Ġ< ly the 1 1 0 7 @ ic loud . com > Ċ Ġ*/ Ċ class ĠPi lot ( private Ġval Ġtoken : ĠString , Ġprivate Ġval Ġprefix : ĠString , Ġprivate Ġval Ġsh ards : ĠInt ) Ġ: ĠRunnable Ġ{ ĊĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠ Ġval Ġinit Time : ĠInstant Ġ= ĠInstant . now () ĊĠ Ġ} ĊĊĠ Ġprivate Ġval Ġcommands Ġ= ĠLinkedList < Command >(). apply Ġ{ ĊĠĠĠ Ġfor Ġ( c Ġin ĠClass Graph () ĊĠĠĠĠĠ Ġ. blacklist Packages ( ĊĠĠĠĠĠĠĠ Ġ" com . fortun et eller . d client . commands . utils ", ĊĠĠĠĠĠĠĠ Ġ" com . fortun et eller . d client . commands . gad gets . utils ", ĊĠĠĠĠĠĠĠ Ġ" com . fortun et eller . d client . commands . music . utils ", ĊĠĠĠĠĠĠĠ Ġ" com . fortun et eller . d client . commands . music . children ", ĊĠĠĠĠĠĠĠ Ġ" com . fortun et eller . d client . commands . statistics . children ", ĊĠĠĠĠĠĠĠ Ġ" com . fortun et eller . d client . commands . owner . children ") ĊĠĠĠĠĠ Ġ. whitelist Packages (" com . fortun et eller . d client . commands .* ") ĊĠĠĠĠĠ Ġ. scan () ĊĠĠĠĠĠ Ġ. getSub classes ( Command :: class . qualified Name ) ĊĠĠĠĠĠ Ġ. load Classes ( Command :: class . java )) Ġadd ( c . getDeclared Constructor (). newInstance ()) ĊĠ Ġ} ĊĊĠ Ġprivate Ġval Ġlisteners Ġ= ĠLinkedList < Any >(). apply Ġ{ ĊĠĠĠ Ġfor Ġ( l Ġin ĠClass Graph () ĊĠĠĠĠĠ Ġ. whitelist Packages Non Recursive (" com . fortun et eller . d client . listeners ") ĊĠĠĠĠĠ Ġ. scan () ĊĠĠĠĠĠ Ġ. getSub classes ( Listener Adapter :: class . qualified Name ) ĊĠĠĠĠĠ Ġ. load Classes ( Listener Adapter :: class . java )) Ġadd ( l . getDeclared Constructor (). newInstance ()) ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġrun () Ġ= ĠContr apt ion ( token , Ġprefix , Ġsh ards , Ġcommands , Ġlisteners ). launch () Ċ } Ċ Ċ fun Ġmain () Ġ= ĠPi lot ( load Env (" TOKEN "), Ġ" pl .", Ġ 1 ). run ()