package Ġcom . github . l azo young . craft games . impl Ċ Ċ import Ġcom . github . l azo young . craft games . impl . command .* Ċ import Ġcom . github . l azo young . craft games . impl . game . Game Ċ import Ġcom . github . l azo young . craft games . impl . listener . Mess anger Listener Ċ import Ġcom . github . l azo young . craft games . impl . listener . Script Listener Ċ import Ġcom . github . l azo young . craft games . impl . listener . Server Listener Ċ import Ġcom . github . l azo young . craft games . impl . util . Dependency Util Ċ import Ġcom . github . l azo young . craft games . impl . util . File Util Ċ import Ġorg . bukkit . Bu kkit Ċ import Ġorg . bukkit . command . Command Executor Ċ import Ġorg . bukkit . configuration . file . File Configuration Ċ import Ġorg . bukkit . configuration . file . Yaml Configuration Ċ import Ġorg . bukkit . event . Handler List Ċ import Ġorg . bukkit . plugin . java . Java Plugin Ċ import Ġjava . io . File Ċ import Ġjava . io . IOException Ċ import Ġjava . nio . charset . Charset Ċ import Ġjava . nio . file . FileSystem Ċ import Ġjava . nio . file . FileSystem s Ċ import Ġjava . nio . file . Path Ċ import Ġjava . nio . file . Standard Copy Option Ċ import Ġjava . util . logging . Logger Ċ Ċ class ĠMain Ġ: ĠJava Plugin (), ĠCommand Executor Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġlateinit Ġvar Ġinstance : ĠMain ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġset ĊĠĠĠĠĠĠĠ Ġlateinit Ġvar Ġplugin Folder : ĠFile ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġset ĊĠĠĠĠĠĠĠ Ġlateinit Ġvar Ġdata Folder : ĠFile ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġset ĊĠĠĠĠĠĠĠ Ġlateinit Ġvar Ġcharset : ĠCharset ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġset ĊĠĠĠĠĠĠĠ Ġlateinit Ġvar Ġlogger : ĠLogger ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġset ĊĠĠĠĠĠĠĠ Ġlateinit Ġvar Ġconfig : ĠFile Configuration ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġset ĊĊĠĠĠĠĠĠĠ Ġinternal Ġfun ĠgetConfig (): ĠFile Configuration ? Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġconfig : ĠFile Configuration ? Ġ= Ġnull ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfile Ġ= Ġplugin Folder . resolve (" config . yml ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġreader Ġ= Ġfile . buffered Reader ( charset ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconfig Ġ= ĠYaml Configuration . load Configuration ( reader ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġconfig ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Enable () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġinfo Cmd Ġ= Ġget Command (" craft games ") !! ĊĠĠĠĠĠĠĠ Ġval Ġgame Cmd Ġ= Ġget Command (" game ") !! ĊĠĠĠĠĠĠĠ Ġval Ġct Cmd Ġ= Ġget Command (" ct ag ") !! ĊĠĠĠĠĠĠĠ Ġval Ġit Cmd Ġ= Ġget Command (" it ag ") !! ĊĠĠĠĠĠĠĠ Ġval Ġjoin Cmd Ġ= Ġget Command (" join ") !! ĊĠĠĠĠĠĠĠ Ġval Ġleave Cmd Ġ= Ġget Command (" leave ") !! ĊĠĠĠĠĠĠĠ Ġval Ġforce Join Cmd Ġ= Ġget Command (" force join ") !! ĊĠĠĠĠĠĠĠ Ġval Ġvote Cmd Ġ= Ġget Command (" map vote ") !! ĊĠĠĠĠĠĠĠ Ġval Ġkit Cmd Ġ= Ġget Command (" kit ") !! ĊĠĠĠĠĠĠĠ Ġval Ġinfo Executor Ġ= ĠInfo Command () ĊĠĠĠĠĠĠĠ Ġval Ġgame Executor Ġ= ĠGame Command () ĊĠĠĠĠĠĠĠ Ġval Ġct Executor Ġ= ĠCoord Tag Command () ĊĠĠĠĠĠĠĠ Ġval Ġit Executor Ġ= ĠItem Tag Command () ĊĠĠĠĠĠĠĠ Ġval Ġaccess Executor Ġ= ĠGame Access Command () ĊĠĠĠĠĠĠĠ Ġval Ġvote Executor Ġ= ĠV ote Command () ĊĠĠĠĠĠĠĠ Ġval Ġkit Executor Ġ= ĠKit Command () ĊĠĠĠĠĠĠĠ Ġval Ġmanager Ġ= ĠBu kkit . get PluginManager () ĊĠĠĠĠĠĠĠ Ġval Ġmess enger Ġ= ĠBu kkit . get Messenger () ĊĠĠĠĠĠĠĠ Ġinstance Ġ= Ġthis ĊĠĠĠĠĠĠĠ ĠComp anion . logger Ġ= Ġlogger ĊĊĠĠĠĠĠĠĠ Ġload Config () ĊĠĠĠĠĠĠĠ Ġload Asset () ĊĠĠĠĠĠĠĠ ĠDependency Util . load ( server . plugin Manager ) ĊĠĠĠĠĠĠĠ Ġinfo Cmd . set Executor ( info Executor ) ĊĠĠĠĠĠĠĠ Ġgame Cmd . set Executor ( game Executor ) ĊĠĠĠĠĠĠĠ Ġct Cmd . set Executor ( ct Executor ) ĊĠĠĠĠĠĠĠ Ġit Cmd . set Executor ( it Executor ) ĊĠĠĠĠĠĠĠ Ġjoin Cmd . set Executor ( access Executor ) ĊĠĠĠĠĠĠĠ Ġleave Cmd . set Executor ( access Executor ) ĊĠĠĠĠĠĠĠ Ġforce Join Cmd . set Executor ( access Executor ) ĊĠĠĠĠĠĠĠ Ġvote Cmd . set Executor ( vote Executor ) ĊĠĠĠĠĠĠĠ Ġkit Cmd . set Executor ( kit Executor ) ĊĠĠĠĠĠĠĠ Ġinfo Cmd . tab Comp leter Ġ= Ġinfo Executor ĊĠĠĠĠĠĠĠ Ġgame Cmd . tab Comp leter Ġ= Ġgame Executor ĊĠĠĠĠĠĠĠ Ġct Cmd . tab Comp leter Ġ= Ġct Executor ĊĠĠĠĠĠĠĠ Ġit Cmd . tab Comp leter Ġ= Ġit Executor ĊĠĠĠĠĠĠĠ Ġjoin Cmd . tab Comp leter Ġ= Ġaccess Executor ĊĠĠĠĠĠĠĠ Ġleave Cmd . tab Comp leter Ġ= Ġaccess Executor ĊĠĠĠĠĠĠĠ Ġforce Join Cmd . tab Comp leter Ġ= Ġaccess Executor ĊĠĠĠĠĠĠĠ Ġvote Cmd . tab Comp leter Ġ= Ġvote Executor ĊĠĠĠĠĠĠĠ Ġkit Cmd . tab Comp leter Ġ= Ġkit Executor ĊĠĠĠĠĠĠĠ Ġmanager . register Events ( Server Listener (), Ġthis ) ĊĠĠĠĠĠĠĠ Ġmanager . register Events ( Script Listener (), Ġthis ) ĊĠĠĠĠĠĠĠ Ġmess enger . register Outgoing Plugin Channel ( this , Ġ" B ungee C ord ") ĊĠĠĠĠĠĠĠ Ġmess enger . register Incoming Plugin Channel ( this , Ġ" B ungee C ord ", ĠMess anger Listener ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Disable () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠClose Ġgames ĊĠĠĠĠĠĠĠ ĠGame . find (). forEach Ġ{ Ġit . force Stop ( async Ġ= Ġfalse , Ġerror Ġ= Ġfalse ) Ġ} ĊĠĠĠĠĠĠĠ ĠHandler List . unregister All ( this ) ĊĠĠĠĠĠĠĠ Ġserver . scheduler . cancel Tasks ( this ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġload Config () Ġ{ ĊĠĠĠĠĠĠĠ Ġsave Default Config () ĊĠĠĠĠĠĠĠ Ġconfig . options (). copy Defaults ( true ) ĊĠĠĠĠĠĠĠ Ġplugin Folder Ġ= Ġdata Folder ĊĠĠĠĠĠĠĠ ĠComp anion . data Folder Ġ= Ġplugin Folder . resolve ("_ data ") ĊĊĠĠĠĠĠĠĠ Ġval Ġcharset Ġ= Ġconfig . getString (" file - encoding ") Ġ?: Ġ" default " ĊĊĠĠĠĠĠĠĠ ĠComp anion . charset Ġ= Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( charset . equals (" default ", Ġtrue )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCharset . default Charset () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCharset . forName ( charset ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdefault Ġ= ĠCharset . default Charset () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . warning (" Charset Ġ\' $ charset \' Ġis Ġnot Ġavailable . ĠUsing Ġsystem Ġdefault : Ġ${ default . name () }") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdefault ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġload Asset () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġroot Ġ= Ġdata Folder ĊĠĠĠĠĠĠĠ Ġval Ġsys : ĠFileSystem ĊĠĠĠĠĠĠĠ Ġval Ġsource : ĠPath ĊĠĠĠĠĠĠĠ Ġval Ġtarget : ĠPath ĊĊĠĠĠĠĠĠĠ Ġif Ġ( config . getBoolean (" install - sample ")) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . info (" Installing Ġsample Ġfiles ...") ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsys Ġ= ĠFileSystem s . new FileSystem ( file . to Path (), Ġclass Loader ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsource Ġ= Ġsys . getPath ("/ Sample ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtarget Ġ= Ġroot . to Path () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . se vere (" Unable Ġto Ġread Ġjar Ġfiles .") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠFile Util . clone File Tree ( source , Ġtarget , ĠStandard Copy Option . REPLACE _ EXIST ING ). handle Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult , Ġt Ġ-> ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( result ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . info (" Sample Ġfiles Ġhave Ġbeen Ġinstalled !") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġt ?. printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . warning (" Failed Ġto Ġinstall ĠSample Ġfiles .") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconfig . set (" install - sample ", Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠSecurity Exception ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . se vere (" Access Ġdenied ! ĠUnable Ġto Ġinstall Ġsample Ġfiles .") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠIOException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . se vere (" Error Ġoccurred ! ĠUnable Ġto Ġinstall Ġsample Ġfiles .") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġsave Config () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }