/* Ċ Ġ* Ġ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 . base . manager . startup Ċ Ċ import Ġeu . the simple cloud . api . Cloud API Ċ import Ġeu . the simple cloud . api . directory paths . Directory Paths Ċ import Ġeu . the simple cloud . api . property . Property Ċ import Ġeu . the simple cloud . api . screen . IC ommand Executable Ċ import Ġeu . the simple cloud . base . core . jvm . Jvm Arguments Config Ċ import Ġeu . the simple cloud . base . manager . config . Jvm Arguments Config Loader Ċ import Ġeu . the simple cloud . base . manager . config . encryption . Key Config Loader Ċ import Ġeu . the simple cloud . base . manager . config . mongo . Database Config Loader Ċ import Ġeu . the simple cloud . base . manager . config . template . Templates Config Loader Ċ import Ġeu . the simple cloud . base . manager . config . updater . Module Updater Config Loader Ċ import Ġeu . the simple cloud . base . manager . database . Database Type Ċ import Ġeu . the simple cloud . base . manager . database . IO ff line Cloud Player Handler Ċ import Ġeu . the simple cloud . base . manager . database . Mongo Offline Cloud Player Handler Ċ import Ġeu . the simple cloud . base . manager . database . SQ LO ff line Cloud Player Handler Ċ import Ġeu . the simple cloud . base . manager . database . aes . Advanced Encryption Ċ import Ġeu . the simple cloud . base . manager . file handler . Cloud Service Group File Handler Ċ import Ġeu . the simple cloud . base . manager . file handler . Wrapper File Handler Ċ import Ġeu . the simple cloud . base . manager . impl . Cloud API Impl Ċ import Ġeu . the simple cloud . base . manager . ing ame commands . In game Command Updater Ċ import Ġeu . the simple cloud . base . manager . listener . Cloud Listener Ċ import Ġeu . the simple cloud . base . manager . listener . Module EventListener Ċ import Ġeu . the simple cloud . base . manager . packet . IP acket Registry Ċ import Ġeu . the simple cloud . base . manager . packet . Packet Registry Ċ import Ġeu . the simple cloud . base . manager . player . Player Unregister Scheduler Ċ import Ġeu . the simple cloud . base . manager . service . Service Handler Ċ import Ġeu . the simple cloud . base . manager . setup . database . Database Connection Setup Ċ import Ġeu . the simple cloud . base . manager . startup . server . Communication Connection Handler Impl Ċ import Ġeu . the simple cloud . base . manager . startup . server . Manager Access Handler Ċ import Ġeu . the simple cloud . base . manager . startup . server . Server Handler Impl Ċ import Ġeu . the simple cloud . base . manager . startup . server . Template Connection Handler Impl Ċ import Ġeu . the simple cloud . base . manager . update . converter . Version Conversion Manager Ċ import Ġeu . the simple cloud . client server api . lib . packet . IP acket Ċ import Ġeu . the simple cloud . client server api . server . IN et ty Server Ċ import Ġeu . the simple cloud . client server api . server . Net ty Server Ċ import Ġeu . the simple cloud . launcher . application . Application ClassLoader Ċ import Ġeu . the simple cloud . launcher . application . IC loud Application Ċ import Ġeu . the simple cloud . launcher . external . module . Module ClassLoader Ċ import Ġeu . the simple cloud . launcher . external . module . handler . IM odule Handler Ċ import Ġeu . the simple cloud . launcher . external . module . handler . Module Handler Ċ import Ġeu . the simple cloud . launcher . language . Language File Loader Ċ import Ġeu . the simple cloud . launcher . startup . Launcher Ċ import Ġkotlinx . coroutines . Global Scope Ċ import Ġkotlinx . coroutines . launch Ċ import Ġjava . io . File Ċ import Ġjava . util . logging . Level Ċ import Ġjava . util . logging . Logger Ċ import Ġkotlin . concurrent . thread Ċ Ċ class ĠManager Ġ: ĠI Cloud Application Ġ{ ĊĊĠĠĠ Ġval Ġing ame Command Updater : ĠIn game Command Updater ĊĠĠĠ Ġval Ġcloud Service Group File Handler Ġ= ĠCloud Service Group File Handler () ĊĠĠĠ Ġval Ġwrapper File Handler Ġ= ĠWrapper File Handler () ĊĠĠĠ Ġval Ġtemplates Config Loader Ġ= ĠTemplates Config Loader () ĊĠĠĠ Ġval Ġservice Handler : ĠService Handler ĊĊĠĠĠ Ġval Ġoffline Cloud Player Handler : ĠI Offline Cloud Player Handler ĊĊĠĠĠ Ġval Ġcommunication Server : ĠIN et ty Server < IC ommand Executable > ĊĠĠĠ Ġval Ġtemplate Server : ĠIN et ty Server < IC ommand Executable > ĊĠĠĠ Ġval Ġpacket Registry : ĠIP acket Registry Ġ= ĠPacket Registry () ĊĠĠĠ Ġval Ġplayer Unregister Scheduler Ġ= ĠPlayer Unregister Scheduler () ĊĠĠĠ Ġval Ġcloud Module Handler : ĠI Module Handler ĊĠĠĠ Ġval Ġapp ClassLoader : ĠApplication ClassLoader ĊĠĠĠ Ġval Ġencryption : ĠAdvanced Encryption ĊĊĠĠĠ Ġlateinit Ġvar Ġj vm Arguments Config : ĠJ vm Arguments Config ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġlateinit Ġvar Ġinstance : ĠManager ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġset ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ ĠLogger . getLogger (" org . mongodb . driver "). level Ġ= ĠLevel . SEVERE ĊĠĠĠĠĠĠĠ Ġinstance Ġ= Ġthis ĊĠĠĠĠĠĠĠ ĠCloud API Impl () ĊĠĠĠĠĠĠĠ ĠLanguage File Loader (). load File ( Launcher . instance . launcher Config ) ĊĠĠĠĠĠĠĠ Ġthis . service Handler Ġ= ĠService Handler () ĊĠĠĠĠĠĠĠ ĠCloud API . instance . getEvent Manager (). register Listener ( this , ĠCloud Listener ()) ĊĠĠĠĠĠĠĠ ĠCloud API . instance . getEvent Manager (). register Listener ( this , ĠModule EventListener ()) ĊĠĠĠĠĠĠĠ Ġthis . app ClassLoader Ġ= Ġthis :: class . java . class Loader Ġas ĠApplication ClassLoader ĊĊĠĠĠĠĠĠĠ Ġthis . cloud Module Handler Ġ= ĠModule Handler ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġapp ClassLoader , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLaunch er . instance . launcher Config . language , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠModule Updater Config Loader (). load Config (). modules , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠĠĠĠĠ Ġ) Ġ{ ĠLaunch er . instance . logger . exception ( it ) Ġ} ĊĠĠĠĠĠĠĠ Ġthis . app ClassLoader . module Handler Ġ= Ġthis . cloud Module Handler ĊĊĠĠĠĠĠĠĠ Ġthis . cloud Module Handler . set Create Module ClassLoader Ġ{ Ġurls , Ġname Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ ĠModule ClassLoader ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġurls , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . app ClassLoader , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . cloud Module Handler ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠProperty . property Class Find Function Ġ= Ġ{ Ġthis . cloud Module Handler . find Module Or System Class ( it ) Ġ} ĊĠĠĠĠĠĠĠ Ġthis . ing ame Command Updater Ġ= ĠIn game Command Updater () ĊĠĠĠĠĠĠĠ Ġif Ġ(! Database Config Loader (). does ConfigFile Exist ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLaunch er . instance . setup Manager . queue Setup ( Database Connection Setup ()) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLaunch er . instance . setup Manager . wait F ro All Setup s () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġmongo Connection Information Ġ= ĠDatabase Config Loader (). load Config () ĊĠĠĠĠĠĠĠ Ġthis . encryption Ġ= ĠAdvanced Encryption ( Key Config Loader (). load Config ()) ĊĊĠĠĠĠĠĠĠ Ġval Ġlauncher Config Ġ= ĠLaunch er . instance . launcher Config ĊĠĠĠĠĠĠĠ Ġval Ġbase And Launcher Loader Ġ= ĠLaunch er . instance . getNew ClassLoader With Launcher And Base () ĊĠĠĠĠĠĠĠ Ġthis . communication Server Ġ= ĠNet ty Server < IC ommand Executable >( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlauncher Config . host , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlauncher Config . port , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCommunication Connection Handler Impl (), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠServer Handler Impl () ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġthis . communication Server . set Access Handler ( Manager Access Handler ()) ĊĠĠĠĠĠĠĠ Ġthis . communication Server . set Packet Search ClassLoader ( base And Launcher Loader ) ĊĠĠĠĠĠĠĠ Ġthis . communication Server . set ClassLoader To Search Object Packet Classes ( app ClassLoader ) ĊĠĠĠĠĠĠĠ Ġthis . communication Server . set Packet Class Converter Ġ{ Ġmove To Application ClassLoader ( it ) Ġ} ĊĠĠĠĠĠĠĠ Ġthis . template Server Ġ= ĠNet ty Server < IC ommand Executable >( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlauncher Config . host , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlauncher Config . port Ġ+ Ġ 1 , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTemplate Connection Handler Impl (), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠServer Handler Impl () ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġthis . template Server . set Access Handler ( Manager Access Handler ()) ĊĠĠĠĠĠĠĠ Ġthis . template Server . set Packet Search ClassLoader ( base And Launcher Loader ) ĊĠĠĠĠĠĠĠ Ġthis . template Server . set ClassLoader To Search Object Packet Classes ( app ClassLoader ) ĊĠĠĠĠĠĠĠ Ġthis . template Server . set Packet Class Converter Ġ{ Ġmove To Application ClassLoader ( it ) Ġ} ĊĠĠĠĠĠĠĠ Ġthis . communication Server . add Packet sBy Package (" eu . the simple cloud . api . network . packets ") ĊĠĠĠĠĠĠĠ Ġthis . communication Server . add Packet sBy Package (" eu . the simple cloud . base . manager . network . packets ") ĊĠĠĠĠĠĠĠ Ġthis . template Server . add Packet sBy Package (" eu . the simple cloud . base . manager . network . packets . template ") ĊĠĠĠĠĠĠĠ Ġthread ( start Ġ= Ġtrue , Ġis Daemon Ġ= Ġfalse ) Ġ{ Ġcommunication Server . start () Ġ} ĊĠĠĠĠĠĠĠ Ġcreate Directories () ĊĠĠĠĠĠĠĠ ĠLogger . getLogger (" org . mongodb . driver "). level Ġ= ĠLevel . SEVERE ĊĠĠĠĠĠĠĠ ĠLaunch er . instance . logger . console (" Waiting Ġfor Ġthe Ġdatabase ...") ĊĊĠĠĠĠĠĠĠ Ġthis . offline Cloud Player Handler Ġ= Ġwhen Ġ( mongo Connection Information . database Type ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠDatabase Type . MONGO DB Ġ-> ĠMongo Offline Cloud Player Handler ( mongo Connection Information ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠDatabase Type . MYSQL Ġ-> ĠS Q LO ff line Cloud Player Handler ( mongo Connection Information ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠLaunch er . instance . logger . console (" Connected Ġto Ġthe Ġdatabase ") ĊĊĠĠĠĠĠĠĠ Ġthis . template Server . get Directory Sync Manager (). set Tmp Zip Directory ( File ( Directory Paths . paths . z ipped Templates Path )) ĊĠĠĠĠĠĠĠ Ġthis . template Server . get Directory Sync Manager () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. create Directory Sync ( File ( Directory Paths . paths . templates Path ), ĠDirectory Paths . paths . templates Path ) ĊĠĠĠĠĠĠĠ Ġthis . template Server . get Directory Sync Manager () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. create Directory Sync ( File ( Directory Paths . paths . modules Path ), ĠDirectory Paths . paths . modules Path ) ĊĠĠĠĠĠĠĠ Ġthis . service Handler . start Thread () ĊĠĠĠĠĠĠĠ Ġthread ( start Ġ= Ġtrue , Ġis Daemon Ġ= Ġfalse ) Ġ{ Ġtemplate Server . start () Ġ} ĊĠĠĠĠĠĠĠ ĠVersion Conversion Manager (). write Last Started Version If File DoesNotExist () ĊĠĠĠĠĠĠĠ Ġ// this . player Unregister Scheduler . start Scheduler () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġmove To Application ClassLoader ( clazz : ĠClass < out ĠIP acket >): ĠClass < out ĠIP acket > Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( app ClassLoader . is This ClassLoader ( clazz )) Ġreturn Ġclazz ĊĠĠĠĠĠĠĠ Ġval Ġloaded Class Ġ= Ġapp ClassLoader . load Class ( clazz . name ) ĊĠĠĠĠĠĠĠ Ġapp ClassLoader . set Cached Class ( loaded Class ) ĊĠĠĠĠĠĠĠ Ġreturn Ġloaded Class Ġas ĠClass < out ĠIP acket > ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Enable () Ġ{ ĊĠĠĠĠĠĠĠ ĠGlobal Scope . launch Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLaunch er . instance . command Manager . register All Commands ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinstance , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġapp ClassLoader , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" eu . the simple cloud . base . manager . commands " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠLaunch er . instance . setup Manager . wait F ro All Setup s () ĊĠĠĠĠĠĠĠ Ġthis . wrapper File Handler . load All (). forEach Ġ{ ĠCloud API . instance . get Wrapper Manager (). update ( it ) Ġ} ĊĠĠĠĠĠĠĠ Ġthis . cloud Service Group File Handler . load All () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. forEach Ġ{ ĠCloud API . instance . get Cloud Service Group Manager (). update ( it ) Ġ} ĊĠĠĠĠĠĠĠ Ġthis . templates Config Loader . load Config (). templates . forEach Ġ{ ĠCloud API . instance . get Template Manager (). update ( it ) Ġ} ĊĠĠĠĠĠĠĠ Ġthis . jvm Arguments Config Ġ= ĠJ vm Arguments Config Loader (). load Config () ĊĊĠĠĠĠĠĠĠ Ġif Ġ( Cloud API . instance . get Wrapper Manager (). getAll Cached Objects (). isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLaunch er . instance . console Sender . send Property (" manager . startup . loaded . wrappers ") ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCloud API . instance . get Wrapper Manager (). getAll Cached Objects () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. forEach Ġ{ ĠLaunch er . instance . console Sender . sendMessage ("- Ġ${ it . getName () }") Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( Cloud API . instance . get Template Manager (). getAll Cached Objects (). isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLaunch er . instance . console Sender . send Property (" manager . startup . loaded . templates ") ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCloud API . instance . get Template Manager (). getAll Cached Objects () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. forEach Ġ{ ĠLaunch er . instance . console Sender . sendMessage ("- Ġ${ it . getName () }") Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( Cloud API . instance . get Cloud Service Group Manager (). getAll Cached Objects (). isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLaunch er . instance . console Sender . send Property (" manager . startup . loaded . groups ") ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCloud API . instance . get Cloud Service Group Manager (). getAll Cached Objects () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. forEach Ġ{ ĠLaunch er . instance . console Sender . sendMessage ("- Ġ${ it . getName () }") Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġthread ( start Ġ= Ġtrue , Ġis Daemon Ġ= Ġfalse ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠVersion Conversion Manager (). convert Before Module Load () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . cloud Module Handler . load All Un loaded Modules () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠVersion Conversion Manager (). convert If Ne cessary () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġprivate Ġfun Ġcreate Directories () Ġ{ ĊĠĠĠĠĠĠĠ Ġfor Ġ( file Ġin ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠFile ( Directory Paths . paths . storage Path ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠFile ( Directory Paths . paths . wrappers Path ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠFile ( Directory Paths . paths . minecraft J ars Path ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠFile ( Directory Paths . paths . server Groups Path ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠFile ( Directory Paths . paths . lob by Groups Path ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠFile ( Directory Paths . paths . proxy Groups Path ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠFile ( Directory Paths . paths . languages Path ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠFile ( Directory Paths . paths . modules Path ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠFile ( Directory Paths . paths . templates Path ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠFile ( Directory Paths . paths . templates Path Ġ+ Ġ" E VERY "), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠFile ( Directory Paths . paths . templates Path Ġ+ Ġ" E VERY _ SERVER "), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠFile ( Directory Paths . paths . templates Path Ġ+ Ġ" E VERY _ PROXY ") ĊĠĠĠĠĠĠĠ Ġ)) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfile . mkdir s () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Disable () Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . cloud Module Handler . unload All Modules () ĊĠĠĠ Ġ} ĊĊ Ċ }