diff --git a/src/main/kotlin/moe/jansel/platinum/Platinum.kt b/src/main/kotlin/moe/jansel/platinum/Platinum.kt index 52772c4..531232b 100644 --- a/src/main/kotlin/moe/jansel/platinum/Platinum.kt +++ b/src/main/kotlin/moe/jansel/platinum/Platinum.kt @@ -5,11 +5,15 @@ import io.ktor.client.engine.cio.* import io.ktor.client.plugins.* import io.ktor.client.plugins.contentnegotiation.* import io.ktor.serialization.kotlinx.json.* +import io.papermc.paper.command.brigadier.Commands +import io.papermc.paper.plugin.lifecycle.event.LifecycleEventManager +import io.papermc.paper.plugin.lifecycle.event.types.LifecycleEvents import kotlinx.serialization.json.Json import org.bukkit.Server import org.bukkit.command.CommandExecutor import org.bukkit.command.PluginCommand import org.bukkit.command.TabCompleter +import org.bukkit.plugin.Plugin import org.bukkit.plugin.PluginManager import org.bukkit.plugin.java.JavaPlugin import org.bukkit.scheduler.BukkitScheduler @@ -23,11 +27,9 @@ class Platinum : JavaPlugin() { lateinit var pluginManager: PluginManager lateinit var logger: Logger lateinit var server: Server - lateinit var scheduler: BukkitScheduler lateinit var props: Properties lateinit var version: String lateinit var hash: String - lateinit var webClient: HttpClient } @@ -54,6 +56,9 @@ class Platinum : JavaPlugin() { agent = "https://git.jansel.moe/jreimers/Platinum v$version(jansel@jansel.moe)" } } + Companion.server = server + pluginManager = server.pluginManager + instance = this } override fun onDisable() { @@ -61,9 +66,7 @@ class Platinum : JavaPlugin() { } private fun registerCommands() { - "platinum".cmd() execs CommandExecutor { commandSender, command, name, args -> - true - } + } private fun String.cmd() = instance.getCommand(this) ?: throw NullPointerException("Command '$name' not found!") diff --git a/src/main/kotlin/moe/jansel/platinum/PlatinumBootstrap.kt b/src/main/kotlin/moe/jansel/platinum/PlatinumBootstrap.kt new file mode 100644 index 0000000..b1d7b1b --- /dev/null +++ b/src/main/kotlin/moe/jansel/platinum/PlatinumBootstrap.kt @@ -0,0 +1,18 @@ +package moe.jansel.platinum + +import io.papermc.paper.command.brigadier.Commands +import io.papermc.paper.plugin.bootstrap.BootstrapContext +import io.papermc.paper.plugin.bootstrap.PluginBootstrap +import io.papermc.paper.plugin.lifecycle.event.registrar.ReloadableRegistrarEvent +import io.papermc.paper.plugin.lifecycle.event.types.LifecycleEvents +import moe.jansel.platinum.commands.PlatinumCommand + +class PlatinumBootstrap : PluginBootstrap { + override fun bootstrap(context: BootstrapContext) { + val manager = context.lifecycleManager + manager.registerEventHandler(LifecycleEvents.COMMANDS) { event: ReloadableRegistrarEvent -> + val commands = event.registrar() + commands.register("platinum", "Platinum Main Command", PlatinumCommand()) + } + } +} diff --git a/src/main/kotlin/moe/jansel/platinum/commands/PlatinumCommand.kt b/src/main/kotlin/moe/jansel/platinum/commands/PlatinumCommand.kt new file mode 100644 index 0000000..71374d7 --- /dev/null +++ b/src/main/kotlin/moe/jansel/platinum/commands/PlatinumCommand.kt @@ -0,0 +1,13 @@ +package moe.jansel.platinum.commands + +import io.papermc.paper.command.brigadier.BasicCommand +import io.papermc.paper.command.brigadier.CommandSourceStack + +class PlatinumCommand: BasicCommand { + override fun execute(stack: CommandSourceStack, args: Array?) { + if (args?.size == 1 && args[0].lowercase() == "start") { + stack.getSender().sendRichMessage("Fun activated!"); + } + } + +} \ No newline at end of file diff --git a/src/main/resources/paper-plugin.yml b/src/main/resources/paper-plugin.yml index 5405f29..63a5a42 100644 --- a/src/main/resources/paper-plugin.yml +++ b/src/main/resources/paper-plugin.yml @@ -6,11 +6,7 @@ prefix: platinum authors: [ Jansel ] description: Yet another rewrite of my old datasync Plugin website: https://git.jansel.moe/jreimers/platinum - -commands: - platinum: - usage: /platinum [args] - +bootstrapper: moe.jansel.platinum.PlatinumBootstrap permissions: platinum.download: