diff --git a/src/main/kotlin/io/delilaheve/CustomAnvil.kt b/src/main/kotlin/io/delilaheve/CustomAnvil.kt index 321165e5..5abf1719 100644 --- a/src/main/kotlin/io/delilaheve/CustomAnvil.kt +++ b/src/main/kotlin/io/delilaheve/CustomAnvil.kt @@ -142,7 +142,7 @@ open class CustomAnvil : JavaPlugin() { // Add commands try { - prepareCommand() + CustomAnvilCommand(this) } catch (e: Exception) { logger.log(Level.SEVERE, "error trying to register commands", e) MetricsUtil.trackError(e) @@ -326,14 +326,4 @@ open class CustomAnvil : JavaPlugin() { return yamlConfig } - fun prepareCommand() { - var command = getCommand(commandReloadName) - command?.setExecutor(ReloadExecutor()) - - command = getCommand(commandConfigName) - command?.setExecutor(EditConfigExecutor()) - - CustomAnvilCommand(this) - } - } diff --git a/src/main/kotlin/xyz/alexcrea/cuanvil/command/CASubCommand.kt b/src/main/kotlin/xyz/alexcrea/cuanvil/command/CASubCommand.kt index 5df484ee..e76009ad 100644 --- a/src/main/kotlin/xyz/alexcrea/cuanvil/command/CASubCommand.kt +++ b/src/main/kotlin/xyz/alexcrea/cuanvil/command/CASubCommand.kt @@ -1,50 +1,25 @@ package xyz.alexcrea.cuanvil.command -import org.bukkit.ChatColor import org.bukkit.command.Command -import org.bukkit.command.CommandExecutor import org.bukkit.command.CommandSender -abstract class CASubCommand : CommandExecutor { +interface CASubCommand { - private var alreadySaid = false; - override fun onCommand( - sender: CommandSender, - cmd: Command, - cmdstr: String, - args: Array - ): Boolean { - if (!alreadySaid) { - sender.sendMessage( - ChatColor.RED.toString() + - "Please not that this command will be replaced as a subcommand of `/customanvil` or `/ca`" - ) - alreadySaid = true - } - - return executeCommand(sender, cmd, cmdstr, args) - } - - abstract fun executeCommand( + fun executeCommand( sender: CommandSender, cmd: Command, cmdstr: String, args: Array ): Boolean - open fun allowed(sender: CommandSender): Boolean { - return true - } + fun allowed(sender: CommandSender): Boolean - open fun tabCompleter( + fun tabCompleter( sender: CommandSender, args: Array, list: MutableList - ) { - } + ) - open fun description(): String { - return "no description" - } + fun description(): String } \ No newline at end of file diff --git a/src/main/kotlin/xyz/alexcrea/cuanvil/command/DebugToggleExecutor.kt b/src/main/kotlin/xyz/alexcrea/cuanvil/command/DebugToggleExecutor.kt index c668e6e0..302ff782 100644 --- a/src/main/kotlin/xyz/alexcrea/cuanvil/command/DebugToggleExecutor.kt +++ b/src/main/kotlin/xyz/alexcrea/cuanvil/command/DebugToggleExecutor.kt @@ -12,7 +12,7 @@ import org.bukkit.command.CommandSender import org.bukkit.entity.Player import xyz.alexcrea.cuanvil.command.DiagnosticExecutor.Companion.NO_DIAG_PERM -class DebugToggleExecutor : CASubCommand() { +class DebugToggleExecutor : CASubCommand { override fun description(): String { return "Used to toggle debug logs and retrieve it" diff --git a/src/main/kotlin/xyz/alexcrea/cuanvil/command/DiagnosticExecutor.kt b/src/main/kotlin/xyz/alexcrea/cuanvil/command/DiagnosticExecutor.kt index b7bb1dd9..efbf2902 100644 --- a/src/main/kotlin/xyz/alexcrea/cuanvil/command/DiagnosticExecutor.kt +++ b/src/main/kotlin/xyz/alexcrea/cuanvil/command/DiagnosticExecutor.kt @@ -30,8 +30,7 @@ import xyz.alexcrea.cuanvil.util.MetricsUtil import java.util.* import java.util.stream.Collectors - -class DiagnosticExecutor : CASubCommand() { +class DiagnosticExecutor : CASubCommand { companion object { const val NO_DIAG_PERM = "You do not have permission to diagnostic this server" @@ -327,10 +326,10 @@ class DiagnosticExecutor : CASubCommand() { stb.append( "\nNamespaces: ${ - map.entries.stream() - .map { (key, value) -> "$key ($value)" } - .reduce { a, b -> "$a, $b" }.get() - }" + map.entries.stream() + .map { (key, value) -> "$key ($value)" } + .reduce { a, b -> "$a, $b" }.get() + }" ) } diff --git a/src/main/kotlin/xyz/alexcrea/cuanvil/command/EditConfigExecutor.kt b/src/main/kotlin/xyz/alexcrea/cuanvil/command/EditConfigExecutor.kt index 8ff662f9..53608818 100644 --- a/src/main/kotlin/xyz/alexcrea/cuanvil/command/EditConfigExecutor.kt +++ b/src/main/kotlin/xyz/alexcrea/cuanvil/command/EditConfigExecutor.kt @@ -8,7 +8,7 @@ import xyz.alexcrea.cuanvil.dependency.util.PlatformUtil import xyz.alexcrea.cuanvil.gui.config.MainConfigGui import xyz.alexcrea.cuanvil.gui.util.GuiGlobalActions -class EditConfigExecutor : CASubCommand() { +class EditConfigExecutor : CASubCommand { override fun executeCommand( sender: CommandSender, @@ -40,6 +40,13 @@ class EditConfigExecutor : CASubCommand() { return sender.hasPermission(CustomAnvil.editConfigPermission) } + override fun tabCompleter( + sender: CommandSender, + args: Array, + list: MutableList + ) { + } + override fun description(): String { return "Gui to edit the plugin's config" } diff --git a/src/main/kotlin/xyz/alexcrea/cuanvil/command/HelpExecutor.kt b/src/main/kotlin/xyz/alexcrea/cuanvil/command/HelpExecutor.kt index 1314d0ec..c6c4d08c 100644 --- a/src/main/kotlin/xyz/alexcrea/cuanvil/command/HelpExecutor.kt +++ b/src/main/kotlin/xyz/alexcrea/cuanvil/command/HelpExecutor.kt @@ -4,7 +4,7 @@ import com.google.common.collect.ImmutableMap import org.bukkit.command.Command import org.bukkit.command.CommandSender -class HelpExecutor : CASubCommand() { +class HelpExecutor : CASubCommand { lateinit var commands: ImmutableMap @@ -27,6 +27,17 @@ class HelpExecutor : CASubCommand() { return true } + override fun allowed(sender: CommandSender): Boolean { + return true + } + + override fun tabCompleter( + sender: CommandSender, + args: Array, + list: MutableList + ) { + } + override fun description(): String { return "Help command" } diff --git a/src/main/kotlin/xyz/alexcrea/cuanvil/command/ReloadExecutor.kt b/src/main/kotlin/xyz/alexcrea/cuanvil/command/ReloadExecutor.kt index ab832c4f..d3df341a 100644 --- a/src/main/kotlin/xyz/alexcrea/cuanvil/command/ReloadExecutor.kt +++ b/src/main/kotlin/xyz/alexcrea/cuanvil/command/ReloadExecutor.kt @@ -10,7 +10,7 @@ import xyz.alexcrea.cuanvil.dependency.DependencyManager import xyz.alexcrea.cuanvil.gui.config.global.* import xyz.alexcrea.cuanvil.update.UpdateHandler -class ReloadExecutor : CASubCommand() { +class ReloadExecutor : CASubCommand { override fun executeCommand( sender: CommandSender, @@ -40,6 +40,13 @@ class ReloadExecutor : CASubCommand() { return sender.hasPermission(CustomAnvil.commandReloadPermission) } + override fun tabCompleter( + sender: CommandSender, + args: Array, + list: MutableList + ) { + } + override fun description(): String { return "Reload the configuration of this plugin" } diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml index 9ee330f5..199e0e51 100644 --- a/src/main/resources/plugin.yml +++ b/src/main/resources/plugin.yml @@ -14,18 +14,6 @@ commands: description: Generic command for custom anvil aliases: - ca - anvilconfigreload: - description: Reload every config of this plugin - permission: ca.command.reload - aliases: - #- acreload # anvil config reload - #- careload # custom anvil reload - - carl # custom anvil reload - customanvilconfig: - description: open a menu for administrator to edit plugin's config in game - permission: ca.config.edit - aliases: - - configanvil permissions: ca.affected: