From d5550c8fd19af5599e04d9482d92c1a1c2433d2d Mon Sep 17 00:00:00 2001 From: GJ Date: Wed, 6 Feb 2013 17:57:16 -0500 Subject: [PATCH] Changed /p and /a to use /partychat and /adminchat as the default command name. The use of /p, /pc, /a, and /ac is still supported. --- Changelog.txt | 2 +- .../{ACommand.java => AdminChatCommand.java} | 55 ++++++++------ .../{PCommand.java => PartyChatCommand.java} | 71 +++++++++++-------- .../commands/CommandRegistrationHelper.java | 26 ++++++- .../gmail/nossr50/datatypes/McMMOPlayer.java | 8 +++ src/main/java/com/gmail/nossr50/mcMMO.java | 6 +- .../resources/locale/locale_en_US.properties | 7 +- src/main/resources/plugin.yml | 8 +-- 8 files changed, 121 insertions(+), 62 deletions(-) rename src/main/java/com/gmail/nossr50/chat/commands/{ACommand.java => AdminChatCommand.java} (58%) rename src/main/java/com/gmail/nossr50/chat/commands/{PCommand.java => PartyChatCommand.java} (58%) diff --git a/Changelog.txt b/Changelog.txt index a4a5e1c22..1efe2e485 100644 --- a/Changelog.txt +++ b/Changelog.txt @@ -52,6 +52,7 @@ Version 1.4.00-dev = Fixed a bug where party join messages weren't displayed = Fixed a bug where Disarm and Deflect had wrong values = Fixed Magic Hunter (Fishing ability) favoring certain enchants + ! Changed /p and /a to use /partychat and /adminchat as the default command name. The use of /p, /pc, /a, and /ac is still supported. ! We're now using Bukkit sounds instead of Spout sounds. ! It is now possible to use a negative number for Max_Level in treasures.yml to not use a maximum level, changed default file accordingly ! A Fishing catch will now always contains a fish even if a treasure is found @@ -70,7 +71,6 @@ Version 1.4.00-dev - Removed Party "master/apprentice" system. Replaced with the new party XP share feature. - Removed unused "healthbar" files from the resources - Removed config options for disabling commands from the config.yml. This should instead be done through permissions. - - Removed "ac" alias from /a due to Essentials incompatibilities. - Removed Chimaera Wing Version 1.3.14 diff --git a/src/main/java/com/gmail/nossr50/chat/commands/ACommand.java b/src/main/java/com/gmail/nossr50/chat/commands/AdminChatCommand.java similarity index 58% rename from src/main/java/com/gmail/nossr50/chat/commands/ACommand.java rename to src/main/java/com/gmail/nossr50/chat/commands/AdminChatCommand.java index 876b10fd2..2d059bc6d 100644 --- a/src/main/java/com/gmail/nossr50/chat/commands/ACommand.java +++ b/src/main/java/com/gmail/nossr50/chat/commands/AdminChatCommand.java @@ -7,46 +7,61 @@ import org.bukkit.entity.Player; import com.gmail.nossr50.mcMMO; import com.gmail.nossr50.chat.ChatManager; -import com.gmail.nossr50.commands.CommandHelper; import com.gmail.nossr50.datatypes.McMMOPlayer; import com.gmail.nossr50.locale.LocaleLoader; import com.gmail.nossr50.util.Users; -public class ACommand implements CommandExecutor { +public class AdminChatCommand implements CommandExecutor { @Override public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { McMMOPlayer mcMMOPlayer; - String usage = LocaleLoader.getString("Commands.Usage.1", "a", "<" + LocaleLoader.getString("Commands.Usage.Message") + ">"); - - if (CommandHelper.noCommandPermissions(sender, "mcmmo.chat.adminchat")) { - return true; - } switch (args.length) { case 0: - if (sender instanceof Player) { - mcMMOPlayer = Users.getPlayer((Player) sender); + if (!(sender instanceof Player)) { + return false; + } - if (mcMMOPlayer.getPartyChatMode()) { - mcMMOPlayer.togglePartyChat(); - } + mcMMOPlayer = Users.getPlayer((Player) sender); - mcMMOPlayer.toggleAdminChat(); + // Can't have both party & admin chat at the same time. + if (mcMMOPlayer.getPartyChatMode()) { + mcMMOPlayer.togglePartyChat(); + } - if (mcMMOPlayer.getAdminChatMode()) { - sender.sendMessage(LocaleLoader.getString("Commands.AdminChat.On")); - } - else { - sender.sendMessage(LocaleLoader.getString("Commands.AdminChat.Off")); - } + mcMMOPlayer.toggleAdminChat(); + + if (mcMMOPlayer.getAdminChatMode()) { + sender.sendMessage(LocaleLoader.getString("Commands.AdminChat.On")); } else { - sender.sendMessage(usage); + sender.sendMessage(LocaleLoader.getString("Commands.AdminChat.Off")); } return true; default: + if (args.length == 1) { + if (!(sender instanceof Player)) { + return false; + } + + mcMMOPlayer = Users.getPlayer((Player) sender); + + if (args[0].equalsIgnoreCase("on")) { + mcMMOPlayer.setPartyChat(false); + mcMMOPlayer.setAdminChat(true); + sender.sendMessage(LocaleLoader.getString("Commands.AdminChat.On")); + return true; + } + + if (args[0].equalsIgnoreCase("off")) { + mcMMOPlayer.setAdminChat(false); + sender.sendMessage(LocaleLoader.getString("Commands.AdminChat.Off")); + return true; + } + } + StringBuilder builder = new StringBuilder(); builder.append(args[0]); diff --git a/src/main/java/com/gmail/nossr50/chat/commands/PCommand.java b/src/main/java/com/gmail/nossr50/chat/commands/PartyChatCommand.java similarity index 58% rename from src/main/java/com/gmail/nossr50/chat/commands/PCommand.java rename to src/main/java/com/gmail/nossr50/chat/commands/PartyChatCommand.java index 6b9f9e722..c96e095c1 100644 --- a/src/main/java/com/gmail/nossr50/chat/commands/PCommand.java +++ b/src/main/java/com/gmail/nossr50/chat/commands/PartyChatCommand.java @@ -7,60 +7,69 @@ import org.bukkit.entity.Player; import com.gmail.nossr50.mcMMO; import com.gmail.nossr50.chat.ChatManager; -import com.gmail.nossr50.commands.CommandHelper; import com.gmail.nossr50.datatypes.McMMOPlayer; import com.gmail.nossr50.locale.LocaleLoader; import com.gmail.nossr50.party.Party; import com.gmail.nossr50.party.PartyManager; import com.gmail.nossr50.util.Users; -public class PCommand implements CommandExecutor { - private final mcMMO plugin; - - public PCommand (mcMMO plugin) { - this.plugin = plugin; - } - +public class PartyChatCommand implements CommandExecutor { @Override public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { McMMOPlayer mcMMOPlayer; - String usage = LocaleLoader.getString("Commands.Usage.2", "p", "<" + LocaleLoader.getString("Commands.Usage.PartyName") + ">", "<" + LocaleLoader.getString("Commands.Usage.Message") + ">"); - - if (CommandHelper.noCommandPermissions(sender, "mcmmo.commands.party")) { - return true; - } switch (args.length) { case 0: - if (sender instanceof Player) { - mcMMOPlayer = Users.getPlayer((Player) sender); + if (!(sender instanceof Player)) { + return false; + } - if (mcMMOPlayer.getAdminChatMode()) { - mcMMOPlayer.toggleAdminChat(); - } + mcMMOPlayer = Users.getPlayer((Player) sender); - mcMMOPlayer.togglePartyChat(); + // Can't have both party & admin chat at the same time. + if (mcMMOPlayer.getAdminChatMode()) { + mcMMOPlayer.toggleAdminChat(); + } - if (mcMMOPlayer.getPartyChatMode()) { - sender.sendMessage(LocaleLoader.getString("Commands.Party.Chat.On")); - } - else { - sender.sendMessage(LocaleLoader.getString("Commands.Party.Chat.Off")); - } + mcMMOPlayer.togglePartyChat(); + + if (mcMMOPlayer.getPartyChatMode()) { + sender.sendMessage(LocaleLoader.getString("Commands.Party.Chat.On")); } else { - sender.sendMessage(usage); + sender.sendMessage(LocaleLoader.getString("Commands.Party.Chat.Off")); } return true; default: + if (args.length == 1) { + if (!(sender instanceof Player)) { + return false; + } + + mcMMOPlayer = Users.getPlayer((Player) sender); + + if (args[0].equalsIgnoreCase("on")) { + mcMMOPlayer.setAdminChat(false); + mcMMOPlayer.setPartyChat(true); + sender.sendMessage(LocaleLoader.getString("Commands.Party.Chat.On")); + return true; + } + + if (args[0].equalsIgnoreCase("off")) { + mcMMOPlayer.setPartyChat(false); + sender.sendMessage(LocaleLoader.getString("Commands.Party.Chat.Off")); + return true; + } + } + if (sender instanceof Player) { Player player = (Player) sender; Party party = Users.getPlayer(player).getParty(); if (party == null) { - player.sendMessage(LocaleLoader.getString("Commands.Party.None")); + sender.sendMessage(LocaleLoader.getString("Commands.Party.None")); return true; } @@ -73,11 +82,11 @@ public class PCommand implements CommandExecutor { } String message = builder.toString(); - ChatManager.handlePartyChat(plugin, party, player.getName(), player.getDisplayName(), message); + ChatManager.handlePartyChat(mcMMO.p, party, player.getName(), player.getDisplayName(), message); } else { if (args.length < 2) { - sender.sendMessage(usage); + sender.sendMessage(LocaleLoader.getString("Party.Specify")); return true; } @@ -96,10 +105,10 @@ public class PCommand implements CommandExecutor { builder.append(args[i]); } - String ssender = LocaleLoader.getString("Commands.Chat.Console"); + String consoleSender = LocaleLoader.getString("Commands.Chat.Console"); String message = builder.toString(); - ChatManager.handlePartyChat(plugin, party, ssender, ssender, message); + ChatManager.handlePartyChat(mcMMO.p, party, consoleSender, consoleSender, message); } return true; diff --git a/src/main/java/com/gmail/nossr50/commands/CommandRegistrationHelper.java b/src/main/java/com/gmail/nossr50/commands/CommandRegistrationHelper.java index a5d9e7c57..3cb21f414 100644 --- a/src/main/java/com/gmail/nossr50/commands/CommandRegistrationHelper.java +++ b/src/main/java/com/gmail/nossr50/commands/CommandRegistrationHelper.java @@ -6,6 +6,8 @@ import java.util.List; import org.bukkit.command.PluginCommand; import com.gmail.nossr50.mcMMO; +import com.gmail.nossr50.chat.commands.AdminChatCommand; +import com.gmail.nossr50.chat.commands.PartyChatCommand; import com.gmail.nossr50.commands.admin.AddlevelsCommand; import com.gmail.nossr50.commands.admin.AddxpCommand; import com.gmail.nossr50.commands.admin.McgodCommand; @@ -179,7 +181,7 @@ public final class CommandRegistrationHelper { command.setDescription(LocaleLoader.getString("Commands.Description.xprate")); command.setPermission("mcmmo.commands.xprate;mcmmo.commands.xprate.reset;mcmmo.commands.xprate.set"); command.setPermissionMessage(permissionsMessage); - command.setUsage(LocaleLoader.getString("Commands.Usage.2", "xprate", "<" + LocaleLoader.getString("Commands.Usage.Rate") + ">", "[" + LocaleLoader.getString("Commands.Usage.True") + "|" + LocaleLoader.getString("Commands.Usage.False")+ "]")); + command.setUsage(LocaleLoader.getString("Commands.Usage.2", "xprate", "<" + LocaleLoader.getString("Commands.Usage.Rate") + ">", "<" + LocaleLoader.getString("Commands.Usage.True") + "|" + LocaleLoader.getString("Commands.Usage.False")+ ">")); command.setUsage(command.getUsage() + "\n" + LocaleLoader.getString("Commands.Usage.1", "xprate", "reset")); command.setAliases(aliasList); command.setExecutor(new XprateCommand()); @@ -266,4 +268,26 @@ public final class CommandRegistrationHelper { command.setUsage(LocaleLoader.getString("Commands.Usage.0", "mmoupdate")); command.setExecutor(new MmoupdateCommand()); } + + public static void registerAdminChatCommand() { + PluginCommand command = mcMMO.p.getCommand("adminchat"); + command.setDescription(LocaleLoader.getString("Commands.Description.adminchat")); + command.setPermission("mcmmo.chat.adminchat"); + command.setPermissionMessage(permissionsMessage); + command.setUsage(LocaleLoader.getString("Commands.Usage.0", "adminchat")); + command.setUsage(command.getUsage() + "\n" + LocaleLoader.getString("Commands.Usage.1", "adminchat", "<" + LocaleLoader.getString("Commands.Usage.On") + "|" + LocaleLoader.getString("Commands.Usage.Off")+ ">")); + command.setUsage(command.getUsage() + "\n" + LocaleLoader.getString("Commands.Usage.1", "adminchat", "<" + LocaleLoader.getString("Commands.Usage.Message") + ">")); + command.setExecutor(new AdminChatCommand()); + } + + public static void registerPartyChatCommand() { + PluginCommand command = mcMMO.p.getCommand("partychat"); + command.setDescription(LocaleLoader.getString("Commands.Description.partychat")); + command.setPermission("mcmmo.chat.partychat;mcmmo.commands.party"); + command.setPermissionMessage(permissionsMessage); + command.setUsage(LocaleLoader.getString("Commands.Usage.0", "partychat")); + command.setUsage(command.getUsage() + "\n" + LocaleLoader.getString("Commands.Usage.1", "partychat", "<" + LocaleLoader.getString("Commands.Usage.On") + "|" + LocaleLoader.getString("Commands.Usage.Off")+ ">")); + command.setUsage(command.getUsage() + "\n" + LocaleLoader.getString("Commands.Usage.1", "partychat", "<" + LocaleLoader.getString("Commands.Usage.Message") + ">")); + command.setExecutor(new PartyChatCommand()); + } } diff --git a/src/main/java/com/gmail/nossr50/datatypes/McMMOPlayer.java b/src/main/java/com/gmail/nossr50/datatypes/McMMOPlayer.java index ce5cb8307..e5291c60d 100644 --- a/src/main/java/com/gmail/nossr50/datatypes/McMMOPlayer.java +++ b/src/main/java/com/gmail/nossr50/datatypes/McMMOPlayer.java @@ -255,6 +255,10 @@ public class McMMOPlayer { return adminChatMode; } + public void setAdminChat(boolean enabled) { + adminChatMode = enabled; + } + public void toggleAdminChat() { adminChatMode = !adminChatMode; } @@ -263,6 +267,10 @@ public class McMMOPlayer { return partyChatMode; } + public void setPartyChat(boolean enabled) { + partyChatMode = enabled; + } + public void togglePartyChat() { partyChatMode = !partyChatMode; } diff --git a/src/main/java/com/gmail/nossr50/mcMMO.java b/src/main/java/com/gmail/nossr50/mcMMO.java index 94ebb3d44..412c20165 100644 --- a/src/main/java/com/gmail/nossr50/mcMMO.java +++ b/src/main/java/com/gmail/nossr50/mcMMO.java @@ -22,8 +22,6 @@ import org.mcstats.Metrics.Graph; import com.gmail.nossr50.util.blockmeta.chunkmeta.ChunkManager; import com.gmail.nossr50.util.blockmeta.chunkmeta.ChunkManagerFactory; -import com.gmail.nossr50.chat.commands.ACommand; -import com.gmail.nossr50.chat.commands.PCommand; import com.gmail.nossr50.commands.CommandRegistrationHelper; import com.gmail.nossr50.commands.player.MccCommand; import com.gmail.nossr50.config.AdvancedConfig; @@ -293,9 +291,9 @@ public class mcMMO extends JavaPlugin { CommandRegistrationHelper.registerMcstatsCommand(); // Party commands - getCommand("a").setExecutor(new ACommand()); + CommandRegistrationHelper.registerAdminChatCommand(); getCommand("party").setExecutor(new PartyCommand()); - getCommand("p").setExecutor(new PCommand(this)); + CommandRegistrationHelper.registerPartyChatCommand(); getCommand("ptp").setExecutor(new PtpCommand(this)); // Other commands diff --git a/src/main/resources/locale/locale_en_US.properties b/src/main/resources/locale/locale_en_US.properties index ea0eba4ba..2d04a871f 100644 --- a/src/main/resources/locale/locale_en_US.properties +++ b/src/main/resources/locale/locale_en_US.properties @@ -495,6 +495,8 @@ Commands.Usage.3=[[RED]]Proper usage is /{0} {1} {2} {3} Commands.Usage.False=false Commands.Usage.Level=level Commands.Usage.Message=message +Commands.Usage.Off=off +Commands.Usage.On=on Commands.Usage.Page=page Commands.Usage.PartyName=party-name Commands.Usage.Password=password @@ -538,6 +540,7 @@ Party.Player.Invalid=[[RED]]That is not a valid player. Party.NotOnline=[[DARK_RED]]{0} is not online! Party.Player.InSameParty=[[RED]]{0} already is in your party! Party.PlayerNotInParty=[[DARK_RED]]{0} is not in a party +Party.Specify=[[RED]]You must specify a party. Party.Teleport.Dead=[[RED]]You can't teleport to a dead player. Party.Teleport.Hurt=[[RED]]You've been hurt in the last {0} seconds and cannnot teleport. Party.Teleport.Player=[[GREEN]]You have teleported to {0}. @@ -690,12 +693,13 @@ Smelting.SkillName=SMELTING #COMMAND DESCRIPTIONS Commands.Description.addlevels=Add mcMMO levels to a user +Commands.Description.adminchat=Toggle mcMMO admin chat on/off or send admin chat messages Commands.Description.addxp=Add mcMMO XP to a user Commands.Description.inspect=View detailed mcMMO info on another player Commands.Description.mcability=Toggle mcMMO abilities being readied on right-click on/off Commands.Description.mcgod=Toggle mcMMO god-mode on/off Commands.Description.mcmmo=Show a brief description of mcMMO -Commands.Description.mcpurge=Purge users with no mcMMO levels and users who haven't connected in over {0} months from the mcMMO database. +Commands.Description.mcpurge=Purge users with no mcMMO levels and users who have not connected in over {0} months from the mcMMO database. Commands.Description.mcrank=Show mcMMO ranking for a player Commands.Description.mcrefresh=Refresh all cooldowns for mcMMO Commands.Description.mcremove=Remove a user from the mcMMO database @@ -703,6 +707,7 @@ Commands.Description.mcstats=Show your mcMMO levels and XP Commands.Description.mctop=Show mcMMO leader boards Commands.Description.mmoedit=Edit mcMMO levels for a user Commands.Description.mmoupdate=Convert mcMMO database from Flatfile to MySQL +Commands.Description.partychat=Toggle mcMMO party chat on/off or send party chat messages Commands.Description.Skill=Display detailed mcMMO skill info for {0} Commands.Description.skillreset=Reset mcMMO levels for a user Commands.Description.xprate=Modify the mcMMO XP rate or start an mcMMO XP event diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml index 0fbba1494..3702e3e84 100644 --- a/src/main/resources/plugin.yml +++ b/src/main/resources/plugin.yml @@ -64,8 +64,8 @@ commands: description: View detailed mcMMO info on another player mmoupdate: description: Convert from Flat File to MySQL - p: - aliases: [pc] + partychat: + aliases: [pc, p] description: Toggle Party chat or send party chat messages skillreset: description: Reset the level of one or all of your skills @@ -95,8 +95,8 @@ commands: description: Detailed mcMMO skill info smelting: description: Detailed mcMMO skill info - a: - aliases: [] + adminchat: + aliases: [ac, a] description: Toggle Admin chat or send admin chat messages mcpurge: description: Purge users with 0 powerlevel and/or who haven't connected in several months from the server DB.