/* Ċ Ġ* ĠMIT ĠLicense Ċ Ġ* Ċ Ġ* ĠCopyright Ġ( c ) Ġ 2 0 2 0 ĠG un pow der MC Ċ Ġ* Ċ Ġ* Ġ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 Ġio . github . gun pow der . vot ifier Ċ Ċ import Ġio . github . gun pow der . api . Gun pow der Mod Ċ import Ġio . github . gun pow der . api . Gun pow der Module Ċ import Ġio . github . gun pow der . vot ifier . commands . V ot ifier Command Ċ import Ġio . github . gun pow der . vot ifier . configs . V ot ifier Config Ċ import Ġio . github . gun pow der . vot ifier . entities . V ot ifier Ċ import Ġnet . fabric mc . fabric . api . event . lifecycle . v 1 . Server Lifecycle Events Ċ import Ġorg . apache . logging . log 4 j . Log Manager Ċ import Ġorg . apache . logging . log 4 j . Logger Ċ import Ġjava . io . File Ċ import Ġjava . lang . Exception Ċ Ċ class ĠG un pow der V ot ifier Module Ġ: ĠG un pow der Module Ġ{ ĊĠĠĠ Ġoverride Ġval Ġname Ġ= Ġ" vot ifier " ĊĠĠĠ Ġoverride Ġval Ġtoggle able Ġ= Ġtrue ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlogger : ĠLogger Ġ= ĠLog Manager . getLogger (" V ot ifier ") ĊĠĠĠĠĠĠĠ Ġval Ġdirectory : ĠFile Ġ= ĠFile ( System . getProperty (" user . dir ")). to Path (). resolve (" config "). resolve (" vot ifier "). to File () ĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġvot ifier : ĠV ot ifier ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġval Ġconfig : ĠV ot ifier Config Ġ= Ġgun pow der . registry . getConfig ( V ot ifier Config :: class . java ) ĊĊĠĠĠĠĠĠĠ Ġval Ġgun pow der : ĠG un pow der Mod ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget () Ġ= ĠG un pow der Mod . instance ĊĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġval Ġinstance : ĠV ot ifier ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget () Ġ= Ġvot ifier Ġ?: Ġthrow ĠIllegalStateException (" V ot ifier Ġinstance Ġhasn 't Ġbeen Ġinitialized !") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġregister Configs () Ġ{ ĊĠĠĠĠĠĠĠ Ġgun pow der . registry . register Config (" gun pow der - vot ifier . yaml ", ĠV ot ifier Config :: class . java , Ġ" gun pow der - vot ifier . yaml ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġregister Commands () Ġ{ ĊĠĠĠĠĠĠĠ Ġgun pow der . registry . register Command ( V ot ifier Command :: register ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġregister Events () Ġ{ ĊĠĠĠĠĠĠĠ ĠServer Lifecycle Events . SERVER _ STOP PING . register ( Server Lifecycle Events . Server Stopping Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvot ifier !!. shutdown () ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Initialize () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(! directory . exists ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdirectory . mkdir s () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġvot ifier Ġ= Ġinit V ot ifier () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinit V ot ifier (): ĠV ot ifier ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠV ot ifier ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . error (" V ot ifier Ġdid Ġnot Ġinitialize Ġproperly !", Ġe ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ } Ċ