diff --git a/src/com/esophose/playerparticles/PlayerParticles.java b/src/com/esophose/playerparticles/PlayerParticles.java index 7148037..464f0d8 100644 --- a/src/com/esophose/playerparticles/PlayerParticles.java +++ b/src/com/esophose/playerparticles/PlayerParticles.java @@ -4,7 +4,6 @@ * + Add new style 'doubleorbit' * * Adjust style positioning around central point based on if they are being spawned for a player or fixed effect * * Write a class called ConfigManager which manages updating the config.yml between versions so it doesn't have to be deleted every time - * * Clean up the '/pp help' menu and command descriptions so each command fits on one line * * Display a note in the GUI under event-based styles */ diff --git a/src/com/esophose/playerparticles/command/CommandModule.java b/src/com/esophose/playerparticles/command/CommandModule.java index a4165a6..cd0d57a 100644 --- a/src/com/esophose/playerparticles/command/CommandModule.java +++ b/src/com/esophose/playerparticles/command/CommandModule.java @@ -1,14 +1,11 @@ package com.esophose.playerparticles.command; -import java.text.MessageFormat; import java.util.List; import com.esophose.playerparticles.manager.LangManager; import com.esophose.playerparticles.manager.LangManager.Lang; import com.esophose.playerparticles.particles.PPlayer; -import net.md_5.bungee.api.ChatColor; - public interface CommandModule { /** @@ -63,8 +60,7 @@ public interface CommandModule { * @param command The command to display usage for */ public static void printUsage(PPlayer pplayer, CommandModule command) { - Object[] args = new Object[] { command.getName(), command.getArguments() }; - LangManager.sendCustomMessage(pplayer, new MessageFormat(ChatColor.YELLOW + "/pp {0} {1}").format(args)); + LangManager.sendMessage(pplayer, Lang.COMMAND_DESCRIPTIONS_USAGE, command.getName(), command.getArguments()); } /** @@ -75,11 +71,9 @@ public interface CommandModule { */ public static void printUsageWithDescription(PPlayer pplayer, CommandModule command) { if (command.getArguments().length() == 0) { - Object[] args = new Object[] { command.getName(), LangManager.getText(command.getDescription()) }; - LangManager.sendCustomMessage(pplayer, new MessageFormat(ChatColor.YELLOW + "/pp {0} - {1}").format(args)); + LangManager.sendSimpleMessage(pplayer, Lang.COMMAND_DESCRIPTIONS_HELP_1, command.getName(), LangManager.getText(command.getDescription())); } else { - Object[] args = new Object[] { command.getName(), command.getArguments(), LangManager.getText(command.getDescription()) }; - LangManager.sendCustomMessage(pplayer, new MessageFormat(ChatColor.YELLOW + "/pp {0} {1} - {2}").format(args)); + LangManager.sendSimpleMessage(pplayer, Lang.COMMAND_DESCRIPTIONS_HELP_2, command.getName(), command.getArguments(), LangManager.getText(command.getDescription())); } } diff --git a/src/com/esophose/playerparticles/command/EffectCommandModule.java b/src/com/esophose/playerparticles/command/EffectCommandModule.java deleted file mode 100644 index 74827de..0000000 --- a/src/com/esophose/playerparticles/command/EffectCommandModule.java +++ /dev/null @@ -1,36 +0,0 @@ -package com.esophose.playerparticles.command; - -import java.util.ArrayList; -import java.util.List; - -import com.esophose.playerparticles.manager.LangManager; -import com.esophose.playerparticles.manager.LangManager.Lang; -import com.esophose.playerparticles.particles.PPlayer; - -public class EffectCommandModule implements CommandModule { - - public void onCommandExecute(PPlayer pplayer, String[] args) { - LangManager.sendMessage(pplayer, Lang.COMMAND_DESCRIPTION_EFFECT); - } - - public List onTabComplete(PPlayer pplayer, String[] args) { - return new ArrayList(); - } - - public String getName() { - return "effect"; - } - - public Lang getDescription() { - return Lang.COMMAND_DESCRIPTION_EFFECT; - } - - public String getArguments() { - return ""; - } - - public boolean requiresEffects() { - return true; - } - -} diff --git a/src/com/esophose/playerparticles/command/HelpCommandModule.java b/src/com/esophose/playerparticles/command/HelpCommandModule.java index 7a5acbb..b22d0bc 100644 --- a/src/com/esophose/playerparticles/command/HelpCommandModule.java +++ b/src/com/esophose/playerparticles/command/HelpCommandModule.java @@ -3,17 +3,18 @@ package com.esophose.playerparticles.command; import java.util.ArrayList; import java.util.List; +import com.esophose.playerparticles.manager.LangManager; import com.esophose.playerparticles.manager.LangManager.Lang; import com.esophose.playerparticles.particles.PPlayer; public class HelpCommandModule implements CommandModule { public void onCommandExecute(PPlayer pplayer, String[] args) { - // TODO: Add pages, there are a lot of commands + LangManager.sendMessage(pplayer, Lang.COMMAND_DESCRIPTIONS); List cmds = ParticleCommandHandler.getCommands(); - for (CommandModule cmd : cmds) { - CommandModule.printUsageWithDescription(pplayer, cmd); - } + for (CommandModule cmd : cmds) + if (!(cmd instanceof DefaultCommandModule)) + CommandModule.printUsageWithDescription(pplayer, cmd); } public List onTabComplete(PPlayer pplayer, String[] args) { diff --git a/src/com/esophose/playerparticles/command/ParticleCommandHandler.java b/src/com/esophose/playerparticles/command/ParticleCommandHandler.java index 265a523..3776c1c 100644 --- a/src/com/esophose/playerparticles/command/ParticleCommandHandler.java +++ b/src/com/esophose/playerparticles/command/ParticleCommandHandler.java @@ -29,7 +29,6 @@ public class ParticleCommandHandler implements CommandExecutor, TabCompleter { commands.add(new DataCommandModule()); commands.add(new DefaultCommandModule()); commands.add(new EditCommandModule()); - commands.add(new EffectCommandModule()); commands.add(new EffectsCommandModule()); commands.add(new FixedCommandModule()); commands.add(new GroupCommandModule()); @@ -39,7 +38,6 @@ public class ParticleCommandHandler implements CommandExecutor, TabCompleter { commands.add(new ReloadCommandModule()); commands.add(new RemoveCommandModule()); commands.add(new ResetCommandModule()); - commands.add(new StyleCommandModule()); commands.add(new StylesCommandModule()); commands.add(new ToggleCommandModule()); commands.add(new VersionCommandModule()); diff --git a/src/com/esophose/playerparticles/command/StyleCommandModule.java b/src/com/esophose/playerparticles/command/StyleCommandModule.java deleted file mode 100644 index 56e1d68..0000000 --- a/src/com/esophose/playerparticles/command/StyleCommandModule.java +++ /dev/null @@ -1,36 +0,0 @@ -package com.esophose.playerparticles.command; - -import java.util.ArrayList; -import java.util.List; - -import com.esophose.playerparticles.manager.LangManager; -import com.esophose.playerparticles.manager.LangManager.Lang; -import com.esophose.playerparticles.particles.PPlayer; - -public class StyleCommandModule implements CommandModule { - - public void onCommandExecute(PPlayer pplayer, String[] args) { - LangManager.sendMessage(pplayer, Lang.COMMAND_DESCRIPTION_STYLE); - } - - public List onTabComplete(PPlayer pplayer, String[] args) { - return new ArrayList(); - } - - public String getName() { - return "style"; - } - - public Lang getDescription() { - return Lang.COMMAND_DESCRIPTION_STYLE; - } - - public String getArguments() { - return ""; - } - - public boolean requiresEffects() { - return true; - } - -} diff --git a/src/com/esophose/playerparticles/manager/LangManager.java b/src/com/esophose/playerparticles/manager/LangManager.java index ee1f878..6ef120e 100644 --- a/src/com/esophose/playerparticles/manager/LangManager.java +++ b/src/com/esophose/playerparticles/manager/LangManager.java @@ -27,11 +27,14 @@ public class LangManager { COMMAND_ERROR_UNKNOWN, // Command Descriptions + COMMAND_DESCRIPTIONS, + COMMAND_DESCRIPTIONS_USAGE, + COMMAND_DESCRIPTIONS_HELP_1, + COMMAND_DESCRIPTIONS_HELP_2, COMMAND_DESCRIPTION_ADD, COMMAND_DESCRIPTION_DATA, COMMAND_DESCRIPTION_DEFAULT, COMMAND_DESCRIPTION_EDIT, - COMMAND_DESCRIPTION_EFFECT, COMMAND_DESCRIPTION_EFFECTS, COMMAND_DESCRIPTION_FIXED, COMMAND_DESCRIPTION_GROUP, @@ -42,7 +45,6 @@ public class LangManager { COMMAND_DESCRIPTION_RELOAD, COMMAND_DESCRIPTION_REMOVE, COMMAND_DESCRIPTION_RESET, - COMMAND_DESCRIPTION_STYLE, COMMAND_DESCRIPTION_STYLES, COMMAND_DESCRIPTION_TOGGLE, COMMAND_DESCRIPTION_VERSION, @@ -419,13 +421,14 @@ public class LangManager { public static void sendMessage(PPlayer pplayer, Lang messageType, Object... replacements) { sendMessage(pplayer.getPlayer(), messageType, replacements); } - + /** * Sends a custom message to a player * Used in cases of string building * * @param player The player to send the message to * @param message The message to send to the player + * @param includePrefix If the prefix should be included */ public static void sendCustomMessage(Player player, String message) { if (!PSetting.MESSAGES_ENABLED.getBoolean()) return; @@ -449,6 +452,36 @@ public class LangManager { public static void sendCustomMessage(PPlayer pplayer, String message) { sendCustomMessage(pplayer.getPlayer(), message); } + + /** + * Sends a message to a Player without the prefix + * + * @param player The plaeyr to send the message to + * @param messageType The message type to send the player + * @param replacements The replacements for the message + */ + public static void sendSimpleMessage(Player player, Lang messageType, Object... replacements) { + if (!PSetting.MESSAGES_ENABLED.getBoolean()) return; + + String message = messageType.get(replacements); + + if (message.length() == 0) return; + + if (message.trim().equals("")) return; + + player.sendMessage(message); + } + + /** + * Sends a message to a PPlayer without the prefix + * + * @param player The plaeyr to send the message to + * @param messageType The message type to send the player + * @param replacements The replacements for the message + */ + public static void sendSimpleMessage(PPlayer pplayer, Lang messageType, Object... replacements) { + sendSimpleMessage(pplayer.getPlayer(), messageType, replacements); + } /** * Translates all ampersand symbols into the Minecraft chat color symbol diff --git a/src/com/esophose/playerparticles/updater/PluginUpdateListener.java b/src/com/esophose/playerparticles/updater/PluginUpdateListener.java index 70315f1..4ddd09a 100644 --- a/src/com/esophose/playerparticles/updater/PluginUpdateListener.java +++ b/src/com/esophose/playerparticles/updater/PluginUpdateListener.java @@ -21,7 +21,7 @@ public class PluginUpdateListener implements Listener { if (PlayerParticles.updateVersion != null) { // @formatter:off LangManager.sendCustomMessage(e.getPlayer(), ChatColor.YELLOW + "An update (" + ChatColor.AQUA + "v" + PlayerParticles.updateVersion + ChatColor.YELLOW + ") is available! " + "You are running " + ChatColor.AQUA + "v" + PlayerParticles.getPlugin().getDescription().getVersion() + ChatColor.YELLOW + - ". https://dev.bukkit.org/projects/playerparticles"); + ". https://www.spigotmc.org/resources/playerparticles.40261/"); } // @formatter:on } } diff --git a/src/groups.yml b/src/groups.yml index 75c1e41..859b329 100644 --- a/src/groups.yml +++ b/src/groups.yml @@ -35,3 +35,13 @@ rainbows: effect: 'entity_effect' style: 'feet' data: 'rainbow' +angel: + icon: 'ENDER_CHEST' + 1: + effect: 'dust' + style: 'wings' + data: '255 255 255' + 2: + effect: 'dust' + style: 'halo' + data: '255 255 0' \ No newline at end of file diff --git a/src/lang/default.lang b/src/lang/default.lang index 5d5df10..e1f6d98 100644 --- a/src/lang/default.lang +++ b/src/lang/default.lang @@ -13,14 +13,17 @@ command-error-no-effects: '&cYou must have access to effects to use this command command-error-unknown: '&cUnknown command, use &b/pp help &cfor a list of commands.' # Command Descriptions -command-description-add: 'Add a particle to your active particles' +command-descriptions: '&eThe following commands are available:' +command-descriptions-usage: '&e/pp {0} {1}' +command-descriptions-help-1: '&7> &b/pp {0} &e- {1}' +command-descriptions-help-2: '&7> &b/pp {0} {1} &e- {2}' +command-description-add: 'Add a new particle' command-description-data: 'Check what type of data an effect uses' command-description-default: 'The main command. By default, opens the GUI' -command-description-edit: 'Edit the effect, style, or data of an active particle' -command-description-effect: '&cThis command has been removed, use &b/pp help &cto find new commands' +command-description-edit: 'Edit a particle' command-description-effects: 'Display a list of effects you can use' -command-description-fixed: 'Create, edit, and remove fixed particle effects' -command-description-group: 'Save, load, and remove particle groups' +command-description-fixed: 'Manage your fixed effects' +command-description-group: 'Manage your groups' command-description-gui: 'Display the GUI for easy editing of particles' command-description-help: 'Displays the help menu... You have arrived' command-description-info: 'Gets the description of one of your active particles' @@ -28,10 +31,9 @@ command-description-list: 'Lists the IDs of your active particles' command-description-reload: 'Reloads the config.yml and lang file' command-description-remove: 'Removes one of your active particles' command-description-reset: 'Removes all your active particles' -command-description-style: '&cThis command has been removed, use &b/pp help &cto find new commands' command-description-styles: 'Display a list of styles you can use' command-description-toggle: 'Toggles particle visibility on/off' -command-description-version: 'Display the current version of the plugin and the author' +command-description-version: 'Display the plugin version and author' command-description-worlds: 'Find out what worlds particles are disabled in' # Sub-Command Usage diff --git a/src/plugin.yml b/src/plugin.yml index 933d031..0565cae 100644 --- a/src/plugin.yml +++ b/src/plugin.yml @@ -4,7 +4,7 @@ version: 6.0 api-version: 1.13 description: Display particles around your player using customized styles and data! author: Esophose -website: https://dev.bukkit.org/projects/playerparticles +website: https://www.spigotmc.org/resources/playerparticles.40261/ commands: pp: description: The main PlayerParticles command. By default, opens the GUI.