diff --git a/config.yml b/config.yml index 3adfda0a..195d7e08 100644 --- a/config.yml +++ b/config.yml @@ -28,6 +28,9 @@ SaveDisguises: KeepDisguises: PlayerDeath: false +# Should the plugin use translations? Note that a player must see the message before it will appear in translations.yml +Translations: false + # How should the plugin handle self disguises scoreboards? # MODIFY_SCOREBOARD - Modifies the player's current team if possible, otherwise assigns them to a new scoreboard team # IGNORE_SCOREBOARD - Doesn't touch scoreboards at all, effectively means that if you didn't disable pushing in their scoreboard team; They will still be pushed around diff --git a/src/me/libraryaddict/disguise/DisguiseConfig.java b/src/me/libraryaddict/disguise/DisguiseConfig.java index d1b0a238..32d565dc 100644 --- a/src/me/libraryaddict/disguise/DisguiseConfig.java +++ b/src/me/libraryaddict/disguise/DisguiseConfig.java @@ -4,6 +4,7 @@ import java.io.File; import java.util.HashMap; import java.util.Map.Entry; +import me.libraryaddict.disguise.utilities.TranslateType; import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.configuration.ConfigurationSection; @@ -60,6 +61,7 @@ public class DisguiseConfig { private static boolean updatePlayerCache; private static boolean savePlayerDisguises; private static boolean saveEntityDisguises; + private static boolean useTranslations; public static Entry getCustomDisguise(String disguise) { for (Entry entry : customDisguises.entrySet()) { @@ -77,6 +79,16 @@ public class DisguiseConfig { return savePlayerDisguises; } + public static boolean isUseTranslations() { + return useTranslations; + } + + public static void setUseTranslations(boolean setUseTranslations) { + useTranslations = setUseTranslations; + + TranslateType.reloadTranslations(); + } + public static boolean isSaveEntityDisguises() { return saveEntityDisguises; } @@ -180,6 +192,7 @@ public class DisguiseConfig { setUpdateGameProfiles(config.getBoolean("UpdateGameProfiles")); setSavePlayerDisguises(config.getBoolean("SaveDisguises.Players")); setSaveEntityDisguises(config.getBoolean("SaveDisguises.Entities")); + setUseTranslations(config.getBoolean("Translations")); try { String option = config.getString("SelfDisguisesScoreboard", diff --git a/src/me/libraryaddict/disguise/LibsDisguises.java b/src/me/libraryaddict/disguise/LibsDisguises.java index b37ec682..5d44e530 100644 --- a/src/me/libraryaddict/disguise/LibsDisguises.java +++ b/src/me/libraryaddict/disguise/LibsDisguises.java @@ -81,7 +81,7 @@ public class LibsDisguises extends JavaPlugin { PacketsManager.addPacketListeners(); - TranslateFiller.fillConfigs(); + TranslateType.MESSAGE.name(); // Call the static loader listener = new DisguiseListener(this); diff --git a/src/me/libraryaddict/disguise/commands/DisguiseCloneCommand.java b/src/me/libraryaddict/disguise/commands/DisguiseCloneCommand.java index dd91f4b0..29d57f3f 100644 --- a/src/me/libraryaddict/disguise/commands/DisguiseCloneCommand.java +++ b/src/me/libraryaddict/disguise/commands/DisguiseCloneCommand.java @@ -1,9 +1,10 @@ package me.libraryaddict.disguise.commands; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; - +import me.libraryaddict.disguise.DisguiseConfig; +import me.libraryaddict.disguise.LibsDisguises; +import me.libraryaddict.disguise.utilities.DisguiseParser.DisguisePerm; +import me.libraryaddict.disguise.utilities.DisguiseUtilities; +import me.libraryaddict.disguise.utilities.TranslateType; import org.apache.commons.lang.StringUtils; import org.bukkit.Bukkit; import org.bukkit.ChatColor; @@ -12,16 +13,16 @@ import org.bukkit.command.CommandSender; import org.bukkit.command.TabCompleter; import org.bukkit.entity.Player; -import me.libraryaddict.disguise.DisguiseConfig; -import me.libraryaddict.disguise.LibsDisguises; -import me.libraryaddict.disguise.utilities.DisguiseParser.DisguisePerm; -import me.libraryaddict.disguise.utilities.DisguiseUtilities; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; public class DisguiseCloneCommand extends DisguiseBaseCommand implements TabCompleter { @Override public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) { if (sender.getName().equals("CONSOLE")) { - sender.sendMessage(ChatColor.RED + "You may not use this command from the console!"); + sender.sendMessage( + TranslateType.MESSAGE.get(ChatColor.RED + "You may not use this command from the console!")); return true; } @@ -37,43 +38,37 @@ public class DisguiseCloneCommand extends DisguiseBaseCommand implements TabComp for (int i = player == null ? 0 : 1; i < args.length; i++) { String option = args[i]; - if (StringUtils.startsWithIgnoreCase(option, "ignoreEquip") - || StringUtils.startsWithIgnoreCase(option, "ignoreEnquip")) { + if (StringUtils.startsWithIgnoreCase(option, "ignoreEquip") || StringUtils.startsWithIgnoreCase(option, + "ignoreEnquip")) { doEquipment = false; - } - else if (option.equalsIgnoreCase("doSneakSprint")) { + } else if (option.equalsIgnoreCase("doSneakSprint")) { doSneak = true; doSprint = true; - } - else if (option.equalsIgnoreCase("doSneak")) { + } else if (option.equalsIgnoreCase("doSneak")) { doSneak = true; - } - else if (option.equalsIgnoreCase("doSprint")) { + } else if (option.equalsIgnoreCase("doSprint")) { doSprint = true; - } - else { - sender.sendMessage(ChatColor.DARK_RED + "Unknown option '" + option - + "' - Valid options are 'IgnoreEquipment' 'DoSneakSprint' 'DoSneak' 'DoSprint'"); + } else { + sender.sendMessage(String.format(TranslateType.MESSAGE.get( + ChatColor.DARK_RED + "Unknown " + "option '%s" + "' - Valid options are 'IgnoreEquipment' 'DoSneakSprint' 'DoSneak' 'DoSprint'"), + option)); return true; } } - Boolean[] options = new Boolean[] { - doEquipment, doSneak, doSprint - }; + Boolean[] options = new Boolean[]{doEquipment, doSneak, doSprint}; if (player != null) { DisguiseUtilities.createClonedDisguise((Player) sender, player, options); - } - else { + } else { LibsDisguises.getInstance().getListener().setDisguiseClone(sender.getName(), options); - sender.sendMessage(ChatColor.RED + "Right click a entity in the next " + DisguiseConfig.getDisguiseCloneExpire() - + " seconds to grab the disguise reference!"); + sender.sendMessage(String.format(TranslateType.MESSAGE.get( + ChatColor.RED + "Right click a entity in the next %s" + " seconds to grab the disguise reference!"), + DisguiseConfig.getDisguiseCloneExpire())); } - } - else { - sender.sendMessage(ChatColor.RED + "You are forbidden to use this command."); + } else { + sender.sendMessage(TranslateType.MESSAGE.get(ChatColor.RED + "You are forbidden to use this command.")); } return true; @@ -81,7 +76,7 @@ public class DisguiseCloneCommand extends DisguiseBaseCommand implements TabComp @Override public List onTabComplete(CommandSender sender, Command cmd, String label, String[] origArgs) { - ArrayList tabs = new ArrayList(); + ArrayList tabs = new ArrayList<>(); String[] args = getArgs(origArgs); @@ -103,12 +98,13 @@ public class DisguiseCloneCommand extends DisguiseBaseCommand implements TabComp * Send the player the information */ @Override - protected void sendCommandUsage(CommandSender sender, HashMap, Boolean>> map) { - sender.sendMessage(ChatColor.DARK_GREEN - + "Right click a entity to get a disguise reference you can pass to other disguise commands!"); - sender.sendMessage(ChatColor.DARK_GREEN - + "Security note: Any references you create will be available to all players able to use disguise references."); - sender.sendMessage(ChatColor.DARK_GREEN + "/disguiseclone IgnoreEquipment" + ChatColor.DARK_GREEN + "(" + ChatColor.GREEN - + "Optional" + ChatColor.DARK_GREEN + ")"); + protected void sendCommandUsage(CommandSender sender, + HashMap, Boolean>> map) { + sender.sendMessage(TranslateType.MESSAGE.get( + ChatColor.DARK_GREEN + "Right click a entity to get a disguise reference you can pass to other " + "disguise commands!")); + sender.sendMessage(TranslateType.MESSAGE.get( + ChatColor.DARK_GREEN + "Security note: Any references you create will be available to all players " + "able to use disguise references.")); + sender.sendMessage(TranslateType.MESSAGE.get( + ChatColor.DARK_GREEN + "/disguiseclone IgnoreEquipment" + ChatColor.DARK_GREEN + "(" + ChatColor.GREEN + "Optional" + ChatColor.DARK_GREEN + ")")); } } diff --git a/src/me/libraryaddict/disguise/commands/DisguiseEntityCommand.java b/src/me/libraryaddict/disguise/commands/DisguiseEntityCommand.java index bb680192..aa0a1992 100644 --- a/src/me/libraryaddict/disguise/commands/DisguiseEntityCommand.java +++ b/src/me/libraryaddict/disguise/commands/DisguiseEntityCommand.java @@ -1,19 +1,5 @@ package me.libraryaddict.disguise.commands; -import java.lang.reflect.InvocationTargetException; -import java.lang.reflect.Method; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; - -import org.apache.commons.lang.StringUtils; -import org.bukkit.Bukkit; -import org.bukkit.ChatColor; -import org.bukkit.command.Command; -import org.bukkit.command.CommandSender; -import org.bukkit.command.TabCompleter; -import org.bukkit.entity.Player; - import me.libraryaddict.disguise.DisguiseConfig; import me.libraryaddict.disguise.LibsDisguises; import me.libraryaddict.disguise.disguisetypes.Disguise; @@ -23,17 +9,32 @@ import me.libraryaddict.disguise.utilities.DisguiseParser.DisguiseParseException import me.libraryaddict.disguise.utilities.DisguiseParser.DisguisePerm; import me.libraryaddict.disguise.utilities.ReflectionFlagWatchers; import me.libraryaddict.disguise.utilities.ReflectionFlagWatchers.ParamInfo; +import me.libraryaddict.disguise.utilities.TranslateType; +import org.apache.commons.lang.StringUtils; +import org.bukkit.Bukkit; +import org.bukkit.ChatColor; +import org.bukkit.command.Command; +import org.bukkit.command.CommandSender; +import org.bukkit.command.TabCompleter; +import org.bukkit.entity.Player; + +import java.lang.reflect.InvocationTargetException; +import java.lang.reflect.Method; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; public class DisguiseEntityCommand extends DisguiseBaseCommand implements TabCompleter { @Override public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) { if (!(sender instanceof Player)) { - sender.sendMessage(ChatColor.RED + "You may not use this command from the console!"); + sender.sendMessage( + TranslateType.MESSAGE.get(ChatColor.RED + "You may not use this command from the " + "console!")); return true; } if (getPermissions(sender).isEmpty()) { - sender.sendMessage(ChatColor.RED + "You are forbidden to use this command."); + sender.sendMessage(TranslateType.MESSAGE.get(ChatColor.RED + "You are forbidden to use this command.")); return true; } @@ -61,14 +62,14 @@ public class DisguiseEntityCommand extends DisguiseBaseCommand implements TabCom LibsDisguises.getInstance().getListener().setDisguiseEntity(sender.getName(), disguise); - sender.sendMessage(ChatColor.RED + "Right click an entity in the next " + DisguiseConfig.getDisguiseEntityExpire() - + " seconds to disguise it as a " + disguise.getType().toReadable() + "!"); + sender.sendMessage(TranslateType.MESSAGE.get( + ChatColor.RED + "Right click an entity in the next " + DisguiseConfig.getDisguiseEntityExpire() + " " + "seconds to disguise it as a " + disguise.getType().toReadable() + "!")); return true; } @Override public List onTabComplete(CommandSender sender, Command cmd, String label, String[] origArgs) { - ArrayList tabs = new ArrayList(); + ArrayList tabs = new ArrayList<>(); if (!(sender instanceof Player)) { return tabs; @@ -82,8 +83,7 @@ public class DisguiseEntityCommand extends DisguiseBaseCommand implements TabCom for (String type : getAllowedDisguises(perms)) { tabs.add(type); } - } - else { + } else { DisguisePerm disguiseType = DisguiseParser.getDisguisePerm(args[0]); if (disguiseType == null) @@ -93,9 +93,8 @@ public class DisguiseEntityCommand extends DisguiseBaseCommand implements TabCom for (Player player : Bukkit.getOnlinePlayers()) { tabs.add(player.getName()); } - } - else { - ArrayList usedOptions = new ArrayList(); + } else { + ArrayList usedOptions = new ArrayList<>(); for (Method method : ReflectionFlagWatchers.getDisguiseWatcherMethods(disguiseType.getWatcherClass())) { for (int i = disguiseType.getType() == DisguiseType.PLAYER ? 2 : 1; i < args.length; i++) { @@ -124,8 +123,7 @@ public class DisguiseEntityCommand extends DisguiseBaseCommand implements TabCom for (String e : info.getEnums(origArgs[origArgs.length - 1])) { tabs.add(e); } - } - else { + } else { if (info.getParamClass() == String.class) { for (Player player : Bukkit.getOnlinePlayers()) { tabs.add(player.getName()); @@ -137,7 +135,8 @@ public class DisguiseEntityCommand extends DisguiseBaseCommand implements TabCom if (addMethods) { // If this is a method, add. Else if it can be a param of the previous argument, add. - for (Method method : ReflectionFlagWatchers.getDisguiseWatcherMethods(disguiseType.getWatcherClass())) { + for (Method method : ReflectionFlagWatchers.getDisguiseWatcherMethods( + disguiseType.getWatcherClass())) { tabs.add(method.getName()); } } @@ -155,22 +154,25 @@ public class DisguiseEntityCommand extends DisguiseBaseCommand implements TabCom * @param map */ @Override - protected void sendCommandUsage(CommandSender sender, HashMap, Boolean>> map) { + protected void sendCommandUsage(CommandSender sender, + HashMap, Boolean>> map) { ArrayList allowedDisguises = getAllowedDisguises(map); - sender.sendMessage(ChatColor.DARK_GREEN + "Choose a disguise then right click a entity to disguise it!"); - sender.sendMessage(ChatColor.DARK_GREEN + "You can use the disguises: " + ChatColor.GREEN - + StringUtils.join(allowedDisguises, ChatColor.RED + ", " + ChatColor.GREEN)); + sender.sendMessage(TranslateType.MESSAGE.get( + ChatColor.DARK_GREEN + "Choose a disguise then right click an entity to disguise it!")); + sender.sendMessage( + String.format(TranslateType.MESSAGE.get(ChatColor.DARK_GREEN + "You can use the " + "disguises: %s"), + ChatColor.GREEN + StringUtils.join(allowedDisguises, ChatColor.RED + ", " + ChatColor.GREEN))); if (allowedDisguises.contains("player")) { - sender.sendMessage(ChatColor.DARK_GREEN + "/disguiseentity player "); + sender.sendMessage(TranslateType.MESSAGE.get(ChatColor.DARK_GREEN + "/disguiseentity player ")); } - sender.sendMessage(ChatColor.DARK_GREEN + "/disguiseentity "); + sender.sendMessage(TranslateType.MESSAGE.get(ChatColor.DARK_GREEN + "/disguiseentity ")); if (allowedDisguises.contains("dropped_item") || allowedDisguises.contains("falling_block")) { - sender.sendMessage(ChatColor.DARK_GREEN + "/disguiseentity "); + sender.sendMessage(TranslateType.MESSAGE.get( + ChatColor.DARK_GREEN + "/disguiseentity " + "")); } } - } diff --git a/src/me/libraryaddict/disguise/commands/DisguiseHelpCommand.java b/src/me/libraryaddict/disguise/commands/DisguiseHelpCommand.java index 8f56c578..111d5958 100644 --- a/src/me/libraryaddict/disguise/commands/DisguiseHelpCommand.java +++ b/src/me/libraryaddict/disguise/commands/DisguiseHelpCommand.java @@ -1,31 +1,29 @@ package me.libraryaddict.disguise.commands; -import java.lang.reflect.Method; -import java.util.ArrayList; -import java.util.Collections; -import java.util.HashMap; -import java.util.List; - -import org.apache.commons.lang.StringUtils; -import org.bukkit.ChatColor; -import org.bukkit.command.Command; -import org.bukkit.command.CommandSender; -import org.bukkit.command.TabCompleter; - import me.libraryaddict.disguise.disguisetypes.FlagWatcher; import me.libraryaddict.disguise.disguisetypes.watchers.LivingWatcher; import me.libraryaddict.disguise.utilities.DisguiseParser; import me.libraryaddict.disguise.utilities.DisguiseParser.DisguisePerm; import me.libraryaddict.disguise.utilities.ReflectionFlagWatchers; import me.libraryaddict.disguise.utilities.ReflectionFlagWatchers.ParamInfo; +import me.libraryaddict.disguise.utilities.TranslateType; +import org.apache.commons.lang.StringUtils; +import org.bukkit.ChatColor; +import org.bukkit.command.Command; +import org.bukkit.command.CommandSender; +import org.bukkit.command.TabCompleter; + +import java.lang.reflect.Method; +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashMap; +import java.util.List; public class DisguiseHelpCommand extends DisguiseBaseCommand implements TabCompleter { @Override public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) { - for (String node : new String[] { - "disguise", "disguiseradius", "disguiseentity", "disguiseplayer" - }) { + for (String node : new String[]{"disguise", "disguiseradius", "disguiseentity", "disguiseplayer"}) { HashMap, Boolean>> permMap = DisguiseParser.getPermissions(sender, "libsdisguises." + node + "."); @@ -33,8 +31,7 @@ public class DisguiseHelpCommand extends DisguiseBaseCommand implements TabCompl if (args.length == 0) { sendCommandUsage(sender, null); return true; - } - else { + } else { ParamInfo help = null; for (ParamInfo s : ReflectionFlagWatchers.getParamInfos()) { @@ -47,20 +44,28 @@ public class DisguiseHelpCommand extends DisguiseBaseCommand implements TabCompl } if (help != null) { - sender.sendMessage(ChatColor.RED + help.getName() + ": " + ChatColor.GREEN - + StringUtils.join(help.getEnums(""), ChatColor.RED + ", " + ChatColor.GREEN)); + if (help.isEnums()) { + sender.sendMessage( + ChatColor.RED + help.getName() + ": " + ChatColor.GREEN + StringUtils.join( + help.getEnums(""), ChatColor.RED + ", " + ChatColor.GREEN)); + } else { + sender.sendMessage( + ChatColor.RED + help.getName() + ": " + ChatColor.GREEN + help.getDescription()); + } return true; } DisguisePerm type = DisguiseParser.getDisguisePerm(args[0]); if (type == null) { - sender.sendMessage(ChatColor.RED + "Cannot find the disguise " + args[0]); + sender.sendMessage( + TranslateType.MESSAGE.get(ChatColor.RED + "Cannot find the disguise ") + args[0]); return true; } if (!permMap.containsKey(type)) { - sender.sendMessage(ChatColor.RED + "You do not have permission for that disguise!"); + sender.sendMessage(TranslateType.MESSAGE.get( + ChatColor.RED + "You do not have permission for " + "that disguise!")); return true; } @@ -80,8 +85,7 @@ public class DisguiseHelpCommand extends DisguiseBaseCommand implements TabCompl allowed = true; break; } - } - else if (!key.contains(method.getName().toLowerCase())) { + } else if (!key.contains(method.getName().toLowerCase())) { allowed = true; break; } @@ -105,13 +109,12 @@ public class DisguiseHelpCommand extends DisguiseBaseCommand implements TabCompl if (declaring == LivingWatcher.class) { methodColor = ChatColor.AQUA; - } - else if (!(FlagWatcher.class.isAssignableFrom(declaring)) || declaring == FlagWatcher.class) { + } else if (!(FlagWatcher.class.isAssignableFrom( + declaring)) || declaring == FlagWatcher.class) { methodColor = ChatColor.GRAY; } - String str = method.getName() + ChatColor.DARK_RED + "(" + ChatColor.GREEN + info.getName() - + ChatColor.DARK_RED + ")"; + String str = method.getName() + ChatColor.DARK_RED + "(" + ChatColor.GREEN + info.getName() + ChatColor.DARK_RED + ")"; map.put(str, methodColor); methods.add(str); @@ -131,12 +134,13 @@ public class DisguiseHelpCommand extends DisguiseBaseCommand implements TabCompl methods.add(ChatColor.RED + "No options with permission to use"); } - sender.sendMessage(ChatColor.DARK_RED + type.toReadable() + " options: " - + StringUtils.join(methods, ChatColor.DARK_RED + ", ")); + sender.sendMessage(ChatColor.DARK_RED + type.toReadable() + TranslateType.MESSAGE.get( + " options: ") + StringUtils.join(methods, ChatColor.DARK_RED + ", ")); if (ignored > 0) { - sender.sendMessage(ChatColor.RED + "Ignored " + ignored - + " options you do not have permission to use. Add 'show' to view unusable options."); + sender.sendMessage(String.format(TranslateType.MESSAGE.get( + ChatColor.RED + "Ignored %s" + " options you do not have permission to use. Add " + "'show' to view unusable options."), + ignored)); } return true; @@ -144,18 +148,16 @@ public class DisguiseHelpCommand extends DisguiseBaseCommand implements TabCompl } } - sender.sendMessage(ChatColor.RED + "You are forbidden to use this command."); + sender.sendMessage(TranslateType.MESSAGE.get(ChatColor.RED + "You are forbidden to use this command.")); return true; } @Override public List onTabComplete(CommandSender sender, Command cmd, String label, String[] origArgs) { - ArrayList tabs = new ArrayList(); + ArrayList tabs = new ArrayList<>(); String[] args = getArgs(origArgs); - for (String node : new String[] { - "disguise", "disguiseradius", "disguiseentity", "disguiseplayer" - }) { + for (String node : new String[]{"disguise", "disguiseradius", "disguiseentity", "disguiseplayer"}) { HashMap, Boolean>> perms = DisguiseParser.getPermissions(sender, "libsdisguises." + node + "."); @@ -170,8 +172,7 @@ public class DisguiseHelpCommand extends DisguiseBaseCommand implements TabCompl for (ParamInfo s : ReflectionFlagWatchers.getParamInfos()) { tabs.add(s.getName().replaceAll(" ", "")); } - } - else if (DisguiseParser.getDisguisePerm(args[0]) == null) { + } else if (DisguiseParser.getDisguisePerm(args[0]) == null) { tabs.add("Show"); } } @@ -183,13 +184,14 @@ public class DisguiseHelpCommand extends DisguiseBaseCommand implements TabCompl * Send the player the information */ @Override - protected void sendCommandUsage(CommandSender sender, HashMap, Boolean>> map) { - sender.sendMessage(ChatColor.RED + "/disguisehelp " + ChatColor.GREEN - + "- View the options you can set on a disguise. Add 'show' to reveal the options you don't have permission to use"); + protected void sendCommandUsage(CommandSender sender, + HashMap, Boolean>> map) { + sender.sendMessage(TranslateType.MESSAGE.get( + ChatColor.RED + "/disguisehelp " + ChatColor.GREEN + "- View the options you can set " + "on a disguise. Add 'show' to reveal the options you don't have permission to use")); for (ParamInfo s : ReflectionFlagWatchers.getParamInfos()) { - sender.sendMessage(ChatColor.RED + "/disguisehelp " + s.getName().replaceAll(" ", "") + ChatColor.GREEN + " - " - + s.getDescription()); + sender.sendMessage(TranslateType.MESSAGE.get(ChatColor.RED + "/disguisehelp " + s.getName().replaceAll(" ", + "") + ChatColor.GREEN + " - " + s.getDescription())); } } } diff --git a/src/me/libraryaddict/disguise/commands/DisguiseModifyCommand.java b/src/me/libraryaddict/disguise/commands/DisguiseModifyCommand.java index 577f74f0..72a3e4a6 100644 --- a/src/me/libraryaddict/disguise/commands/DisguiseModifyCommand.java +++ b/src/me/libraryaddict/disguise/commands/DisguiseModifyCommand.java @@ -1,19 +1,5 @@ package me.libraryaddict.disguise.commands; -import java.lang.reflect.Method; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; - -import org.apache.commons.lang.StringUtils; -import org.bukkit.Bukkit; -import org.bukkit.ChatColor; -import org.bukkit.command.Command; -import org.bukkit.command.CommandSender; -import org.bukkit.command.TabCompleter; -import org.bukkit.entity.Entity; -import org.bukkit.entity.Player; - import me.libraryaddict.disguise.DisguiseAPI; import me.libraryaddict.disguise.disguisetypes.Disguise; import me.libraryaddict.disguise.disguisetypes.DisguiseType; @@ -22,19 +8,34 @@ import me.libraryaddict.disguise.utilities.DisguiseParser.DisguiseParseException import me.libraryaddict.disguise.utilities.DisguiseParser.DisguisePerm; import me.libraryaddict.disguise.utilities.ReflectionFlagWatchers; import me.libraryaddict.disguise.utilities.ReflectionFlagWatchers.ParamInfo; +import me.libraryaddict.disguise.utilities.TranslateType; +import org.apache.commons.lang.StringUtils; +import org.bukkit.Bukkit; +import org.bukkit.ChatColor; +import org.bukkit.command.Command; +import org.bukkit.command.CommandSender; +import org.bukkit.command.TabCompleter; +import org.bukkit.entity.Entity; +import org.bukkit.entity.Player; + +import java.lang.reflect.Method; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; public class DisguiseModifyCommand extends DisguiseBaseCommand implements TabCompleter { @Override public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) { if (!(sender instanceof Entity)) { - sender.sendMessage(ChatColor.RED + "You may not use this command from the console!"); + sender.sendMessage( + TranslateType.MESSAGE.get(ChatColor.RED + "You may not use this command from the console!")); return true; } HashMap, Boolean>> map = getPermissions(sender); if (map.isEmpty()) { - sender.sendMessage(ChatColor.RED + "You are forbidden to use this command."); + sender.sendMessage(TranslateType.MESSAGE.get(ChatColor.RED + "You are forbidden to use this command.")); return true; } @@ -46,18 +47,18 @@ public class DisguiseModifyCommand extends DisguiseBaseCommand implements TabCom Disguise disguise = DisguiseAPI.getDisguise((Player) sender, (Entity) sender); if (disguise == null) { - sender.sendMessage(ChatColor.RED + "You are not disguised!"); + sender.sendMessage(TranslateType.MESSAGE.get(ChatColor.RED + "You are not disguised!")); return true; } if (!map.containsKey(new DisguisePerm(disguise.getType()))) { - sender.sendMessage(ChatColor.RED + "No permission to modify your disguise!"); + sender.sendMessage(TranslateType.MESSAGE.get(ChatColor.RED + "No permission to modify your disguise!")); return true; } try { - DisguiseParser.callMethods(sender, disguise, getPermissions(sender).get(new DisguisePerm(disguise.getType())), - new ArrayList(), args); + DisguiseParser.callMethods(sender, disguise, + getPermissions(sender).get(new DisguisePerm(disguise.getType())), new ArrayList(), args); } catch (DisguiseParseException ex) { if (ex.getMessage() != null) { @@ -71,14 +72,14 @@ public class DisguiseModifyCommand extends DisguiseBaseCommand implements TabCom return true; } - sender.sendMessage(ChatColor.RED + "Your disguise has been modified!"); + sender.sendMessage(TranslateType.MESSAGE.get(ChatColor.RED + "Your disguise has been modified!")); return true; } @Override public List onTabComplete(CommandSender sender, Command cmd, String label, String[] origArgs) { - ArrayList tabs = new ArrayList(); + ArrayList tabs = new ArrayList<>(); if (!(sender instanceof Player)) return tabs; @@ -94,7 +95,7 @@ public class DisguiseModifyCommand extends DisguiseBaseCommand implements TabCom DisguisePerm disguiseType = new DisguisePerm(disguise.getType()); - ArrayList usedOptions = new ArrayList(); + ArrayList usedOptions = new ArrayList<>(); for (Method method : ReflectionFlagWatchers.getDisguiseWatcherMethods(disguiseType.getWatcherClass())) { for (int i = disguiseType.getType() == DisguiseType.PLAYER ? 2 : 1; i < args.length; i++) { @@ -123,8 +124,7 @@ public class DisguiseModifyCommand extends DisguiseBaseCommand implements TabCom for (String e : info.getEnums(origArgs[origArgs.length - 1])) { tabs.add(e); } - } - else { + } else { if (info.getParamClass() == String.class) { for (Player player : Bukkit.getOnlinePlayers()) { tabs.add(player.getName()); @@ -149,11 +149,15 @@ public class DisguiseModifyCommand extends DisguiseBaseCommand implements TabCom * Send the player the information */ @Override - protected void sendCommandUsage(CommandSender sender, HashMap, Boolean>> map) { + protected void sendCommandUsage(CommandSender sender, + HashMap, Boolean>> map) { ArrayList allowedDisguises = getAllowedDisguises(map); - sender.sendMessage(ChatColor.DARK_GREEN + "Modify your own disguise as you wear it!"); - sender.sendMessage(ChatColor.DARK_GREEN + "/disguisemodify setBaby true setSprinting true"); - sender.sendMessage(ChatColor.DARK_GREEN + "You can modify the disguises: " + ChatColor.GREEN - + StringUtils.join(allowedDisguises, ChatColor.RED + ", " + ChatColor.GREEN)); + sender.sendMessage( + TranslateType.MESSAGE.get(ChatColor.DARK_GREEN + "Modify your own disguise as you wear " + "it!")); + sender.sendMessage( + TranslateType.MESSAGE.get(ChatColor.DARK_GREEN + "/disguisemodify setBaby true setSprinting true")); + sender.sendMessage( + String.format(TranslateType.MESSAGE.get(ChatColor.DARK_GREEN + "You can modify the " + "disguises: %s"), + ChatColor.GREEN + StringUtils.join(allowedDisguises, ChatColor.RED + ", " + ChatColor.GREEN))); } } diff --git a/src/me/libraryaddict/disguise/commands/DisguiseModifyEntityCommand.java b/src/me/libraryaddict/disguise/commands/DisguiseModifyEntityCommand.java index 574b043d..ed262ba1 100644 --- a/src/me/libraryaddict/disguise/commands/DisguiseModifyEntityCommand.java +++ b/src/me/libraryaddict/disguise/commands/DisguiseModifyEntityCommand.java @@ -1,10 +1,11 @@ package me.libraryaddict.disguise.commands; -import java.lang.reflect.Method; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; - +import me.libraryaddict.disguise.DisguiseConfig; +import me.libraryaddict.disguise.LibsDisguises; +import me.libraryaddict.disguise.utilities.DisguiseParser.DisguisePerm; +import me.libraryaddict.disguise.utilities.ReflectionFlagWatchers; +import me.libraryaddict.disguise.utilities.ReflectionFlagWatchers.ParamInfo; +import me.libraryaddict.disguise.utilities.TranslateType; import org.apache.commons.lang.StringUtils; import org.bukkit.Bukkit; import org.bukkit.ChatColor; @@ -13,22 +14,22 @@ import org.bukkit.command.CommandSender; import org.bukkit.command.TabCompleter; import org.bukkit.entity.Player; -import me.libraryaddict.disguise.DisguiseConfig; -import me.libraryaddict.disguise.LibsDisguises; -import me.libraryaddict.disguise.utilities.DisguiseParser.DisguisePerm; -import me.libraryaddict.disguise.utilities.ReflectionFlagWatchers; -import me.libraryaddict.disguise.utilities.ReflectionFlagWatchers.ParamInfo; +import java.lang.reflect.Method; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; public class DisguiseModifyEntityCommand extends DisguiseBaseCommand implements TabCompleter { @Override public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) { if (!(sender instanceof Player)) { - sender.sendMessage(ChatColor.RED + "You may not use this command from the console!"); + sender.sendMessage( + TranslateType.MESSAGE.get(ChatColor.RED + "You may not use this command from the " + "console!")); return true; } if (getPermissions(sender).isEmpty()) { - sender.sendMessage(ChatColor.RED + "You are forbidden to use this command."); + sender.sendMessage(TranslateType.MESSAGE.get(ChatColor.RED + "You are forbidden to use this command.")); return true; } @@ -39,14 +40,15 @@ public class DisguiseModifyEntityCommand extends DisguiseBaseCommand implements LibsDisguises.getInstance().getListener().setDisguiseModify(sender.getName(), args); - sender.sendMessage(ChatColor.RED + "Right click a disguised entity in the next " - + DisguiseConfig.getDisguiseEntityExpire() + " seconds to modify their disguise!"); + sender.sendMessage(String.format(TranslateType.MESSAGE.get( + ChatColor.RED + "Right click a disguised entity " + "in the next %s seconds to modify their disguise!"), + DisguiseConfig.getDisguiseEntityExpire())); return true; } @Override public List onTabComplete(CommandSender sender, Command cmd, String label, String[] origArgs) { - ArrayList tabs = new ArrayList(); + ArrayList tabs = new ArrayList<>(); if (!(sender instanceof Player)) { return tabs; @@ -75,8 +77,7 @@ public class DisguiseModifyEntityCommand extends DisguiseBaseCommand implements for (String e : info.getEnums(origArgs[origArgs.length - 1])) { tabs.add(e); } - } - else { + } else { if (info.getParamClass() == String.class) { for (Player player : Bukkit.getOnlinePlayers()) { tabs.add(player.getName()); @@ -88,7 +89,8 @@ public class DisguiseModifyEntityCommand extends DisguiseBaseCommand implements if (addMethods) { // If this is a method, add. Else if it can be a param of the previous argument, add. - for (Method method : ReflectionFlagWatchers.getDisguiseWatcherMethods(perm.getType().getWatcherClass())) { + for (Method method : ReflectionFlagWatchers.getDisguiseWatcherMethods( + perm.getType().getWatcherClass())) { tabs.add(method.getName()); } } @@ -104,12 +106,14 @@ public class DisguiseModifyEntityCommand extends DisguiseBaseCommand implements * @param map */ @Override - protected void sendCommandUsage(CommandSender sender, HashMap, Boolean>> map) { + protected void sendCommandUsage(CommandSender sender, + HashMap, Boolean>> map) { ArrayList allowedDisguises = getAllowedDisguises(map); - sender.sendMessage(ChatColor.DARK_GREEN + "Choose the options for a disguise then right click a entity to modify it!"); - sender.sendMessage(ChatColor.DARK_GREEN + "You can modify the disguises: " + ChatColor.GREEN - + StringUtils.join(allowedDisguises, ChatColor.RED + ", " + ChatColor.GREEN)); + sender.sendMessage(TranslateType.MESSAGE.get( + ChatColor.DARK_GREEN + "Choose the options for a disguise then right click a entity to modify it!")); + sender.sendMessage( + String.format(TranslateType.MESSAGE.get(ChatColor.DARK_GREEN + "You can modify the " + "disguises: %s"), + ChatColor.GREEN + StringUtils.join(allowedDisguises, ChatColor.RED + ", " + ChatColor.GREEN))); } - } diff --git a/src/me/libraryaddict/disguise/commands/DisguiseModifyPlayerCommand.java b/src/me/libraryaddict/disguise/commands/DisguiseModifyPlayerCommand.java index 31966612..3574ed20 100644 --- a/src/me/libraryaddict/disguise/commands/DisguiseModifyPlayerCommand.java +++ b/src/me/libraryaddict/disguise/commands/DisguiseModifyPlayerCommand.java @@ -1,18 +1,5 @@ package me.libraryaddict.disguise.commands; -import java.lang.reflect.Method; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; - -import org.apache.commons.lang.StringUtils; -import org.bukkit.Bukkit; -import org.bukkit.ChatColor; -import org.bukkit.command.Command; -import org.bukkit.command.CommandSender; -import org.bukkit.command.TabCompleter; -import org.bukkit.entity.Player; - import me.libraryaddict.disguise.DisguiseAPI; import me.libraryaddict.disguise.disguisetypes.Disguise; import me.libraryaddict.disguise.utilities.DisguiseParser; @@ -20,6 +7,19 @@ import me.libraryaddict.disguise.utilities.DisguiseParser.DisguiseParseException import me.libraryaddict.disguise.utilities.DisguiseParser.DisguisePerm; import me.libraryaddict.disguise.utilities.ReflectionFlagWatchers; import me.libraryaddict.disguise.utilities.ReflectionFlagWatchers.ParamInfo; +import me.libraryaddict.disguise.utilities.TranslateType; +import org.apache.commons.lang.StringUtils; +import org.bukkit.Bukkit; +import org.bukkit.ChatColor; +import org.bukkit.command.Command; +import org.bukkit.command.CommandSender; +import org.bukkit.command.TabCompleter; +import org.bukkit.entity.Player; + +import java.lang.reflect.Method; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; public class DisguiseModifyPlayerCommand extends DisguiseBaseCommand implements TabCompleter { @@ -28,7 +28,7 @@ public class DisguiseModifyPlayerCommand extends DisguiseBaseCommand implements HashMap, Boolean>> map = getPermissions(sender); if (map.isEmpty()) { - sender.sendMessage(ChatColor.RED + "You are forbidden to use this command."); + sender.sendMessage(TranslateType.MESSAGE.get(ChatColor.RED + "You are forbidden to use this command.")); return true; } @@ -40,7 +40,9 @@ public class DisguiseModifyPlayerCommand extends DisguiseBaseCommand implements Player player = Bukkit.getPlayer(args[0]); if (player == null) { - sender.sendMessage(ChatColor.RED + "Cannot find the player '" + args[0] + "'"); + sender.sendMessage( + String.format(TranslateType.MESSAGE.get(ChatColor.RED + "Cannot find the player '%s" + "'"), + args[0])); return true; } @@ -61,18 +63,21 @@ public class DisguiseModifyPlayerCommand extends DisguiseBaseCommand implements disguise = DisguiseAPI.getDisguise(player); if (disguise == null) { - sender.sendMessage(ChatColor.RED + "The player '" + player.getName() + "' is not disguised"); + sender.sendMessage( + String.format(TranslateType.MESSAGE.get(ChatColor.RED + "The player '%s' is " + "not disguised"), + player.getName())); return true; } if (!map.containsKey(new DisguisePerm(disguise.getType()))) { - sender.sendMessage(ChatColor.RED + "You do not have permission to modify this disguise"); + sender.sendMessage(TranslateType.MESSAGE.get( + ChatColor.RED + "You do not have permission to modify this " + "disguise")); return true; } try { - DisguiseParser.callMethods(sender, disguise, map.get(new DisguisePerm(disguise.getType())), new ArrayList(), - newArgs); + DisguiseParser.callMethods(sender, disguise, map.get(new DisguisePerm(disguise.getType())), + new ArrayList(), newArgs); } catch (DisguiseParseException ex) { if (ex.getMessage() != null) { @@ -86,14 +91,15 @@ public class DisguiseModifyPlayerCommand extends DisguiseBaseCommand implements return true; } - sender.sendMessage(ChatColor.RED + "Modified the disguise of " + player.getName() + "!"); + sender.sendMessage( + TranslateType.MESSAGE.get(ChatColor.RED + "Modified the disguise of " + player.getName() + "!")); return true; } @Override public List onTabComplete(CommandSender sender, Command cmd, String label, String[] origArgs) { - ArrayList tabs = new ArrayList(); + ArrayList tabs = new ArrayList<>(); String[] args = getArgs(origArgs); HashMap, Boolean>> perms = getPermissions(sender); @@ -105,12 +111,13 @@ public class DisguiseModifyPlayerCommand extends DisguiseBaseCommand implements for (Player player : Bukkit.getOnlinePlayers()) { tabs.add(player.getName()); } - } - else { + } else { Player player = Bukkit.getPlayer(args[0]); if (player == null) { - sender.sendMessage(ChatColor.RED + "Cannot find the player '" + args[0] + "'"); + sender.sendMessage( + String.format(TranslateType.MESSAGE.get(ChatColor.RED + "Cannot find the player '%s'"), + args[0])); return tabs; } @@ -123,13 +130,15 @@ public class DisguiseModifyPlayerCommand extends DisguiseBaseCommand implements disguise = DisguiseAPI.getDisguise(player); if (disguise == null) { - sender.sendMessage(ChatColor.RED + "The player '" + player.getName() + "' is not disguised"); + sender.sendMessage(String.format( + TranslateType.MESSAGE.get(ChatColor.RED + "The player '%s' " + "is not disguised"), + player.getName())); return tabs; } DisguisePerm disguiseType = new DisguisePerm(disguise.getType()); - ArrayList usedOptions = new ArrayList(); + ArrayList usedOptions = new ArrayList<>(); for (Method method : ReflectionFlagWatchers.getDisguiseWatcherMethods(disguiseType.getWatcherClass())) { for (int i = 1; i < args.length; i++) { @@ -158,8 +167,7 @@ public class DisguiseModifyPlayerCommand extends DisguiseBaseCommand implements for (String e : info.getEnums(origArgs[origArgs.length - 1])) { tabs.add(e); } - } - else { + } else { if (info.getParamClass() == String.class) { for (Player p : Bukkit.getOnlinePlayers()) { tabs.add(p.getName()); @@ -171,7 +179,8 @@ public class DisguiseModifyPlayerCommand extends DisguiseBaseCommand implements if (addMethods) { // If this is a method, add. Else if it can be a param of the previous argument, add. - for (Method method : ReflectionFlagWatchers.getDisguiseWatcherMethods(disguiseType.getWatcherClass())) { + for (Method method : ReflectionFlagWatchers.getDisguiseWatcherMethods( + disguiseType.getWatcherClass())) { tabs.add(method.getName()); } } @@ -185,11 +194,13 @@ public class DisguiseModifyPlayerCommand extends DisguiseBaseCommand implements * Send the player the information */ @Override - protected void sendCommandUsage(CommandSender sender, HashMap, Boolean>> map) { + protected void sendCommandUsage(CommandSender sender, + HashMap, Boolean>> map) { ArrayList allowedDisguises = getAllowedDisguises(map); - sender.sendMessage(ChatColor.DARK_GREEN + "Modify the disguise of another player!"); - sender.sendMessage(ChatColor.DARK_GREEN + "You can modify the disguises: " + ChatColor.GREEN - + StringUtils.join(allowedDisguises, ChatColor.RED + ", " + ChatColor.GREEN)); + sender.sendMessage(TranslateType.MESSAGE.get(ChatColor.DARK_GREEN + "Modify the disguise of another player!")); + sender.sendMessage( + String.format(TranslateType.MESSAGE.get(ChatColor.DARK_GREEN + "You can modify the " + "disguises: %s"), + ChatColor.GREEN + StringUtils.join(allowedDisguises, ChatColor.RED + ", " + ChatColor.GREEN))); } } diff --git a/src/me/libraryaddict/disguise/commands/DisguiseModifyRadiusCommand.java b/src/me/libraryaddict/disguise/commands/DisguiseModifyRadiusCommand.java index ed7db55d..f26aa3ba 100644 --- a/src/me/libraryaddict/disguise/commands/DisguiseModifyRadiusCommand.java +++ b/src/me/libraryaddict/disguise/commands/DisguiseModifyRadiusCommand.java @@ -9,6 +9,7 @@ import me.libraryaddict.disguise.utilities.DisguiseParser.DisguiseParseException import me.libraryaddict.disguise.utilities.DisguiseParser.DisguisePerm; import me.libraryaddict.disguise.utilities.ReflectionFlagWatchers; import me.libraryaddict.disguise.utilities.ReflectionFlagWatchers.ParamInfo; +import me.libraryaddict.disguise.utilities.TranslateType; import org.apache.commons.lang.StringUtils; import org.bukkit.Bukkit; import org.bukkit.ChatColor; @@ -42,8 +43,7 @@ public class DisguiseModifyRadiusCommand extends DisguiseBaseCommand implements if (sender instanceof Player) { center = ((Player) sender).getLocation(); - } - else { + } else { center = ((BlockCommandSender) sender).getBlock().getLocation().add(0.5, 0, 0.5); } @@ -53,14 +53,15 @@ public class DisguiseModifyRadiusCommand extends DisguiseBaseCommand implements @Override public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) { if (sender.getName().equals("CONSOLE")) { - sender.sendMessage(ChatColor.RED + "You may not use this command from the console!"); + sender.sendMessage( + TranslateType.MESSAGE.get(ChatColor.RED + "You may not use this command from the " + "console!")); return true; } HashMap, Boolean>> map = getPermissions(sender); if (map.isEmpty()) { - sender.sendMessage(ChatColor.RED + "You are forbidden to use this command."); + sender.sendMessage(TranslateType.MESSAGE.get(ChatColor.RED + "You are forbidden to use this command.")); return true; } @@ -78,8 +79,10 @@ public class DisguiseModifyRadiusCommand extends DisguiseBaseCommand implements Collections.sort(classes); - sender.sendMessage(ChatColor.DARK_GREEN + "EntityTypes usable are: " + ChatColor.GREEN - + StringUtils.join(classes, ChatColor.DARK_GREEN + ", " + ChatColor.GREEN) + ChatColor.DARK_GREEN + "."); + sender.sendMessage( + String.format(TranslateType.MESSAGE.get(ChatColor.DARK_GREEN + "EntityTypes usable " + "are: %s"), + ChatColor.GREEN + StringUtils.join(classes, + ChatColor.DARK_GREEN + ", " + ChatColor.GREEN) + ChatColor.DARK_GREEN + ".")); return true; } @@ -104,31 +107,36 @@ public class DisguiseModifyRadiusCommand extends DisguiseBaseCommand implements } if (type == null) { - sender.sendMessage(ChatColor.RED + "Unrecognised EntityType " + args[0]); + sender.sendMessage( + String.format(TranslateType.MESSAGE.get(ChatColor.RED + "Unrecognised " + "EntityType %s"), + args[0])); return true; } } } if (args.length == starting + 1) { - sender.sendMessage(ChatColor.RED + "You need to supply the disguise options as well as the radius" - + (starting != 0 ? " and EntityType" : "")); + sender.sendMessage(TranslateType.MESSAGE.get( + ChatColor.RED + "You need to supply the disguise options as well as the radius" + (starting != 0 ? + " and EntityType" : ""))); return true; - } - else if (args.length < 2) { - sender.sendMessage(ChatColor.RED + "You need to supply a radius as well as the disguise options"); + } else if (args.length < 2) { + sender.sendMessage(TranslateType.MESSAGE.get( + ChatColor.RED + "You need to supply a radius as well as " + "the disguise options")); return true; } if (!isNumeric(args[starting])) { - sender.sendMessage(ChatColor.RED + args[starting] + " is not a number"); + sender.sendMessage(String.format(TranslateType.MESSAGE.get(ChatColor.RED + "%s is not a " + "number"), + args[starting])); return true; } int radius = Integer.parseInt(args[starting]); if (radius > maxRadius) { - sender.sendMessage(ChatColor.RED + "Limited radius to " + maxRadius + "! Don't want to make too much lag right?"); + sender.sendMessage(String.format(TranslateType.MESSAGE.get( + ChatColor.RED + "Limited radius to %s! Don't want to make too much lag right?"), maxRadius)); radius = maxRadius; } @@ -184,14 +192,16 @@ public class DisguiseModifyRadiusCommand extends DisguiseBaseCommand implements } if (noPermission > 0) { - sender.sendMessage(ChatColor.RED + "No permission to modify " + noPermission + " disguises!"); + sender.sendMessage(String.format( + TranslateType.MESSAGE.get(ChatColor.RED + "No permission to modify " + "%s disguises!"), + noPermission)); } if (modifiedDisguises > 0) { - sender.sendMessage(ChatColor.RED + "Successfully modified the disguises of " + modifiedDisguises + " entities!"); - } - else { - sender.sendMessage(ChatColor.RED + "Couldn't find any disguised entities!"); + sender.sendMessage(String.format(TranslateType.MESSAGE.get( + ChatColor.RED + "Successfully modified the disguises of %s" + " entities!"), modifiedDisguises)); + } else { + sender.sendMessage(TranslateType.MESSAGE.get(ChatColor.RED + "Couldn't find any disguised entities!")); } return true; @@ -199,7 +209,7 @@ public class DisguiseModifyRadiusCommand extends DisguiseBaseCommand implements @Override public List onTabComplete(CommandSender sender, Command cmd, String label, String[] origArgs) { - ArrayList tabs = new ArrayList(); + ArrayList tabs = new ArrayList<>(); String[] args = getArgs(origArgs); HashMap, Boolean>> perms = getPermissions(sender); @@ -231,11 +241,12 @@ public class DisguiseModifyRadiusCommand extends DisguiseBaseCommand implements int radius = Integer.parseInt(args[starting]); if (radius > maxRadius) { - sender.sendMessage(ChatColor.RED + "Limited radius to " + maxRadius + "! Don't want to make too much lag right?"); + sender.sendMessage(String.format(TranslateType.MESSAGE.get( + ChatColor.RED + "Limited radius to %s! Don't want to make too much lag right?"), maxRadius)); radius = maxRadius; } - ArrayList usedOptions = new ArrayList(); + ArrayList usedOptions = new ArrayList<>(); for (Entity entity : getNearbyEntities(sender, radius)) { Disguise disguise = DisguiseAPI.getDisguise(entity); @@ -246,9 +257,7 @@ public class DisguiseModifyRadiusCommand extends DisguiseBaseCommand implements DisguiseType disguiseType = disguise.getType(); for (Method method : ReflectionFlagWatchers.getDisguiseWatcherMethods(disguiseType.getWatcherClass())) { - for (int i = 0; i < args.length; i++) { - String arg = args[i]; - + for (String arg : args) { if (!method.getName().equalsIgnoreCase(arg)) continue; @@ -256,7 +265,7 @@ public class DisguiseModifyRadiusCommand extends DisguiseBaseCommand implements } } - if (passesCheck(sender, perms.get(disguiseType), usedOptions)) { + if (passesCheck(sender, perms.get(new DisguisePerm(disguiseType)), usedOptions)) { boolean addMethods = true; if (args.length > 1 + starting) { @@ -272,8 +281,7 @@ public class DisguiseModifyRadiusCommand extends DisguiseBaseCommand implements for (String e : info.getEnums(origArgs[origArgs.length - 1])) { tabs.add(e); } - } - else { + } else { if (info.getParamClass() == String.class) { for (Player player : Bukkit.getOnlinePlayers()) { tabs.add(player.getName()); @@ -285,7 +293,8 @@ public class DisguiseModifyRadiusCommand extends DisguiseBaseCommand implements if (addMethods) { // If this is a method, add. Else if it can be a param of the previous argument, add. - for (Method method : ReflectionFlagWatchers.getDisguiseWatcherMethods(disguiseType.getWatcherClass())) { + for (Method method : ReflectionFlagWatchers.getDisguiseWatcherMethods( + disguiseType.getWatcherClass())) { tabs.add(method.getName()); } } @@ -299,31 +308,35 @@ public class DisguiseModifyRadiusCommand extends DisguiseBaseCommand implements * Send the player the information */ @Override - protected void sendCommandUsage(CommandSender sender, HashMap, Boolean>> map) { + protected void sendCommandUsage(CommandSender sender, + HashMap, Boolean>> map) { ArrayList allowedDisguises = getAllowedDisguises(map); - sender.sendMessage(ChatColor.DARK_GREEN + "Modify the disguises in a radius! Caps at " + maxRadius + " blocks!"); - sender.sendMessage(ChatColor.DARK_GREEN + "You can modify the disguises: " + ChatColor.GREEN - + StringUtils.join(allowedDisguises, ChatColor.RED + ", " + ChatColor.GREEN)); + sender.sendMessage(String.format(TranslateType.MESSAGE.get( + ChatColor.DARK_GREEN + "Modify the disguises in a radius! Caps at %s blocks!"), maxRadius)); + sender.sendMessage( + String.format(TranslateType.MESSAGE.get(ChatColor.DARK_GREEN + "You can modify the disguises: %s"), + ChatColor.GREEN + StringUtils.join(allowedDisguises, ChatColor.RED + ", " + ChatColor.GREEN))); String optional = ChatColor.DARK_GREEN + "(" + ChatColor.GREEN + "Optional" + ChatColor.DARK_GREEN + ")"; if (allowedDisguises.contains("player")) { - sender.sendMessage((ChatColor.DARK_GREEN + "/disguiseradius player ") - .replace("<", "<" + ChatColor.GREEN).replace(">", ChatColor.DARK_GREEN + ">")); + sender.sendMessage(TranslateType.MESSAGE.get( + (ChatColor.DARK_GREEN + "/disguiseradius player ").replace( + "<", "<" + ChatColor.GREEN).replace(">", ChatColor.DARK_GREEN + ">"))); } - sender.sendMessage((ChatColor.DARK_GREEN + "/disguiseradius ").replace("<", "<" + ChatColor.GREEN).replace(">", ChatColor.DARK_GREEN + ">")); + sender.sendMessage(TranslateType.MESSAGE.get( + (ChatColor.DARK_GREEN + "/disguiseradius ").replace( + "<", "<" + ChatColor.GREEN).replace(">", ChatColor.DARK_GREEN + ">"))); if (allowedDisguises.contains("dropped_item") || allowedDisguises.contains("falling_block")) { - sender.sendMessage((ChatColor.DARK_GREEN + "/disguiseradius ") - .replace("<", "<" + ChatColor.GREEN).replace(">", ChatColor.DARK_GREEN + ">")); + sender.sendMessage(TranslateType.MESSAGE.get( + (ChatColor.DARK_GREEN + "/disguiseradius ").replace( + "<", "<" + ChatColor.GREEN).replace(">", ChatColor.DARK_GREEN + ">"))); } - sender.sendMessage( - ChatColor.DARK_GREEN + "See the EntityType's usable by " + ChatColor.GREEN + "/disguiseradius EntityTypes"); + sender.sendMessage(TranslateType.MESSAGE.get( + ChatColor.DARK_GREEN + "See the EntityType's usable by " + ChatColor.GREEN + "/disguiseradius " + "EntityTypes")); } - } diff --git a/src/me/libraryaddict/disguise/commands/DisguisePlayerCommand.java b/src/me/libraryaddict/disguise/commands/DisguisePlayerCommand.java index 10718ee6..dfb20969 100644 --- a/src/me/libraryaddict/disguise/commands/DisguisePlayerCommand.java +++ b/src/me/libraryaddict/disguise/commands/DisguisePlayerCommand.java @@ -1,18 +1,5 @@ package me.libraryaddict.disguise.commands; -import java.lang.reflect.Method; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; - -import org.apache.commons.lang.StringUtils; -import org.bukkit.Bukkit; -import org.bukkit.ChatColor; -import org.bukkit.command.Command; -import org.bukkit.command.CommandSender; -import org.bukkit.command.TabCompleter; -import org.bukkit.entity.Player; - import me.libraryaddict.disguise.DisguiseAPI; import me.libraryaddict.disguise.DisguiseConfig; import me.libraryaddict.disguise.disguisetypes.Disguise; @@ -23,6 +10,20 @@ import me.libraryaddict.disguise.utilities.DisguiseParser.DisguiseParseException import me.libraryaddict.disguise.utilities.DisguiseParser.DisguisePerm; import me.libraryaddict.disguise.utilities.ReflectionFlagWatchers; import me.libraryaddict.disguise.utilities.ReflectionFlagWatchers.ParamInfo; +import me.libraryaddict.disguise.utilities.TranslateType; +import org.apache.commons.lang.StringUtils; +import org.bukkit.Bukkit; +import org.bukkit.ChatColor; +import org.bukkit.command.Command; +import org.bukkit.command.CommandSender; +import org.bukkit.command.TabCompleter; +import org.bukkit.entity.Player; + +import java.lang.reflect.Method; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.HashMap; +import java.util.List; public class DisguisePlayerCommand extends DisguiseBaseCommand implements TabCompleter { @@ -31,7 +32,7 @@ public class DisguisePlayerCommand extends DisguiseBaseCommand implements TabCom HashMap, Boolean>> map = getPermissions(sender); if (map.isEmpty()) { - sender.sendMessage(ChatColor.RED + "You are forbidden to use this command."); + sender.sendMessage(TranslateType.MESSAGE.get(ChatColor.RED + "You are forbidden to use this command.")); return true; } @@ -41,14 +42,16 @@ public class DisguisePlayerCommand extends DisguiseBaseCommand implements TabCom } if (args.length == 1) { - sender.sendMessage(ChatColor.RED + "You need to supply a disguise as well as the player"); + sender.sendMessage(TranslateType.MESSAGE.get( + ChatColor.RED + "You need to supply a disguise as well as " + "the player")); return true; } Player player = Bukkit.getPlayer(args[0]); if (player == null) { - sender.sendMessage(ChatColor.RED + "Cannot find the player '" + args[0] + "'"); + sender.sendMessage( + String.format(TranslateType.MESSAGE.get(ChatColor.RED + "Cannot find the player '%s'"), args[0])); return true; } @@ -78,8 +81,8 @@ public class DisguisePlayerCommand extends DisguiseBaseCommand implements TabCom } if (disguise.isMiscDisguise() && !DisguiseConfig.isMiscDisguisesForLivingEnabled()) { - sender.sendMessage( - ChatColor.RED + "Can't disguise a living entity as a misc disguise. This has been disabled in the config!"); + sender.sendMessage(TranslateType.MESSAGE.get( + ChatColor.RED + "Can't disguise a living entity as a misc disguise. This has been disabled in the" + " config!")); return true; } @@ -97,12 +100,13 @@ public class DisguisePlayerCommand extends DisguiseBaseCommand implements TabCom DisguiseAPI.disguiseToAll(player, disguise); if (disguise.isDisguiseInUse()) { - sender.sendMessage(ChatColor.RED + "Successfully disguised " + player.getName() + " as a " - + disguise.getType().toReadable() + "!"); - } - else { sender.sendMessage( - ChatColor.RED + "Failed to disguise " + player.getName() + " as a " + disguise.getType().toReadable() + "!"); + String.format(TranslateType.MESSAGE.get(ChatColor.RED + "Successfully disguised %s as a %s!"), + player.getName(), disguise.getType().toReadable())); + } else { + sender.sendMessage( + String.format(TranslateType.MESSAGE.get(ChatColor.RED + "Failed to disguise %s as a %s!"), + player.getName(), disguise.getType().toReadable())); } return true; @@ -110,7 +114,7 @@ public class DisguisePlayerCommand extends DisguiseBaseCommand implements TabCom @Override public List onTabComplete(CommandSender sender, Command cmd, String label, String[] origArgs) { - ArrayList tabs = new ArrayList(); + ArrayList tabs = new ArrayList<>(); String[] args = getArgs(origArgs); HashMap, Boolean>> perms = getPermissions(sender); @@ -119,13 +123,9 @@ public class DisguisePlayerCommand extends DisguiseBaseCommand implements TabCom for (Player player : Bukkit.getOnlinePlayers()) { tabs.add(player.getName()); } - } - else if (args.length == 1) { - for (String type : getAllowedDisguises(perms)) { - tabs.add(type); - } - } - else { + } else if (args.length == 1) { + tabs.addAll(getAllowedDisguises(perms)); + } else { DisguisePerm disguiseType = DisguiseParser.getDisguisePerm(args[1]); if (disguiseType == null) @@ -135,9 +135,8 @@ public class DisguisePlayerCommand extends DisguiseBaseCommand implements TabCom for (Player player : Bukkit.getOnlinePlayers()) { tabs.add(player.getName()); } - } - else { - ArrayList usedOptions = new ArrayList(); + } else { + ArrayList usedOptions = new ArrayList<>(); for (Method method : ReflectionFlagWatchers.getDisguiseWatcherMethods(disguiseType.getWatcherClass())) { for (int i = disguiseType.getType() == DisguiseType.PLAYER ? 3 : 2; i < args.length; i++) { @@ -163,11 +162,8 @@ public class DisguisePlayerCommand extends DisguiseBaseCommand implements TabCom addMethods = false; if (info.isEnums()) { - for (String e : info.getEnums(origArgs[origArgs.length - 1])) { - tabs.add(e); - } - } - else { + tabs.addAll(Arrays.asList(info.getEnums(origArgs[origArgs.length - 1]))); + } else { if (info.getParamClass() == String.class) { for (Player player : Bukkit.getOnlinePlayers()) { tabs.add(player.getName()); @@ -179,7 +175,8 @@ public class DisguisePlayerCommand extends DisguiseBaseCommand implements TabCom if (addMethods) { // If this is a method, add. Else if it can be a param of the previous argument, add. - for (Method method : ReflectionFlagWatchers.getDisguiseWatcherMethods(disguiseType.getWatcherClass())) { + for (Method method : ReflectionFlagWatchers.getDisguiseWatcherMethods( + disguiseType.getWatcherClass())) { tabs.add(method.getName()); } } @@ -194,22 +191,26 @@ public class DisguisePlayerCommand extends DisguiseBaseCommand implements TabCom * Send the player the information */ @Override - protected void sendCommandUsage(CommandSender sender, HashMap, Boolean>> map) { + protected void sendCommandUsage(CommandSender sender, + HashMap, Boolean>> map) { ArrayList allowedDisguises = getAllowedDisguises(map); sender.sendMessage(ChatColor.DARK_GREEN + "Disguise another player!"); - sender.sendMessage(ChatColor.DARK_GREEN + "You can use the disguises: " + ChatColor.GREEN - + StringUtils.join(allowedDisguises, ChatColor.RED + ", " + ChatColor.GREEN)); + sender.sendMessage( + String.format(TranslateType.MESSAGE.get(ChatColor.DARK_GREEN + "You can use the " + "disguises: %s"), + ChatColor.GREEN + StringUtils.join(allowedDisguises, ChatColor.RED + ", " + ChatColor.GREEN))); if (allowedDisguises.contains("player")) { - sender.sendMessage(ChatColor.DARK_GREEN + "/disguiseplayer player "); + sender.sendMessage(TranslateType.MESSAGE.get( + ChatColor.DARK_GREEN + "/disguiseplayer player " + "")); } - sender.sendMessage(ChatColor.DARK_GREEN + "/disguiseplayer "); + sender.sendMessage(TranslateType.MESSAGE.get( + ChatColor.DARK_GREEN + "/disguiseplayer " + " ")); if (allowedDisguises.contains("dropped_item") || allowedDisguises.contains("falling_block")) { - sender.sendMessage( - ChatColor.DARK_GREEN + "/disguiseplayer "); + sender.sendMessage(TranslateType.MESSAGE.get( + ChatColor.DARK_GREEN + "/disguiseplayer " + "")); } } } diff --git a/src/me/libraryaddict/disguise/commands/DisguiseRadiusCommand.java b/src/me/libraryaddict/disguise/commands/DisguiseRadiusCommand.java index 62c9d4ca..60025b45 100644 --- a/src/me/libraryaddict/disguise/commands/DisguiseRadiusCommand.java +++ b/src/me/libraryaddict/disguise/commands/DisguiseRadiusCommand.java @@ -11,6 +11,7 @@ import me.libraryaddict.disguise.utilities.DisguiseParser.DisguiseParseException import me.libraryaddict.disguise.utilities.DisguiseParser.DisguisePerm; import me.libraryaddict.disguise.utilities.ReflectionFlagWatchers; import me.libraryaddict.disguise.utilities.ReflectionFlagWatchers.ParamInfo; +import me.libraryaddict.disguise.utilities.TranslateType; import org.apache.commons.lang.StringUtils; import org.bukkit.Bukkit; import org.bukkit.ChatColor; @@ -25,10 +26,7 @@ import org.bukkit.entity.LivingEntity; import org.bukkit.entity.Player; import java.lang.reflect.Method; -import java.util.ArrayList; -import java.util.Collections; -import java.util.HashMap; -import java.util.List; +import java.util.*; public class DisguiseRadiusCommand extends DisguiseBaseCommand implements TabCompleter { private int maxRadius = 30; @@ -46,14 +44,15 @@ public class DisguiseRadiusCommand extends DisguiseBaseCommand implements TabCom @Override public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) { if (sender.getName().equals("CONSOLE")) { - sender.sendMessage(ChatColor.RED + "You may not use this command from the console!"); + sender.sendMessage( + TranslateType.MESSAGE.get(ChatColor.RED + "You may not use this command from the console!")); return true; } HashMap, Boolean>> map = getPermissions(sender); if (map.isEmpty()) { - sender.sendMessage(ChatColor.RED + "You are forbidden to use this command."); + sender.sendMessage(TranslateType.MESSAGE.get(ChatColor.RED + "You are forbidden to use this command.")); return true; } @@ -72,8 +71,9 @@ public class DisguiseRadiusCommand extends DisguiseBaseCommand implements TabCom Collections.sort(classes); sender.sendMessage( - ChatColor.DARK_GREEN + "EntityTypes usable are: " + ChatColor.GREEN + StringUtils.join(classes, - ChatColor.DARK_GREEN + ", " + ChatColor.GREEN) + ChatColor.DARK_GREEN + "."); + String.format(TranslateType.MESSAGE.get(ChatColor.DARK_GREEN + "EntityTypes usable are: %s"), + ChatColor.GREEN + StringUtils.join(classes, + ChatColor.DARK_GREEN + ", " + ChatColor.GREEN))); return true; } @@ -94,35 +94,40 @@ public class DisguiseRadiusCommand extends DisguiseBaseCommand implements TabCom try { type = EntityType.valueOf(args[0].toUpperCase()); } - catch (Exception ex) { + catch (Exception ignored) { } if (type == null) { - sender.sendMessage(ChatColor.RED + "Unrecognised EntityType " + args[0]); + sender.sendMessage( + String.format(TranslateType.MESSAGE.get(ChatColor.RED + "Unrecognised " + "EntityType %s"), + args[0])); return true; } } } if (args.length == starting + 1) { - sender.sendMessage(ChatColor.RED + "You need to supply a disguise as well as the radius" + (starting != 0 ? - " and EntityType" : "")); + sender.sendMessage(TranslateType.MESSAGE.get( + ChatColor.RED + "You need to supply a disguise as well as the radius" + (starting != 0 ? + " and EntityType" : ""))); return true; } else if (args.length < 2) { - sender.sendMessage(ChatColor.RED + "You need to supply a radius as well as the disguise"); + sender.sendMessage(TranslateType.MESSAGE.get( + ChatColor.RED + "You need to supply a radius as well as " + "the disguise")); return true; } if (!isNumeric(args[starting])) { - sender.sendMessage(ChatColor.RED + args[starting] + " is not a number"); + sender.sendMessage( + String.format(TranslateType.MESSAGE.get(ChatColor.RED + "%s is not a number"), args[starting])); return true; } int radius = Integer.parseInt(args[starting]); if (radius > maxRadius) { - sender.sendMessage( - ChatColor.RED + "Limited radius to " + maxRadius + "! Don't want to make too much lag right?"); + sender.sendMessage(String.format(TranslateType.MESSAGE.get( + ChatColor.RED + "Limited radius to %s! Don't want to make too much lag right?"), maxRadius)); radius = maxRadius; } @@ -193,14 +198,17 @@ public class DisguiseRadiusCommand extends DisguiseBaseCommand implements TabCom } if (disguisedEntitys > 0) { - sender.sendMessage(ChatColor.RED + "Successfully disguised " + disguisedEntitys + " entities!"); + sender.sendMessage( + String.format(TranslateType.MESSAGE.get(ChatColor.RED + "Successfully disguised %s" + " entities!"), + disguisedEntitys)); } else { - sender.sendMessage(ChatColor.RED + "Couldn't find any entities to disguise!"); + sender.sendMessage(TranslateType.MESSAGE.get(ChatColor.RED + "Couldn't find any entities to disguise!")); } if (miscDisguises > 0) { - sender.sendMessage( - ChatColor.RED + "Failed to disguise " + miscDisguises + " entities because the option to disguise a living entity as a non-living has been disabled in the config"); + sender.sendMessage(String.format(TranslateType.MESSAGE.get( + ChatColor.RED + "Failed to disguise %s entities because the option to disguise a living entity as" + " a non-living has been disabled in the config"), + miscDisguises)); } return true; @@ -208,7 +216,7 @@ public class DisguiseRadiusCommand extends DisguiseBaseCommand implements TabCom @Override public List onTabComplete(CommandSender sender, Command cmd, String label, String[] origArgs) { - ArrayList tabs = new ArrayList(); + ArrayList tabs = new ArrayList<>(); String[] args = getArgs(origArgs); HashMap, Boolean>> perms = getPermissions(sender); @@ -238,9 +246,7 @@ public class DisguiseRadiusCommand extends DisguiseBaseCommand implements TabCom } if (args.length == starting) { - for (String type : getAllowedDisguises(perms)) { - tabs.add(type); - } + tabs.addAll(getAllowedDisguises(perms)); } else { DisguisePerm disguiseType = DisguiseParser.getDisguisePerm(args[starting]); @@ -253,7 +259,7 @@ public class DisguiseRadiusCommand extends DisguiseBaseCommand implements TabCom tabs.add(player.getName()); } } else { - ArrayList usedOptions = new ArrayList(); + ArrayList usedOptions = new ArrayList<>(); for (Method method : ReflectionFlagWatchers.getDisguiseWatcherMethods(disguiseType.getWatcherClass())) { for (int i = disguiseType.getType() == DisguiseType.PLAYER ? starting + 2 : @@ -280,9 +286,7 @@ public class DisguiseRadiusCommand extends DisguiseBaseCommand implements TabCom addMethods = false; if (info.isEnums()) { - for (String e : info.getEnums(origArgs[origArgs.length - 1])) { - tabs.add(e); - } + tabs.addAll(Arrays.asList(info.getEnums(origArgs[origArgs.length - 1]))); } else { if (info.getParamClass() == String.class) { for (Player player : Bukkit.getOnlinePlayers()) { @@ -315,30 +319,31 @@ public class DisguiseRadiusCommand extends DisguiseBaseCommand implements TabCom HashMap, Boolean>> map) { ArrayList allowedDisguises = getAllowedDisguises(map); + sender.sendMessage(String.format(TranslateType.MESSAGE.get( + ChatColor.DARK_GREEN + "Disguise all entities in a radius! Caps at %s blocks!"), maxRadius)); sender.sendMessage( - ChatColor.DARK_GREEN + "Disguise all entities in a radius! Caps at " + maxRadius + " blocks!"); - sender.sendMessage(ChatColor.DARK_GREEN + "You can use the disguises: " + ChatColor.GREEN + StringUtils.join( - allowedDisguises, ChatColor.RED + ", " + ChatColor.GREEN)); + String.format(TranslateType.MESSAGE.get(ChatColor.DARK_GREEN + "You can use the " + "disguises: %s"), + ChatColor.GREEN + StringUtils.join(allowedDisguises, ChatColor.RED + ", " + ChatColor.GREEN))); String optional = ChatColor.DARK_GREEN + "(" + ChatColor.GREEN + "Optional" + ChatColor.DARK_GREEN + ")"; if (allowedDisguises.contains("player")) { - sender.sendMessage( + sender.sendMessage(TranslateType.MESSAGE.get( (ChatColor.DARK_GREEN + "/disguiseradius player ").replace( - "<", "<" + ChatColor.GREEN).replace(">", ChatColor.DARK_GREEN + ">")); + "<", "<" + ChatColor.GREEN).replace(">", ChatColor.DARK_GREEN + ">"))); } - sender.sendMessage( + sender.sendMessage(TranslateType.MESSAGE.get( (ChatColor.DARK_GREEN + "/disguiseradius ").replace( - "<", "<" + ChatColor.GREEN).replace(">", ChatColor.DARK_GREEN + ">")); + "<", "<" + ChatColor.GREEN).replace(">", ChatColor.DARK_GREEN + ">"))); if (allowedDisguises.contains("dropped_item") || allowedDisguises.contains("falling_block")) { - sender.sendMessage( + sender.sendMessage(TranslateType.MESSAGE.get( (ChatColor.DARK_GREEN + "/disguiseradius ").replace( - "<", "<" + ChatColor.GREEN).replace(">", ChatColor.DARK_GREEN + ">")); + "<", "<" + ChatColor.GREEN).replace(">", ChatColor.DARK_GREEN + ">"))); } - sender.sendMessage( - ChatColor.DARK_GREEN + "See the EntityType's usable by " + ChatColor.GREEN + "/disguiseradius EntityTypes"); + sender.sendMessage(TranslateType.MESSAGE.get( + ChatColor.DARK_GREEN + "See the EntityType's usable by " + ChatColor.GREEN + "/disguiseradius " + "EntityTypes")); } } diff --git a/src/me/libraryaddict/disguise/commands/DisguiseViewSelfCommand.java b/src/me/libraryaddict/disguise/commands/DisguiseViewSelfCommand.java index 84d0ecf3..7c38b092 100644 --- a/src/me/libraryaddict/disguise/commands/DisguiseViewSelfCommand.java +++ b/src/me/libraryaddict/disguise/commands/DisguiseViewSelfCommand.java @@ -1,5 +1,6 @@ package me.libraryaddict.disguise.commands; +import me.libraryaddict.disguise.utilities.TranslateType; import org.bukkit.ChatColor; import org.bukkit.command.Command; import org.bukkit.command.CommandExecutor; @@ -16,7 +17,8 @@ public class DisguiseViewSelfCommand implements CommandExecutor { @Override public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { if (sender.getName().equals("CONSOLE")) { - sender.sendMessage(ChatColor.RED + "You may not use this command from the console!"); + sender.sendMessage( + TranslateType.MESSAGE.get(ChatColor.RED + "You may not use this command from the " + "console!")); return true; } @@ -24,14 +26,12 @@ public class DisguiseViewSelfCommand implements CommandExecutor { if (DisguiseAPI.isViewSelfToggled(player)) { DisguiseAPI.setViewDisguiseToggled(player, false); - sender.sendMessage(ChatColor.GREEN + "Toggled viewing own disguise off!"); - } - else { + sender.sendMessage(TranslateType.MESSAGE.get(ChatColor.GREEN + "Toggled viewing own disguise off!")); + } else { DisguiseAPI.setViewDisguiseToggled(player, true); - sender.sendMessage(ChatColor.GREEN + "Toggled viewing own disguise on!"); + sender.sendMessage(TranslateType.MESSAGE.get(ChatColor.GREEN + "Toggled viewing own disguise on!")); } return true; } - } diff --git a/src/me/libraryaddict/disguise/commands/LibsDisguisesCommand.java b/src/me/libraryaddict/disguise/commands/LibsDisguisesCommand.java index 6b413ac4..0625174d 100644 --- a/src/me/libraryaddict/disguise/commands/LibsDisguisesCommand.java +++ b/src/me/libraryaddict/disguise/commands/LibsDisguisesCommand.java @@ -1,10 +1,8 @@ package me.libraryaddict.disguise.commands; -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; - +import me.libraryaddict.disguise.LibsDisguises; import me.libraryaddict.disguise.utilities.LibsPremium; +import me.libraryaddict.disguise.utilities.TranslateType; import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.command.Command; @@ -12,7 +10,9 @@ import org.bukkit.command.CommandExecutor; import org.bukkit.command.CommandSender; import org.bukkit.command.TabCompleter; -import me.libraryaddict.disguise.LibsDisguises; +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; public class LibsDisguisesCommand implements CommandExecutor, TabCompleter { protected ArrayList filterTabs(ArrayList list, String[] origArgs) { @@ -52,29 +52,28 @@ public class LibsDisguisesCommand implements CommandExecutor, TabCompleter { @Override public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) { if (args.length == 0) { - sender.sendMessage(ChatColor.DARK_GREEN + "This server is running " + "Lib's Disguises v" - + Bukkit.getPluginManager().getPlugin("LibsDisguises").getDescription().getVersion() - + " by libraryaddict, formerly maintained by Byteflux and NavidK0.\n" + "Use " + ChatColor.GREEN - + "/libsdisguises reload" + ChatColor.DARK_GREEN - + " to reload the config. All disguises will be blown by doing this."); + sender.sendMessage( + ChatColor.DARK_GREEN + "This server is running " + "Lib's Disguises v" + Bukkit.getPluginManager().getPlugin( + "LibsDisguises").getDescription().getVersion() + " by libraryaddict, formerly maintained " + "by Byteflux and NavidK0." + ( + sender.hasPermission("libsdisguises.reload") ? + "\nUse " + ChatColor.GREEN + "/libsdisguises " + "reload" + ChatColor.DARK_GREEN + " to reload the config. All disguises will be blown by doing this" + "." : + "")); if (LibsPremium.isPremium()) { sender.sendMessage(ChatColor.DARK_GREEN + "This server supports the plugin developer!"); } - } - else if (args.length > 0) { + } else if (args.length > 0) { if (sender.hasPermission("libsdisguises.reload")) { if (args[0].equalsIgnoreCase("reload")) { LibsDisguises.getInstance().reload(); - sender.sendMessage(ChatColor.GREEN + "[LibsDisguises] Reloaded config."); + sender.sendMessage(TranslateType.MESSAGE.get(ChatColor.GREEN + "[LibsDisguises] Reloaded config.")); return true; + } else { + sender.sendMessage(TranslateType.MESSAGE.get( + ChatColor.RED + "[LibsDisguises] Did you mean 'reload'?")); } - else { - sender.sendMessage(ChatColor.RED + "[LibsDisguises] That command doesn't exist!"); - } - } - else { - sender.sendMessage(ChatColor.RED + "You are forbidden to use this command."); + } else { + sender.sendMessage(TranslateType.MESSAGE.get(ChatColor.RED + "You are forbidden to use this command.")); } } return true; @@ -82,7 +81,7 @@ public class LibsDisguisesCommand implements CommandExecutor, TabCompleter { @Override public List onTabComplete(CommandSender sender, Command cmd, String label, String[] origArgs) { - ArrayList tabs = new ArrayList(); + ArrayList tabs = new ArrayList<>(); String[] args = getArgs(origArgs); if (args.length == 0) diff --git a/src/me/libraryaddict/disguise/commands/UndisguiseCommand.java b/src/me/libraryaddict/disguise/commands/UndisguiseCommand.java index 27abc63c..bcaab320 100644 --- a/src/me/libraryaddict/disguise/commands/UndisguiseCommand.java +++ b/src/me/libraryaddict/disguise/commands/UndisguiseCommand.java @@ -1,5 +1,6 @@ package me.libraryaddict.disguise.commands; +import me.libraryaddict.disguise.utilities.TranslateType; import org.bukkit.ChatColor; import org.bukkit.command.Command; import org.bukkit.command.CommandExecutor; @@ -9,32 +10,24 @@ import org.bukkit.entity.Player; import me.libraryaddict.disguise.DisguiseAPI; -public class UndisguiseCommand implements CommandExecutor -{ +public class UndisguiseCommand implements CommandExecutor { @Override - public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) - { - if (sender.getName().equals("CONSOLE")) - { - sender.sendMessage(ChatColor.RED + "You may not use this command from the console!"); + public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) { + if (sender.getName().equals("CONSOLE")) { + sender.sendMessage( + TranslateType.MESSAGE.get(ChatColor.RED + "You may not use this command from the " + "console!")); return true; } - if (sender.hasPermission("libsdisguises.undisguise")) - { - if (DisguiseAPI.isDisguised((Entity) sender)) - { + if (sender.hasPermission("libsdisguises.undisguise")) { + if (DisguiseAPI.isDisguised((Entity) sender)) { DisguiseAPI.undisguiseToAll((Player) sender); - sender.sendMessage(ChatColor.RED + "You are no longer disguised"); + sender.sendMessage(TranslateType.MESSAGE.get(ChatColor.RED + "You are no longer disguised")); + } else { + sender.sendMessage(TranslateType.MESSAGE.get(ChatColor.RED + "You are not disguised!")); } - else - { - sender.sendMessage(ChatColor.RED + "You are not disguised!"); - } - } - else - { - sender.sendMessage(ChatColor.RED + "You are forbidden to use this command."); + } else { + sender.sendMessage(TranslateType.MESSAGE.get(ChatColor.RED + "You are forbidden to use this command.")); } return true; } diff --git a/src/me/libraryaddict/disguise/commands/UndisguiseEntityCommand.java b/src/me/libraryaddict/disguise/commands/UndisguiseEntityCommand.java index 6b586f2c..d49d988a 100644 --- a/src/me/libraryaddict/disguise/commands/UndisguiseEntityCommand.java +++ b/src/me/libraryaddict/disguise/commands/UndisguiseEntityCommand.java @@ -1,31 +1,27 @@ package me.libraryaddict.disguise.commands; +import me.libraryaddict.disguise.LibsDisguises; +import me.libraryaddict.disguise.utilities.TranslateType; import org.bukkit.ChatColor; import org.bukkit.command.Command; import org.bukkit.command.CommandExecutor; import org.bukkit.command.CommandSender; -import me.libraryaddict.disguise.LibsDisguises; - -public class UndisguiseEntityCommand implements CommandExecutor -{ +public class UndisguiseEntityCommand implements CommandExecutor { @Override - public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) - { - if (sender.getName().equals("CONSOLE")) - { - sender.sendMessage(ChatColor.RED + "You may not use this command from the console!"); + public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) { + if (sender.getName().equals("CONSOLE")) { + sender.sendMessage( + TranslateType.MESSAGE.get(ChatColor.RED + "You may not use this command from the console!")); return true; } - if (sender.hasPermission("libsdisguises.undisguiseentity")) - { + if (sender.hasPermission("libsdisguises.undisguiseentity")) { LibsDisguises.getInstance().getListener().setDisguiseEntity(sender.getName(), null); - sender.sendMessage(ChatColor.RED + "Right click a disguised entity to undisguise them!"); - } - else - { - sender.sendMessage(ChatColor.RED + "You are forbidden to use this command."); + sender.sendMessage(TranslateType.MESSAGE.get( + ChatColor.RED + "Right click a disguised entity to " + "undisguise them!")); + } else { + sender.sendMessage(TranslateType.MESSAGE.get(ChatColor.RED + "You are forbidden to use this command.")); } return true; } diff --git a/src/me/libraryaddict/disguise/commands/UndisguisePlayerCommand.java b/src/me/libraryaddict/disguise/commands/UndisguisePlayerCommand.java index 75c2b5fa..c7537e1e 100644 --- a/src/me/libraryaddict/disguise/commands/UndisguisePlayerCommand.java +++ b/src/me/libraryaddict/disguise/commands/UndisguisePlayerCommand.java @@ -1,9 +1,7 @@ package me.libraryaddict.disguise.commands; -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; - +import me.libraryaddict.disguise.DisguiseAPI; +import me.libraryaddict.disguise.utilities.TranslateType; import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.command.Command; @@ -12,7 +10,9 @@ import org.bukkit.command.CommandSender; import org.bukkit.command.TabCompleter; import org.bukkit.entity.Player; -import me.libraryaddict.disguise.DisguiseAPI; +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; public class UndisguisePlayerCommand implements CommandExecutor, TabCompleter { protected ArrayList filterTabs(ArrayList list, String[] origArgs) { @@ -35,7 +35,7 @@ public class UndisguisePlayerCommand implements CommandExecutor, TabCompleter { } protected String[] getArgs(String[] args) { - ArrayList newArgs = new ArrayList(); + ArrayList newArgs = new ArrayList<>(); for (int i = 0; i < args.length - 1; i++) { String s = args[i]; @@ -57,29 +57,26 @@ public class UndisguisePlayerCommand implements CommandExecutor, TabCompleter { if (p != null) { if (DisguiseAPI.isDisguised(p)) { DisguiseAPI.undisguiseToAll(p); - sender.sendMessage(ChatColor.RED + "The player is no longer disguised"); - } - else { - sender.sendMessage(ChatColor.RED + "The player is not disguised!"); + sender.sendMessage( + TranslateType.MESSAGE.get(ChatColor.RED + "The player is no longer disguised")); + } else { + sender.sendMessage(TranslateType.MESSAGE.get(ChatColor.RED + "The player is not disguised!")); } + } else { + sender.sendMessage(TranslateType.MESSAGE.get(ChatColor.RED + "Player not found")); } - else { - sender.sendMessage(ChatColor.RED + "Player not found"); - } + } else { + sender.sendMessage(TranslateType.MESSAGE.get(ChatColor.RED + "/undisguiseplayer ")); } - else { - sender.sendMessage(ChatColor.RED + "/undisguiseplayer "); - } - } - else { - sender.sendMessage(ChatColor.RED + "You are forbidden to use this command."); + } else { + sender.sendMessage(TranslateType.MESSAGE.get(ChatColor.RED + "You are forbidden to use this command.")); } return true; } @Override public List onTabComplete(CommandSender sender, Command cmd, String label, String[] origArgs) { - ArrayList tabs = new ArrayList(); + ArrayList tabs = new ArrayList<>(); String[] args = getArgs(origArgs); if (args.length != 0) diff --git a/src/me/libraryaddict/disguise/commands/UndisguiseRadiusCommand.java b/src/me/libraryaddict/disguise/commands/UndisguiseRadiusCommand.java index b8d12918..a01df165 100644 --- a/src/me/libraryaddict/disguise/commands/UndisguiseRadiusCommand.java +++ b/src/me/libraryaddict/disguise/commands/UndisguiseRadiusCommand.java @@ -1,5 +1,7 @@ package me.libraryaddict.disguise.commands; +import me.libraryaddict.disguise.DisguiseAPI; +import me.libraryaddict.disguise.utilities.TranslateType; import org.bukkit.ChatColor; import org.bukkit.command.Command; import org.bukkit.command.CommandExecutor; @@ -7,8 +9,6 @@ import org.bukkit.command.CommandSender; import org.bukkit.entity.Entity; import org.bukkit.entity.Player; -import me.libraryaddict.disguise.DisguiseAPI; - public class UndisguiseRadiusCommand implements CommandExecutor { private int maxRadius = 30; @@ -29,24 +29,28 @@ public class UndisguiseRadiusCommand implements CommandExecutor { @Override public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) { if (sender.getName().equals("CONSOLE")) { - sender.sendMessage(ChatColor.RED + "You may not use this command from the console!"); + sender.sendMessage( + TranslateType.MESSAGE.get(ChatColor.RED + "You may not use this command from the console!")); return true; } if (sender.hasPermission("libsdisguises.undisguiseradius")) { int radius = maxRadius; if (args.length > 0) { if (!isNumeric(args[0])) { - sender.sendMessage( - ChatColor.RED + "Error! " + ChatColor.GREEN + args[0] + ChatColor.RED + " is not a number!"); + sender.sendMessage(String.format(TranslateType.MESSAGE.get( + ChatColor.RED + "Error! " + ChatColor.GREEN + "%s" + ChatColor.RED + " is not a " + "number!"), + args[0])); return true; } radius = Integer.parseInt(args[0]); if (radius > maxRadius) { - sender.sendMessage( - ChatColor.RED + "Limited radius to " + maxRadius + "! Don't want to make too much lag right?"); + sender.sendMessage(String.format(TranslateType.MESSAGE.get( + ChatColor.RED + "Limited radius to %s" + "! Don't want to make too much lag right?"), + maxRadius)); radius = maxRadius; } } + int disguisedEntitys = 0; for (Entity entity : ((Player) sender).getNearbyEntities(radius, radius, radius)) { if (entity == sender) { @@ -57,10 +61,11 @@ public class UndisguiseRadiusCommand implements CommandExecutor { disguisedEntitys++; } } - sender.sendMessage(ChatColor.RED + "Successfully undisguised " + disguisedEntitys + " entities!"); - } - else { - sender.sendMessage(ChatColor.RED + "You are forbidden to use this command."); + sender.sendMessage( + String.format(TranslateType.MESSAGE.get(ChatColor.RED + "Successfully undisguised %s entities!"), + disguisedEntitys)); + } else { + sender.sendMessage(TranslateType.MESSAGE.get(ChatColor.RED + "You are forbidden to use this command.")); } return true; } diff --git a/src/me/libraryaddict/disguise/utilities/DisguiseParser.java b/src/me/libraryaddict/disguise/utilities/DisguiseParser.java index 68b0b279..06fdba72 100644 --- a/src/me/libraryaddict/disguise/utilities/DisguiseParser.java +++ b/src/me/libraryaddict/disguise/utilities/DisguiseParser.java @@ -36,8 +36,8 @@ public class DisguiseParser { super(); } - public DisguiseParseException(String string) { - super(string); + public DisguiseParseException(LibsMessages message, String... params) { + super(message.get(params)); } } @@ -467,11 +467,12 @@ public class DisguiseParser { public static Disguise parseDisguise(CommandSender sender, String permNode, String[] args, HashMap, Boolean>> permissionMap) throws DisguiseParseException, IllegalAccessException, InvocationTargetException { if (permissionMap.isEmpty()) { - throw new DisguiseParseException(ChatColor.RED + "You are forbidden to use this command."); + throw new DisguiseParseException( + TranslateType.MESSAGE.get(ChatColor.RED + "You are forbidden to use this " + "command.")); } if (args.length == 0) { - throw new DisguiseParseException("No arguments defined"); + throw new DisguiseParseException(TranslateType.MESSAGE.get("No arguments defined")); } // How many args to skip due to the disugise being constructed @@ -487,15 +488,17 @@ public class DisguiseParser { disguise = DisguiseUtilities.getClonedDisguise(args[0].toLowerCase()); if (disguise == null) { - throw new DisguiseParseException( - ChatColor.RED + "Cannot find a disguise under the reference " + args[0]); + throw new DisguiseParseException(String.format( + TranslateType.MESSAGE.get(ChatColor.RED + "Cannot find a disguise under the reference %s"), + args[0])); } } else { - throw new DisguiseParseException( - ChatColor.RED + "You do not have perimssion to use disguise references!"); + throw new DisguiseParseException(TranslateType.MESSAGE.get( + ChatColor.RED + "You do not have perimssion to use disguise references!")); } - optionPermissions = (permissionMap.containsKey(disguise.getType()) ? permissionMap.get(disguise.getType()) : + optionPermissions = (permissionMap.containsKey(new DisguisePerm(disguise.getType())) ? + permissionMap.get(new DisguisePerm(disguise.getType())) : new HashMap, Boolean>()); } else { DisguisePerm disguisePerm = getDisguisePerm(args[0]); @@ -506,21 +509,24 @@ public class DisguiseParser { } if (disguisePerm == null) { - throw new DisguiseParseException( - ChatColor.RED + "Error! The disguise " + ChatColor.GREEN + args[0] + ChatColor.RED + " doesn't exist!"); + throw new DisguiseParseException(String.format(TranslateType.MESSAGE.get( + ChatColor.RED + "Error! The disguise " + ChatColor.GREEN + "%s" + ChatColor.RED + " " + "doesn't exist!"), + args[0])); } if (disguisePerm.isUnknown()) { - throw new DisguiseParseException( - ChatColor.RED + "Error! You cannot disguise as " + ChatColor.GREEN + "Unknown!"); + throw new DisguiseParseException(TranslateType.MESSAGE.get( + ChatColor.RED + "Error! You cannot disguise as " + ChatColor.GREEN + "Unknown!")); } if (disguisePerm.getEntityType() == null) { - throw new DisguiseParseException(ChatColor.RED + "Error! This disguise couldn't be loaded!"); + throw new DisguiseParseException( + TranslateType.MESSAGE.get(ChatColor.RED + "Error! This disguise " + "couldn't be loaded!")); } if (!permissionMap.containsKey(disguisePerm)) { - throw new DisguiseParseException(ChatColor.RED + "You are forbidden to use this disguise."); + throw new DisguiseParseException( + TranslateType.MESSAGE.get(ChatColor.RED + "You are forbidden to use " + "this disguise.")); } optionPermissions = permissionMap.get(disguisePerm); @@ -532,12 +538,13 @@ public class DisguiseParser { // If he is doing a player disguise if (args.length == 1) { // He needs to give the player name - throw new DisguiseParseException(ChatColor.RED + "Error! You need to give a player name!"); + throw new DisguiseParseException(TranslateType.MESSAGE.get( + ChatColor.RED + "Error! You need " + "to give a player name!")); } else { if (!disguiseOptions.isEmpty() && (!disguiseOptions.containsKey( args[1].toLowerCase()) || !disguiseOptions.get(args[1].toLowerCase()))) { - throw new DisguiseParseException( - ChatColor.RED + "Error! You don't have permission to use that name!"); + throw new DisguiseParseException(TranslateType.MESSAGE.get( + ChatColor.RED + "Error! You don't have permission to use that name!")); } args[1] = args[1].replace("\\_", " "); @@ -604,8 +611,9 @@ public class DisguiseParser { case WITHER_SKULL: break; default: - throw new DisguiseParseException( - ChatColor.RED + "Error! " + disguisePerm.toReadable() + " doesn't know what to do with " + args[1] + "!"); + throw new DisguiseParseException(String.format(TranslateType.MESSAGE.get( + ChatColor.RED + "Error! %s doesn't know" + " " + "what to do with %s!"), + disguisePerm.toReadable(), args[1])); } toSkip++; // If they also defined a data value @@ -615,8 +623,10 @@ public class DisguiseParser { } if (secondArg != null) { if (disguisePerm.getType() != DisguiseType.FALLING_BLOCK && disguisePerm.getType() != DisguiseType.DROPPED_ITEM) { - throw new DisguiseParseException( - ChatColor.RED + "Error! Only the disguises " + DisguiseType.FALLING_BLOCK.toReadable() + " and " + DisguiseType.DROPPED_ITEM.toReadable() + " uses a second number!"); + throw new DisguiseParseException(String.format(TranslateType.MESSAGE.get( + ChatColor.RED + "Error! Only the disguises " + DisguiseType.FALLING_BLOCK.toReadable() + " and " + DisguiseType.DROPPED_ITEM.toReadable() + " uses a second number!"), + DisguiseType.FALLING_BLOCK.toReadable(), + DisguiseType.DROPPED_ITEM.toReadable())); } miscData = Integer.parseInt(secondArg); } @@ -635,8 +645,9 @@ public class DisguiseParser { } if (!disguiseOptions.containsKey(toCheck) || !disguiseOptions.get(toCheck)) { - throw new DisguiseParseException( - ChatColor.RED + "Error! You do not have permission to use the parameter " + toCheck + " on the " + disguisePerm.toReadable() + " disguise!"); + throw new DisguiseParseException(String.format(TranslateType.MESSAGE.get( + ChatColor.RED + "Error! You do not have permission to use the parameter %s on the" + " %s disguise!"), + toCheck, disguisePerm.toReadable())); } } diff --git a/src/me/libraryaddict/disguise/utilities/LibsMessages.java b/src/me/libraryaddict/disguise/utilities/LibsMessages.java new file mode 100644 index 00000000..86fad618 --- /dev/null +++ b/src/me/libraryaddict/disguise/utilities/LibsMessages.java @@ -0,0 +1,22 @@ +package me.libraryaddict.disguise.utilities; + +/** + * Created by libraryaddict on 15/06/2017. + */ +public enum LibsMessages { + // Format being CLASS_STRING. So no perm = DISG_COMMAND_NO_PERM. Or DISG_PARSE_NO_PERM_OPTION + TEST("This is a test string"); + + private String string; + + LibsMessages(String string) { + this.string = string; + } + + public String get(String... strings) { + if (strings.length == 0) + return TranslateType.MESSAGE.get(string); + + return String.format(TranslateType.MESSAGE.get(string), (Object[]) strings); + } +} diff --git a/src/me/libraryaddict/disguise/utilities/ReflectionFlagWatchers.java b/src/me/libraryaddict/disguise/utilities/ReflectionFlagWatchers.java index 0ff5dd54..5965049f 100644 --- a/src/me/libraryaddict/disguise/utilities/ReflectionFlagWatchers.java +++ b/src/me/libraryaddict/disguise/utilities/ReflectionFlagWatchers.java @@ -149,7 +149,7 @@ public class ReflectionFlagWatchers { new ParamInfo(Ocelot.Type.class, "Ocelot Type", "View all the ocelot types you can use for ocelots"); new ParamInfo(Villager.Profession.class, "Villager Profession", "View all the professions you can set on a villager"); - new ParamInfo(BlockFace.class, Arrays.copyOf(BlockFace.values(), 5), "Direction", + new ParamInfo(BlockFace.class, Arrays.copyOf(BlockFace.values(), 4), "Direction", "View the five directions usable on player setSleeping disguise"); new ParamInfo(Rabbit.Type.class, "Rabbit Type", "View the kinds of rabbits you can turn into"); new ParamInfo(TreeSpecies.class, "Tree Species", "View the different types of tree species"); @@ -178,7 +178,7 @@ public class ReflectionFlagWatchers { new ParamInfo(ItemStack.class, "Item (id:damage)", "An ItemStack compromised of ID:Durability", materials); - new ParamInfo(ItemStack[].class, "Four ItemStacks (id:damage,id:damage..)", "Four ItemStacks seperated by an ,", + new ParamInfo(ItemStack[].class, "Four ItemStacks (id:damage,id:damage..)", "Four ItemStacks separated by an ,", materials) { @Override public String[] getEnums(String tabComplete) { @@ -203,14 +203,14 @@ public class ReflectionFlagWatchers { potionEnums.toArray(new String[0])); new ParamInfo(String.class, "Text", "A line of text"); new ParamInfo(boolean.class, "True/False", "True or False", new String[]{"true", "false"}); - new ParamInfo(int.class, "Number", "A whole number, no decimcals"); + new ParamInfo(int.class, "Number", "A whole number, no decimals"); new ParamInfo(double.class, "Number", "A number which can have decimals"); new ParamInfo(float.class, "Number", "A number which can have decimals"); new ParamInfo(Horse.Style.class, "Horse Style", "Horse style which is the patterns on the horse"); - new ParamInfo(int[].class, "number,number,number...", "Numbers seperated by an ,"); + new ParamInfo(int[].class, "number,number,number..", "Numbers separated by an ,"); - new ParamInfo(BlockPosition.class, "Block Position (num,num,num)", "Three numbers seperated by an ,"); + new ParamInfo(BlockPosition.class, "Block Position (num,num,num)", "Three numbers separated by a ,"); new ParamInfo(GameProfile.class, "GameProfile", "Get the gameprofile here https://sessionserver.mojang.com/session/minecraft/profile/PLAYER_UUID_GOES_HERE?unsigned=false"); @@ -223,7 +223,7 @@ public class ReflectionFlagWatchers { } public static Method[] getDisguiseWatcherMethods(Class watcherClass) { - ArrayList methods = new ArrayList(Arrays.asList(watcherClass.getMethods())); + ArrayList methods = new ArrayList<>(Arrays.asList(watcherClass.getMethods())); Iterator itel = methods.iterator(); diff --git a/src/me/libraryaddict/disguise/utilities/TranslateFiller.java b/src/me/libraryaddict/disguise/utilities/TranslateFiller.java index d75191ee..d6c8a9a2 100644 --- a/src/me/libraryaddict/disguise/utilities/TranslateFiller.java +++ b/src/me/libraryaddict/disguise/utilities/TranslateFiller.java @@ -1,6 +1,7 @@ package me.libraryaddict.disguise.utilities; import me.libraryaddict.disguise.disguisetypes.DisguiseType; +import org.bukkit.inventory.ItemStack; import java.lang.reflect.Method; @@ -15,8 +16,11 @@ public class TranslateFiller { if (!info.isEnums()) continue; + if (info.getParamClass() == ItemStack.class || info.getParamClass() == ItemStack[].class) + continue; + for (String e : info.getEnums("")) { - TranslateType.METHOD_PARAM.get(e, "Name for the param for " + info.getName()); + TranslateType.METHOD_PARAM.get(e, "Used as a disguise option for " + info.getName()); } } @@ -24,10 +28,23 @@ public class TranslateFiller { type.toReadable(); for (Method method : ReflectionFlagWatchers.getDisguiseWatcherMethods(type.getWatcherClass())) { + Class para = method.getParameterTypes()[0]; + String className = method.getDeclaringClass().getSimpleName().replace("Watcher", ""); + + if (className.equals("Flag") || className.equals("Disguise")) + className = "Entity"; + else if (className.equals("Living")) + className = "Living Entity"; + else if (className.equals("AbstractHorse")) + className = "Horse"; + else if (className.equals("DroppedItem")) + className = "Item"; + else if (className.equals("IllagerWizard")) + className = "Illager"; + TranslateType.METHOD.get(method.getName(), - "Found in " + method.getDeclaringClass().getSimpleName().replace("Watcher", - "") + " and accepts as a parameter " + TranslateType.METHOD_PARAM.get( - method.getParameterTypes()[0].getSimpleName())); + "Found in the disguise options for " + className + " and uses " + (para.isArray() ? + "multiple" + " " : "a ") + para.getSimpleName().replace("[]", "s")); } } } diff --git a/src/me/libraryaddict/disguise/utilities/TranslateType.java b/src/me/libraryaddict/disguise/utilities/TranslateType.java index a966bfbd..b6f99e4b 100644 --- a/src/me/libraryaddict/disguise/utilities/TranslateType.java +++ b/src/me/libraryaddict/disguise/utilities/TranslateType.java @@ -1,11 +1,15 @@ package me.libraryaddict.disguise.utilities; +import me.libraryaddict.disguise.DisguiseConfig; import org.apache.commons.lang3.StringEscapeUtils; +import org.bukkit.configuration.InvalidConfigurationException; import org.bukkit.configuration.file.YamlConfiguration; import java.io.File; +import java.io.FileWriter; import java.io.IOException; import java.io.PrintWriter; +import java.util.HashMap; import java.util.Map; import java.util.Objects; @@ -13,46 +17,80 @@ import java.util.Objects; * Created by libraryaddict on 10/06/2017. */ public enum TranslateType { - DISGUISE("disguise_names"), MESSAGE("messages"), METHOD_PARAM("option_names"), METHOD("disguise_options"); + DISGUISE("disguises"), MESSAGE("messages"), METHOD_PARAM("disguise_options"), METHOD("disguise_option_parameters"); private File file; - private YamlConfiguration config; + private HashMap translated = new HashMap<>(); TranslateType(String fileName) { - file = new File("translate", fileName + ".yml"); + file = new File("plugins/LibsDisguises/Translations", fileName + ".yml"); reload(); } - public void reload() { - if (!file.exists()) - file.getParentFile().mkdirs(); - - try { - file.createNewFile(); - } - catch (IOException e) { - e.printStackTrace(); + public static void reloadTranslations() { + for (TranslateType type : values()) { + type.reload(); } - config = YamlConfiguration.loadConfiguration(file); + TranslateFiller.fillConfigs(); } - private YamlConfiguration getConfig() { - return config; + private void reload() { + if (!LibsPremium.isPremium() || !DisguiseConfig.isUseTranslations()) + return; + + translated.clear(); + + if (!file.exists()) + return; + + System.out.println("[LibsDisguises] Loading translations: " + name()); + YamlConfiguration config = new YamlConfiguration(); + config.options().pathSeparator(Character.toChars(0)[0]); + + try { + config.load(file); + + for (String key : config.getKeys(false)) { + String value = config.getString(key); + + if (value == null) + System.err.println("Translation for " + name() + " has a null value for the key '" + key + "'"); + else + translated.put(key, value); + } + } + catch (Exception e) { + e.printStackTrace(); + } } private File getFile() { return file; } - public void save(String message, String comment) { - message = StringEscapeUtils.escapeJson(message); - - if (getConfig().contains(message)) + private void save(String message, String comment) { + if (translated.containsKey(message)) return; + translated.put(message, message); + + message = StringEscapeUtils.escapeJava(message); + try { - PrintWriter writer = new PrintWriter(getFile()); - writer.write((comment != null ? "# " + comment + "\n" : "") + message + ": " + message + "\n"); + boolean exists = file.exists(); + + if (!exists) { + file.getParentFile().mkdirs(); + file.createNewFile(); + } + + FileWriter writer = new FileWriter(getFile(), true); + + if (!exists) + writer.write("# To use translations in Lib's Disguises, you must have the purchased plugin\n"); + + writer.write("\n" + (comment != null ? "# " + comment + "\n" : + "") + "\"" + message + "\": \"" + message + "\"\n"); writer.close(); } @@ -62,10 +100,10 @@ public enum TranslateType { } public String reverseGet(String translated) { - translated = StringEscapeUtils.unescapeJson(translated).toLowerCase(); + translated = translated.toLowerCase(); - for (Map.Entry entry : getConfig().getValues(false).entrySet()) { - if (!Objects.equals(entry.getValue().toString().toLowerCase(), translated)) + for (Map.Entry entry : this.translated.entrySet()) { + if (!Objects.equals(entry.getValue().toLowerCase(), translated)) continue; return entry.getKey(); @@ -82,10 +120,15 @@ public enum TranslateType { } public String get(String message, String comment) { - String msg = getConfig().getString(StringEscapeUtils.escapeJson(message)); + if (!LibsPremium.isPremium() || !DisguiseConfig.isUseTranslations()) + return message; + System.out.println("1"); + + String msg = translated.get(message); if (msg != null) return msg; + System.out.println("2"); save(message, comment); diff --git a/src/me/libraryaddict/disguise/utilities/json/SerializerGameProfile.java b/src/me/libraryaddict/disguise/utilities/json/SerializerGameProfile.java index dcabf0a4..52204ad9 100644 --- a/src/me/libraryaddict/disguise/utilities/json/SerializerGameProfile.java +++ b/src/me/libraryaddict/disguise/utilities/json/SerializerGameProfile.java @@ -13,7 +13,6 @@ public class SerializerGameProfile implements JsonSerializer @Override public JsonElement serialize(WrappedGameProfile src, Type typeOfSrc, JsonSerializationContext context) { - System.out.println(src.getHandle().toString()); return context.serialize(src.getHandle(), GameProfile.class); }