diff --git a/src/main/java/me/libraryaddict/disguise/commands/disguise/DisguiseCommand.java b/src/main/java/me/libraryaddict/disguise/commands/disguise/DisguiseCommand.java index 7d0c8769..5c95121f 100644 --- a/src/main/java/me/libraryaddict/disguise/commands/disguise/DisguiseCommand.java +++ b/src/main/java/me/libraryaddict/disguise/commands/disguise/DisguiseCommand.java @@ -47,9 +47,7 @@ public class DisguiseCommand extends DisguiseBaseCommand implements TabCompleter disguise = DisguiseParser .parseDisguise(sender, (Entity) sender, getPermNode(), DisguiseUtilities.split(StringUtils.join(args, " ")), getPermissions(sender)); } catch (DisguiseParseException ex) { - if (ex.getMessage() != null) { - DisguiseUtilities.sendMessage(sender, ex.getMessage()); - } + ex.send(sender); return true; } catch (Throwable ex) { diff --git a/src/main/java/me/libraryaddict/disguise/commands/disguise/DisguiseEntityCommand.java b/src/main/java/me/libraryaddict/disguise/commands/disguise/DisguiseEntityCommand.java index 5ce66101..a46f0cc0 100644 --- a/src/main/java/me/libraryaddict/disguise/commands/disguise/DisguiseEntityCommand.java +++ b/src/main/java/me/libraryaddict/disguise/commands/disguise/DisguiseEntityCommand.java @@ -51,9 +51,7 @@ public class DisguiseEntityCommand extends DisguiseBaseCommand implements TabCom try { testDisguise = DisguiseParser.parseTestDisguise(sender, getPermNode(), disguiseArgs, getPermissions(sender)); } catch (DisguiseParseException ex) { - if (ex.getMessage() != null) { - DisguiseUtilities.sendMessage(sender, ex.getMessage()); - } + ex.send(sender); return true; } catch (Throwable ex) { diff --git a/src/main/java/me/libraryaddict/disguise/commands/disguise/DisguisePlayerCommand.java b/src/main/java/me/libraryaddict/disguise/commands/disguise/DisguisePlayerCommand.java index 822dab01..1447227c 100644 --- a/src/main/java/me/libraryaddict/disguise/commands/disguise/DisguisePlayerCommand.java +++ b/src/main/java/me/libraryaddict/disguise/commands/disguise/DisguisePlayerCommand.java @@ -81,9 +81,7 @@ public class DisguisePlayerCommand extends DisguiseBaseCommand implements TabCom try { disguise = DisguiseParser.parseDisguise(sender, entityTarget, getPermNode(), DisguiseUtilities.split(StringUtils.join(newArgs, " ")), permissions); } catch (DisguiseParseException ex) { - if (ex.getMessage() != null) { - DisguiseUtilities.sendMessage(sender, ex.getMessage()); - } + ex.send(sender); return true; } catch (Throwable ex) { ex.printStackTrace(); diff --git a/src/main/java/me/libraryaddict/disguise/commands/disguise/DisguiseRadiusCommand.java b/src/main/java/me/libraryaddict/disguise/commands/disguise/DisguiseRadiusCommand.java index a65d2e8c..be11afbb 100644 --- a/src/main/java/me/libraryaddict/disguise/commands/disguise/DisguiseRadiusCommand.java +++ b/src/main/java/me/libraryaddict/disguise/commands/disguise/DisguiseRadiusCommand.java @@ -215,9 +215,7 @@ public class DisguiseRadiusCommand extends DisguiseBaseCommand implements TabCom LibsMsg.DRADIUS_MISCDISG.send(sender, miscDisguises); } } catch (DisguiseParseException ex) { - if (ex.getMessage() != null) { - DisguiseUtilities.sendMessage(sender, ex.getMessage()); - } + ex.send(sender); } catch (Throwable ex) { ex.printStackTrace(); } diff --git a/src/main/java/me/libraryaddict/disguise/commands/interactions/DisguiseEntityInteraction.java b/src/main/java/me/libraryaddict/disguise/commands/interactions/DisguiseEntityInteraction.java index 4da3c2cb..5ce109d4 100644 --- a/src/main/java/me/libraryaddict/disguise/commands/interactions/DisguiseEntityInteraction.java +++ b/src/main/java/me/libraryaddict/disguise/commands/interactions/DisguiseEntityInteraction.java @@ -38,10 +38,7 @@ public class DisguiseEntityInteraction implements LibsEntityInteract { try { disguise = DisguiseParser.parseDisguise(p, entity, "disguiseentity", disguiseArgs, DisguiseParser.getPermissions(p, "disguiseentity")); } catch (DisguiseParseException e) { - if (e.getMessage() != null) { - DisguiseUtilities.sendMessage(p, e.getMessage()); - } - + e.send(p); return; } catch (Throwable e) { e.printStackTrace(); diff --git a/src/main/java/me/libraryaddict/disguise/commands/interactions/DisguiseModifyInteraction.java b/src/main/java/me/libraryaddict/disguise/commands/interactions/DisguiseModifyInteraction.java index 75bb9ca0..db6b1ee8 100644 --- a/src/main/java/me/libraryaddict/disguise/commands/interactions/DisguiseModifyInteraction.java +++ b/src/main/java/me/libraryaddict/disguise/commands/interactions/DisguiseModifyInteraction.java @@ -56,9 +56,7 @@ public class DisguiseModifyInteraction implements LibsEntityInteract { DisguiseParser.callMethods(p, disguise, perms, disguisePerm, new ArrayList<>(Arrays.asList(options)), options, "DisguiseModifyEntity"); LibsMsg.LISTENER_MODIFIED_DISG.send(p); } catch (DisguiseParseException ex) { - if (ex.getMessage() != null) { - DisguiseUtilities.sendMessage(p, ex.getMessage()); - } + ex.send(p); } catch (Throwable ex) { ex.printStackTrace(); } diff --git a/src/main/java/me/libraryaddict/disguise/commands/modify/DisguiseModifyCommand.java b/src/main/java/me/libraryaddict/disguise/commands/modify/DisguiseModifyCommand.java index 64f26ee6..2f535895 100644 --- a/src/main/java/me/libraryaddict/disguise/commands/modify/DisguiseModifyCommand.java +++ b/src/main/java/me/libraryaddict/disguise/commands/modify/DisguiseModifyCommand.java @@ -62,9 +62,7 @@ public class DisguiseModifyCommand extends DisguiseBaseCommand implements TabCom "DisguiseModify"); } catch (DisguiseParseException ex) { - if (ex.getMessage() != null) { - DisguiseUtilities.sendMessage(sender, ex.getMessage()); - } + ex.send(sender); return true; } diff --git a/src/main/java/me/libraryaddict/disguise/commands/modify/DisguiseModifyPlayerCommand.java b/src/main/java/me/libraryaddict/disguise/commands/modify/DisguiseModifyPlayerCommand.java index fe036732..a75b7933 100644 --- a/src/main/java/me/libraryaddict/disguise/commands/modify/DisguiseModifyPlayerCommand.java +++ b/src/main/java/me/libraryaddict/disguise/commands/modify/DisguiseModifyPlayerCommand.java @@ -91,9 +91,7 @@ public class DisguiseModifyPlayerCommand extends DisguiseBaseCommand implements "DisguiseModifyPlayer"); } catch (DisguiseParseException ex) { - if (ex.getMessage() != null) { - DisguiseUtilities.sendMessage(sender, ex.getMessage()); - } + ex.send(sender); return true; } diff --git a/src/main/java/me/libraryaddict/disguise/commands/modify/DisguiseModifyRadiusCommand.java b/src/main/java/me/libraryaddict/disguise/commands/modify/DisguiseModifyRadiusCommand.java index 638cee49..6dbb7772 100644 --- a/src/main/java/me/libraryaddict/disguise/commands/modify/DisguiseModifyRadiusCommand.java +++ b/src/main/java/me/libraryaddict/disguise/commands/modify/DisguiseModifyRadiusCommand.java @@ -168,9 +168,7 @@ public class DisguiseModifyRadiusCommand extends DisguiseBaseCommand implements DisguiseParser.callMethods(sender, disguise, permissions, disguisePerm, new ArrayList<>(), tempArgs, "DisguiseModifyRadius"); modifiedDisguises++; } catch (DisguiseParseException ex) { - if (ex.getMessage() != null) { - DisguiseUtilities.sendMessage(sender, ex.getMessage()); - } + ex.send(sender); return true; } catch (Throwable ex) { diff --git a/src/main/java/me/libraryaddict/disguise/commands/utils/SaveDisguiseCommand.java b/src/main/java/me/libraryaddict/disguise/commands/utils/SaveDisguiseCommand.java index 91db6733..9cc2b294 100644 --- a/src/main/java/me/libraryaddict/disguise/commands/utils/SaveDisguiseCommand.java +++ b/src/main/java/me/libraryaddict/disguise/commands/utils/SaveDisguiseCommand.java @@ -72,7 +72,7 @@ public class SaveDisguiseCommand implements CommandExecutor { LibsMsg.CUSTOM_DISGUISE_SAVED.send(sender, name); } catch (DisguiseParseException e) { if (e.getMessage() != null) { - DisguiseUtilities.sendMessage(sender, e.getMessage()); + e.send(sender); } else { LibsMsg.PARSE_CANT_LOAD.send(sender); } @@ -171,7 +171,7 @@ public class SaveDisguiseCommand implements CommandExecutor { DisguiseUtilities.setSaveDisguiseCommandUsed(); } catch (DisguiseParseException e) { if (e.getMessage() != null) { - DisguiseUtilities.sendMessage(sender, e.getMessage()); + e.send(sender); } else { LibsMsg.PARSE_CANT_LOAD.send(sender); } diff --git a/src/main/java/me/libraryaddict/disguise/utilities/parser/DisguiseParseException.java b/src/main/java/me/libraryaddict/disguise/utilities/parser/DisguiseParseException.java index 8b4e5e3f..15b64730 100644 --- a/src/main/java/me/libraryaddict/disguise/utilities/parser/DisguiseParseException.java +++ b/src/main/java/me/libraryaddict/disguise/utilities/parser/DisguiseParseException.java @@ -1,19 +1,27 @@ package me.libraryaddict.disguise.utilities.parser; +import lombok.Getter; import me.libraryaddict.disguise.utilities.translations.LibsMsg; +import org.bukkit.command.CommandSender; /** * Created by libraryaddict on 7/09/2018. */ +@Getter public class DisguiseParseException extends Exception { private static final long serialVersionUID = 1276971370793124510L; + private LibsMsg msg; + private String[] params; public DisguiseParseException() { super(); } public DisguiseParseException(LibsMsg message, String... params) { - super(message.get(params)); + super(message.getVanillaFormat(params)); + + this.msg = message; + this.params = params; } public DisguiseParseException(String message) { @@ -27,4 +35,12 @@ public class DisguiseParseException extends Exception { public DisguiseParseException(Throwable throwable) { super(throwable); } + + public void send(CommandSender sender) { + if (this.getMsg() == null) { + return; + } + + this.msg.send(sender, (Object[]) params); + } } diff --git a/src/main/java/me/libraryaddict/disguise/utilities/translations/LibsMsg.java b/src/main/java/me/libraryaddict/disguise/utilities/translations/LibsMsg.java index 1a5fa736..b2cf70dd 100644 --- a/src/main/java/me/libraryaddict/disguise/utilities/translations/LibsMsg.java +++ b/src/main/java/me/libraryaddict/disguise/utilities/translations/LibsMsg.java @@ -302,6 +302,16 @@ public enum LibsMsg { this.string = string; } + public String getVanillaFormat(String[] params) { + String raw = get((Object[]) params); + + for (ChatColor c : ChatColor.values()) { + raw = raw.replace("<" + c.name().toLowerCase(Locale.ROOT) + ">", "ยง" + c.getChar()); + } + + return raw; + } + public String getVanillaFormat() { String raw = getRaw();