/* Ċ Ġ* ĠPoly hed ral Bot Ġ- ĠA ĠDiscord Ġbot Ġfor Ġthe ĠPoly hed ral ĠDevelopment Ġdiscord Ġserver Ċ Ġ* ĠCopyright Ġ( c ) Ġ 2 0 2 1 - 2 0 2 1 Ġsol on ov am ax Ġ< sol on ov am ax @ 1 2 oc lock point . com > Ċ Ġ* Ċ Ġ* ĠThe Ġfile ĠCloud Injection Service . kt Ġis Ġpart Ġof ĠPoly hed ral Bot Ċ Ġ* ĠLast Ġmodified Ġon Ġ 3 1 - 1 2 - 2 0 2 1 Ġ 0 1 : 2 9 Ġp . m . Ċ Ġ* Ċ Ġ* ĠMIT ĠLicense Ċ Ġ* Ċ Ġ* Ġ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 . Ċ Ġ* Ċ Ġ* ĠPOL Y H ED R AL BOT Ġ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 Ġca . so lost ud ios . poly bot . cloud Ċ Ċ import Ġca . so lost ud ios . poly bot . Poly Bot Ċ import Ġca . so lost ud ios . poly bot . cloud . commands . annotations . Author Ċ import Ġca . so lost ud ios . poly bot . cloud . commands . annotations . Current Channel Ċ import Ġca . so lost ud ios . poly bot . cloud . commands . annotations . Current Guild Ċ import Ġca . so lost ud ios . poly bot . cloud . commands . annotations . Source Message Ċ import Ġca . so lost ud ios . poly bot . entities . Poly Guild Ċ import Ġca . so lost ud ios . poly bot . entities . Poly Member Ċ import Ġca . so lost ud ios . poly bot . entities . Poly Message Ċ import Ġca . so lost ud ios . poly bot . entities . Poly Message Channel Ċ import Ġca . so lost ud ios . poly bot . entities . Poly Text Channel Ċ import Ġca . so lost ud ios . poly bot . entities . Poly User Ċ import Ġca . so lost ud ios . poly bot . util . component 1 Ċ import Ġca . so lost ud ios . poly bot . util . component 2 Ċ import Ġca . so lost ud ios . poly bot . util . component 3 Ċ import Ġca . so lost ud ios . poly bot . util . j da . poly Ċ import Ġcloud . command framework . annotations . Annotation Accessor Ċ import Ġcloud . command framework . annotations . injection . Injection Service Ċ import Ġcloud . command framework . context . Command Context Ċ import Ġcloud . command framework . types . tuples . Trip let Ċ import Ġnet . dv 8 tion . j da . api . entities . Message Ċ Ċ class ĠCloud Injection Service < C >( val Ġbot : ĠPoly Bot ) Ġ: ĠInjection Service < C > Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġhandle ( trip let : ĠTrip let < Command Context < C >, ĠClass <* >, ĠAnnotation Accessor >): ĠAny ? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġ( context , Ġclazz , Ġannotation Accessor ) Ġ= Ġtrip let ĊĠĠĠĠĠĠĠĠĊĠĠĠĠĠĠĠ Ġfor Ġ( annotation Ġin Ġannotation Accessor . annotations ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( annotation . annotation Class ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAuthor :: class ĠĠĠĠĠĠĠĠ Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( clazz . kotlin ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPoly Member :: class Ġ-> Ġcontext . get < Message >(" Message "). member !!. poly ( bot ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPoly User :: class ĠĠ Ġ-> Ġcontext . get < Message >(" Message "). author . poly ( bot ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse ĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ-> Ġerror (" Argument Ġannotated Ġwith Ġ@ Author Ġbut Ġisn 't ĠPoly Member Ġor ĠPoly User ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCurrent Channel :: class Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( clazz . kotlin ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPoly Text Channel :: class ĠĠĠ Ġ-> Ġcontext . get < Message >(" Message "). text Channel . poly ( bot ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPoly Message Channel :: class Ġ-> Ġcontext . get < Message >(" Message "). channel . poly ( bot ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ-> Ġerror (" Argument Ġannotated Ġwith Ġ@ Current Channel Ġbut Ġisn 't ĠPoly Text Channel Ġor ĠPoly Member Channel ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCurrent Guild :: class ĠĠ Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrequire ( clazz . kotlin Ġ== ĠPoly Guild :: class ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Argument Ġannotated Ġwith Ġ@ Current Guild Ġbut Ġisn 't ĠPoly Guild " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġcontext . get < Message >(" Message "). guild . poly ( bot ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSource Message :: class Ġ Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrequire ( clazz . kotlin Ġ== ĠPoly Message :: class ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Argument Ġis Ġannotated Ġwith Ġ@ Source Message Ġbut Ġisn 't ĠPoly Message " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġcontext . get < Message >(" Message "). poly ( bot ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĊĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠ Ġ} Ċ }