package Ġcom . rose . gateway Ċ Ċ import Ġcom . rose . gateway . bot . Discord Bot Ċ import Ġcom . rose . gateway . configuration . Plugin Configuration Ċ import Ġcom . rose . gateway . configuration . specs . Plugin Spec Ċ import Ġcom . rose . gateway . minecraft . Command Registry Ċ import Ġcom . rose . gateway . minecraft . Event Listeners Ċ import Ġkotlinx . coroutines . run Blocking Ċ import Ġkotlinx . datetime . Clock Ċ import Ġorg . bukkit . plugin . java . Java Plugin Ċ Ċ @ Suppress (" unused ") Ċ class ĠGateway Plugin Ġ: ĠJava Plugin () Ġ{ ĊĠĠĠ Ġval Ġversion Ġ= Ġdescription . version ĊĠĠĠ Ġval ĠstartTime Ġ= ĠClock . System . now () ĊĠĠĠ Ġval Ġconfiguration Ġ= ĠPlugin Configuration ( this ) ĊĠĠĠ Ġvar Ġdiscord Bot Ġ= ĠDiscord Bot ( this ) ĊĠĠĠ Ġprivate Ġval Ġevent Listeners Ġ= ĠEvent Listeners ( this ) ĊĠĠĠ Ġprivate Ġval Ġcommand Registry Ġ= ĠCommand Registry ( this ) ĊĊĠĠĠ Ġoverride Ġfun Ġon Enable () Ġ{ ĊĠĠĠĠĠĠĠ ĠLogger . log Info (" Starting ĠGateway !") ĊĊĠĠĠĠĠĠĠ Ġrun Blocking Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdiscord Bot . start () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġset Configuration Change Actions () ĊĠĠĠĠĠĠĠ Ġevent Listeners . register Listeners ( server ) ĊĠĠĠĠĠĠĠ Ġcommand Registry . register Commands () ĊĊĠĠĠĠĠĠĠ ĠLogger . log Info (" Gateway Ġstarted !") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Disable () Ġ{ ĊĠĠĠĠĠĠĠ ĠLogger . log Info (" Stopping ĠGateway !") ĊĊĠĠĠĠĠĠĠ Ġrun Blocking Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdiscord Bot . stop () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠLogger . log Info (" Gateway Ġstopped !") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġrestart Bot (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġrun Blocking Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdiscord Bot . stop () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdiscord Bot Ġ= ĠDiscord Bot ( this @ Gateway Plugin ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdiscord Bot . start () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġdiscord Bot . bot Ġ!= Ġnull ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġset Configuration Change Actions () Ġ{ ĊĠĠĠĠĠĠĠ ĠPlugin Spec . set Config Change Actions ( this ) ĊĠĠĠ Ġ} Ċ } Ċ