From e637e7591e46a22b1df964229748b9496ff3dab4 Mon Sep 17 00:00:00 2001 From: Esophose Date: Sat, 6 Oct 2018 13:53:31 -0600 Subject: [PATCH] /pp data finished, change some wording, remove debug output --- .../playerparticles/PlayerParticles.java | 1 - .../command/AddCommandModule.java | 3 +- .../command/DataCommandModule.java | 43 ++++--- .../command/FixedCommandModule.java | 1 - .../command/ParticleCommandHandler.java | 118 +++++------------- .../command/ResetCommandModule.java | 33 +---- .../playerparticles/manager/DataManager.java | 12 +- .../playerparticles/manager/LangManager.java | 18 ++- .../manager/PermissionManager.java | 10 -- .../styles/ParticleStyleBlockBreak.java | 4 +- .../styles/ParticleStyleBlockPlace.java | 4 +- src/config.yml | 2 +- src/lang/default.lang | 24 ++-- src/plugin.yml | 2 +- 14 files changed, 91 insertions(+), 184 deletions(-) diff --git a/src/com/esophose/playerparticles/PlayerParticles.java b/src/com/esophose/playerparticles/PlayerParticles.java index 807d91c..93a9a32 100644 --- a/src/com/esophose/playerparticles/PlayerParticles.java +++ b/src/com/esophose/playerparticles/PlayerParticles.java @@ -1,6 +1,5 @@ /* * TODO: v5.3 - * + Command to force set an effect/style for a player * + Add new style 'tornado' * + Add new style 'companion' * + Add new style 'atom' diff --git a/src/com/esophose/playerparticles/command/AddCommandModule.java b/src/com/esophose/playerparticles/command/AddCommandModule.java index a884742..35550be 100644 --- a/src/com/esophose/playerparticles/command/AddCommandModule.java +++ b/src/com/esophose/playerparticles/command/AddCommandModule.java @@ -1,7 +1,6 @@ package com.esophose.playerparticles.command; import java.util.ArrayList; -import java.util.Arrays; import java.util.List; import org.bukkit.Material; @@ -133,7 +132,7 @@ public class AddCommandModule implements CommandModule { public List onTabComplete(PPlayer pplayer, String[] args) { Player p = pplayer.getPlayer(); List matches = new ArrayList(); - System.out.println("Args in AddCommandModule: " + Arrays.toString(args) + " " + args.length); + if (args.length <= 1) { // Effect name if (args.length == 0) matches = PermissionManager.getEffectsUserHasPermissionFor(p); else StringUtil.copyPartialMatches(args[0], PermissionManager.getEffectsUserHasPermissionFor(p), matches); diff --git a/src/com/esophose/playerparticles/command/DataCommandModule.java b/src/com/esophose/playerparticles/command/DataCommandModule.java index 0bba88e..1add1bd 100644 --- a/src/com/esophose/playerparticles/command/DataCommandModule.java +++ b/src/com/esophose/playerparticles/command/DataCommandModule.java @@ -1,9 +1,13 @@ package com.esophose.playerparticles.command; +import java.util.ArrayList; import java.util.List; +import org.bukkit.util.StringUtil; + import com.esophose.playerparticles.manager.LangManager; import com.esophose.playerparticles.manager.LangManager.Lang; +import com.esophose.playerparticles.manager.PermissionManager; import com.esophose.playerparticles.particles.PPlayer; import com.esophose.playerparticles.particles.ParticleEffect; import com.esophose.playerparticles.particles.ParticleEffect.ParticleProperty; @@ -13,31 +17,38 @@ public class DataCommandModule implements CommandModule { public void onCommandExecute(PPlayer pplayer, String[] args) { if (args.length > 0) { ParticleEffect effect = ParticleEffect.fromName(args[0]); + if (effect == null) { + LangManager.sendMessage(pplayer, Lang.EFFECT_INVALID, args[0]); + return; + } - if ((!effect.hasProperty(ParticleProperty.REQUIRES_MATERIAL_DATA) && !effect.hasProperty(ParticleProperty.COLORABLE)) || args.length == 0) { - if (effect.hasProperty(ParticleProperty.COLORABLE)) { - if (effect == ParticleEffect.NOTE) { - LangManager.sendMessage(pplayer, Lang.DATA_USAGE_NOTE); - } else { - LangManager.sendMessage(pplayer, Lang.DATA_USAGE_COLOR); - } - } else if (effect.hasProperty(ParticleProperty.REQUIRES_MATERIAL_DATA)) { - if (effect == ParticleEffect.ITEM) { - LangManager.sendMessage(pplayer, Lang.DATA_USAGE_ITEM); - } else { - LangManager.sendMessage(pplayer, Lang.DATA_USAGE_BLOCK); - } + if (effect.hasProperty(ParticleProperty.COLORABLE)) { + if (effect == ParticleEffect.NOTE) { + LangManager.sendMessage(pplayer, Lang.DATA_USAGE_NOTE, effect.getName()); } else { - LangManager.sendMessage(pplayer, Lang.DATA_USAGE_NONE); + LangManager.sendMessage(pplayer, Lang.DATA_USAGE_COLOR, effect.getName()); } + } else if (effect.hasProperty(ParticleProperty.REQUIRES_MATERIAL_DATA)) { + if (effect == ParticleEffect.ITEM) { + LangManager.sendMessage(pplayer, Lang.DATA_USAGE_ITEM, effect.getName()); + } else { + LangManager.sendMessage(pplayer, Lang.DATA_USAGE_BLOCK, effect.getName()); + } + } else { + LangManager.sendMessage(pplayer, Lang.DATA_USAGE_NONE, effect.getName()); } } else { - LangManager.sendMessage(pplayer, Lang.EFFECT_INVALID); + LangManager.sendMessage(pplayer, Lang.COMMAND_DATA_NO_ARGS); } } public List onTabComplete(PPlayer pplayer, String[] args) { - return null; + List matches = new ArrayList(); + if (args.length <= 1) { + if (args.length == 0) matches = PermissionManager.getEffectsUserHasPermissionFor(pplayer.getPlayer()); + else StringUtil.copyPartialMatches(args[0], PermissionManager.getEffectsUserHasPermissionFor(pplayer.getPlayer()), matches); + } + return matches; } public String getName() { diff --git a/src/com/esophose/playerparticles/command/FixedCommandModule.java b/src/com/esophose/playerparticles/command/FixedCommandModule.java index fdd51f3..cf3bb2c 100644 --- a/src/com/esophose/playerparticles/command/FixedCommandModule.java +++ b/src/com/esophose/playerparticles/command/FixedCommandModule.java @@ -36,7 +36,6 @@ public class FixedCommandModule implements CommandModule { } if (args.length == 0) { // General information on command - LangManager.sendMessage(p, Lang.FIXED_INVALID_COMMAND); LangManager.sendMessage(p, Lang.COMMAND_DESCRIPTION_FIXED_CREATE); LangManager.sendMessage(p, Lang.COMMAND_DESCRIPTION_FIXED_REMOVE); LangManager.sendMessage(p, Lang.COMMAND_DESCRIPTION_FIXED_LIST); diff --git a/src/com/esophose/playerparticles/command/ParticleCommandHandler.java b/src/com/esophose/playerparticles/command/ParticleCommandHandler.java index 2384b53..6cc0590 100644 --- a/src/com/esophose/playerparticles/command/ParticleCommandHandler.java +++ b/src/com/esophose/playerparticles/command/ParticleCommandHandler.java @@ -16,15 +16,15 @@ import com.esophose.playerparticles.manager.LangManager.Lang; import com.esophose.playerparticles.manager.PermissionManager; public class ParticleCommandHandler implements CommandExecutor, TabCompleter { - + /** * A list of all commands */ private static List commands; - + static { commands = new ArrayList(); - + commands.add(new AddCommandModule()); commands.add(new DataCommandModule()); commands.add(new DefaultCommandModule()); @@ -44,7 +44,7 @@ public class ParticleCommandHandler implements CommandExecutor, TabCompleter { commands.add(new VersionCommandModule()); commands.add(new WorldsCommandModule()); } - + /** * Finds a matching CommandModule by its name * @@ -52,12 +52,12 @@ public class ParticleCommandHandler implements CommandExecutor, TabCompleter { * @return The found CommandModule, otherwise null */ public static CommandModule findMatchingCommand(String commandName) { - for (CommandModule commandModule : commands) - if (commandModule.getName().equalsIgnoreCase(commandName)) - return commandModule; - return null; + for (CommandModule commandModule : commands) + if (commandModule.getName().equalsIgnoreCase(commandName)) + return commandModule; + return null; } - + /** * Get a list of all available commands * @@ -66,7 +66,7 @@ public class ParticleCommandHandler implements CommandExecutor, TabCompleter { public static List getCommands() { return commands; } - + /** * Get all available command names * @@ -74,7 +74,7 @@ public class ParticleCommandHandler implements CommandExecutor, TabCompleter { */ public static List getCommandNames() { List commandNames = new ArrayList(); - for (CommandModule cmd : commands) + for (CommandModule cmd : commands) commandNames.add(cmd.getName()); return commandNames; } @@ -92,31 +92,26 @@ public class ParticleCommandHandler implements CommandExecutor, TabCompleter { public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) { if (!(sender instanceof Player)) return true; Player p = (Player) sender; - + DataManager.getPPlayer(p.getUniqueId(), (pplayer) -> { - String commandName = args.length > 0 ? args[0] : ""; - CommandModule commandModule = findMatchingCommand(commandName); - - if (commandModule != null) { - if (commandModule.requiresEffects() && PermissionManager.getEffectsUserHasPermissionFor(p).size() == 1) { - LangManager.sendMessage(p, Lang.COMMAND_ERROR_NO_EFFECTS); - } else { - String[] cmdArgs = new String[0]; + String commandName = args.length > 0 ? args[0] : ""; + CommandModule commandModule = findMatchingCommand(commandName); + + if (commandModule != null) { + if (commandModule.requiresEffects() && PermissionManager.getEffectsUserHasPermissionFor(p).size() == 1) { + LangManager.sendMessage(p, Lang.COMMAND_ERROR_NO_EFFECTS); + } else { + String[] cmdArgs = new String[0]; if (args.length > 1) cmdArgs = Arrays.copyOfRange(args, 1, args.length); - commandModule.onCommandExecute(pplayer, cmdArgs); - } - } else { - LangManager.sendMessage(p, Lang.COMMAND_ERROR_UNKNOWN); - } + commandModule.onCommandExecute(pplayer, cmdArgs); + } + } else { + LangManager.sendMessage(p, Lang.COMMAND_ERROR_UNKNOWN); + } }); - + return true; } - -// private static final String[] COMMANDS = { "help", "gui", "effect", "effects", "style", "styles", "data", "fixed", "reset", "worlds", "version" }; -// private static final String[] FIXED_COMMANDS = { "create", "remove", "list", "info" }; -// private static final List BLOCK_MATERIALS = ParticleUtils.getAllBlockMaterials(); -// private static final List ITEM_MATERIALS = ParticleUtils.getAllItemMaterials(); /** * Activated when a user pushes tab in chat prefixed with /pp @@ -131,67 +126,18 @@ public class ParticleCommandHandler implements CommandExecutor, TabCompleter { if (!(sender instanceof Player)) return new ArrayList(); if (cmd.getName().equalsIgnoreCase("pp")) { - System.out.println("Args in onTabComplete: " + Arrays.toString(args) + " " + args.length); if (args.length <= 1) { CommandModule commandModule = findMatchingCommand(""); // Get the default command module return commandModule.onTabComplete(DataManager.getPPlayer(((Player) sender).getUniqueId()), args); } else if (args.length >= 2) { - CommandModule commandModule = findMatchingCommand(args[0]); - String[] cmdArgs = Arrays.copyOfRange(args, 1, args.length); - if (commandModule != null) { - return commandModule.onTabComplete(DataManager.getPPlayer(((Player) sender).getUniqueId()), cmdArgs); - } - - // TODO: Move to correct CommandModules -// if (args[0].equalsIgnoreCase("effect") && args.length == 2) { -// List commands = PermissionManager.getEffectsUserHasPermissionFor((Player) sender); -// StringUtil.copyPartialMatches(args[1], commands, completions); -// } else if (args[0].equalsIgnoreCase("style") && args.length == 2) { -// List commands = PermissionManager.getStylesUserHasPermissionFor((Player) sender); -// StringUtil.copyPartialMatches(args[1], commands, completions); -// } else if (args[0].equalsIgnoreCase("fixed") && args.length > 1) { -// if (args.length == 2) { -// List commands = Arrays.asList(FIXED_COMMANDS); -// StringUtil.copyPartialMatches(args[1], commands, completions); -// } else if (args[1].equalsIgnoreCase("create")) { -// completions.add("