diff --git a/gradle.properties b/gradle.properties index 53d4202..82c062a 100755 --- a/gradle.properties +++ b/gradle.properties @@ -1,7 +1,7 @@ kotlin.code.style=official project.group=kr.summitsystems -project.version=0.0.9-beta1 +project.version=0.0.9-beta2 project.name=spring-bukkit project.url=https://github.com/summit-systems/spring-bukkit project.url.scm=https://github.com/summit-systems/spring-bukkit.git diff --git a/spring-bukkit-core/src/main/kotlin/kr/summitsystems/springbukkit/core/SpringBukkitPlugin.kt b/spring-bukkit-core/src/main/kotlin/kr/summitsystems/springbukkit/core/SpringBukkitPlugin.kt index 998a169..607b55e 100644 --- a/spring-bukkit-core/src/main/kotlin/kr/summitsystems/springbukkit/core/SpringBukkitPlugin.kt +++ b/spring-bukkit-core/src/main/kotlin/kr/summitsystems/springbukkit/core/SpringBukkitPlugin.kt @@ -34,7 +34,7 @@ abstract class SpringBukkitPlugin : JavaPlugin(), ApplicationContextInitializer< final override fun onDisable() { disposables.forEach { it.dispose() } - applicationContext?.registerShutdownHook() + applicationContext?.close() } final override fun dispose() { diff --git a/spring-bukkit-core/src/main/kotlin/kr/summitsystems/springbukkit/core/support/config/BukkitConfiguration.kt b/spring-bukkit-core/src/main/kotlin/kr/summitsystems/springbukkit/core/support/config/BukkitConfiguration.kt index 2b8ba9f..b7eeafa 100644 --- a/spring-bukkit-core/src/main/kotlin/kr/summitsystems/springbukkit/core/support/config/BukkitConfiguration.kt +++ b/spring-bukkit-core/src/main/kotlin/kr/summitsystems/springbukkit/core/support/config/BukkitConfiguration.kt @@ -3,52 +3,61 @@ package kr.summitsystems.springbukkit.core.support.config import kr.summitsystems.springbukkit.core.support.SpringBukkitConversionService import org.bukkit.Bukkit import org.bukkit.Server +import org.bukkit.configuration.file.FileConfiguration +import org.bukkit.configuration.file.YamlConfiguration import org.bukkit.plugin.Plugin import org.bukkit.plugin.PluginDescriptionFile import org.bukkit.plugin.PluginManager import org.bukkit.plugin.ServicesManager import org.springframework.beans.factory.config.BeanDefinition +import org.springframework.beans.factory.support.AbstractBeanDefinition import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean import org.springframework.context.annotation.Bean import org.springframework.context.annotation.Configuration import org.springframework.context.annotation.Role import org.springframework.core.convert.ConversionService -@Role(BeanDefinition.ROLE_INFRASTRUCTURE) +@Role(BeanDefinition.ROLE_SUPPORT) @Configuration class BukkitConfiguration { - @Role(BeanDefinition.ROLE_INFRASTRUCTURE) - @Bean + @Role(BeanDefinition.ROLE_SUPPORT) + @Bean(destroyMethod = "") fun bukkitServer(): Server { return Bukkit.getServer() } - @Role(BeanDefinition.ROLE_INFRASTRUCTURE) + @Role(BeanDefinition.ROLE_SUPPORT) @Bean fun bukkitPluginManager(server: Server): PluginManager { return server.pluginManager } - @Role(BeanDefinition.ROLE_INFRASTRUCTURE) + @Role(BeanDefinition.ROLE_SUPPORT) @Bean fun bukkitServicesManager(server: Server): ServicesManager { return server.servicesManager } - @Role(BeanDefinition.ROLE_INFRASTRUCTURE) + @Role(BeanDefinition.ROLE_SUPPORT) @Bean fun pluginDescriptionFile(plugin: Plugin): PluginDescriptionFile { return plugin.description } - @Role(BeanDefinition.ROLE_INFRASTRUCTURE) + @Role(BeanDefinition.ROLE_SUPPORT) + @Bean + fun pluginFileConfiguration(plugin: Plugin): FileConfiguration { + return plugin.config + } + + @Role(BeanDefinition.ROLE_SUPPORT) @ConditionalOnMissingBean(Plugin::class) @Bean fun plugin(): Plugin { - throw NotImplementedError() + throw IllegalStateException() } - @Role(BeanDefinition.ROLE_INFRASTRUCTURE) + @Role(BeanDefinition.ROLE_SUPPORT) @Bean fun conversionService(): ConversionService { return SpringBukkitConversionService()