/* Ċ Ġ* ĠCopyright Ġ 2 0 2 0 ĠS pi kot Ġproject Ġauthors Ċ Ġ* Ċ Ġ* Ġ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 . Ċ Ġ*/ Ċ Ċ package Ġkr . he ar tp attern . sp ik ot . event Ċ Ċ import Ġorg . bukkit . event . Event Ċ import Ġorg . bukkit . event . Handler List Ċ import Ġorg . bukkit . plugin . Illegal Plugin AccessException Ċ import Ġkotlin . reflect . K Class Ċ Ċ fun ĠK Class < out ĠEvent >. getEvent Listeners (): ĠHandler List Ġ{ ĊĠĠĠ Ġreturn Ġtry Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmethod Ġ= Ġget Registration Class ( java ). getDeclared Method (" get Handler List ") ĊĠĠĠĠĠĠĠ Ġmethod . is Accessible Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġmethod . invoke ( null ) Ġas ĠHandler List ĊĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthrow ĠIllegal Plugin AccessException ( e . toString ()) ĊĠĠĠ Ġ} Ċ } Ċ Ċ private Ġfun Ġget Registration Class ( clazz : ĠClass < out ĠEvent >): ĠClass < out ĠEvent > Ġ{ ĊĠĠĠ Ġreturn Ġtry Ġ{ ĊĠĠĠĠĠĠĠ Ġclazz . getDeclared Method (" get Handler List ") ĊĠĠĠĠĠĠĠ Ġclazz ĊĠĠĠ Ġ} Ġcatch Ġ( e : ĠNoSuch Method Exception ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( clazz . super class Ġ!= Ġnull Ġ&& Ġclazz . super class Ġ!= ĠEvent :: class . java ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ&& ĠEvent :: class . java . isAssignableFrom ( clazz . super class )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget Registration Class ( clazz . super class . as Subclass ( Event :: class . java )) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠIllegal Plugin AccessException (" Unable Ġto Ġfind Ġhandler Ġlist Ġfor Ġevent Ġ" Ġ+ Ġclazz . name Ġ+ Ġ". ĠStatic Ġget Handler List Ġmethod Ġrequired !") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }