/* Ċ Ġ* ĠMIT ĠLicense Ċ Ġ* Ċ Ġ* ĠCopyright Ġ( C ) Ġ 2 0 2 0 ĠThe ĠSimple Cloud Ġauthors Ċ Ġ* Ċ Ġ* Ġ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 Ġeu . the simple cloud . launcher . external . module . handler Ċ Ċ import Ġeu . the simple cloud . api . Cloud API Ċ import Ġeu . the simple cloud . api . property . Property Ċ import Ġeu . the simple cloud . launcher . event . module . Module Un loaded Event Ċ import Ġeu . the simple cloud . launcher . exception . module . Module Load Exception Ċ import Ġeu . the simple cloud . launcher . external . module . Loaded Module Ċ import Ġeu . the simple cloud . launcher . external . module . Module ClassLoader Ċ Ċ /** Ċ Ġ* ĠCreated Ġby ĠIntelliJ ĠIDEA . Ċ Ġ* ĠDate : Ġ 2 7 . 1 1 . 2 0 2 0 Ċ Ġ* ĠTime : Ġ 2 1 : 0 4 Ċ Ġ* Ġ@ author ĠFre der ick ĠBa ier Ċ Ġ*/ Ċ class ĠUnsafe Module Un loader ( val Ġloaded Module : ĠLoaded Module ) Ġ{ ĊĊĠĠĠ Ġfun Ġun load () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcloud Module Ġ= Ġloaded Module . cloud Module ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcloud Module . on Disable () ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( ex : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠModule Load Exception (" Error Ġwhile Ġun loading Ġmodule Ġ${ loaded Module . getName () }", Ġex ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// unregister Ġall Ġlisteners Ġetc . ĊĠĠĠĠĠĠĠ ĠCloud API . instance . getEvent Manager (). unregister All Listeners By Cloud Module ( cloud Module ) ĊĠĠĠĠĠĠĠ Ġ( loaded Module . module ClassLoader Ġas ĠModule ClassLoader ). close () ĊĊĠĠĠĠĠĠĠ Ġ// unregister Ġall Ġmessage Ġchannel ĊĠĠĠĠĠĠĠ ĠCloud API . instance . getMessage Channel Manager (). unregister Message Channel ( cloud Module ) ĊĊĠĠĠĠĠĠĠ ĠCloud API . instance . getEvent Manager (). call ( Module Un loaded Event ( loaded Module )) ĊĊĠĠĠĠĠĠĠ Ġ// reset Ġall Ġproperty Ġvalues ĊĠĠĠĠĠĠĠ ĠCloud API . instance . get Cloud Player Manager (). getAll Cached Objects (). forEach Ġ{ Ġplayer Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġplayer . getProperties (). forEach Ġ{ Ġ( it . value Ġas ĠProperty ). reset Value () Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠCloud API . instance . get Cloud Service Manager (). getAll Cached Objects (). forEach Ġ{ Ġgroup Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgroup . getProperties (). forEach Ġ{ Ġ( it . value Ġas ĠProperty ). reset Value () Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠCloud API . instance . get Language Manager (). unregister Language File By Cloud Module ( cloud Module ) ĊĠĠĠ Ġ} Ċ Ċ }