More work on ACF integration

This commit is contained in:
nossr50 2020-02-12 15:20:21 -08:00
parent 2d342f8a3d
commit f45c70b694
6 changed files with 73 additions and 52 deletions

View File

@ -63,7 +63,7 @@ dependencies {
api("org.spongepowered:configurate-yaml:3.7-SNAPSHOT") api("org.spongepowered:configurate-yaml:3.7-SNAPSHOT")
api("org.spongepowered:configurate-hocon: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-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: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("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 // api("net.jodah:expiring-map:0.5.8") //ACF 0.5.0-SNAPSHOT is dependent on this version of expiring map

View File

@ -1,15 +1,22 @@
package com.gmail.nossr50.commands.admin; package com.gmail.nossr50.commands.admin;
import co.aikar.commands.BaseCommand; 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.Dependency;
import co.aikar.commands.annotation.Description; import co.aikar.commands.annotation.Description;
import com.gmail.nossr50.mcMMO; import com.gmail.nossr50.mcMMO;
import org.bukkit.entity.Player;
@CommandAlias("nbttools")
@Description("Read or Modify values of NBT on an item in-hand") @Description("Read or Modify values of NBT on an item in-hand")
public class NBTToolsCommand extends BaseCommand { public class NBTToolsCommand extends BaseCommand {
@Dependency @Dependency
private mcMMO pluginRef; private mcMMO pluginRef;
@Default
public void onCommand(Player player) {
player.sendMessage("hi");
}
} }

View File

@ -1,6 +1,7 @@
package com.gmail.nossr50.commands.admin; package com.gmail.nossr50.commands.admin;
import co.aikar.commands.BaseCommand; import co.aikar.commands.BaseCommand;
import co.aikar.commands.annotation.CommandAlias;
import co.aikar.commands.annotation.Default; import co.aikar.commands.annotation.Default;
import co.aikar.commands.annotation.Dependency; import co.aikar.commands.annotation.Dependency;
import co.aikar.commands.annotation.Description; import co.aikar.commands.annotation.Description;
@ -10,18 +11,19 @@ import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
@CommandAlias("mmodebug")
@Description("Puts the player into debug mode, which helps problem solve bugs in mcMMO.") @Description("Puts the player into debug mode, which helps problem solve bugs in mcMMO.")
public class PlayerDebugCommand extends BaseCommand { public class PlayerDebugCommand extends BaseCommand {
@Dependency @Dependency
private mcMMO pluginRef; private mcMMO plugin;
@Default @Default
public void onCommand(CommandSender sender) { public void onCommand(CommandSender sender) {
if(sender instanceof Player) { if(sender instanceof Player) {
McMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer((Player) sender); McMMOPlayer mcMMOPlayer = plugin.getUserManager().getPlayer((Player) sender);
mcMMOPlayer.toggleDebugMode(); //Toggle debug mode 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 { } else {
//TODO: Localize //TODO: Localize
sender.sendMessage("Players only"); sender.sendMessage("Players only");

View File

@ -218,6 +218,7 @@ public class mcMMO extends JavaPlugin {
scheduleTasks(); scheduleTasks();
commandRegistrationManager = new CommandRegistrationManager(this); commandRegistrationManager = new CommandRegistrationManager(this);
commandRegistrationManager.registerACFCommands();
commandRegistrationManager.registerCommands(); commandRegistrationManager.registerCommands();
nbtManager = new NBTManager(); nbtManager = new NBTManager();

View File

@ -1,6 +1,6 @@
package com.gmail.nossr50.util.commands; 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.*;
import com.gmail.nossr50.commands.admin.NBTToolsCommand; import com.gmail.nossr50.commands.admin.NBTToolsCommand;
import com.gmail.nossr50.commands.admin.PlayerDebugCommand; import com.gmail.nossr50.commands.admin.PlayerDebugCommand;
@ -29,15 +29,70 @@ import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Locale; import java.util.Locale;
//TODO: Properly rewrite ACF integration later
public final class CommandRegistrationManager { public final class CommandRegistrationManager {
private final mcMMO pluginRef; private final mcMMO pluginRef;
private String permissionsMessage; private String permissionsMessage;
private BukkitCommandManager bukkitCommandManager; //NOTE: Does not actually require paper, will work for bukkit
private PaperCommandManager commandManager;
public CommandRegistrationManager(mcMMO pluginRef) { public CommandRegistrationManager(mcMMO pluginRef) {
this.pluginRef = pluginRef; this.pluginRef = pluginRef;
permissionsMessage = pluginRef.getLocaleManager().getString("mcMMO.NoPermission"); 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() { 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() { private void registerAddlevelsCommand() {
PluginCommand command = pluginRef.getCommand("addlevels"); PluginCommand command = pluginRef.getCommand("addlevels");
command.setDescription(pluginRef.getLocaleManager().getString("Commands.Description.addlevels")); command.setDescription(pluginRef.getLocaleManager().getString("Commands.Description.addlevels"));
@ -455,7 +476,6 @@ public final class CommandRegistrationManager {
public void registerCommands() { public void registerCommands() {
// Generic Commands // Generic Commands
registerMmoInfoCommand(); registerMmoInfoCommand();
registerMmoDebugCommand();
registerMcabilityCommand(); registerMcabilityCommand();
registerMcgodCommand(); registerMcgodCommand();
registerMcChatSpyCommand(); registerMcChatSpyCommand();
@ -504,8 +524,5 @@ public final class CommandRegistrationManager {
registerMcmmoReloadCommand(); registerMcmmoReloadCommand();
// Admin commands // Admin commands
registerReloadLocaleCommand(); registerReloadLocaleCommand();
//ACF Commands
initACF();
} }
} }

View File

@ -19,12 +19,6 @@ load: POSTWORLD
api-version: 1.13 api-version: 1.13
commands: 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: mmoinfo:
aliases: [mcinfo] aliases: [mcinfo]
description: Info pages for mcMMO description: Info pages for mcMMO