From 958095d11b3afd1942cb4ccdce68c2549262e398 Mon Sep 17 00:00:00 2001 From: GJ Date: Mon, 4 Feb 2013 00:54:31 -0500 Subject: [PATCH] Update /mcrefresh to use Bukkit command info. Also updated a few description strings. --- .../commands/CommandRegistrationHelper.java | 9 +++ .../commands/admin/McrefreshCommand.java | 67 ++++++++----------- src/main/java/com/gmail/nossr50/mcMMO.java | 3 +- .../resources/locale/locale_en_US.properties | 5 +- src/main/resources/plugin.yml | 3 +- 5 files changed, 43 insertions(+), 44 deletions(-) diff --git a/src/main/java/com/gmail/nossr50/commands/CommandRegistrationHelper.java b/src/main/java/com/gmail/nossr50/commands/CommandRegistrationHelper.java index ae683326d..bee3108b1 100644 --- a/src/main/java/com/gmail/nossr50/commands/CommandRegistrationHelper.java +++ b/src/main/java/com/gmail/nossr50/commands/CommandRegistrationHelper.java @@ -141,4 +141,13 @@ public final class CommandRegistrationHelper { command.setUsage(LocaleLoader.getString("Commands.Usage.1", "mcgod", "[" + LocaleLoader.getString("Commands.Usage.Player") + "]")); command.setExecutor(new McgodCommand()); } + + public static void registerMcrefreshCommand() { + PluginCommand command = mcMMO.p.getCommand("mcrefresh"); + command.setDescription(LocaleLoader.getString("Commands.Description.mcrefresh")); + command.setPermission("mcmmo.commands.mcrefresh"); + command.setPermissionMessage(permissionsMessage); + command.setUsage(LocaleLoader.getString("Commands.Usage.1", "mcrefresh", "[" + LocaleLoader.getString("Commands.Usage.Player") + "]")); + command.setExecutor(new McgodCommand()); + } } diff --git a/src/main/java/com/gmail/nossr50/commands/admin/McrefreshCommand.java b/src/main/java/com/gmail/nossr50/commands/admin/McrefreshCommand.java index 3e0e9ddda..a6abb1c70 100644 --- a/src/main/java/com/gmail/nossr50/commands/admin/McrefreshCommand.java +++ b/src/main/java/com/gmail/nossr50/commands/admin/McrefreshCommand.java @@ -1,77 +1,68 @@ package com.gmail.nossr50.commands.admin; -import org.bukkit.OfflinePlayer; import org.bukkit.command.Command; import org.bukkit.command.CommandExecutor; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -import com.gmail.nossr50.mcMMO; -import com.gmail.nossr50.commands.CommandHelper; +import com.gmail.nossr50.datatypes.McMMOPlayer; import com.gmail.nossr50.datatypes.PlayerProfile; import com.gmail.nossr50.locale.LocaleLoader; +import com.gmail.nossr50.util.Permissions; import com.gmail.nossr50.util.Users; public class McrefreshCommand implements CommandExecutor { @Override public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { - OfflinePlayer player; PlayerProfile profile; - String usage = LocaleLoader.getString("Commands.Usage.1", "mcrefresh", "[" + LocaleLoader.getString("Commands.Usage.Player") + "]"); - - if (CommandHelper.noCommandPermissions(sender, "mcmmo.commands.mcrefresh")) { - return true; - } switch (args.length) { case 0: - if (sender instanceof Player) { - player = (Player) sender; - profile = Users.getProfile(player); - } - else { - sender.sendMessage(usage); - return true; + if (!(sender instanceof Player)) { + return false; } + + profile = Users.getPlayer(sender.getName()).getProfile(); + sender.sendMessage(LocaleLoader.getString("Ability.Generic.Refresh")); break; case 1: - if (CommandHelper.noCommandPermissions(sender, "mcmmo.commands.mcrefresh.others")) { - return true; + if (!Permissions.hasPermission(sender, "mcmmo.commands.mcrefresh.others")) { + sender.sendMessage(command.getPermissionMessage()); } - player = mcMMO.p.getServer().getOfflinePlayer(args[0]); - profile = Users.getProfile(player); - String playerName = player.getName(); + McMMOPlayer mcMMOPlayer = Users.getPlayer(args[0]); - if (profile == null) { - sender.sendMessage(LocaleLoader.getString("Commands.DoesNotExist")); - return true; + // If the mcMMOPlayer doesn't exist, create a temporary profile and check if it's present in the database. If it's not, abort the process. + if (mcMMOPlayer == null) { + profile = new PlayerProfile(args[0], false); + + if (!profile.isLoaded()) { + sender.sendMessage(LocaleLoader.getString("Commands.DoesNotExist")); + return true; + } + } + else { + profile = mcMMOPlayer.getProfile(); + Player player = mcMMOPlayer.getPlayer(); + + // Check if the player is online before we try to send them a message. + if (player.isOnline()) { + player.sendMessage(LocaleLoader.getString("Ability.Generic.Refresh")); + } } - if (!profile.isLoaded()) { - sender.sendMessage(LocaleLoader.getString("Commands.DoesNotExist")); - return true; - } - - sender.sendMessage(LocaleLoader.getString("Commands.mcrefresh.Success", playerName)); - + sender.sendMessage(LocaleLoader.getString("Commands.mcrefresh.Success", args[0])); break; default: - sender.sendMessage(usage); - return true; + return false; } profile.setRecentlyHurt(0); profile.resetCooldowns(); profile.resetToolPrepMode(); profile.resetAbilityMode(); - - if (player.isOnline()) { - ((Player) player).sendMessage(LocaleLoader.getString("Ability.Generic.Refresh")); - } - return true; } } diff --git a/src/main/java/com/gmail/nossr50/mcMMO.java b/src/main/java/com/gmail/nossr50/mcMMO.java index d9fe0c61c..539ed6ea0 100644 --- a/src/main/java/com/gmail/nossr50/mcMMO.java +++ b/src/main/java/com/gmail/nossr50/mcMMO.java @@ -25,7 +25,6 @@ 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.admin.McrefreshCommand; import com.gmail.nossr50.commands.admin.MmoeditCommand; import com.gmail.nossr50.commands.admin.SkillResetCommand; import com.gmail.nossr50.commands.admin.XprateCommand; @@ -441,7 +440,7 @@ public class mcMMO extends JavaPlugin { getCommand("mcc").setExecutor(new MccCommand()); CommandRegistrationHelper.registerMcgodCommand(); getCommand("mcmmo").setExecutor(new McmmoCommand()); - getCommand("mcrefresh").setExecutor(new McrefreshCommand()); + CommandRegistrationHelper.registerMcrefreshCommand(); getCommand("mctop").setExecutor(new MctopCommand()); getCommand("mcrank").setExecutor(new McrankCommand()); getCommand("mcstats").setExecutor(new McstatsCommand()); diff --git a/src/main/resources/locale/locale_en_US.properties b/src/main/resources/locale/locale_en_US.properties index fd1fcf961..fa2da151a 100644 --- a/src/main/resources/locale/locale_en_US.properties +++ b/src/main/resources/locale/locale_en_US.properties @@ -688,5 +688,6 @@ Smelting.SkillName=SMELTING #COMMAND DESCRIPTIONS Commands.Description.addlevels=Add mcMMO levels to a user Commands.Description.addxp=Add mcMMO XP to a user -Commands.Description.mcgod=Toggles mcMMO god-mode on/off -Commands.Description.Skill=Detailed mcMMO skill info for {0} +Commands.Description.mcgod=Toggle mcMMO god-mode on/off +Commands.Description.mcrefresh=Refresh all cooldowns for mcMMO +Commands.Description.Skill=Display detailed mcMMO skill info for {0} diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml index c77fdb98b..cb5a0d24b 100644 --- a/src/main/resources/plugin.yml +++ b/src/main/resources/plugin.yml @@ -49,10 +49,9 @@ commands: aliases: [] description: Toggle whether or not abilities get readied on right click mcrefresh: - aliases: [] description: Refresh all cooldowns for mcMMO mcgod: - description: Toggles mcMMO god-mode on/off + description: Toggle mcMMO god-mode on/off mcstats: aliases: [/stats] description: Shows your mcMMO stats and xp