From 8fde5102b9161cda2267d3638c15dc6fda48a7fd Mon Sep 17 00:00:00 2001 From: Zak Ford Date: Thu, 24 Jan 2013 11:43:10 -0500 Subject: [PATCH 1/3] Prevent replacement of { and } characters in chat.format --- Essentials/src/com/earth2me/essentials/Settings.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Essentials/src/com/earth2me/essentials/Settings.java b/Essentials/src/com/earth2me/essentials/Settings.java index 95123d051..b88ba9e63 100644 --- a/Essentials/src/com/earth2me/essentials/Settings.java +++ b/Essentials/src/com/earth2me/essentials/Settings.java @@ -415,7 +415,8 @@ public class Settings implements ISettings format = format.replace("{MESSAGE}", "%2$s"); format = format.replace("{WORLDNAME}", "{1}"); format = format.replace("{SHORTWORLDNAME}", "{2}"); - format = format.replaceAll("\\{(\\D*?)\\}", "\\[$1\\]"); + format = format.replaceAll("'", "''"); + format = format.replaceAll("\\{(\\D*?)\\}", "\\'{$1\\}'"); format = "§r".concat(format); mFormat = new MessageFormat(format); chatFormats.put(group, mFormat); From 286091cd32fe5de8da9c2587769e6f4d305853ba Mon Sep 17 00:00:00 2001 From: KHobbits Date: Fri, 25 Jan 2013 03:06:21 +0000 Subject: [PATCH 2/3] Try command fallback --- .../com/earth2me/essentials/Essentials.java | 33 ++++++++++++++----- 1 file changed, 24 insertions(+), 9 deletions(-) diff --git a/Essentials/src/com/earth2me/essentials/Essentials.java b/Essentials/src/com/earth2me/essentials/Essentials.java index c390e8e7a..4be868d4c 100644 --- a/Essentials/src/com/earth2me/essentials/Essentials.java +++ b/Essentials/src/com/earth2me/essentials/Essentials.java @@ -47,6 +47,8 @@ import org.bukkit.World; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.command.PluginCommand; +import org.bukkit.command.SimpleCommandMap; +import org.bukkit.command.defaults.VanillaCommand; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; @@ -85,6 +87,7 @@ public class Essentials extends JavaPlugin implements IEssentials private transient Metrics metrics; private transient EssentialsTimer timer; private transient List vanishedPlayers = new ArrayList(); + private transient SimpleCommandMap scm; @Override public ISettings getSettings() @@ -123,6 +126,7 @@ public class Essentials extends JavaPlugin implements IEssentials i18n = new I18n(this); i18n.onEnable(); execTimer.mark("I18n1"); + scm = new SimpleCommandMap(this.getServer()); final PluginManager pm = getServer().getPluginManager(); for (Plugin plugin : pm.getPlugins()) { @@ -210,7 +214,7 @@ public class Essentials extends JavaPlugin implements IEssentials backup = new Backup(this); permissionsHandler = new PermissionsHandler(this, settings.useBukkitPermissions()); alternativeCommandsHandler = new AlternativeCommandsHandler(this); - + timer = new EssentialsTimer(this); getScheduler().scheduleSyncRepeatingTask(this, timer, 100, 100); @@ -234,15 +238,16 @@ public class Essentials extends JavaPlugin implements IEssentials LOGGER.log(Level.INFO, "Essentials load " + timeroutput); } } - - private void registerListeners(PluginManager pm) { + + private void registerListeners(PluginManager pm) + { HandlerList.unregisterAll(this); - + if (getSettings().isDebug()) { LOGGER.log(Level.INFO, "Registering Listeners"); } - + final EssentialsPluginListener serverListener = new EssentialsPluginListener(this); pm.registerEvents(serverListener, this); confList.add(serverListener); @@ -267,10 +272,10 @@ public class Essentials extends JavaPlugin implements IEssentials final EssentialsWorldListener worldListener = new EssentialsWorldListener(this); pm.registerEvents(worldListener, this); - + pm.registerEvents(tntListener, this); - - jails.resetListener(); + + jails.resetListener(); } @Override @@ -302,7 +307,7 @@ public class Essentials extends JavaPlugin implements IEssentials } i18n.updateLocale(settings.getLocale()); - + final PluginManager pm = getServer().getPluginManager(); registerListeners(pm); } @@ -357,6 +362,16 @@ public class Essentials extends JavaPlugin implements IEssentials // Check for disabled commands if (getSettings().isCommandDisabled(commandLabel)) { + if (scm != null) + { + for (VanillaCommand cmd : scm.getFallbackCommands()) + { + if (cmd.matches(commandLabel)) + { + cmd.execute(sender, commandLabel, args); + } + } + } return true; } From 2836c0862d6a8ecf29987439d57b75956d69dd74 Mon Sep 17 00:00:00 2001 From: KHobbits Date: Fri, 25 Jan 2013 03:12:13 +0000 Subject: [PATCH 3/3] Revert "Prevent replacement of { and } characters in chat.format" This reverts commit 8fde5102b9161cda2267d3638c15dc6fda48a7fd. --- Essentials/src/com/earth2me/essentials/Settings.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/Essentials/src/com/earth2me/essentials/Settings.java b/Essentials/src/com/earth2me/essentials/Settings.java index b88ba9e63..95123d051 100644 --- a/Essentials/src/com/earth2me/essentials/Settings.java +++ b/Essentials/src/com/earth2me/essentials/Settings.java @@ -415,8 +415,7 @@ public class Settings implements ISettings format = format.replace("{MESSAGE}", "%2$s"); format = format.replace("{WORLDNAME}", "{1}"); format = format.replace("{SHORTWORLDNAME}", "{2}"); - format = format.replaceAll("'", "''"); - format = format.replaceAll("\\{(\\D*?)\\}", "\\'{$1\\}'"); + format = format.replaceAll("\\{(\\D*?)\\}", "\\[$1\\]"); format = "§r".concat(format); mFormat = new MessageFormat(format); chatFormats.put(group, mFormat);