From c3d6256babc6bcfdacf0700fc5bd91caf92a8f29 Mon Sep 17 00:00:00 2001 From: Zak Ford Date: Mon, 4 Feb 2013 12:08:34 -0500 Subject: [PATCH] Prevent replacement of { and } in chat.format --- .../src/com/earth2me/essentials/Settings.java | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/Essentials/src/com/earth2me/essentials/Settings.java b/Essentials/src/com/earth2me/essentials/Settings.java index 1ac58d8510..91f574c372 100644 --- a/Essentials/src/com/earth2me/essentials/Settings.java +++ b/Essentials/src/com/earth2me/essentials/Settings.java @@ -410,12 +410,15 @@ public MessageFormat getChatFormat(String group) String format = config.getString("chat.group-formats." + (group == null ? "Default" : group), config.getString("chat.format", "&7[{GROUP}]&f {DISPLAYNAME}&7:&f {MESSAGE}")); format = Util.replaceFormat(format); - format = format.replace("{DISPLAYNAME}", "%1$s"); - format = format.replace("{GROUP}", "{0}"); - format = format.replace("{MESSAGE}", "%2$s"); - format = format.replace("{WORLDNAME}", "{1}"); - format = format.replace("{SHORTWORLDNAME}", "{2}"); - format = format.replaceAll("\\{(\\D*?)\\}", "\\[$1\\]"); + format = format.replace("'", "''"); + format = format.replace("{", "'{'"); + format = format.replace("}", "'}'"); + format = format.replace("'{'DISPLAYNAME'}'", "%1$s"); + format = format.replace("'{'GROUP'}'", "{0}"); + format = format.replace("'{'MESSAGE'}'", "%2$s"); + format = format.replace("'{'WORLDNAME'}'", "{1}"); + format = format.replace("'{'SHORTWORLDNAME'}'", "{2}"); + format = format.replaceAll("(?<='[{}]{0,99})([{}])''('*)(?=[{}]')", "$1$2"); // remove extra '' between braces format = "§r".concat(format); mFormat = new MessageFormat(format); chatFormats.put(group, mFormat);