diff --git a/mcmmo-core/build.gradle.kts b/mcmmo-core/build.gradle.kts index 0a1cac572..53ce74c35 100644 --- a/mcmmo-core/build.gradle.kts +++ b/mcmmo-core/build.gradle.kts @@ -63,7 +63,7 @@ dependencies { api("org.spongepowered:configurate-yaml:3.7-SNAPSHOT") api("org.spongepowered:configurate-hocon:3.7-SNAPSHOT") api("co.aikar:acf-core:0.5.0-SNAPSHOT") //Don't change without updating the artifacts for its dependencies (see the other comments) - api("co.aikar:acf-bukkit:0.5.0-SNAPSHOT") //Don't change without updating the artifacts for its dependencies (see the other comments) + api("co.aikar:acf-paper:0.5.0-SNAPSHOT") //Don't change without updating the artifacts for its dependencies (see the other comments) // api("co.aikar:locales:1.0-SNAPSHOT") //ACF 0.5.0-SNAPSHOT is dependent on this version of locales // api("co.aikar:table:1.0.0-SNAPSHOT") //ACF 0.5.0-SNAPSHOT is dependent on this version of table // api("net.jodah:expiring-map:0.5.8") //ACF 0.5.0-SNAPSHOT is dependent on this version of expiring map diff --git a/mcmmo-core/src/main/java/com/gmail/nossr50/commands/admin/NBTToolsCommand.java b/mcmmo-core/src/main/java/com/gmail/nossr50/commands/admin/NBTToolsCommand.java index 82a63daab..fcbb129b7 100644 --- a/mcmmo-core/src/main/java/com/gmail/nossr50/commands/admin/NBTToolsCommand.java +++ b/mcmmo-core/src/main/java/com/gmail/nossr50/commands/admin/NBTToolsCommand.java @@ -1,15 +1,22 @@ package com.gmail.nossr50.commands.admin; import co.aikar.commands.BaseCommand; +import co.aikar.commands.annotation.CommandAlias; +import co.aikar.commands.annotation.Default; import co.aikar.commands.annotation.Dependency; import co.aikar.commands.annotation.Description; import com.gmail.nossr50.mcMMO; +import org.bukkit.entity.Player; +@CommandAlias("nbttools") @Description("Read or Modify values of NBT on an item in-hand") public class NBTToolsCommand extends BaseCommand { @Dependency private mcMMO pluginRef; - + @Default + public void onCommand(Player player) { + player.sendMessage("hi"); + } } diff --git a/mcmmo-core/src/main/java/com/gmail/nossr50/commands/admin/PlayerDebugCommand.java b/mcmmo-core/src/main/java/com/gmail/nossr50/commands/admin/PlayerDebugCommand.java index 6250d2a2d..6e8f58038 100644 --- a/mcmmo-core/src/main/java/com/gmail/nossr50/commands/admin/PlayerDebugCommand.java +++ b/mcmmo-core/src/main/java/com/gmail/nossr50/commands/admin/PlayerDebugCommand.java @@ -1,6 +1,7 @@ package com.gmail.nossr50.commands.admin; import co.aikar.commands.BaseCommand; +import co.aikar.commands.annotation.CommandAlias; import co.aikar.commands.annotation.Default; import co.aikar.commands.annotation.Dependency; import co.aikar.commands.annotation.Description; @@ -10,18 +11,19 @@ import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; +@CommandAlias("mmodebug") @Description("Puts the player into debug mode, which helps problem solve bugs in mcMMO.") public class PlayerDebugCommand extends BaseCommand { @Dependency - private mcMMO pluginRef; + private mcMMO plugin; @Default public void onCommand(CommandSender sender) { if(sender instanceof Player) { - McMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer((Player) sender); + McMMOPlayer mcMMOPlayer = plugin.getUserManager().getPlayer((Player) sender); mcMMOPlayer.toggleDebugMode(); //Toggle debug mode - pluginRef.getNotificationManager().sendPlayerInformationChatOnlyPrefixed(mcMMOPlayer.getPlayer(), "Commands.Mmodebug.Toggle", String.valueOf(mcMMOPlayer.isDebugMode())); + plugin.getNotificationManager().sendPlayerInformationChatOnlyPrefixed(mcMMOPlayer.getPlayer(), "Commands.Mmodebug.Toggle", String.valueOf(mcMMOPlayer.isDebugMode())); } else { //TODO: Localize sender.sendMessage("Players only"); diff --git a/mcmmo-core/src/main/java/com/gmail/nossr50/mcMMO.java b/mcmmo-core/src/main/java/com/gmail/nossr50/mcMMO.java index 8108cf4b1..64f0d801f 100644 --- a/mcmmo-core/src/main/java/com/gmail/nossr50/mcMMO.java +++ b/mcmmo-core/src/main/java/com/gmail/nossr50/mcMMO.java @@ -218,6 +218,7 @@ public class mcMMO extends JavaPlugin { scheduleTasks(); commandRegistrationManager = new CommandRegistrationManager(this); + commandRegistrationManager.registerACFCommands(); commandRegistrationManager.registerCommands(); nbtManager = new NBTManager(); diff --git a/mcmmo-core/src/main/java/com/gmail/nossr50/util/commands/CommandRegistrationManager.java b/mcmmo-core/src/main/java/com/gmail/nossr50/util/commands/CommandRegistrationManager.java index 75068f146..dc42788b0 100644 --- a/mcmmo-core/src/main/java/com/gmail/nossr50/util/commands/CommandRegistrationManager.java +++ b/mcmmo-core/src/main/java/com/gmail/nossr50/util/commands/CommandRegistrationManager.java @@ -1,6 +1,6 @@ package com.gmail.nossr50.util.commands; -import co.aikar.commands.BukkitCommandManager; +import co.aikar.commands.PaperCommandManager; import com.gmail.nossr50.commands.*; import com.gmail.nossr50.commands.admin.NBTToolsCommand; import com.gmail.nossr50.commands.admin.PlayerDebugCommand; @@ -29,15 +29,70 @@ import java.util.ArrayList; import java.util.List; import java.util.Locale; +//TODO: Properly rewrite ACF integration later public final class CommandRegistrationManager { private final mcMMO pluginRef; private String permissionsMessage; - private BukkitCommandManager bukkitCommandManager; + //NOTE: Does not actually require paper, will work for bukkit + private PaperCommandManager commandManager; public CommandRegistrationManager(mcMMO pluginRef) { this.pluginRef = pluginRef; permissionsMessage = pluginRef.getLocaleManager().getString("mcMMO.NoPermission"); - bukkitCommandManager = new BukkitCommandManager(pluginRef); + commandManager = new PaperCommandManager(pluginRef); + } + + /** + * Register ACF Commands + */ + //TODO: Properly rewrite ACF integration later + public void registerACFCommands() { + //Register ACF Commands + registerNBTToolsCommand(); + registerMmoDebugCommand(); + } + + /** + * Register exception handlers for the ACF commands + */ + //TODO: Properly rewrite ACF integration later + private void registerExceptionHandlers() { + registerDefaultExceptionHandler(); + } + + /** + * Register default exception handler + */ + //TODO: Properly rewrite ACF integration later + private void registerDefaultExceptionHandler() { + commandManager.setDefaultExceptionHandler((command, registeredCommand, sender, args, t) -> { + pluginRef.getLogger().warning("Error occurred while executing command " + command.getName()); + return false; + }); + } + + /** + * Register contexts for ACF + */ + //TODO: Properly rewrite ACF integration later + private void registerContexts() { + + } + + /** + * Register the NBT Tools command + */ + //TODO: Properly rewrite ACF integration later + private void registerNBTToolsCommand() { + commandManager.registerCommand(new NBTToolsCommand()); + } + + /** + * Register the MMO Debug command + */ + //TODO: Properly rewrite ACF integration later + private void registerMmoDebugCommand() { + commandManager.registerCommand(new PlayerDebugCommand()); } private void registerSkillCommands() { @@ -121,40 +176,6 @@ public final class CommandRegistrationManager { } } - /** - * Initialize ACF commands - */ - private void initACF() { - //TODO: See if needed - bukkitCommandManager.enableUnstableAPI("help"); - - - registerACFCommands(); - } - - /** - * Register ACF Commands - */ - private void registerACFCommands() { - //Register ACF Commands - registerNBTToolsCommand(); - registerMmoDebugCommand(); - } - - /** - * Register the NBT Tools command - */ - private void registerNBTToolsCommand() { - bukkitCommandManager.registerCommand(new NBTToolsCommand()); - } - - /** - * Register the MMO Debug command - */ - private void registerMmoDebugCommand() { - bukkitCommandManager.registerCommand(new PlayerDebugCommand()); - } - private void registerAddlevelsCommand() { PluginCommand command = pluginRef.getCommand("addlevels"); command.setDescription(pluginRef.getLocaleManager().getString("Commands.Description.addlevels")); @@ -455,7 +476,6 @@ public final class CommandRegistrationManager { public void registerCommands() { // Generic Commands registerMmoInfoCommand(); - registerMmoDebugCommand(); registerMcabilityCommand(); registerMcgodCommand(); registerMcChatSpyCommand(); @@ -504,8 +524,5 @@ public final class CommandRegistrationManager { registerMcmmoReloadCommand(); // Admin commands registerReloadLocaleCommand(); - - //ACF Commands - initACF(); } } diff --git a/mcmmo-core/src/main/resources/plugin.yml b/mcmmo-core/src/main/resources/plugin.yml index e4b6123e8..5193447cd 100644 --- a/mcmmo-core/src/main/resources/plugin.yml +++ b/mcmmo-core/src/main/resources/plugin.yml @@ -19,12 +19,6 @@ load: POSTWORLD api-version: 1.13 commands: - nbttools: - description: Modify or Read NBT from an item in hand - permission: mcmmo.commands.nbttools - mmodebug: - aliases: [mcmmodebugmode] - description: Toggles a debug mode which will print useful information to chat mmoinfo: aliases: [mcinfo] description: Info pages for mcMMO