11package host.carbon.plugin.bungee
22
3+ import host.carbon.common.KtorManager
34import net.md_5.bungee.api.plugin.Plugin
5+ import net.md_5.bungee.config.Configuration
6+ import net.md_5.bungee.config.ConfigurationProvider
7+ import net.md_5.bungee.config.YamlConfiguration
8+ import org.yaml.snakeyaml.Yaml
9+ import java.io.File
10+ import java.util.*
411
5- class CarbonBungeePlugin : Plugin () {
6- override fun onEnable () {}
7- override fun onDisable () {}
12+ class CarbonBungeePlugin : Plugin () {
13+ private lateinit var ktorManager: KtorManager
14+
15+ override fun onEnable () {
16+ if (! dataFolder.exists()) {
17+ dataFolder.mkdir()
18+ }
19+
20+ var port = 25505
21+ var carbonKey = UUID .randomUUID().toString()
22+
23+ val configFile = File (dataFolder, " config.yml" )
24+ if (configFile.exists()) {
25+ val config = ConfigurationProvider .getProvider(YamlConfiguration ::class .java).load(configFile)
26+ port = config.getInt(" port" )
27+ carbonKey = config.getString(" carbon-key" )
28+ } else {
29+ configFile.createNewFile()
30+ val config = ConfigurationProvider .getProvider(YamlConfiguration ::class .java).load(configFile)
31+ config.set(" port" , port)
32+ config.set(" carbon-key" , carbonKey)
33+ ConfigurationProvider .getProvider(YamlConfiguration ::class .java).save(config, configFile)
34+ }
35+
36+ ktorManager = KtorManager (CarbonPluginAPI (), port, carbonKey)
37+ ktorManager.startServer()
38+
39+ logger.info(" Carbon API started on port $port " )
40+
41+ }
42+
43+ override fun onDisable () {
44+ if (::ktorManager.isInitialized) {
45+ ktorManager.stopServer()
46+ logger.info(" Carbon API stopped" )
47+ }
48+ }
849}
0 commit comments