command is finally registering and executing properly

This commit is contained in:
Jannik Reimers 2024-06-13 09:55:08 +02:00
parent 812e2361c9
commit 99f3eef4f8
4 changed files with 40 additions and 10 deletions

View File

@ -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!")

View File

@ -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<Commands?> ->
val commands = event.registrar()
commands.register("platinum", "Platinum Main Command", PlatinumCommand())
}
}
}

View File

@ -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<out String>?) {
if (args?.size == 1 && args[0].lowercase() == "start") {
stack.getSender().sendRichMessage("<rainbow>Fun activated!");
}
}
}

View File

@ -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 <command> [args]
bootstrapper: moe.jansel.platinum.PlatinumBootstrap
permissions:
platinum.download: