From b0e606568fbc17dd4ba1bd8c89357a3b20feeee4 Mon Sep 17 00:00:00 2001 From: KHobbits Date: Fri, 24 Jun 2011 05:13:37 -0700 Subject: Fixing Typo --- Essentials/src/messages_en.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Essentials/src/messages_en.properties b/Essentials/src/messages_en.properties index dabc86b26..d583f59af 100644 --- a/Essentials/src/messages_en.properties +++ b/Essentials/src/messages_en.properties @@ -170,7 +170,7 @@ negativeBalanceError = User is not allowed to have a negative balance. nickChanged = Nickname changed. nickInUse = \u00a7cThat name is already in use. nickNamesAlpha = \u00a7cNicknames must be alphanumeric. -nickNoMore = \u00a7You no longer have a nickname. +nickNoMore = \u00a77You no longer have a nickname. nickOthersPermission = \u00a7cYou do not have permission to change the nickname of others nickSet = \u00a77Your nickname is now \u00a7c{0} noAccessCommand = \u00a7cYou do not have access to that command. -- cgit v1.2.3 From ed06b29dd75e1abbfb39103c4bf8a8b933aa2d26 Mon Sep 17 00:00:00 2001 From: snowleo Date: Sat, 25 Jun 2011 14:18:45 +0200 Subject: GroupManager fix (The commands didn't work) This is the last fix for GroupManager, we will switch to Permissions 3 soon. --- .../nijikokun/bukkit/Permissions/Permissions.java | 64 +++++++++++++++------- .../permissions/NijikoPermissionsProxy.java | 6 ++ 2 files changed, 51 insertions(+), 19 deletions(-) diff --git a/EssentialsGroupBridge/src/com/nijikokun/bukkit/Permissions/Permissions.java b/EssentialsGroupBridge/src/com/nijikokun/bukkit/Permissions/Permissions.java index bca7a89ed..cf0d09a35 100644 --- a/EssentialsGroupBridge/src/com/nijikokun/bukkit/Permissions/Permissions.java +++ b/EssentialsGroupBridge/src/com/nijikokun/bukkit/Permissions/Permissions.java @@ -7,8 +7,12 @@ import java.util.logging.Logger; import org.anjocaido.groupmanager.GroupManager; import org.anjocaido.groupmanager.permissions.NijikoPermissionsProxy; import org.bukkit.Server; +import org.bukkit.event.Event.Priority; +import org.bukkit.event.Event.Type; import org.bukkit.event.player.PlayerChatEvent; import org.bukkit.event.player.PlayerListener; +import org.bukkit.event.server.PluginEnableEvent; +import org.bukkit.event.server.ServerListener; import org.bukkit.plugin.Plugin; import org.bukkit.plugin.PluginDescriptionFile; import org.bukkit.plugin.java.JavaPlugin; @@ -55,23 +59,32 @@ public class Permissions extends JavaPlugin { PluginDescriptionFile pdfFile = this.getDescription(); if (Security == null) {//make sure we have only one instance - Plugin p = (Plugin)(this.getServer() == null ? new GroupManager() : this.getServer().getPluginManager().getPlugin("GroupManager")); - if (p != null) { - if (!p.isEnabled()) { - if (this.getServer() == null) { - p.onEnable(); - } else { - this.getServer().getPluginManager().enablePlugin(p); - } - } - GroupManager gm = (GroupManager) p; - groupManager = gm; - Security = new NijikoPermissionsProxy(gm); - } else { - System.err.println("OOOPS! Fake " + pdfFile.getName() + " version " + pdfFile.getVersion() + " couldn't find GroupManager!"); - this.getPluginLoader().disablePlugin(this); - } - } + Security = new NijikoPermissionsProxy(null); + } + + Plugin p = (this.getServer() == null) ? null : this.getServer().getPluginManager().getPlugin("GroupManager"); + if (p != null) { + if (p.isEnabled()) { + setGM(p); + } else { + if (this.getServer() != null) { + this.getServer().getPluginManager().registerEvent(Type.PLUGIN_ENABLE, new ServerListener() { + + @Override + public void onPluginEnable(PluginEnableEvent event) + { + if (event.getPlugin().getDescription().getName().equals("GroupManager")) { + Permissions.this.setGM(event.getPlugin()); + } + } + + }, Priority.Normal, this); + } + } + } else { + System.err.println("OOOPS! Fake " + pdfFile.getName() + " version " + pdfFile.getVersion() + " couldn't find GroupManager!"); + this.getPluginLoader().disablePlugin(this); + } // EXAMPLE: Custom code, here we just output some info so we can check all is well if (pdfFile != null) System.out.println("Fake " + pdfFile.getName() + " version " + pdfFile.getVersion() + " is enabled!"); @@ -81,17 +94,30 @@ public class Permissions extends JavaPlugin { //compiled code //throw new RuntimeException("Compiled Code"); } + + private void setGM(Plugin p) { + groupManager = (GroupManager)p; + ((NijikoPermissionsProxy)Security).setGM(p); + } public PermissionHandler getHandler() { //compiled code //throw new RuntimeException("Compiled Code"); //System.out.println("Alguem chamou o handler"); - checkEnable(); + if (Security == null) + { + Security = new NijikoPermissionsProxy(null); + } + //checkEnable(); return Security; } public void setupPermissions() { - checkEnable(); + if (Security == null) + { + Security = new NijikoPermissionsProxy(null); + } + //checkEnable(); } private void checkEnable() { diff --git a/EssentialsGroupBridge/src/org/anjocaido/groupmanager/permissions/NijikoPermissionsProxy.java b/EssentialsGroupBridge/src/org/anjocaido/groupmanager/permissions/NijikoPermissionsProxy.java index 18da0cd56..e26c10711 100644 --- a/EssentialsGroupBridge/src/org/anjocaido/groupmanager/permissions/NijikoPermissionsProxy.java +++ b/EssentialsGroupBridge/src/org/anjocaido/groupmanager/permissions/NijikoPermissionsProxy.java @@ -9,6 +9,7 @@ import java.io.File; import java.util.Map; import org.anjocaido.groupmanager.GroupManager; import org.bukkit.entity.Player; +import org.bukkit.plugin.Plugin; import org.bukkit.util.config.Configuration; /** @@ -425,4 +426,9 @@ public class NijikoPermissionsProxy extends Control { return plugin.getWorldsHolder().getDefaultWorld().getPermissionsHandler().getPermissionDouble(name,permission); } + public void setGM(Plugin p) + { + this.plugin = (GroupManager)p; + } + } -- cgit v1.2.3 From 2b8d5a09a2550d889e9712a03b3037205e26fc99 Mon Sep 17 00:00:00 2001 From: snowleo Date: Sat, 25 Jun 2011 14:19:56 +0200 Subject: Show better warning for iConomy. The loading problem still exists. --- Essentials/src/com/earth2me/essentials/register/payment/Methods.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/Essentials/src/com/earth2me/essentials/register/payment/Methods.java b/Essentials/src/com/earth2me/essentials/register/payment/Methods.java index 69625db6e..927d4de4c 100644 --- a/Essentials/src/com/earth2me/essentials/register/payment/Methods.java +++ b/Essentials/src/com/earth2me/essentials/register/payment/Methods.java @@ -2,6 +2,8 @@ package com.earth2me.essentials.register.payment; import java.util.HashSet; import java.util.Set; +import java.util.logging.Level; +import java.util.logging.Logger; import org.bukkit.plugin.Plugin; import org.bukkit.plugin.PluginManager; @@ -68,7 +70,8 @@ public class Methods { if(!plugin.isEnabled()) { this.self = true; - manager.enablePlugin(plugin); + Logger.getLogger("Minecraft").log(Level.SEVERE, name + " Plugin was found, but not enabled before Essentials. Read the Essentials thread for help."); + //manager.enablePlugin(plugin); } if(plugin == null) continue; -- cgit v1.2.3 From 1331743ecfadbeaecb84785515f5cfdd42c01e01 Mon Sep 17 00:00:00 2001 From: snowleo Date: Sat, 25 Jun 2011 14:23:49 +0200 Subject: Added info of change to version. idea by TheRec --- EssentialsGroupManager/src/plugin.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/EssentialsGroupManager/src/plugin.yml b/EssentialsGroupManager/src/plugin.yml index 497f15edb..86fb874af 100644 --- a/EssentialsGroupManager/src/plugin.yml +++ b/EssentialsGroupManager/src/plugin.yml @@ -1,5 +1,5 @@ name: GroupManager -version: 1.0(alpha-5) +version: "1.0(alpha-5) [Zombie-Version, please switch to Permissions 3]" main: org.anjocaido.groupmanager.GroupManager website: http://www.anjocaido.info/ description: Provides on-the-fly system for Permission system created by Nijikokun. But all in memory, and with flat-file saving schedule. -- cgit v1.2.3 From 5e2f4bcbb2f6981dec23e75013e44b27b4751999 Mon Sep 17 00:00:00 2001 From: snowleo Date: Sat, 25 Jun 2011 14:26:19 +0200 Subject: Craftbukkit #928 Bukkit #743 --- lib/bukkit-0.0.1-SNAPSHOT.jar | Bin 2680630 -> 2680810 bytes lib/craftbukkit-0.0.1-SNAPSHOT.jar | Bin 7671809 -> 7673648 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/lib/bukkit-0.0.1-SNAPSHOT.jar b/lib/bukkit-0.0.1-SNAPSHOT.jar index 48dda3405..955d97e7e 100644 Binary files a/lib/bukkit-0.0.1-SNAPSHOT.jar and b/lib/bukkit-0.0.1-SNAPSHOT.jar differ diff --git a/lib/craftbukkit-0.0.1-SNAPSHOT.jar b/lib/craftbukkit-0.0.1-SNAPSHOT.jar index ab91cd910..4bc5c9043 100644 Binary files a/lib/craftbukkit-0.0.1-SNAPSHOT.jar and b/lib/craftbukkit-0.0.1-SNAPSHOT.jar differ -- cgit v1.2.3 From 0731580cc9f9d1ff5a0575e5393799f35f4d8367 Mon Sep 17 00:00:00 2001 From: snowleo Date: Sat, 25 Jun 2011 15:17:10 +0200 Subject: Don't connect to example.com, the default value --- EssentialsXMPP/src/com/earth2me/essentials/xmpp/XMPPManager.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/EssentialsXMPP/src/com/earth2me/essentials/xmpp/XMPPManager.java b/EssentialsXMPP/src/com/earth2me/essentials/xmpp/XMPPManager.java index 537a32a5e..fb0145ee4 100644 --- a/EssentialsXMPP/src/com/earth2me/essentials/xmpp/XMPPManager.java +++ b/EssentialsXMPP/src/com/earth2me/essentials/xmpp/XMPPManager.java @@ -94,7 +94,7 @@ public class XMPPManager extends Handler implements MessageListener, ChatManager private void connect() { final String server = config.getString("xmpp.server"); - if (server == null) + if (server == null || server.equals("example.com")) { LOGGER.log(Level.WARNING, "config broken for xmpp"); return; -- cgit v1.2.3 From cfa8b8e2f42833634e244ed4e8fa148a3a4dd61e Mon Sep 17 00:00:00 2001 From: snowleo Date: Sat, 25 Jun 2011 15:19:45 +0200 Subject: Same in messages.properties --- Essentials/src/messages.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Essentials/src/messages.properties b/Essentials/src/messages.properties index dabc86b26..d583f59af 100644 --- a/Essentials/src/messages.properties +++ b/Essentials/src/messages.properties @@ -170,7 +170,7 @@ negativeBalanceError = User is not allowed to have a negative balance. nickChanged = Nickname changed. nickInUse = \u00a7cThat name is already in use. nickNamesAlpha = \u00a7cNicknames must be alphanumeric. -nickNoMore = \u00a7You no longer have a nickname. +nickNoMore = \u00a77You no longer have a nickname. nickOthersPermission = \u00a7cYou do not have permission to change the nickname of others nickSet = \u00a77Your nickname is now \u00a7c{0} noAccessCommand = \u00a7cYou do not have access to that command. -- cgit v1.2.3 From b7cb11cd95b4fd6aeee5e280eba422a1bd3346fe Mon Sep 17 00:00:00 2001 From: snowleo Date: Sat, 25 Jun 2011 15:34:33 +0200 Subject: Remove the restriction of EssEcoApi to not use iConomy or BOSE --- Essentials/src/com/earth2me/essentials/api/Economy.java | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/Essentials/src/com/earth2me/essentials/api/Economy.java b/Essentials/src/com/earth2me/essentials/api/Economy.java index 768168a24..bf071b733 100644 --- a/Essentials/src/com/earth2me/essentials/api/Economy.java +++ b/Essentials/src/com/earth2me/essentials/api/Economy.java @@ -3,7 +3,6 @@ package com.earth2me.essentials.api; import com.earth2me.essentials.Essentials; import com.earth2me.essentials.EssentialsConf; import com.earth2me.essentials.User; -import com.earth2me.essentials.UserData; import com.earth2me.essentials.Util; import java.io.File; import java.util.logging.Level; @@ -79,8 +78,7 @@ public final class Economy if (user == null) { throw new UserDoesNotExistException(name); } - // Use UserData to avoid calls to iConomy and Register - return ((UserData)user).getMoney(); + return user.getMoney(); } /** @@ -100,8 +98,7 @@ public final class Economy { throw new NoLoanPermittedException(); } - // Use UserData to avoid calls to iConomy and Register - ((UserData)user).setMoney(balance); + user.setMoney(balance); } /** -- cgit v1.2.3 From 503b4fee55c7f0d070f7812e8ac3085ed1796b04 Mon Sep 17 00:00:00 2001 From: KHobbits Date: Fri, 24 Jun 2011 22:12:04 +0800 Subject: Searchable help. Toggle commands with no permissions. --- .../src/com/earth2me/essentials/Settings.java | 7 +++++- .../earth2me/essentials/commands/Commandhelp.java | 29 +++++++++++++++++----- Essentials/src/config.yml | 4 ++- 3 files changed, 32 insertions(+), 8 deletions(-) diff --git a/Essentials/src/com/earth2me/essentials/Settings.java b/Essentials/src/com/earth2me/essentials/Settings.java index b67788825..e1e60cb35 100644 --- a/Essentials/src/com/earth2me/essentials/Settings.java +++ b/Essentials/src/com/earth2me/essentials/Settings.java @@ -190,11 +190,16 @@ public class Settings implements IConf { return config.getInt("spawnmob-limit", 10); } - + public boolean showNonEssCommandsInHelp() { return config.getBoolean("non-ess-in-help", true); } + + public boolean hidePermissionlessHelp() + { + return config.getBoolean("hide-permissionless-help", true); + } public int getProtectCreeperMaxHeight() { diff --git a/Essentials/src/com/earth2me/essentials/commands/Commandhelp.java b/Essentials/src/com/earth2me/essentials/commands/Commandhelp.java index 52277b1fa..4361fe1cf 100644 --- a/Essentials/src/com/earth2me/essentials/commands/Commandhelp.java +++ b/Essentials/src/com/earth2me/essentials/commands/Commandhelp.java @@ -30,17 +30,25 @@ public class Commandhelp extends EssentialsCommand @Override protected void run(Server server, User user, String commandLabel, String[] args) throws Exception { - int page; + int page = 1; + String match = args[0].toLowerCase(); try { - page = args.length > 0 ? Integer.parseInt(args[0]) : 1; + if (args.length > 0) + { + page = Integer.parseInt(args[args.length - 1]); + if (args.length == 1) + { + match = ""; + } + } + } catch (Exception ex) { - page = 1; } - List lines = getHelpLines(user); + List lines = getHelpLines(user, match); int start = (page - 1) * 9; int pages = lines.size() / 9 + (lines.size() % 9 > 0 ? 1 : 0); @@ -58,7 +66,7 @@ public class Commandhelp extends EssentialsCommand } @SuppressWarnings("CallToThreadDumpStack") - private List getHelpLines(User user) throws Exception + private List getHelpLines(User user, String match) throws Exception { List retval = new ArrayList(); File helpFile = new File(ess.getDataFolder(), "help_"+Util.sanitizeFileName(user.getName()) +".txt"); @@ -98,6 +106,12 @@ public class Commandhelp extends EssentialsCommand final HashMap> cmds = (HashMap>)desc.getCommands(); for (Entry> k : cmds.entrySet()) { + if ((!match.equalsIgnoreCase("")) && (!p.getDescription().getName().toLowerCase().contains(match)) + && (!p.getDescription().getDescription().toLowerCase().contains(match))) + { + continue; + } + if (p.getDescription().getName().toLowerCase().contains("essentials")) { final String node = "essentials." + k.getKey(); @@ -121,7 +135,10 @@ public class Commandhelp extends EssentialsCommand } else { - retval.add("§c" + k.getKey() + "§7: " + value.get("description")); + if (!ess.getSettings().hidePermissionlessHelp()) + { + retval.add("§c" + k.getKey() + "§7: " + value.get("description")); + } } } diff --git a/Essentials/src/config.yml b/Essentials/src/config.yml index a2369c2e9..7f0b20e8f 100644 --- a/Essentials/src/config.yml +++ b/Essentials/src/config.yml @@ -88,7 +88,6 @@ motd: - '&cWelcome, {PLAYER}&c!' - '&fType &c/help&f for a list of commands.' - 'Currently online: {PLAYERLIST}' - - 'You have {MAILS} mail messages' # The server rules, available by typing /rules rules: @@ -239,6 +238,9 @@ currency-symbol: '$' #Show other plugins commands in help non-ess-in-help: true +#Hide plugins which dont give a permission +hide-permissionless-help: true + ############################################################ # +------------------------------------------------------+ # # | EssentialsChat | # -- cgit v1.2.3 From ca29f18850b50c3019fc03e682ab0d1f235a37a7 Mon Sep 17 00:00:00 2001 From: snowleo Date: Sat, 25 Jun 2011 16:46:02 +0200 Subject: Cleanup of KHobbits commit --- .../earth2me/essentials/commands/Commandhelp.java | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/Essentials/src/com/earth2me/essentials/commands/Commandhelp.java b/Essentials/src/com/earth2me/essentials/commands/Commandhelp.java index 4361fe1cf..3a93e82b1 100644 --- a/Essentials/src/com/earth2me/essentials/commands/Commandhelp.java +++ b/Essentials/src/com/earth2me/essentials/commands/Commandhelp.java @@ -31,18 +31,18 @@ public class Commandhelp extends EssentialsCommand protected void run(Server server, User user, String commandLabel, String[] args) throws Exception { int page = 1; - String match = args[0].toLowerCase(); + String match = args[0].toLowerCase(); try { if (args.length > 0) { - page = Integer.parseInt(args[args.length - 1]); + page = Integer.parseInt(args[args.length - 1]); if (args.length == 1) { - match = ""; + match = ""; } } - + } catch (Exception ex) { @@ -69,10 +69,10 @@ public class Commandhelp extends EssentialsCommand private List getHelpLines(User user, String match) throws Exception { List retval = new ArrayList(); - File helpFile = new File(ess.getDataFolder(), "help_"+Util.sanitizeFileName(user.getName()) +".txt"); + File helpFile = new File(ess.getDataFolder(), "help_" + Util.sanitizeFileName(user.getName()) + ".txt"); if (!helpFile.exists()) { - helpFile = new File(ess.getDataFolder(), "help_"+Util.sanitizeFileName(user.getGroup()) +".txt"); + helpFile = new File(ess.getDataFolder(), "help_" + Util.sanitizeFileName(user.getGroup()) + ".txt"); } if (!helpFile.exists()) { @@ -81,8 +81,9 @@ public class Commandhelp extends EssentialsCommand if (helpFile.exists()) { final BufferedReader bufferedReader = new BufferedReader(new FileReader(helpFile)); - try { - + try + { + while (bufferedReader.ready()) { final String line = bufferedReader.readLine(); @@ -107,11 +108,11 @@ public class Commandhelp extends EssentialsCommand for (Entry> k : cmds.entrySet()) { if ((!match.equalsIgnoreCase("")) && (!p.getDescription().getName().toLowerCase().contains(match)) - && (!p.getDescription().getDescription().toLowerCase().contains(match))) + && (!p.getDescription().getDescription().toLowerCase().contains(match))) { continue; } - + if (p.getDescription().getName().toLowerCase().contains("essentials")) { final String node = "essentials." + k.getKey(); -- cgit v1.2.3 From 953ce38d63309844e7d24b5d94396769d90ff3c5 Mon Sep 17 00:00:00 2001 From: snowleo Date: Sat, 25 Jun 2011 16:46:41 +0200 Subject: Updated bukkit version number in Essentials class --- Essentials/src/com/earth2me/essentials/Essentials.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Essentials/src/com/earth2me/essentials/Essentials.java b/Essentials/src/com/earth2me/essentials/Essentials.java index c89de0012..24c9a445e 100644 --- a/Essentials/src/com/earth2me/essentials/Essentials.java +++ b/Essentials/src/com/earth2me/essentials/Essentials.java @@ -43,7 +43,7 @@ import org.bukkit.plugin.java.*; public class Essentials extends JavaPlugin implements IEssentials { public static final String AUTHORS = "Zenexer, ementalo, Aelux, Brettflan, KimKandor, snowleo, ceulemans and Xeology"; - public static final int minBukkitBuildVersion = 867; + public static final int minBukkitBuildVersion = 928; private static final Logger logger = Logger.getLogger("Minecraft"); private Settings settings; private TNTExplodeListener tntListener; -- cgit v1.2.3 From fb834bf104571a36d4140de115117b12c0ff0136 Mon Sep 17 00:00:00 2001 From: snowleo Date: Sat, 25 Jun 2011 22:23:11 +0200 Subject: Fix: Player was unable to use any commands, if his money was negative. --- Essentials/src/com/earth2me/essentials/Trade.java | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/Essentials/src/com/earth2me/essentials/Trade.java b/Essentials/src/com/earth2me/essentials/Trade.java index b4570d780..93d73acde 100644 --- a/Essentials/src/com/earth2me/essentials/Trade.java +++ b/Essentials/src/com/earth2me/essentials/Trade.java @@ -39,6 +39,7 @@ public class Trade final double mon = user.getMoney(); if (getMoney() != null && mon < getMoney() + && getMoney() > 0 && !user.isAuthorized("essentials.eco.loan")) { throw new ChargeException(Util.i18n("notEnoughMoney")); @@ -54,6 +55,7 @@ public class Trade && !user.isAuthorized("essentials.nocommandcost.all") && !user.isAuthorized("essentials.nocommandcost." + command) && mon < ess.getSettings().getCommandCost(command.charAt(0) == '/' ? command.substring(1) : command) + && 0 < ess.getSettings().getCommandCost(command.charAt(0) == '/' ? command.substring(1) : command) && !user.isAuthorized("essentials.eco.loan")) { throw new ChargeException(Util.i18n("notEnoughMoney")); @@ -62,7 +64,7 @@ public class Trade public void pay(final IUser user) { - if (getMoney() != null) + if (getMoney() != null && getMoney() > 0) { user.giveMoney(getMoney()); } @@ -82,7 +84,7 @@ public class Trade if (getMoney() != null) { final double mon = user.getMoney(); - if (mon < getMoney() && !user.isAuthorized("essentials.eco.loan")) + if (mon < getMoney() && getMoney() > 0 && !user.isAuthorized("essentials.eco.loan")) { throw new ChargeException(Util.i18n("notEnoughMoney")); } @@ -103,7 +105,7 @@ public class Trade { final double mon = user.getMoney(); final double cost = ess.getSettings().getCommandCost(command.charAt(0) == '/' ? command.substring(1) : command); - if (mon < cost && !user.isAuthorized("essentials.eco.loan")) + if (mon < cost && cost > 0 && !user.isAuthorized("essentials.eco.loan")) { throw new ChargeException(Util.i18n("notEnoughMoney")); } -- cgit v1.2.3 From 512a1b91838eb8960b9b6efa370db9dd85887d73 Mon Sep 17 00:00:00 2001 From: snowleo Date: Sun, 26 Jun 2011 12:16:50 +0200 Subject: Corrected the output of /gc It's now max, total and free --- Essentials/src/com/earth2me/essentials/commands/Commandgc.java | 3 ++- Essentials/src/messages.properties | 3 ++- Essentials/src/messages_da.properties | 3 ++- Essentials/src/messages_de.properties | 3 ++- Essentials/src/messages_en.properties | 3 ++- Essentials/src/messages_fr.properties | 3 ++- Essentials/src/messages_nl.properties | 3 ++- 7 files changed, 14 insertions(+), 7 deletions(-) diff --git a/Essentials/src/com/earth2me/essentials/commands/Commandgc.java b/Essentials/src/com/earth2me/essentials/commands/Commandgc.java index 3bc0488cd..dd3cf35f4 100644 --- a/Essentials/src/com/earth2me/essentials/commands/Commandgc.java +++ b/Essentials/src/com/earth2me/essentials/commands/Commandgc.java @@ -18,7 +18,8 @@ public class Commandgc extends EssentialsCommand { charge(sender); sender.sendMessage(Util.format("gcmax", (Runtime.getRuntime().maxMemory() / 1024 / 1024))); - sender.sendMessage(Util.format("gcmin", (Runtime.getRuntime().freeMemory() / 1024 / 1024))); + sender.sendMessage(Util.format("gcfree", (Runtime.getRuntime().freeMemory() / 1024 / 1024))); + sender.sendMessage(Util.format("gctotal", (Runtime.getRuntime().totalMemory() / 1024 / 1024))); for (World w : server.getWorlds()) { sender.sendMessage( diff --git a/Essentials/src/messages.properties b/Essentials/src/messages.properties index d583f59af..2394df0a4 100644 --- a/Essentials/src/messages.properties +++ b/Essentials/src/messages.properties @@ -75,7 +75,8 @@ freedMemory = Freed {0} MB. gcchunks = chunks, gcentities = entities gcmax = Maximum memory: {0} MB -gcmin = Minimum memory: {0} MB +gcfree = Free memory: {0} MB +gctotal = Allocated memory: {0} MB generatingPortal = \u00a77Generating an exit portal. geoIpUrlEmpty = GeoIP download url is empty. geoIpUrlInvalid = GeoIP download url is invalid. diff --git a/Essentials/src/messages_da.properties b/Essentials/src/messages_da.properties index e77fc4ed5..115200f73 100644 --- a/Essentials/src/messages_da.properties +++ b/Essentials/src/messages_da.properties @@ -77,7 +77,8 @@ freedMemory = Befriede {0} MB. gcchunks = stykker, gcentities = enheder gcmax = Maximum memory: {0} MB -gcmin = Minimum memory: {0} MB +gcfree = Free memory: {0} MB +gctotal = Allocated memory: {0} MB generatingPortal = \u00a77Genererer en udgangs portal. geoIpUrlEmpty = GeoIP download url er tom. geoIpUrlInvalid = GeoIP download url er ugyldig. diff --git a/Essentials/src/messages_de.properties b/Essentials/src/messages_de.properties index 6d2ca2166..88c6548bd 100644 --- a/Essentials/src/messages_de.properties +++ b/Essentials/src/messages_de.properties @@ -75,7 +75,8 @@ freedMemory = {0} MB frei gemacht. gcchunks = Chunks, gcentities = Einheiten gcmax = Maximaler Speicher: {0} MB -gcmin = Minimaler Speicher: {0} MB +gcfree = Freier Speicher: {0} MB +gctotal = Reservierter Speicher: {0} MB generatingPortal = \u00a77Erstelle ein Ausgangsportal. geoIpUrlEmpty = GeoIP Download-URL ist leer. geoIpUrlInvalid = GeoIP Download-URL ist ung\u00fcltig. diff --git a/Essentials/src/messages_en.properties b/Essentials/src/messages_en.properties index d583f59af..2394df0a4 100644 --- a/Essentials/src/messages_en.properties +++ b/Essentials/src/messages_en.properties @@ -75,7 +75,8 @@ freedMemory = Freed {0} MB. gcchunks = chunks, gcentities = entities gcmax = Maximum memory: {0} MB -gcmin = Minimum memory: {0} MB +gcfree = Free memory: {0} MB +gctotal = Allocated memory: {0} MB generatingPortal = \u00a77Generating an exit portal. geoIpUrlEmpty = GeoIP download url is empty. geoIpUrlInvalid = GeoIP download url is invalid. diff --git a/Essentials/src/messages_fr.properties b/Essentials/src/messages_fr.properties index 5a333fbb6..3b1a861d9 100644 --- a/Essentials/src/messages_fr.properties +++ b/Essentials/src/messages_fr.properties @@ -75,7 +75,8 @@ freedMemory = A lib\u00e9r\u00e9 {0} Mo. gcchunks = chunks, gcentities = entit\u00e9s gcmax = M\u00e9moire maximale: {0} Mo -gcmin = M\u00e9moire minimale: {0} Mo +gcfree = Free memory: {0} Mo +gctotal = Allocated memory: {0} Mo generatingPortal = \u00a77G\u00e9n\u00e9ration d''un portail de sortie. geoIpUrlEmpty = L''url de t\u00e9l\u00e9chargement de GeoIP est vide. geoIpUrlInvalid = L''url de t\u00e9l\u00e9chargement de GeoIP est invalide. diff --git a/Essentials/src/messages_nl.properties b/Essentials/src/messages_nl.properties index 0aa1770bf..ab97ab46f 100644 --- a/Essentials/src/messages_nl.properties +++ b/Essentials/src/messages_nl.properties @@ -76,7 +76,8 @@ freedMemory = {0} MB gelost. gcchunks = chunks, gcentities = entities gcmax = Maximaal geheugen: {0} MB -gcmin = Minimaal geheugen: {0} MB +gcfree = Free memory: {0} MB +gctotal = Allocated memory: {0} MB generatingPortal = \u00a77Uitgangs portal aan het cre\u00ebren. geoIpUrlEmpty = GeoIP download url is leeg. geoIpUrlInvalid = GeoIP download url is ongeldig. -- cgit v1.2.3 From 3b9a07e560d5b486680643c4919c2ffa4076f6eb Mon Sep 17 00:00:00 2001 From: snowleo Date: Sun, 26 Jun 2011 15:31:13 +0200 Subject: Protection signs and new Listeners for the signs --- .../earth2me/essentials/signs/EssentialsSign.java | 159 +++++++++++- .../essentials/signs/SignBlockListener.java | 133 ++++++++++ .../essentials/signs/SignEntityListener.java | 44 ++++ .../com/earth2me/essentials/signs/SignFree.java | 2 - .../essentials/signs/SignPlayerListener.java | 60 +++++ .../earth2me/essentials/signs/SignProtection.java | 273 +++++++++++++++++++++ .../com/earth2me/essentials/signs/SignSell.java | 4 +- .../com/earth2me/essentials/signs/SignTrade.java | 2 +- .../src/com/earth2me/essentials/signs/Signs.java | 27 ++ 9 files changed, 688 insertions(+), 16 deletions(-) create mode 100644 Essentials/src/com/earth2me/essentials/signs/SignBlockListener.java create mode 100644 Essentials/src/com/earth2me/essentials/signs/SignEntityListener.java create mode 100644 Essentials/src/com/earth2me/essentials/signs/SignPlayerListener.java create mode 100644 Essentials/src/com/earth2me/essentials/signs/SignProtection.java create mode 100644 Essentials/src/com/earth2me/essentials/signs/Signs.java diff --git a/Essentials/src/com/earth2me/essentials/signs/EssentialsSign.java b/Essentials/src/com/earth2me/essentials/signs/EssentialsSign.java index a6f17c8bb..12966d668 100644 --- a/Essentials/src/com/earth2me/essentials/signs/EssentialsSign.java +++ b/Essentials/src/com/earth2me/essentials/signs/EssentialsSign.java @@ -6,19 +6,24 @@ import com.earth2me.essentials.IEssentials; import com.earth2me.essentials.ItemDb; import com.earth2me.essentials.User; import com.earth2me.essentials.Util; +import java.util.HashSet; +import java.util.Set; +import org.bukkit.Material; import org.bukkit.block.Block; +import org.bukkit.block.BlockFace; import org.bukkit.block.Sign; import org.bukkit.craftbukkit.block.CraftSign; -import org.bukkit.event.block.BlockBreakEvent; +import org.bukkit.entity.Player; import org.bukkit.event.block.SignChangeEvent; -import org.bukkit.event.player.PlayerInteractEvent; import org.bukkit.inventory.ItemStack; public class EssentialsSign { + private static final Set EMPTY_SET = new HashSet(); protected transient final String signName; private static final String FORMAT_SUCCESS = "§1[%s]"; + private static final String FORMAT_TEMPLATE = "[%s]"; private static final String FORMAT_FAIL = "§4[%s]"; public EssentialsSign(final String signName) @@ -41,7 +46,7 @@ public class EssentialsSign final boolean ret = onSignCreate(sign, user, getUsername(user), ess); if (ret) { - sign.setLine(0, String.format(FORMAT_SUCCESS, this.signName)); + sign.setLine(0, getSuccessName()); } return ret; } @@ -56,15 +61,25 @@ public class EssentialsSign return false; } + public String getSuccessName() + { + return String.format(FORMAT_SUCCESS, this.signName); + } + + public String getTemplateName() + { + return String.format(FORMAT_TEMPLATE, this.signName); + } + private String getUsername(final User user) { return user.getName().substring(0, user.getName().length() > 14 ? 14 : user.getName().length()); } - public final boolean onSignInteract(final PlayerInteractEvent event, final IEssentials ess) + public final boolean onSignInteract(final Block block, final Player player, final IEssentials ess) { - final ISign sign = new BlockSign(event.getClickedBlock()); - final User user = ess.getUser(event.getPlayer()); + final ISign sign = new BlockSign(block); + final User user = ess.getUser(player); try { return (user.isAuthorized("essentials.signs." + signName.toLowerCase() + ".use") @@ -83,10 +98,10 @@ public class EssentialsSign } } - public final boolean onSignBreak(final BlockBreakEvent event, final IEssentials ess) + public final boolean onSignBreak(final Block block, final Player player, final IEssentials ess) { - final ISign sign = new BlockSign(event.getBlock()); - final User user = ess.getUser(event.getPlayer()); + final ISign sign = new BlockSign(block); + final User user = ess.getUser(player); try { return (user.isAuthorized("essentials.signs." + signName.toLowerCase() + ".break") @@ -115,6 +130,114 @@ public class EssentialsSign return true; } + public final boolean onBlockPlace(final Block block, final Player player, final IEssentials ess) + { + User user = ess.getUser(player); + try + { + return onBlockPlace(block, user, getUsername(user), ess); + } + catch (ChargeException ex) + { + ess.showError(user, ex, signName); + } + catch (SignException ex) + { + ess.showError(user, ex, signName); + } + return false; + } + + public final boolean onBlockInteract(final Block block, final Player player, final IEssentials ess) + { + User user = ess.getUser(player); + try + { + return onBlockInteract(block, user, getUsername(user), ess); + } + catch (ChargeException ex) + { + ess.showError(user, ex, signName); + } + catch (SignException ex) + { + ess.showError(user, ex, signName); + } + return false; + } + + public final boolean onBlockBreak(final Block block, final Player player, final IEssentials ess) + { + User user = ess.getUser(player); + try + { + return onBlockBreak(block, user, getUsername(user), ess); + } + catch (SignException ex) + { + ess.showError(user, ex, signName); + } + return false; + } + + public boolean onBlockExplode(final Block block, final IEssentials ess) + { + return true; + } + + public boolean onBlockBurn(final Block block, final IEssentials ess) + { + return true; + } + + public static boolean checkIfBlockBreaksSigns(final Block block) + { + if (block.getFace(BlockFace.UP).getType() == Material.SIGN_POST) + { + return false; + } + final BlockFace[] directions = new BlockFace[] + { + BlockFace.NORTH, + BlockFace.EAST, + BlockFace.SOUTH, + BlockFace.WEST + }; + for (BlockFace blockFace : directions) + { + final Block signblock = block.getFace(blockFace); + if (signblock.getType() == Material.WALL_SIGN) + { + final org.bukkit.material.Sign sign = (org.bukkit.material.Sign)signblock.getState().getData(); + if (sign.getFacing() == blockFace) + { + return false; + } + } + } + return true; + } + + protected boolean onBlockPlace(final Block block, final User player, final String username, final IEssentials ess) throws SignException, ChargeException + { + return true; + } + + protected boolean onBlockInteract(final Block block, final User player, final String username, final IEssentials ess) throws SignException, ChargeException + { + return true; + } + + protected boolean onBlockBreak(final Block block, final User player, final String username, final IEssentials ess) throws SignException + { + return true; + } + + public Set getBlocks() + { + return EMPTY_SET; + } + protected final void validateTrade(final ISign sign, final int index, final IEssentials ess) throws SignException { final String line = sign.getLine(index).trim(); @@ -130,8 +253,6 @@ public class EssentialsSign } } - - protected final void validateTrade(final ISign sign, final int amountIndex, final int itemIndex, final User player, final IEssentials ess) throws SignException { @@ -266,10 +387,12 @@ public class EssentialsSign static class EventSign implements ISign { private final transient SignChangeEvent event; + private final transient Block block; public EventSign(final SignChangeEvent event) { this.event = event; + this.block = event.getBlock(); } public final String getLine(final int index) @@ -281,15 +404,22 @@ public class EssentialsSign { event.setLine(index, text); } + + public Block getBlock() + { + return block; + } } static class BlockSign implements ISign { private final transient Sign sign; + private final transient Block block; public BlockSign(final Block block) { + this.block = block; this.sign = new CraftSign(block); } @@ -302,6 +432,11 @@ public class EssentialsSign { sign.setLine(index, text); } + + public final Block getBlock() + { + return block; + } } @@ -310,5 +445,7 @@ public class EssentialsSign String getLine(final int index); void setLine(final int index, final String text); + + public Block getBlock(); } } diff --git a/Essentials/src/com/earth2me/essentials/signs/SignBlockListener.java b/Essentials/src/com/earth2me/essentials/signs/SignBlockListener.java new file mode 100644 index 000000000..543df7fc5 --- /dev/null +++ b/Essentials/src/com/earth2me/essentials/signs/SignBlockListener.java @@ -0,0 +1,133 @@ +package com.earth2me.essentials.signs; + +import com.earth2me.essentials.IEssentials; +import org.bukkit.Material; +import org.bukkit.block.Block; +import org.bukkit.block.Sign; +import org.bukkit.craftbukkit.block.CraftSign; +import org.bukkit.entity.Player; +import org.bukkit.event.block.BlockBreakEvent; +import org.bukkit.event.block.BlockBurnEvent; +import org.bukkit.event.block.BlockIgniteEvent; +import org.bukkit.event.block.BlockListener; +import org.bukkit.event.block.SignChangeEvent; + + +public class SignBlockListener extends BlockListener +{ + private final transient IEssentials ess; + + public SignBlockListener(IEssentials ess) + { + this.ess = ess; + } + + @Override + public void onBlockBreak(final BlockBreakEvent event) + { + if (event.isCancelled() || ess.getSettings().areSignsDisabled()) + { + return; + } + + if (protectSignsAndBlocks(event.getBlock(), event.getPlayer())) + { + event.setCancelled(true); + } + } + + public boolean protectSignsAndBlocks(final Block block, final Player player) + { + final int mat = block.getTypeId(); + if (mat == Material.SIGN_POST.getId() || mat == Material.WALL_SIGN.getId()) + { + final Sign csign = new CraftSign(block); + for (Signs signs : Signs.values()) + { + final EssentialsSign sign = signs.getSign(); + if (csign.getLine(0).equalsIgnoreCase(sign.getSuccessName()) + && !sign.onSignBreak(block, player, ess)) + { + return true; + } + } + } + else + { + // prevent any signs be broken by destroying the block they are attached to + if (EssentialsSign.checkIfBlockBreaksSigns(block)) + { + return true; + } + for (Signs signs : Signs.values()) + { + final EssentialsSign sign = signs.getSign(); + if (sign.getBlocks().contains(block.getType()) + && !sign.onBlockBreak(block, player, ess)) + { + return true; + } + } + } + return false; + } + + @Override + public void onSignChange(final SignChangeEvent event) + { + if (event.isCancelled() || ess.getSettings().areSignsDisabled()) + { + return; + } + for (Signs signs : Signs.values()) + { + final EssentialsSign sign = signs.getSign(); + if (event.getLine(0).equalsIgnoreCase(sign.getTemplateName())) + { + event.setCancelled(!sign.onSignCreate(event, ess)); + return; + } + } + } + + @Override + public void onBlockBurn(final BlockBurnEvent event) + { + if (event.isCancelled() || ess.getSettings().areSignsDisabled()) + { + return; + } + + Block block = event.getBlock(); + if ((block.getType() == Material.WALL_SIGN + || block.getType() == Material.SIGN_POST + || EssentialsSign.checkIfBlockBreaksSigns(block))) + { + event.setCancelled(true); + return; + } + for (Signs signs : Signs.values()) + { + final EssentialsSign sign = signs.getSign(); + if (sign.getBlocks().contains(block.getType())) + { + event.setCancelled(!sign.onBlockBurn(block, ess)); + return; + } + } + } + + @Override + public void onBlockIgnite(final BlockIgniteEvent event) + { + if (event.isCancelled() || ess.getSettings().areSignsDisabled()) + { + return; + } + + if (protectSignsAndBlocks(event.getBlock(), event.getPlayer())) + { + event.setCancelled(true); + } + } +} diff --git a/Essentials/src/com/earth2me/essentials/signs/SignEntityListener.java b/Essentials/src/com/earth2me/essentials/signs/SignEntityListener.java new file mode 100644 index 000000000..8b59c7aba --- /dev/null +++ b/Essentials/src/com/earth2me/essentials/signs/SignEntityListener.java @@ -0,0 +1,44 @@ +package com.earth2me.essentials.signs; + +import com.earth2me.essentials.IEssentials; +import org.bukkit.Material; +import org.bukkit.block.Block; +import org.bukkit.block.BlockFace; +import org.bukkit.event.entity.EntityExplodeEvent; +import org.bukkit.event.entity.EntityListener; + + +public class SignEntityListener extends EntityListener +{ + private final transient IEssentials ess; + + public SignEntityListener(IEssentials ess) + { + this.ess = ess; + } + + + @Override + public void onEntityExplode(EntityExplodeEvent event) + { + for (Block block : event.blockList()) + { + if ((block.getType() == Material.WALL_SIGN + || block.getType() == Material.SIGN_POST + || EssentialsSign.checkIfBlockBreaksSigns(block))) + { + event.setCancelled(true); + return; + } + for (Signs signs : Signs.values()) + { + final EssentialsSign sign = signs.getSign(); + if (sign.getBlocks().contains(block.getType())) + { + event.setCancelled(!sign.onBlockExplode(block, ess)); + return; + } + } + } + } +} diff --git a/Essentials/src/com/earth2me/essentials/signs/SignFree.java b/Essentials/src/com/earth2me/essentials/signs/SignFree.java index 6c45c8b07..51d232b5d 100644 --- a/Essentials/src/com/earth2me/essentials/signs/SignFree.java +++ b/Essentials/src/com/earth2me/essentials/signs/SignFree.java @@ -1,8 +1,6 @@ package com.earth2me.essentials.signs; -import com.earth2me.essentials.Trade; import com.earth2me.essentials.IEssentials; -import com.earth2me.essentials.ItemDb; import com.earth2me.essentials.User; import net.minecraft.server.InventoryPlayer; import org.bukkit.craftbukkit.inventory.CraftInventoryPlayer; diff --git a/Essentials/src/com/earth2me/essentials/signs/SignPlayerListener.java b/Essentials/src/com/earth2me/essentials/signs/SignPlayerListener.java new file mode 100644 index 000000000..ba94868af --- /dev/null +++ b/Essentials/src/com/earth2me/essentials/signs/SignPlayerListener.java @@ -0,0 +1,60 @@ +package com.earth2me.essentials.signs; + +import com.earth2me.essentials.IEssentials; +import org.bukkit.Material; +import org.bukkit.block.Block; +import org.bukkit.block.Sign; +import org.bukkit.craftbukkit.block.CraftSign; +import org.bukkit.event.player.PlayerInteractEvent; +import org.bukkit.event.player.PlayerListener; + + +public class SignPlayerListener extends PlayerListener +{ + private final transient IEssentials ess; + + public SignPlayerListener(IEssentials ess) + { + this.ess = ess; + } + + @Override + public void onPlayerInteract(PlayerInteractEvent event) + { + if (event.isCancelled() || ess.getSettings().areSignsDisabled()) + { + return; + } + + final Block block = event.getClickedBlock(); + final int mat = block.getTypeId(); + if (mat == Material.SIGN_POST.getId() || mat == Material.WALL_SIGN.getId()) + { + final Sign csign = new CraftSign(block); + for (Signs signs : Signs.values()) + { + final EssentialsSign sign = signs.getSign(); + if (csign.getLine(0).equalsIgnoreCase(sign.getSuccessName()) + && !sign.onSignInteract(block, event.getPlayer(), ess)) + { + event.setCancelled(true); + return; + } + } + } + else + { + for (Signs signs : Signs.values()) + { + final EssentialsSign sign = signs.getSign(); + if (sign.getBlocks().contains(block.getType()) + && !sign.onBlockInteract(block, event.getPlayer(), ess)) + { + event.setCancelled(true); + return; + + } + } + } + } +} diff --git a/Essentials/src/com/earth2me/essentials/signs/SignProtection.java b/Essentials/src/com/earth2me/essentials/signs/SignProtection.java new file mode 100644 index 000000000..02a811c78 --- /dev/null +++ b/Essentials/src/com/earth2me/essentials/signs/SignProtection.java @@ -0,0 +1,273 @@ +package com.earth2me.essentials.signs; + +import com.earth2me.essentials.ChargeException; +import com.earth2me.essentials.IEssentials; +import com.earth2me.essentials.Trade; +import com.earth2me.essentials.User; +import com.earth2me.essentials.Util; +import java.util.EnumSet; +import java.util.HashMap; +import java.util.Map; +import java.util.Set; +import org.bukkit.Location; +import org.bukkit.Material; +import org.bukkit.block.Block; +import org.bukkit.block.BlockFace; +import org.bukkit.block.Sign; +import org.bukkit.craftbukkit.block.CraftSign; +import org.bukkit.inventory.ItemStack; + + +public class SignProtection extends EssentialsSign +{ + private final transient Set protectedBlocks = EnumSet.noneOf(Material.class); + + public SignProtection() + { + super("Protection"); + protectedBlocks.add(Material.CHEST); + protectedBlocks.add(Material.BURNING_FURNACE); + protectedBlocks.add(Material.FURNACE); + protectedBlocks.add(Material.DISPENSER); + } + + @Override + protected boolean onSignCreate(final ISign sign, final User player, final String username, final IEssentials ess) throws SignException, ChargeException + { + sign.setLine(3, "§4" + username); + if (hasAdjacentBlock(sign.getBlock()) && isBlockProtected(sign.getBlock(), player, username) != SignProtectionState.NOT_ALLOWED) + { + sign.setLine(3, "§1" + username); + } + return true; + } + + @Override + protected boolean onSignBreak(final ISign sign, final User player, final String username, final IEssentials ess) throws SignException + { + final SignProtectionState state = checkProtectionSign(sign, player, username); + return state == SignProtectionState.OWNER; + } + + public boolean hasAdjacentBlock(final Block block, final Block... ignoredBlocks) + { + final Block[] faces = getAdjacentBlocks(block); + for (Block b : faces) + { + for (Block ignoredBlock : ignoredBlocks) + { + if (b.getLocation().equals(ignoredBlock.getLocation())) + { + continue; + } + } + if (protectedBlocks.contains(b.getType())) + { + return true; + } + } + return false; + } + + private void checkIfSignsAreBroken(final Block block, final User player, final String username, final IEssentials ess) + { + final Map signs = getConnectedSigns(block, player, username); + for (Map.Entry entry : signs.entrySet()) + { + if (entry.getValue() != SignProtectionState.NOSIGN) + { + final Block sign = entry.getKey().getBlock(); + if (!hasAdjacentBlock(sign, block)) + { + block.setType(Material.AIR); + final Trade trade = new Trade(new ItemStack(Material.SIGN, 1), ess); + trade.pay(player); + } + } + } + } + + private Map getConnectedSigns(final Block block, final User user, final String username) + { + final Map signs = new HashMap(); + getConnectedSigns(block, signs, user, username, 2); + return signs; + } + + private void getConnectedSigns(final Block block, final Map signs, final User user, final String username, final int depth) + { + final Block[] faces = getAdjacentBlocks(block); + for (Block b : faces) + { + final Location loc = b.getLocation(); + if (signs.containsKey(loc)) + { + continue; + } + final SignProtectionState check = checkProtectionSign(b, user, username); + signs.put(loc, check); + + if (protectedBlocks.contains(b.getType()) && depth > 0) + { + getConnectedSigns(b, signs, user, username, depth - 1); + } + } + } + + + public enum SignProtectionState + { + NOT_ALLOWED, ALLOWED, NOSIGN, OWNER + } + + private SignProtectionState checkProtectionSign(final Block block, final User user, final String username) + { + if (block.getType() == Material.SIGN_POST || block.getType() == Material.WALL_SIGN) + { + final BlockSign sign = new BlockSign(block); + if (sign.getLine(0).equalsIgnoreCase(this.getSuccessName())) + { + return checkProtectionSign(sign, user, username); + } + } + return SignProtectionState.NOSIGN; + } + + private SignProtectionState checkProtectionSign(final ISign sign, final User user, final String username) + { + if (user == null || username == null) + { + return SignProtectionState.NOT_ALLOWED; + } + if (user.isAuthorized("essentials.signs.protection.override")) + { + return SignProtectionState.OWNER; + } + for (int i = 1; i <= 2; i++) + { + final String line = sign.getLine(i); + if (line.startsWith("(") && line.endsWith(")") && user.inGroup(line.substring(1, line.length() - 1))) + { + return SignProtectionState.ALLOWED; + } + else if (line.equalsIgnoreCase(username)) + { + return SignProtectionState.ALLOWED; + } + } + if (sign.getLine(3).equalsIgnoreCase(username)) + { + return SignProtectionState.OWNER; + } + return SignProtectionState.NOT_ALLOWED; + } + + private Block[] getAdjacentBlocks(final Block block) + { + return new Block[] + { + block.getFace(BlockFace.NORTH), + block.getFace(BlockFace.SOUTH), + block.getFace(BlockFace.EAST), + block.getFace(BlockFace.WEST), + block.getFace(BlockFace.DOWN), + block.getFace(BlockFace.UP) + }; + } + + public SignProtectionState isBlockProtected(final Block block, final User user, final String username) + { + final Map signs = getConnectedSigns(block, user, username); + SignProtectionState retstate = SignProtectionState.NOSIGN; + for (SignProtectionState state : signs.values()) + { + if (state == SignProtectionState.OWNER || state == SignProtectionState.ALLOWED) + { + return state; + } + if (state == SignProtectionState.NOT_ALLOWED) + { + retstate = state; + } + } + return retstate; + } + + public boolean isBlockProtected(final Block block) + { + final Block[] faces = getAdjacentBlocks(block); + for (Block b : faces) + { + if (b.getType() == Material.SIGN_POST || b.getType() == Material.WALL_SIGN) + { + final Sign sign = new CraftSign(b); + if (sign.getLine(0).equalsIgnoreCase("§1[Protection]")) + { + return true; + } + } + if (protectedBlocks.contains(b.getType())) + { + final Block[] faceChest = getAdjacentBlocks(b); + + for (Block a : faceChest) + { + if (a.getType() == Material.SIGN_POST || a.getType() == Material.WALL_SIGN) + { + final Sign sign = new CraftSign(a); + if (sign.getLine(0).equalsIgnoreCase("§1[Protection]")) + { + return true; + } + } + } + } + } + return false; + } + + @Override + public Set getBlocks() + { + return protectedBlocks; + } + + @Override + protected boolean onBlockBreak(final Block block, final User player, final String username, final IEssentials ess) throws SignException + { + final SignProtectionState state = isBlockProtected(block, player, username); + + if (state == SignProtectionState.OWNER || state == SignProtectionState.NOSIGN) + { + checkIfSignsAreBroken(block, player, username, ess); + return true; + } + + if ((state == SignProtectionState.ALLOWED || state == SignProtectionState.NOT_ALLOWED) + && player.isAuthorized("essentials.signs.protection.override")) + { + checkIfSignsAreBroken(block, player, username, ess); + return true; + } + + + player.sendMessage(Util.format("noDestroyPermission", block.getType().toString().toLowerCase())); + return false; + } + + @Override + public boolean onBlockExplode(final Block block, final IEssentials ess) + { + final SignProtectionState state = isBlockProtected(block, null, null); + + return state == SignProtectionState.NOSIGN; + } + + @Override + public boolean onBlockBurn(final Block block, final IEssentials ess) + { + final SignProtectionState state = isBlockProtected(block, null, null); + + return state == SignProtectionState.NOSIGN; + } +} diff --git a/Essentials/src/com/earth2me/essentials/signs/SignSell.java b/Essentials/src/com/earth2me/essentials/signs/SignSell.java index 2b74a78e6..d35a83518 100644 --- a/Essentials/src/com/earth2me/essentials/signs/SignSell.java +++ b/Essentials/src/com/earth2me/essentials/signs/SignSell.java @@ -12,7 +12,7 @@ public class SignSell extends EssentialsSign { super("Sell"); } - + @Override protected boolean onSignCreate(final ISign sign, final User player, final String username, final IEssentials ess) throws SignException { @@ -20,7 +20,7 @@ public class SignSell extends EssentialsSign validateTrade(sign, 3, ess); return true; } - + @Override protected boolean onSignInteract(final ISign sign, final User player, final String username, final IEssentials ess) throws SignException, ChargeException { diff --git a/Essentials/src/com/earth2me/essentials/signs/SignTrade.java b/Essentials/src/com/earth2me/essentials/signs/SignTrade.java index dd82bd09d..c8a0d4d0d 100644 --- a/Essentials/src/com/earth2me/essentials/signs/SignTrade.java +++ b/Essentials/src/com/earth2me/essentials/signs/SignTrade.java @@ -65,7 +65,7 @@ public class SignTrade extends EssentialsSign return false; } } - + protected final void validateTrade(final ISign sign, final int index, final boolean amountNeeded, final IEssentials ess) throws SignException { final String line = sign.getLine(index).trim(); diff --git a/Essentials/src/com/earth2me/essentials/signs/Signs.java b/Essentials/src/com/earth2me/essentials/signs/Signs.java new file mode 100644 index 000000000..1f20ed737 --- /dev/null +++ b/Essentials/src/com/earth2me/essentials/signs/Signs.java @@ -0,0 +1,27 @@ +package com.earth2me.essentials.signs; + + +public enum Signs +{ + BUY(new SignBuy()), + DISPOSAL(new SignDisposal()), + FREE(new SignFree()), + HEAL(new SignHeal()), + MAIL(new SignMail()), + PROTECTION(new SignProtection()), + SELL(new SignSell()), + TIME(new SignTime()), + TRADE(new SignTrade()), + WARP(new SignWarp()); + private final EssentialsSign sign; + + private Signs(final EssentialsSign sign) + { + this.sign = sign; + } + + public EssentialsSign getSign() + { + return sign; + } +} -- cgit v1.2.3 From 88ded926f49deed78fb6d238661f3c900483b0a6 Mon Sep 17 00:00:00 2001 From: snowleo Date: Sun, 26 Jun 2011 15:47:28 +0200 Subject: Corrected all commands of PermCommands onCommand now supports the change of the permissions prefix --- .../src/com/earth2me/essentials/Essentials.java | 23 +++++++++------------- .../src/com/earth2me/essentials/IEssentials.java | 2 +- Essentials/src/com/earth2me/essentials/IUser.java | 2 ++ Essentials/src/com/earth2me/essentials/User.java | 9 +++++++-- .../essentials/permissions/Commandmangadd.java | 2 +- .../essentials/permissions/Commandmangaddi.java | 2 +- .../essentials/permissions/Commandmangaddp.java | 2 +- .../essentials/permissions/Commandmangcheckp.java | 2 +- .../essentials/permissions/Commandmangdel.java | 2 +- .../essentials/permissions/Commandmangdeli.java | 2 +- .../essentials/permissions/Commandmangdelp.java | 2 +- .../essentials/permissions/Commandmanglistp.java | 2 +- .../essentials/permissions/Commandmanload.java | 2 +- .../essentials/permissions/Commandmanuadd.java | 2 +- .../essentials/permissions/Commandmanuaddp.java | 2 +- .../essentials/permissions/Commandmanuaddsub.java | 2 +- .../essentials/permissions/Commandmanucheckp.java | 2 +- .../essentials/permissions/Commandmanudel.java | 2 +- .../essentials/permissions/Commandmanudelp.java | 2 +- .../essentials/permissions/Commandmanudelsub.java | 2 +- .../essentials/permissions/Commandmanulistp.java | 2 +- .../permissions/EssentialsPermissionsCommands.java | 2 +- .../earth2me/essentials/spawn/EssentialsSpawn.java | 2 +- .../earth2me/essentials/xmpp/EssentialsXMPP.java | 2 +- 24 files changed, 39 insertions(+), 37 deletions(-) diff --git a/Essentials/src/com/earth2me/essentials/Essentials.java b/Essentials/src/com/earth2me/essentials/Essentials.java index 24c9a445e..4c39389ef 100644 --- a/Essentials/src/com/earth2me/essentials/Essentials.java +++ b/Essentials/src/com/earth2me/essentials/Essentials.java @@ -352,22 +352,13 @@ public class Essentials extends JavaPlugin implements IEssentials return retval; } - @SuppressWarnings("LoggerStringConcat") - public static void previewCommand(CommandSender sender, Command command, String commandLabel, String[] args) - { - if (sender instanceof Player) - { - logger.info(ChatColor.BLUE + "[PLAYER_COMMAND] " + ((Player)sender).getName() + ": /" + commandLabel + " " + EssentialsCommand.getFinalArg(args, 0)); - } - } - @Override public boolean onCommand(CommandSender sender, Command command, String commandLabel, String[] args) { - return onCommandEssentials(sender, command, commandLabel, args, Essentials.class.getClassLoader(), "com.earth2me.essentials.commands.Command"); + return onCommandEssentials(sender, command, commandLabel, args, Essentials.class.getClassLoader(), "com.earth2me.essentials.commands.Command", "essentials."); } - public boolean onCommandEssentials(CommandSender sender, Command command, String commandLabel, String[] args, ClassLoader classLoader, String commandPath) + public boolean onCommandEssentials(CommandSender sender, Command command, String commandLabel, String[] args, ClassLoader classLoader, String commandPath, String permissionPrefix) { if (("msg".equals(commandLabel.toLowerCase()) || "r".equals(commandLabel.toLowerCase()) || "mail".equals(commandLabel.toLowerCase())) && sender instanceof Player) { @@ -416,8 +407,12 @@ public class Essentials extends JavaPlugin implements IEssentials try { - previewCommand(sender, command, commandLabel, args); - User user = sender instanceof Player ? getUser(sender) : null; + User user = null; + if (sender instanceof Player) + { + user = getUser(sender); + logger.log(Level.INFO, String.format("[PLAYER_COMMAND] %s: /%s %s ", ((Player)sender).getName(), commandLabel , EssentialsCommand.getFinalArg(args, 0))); + } // New mail notification if (user != null && !getSettings().isCommandDisabled("mail") && !commandLabel.equals("mail") && user.isAuthorized("essentials.mail")) @@ -449,7 +444,7 @@ public class Essentials extends JavaPlugin implements IEssentials } // Check authorization - if (user != null && !user.isAuthorized(cmd)) + if (user != null && !user.isAuthorized(cmd, permissionPrefix)) { logger.log(Level.WARNING, Util.format("deniedAccessCommand", user.getName())); user.sendMessage(Util.i18n("noAccessCommand")); diff --git a/Essentials/src/com/earth2me/essentials/IEssentials.java b/Essentials/src/com/earth2me/essentials/IEssentials.java index 426724c61..cf6e62e71 100644 --- a/Essentials/src/com/earth2me/essentials/IEssentials.java +++ b/Essentials/src/com/earth2me/essentials/IEssentials.java @@ -16,7 +16,7 @@ public interface IEssentials void reload(); - boolean onCommandEssentials(CommandSender sender, Command command, String commandLabel, String[] args, ClassLoader classLoader, String commandPath); + boolean onCommandEssentials(CommandSender sender, Command command, String commandLabel, String[] args, ClassLoader classLoader, String commandPath, String permissionPrefix); User getUser(Object base); diff --git a/Essentials/src/com/earth2me/essentials/IUser.java b/Essentials/src/com/earth2me/essentials/IUser.java index cfed0915f..5b2e7075e 100644 --- a/Essentials/src/com/earth2me/essentials/IUser.java +++ b/Essentials/src/com/earth2me/essentials/IUser.java @@ -22,6 +22,8 @@ public interface IUser boolean isAuthorized(String node); boolean isAuthorized(IEssentialsCommand cmd); + + boolean isAuthorized(IEssentialsCommand cmd, String permissionPrefix); void setLastTeleportTimestamp(long time); diff --git a/Essentials/src/com/earth2me/essentials/User.java b/Essentials/src/com/earth2me/essentials/User.java index befbf111f..c3384d033 100644 --- a/Essentials/src/com/earth2me/essentials/User.java +++ b/Essentials/src/com/earth2me/essentials/User.java @@ -31,10 +31,15 @@ public class User extends UserData implements Comparable, IReplyTo, IUser setBase(base); return this; } - + public boolean isAuthorized(IEssentialsCommand cmd) { - return isAuthorized("essentials." + (cmd.getName().equals("r") ? "msg" : cmd.getName())); + return isAuthorized(cmd, "essentials."); + } + + public boolean isAuthorized(IEssentialsCommand cmd, String permissionPrefix) + { + return isAuthorized(permissionPrefix + (cmd.getName().equals("r") ? "msg" : cmd.getName())); } public boolean isAuthorized(String node) diff --git a/EssentialsPermissionsCommands/src/com/earth2me/essentials/permissions/Commandmangadd.java b/EssentialsPermissionsCommands/src/com/earth2me/essentials/permissions/Commandmangadd.java index 442729f16..8c22dabdc 100644 --- a/EssentialsPermissionsCommands/src/com/earth2me/essentials/permissions/Commandmangadd.java +++ b/EssentialsPermissionsCommands/src/com/earth2me/essentials/permissions/Commandmangadd.java @@ -21,7 +21,7 @@ public class Commandmangadd extends EssentialsCommand throw new NotEnoughArgumentsException(); } final String group = args[0]; - String command = "/permissions g:" + group + " create"; + String command = "permissions g:" + group + " create"; sender.sendMessage(commandLabel + " is deprecated. Use " + command + " instead."); ess.getServer().dispatchCommand(sender, command); } diff --git a/EssentialsPermissionsCommands/src/com/earth2me/essentials/permissions/Commandmangaddi.java b/EssentialsPermissionsCommands/src/com/earth2me/essentials/permissions/Commandmangaddi.java index f2eb55ee4..760b5c81f 100644 --- a/EssentialsPermissionsCommands/src/com/earth2me/essentials/permissions/Commandmangaddi.java +++ b/EssentialsPermissionsCommands/src/com/earth2me/essentials/permissions/Commandmangaddi.java @@ -22,7 +22,7 @@ public class Commandmangaddi extends EssentialsCommand } final String target = args[0]; final String group = args[1]; - String command = "/permissions g:"+target+" parents add "+group; + String command = "permissions g:"+target+" parents add "+group; sender.sendMessage(commandLabel + " is deprecated. Use " + command + " instead."); ess.getServer().dispatchCommand(sender, command); } diff --git a/EssentialsPermissionsCommands/src/com/earth2me/essentials/permissions/Commandmangaddp.java b/EssentialsPermissionsCommands/src/com/earth2me/essentials/permissions/Commandmangaddp.java index e57628c57..e83de4e50 100644 --- a/EssentialsPermissionsCommands/src/com/earth2me/essentials/permissions/Commandmangaddp.java +++ b/EssentialsPermissionsCommands/src/com/earth2me/essentials/permissions/Commandmangaddp.java @@ -22,7 +22,7 @@ public class Commandmangaddp extends EssentialsCommand } final String target = args[0]; final String perm = args[1]; - String command = "/permissions g:"+target+" perms add "+perm; + String command = "permissions g:"+target+" perms add "+perm; sender.sendMessage(commandLabel + " is deprecated. Use " + command + " instead."); ess.getServer().dispatchCommand(sender, command); } diff --git a/EssentialsPermissionsCommands/src/com/earth2me/essentials/permissions/Commandmangcheckp.java b/EssentialsPermissionsCommands/src/com/earth2me/essentials/permissions/Commandmangcheckp.java index 106dcd791..1152d1a0b 100644 --- a/EssentialsPermissionsCommands/src/com/earth2me/essentials/permissions/Commandmangcheckp.java +++ b/EssentialsPermissionsCommands/src/com/earth2me/essentials/permissions/Commandmangcheckp.java @@ -22,7 +22,7 @@ public class Commandmangcheckp extends EssentialsCommand } final String target = args[0]; final String perm = args[1]; - String command = "/permissions g:"+target+" has "+perm; + String command = "permissions g:"+target+" has "+perm; sender.sendMessage(commandLabel + " is deprecated. Use " + command + " instead."); ess.getServer().dispatchCommand(sender, command); } diff --git a/EssentialsPermissionsCommands/src/com/earth2me/essentials/permissions/Commandmangdel.java b/EssentialsPermissionsCommands/src/com/earth2me/essentials/permissions/Commandmangdel.java index 52fdc3da2..24ffe2307 100644 --- a/EssentialsPermissionsCommands/src/com/earth2me/essentials/permissions/Commandmangdel.java +++ b/EssentialsPermissionsCommands/src/com/earth2me/essentials/permissions/Commandmangdel.java @@ -21,7 +21,7 @@ public class Commandmangdel extends EssentialsCommand throw new NotEnoughArgumentsException(); } final String group = args[0]; - String command = "/permissions g:"+group+" delete"; + String command = "permissions g:"+group+" delete"; sender.sendMessage(commandLabel + " is deprecated. Use " + command + " instead."); ess.getServer().dispatchCommand(sender, command); } diff --git a/EssentialsPermissionsCommands/src/com/earth2me/essentials/permissions/Commandmangdeli.java b/EssentialsPermissionsCommands/src/com/earth2me/essentials/permissions/Commandmangdeli.java index 9b3bc3679..aea296735 100644 --- a/EssentialsPermissionsCommands/src/com/earth2me/essentials/permissions/Commandmangdeli.java +++ b/EssentialsPermissionsCommands/src/com/earth2me/essentials/permissions/Commandmangdeli.java @@ -22,7 +22,7 @@ public class Commandmangdeli extends EssentialsCommand } final String target = args[0]; final String group = args[1]; - String command = "/permissions g:"+target+" parents remove "+group; + String command = "permissions g:"+target+" parents remove "+group; sender.sendMessage(commandLabel + " is deprecated. Use " + command + " instead."); ess.getServer().dispatchCommand(sender, command); } diff --git a/EssentialsPermissionsCommands/src/com/earth2me/essentials/permissions/Commandmangdelp.java b/EssentialsPermissionsCommands/src/com/earth2me/essentials/permissions/Commandmangdelp.java index de4ce8a7e..ef1dd4207 100644 --- a/EssentialsPermissionsCommands/src/com/earth2me/essentials/permissions/Commandmangdelp.java +++ b/EssentialsPermissionsCommands/src/com/earth2me/essentials/permissions/Commandmangdelp.java @@ -22,7 +22,7 @@ public class Commandmangdelp extends EssentialsCommand } final String target = args[0]; final String perm = args[1]; - String command = "/permissions g:"+target+" perms remove "+perm; + String command = "permissions g:"+target+" perms remove "+perm; sender.sendMessage(commandLabel + " is deprecated. Use " + command + " instead."); ess.getServer().dispatchCommand(sender, command); } diff --git a/EssentialsPermissionsCommands/src/com/earth2me/essentials/permissions/Commandmanglistp.java b/EssentialsPermissionsCommands/src/com/earth2me/essentials/permissions/Commandmanglistp.java index 2e775c147..715f42774 100644 --- a/EssentialsPermissionsCommands/src/com/earth2me/essentials/permissions/Commandmanglistp.java +++ b/EssentialsPermissionsCommands/src/com/earth2me/essentials/permissions/Commandmanglistp.java @@ -21,7 +21,7 @@ public class Commandmanglistp extends EssentialsCommand throw new NotEnoughArgumentsException(); } final String target = args[0]; - String command = "/permissions g:"+target+" perms list"; + String command = "permissions g:"+target+" perms list"; sender.sendMessage(commandLabel + " is deprecated. Use " + command + " instead."); ess.getServer().dispatchCommand(sender, command); } diff --git a/EssentialsPermissionsCommands/src/com/earth2me/essentials/permissions/Commandmanload.java b/EssentialsPermissionsCommands/src/com/earth2me/essentials/permissions/Commandmanload.java index 3e1803233..390cb78eb 100644 --- a/EssentialsPermissionsCommands/src/com/earth2me/essentials/permissions/Commandmanload.java +++ b/EssentialsPermissionsCommands/src/com/earth2me/essentials/permissions/Commandmanload.java @@ -21,7 +21,7 @@ public class Commandmanload extends EssentialsCommand { world = args[0]; } - String command = "/permissions -reload "+world; + String command = "permissions -reload "+world; sender.sendMessage(commandLabel + " is deprecated. Use " + command + " instead."); ess.getServer().dispatchCommand(sender, command); } diff --git a/EssentialsPermissionsCommands/src/com/earth2me/essentials/permissions/Commandmanuadd.java b/EssentialsPermissionsCommands/src/com/earth2me/essentials/permissions/Commandmanuadd.java index 65a4df759..a63a1a36b 100644 --- a/EssentialsPermissionsCommands/src/com/earth2me/essentials/permissions/Commandmanuadd.java +++ b/EssentialsPermissionsCommands/src/com/earth2me/essentials/permissions/Commandmanuadd.java @@ -23,7 +23,7 @@ public class Commandmanuadd extends EssentialsCommand final String player = args[0]; final String group = args[1]; //TODO: Make this command add a player if it doesnt exist /permissions +player+ create - String command = "/permissions "+player+" parents add "+group; + String command = "permissions "+player+" parents add "+group; sender.sendMessage(commandLabel + " is deprecated. Use " + command + " instead."); ess.getServer().dispatchCommand(sender, command); } diff --git a/EssentialsPermissionsCommands/src/com/earth2me/essentials/permissions/Commandmanuaddp.java b/EssentialsPermissionsCommands/src/com/earth2me/essentials/permissions/Commandmanuaddp.java index 676631c63..3d3d67c72 100644 --- a/EssentialsPermissionsCommands/src/com/earth2me/essentials/permissions/Commandmanuaddp.java +++ b/EssentialsPermissionsCommands/src/com/earth2me/essentials/permissions/Commandmanuaddp.java @@ -22,7 +22,7 @@ public class Commandmanuaddp extends EssentialsCommand } final String player = args[0]; final String perm = args[1]; - String command = "/permissions "+player+" perms add "+perm; + String command = "permissions "+player+" perms add "+perm; sender.sendMessage(commandLabel + " is deprecated. Use " + command + " instead."); ess.getServer().dispatchCommand(sender, command); } diff --git a/EssentialsPermissionsCommands/src/com/earth2me/essentials/permissions/Commandmanuaddsub.java b/EssentialsPermissionsCommands/src/com/earth2me/essentials/permissions/Commandmanuaddsub.java index ee2cd3147..60d1980af 100644 --- a/EssentialsPermissionsCommands/src/com/earth2me/essentials/permissions/Commandmanuaddsub.java +++ b/EssentialsPermissionsCommands/src/com/earth2me/essentials/permissions/Commandmanuaddsub.java @@ -22,7 +22,7 @@ public class Commandmanuaddsub extends EssentialsCommand } final String player = args[0]; final String group = args[1]; - String command = "/permissions "+player+" parents add "+group; + String command = "permissions "+player+" parents add "+group; sender.sendMessage(commandLabel + " is deprecated. Use " + command + " instead."); ess.getServer().dispatchCommand(sender, command); } diff --git a/EssentialsPermissionsCommands/src/com/earth2me/essentials/permissions/Commandmanucheckp.java b/EssentialsPermissionsCommands/src/com/earth2me/essentials/permissions/Commandmanucheckp.java index df713fc31..634b447c7 100644 --- a/EssentialsPermissionsCommands/src/com/earth2me/essentials/permissions/Commandmanucheckp.java +++ b/EssentialsPermissionsCommands/src/com/earth2me/essentials/permissions/Commandmanucheckp.java @@ -22,7 +22,7 @@ public class Commandmanucheckp extends EssentialsCommand } final String player = args[0]; final String perm = args[1]; - String command = "/permissions "+player+" has "+perm; + String command = "permissions "+player+" has "+perm; sender.sendMessage(commandLabel + " is deprecated. Use " + command + " instead."); ess.getServer().dispatchCommand(sender, command); } diff --git a/EssentialsPermissionsCommands/src/com/earth2me/essentials/permissions/Commandmanudel.java b/EssentialsPermissionsCommands/src/com/earth2me/essentials/permissions/Commandmanudel.java index 9e117ac21..72c8fc2af 100644 --- a/EssentialsPermissionsCommands/src/com/earth2me/essentials/permissions/Commandmanudel.java +++ b/EssentialsPermissionsCommands/src/com/earth2me/essentials/permissions/Commandmanudel.java @@ -21,7 +21,7 @@ public class Commandmanudel extends EssentialsCommand throw new NotEnoughArgumentsException(); } final String player = args[0]; - String command = "/permissions "+player+" delete"; + String command = "permissions "+player+" delete"; sender.sendMessage(commandLabel + " is deprecated. Use " + command + " instead."); ess.getServer().dispatchCommand(sender, command); } diff --git a/EssentialsPermissionsCommands/src/com/earth2me/essentials/permissions/Commandmanudelp.java b/EssentialsPermissionsCommands/src/com/earth2me/essentials/permissions/Commandmanudelp.java index 4a35f628b..01adf97b2 100644 --- a/EssentialsPermissionsCommands/src/com/earth2me/essentials/permissions/Commandmanudelp.java +++ b/EssentialsPermissionsCommands/src/com/earth2me/essentials/permissions/Commandmanudelp.java @@ -22,7 +22,7 @@ public class Commandmanudelp extends EssentialsCommand } final String player = args[0]; final String perm = args[1]; - String command = "/permissions "+player+" perms remove "+perm; + String command = "permissions "+player+" perms remove "+perm; sender.sendMessage(commandLabel + " is deprecated. Use " + command + " instead."); ess.getServer().dispatchCommand(sender, command); } diff --git a/EssentialsPermissionsCommands/src/com/earth2me/essentials/permissions/Commandmanudelsub.java b/EssentialsPermissionsCommands/src/com/earth2me/essentials/permissions/Commandmanudelsub.java index 4640c68b1..1a1ae2a6d 100644 --- a/EssentialsPermissionsCommands/src/com/earth2me/essentials/permissions/Commandmanudelsub.java +++ b/EssentialsPermissionsCommands/src/com/earth2me/essentials/permissions/Commandmanudelsub.java @@ -22,7 +22,7 @@ public class Commandmanudelsub extends EssentialsCommand } final String player = args[0]; final String group = args[1]; - String command = "/permissions "+player+" parents remove "+group; + String command = "permissions "+player+" parents remove "+group; sender.sendMessage(commandLabel + " is deprecated. Use " + command + " instead."); ess.getServer().dispatchCommand(sender, command); } diff --git a/EssentialsPermissionsCommands/src/com/earth2me/essentials/permissions/Commandmanulistp.java b/EssentialsPermissionsCommands/src/com/earth2me/essentials/permissions/Commandmanulistp.java index f5d4a484e..f809f3c61 100644 --- a/EssentialsPermissionsCommands/src/com/earth2me/essentials/permissions/Commandmanulistp.java +++ b/EssentialsPermissionsCommands/src/com/earth2me/essentials/permissions/Commandmanulistp.java @@ -21,7 +21,7 @@ public class Commandmanulistp extends EssentialsCommand throw new NotEnoughArgumentsException(); } final String player = args[0]; - String command = "/permissions "+player+" perms list"; + String command = "permissions "+player+" perms list"; sender.sendMessage(commandLabel + " is deprecated. Use " + command + " instead."); ess.getServer().dispatchCommand(sender, command); } diff --git a/EssentialsPermissionsCommands/src/com/earth2me/essentials/permissions/EssentialsPermissionsCommands.java b/EssentialsPermissionsCommands/src/com/earth2me/essentials/permissions/EssentialsPermissionsCommands.java index e3c3f1dd6..a9651cd31 100644 --- a/EssentialsPermissionsCommands/src/com/earth2me/essentials/permissions/EssentialsPermissionsCommands.java +++ b/EssentialsPermissionsCommands/src/com/earth2me/essentials/permissions/EssentialsPermissionsCommands.java @@ -35,7 +35,7 @@ public class EssentialsPermissionsCommands extends JavaPlugin @Override public boolean onCommand(final CommandSender sender, final Command command, final String label, final String[] args) { - return Essentials.getStatic().onCommandEssentials(sender, command, label, args, EssentialsPermissionsCommands.class.getClassLoader(), "com.earth2me.essentials.permissions.Command"); + return Essentials.getStatic().onCommandEssentials(sender, command, label, args, EssentialsPermissionsCommands.class.getClassLoader(), "com.earth2me.essentials.permissions.Command", "groupmanager."); } @Override diff --git a/EssentialsSpawn/src/com/earth2me/essentials/spawn/EssentialsSpawn.java b/EssentialsSpawn/src/com/earth2me/essentials/spawn/EssentialsSpawn.java index fb2e712b7..77cb9a3cb 100644 --- a/EssentialsSpawn/src/com/earth2me/essentials/spawn/EssentialsSpawn.java +++ b/EssentialsSpawn/src/com/earth2me/essentials/spawn/EssentialsSpawn.java @@ -38,6 +38,6 @@ public class EssentialsSpawn extends JavaPlugin @Override public boolean onCommand(CommandSender sender, Command command, String commandLabel, String[] args) { - return Essentials.getStatic().onCommandEssentials(sender, command, commandLabel, args, EssentialsSpawn.class.getClassLoader(), "com.earth2me.essentials.spawn.Command"); + return Essentials.getStatic().onCommandEssentials(sender, command, commandLabel, args, EssentialsSpawn.class.getClassLoader(), "com.earth2me.essentials.spawn.Command", "essentials."); } } diff --git a/EssentialsXMPP/src/com/earth2me/essentials/xmpp/EssentialsXMPP.java b/EssentialsXMPP/src/com/earth2me/essentials/xmpp/EssentialsXMPP.java index a2ee7bed1..27988f11a 100644 --- a/EssentialsXMPP/src/com/earth2me/essentials/xmpp/EssentialsXMPP.java +++ b/EssentialsXMPP/src/com/earth2me/essentials/xmpp/EssentialsXMPP.java @@ -65,7 +65,7 @@ public class EssentialsXMPP extends JavaPlugin implements IEssentialsXMPP @Override public boolean onCommand(final CommandSender sender, final Command command, final String commandLabel, final String[] args) { - return Essentials.getStatic().onCommandEssentials(sender, command, commandLabel, args, EssentialsXMPP.class.getClassLoader(), "com.earth2me.essentials.xmpp.Command"); + return Essentials.getStatic().onCommandEssentials(sender, command, commandLabel, args, EssentialsXMPP.class.getClassLoader(), "com.earth2me.essentials.xmpp.Command", "essentials."); } @Override -- cgit v1.2.3 From fa5d6fbfaecd3892ef870d500a6c38e7ae40058a Mon Sep 17 00:00:00 2001 From: snowleo Date: Sun, 26 Jun 2011 16:06:19 +0200 Subject: Missing onBlockPlace event for Protection sign --- .../essentials/signs/SignBlockListener.java | 39 +++++++++++++++++--- .../earth2me/essentials/signs/SignProtection.java | 42 ++++++++++++++++++++++ Essentials/src/messages.properties | 3 +- Essentials/src/messages_da.properties | 3 +- Essentials/src/messages_de.properties | 3 +- Essentials/src/messages_en.properties | 3 +- Essentials/src/messages_fr.properties | 3 +- Essentials/src/messages_nl.properties | 3 +- 8 files changed, 88 insertions(+), 11 deletions(-) diff --git a/Essentials/src/com/earth2me/essentials/signs/SignBlockListener.java b/Essentials/src/com/earth2me/essentials/signs/SignBlockListener.java index 543df7fc5..b7a47de14 100644 --- a/Essentials/src/com/earth2me/essentials/signs/SignBlockListener.java +++ b/Essentials/src/com/earth2me/essentials/signs/SignBlockListener.java @@ -10,6 +10,7 @@ import org.bukkit.event.block.BlockBreakEvent; import org.bukkit.event.block.BlockBurnEvent; import org.bukkit.event.block.BlockIgniteEvent; import org.bukkit.event.block.BlockListener; +import org.bukkit.event.block.BlockPlaceEvent; import org.bukkit.event.block.SignChangeEvent; @@ -82,9 +83,36 @@ public class SignBlockListener extends BlockListener for (Signs signs : Signs.values()) { final EssentialsSign sign = signs.getSign(); - if (event.getLine(0).equalsIgnoreCase(sign.getTemplateName())) + if (event.getLine(0).equalsIgnoreCase(sign.getTemplateName()) + && !sign.onSignCreate(event, ess)) { - event.setCancelled(!sign.onSignCreate(event, ess)); + event.setCancelled(true); + return; + } + } + } + + @Override + public void onBlockPlace(final BlockPlaceEvent event) + { + if (event.isCancelled() || ess.getSettings().areSignsDisabled()) + { + return; + } + + final Block block = event.getBlock(); + if (block.getType() == Material.WALL_SIGN + || block.getType() == Material.SIGN_POST) + { + return; + } + for (Signs signs : Signs.values()) + { + final EssentialsSign sign = signs.getSign(); + if (sign.getBlocks().contains(block.getType()) + && !sign.onBlockPlace(block, event.getPlayer(), ess)) + { + event.setCancelled(true); return; } } @@ -98,7 +126,7 @@ public class SignBlockListener extends BlockListener return; } - Block block = event.getBlock(); + final Block block = event.getBlock(); if ((block.getType() == Material.WALL_SIGN || block.getType() == Material.SIGN_POST || EssentialsSign.checkIfBlockBreaksSigns(block))) @@ -109,9 +137,10 @@ public class SignBlockListener extends BlockListener for (Signs signs : Signs.values()) { final EssentialsSign sign = signs.getSign(); - if (sign.getBlocks().contains(block.getType())) + if (sign.getBlocks().contains(block.getType()) + && !sign.onBlockBurn(block, ess)) { - event.setCancelled(!sign.onBlockBurn(block, ess)); + event.setCancelled(true); return; } } diff --git a/Essentials/src/com/earth2me/essentials/signs/SignProtection.java b/Essentials/src/com/earth2me/essentials/signs/SignProtection.java index 02a811c78..8e0f4461f 100644 --- a/Essentials/src/com/earth2me/essentials/signs/SignProtection.java +++ b/Essentials/src/com/earth2me/essentials/signs/SignProtection.java @@ -231,6 +231,48 @@ public class SignProtection extends EssentialsSign { return protectedBlocks; } + + @Override + protected boolean onBlockPlace(final Block block, final User player, final String username, final IEssentials ess) throws SignException + { + final SignProtectionState state = isBlockProtected(block, player, username); + + if (state == SignProtectionState.OWNER || state == SignProtectionState.NOSIGN) + { + return true; + } + + if ((state == SignProtectionState.ALLOWED || state == SignProtectionState.NOT_ALLOWED) + && player.isAuthorized("essentials.signs.protection.override")) + { + return true; + } + + + player.sendMessage(Util.format("noPlacePermission", block.getType().toString().toLowerCase())); + return false; + } + + @Override + protected boolean onBlockInteract(final Block block, final User player, final String username, final IEssentials ess) throws SignException + { + final SignProtectionState state = isBlockProtected(block, player, username); + + if (state == SignProtectionState.OWNER || state == SignProtectionState.NOSIGN || state == SignProtectionState.ALLOWED) + { + return true; + } + + if (state == SignProtectionState.NOT_ALLOWED + && player.isAuthorized("essentials.signs.protection.override")) + { + return true; + } + + + player.sendMessage(Util.format("noAccessPermission", block.getType().toString().toLowerCase())); + return false; + } @Override protected boolean onBlockBreak(final Block block, final User player, final String username, final IEssentials ess) throws SignException diff --git a/Essentials/src/messages.properties b/Essentials/src/messages.properties index 2394df0a4..1467df312 100644 --- a/Essentials/src/messages.properties +++ b/Essentials/src/messages.properties @@ -74,8 +74,8 @@ foreverAlone = \u00a7cYou have nobody to whom you can reply. freedMemory = Freed {0} MB. gcchunks = chunks, gcentities = entities -gcmax = Maximum memory: {0} MB gcfree = Free memory: {0} MB +gcmax = Maximum memory: {0} MB gctotal = Allocated memory: {0} MB generatingPortal = \u00a77Generating an exit portal. geoIpUrlEmpty = GeoIP download url is empty. @@ -186,6 +186,7 @@ noMailSendPerm = \u00a7cYou do not have the \u00a7fessentials.mail.send\u00a7c p noMotd = \u00a7cThere is no message of the day." noNewMail = \u00a77You have no new mail. noPendingRequest = You do not have a pending request. +noPlacePermission = \u00a7cYou do not have permission to place a block near that sign. noRules = \u00a7cThere are no rules specified yet. noWarpsDefined = No warps defined none = none diff --git a/Essentials/src/messages_da.properties b/Essentials/src/messages_da.properties index 115200f73..8f696830c 100644 --- a/Essentials/src/messages_da.properties +++ b/Essentials/src/messages_da.properties @@ -76,8 +76,8 @@ foreverAlone = \u00a7cDu har ingen du kan svare. freedMemory = Befriede {0} MB. gcchunks = stykker, gcentities = enheder -gcmax = Maximum memory: {0} MB gcfree = Free memory: {0} MB +gcmax = Maximum memory: {0} MB gctotal = Allocated memory: {0} MB generatingPortal = \u00a77Genererer en udgangs portal. geoIpUrlEmpty = GeoIP download url er tom. @@ -188,6 +188,7 @@ noMailSendPerm = \u00a7cDu har ikke \u00a7fessentials.mail.send\u00a7c tilladels noMotd = \u00a7cDer er ikke nogen besked for dagen." noNewMail = \u00a77Du har ingen ny post. noPendingRequest = Du har ikke en ventende anmodning. +noPlacePermission = \u00a7cYou do not have permission to place a block near that sign. noRules = \u00a7cDer er ingen regler fastsat endnu. noWarpsDefined = Ingen warps defineret none = ingen diff --git a/Essentials/src/messages_de.properties b/Essentials/src/messages_de.properties index 88c6548bd..7b287c583 100644 --- a/Essentials/src/messages_de.properties +++ b/Essentials/src/messages_de.properties @@ -74,8 +74,8 @@ foreverAlone = \u00a7cDu hast niemanden, dem du antworten kannst. freedMemory = {0} MB frei gemacht. gcchunks = Chunks, gcentities = Einheiten -gcmax = Maximaler Speicher: {0} MB gcfree = Freier Speicher: {0} MB +gcmax = Maximaler Speicher: {0} MB gctotal = Reservierter Speicher: {0} MB generatingPortal = \u00a77Erstelle ein Ausgangsportal. geoIpUrlEmpty = GeoIP Download-URL ist leer. @@ -186,6 +186,7 @@ noMailSendPerm = \u00a7cDu hast die Rechte \u00a7fessentials.mail.send\u00a7c ni noMotd = \u00a7cEs existiert keine Willkommensnachricht." noNewMail = \u00a77Du hast keine Nachrichten. noPendingRequest = Du hast keine Teleportierungsanfragen. +noPlacePermission = \u00a7cDu hast keine Rechte, einen Block in der N\u00e4he des Schildes zu platzieren. noRules = \u00a7cEs wurden keine Regeln definiert. noWarpsDefined = Keine Warp-Punkte erstellt. none = keine diff --git a/Essentials/src/messages_en.properties b/Essentials/src/messages_en.properties index 2394df0a4..1467df312 100644 --- a/Essentials/src/messages_en.properties +++ b/Essentials/src/messages_en.properties @@ -74,8 +74,8 @@ foreverAlone = \u00a7cYou have nobody to whom you can reply. freedMemory = Freed {0} MB. gcchunks = chunks, gcentities = entities -gcmax = Maximum memory: {0} MB gcfree = Free memory: {0} MB +gcmax = Maximum memory: {0} MB gctotal = Allocated memory: {0} MB generatingPortal = \u00a77Generating an exit portal. geoIpUrlEmpty = GeoIP download url is empty. @@ -186,6 +186,7 @@ noMailSendPerm = \u00a7cYou do not have the \u00a7fessentials.mail.send\u00a7c p noMotd = \u00a7cThere is no message of the day." noNewMail = \u00a77You have no new mail. noPendingRequest = You do not have a pending request. +noPlacePermission = \u00a7cYou do not have permission to place a block near that sign. noRules = \u00a7cThere are no rules specified yet. noWarpsDefined = No warps defined none = none diff --git a/Essentials/src/messages_fr.properties b/Essentials/src/messages_fr.properties index 3b1a861d9..c53559ed3 100644 --- a/Essentials/src/messages_fr.properties +++ b/Essentials/src/messages_fr.properties @@ -74,8 +74,8 @@ foreverAlone = \u00a7cVous n''avez personne \u00e0 qui r\u00e9pondre. freedMemory = A lib\u00e9r\u00e9 {0} Mo. gcchunks = chunks, gcentities = entit\u00e9s -gcmax = M\u00e9moire maximale: {0} Mo gcfree = Free memory: {0} Mo +gcmax = M\u00e9moire maximale: {0} Mo gctotal = Allocated memory: {0} Mo generatingPortal = \u00a77G\u00e9n\u00e9ration d''un portail de sortie. geoIpUrlEmpty = L''url de t\u00e9l\u00e9chargement de GeoIP est vide. @@ -186,6 +186,7 @@ noMailSendPerm = \u00a7cVous n''avez pas la permission \u00a7fessentials.mail.se noMotd = \u00a7cIl n''y a pas de message su jour. noNewMail = \u00a77Vous n''avez pas de courrier. noPendingRequest = Vous n''avez pas de requ\u00eate non lue. +noPlacePermission = \u00a7cYou do not have permission to place a block near that sign. noRules = \u00a7cIl n''y a pas encore de r\u00e8gles d\u00e9finies. noWarpsDefined = Aucun warps d\u00e9finis. none = aucun diff --git a/Essentials/src/messages_nl.properties b/Essentials/src/messages_nl.properties index ab97ab46f..549c6a439 100644 --- a/Essentials/src/messages_nl.properties +++ b/Essentials/src/messages_nl.properties @@ -75,8 +75,8 @@ foreverAlone = \u00a7cJe hebt niemand waarnaar je kan reageren. freedMemory = {0} MB gelost. gcchunks = chunks, gcentities = entities -gcmax = Maximaal geheugen: {0} MB gcfree = Free memory: {0} MB +gcmax = Maximaal geheugen: {0} MB gctotal = Allocated memory: {0} MB generatingPortal = \u00a77Uitgangs portal aan het cre\u00ebren. geoIpUrlEmpty = GeoIP download url is leeg. @@ -187,6 +187,7 @@ noMailSendPerm = \u00a7cJe hebt de \u00a7fessentials.mail.send\u00a7c toestemmin noMotd = \u00a7cEr is geen bericht van de dag." noNewMail = \u00a77Je hebt geen nieuwe berichten. noPendingRequest = Je hebt geen aanvragen. +noPlacePermission = \u00a7cYou do not have permission to place a block near that sign. noRules = \u00a7cEr zijn nog geen regels gegeven. noWarpsDefined = Geen warps gedefinieerd none = geen -- cgit v1.2.3 From a6d60dbc94edda1b58d33c695fef5a2ee7759b79 Mon Sep 17 00:00:00 2001 From: snowleo Date: Sun, 26 Jun 2011 16:17:45 +0200 Subject: Deprecating the old sign code and adding the new code. Please test everything without EssentialsProtect. The signs should protect themselves. --- .../src/com/earth2me/essentials/Essentials.java | 34 ++++++++++++++++------ .../essentials/EssentialsBlockListener.java | 17 +++++++---- .../essentials/EssentialsEcoBlockListener.java | 2 +- .../essentials/EssentialsEcoPlayerListener.java | 2 +- .../essentials/EssentialsPlayerListener.java | 9 +++--- .../protect/EssentialsProtectEntityListener.java | 4 +-- 6 files changed, 46 insertions(+), 22 deletions(-) diff --git a/Essentials/src/com/earth2me/essentials/Essentials.java b/Essentials/src/com/earth2me/essentials/Essentials.java index 4c39389ef..243971f07 100644 --- a/Essentials/src/com/earth2me/essentials/Essentials.java +++ b/Essentials/src/com/earth2me/essentials/Essentials.java @@ -27,6 +27,9 @@ import org.bukkit.command.CommandSender; import com.earth2me.essentials.commands.IEssentialsCommand; import com.earth2me.essentials.commands.NotEnoughArgumentsException; import com.earth2me.essentials.register.payment.Methods; +import com.earth2me.essentials.signs.SignBlockListener; +import com.earth2me.essentials.signs.SignEntityListener; +import com.earth2me.essentials.signs.SignPlayerListener; import java.math.BigInteger; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -185,9 +188,22 @@ public class Essentials extends JavaPlugin implements IEssentials pm.registerEvent(Type.PLAYER_ANIMATION, playerListener, Priority.High, this); final EssentialsBlockListener blockListener = new EssentialsBlockListener(this); - pm.registerEvent(Type.SIGN_CHANGE, blockListener, Priority.Low, this); - pm.registerEvent(Type.BLOCK_BREAK, blockListener, Priority.Lowest, this); + //pm.registerEvent(Type.SIGN_CHANGE, blockListener, Priority.Low, this); + //pm.registerEvent(Type.BLOCK_BREAK, blockListener, Priority.Lowest, this); pm.registerEvent(Type.BLOCK_PLACE, blockListener, Priority.Lowest, this); + + final SignBlockListener signBlockListener = new SignBlockListener(this); + pm.registerEvent(Type.SIGN_CHANGE, signBlockListener, Priority.Low, this); + pm.registerEvent(Type.BLOCK_PLACE, signBlockListener, Priority.Low, this); + pm.registerEvent(Type.BLOCK_BREAK, signBlockListener, Priority.Low, this); + pm.registerEvent(Type.BLOCK_IGNITE, signBlockListener, Priority.Low, this); + pm.registerEvent(Type.BLOCK_BURN, signBlockListener, Priority.Low, this); + + final SignPlayerListener signPlayerListener = new SignPlayerListener(this); + pm.registerEvent(Type.PLAYER_INTERACT, signPlayerListener, Priority.Low, this); + + final SignEntityListener signEntityListener = new SignEntityListener(this); + pm.registerEvent(Type.ENTITY_EXPLODE, signEntityListener, Priority.Low, this); final EssentialsEntityListener entityListener = new EssentialsEntityListener(this); pm.registerEvent(Type.ENTITY_DAMAGE, entityListener, Priority.Lowest, this); @@ -201,7 +217,7 @@ public class Essentials extends JavaPlugin implements IEssentials pm.registerEvent(Type.BLOCK_DAMAGE, jail, Priority.High, this); pm.registerEvent(Type.BLOCK_PLACE, jail, Priority.High, this); pm.registerEvent(Type.PLAYER_INTERACT, jailPlayerListener, Priority.High, this); - attachEcoListeners(); + //attachEcoListeners(); if (settings.isNetherEnabled() && getServer().getWorlds().size() < 2) { @@ -598,12 +614,12 @@ public class Essentials extends JavaPlugin implements IEssentials private void attachEcoListeners() { - PluginManager pm = getServer().getPluginManager(); - EssentialsEcoBlockListener ecoBlockListener = new EssentialsEcoBlockListener(this); - EssentialsEcoPlayerListener ecoPlayerListener = new EssentialsEcoPlayerListener(this); - pm.registerEvent(Type.PLAYER_INTERACT, ecoPlayerListener, Priority.High, this); - pm.registerEvent(Type.BLOCK_BREAK, ecoBlockListener, Priority.High, this); - pm.registerEvent(Type.SIGN_CHANGE, ecoBlockListener, Priority.Monitor, this); + //PluginManager pm = getServer().getPluginManager(); + //EssentialsEcoBlockListener ecoBlockListener = new EssentialsEcoBlockListener(this); + //EssentialsEcoPlayerListener ecoPlayerListener = new EssentialsEcoPlayerListener(this); + //pm.registerEvent(Type.PLAYER_INTERACT, ecoPlayerListener, Priority.High, this); + //pm.registerEvent(Type.BLOCK_BREAK, ecoBlockListener, Priority.High, this); + //pm.registerEvent(Type.SIGN_CHANGE, ecoBlockListener, Priority.Monitor, this); } public CraftScheduler getScheduler() diff --git a/Essentials/src/com/earth2me/essentials/EssentialsBlockListener.java b/Essentials/src/com/earth2me/essentials/EssentialsBlockListener.java index 64206dac0..b2e1d7d43 100644 --- a/Essentials/src/com/earth2me/essentials/EssentialsBlockListener.java +++ b/Essentials/src/com/earth2me/essentials/EssentialsBlockListener.java @@ -33,6 +33,7 @@ public class EssentialsBlockListener extends BlockListener } @Override + @Deprecated public void onBlockBreak(BlockBreakEvent event) { if (event.isCancelled()) @@ -63,6 +64,7 @@ public class EssentialsBlockListener extends BlockListener } @Override + @Deprecated public void onSignChange(SignChangeEvent event) { if (event.isCancelled()) @@ -231,7 +233,7 @@ public class EssentialsBlockListener extends BlockListener { return; } - Block signBlock = event.getBlockAgainst(); + /*Block signBlock = event.getBlockAgainst(); if (signBlock.getType() == Material.WALL_SIGN || signBlock.getType() == Material.SIGN_POST) { Sign sign = new CraftSign(signBlock); @@ -240,7 +242,7 @@ public class EssentialsBlockListener extends BlockListener event.setCancelled(true); return; } - } + }*/ final User user = ess.getUser(event.getPlayer()); // Do not rely on getItemInHand(); // http://leaky.bukkit.org/issues/663 @@ -320,7 +322,8 @@ public class EssentialsBlockListener extends BlockListener } } - public boolean hasAdjacentChest(Block block) + @Deprecated + private boolean hasAdjacentChest(Block block) { Block[] faces = getAdjacentBlocks(block); for (Block b : faces) @@ -337,6 +340,7 @@ public class EssentialsBlockListener extends BlockListener private static final int NOSIGN = 2; private static final int OWNER = 3; + @Deprecated private int checkProtectionSign(Block block, User user) { String username = user.getName().substring(0, user.getName().length() > 14 ? 14 : user.getName().length()); @@ -371,6 +375,7 @@ public class EssentialsBlockListener extends BlockListener return NOSIGN; } + @Deprecated private static Block[] getAdjacentBlocks(Block block) { return new Block[] @@ -384,7 +389,8 @@ public class EssentialsBlockListener extends BlockListener }; } - public boolean isBlockProtected(Block block, User user) + @Deprecated + private boolean isBlockProtected(Block block, User user) { Block[] faces = getAdjacentBlocks(block); boolean protect = false; @@ -421,7 +427,8 @@ public class EssentialsBlockListener extends BlockListener return protect; } - public static boolean isBlockProtected(Block block) + @Deprecated + private static boolean isBlockProtected(Block block) { Block[] faces = getAdjacentBlocks(block); for (Block b : faces) diff --git a/Essentials/src/com/earth2me/essentials/EssentialsEcoBlockListener.java b/Essentials/src/com/earth2me/essentials/EssentialsEcoBlockListener.java index 630b9b23d..bb12f8d4c 100644 --- a/Essentials/src/com/earth2me/essentials/EssentialsEcoBlockListener.java +++ b/Essentials/src/com/earth2me/essentials/EssentialsEcoBlockListener.java @@ -11,7 +11,7 @@ import org.bukkit.event.block.BlockListener; import org.bukkit.event.block.SignChangeEvent; import org.bukkit.inventory.ItemStack; - +@Deprecated public class EssentialsEcoBlockListener extends BlockListener { private final IEssentials ess; diff --git a/Essentials/src/com/earth2me/essentials/EssentialsEcoPlayerListener.java b/Essentials/src/com/earth2me/essentials/EssentialsEcoPlayerListener.java index f3e01bd83..72154c886 100644 --- a/Essentials/src/com/earth2me/essentials/EssentialsEcoPlayerListener.java +++ b/Essentials/src/com/earth2me/essentials/EssentialsEcoPlayerListener.java @@ -11,7 +11,7 @@ import org.bukkit.event.player.PlayerInteractEvent; import org.bukkit.event.player.PlayerListener; import org.bukkit.inventory.ItemStack; - +@Deprecated public class EssentialsEcoPlayerListener extends PlayerListener { private final IEssentials ess; diff --git a/Essentials/src/com/earth2me/essentials/EssentialsPlayerListener.java b/Essentials/src/com/earth2me/essentials/EssentialsPlayerListener.java index ace790c09..56a90dc44 100644 --- a/Essentials/src/com/earth2me/essentials/EssentialsPlayerListener.java +++ b/Essentials/src/com/earth2me/essentials/EssentialsPlayerListener.java @@ -357,7 +357,7 @@ public class EssentialsPlayerListener extends PlayerListener event.setCancelled(true); return; } - if (!ess.getSettings().areSignsDisabled() && EssentialsBlockListener.protectedBlocks.contains(event.getClickedBlock().getType())) + /*if (!ess.getSettings().areSignsDisabled() && EssentialsBlockListener.protectedBlocks.contains(event.getClickedBlock().getType())) { if (!user.isAuthorized("essentials.signs.protection.override")) { @@ -368,7 +368,7 @@ public class EssentialsPlayerListener extends PlayerListener return; } } - } + }*/ if (ess.getSettings().getBedSetsHome() && event.getClickedBlock().getType() == Material.BED_BLOCK) { @@ -383,7 +383,7 @@ public class EssentialsPlayerListener extends PlayerListener } - if (ess.getSettings().areSignsDisabled()) + /*if (ess.getSettings().areSignsDisabled()) { return; } @@ -517,9 +517,10 @@ public class EssentialsPlayerListener extends PlayerListener { logger.log(Level.WARNING, ex.getMessage(), ex); } - } + }*/ } + @Deprecated private Trade chargeUserForWarp(Sign sign, User user) throws Exception { if (!sign.getLine(3).isEmpty()) diff --git a/EssentialsProtect/src/com/earth2me/essentials/protect/EssentialsProtectEntityListener.java b/EssentialsProtect/src/com/earth2me/essentials/protect/EssentialsProtectEntityListener.java index 42a55c874..f44021bce 100644 --- a/EssentialsProtect/src/com/earth2me/essentials/protect/EssentialsProtectEntityListener.java +++ b/EssentialsProtect/src/com/earth2me/essentials/protect/EssentialsProtectEntityListener.java @@ -249,12 +249,12 @@ public class EssentialsProtectEntityListener extends EntityListener event.setCancelled(true); return; } - if (EssentialsBlockListener.protectedBlocks.contains(block.getType()) + /*if (EssentialsBlockListener.protectedBlocks.contains(block.getType()) && EssentialsBlockListener.isBlockProtected(block)) { event.setCancelled(true); return; - } + }*/ } } -- cgit v1.2.3 From fafd9b20a90ef237e193b73dab743690ee4d7dd3 Mon Sep 17 00:00:00 2001 From: snowleo Date: Sun, 26 Jun 2011 18:14:59 +0200 Subject: Renamed getInteger method name to getIntegerPositive. --- .../earth2me/essentials/signs/EssentialsSign.java | 24 +++++++++++++++------- .../com/earth2me/essentials/signs/SignTrade.java | 12 +++++------ 2 files changed, 23 insertions(+), 13 deletions(-) diff --git a/Essentials/src/com/earth2me/essentials/signs/EssentialsSign.java b/Essentials/src/com/earth2me/essentials/signs/EssentialsSign.java index 12966d668..f46f82e87 100644 --- a/Essentials/src/com/earth2me/essentials/signs/EssentialsSign.java +++ b/Essentials/src/com/earth2me/essentials/signs/EssentialsSign.java @@ -267,7 +267,7 @@ public class EssentialsSign { final ItemStack item = getItemStack(sign.getLine(itemIndex), 1); - final int amount = Math.min(getInteger(sign.getLine(amountIndex)), item.getType().getMaxStackSize() * player.getInventory().getSize()); + final int amount = Math.min(getIntegerPositive(sign.getLine(amountIndex)), item.getType().getMaxStackSize() * player.getInventory().getSize()); if (item.getTypeId() == 0 || amount < 1) { throw new SignException(Util.i18n("moreThanZero")); @@ -283,19 +283,26 @@ public class EssentialsSign { throw new SignException("Empty line " + index); } - final int quantity = getInteger(line); + final int quantity = getIntegerPositive(line); sign.setLine(index, Integer.toString(quantity)); } + protected final int getIntegerPositive(final String line) throws SignException + { + final int quantity = getInteger(line); + if (quantity <= 1) + { + throw new SignException(Util.i18n("moreThanZero")); + } + return quantity; + } + protected final int getInteger(final String line) throws SignException { try { final int quantity = Integer.parseInt(line); - if (quantity <= 1) - { - throw new SignException(Util.i18n("moreThanZero")); - } + return quantity; } catch (NumberFormatException ex) @@ -362,7 +369,7 @@ public class EssentialsSign { throw new SignException(Util.i18n("invalidCharge")); } - final int quantity = getInteger(split[0]); + final int quantity = getIntegerPositive(split[0]); final String item = split[1].toLowerCase(); if (item.equalsIgnoreCase("times")) @@ -380,6 +387,9 @@ public class EssentialsSign else { return new Trade(money, ess); + + + } } diff --git a/Essentials/src/com/earth2me/essentials/signs/SignTrade.java b/Essentials/src/com/earth2me/essentials/signs/SignTrade.java index c8a0d4d0d..5a0354afa 100644 --- a/Essentials/src/com/earth2me/essentials/signs/SignTrade.java +++ b/Essentials/src/com/earth2me/essentials/signs/SignTrade.java @@ -98,7 +98,7 @@ public class SignTrade extends EssentialsSign if (split.length == 2 && !amountNeeded) { - final int amount = getInteger(split[0]); + final int amount = getIntegerPositive(split[0]); final ItemStack item = getItemStack(split[1], amount); if (amount < 1 || item.getTypeId() == 0) { @@ -110,9 +110,9 @@ public class SignTrade extends EssentialsSign if (split.length == 3 && amountNeeded) { - final int stackamount = getInteger(split[0]); + final int stackamount = getIntegerPositive(split[0]); final ItemStack item = getItemStack(split[1], stackamount); - int amount = getInteger(split[2]); + int amount = getIntegerPositive(split[2]); amount -= amount % stackamount; if (amount < 1 || stackamount < 1 || item.getTypeId() == 0) { @@ -145,9 +145,9 @@ public class SignTrade extends EssentialsSign if (split.length == 3) { - final int stackamount = getInteger(split[0]); + final int stackamount = getIntegerPositive(split[0]); final ItemStack item = getItemStack(split[1], stackamount); - int amount = getInteger(split[2]); + int amount = getIntegerPositive(split[2]); amount -= amount % stackamount; if (amount < 1 || stackamount < 1 || item.getTypeId() == 0) { @@ -209,7 +209,7 @@ public class SignTrade extends EssentialsSign if (split.length == 3) { - final int stackamount = getInteger(split[0]); + final int stackamount = getIntegerPositive(split[0]); final ItemStack item = getItemStack(split[1], stackamount); int amount = getInteger(split[2]); sign.setLine(index, stackamount + " " + split[1] + ":" + (amount + Math.round(value))); -- cgit v1.2.3 From 1c11ab0957e2132528dd4ad69564217345fa8cfe Mon Sep 17 00:00:00 2001 From: snowleo Date: Sun, 26 Jun 2011 18:15:20 +0200 Subject: Fix Mop spawning --- Essentials/src/com/earth2me/essentials/Mob.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Essentials/src/com/earth2me/essentials/Mob.java b/Essentials/src/com/earth2me/essentials/Mob.java index 3c16ae01a..c7b0ca320 100644 --- a/Essentials/src/com/earth2me/essentials/Mob.java +++ b/Essentials/src/com/earth2me/essentials/Mob.java @@ -84,7 +84,7 @@ public enum Mob { try { - return player.getWorld().spawn(player.getLocation(), (Class)ClassLoader.getSystemClassLoader().loadClass("net.minecraft.server.Entity" + entityClass)); + return player.getWorld().spawn(player.getLocation(), (Class)ClassLoader.getSystemClassLoader().loadClass("org.bukkit.craftbukkit.entity.Craft" + craftClass)); //WorldServer world = ((org.bukkit.craftbukkit.CraftWorld)player.getWorld()).getHandle(); //Constructor craft = (Constructor)ClassLoader.getSystemClassLoader().loadClass("org.bukkit.craftbukkit.entity.Craft" + craftClass).getConstructors()[0]; //Constructor entity = (Constructor)ClassLoader.getSystemClassLoader().loadClass("net.minecraft.server.Entity" + entityClass).getConstructors()[0]; -- cgit v1.2.3 From 8f32d66e0301fe2d6d8903edf972dc8ddf146db0 Mon Sep 17 00:00:00 2001 From: snowleo Date: Mon, 27 Jun 2011 11:46:57 +0200 Subject: Another fix to /spawnmob --- Essentials/src/com/earth2me/essentials/Mob.java | 102 ++++++++------------- .../essentials/commands/Commandspawnmob.java | 38 +++----- 2 files changed, 50 insertions(+), 90 deletions(-) diff --git a/Essentials/src/com/earth2me/essentials/Mob.java b/Essentials/src/com/earth2me/essentials/Mob.java index c7b0ca320..f5e1aea3d 100644 --- a/Essentials/src/com/earth2me/essentials/Mob.java +++ b/Essentials/src/com/earth2me/essentials/Mob.java @@ -4,68 +4,52 @@ import java.util.HashMap; import java.util.Map; import java.util.logging.Level; import java.util.logging.Logger; +import org.bukkit.Location; import org.bukkit.Server; -import org.bukkit.entity.Entity; +import org.bukkit.entity.CreatureType; +import org.bukkit.entity.LivingEntity; import org.bukkit.entity.Player; public enum Mob { - CHICKEN("Chicken", Enemies.FRIENDLY), - COW("Cow", Enemies.FRIENDLY), - CREEPER("Creeper", Enemies.ENEMY), - GHAST("Ghast", Enemies.ENEMY), - GIANT("Giant", "GiantZombie", Enemies.ENEMY), - PIG("Pig", Enemies.FRIENDLY), - PIGZOMB("PigZombie", Enemies.NEUTRAL), - SHEEP("Sheep", Enemies.FRIENDLY, ""), - SKELETON("Skeleton", Enemies.ENEMY), - SLIME("Slime", Enemies.ENEMY), - SPIDER("Spider", Enemies.ENEMY), - SQUID("Squid", Enemies.FRIENDLY), - ZOMBIE("Zombie", Enemies.ENEMY), - MONSTER("Monster", Enemies.ENEMY), - WOLF("Wolf", Enemies.NEUTRAL); + CHICKEN("Chicken", Enemies.FRIENDLY, CreatureType.CHICKEN), + COW("Cow", Enemies.FRIENDLY, CreatureType.COW), + CREEPER("Creeper", Enemies.ENEMY, CreatureType.CREEPER), + GHAST("Ghast", Enemies.ENEMY, CreatureType.GHAST), + GIANT("Giant", Enemies.ENEMY, CreatureType.GIANT), + PIG("Pig", Enemies.FRIENDLY, CreatureType.PIG), + PIGZOMB("PigZombie", Enemies.NEUTRAL, CreatureType.PIG_ZOMBIE), + SHEEP("Sheep", Enemies.FRIENDLY, "", CreatureType.SHEEP), + SKELETON("Skeleton", Enemies.ENEMY, CreatureType.SKELETON), + SLIME("Slime", Enemies.ENEMY, CreatureType.SLIME), + SPIDER("Spider", Enemies.ENEMY, CreatureType.SPIDER), + SQUID("Squid", Enemies.FRIENDLY, CreatureType.SQUID), + ZOMBIE("Zombie", Enemies.ENEMY, CreatureType.ZOMBIE), + MONSTER("Monster", Enemies.ENEMY, CreatureType.MONSTER), + WOLF("Wolf", Enemies.NEUTRAL, CreatureType.WOLF); public static final Logger logger = Logger.getLogger("Minecraft"); - private Mob(String n, Enemies en, String s) + private Mob(String n, Enemies en, String s, CreatureType type) { - this.s = s; + this.suffix = s; this.name = n; - this.craftClass = n; - this.entityClass = n; this.type = en; + this.bukkitType = type; } - private Mob(String n, Enemies en) + private Mob(String n, Enemies en, CreatureType type) { this.name = n; - this.craftClass = n; - this.entityClass = n; this.type = en; + this.bukkitType = type; } - private Mob(String n, String ec, Enemies en) - { - this.name = n; - this.craftClass = n; - this.entityClass = ec; - this.type = en; - } - - private Mob(String n, String ec, String cc, Enemies en) - { - this.name = n; - this.entityClass = ec; - this.craftClass = cc; - this.type = en; - } - public String s = "s"; - public String name; - public Enemies type; - private String entityClass; - private String craftClass; + public String suffix = "s"; + final public String name; + final public Enemies type; + final private CreatureType bukkitType; private static final Map hashMap = new HashMap(); static @@ -76,25 +60,16 @@ public enum Mob } } - @SuppressWarnings( - { - "unchecked", "CallToThreadDumpStack" - }) - public Entity spawn(Player player, Server server) throws MobException + public LivingEntity spawn(final Player player, final Server server, final Location loc) throws MobException { - try - { - return player.getWorld().spawn(player.getLocation(), (Class)ClassLoader.getSystemClassLoader().loadClass("org.bukkit.craftbukkit.entity.Craft" + craftClass)); - //WorldServer world = ((org.bukkit.craftbukkit.CraftWorld)player.getWorld()).getHandle(); - //Constructor craft = (Constructor)ClassLoader.getSystemClassLoader().loadClass("org.bukkit.craftbukkit.entity.Craft" + craftClass).getConstructors()[0]; - //Constructor entity = (Constructor)ClassLoader.getSystemClassLoader().loadClass("net.minecraft.server.Entity" + entityClass).getConstructors()[0]; - //return craft.newInstance((CraftServer)server, entity.newInstance(world)); - } - catch (Exception ex) + + final LivingEntity entity = player.getWorld().spawnCreature(loc, this.bukkitType); + if (entity == null) { - logger.log(Level.WARNING, Util.i18n("unableToSpawnMob"), ex); - throw new MobException(ex); + logger.log(Level.WARNING, Util.i18n("unableToSpawnMob")); + throw new MobException(); } + return entity; } @@ -104,22 +79,17 @@ public enum Mob NEUTRAL("neutral"), ENEMY("enemy"); - private Enemies(String t) + private Enemies(final String t) { this.type = t; } - protected String type; + final protected String type; } public static class MobException extends Exception { private static final long serialVersionUID = 1L; - - private MobException(Exception ex) - { - super(ex); - } } public static Mob fromName(String n) diff --git a/Essentials/src/com/earth2me/essentials/commands/Commandspawnmob.java b/Essentials/src/com/earth2me/essentials/commands/Commandspawnmob.java index 47edc831e..0f0b838b4 100644 --- a/Essentials/src/com/earth2me/essentials/commands/Commandspawnmob.java +++ b/Essentials/src/com/earth2me/essentials/commands/Commandspawnmob.java @@ -73,16 +73,6 @@ public class Commandspawnmob extends EssentialsCommand return; } charge(user); - WorldServer world = ((CraftWorld)user.getWorld()).getHandle(); - try - { - spawnedMob = mob.spawn(user, server); - } - catch (MobException e) - { - user.sendMessage(Util.i18n("unableToSpawnMob")); - return; - } int[] ignore = { 8, 9 @@ -95,8 +85,16 @@ public class Commandspawnmob extends EssentialsCommand loc.setY(loc.getY() + 1); block = user.getWorld().getBlockAt(loc); } - spawnedMob.teleport(loc); - //world.addEntity((CraftEntity)spawnedMob).getHandle()); + + try + { + spawnedMob = mob.spawn(user, server, loc); + } + catch (MobException e) + { + user.sendMessage(Util.i18n("unableToSpawnMob")); + return; + } if (mountType != null) { @@ -108,17 +106,14 @@ public class Commandspawnmob extends EssentialsCommand } try { - spawnedMount = mobMount.spawn(user, server); + spawnedMount = mobMount.spawn(user, server, loc); } catch (MobException e) { user.sendMessage(Util.i18n("unableToSpawnMob")); return; } - spawnedMount.teleport(spawnedMob); spawnedMob.setPassenger(spawnedMount); - //spawnedMount.getHandle().setPassengerOf(spawnedMob.getHandle()); - //world.addEntity(spawnedMount.getHandle()); } if (mobData != null) { @@ -142,24 +137,19 @@ public class Commandspawnmob extends EssentialsCommand { for (int i = 1; i < mobCount; i++) { - spawnedMob = mob.spawn(user, server); - spawnedMob.teleport(loc); - //world.addEntity(spawnedMob.getHandle()); + spawnedMob = mob.spawn(user, server, loc); if (mobMount != null) { try { - spawnedMount = mobMount.spawn(user, server); + spawnedMount = mobMount.spawn(user, server, loc); } catch (MobException e) { user.sendMessage(Util.i18n("unableToSpawnMob")); return; } - spawnedMount.teleport(spawnedMob); spawnedMob.setPassenger(spawnedMount); - //spawnedMount.getHandle().setPassengerOf(spawnedMob.getHandle()); - //world.addEntity(spawnedMount.getHandle()); } if (mobData != null) { @@ -170,7 +160,7 @@ public class Commandspawnmob extends EssentialsCommand changeMobData(mobMount.name, spawnedMount, mountData, user); } } - user.sendMessage(args[1] + " " + mob.name.toLowerCase() + mob.s + Util.i18n("spawned")); + user.sendMessage(args[1] + " " + mob.name.toLowerCase() + mob.suffix + Util.i18n("spawned")); } catch (MobException e1) { -- cgit v1.2.3 From ce6d5596aa002a55fafc67af459b21baaa5d8b11 Mon Sep 17 00:00:00 2001 From: ementalo Date: Tue, 28 Jun 2011 09:29:40 +0100 Subject: move socialspy handler to commandpreprocess --- .../src/com/earth2me/essentials/Essentials.java | 19 ++----------------- .../essentials/EssentialsPlayerListener.java | 22 +++++++++++++++++++--- 2 files changed, 21 insertions(+), 20 deletions(-) diff --git a/Essentials/src/com/earth2me/essentials/Essentials.java b/Essentials/src/com/earth2me/essentials/Essentials.java index 243971f07..c44e0480a 100644 --- a/Essentials/src/com/earth2me/essentials/Essentials.java +++ b/Essentials/src/com/earth2me/essentials/Essentials.java @@ -176,6 +176,7 @@ public class Essentials extends JavaPlugin implements IEssentials pm.registerEvent(Type.PLAYER_JOIN, playerListener, Priority.Monitor, this); pm.registerEvent(Type.PLAYER_QUIT, playerListener, Priority.Monitor, this); pm.registerEvent(Type.PLAYER_CHAT, playerListener, Priority.Lowest, this); + pm.registerEvent(Type.PLAYER_COMMAND_PREPROCESS, playerListener, Priority.Lowest, this); if (getSettings().getNetherPortalsEnabled()) { pm.registerEvent(Type.PLAYER_MOVE, playerListener, Priority.High, this); @@ -375,23 +376,7 @@ public class Essentials extends JavaPlugin implements IEssentials } public boolean onCommandEssentials(CommandSender sender, Command command, String commandLabel, String[] args, ClassLoader classLoader, String commandPath, String permissionPrefix) - { - if (("msg".equals(commandLabel.toLowerCase()) || "r".equals(commandLabel.toLowerCase()) || "mail".equals(commandLabel.toLowerCase())) && sender instanceof Player) - { - StringBuilder str = new StringBuilder(); - str.append(commandLabel).append(" "); - for (String a : args) - { - str.append(a).append(" "); - } - for (Player player : getServer().getOnlinePlayers()) - { - if (getUser(player).isSocialSpyEnabled()) - { - player.sendMessage(getUser(sender).getDisplayName() + " : " + str); - } - } - } + { // Allow plugins to override the command via onCommand if (!getSettings().isCommandOverridden(command.getName()) && !commandLabel.startsWith("e")) { diff --git a/Essentials/src/com/earth2me/essentials/EssentialsPlayerListener.java b/Essentials/src/com/earth2me/essentials/EssentialsPlayerListener.java index 56a90dc44..044560bfe 100644 --- a/Essentials/src/com/earth2me/essentials/EssentialsPlayerListener.java +++ b/Essentials/src/com/earth2me/essentials/EssentialsPlayerListener.java @@ -4,21 +4,19 @@ import java.util.Iterator; import java.util.List; import java.util.logging.Level; import java.util.logging.Logger; -import net.minecraft.server.InventoryPlayer; import org.bukkit.Location; import org.bukkit.Material; import org.bukkit.Server; import org.bukkit.World; import org.bukkit.block.Block; import org.bukkit.block.Sign; -import org.bukkit.craftbukkit.block.CraftSign; -import org.bukkit.craftbukkit.inventory.CraftInventoryPlayer; import org.bukkit.entity.Player; import org.bukkit.event.block.Action; import org.bukkit.event.player.PlayerAnimationEvent; import org.bukkit.event.player.PlayerAnimationType; import org.bukkit.event.player.PlayerBucketEmptyEvent; import org.bukkit.event.player.PlayerChatEvent; +import org.bukkit.event.player.PlayerCommandPreprocessEvent; import org.bukkit.event.player.PlayerEggThrowEvent; import org.bukkit.event.player.PlayerInteractEvent; import org.bukkit.event.player.PlayerJoinEvent; @@ -614,4 +612,22 @@ public class EssentialsPlayerListener extends PlayerListener user.getServer().dispatchCommand(user, command); } } + + @Override + public void onPlayerCommandPreprocess(PlayerCommandPreprocessEvent event) + { + if (event.isCancelled()) return; + Player commandUser = event.getPlayer(); + String cmd = event.getMessage().toLowerCase(); + if (("msg".equals(cmd) || "r".equals(cmd) || "mail".equals(cmd))) + { + for (Player player : ess.getServer().getOnlinePlayers()) + { + if (ess.getUser(player).isSocialSpyEnabled()) + { + player.sendMessage(ess.getUser(commandUser).getDisplayName() + " : " + cmd); + } + } + } + } } -- cgit v1.2.3 From 48e0073b314fe7200364d38c3d621002999c981f Mon Sep 17 00:00:00 2001 From: ementalo Date: Tue, 28 Jun 2011 10:10:29 +0100 Subject: admin can set others homes. needs "essentials.sethome.others" permission --- .../essentials/commands/Commandsethome.java | 24 ++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/Essentials/src/com/earth2me/essentials/commands/Commandsethome.java b/Essentials/src/com/earth2me/essentials/commands/Commandsethome.java index fcd451dd4..531bcc26b 100644 --- a/Essentials/src/com/earth2me/essentials/commands/Commandsethome.java +++ b/Essentials/src/com/earth2me/essentials/commands/Commandsethome.java @@ -11,12 +11,28 @@ public class Commandsethome extends EssentialsCommand { super("sethome"); } - + @Override public void run(Server server, User user, String commandLabel, String[] args) throws Exception { - user.setHome(args.length > 0 && args[0].equalsIgnoreCase("default")); - charge(user); - user.sendMessage(Util.i18n("homeSet")); + if (args.length > 0) + { + if (args.length < 2) + { + user.setHome(args[0].equalsIgnoreCase("default")); + } + else + { + if (user.isAuthorized("essentials.sethome.others")) + { + User usersHome = ess.getUser(ess.getServer().getPlayer(args[0])); + usersHome.setHome(args[1].equalsIgnoreCase("default")); + } + } + charge(user); + user.sendMessage(Util.i18n("homeSet")); + } + + } } -- cgit v1.2.3 From c530030e5d051b1e9c507d40bd2f1a0a4f344fc5 Mon Sep 17 00:00:00 2001 From: ementalo Date: Tue, 28 Jun 2011 10:13:18 +0100 Subject: sethome for others, missed from commit --- .../src/com/earth2me/essentials/commands/Commandsethome.java | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/Essentials/src/com/earth2me/essentials/commands/Commandsethome.java b/Essentials/src/com/earth2me/essentials/commands/Commandsethome.java index 531bcc26b..690214b22 100644 --- a/Essentials/src/com/earth2me/essentials/commands/Commandsethome.java +++ b/Essentials/src/com/earth2me/essentials/commands/Commandsethome.java @@ -29,10 +29,13 @@ public class Commandsethome extends EssentialsCommand usersHome.setHome(args[1].equalsIgnoreCase("default")); } } - charge(user); - user.sendMessage(Util.i18n("homeSet")); } - - + else + { + user.setHome(false); + } + charge(user); + user.sendMessage(Util.i18n("homeSet")); + } } -- cgit v1.2.3 From 2aa88d05cf3e21d08c20b2e28dec04f14f97b10b Mon Sep 17 00:00:00 2001 From: ementalo Date: Tue, 28 Jun 2011 23:32:30 +0100 Subject: Updating for huge renames in #939 --- .../src/com/earth2me/essentials/Essentials.java | 2 +- .../earth2me/essentials/TNTExplodeListener.java | 2 +- .../essentials/commands/Commandspawnmob.java | 6 +++--- .../protect/EssentialsProtectEntityListener.java | 2 +- lib/bukkit-0.0.1-SNAPSHOT.jar | Bin 2680810 -> 2691058 bytes lib/craftbukkit-0.0.1-SNAPSHOT.jar | Bin 7673648 -> 7683430 bytes 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/Essentials/src/com/earth2me/essentials/Essentials.java b/Essentials/src/com/earth2me/essentials/Essentials.java index c44e0480a..c329e3b20 100644 --- a/Essentials/src/com/earth2me/essentials/Essentials.java +++ b/Essentials/src/com/earth2me/essentials/Essentials.java @@ -46,7 +46,7 @@ import org.bukkit.plugin.java.*; public class Essentials extends JavaPlugin implements IEssentials { public static final String AUTHORS = "Zenexer, ementalo, Aelux, Brettflan, KimKandor, snowleo, ceulemans and Xeology"; - public static final int minBukkitBuildVersion = 928; + public static final int minBukkitBuildVersion = 939; private static final Logger logger = Logger.getLogger("Minecraft"); private Settings settings; private TNTExplodeListener tntListener; diff --git a/Essentials/src/com/earth2me/essentials/TNTExplodeListener.java b/Essentials/src/com/earth2me/essentials/TNTExplodeListener.java index 0b7c136c7..bdd453266 100644 --- a/Essentials/src/com/earth2me/essentials/TNTExplodeListener.java +++ b/Essentials/src/com/earth2me/essentials/TNTExplodeListener.java @@ -71,7 +71,7 @@ public class TNTExplodeListener extends EntityListener implements Runnable set.add(cp); } } - ((CraftServer)ess.getServer()).getHandle().a(loc.getX(), loc.getY(), loc.getZ(), 64.0, ((CraftWorld)loc.getWorld()).getHandle().worldProvider.dimension, new Packet60Explosion(loc.getX(), loc.getY(), loc.getZ(), 3.0F, set)); + ((CraftServer)ess.getServer()).getHandle().sendPacketNearby(loc.getX(), loc.getY(), loc.getZ(), 64.0, ((CraftWorld)loc.getWorld()).getHandle().worldProvider.dimension, new Packet60Explosion(loc.getX(), loc.getY(), loc.getZ(), 3.0F, set)); event.setCancelled(true); } diff --git a/Essentials/src/com/earth2me/essentials/commands/Commandspawnmob.java b/Essentials/src/com/earth2me/essentials/commands/Commandspawnmob.java index 0f0b838b4..36beaad5d 100644 --- a/Essentials/src/com/earth2me/essentials/commands/Commandspawnmob.java +++ b/Essentials/src/com/earth2me/essentials/commands/Commandspawnmob.java @@ -213,11 +213,11 @@ public class Commandspawnmob extends EssentialsCommand if ("Wolf".equalsIgnoreCase(type) && data.equalsIgnoreCase("tamed")) { EntityWolf wolf = ((CraftWolf)spawned).getHandle(); - wolf.d(true); - wolf.a((PathEntity)null); + wolf.setTamed(true); + wolf.setPathEntity((PathEntity)null); wolf.setSitting(true); wolf.health = 20; - wolf.a(user.getName()); + wolf.setOwnerName(user.getName()); wolf.world.a(wolf, (byte)7); } if ("Wolf".equalsIgnoreCase(type) && data.equalsIgnoreCase("angry")) diff --git a/EssentialsProtect/src/com/earth2me/essentials/protect/EssentialsProtectEntityListener.java b/EssentialsProtect/src/com/earth2me/essentials/protect/EssentialsProtectEntityListener.java index f44021bce..f93475337 100644 --- a/EssentialsProtect/src/com/earth2me/essentials/protect/EssentialsProtectEntityListener.java +++ b/EssentialsProtect/src/com/earth2me/essentials/protect/EssentialsProtectEntityListener.java @@ -215,7 +215,7 @@ public class EssentialsProtectEntityListener extends EntityListener } } - ((CraftServer)ess.getServer()).getHandle().a(loc.getX(), loc.getY(), loc.getZ(), 64.0D, ((CraftWorld)loc.getWorld()).getHandle().worldProvider.dimension, + ((CraftServer)ess.getServer()).getHandle().sendPacketNearby(loc.getX(), loc.getY(), loc.getZ(), 64.0D, ((CraftWorld)loc.getWorld()).getHandle().worldProvider.dimension, new Packet60Explosion(loc.getX(), loc.getY(), loc.getZ(), 3.0f, set)); event.setCancelled(true); return; diff --git a/lib/bukkit-0.0.1-SNAPSHOT.jar b/lib/bukkit-0.0.1-SNAPSHOT.jar index 955d97e7e..32c122305 100644 Binary files a/lib/bukkit-0.0.1-SNAPSHOT.jar and b/lib/bukkit-0.0.1-SNAPSHOT.jar differ diff --git a/lib/craftbukkit-0.0.1-SNAPSHOT.jar b/lib/craftbukkit-0.0.1-SNAPSHOT.jar index 4bc5c9043..1de0f1621 100644 Binary files a/lib/craftbukkit-0.0.1-SNAPSHOT.jar and b/lib/craftbukkit-0.0.1-SNAPSHOT.jar differ -- cgit v1.2.3 From 016defd0437c5986a149610ee37b69cc03f87b40 Mon Sep 17 00:00:00 2001 From: KHobbits Date: Wed, 29 Jun 2011 02:33:11 -0700 Subject: Query: - does essentials.back.ondeath work without essentials.back, and vice versa? - should we swap signs.protection.override? to signs.override.protection? --- EssentialsGroupManager/src/groups.yml | 41 ++++++++++++++++++++--------------- 1 file changed, 24 insertions(+), 17 deletions(-) diff --git a/EssentialsGroupManager/src/groups.yml b/EssentialsGroupManager/src/groups.yml index 20434f45b..97cb0f271 100644 --- a/EssentialsGroupManager/src/groups.yml +++ b/EssentialsGroupManager/src/groups.yml @@ -18,13 +18,18 @@ groups: permissions: - -groupmanager.mantogglesave - essentials + - essentials.antioch + - essentials.burn - essentials.clearinventory - essentials.cooldown.bypass - essentials.deljail + - essentials.fireball + - essentials.gc - essentials.give - essentials.god - essentials.heal - essentials.heal.others + - essentials.lightning - essentials.invsee - essentials.item - essentials.jails @@ -33,13 +38,12 @@ groups: - essentials.mute - essentials.sell - essentials.setjail - - essentials.signs.protection.override + - essentials.signs.* - essentials.spawnmob - essentials.teleport.cooldown.bypass - essentials.teleport.timer.bypass - essentials.togglejail - groupmanager.* - - essentials.burn inheritance: - moderator info: @@ -55,6 +59,7 @@ groups: - essentials.chat.shout - essentials.compass - essentials.home + - essentials.depth - essentials.kit - essentials.kit.tools - essentials.mail @@ -64,20 +69,18 @@ groups: - essentials.nick - essentials.pay - essentials.portal + - essentials.powertool - essentials.protect - essentials.sethome - - essentials.signs.buy.use - - essentials.signs.disposal.create - - essentials.signs.disposal.use - - essentials.signs.free.use - - essentials.signs.heal.use - - essentials.signs.mail.create - - essentials.signs.mail.use - - essentials.signs.protection.create - - essentials.signs.protection.use - - essentials.signs.sell.use - - essentials.signs.trade.create - - essentials.signs.trade.use + - essentials.signs.use.* + - essentials.signs.create.disposal + - essentials.signs.create.mail + - essentials.signs.create.protection + - essentials.signs.create.trade + - essentials.signs.break.disposal + - essentials.signs.break.mail + - essentials.signs.break.protection + - essentials.signs.break.trade - essentials.suicide - essentials.tpa - essentials.tpaccept @@ -100,14 +103,19 @@ groups: - essentials.banip - essentials.broadcast - essentials.delwarp - - essentials.depth - essentials.eco + - essentials.ext - essentials.getpos - essentials.jump - essentials.kick - essentials.kill - essentials.setwarp + - essentials.signs.create.* + - essentials.signs.break.* + - essentials.spawner + - essentials.thunder - essentials.time + - essentials.time.world - essentials.togglejail - essentials.top - essentials.tp @@ -118,6 +126,7 @@ groups: - essentials.tptoggle - essentials.unban - essentials.unbanip + - essentials.weather - essentials.whois - essentials.world - groupmanager.listgroups @@ -128,7 +137,6 @@ groups: - groupmanager.manselect - groupmanager.manuadd - groupmanager.manudel - - essentials.ext inheritance: - builder info: @@ -139,7 +147,6 @@ groups: default: false permissions: - '*' - - -essentials.protect.damage.* inheritance: - semiadmin info: -- cgit v1.2.3 From 0f87670991f9c5cb977d59bffc9f1427601534ed Mon Sep 17 00:00:00 2001 From: snowleo Date: Thu, 30 Jun 2011 18:43:23 +0200 Subject: CB #946 B #750 --- lib/bukkit-0.0.1-SNAPSHOT.jar | Bin 2691058 -> 2695176 bytes lib/craftbukkit-0.0.1-SNAPSHOT.jar | Bin 7683430 -> 7701825 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/lib/bukkit-0.0.1-SNAPSHOT.jar b/lib/bukkit-0.0.1-SNAPSHOT.jar index 32c122305..2423740a8 100644 Binary files a/lib/bukkit-0.0.1-SNAPSHOT.jar and b/lib/bukkit-0.0.1-SNAPSHOT.jar differ diff --git a/lib/craftbukkit-0.0.1-SNAPSHOT.jar b/lib/craftbukkit-0.0.1-SNAPSHOT.jar index 1de0f1621..d7286e059 100644 Binary files a/lib/craftbukkit-0.0.1-SNAPSHOT.jar and b/lib/craftbukkit-0.0.1-SNAPSHOT.jar differ -- cgit v1.2.3 From a720bf33ce1e51ab8d8b9a83774aafd3c2abf41d Mon Sep 17 00:00:00 2001 From: snowleo Date: Thu, 30 Jun 2011 19:16:50 +0200 Subject: Updated items.csv --- Essentials/src/items.csv | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/Essentials/src/items.csv b/Essentials/src/items.csv index 845170a00..0c814fb81 100644 --- a/Essentials/src/items.csv +++ b/Essentials/src/items.csv @@ -447,6 +447,10 @@ detecttrack,28,0 detectrail,28,0 dtrack,28,0 drail,28,0 +pistonstickybase,29,0 +stickypiston,29,0 +stickyp,29,0 +psticky,29,0 spiderweb,30,0 sweb,30,0 web,30,0 @@ -466,6 +470,10 @@ deadshrub,32,0 shrubdead,32,0 dshrub,32,0 shrubd,32,0 +pistonbase,33,0 +piston,33,0 +pistonextension,34,0 +pistonext,34,0 whitecloth,35,0 whitewool,35,0 whitecotton,35,0 @@ -595,6 +603,9 @@ blackcotton,35,15 blacloth,35,15 blawool,35,15 blacotton,35,15 +pistonmovingpiece,36,0 +pistonmp,36,0 +ppusher,36,0 yellowflower,37,0 yflower,37,0 flower,37,0 @@ -1957,6 +1968,7 @@ diode,356,0 cookie,357,0 map,358,0 chart,358,0 +shears,359,0 goldmusicrecord,2256,0 goldmusicdisk,2256,0 goldmusiccd,2256,0 -- cgit v1.2.3 From 995f18bb0f051c24ac7fdbf19a57729f06e48973 Mon Sep 17 00:00:00 2001 From: snowleo Date: Thu, 30 Jun 2011 22:50:22 +0200 Subject: Fix: Blocks can't be broken. --- Essentials/src/com/earth2me/essentials/signs/EssentialsSign.java | 6 +++--- Essentials/src/com/earth2me/essentials/signs/SignBlockListener.java | 5 +++++ 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/Essentials/src/com/earth2me/essentials/signs/EssentialsSign.java b/Essentials/src/com/earth2me/essentials/signs/EssentialsSign.java index f46f82e87..ecd2aedb4 100644 --- a/Essentials/src/com/earth2me/essentials/signs/EssentialsSign.java +++ b/Essentials/src/com/earth2me/essentials/signs/EssentialsSign.java @@ -194,7 +194,7 @@ public class EssentialsSign { if (block.getFace(BlockFace.UP).getType() == Material.SIGN_POST) { - return false; + return true; } final BlockFace[] directions = new BlockFace[] { @@ -211,11 +211,11 @@ public class EssentialsSign final org.bukkit.material.Sign sign = (org.bukkit.material.Sign)signblock.getState().getData(); if (sign.getFacing() == blockFace) { - return false; + return true; } } } - return true; + return false; } protected boolean onBlockPlace(final Block block, final User player, final String username, final IEssentials ess) throws SignException, ChargeException diff --git a/Essentials/src/com/earth2me/essentials/signs/SignBlockListener.java b/Essentials/src/com/earth2me/essentials/signs/SignBlockListener.java index b7a47de14..2212bb104 100644 --- a/Essentials/src/com/earth2me/essentials/signs/SignBlockListener.java +++ b/Essentials/src/com/earth2me/essentials/signs/SignBlockListener.java @@ -1,6 +1,8 @@ package com.earth2me.essentials.signs; import com.earth2me.essentials.IEssentials; +import java.util.logging.Level; +import java.util.logging.Logger; import org.bukkit.Material; import org.bukkit.block.Block; import org.bukkit.block.Sign; @@ -17,6 +19,7 @@ import org.bukkit.event.block.SignChangeEvent; public class SignBlockListener extends BlockListener { private final transient IEssentials ess; + private final static Logger LOGGER = Logger.getLogger("Minecraft"); public SignBlockListener(IEssentials ess) { @@ -58,6 +61,7 @@ public class SignBlockListener extends BlockListener // prevent any signs be broken by destroying the block they are attached to if (EssentialsSign.checkIfBlockBreaksSigns(block)) { + LOGGER.log(Level.INFO, "Prevented that a block was broken next to a sign."); return true; } for (Signs signs : Signs.values()) @@ -66,6 +70,7 @@ public class SignBlockListener extends BlockListener if (sign.getBlocks().contains(block.getType()) && !sign.onBlockBreak(block, player, ess)) { + LOGGER.log(Level.INFO, "A block was protected by a sign."); return true; } } -- cgit v1.2.3 From 60235d0da4802f881a753f6d19181dcd4f476a27 Mon Sep 17 00:00:00 2001 From: snowleo Date: Thu, 30 Jun 2011 22:55:00 +0200 Subject: Only act on right click, otherwise signs can't be destroyed. --- Essentials/src/com/earth2me/essentials/signs/SignPlayerListener.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/Essentials/src/com/earth2me/essentials/signs/SignPlayerListener.java b/Essentials/src/com/earth2me/essentials/signs/SignPlayerListener.java index ba94868af..96ff3eace 100644 --- a/Essentials/src/com/earth2me/essentials/signs/SignPlayerListener.java +++ b/Essentials/src/com/earth2me/essentials/signs/SignPlayerListener.java @@ -5,6 +5,7 @@ import org.bukkit.Material; import org.bukkit.block.Block; import org.bukkit.block.Sign; import org.bukkit.craftbukkit.block.CraftSign; +import org.bukkit.event.block.Action; import org.bukkit.event.player.PlayerInteractEvent; import org.bukkit.event.player.PlayerListener; @@ -30,6 +31,10 @@ public class SignPlayerListener extends PlayerListener final int mat = block.getTypeId(); if (mat == Material.SIGN_POST.getId() || mat == Material.WALL_SIGN.getId()) { + if (event.getAction() != Action.RIGHT_CLICK_BLOCK) + { + return; + } final Sign csign = new CraftSign(block); for (Signs signs : Signs.values()) { -- cgit v1.2.3 From 6c9a57d4b3901b9953a4eb129e194ca78230d971 Mon Sep 17 00:00:00 2001 From: snowleo Date: Thu, 30 Jun 2011 22:57:39 +0200 Subject: Don't place a block, if interacting with a sign. --- .../essentials/signs/SignBlockListener.java | 29 ++++++++++++++-------- 1 file changed, 18 insertions(+), 11 deletions(-) diff --git a/Essentials/src/com/earth2me/essentials/signs/SignBlockListener.java b/Essentials/src/com/earth2me/essentials/signs/SignBlockListener.java index 2212bb104..592c61231 100644 --- a/Essentials/src/com/earth2me/essentials/signs/SignBlockListener.java +++ b/Essentials/src/com/earth2me/essentials/signs/SignBlockListener.java @@ -20,12 +20,12 @@ public class SignBlockListener extends BlockListener { private final transient IEssentials ess; private final static Logger LOGGER = Logger.getLogger("Minecraft"); - + public SignBlockListener(IEssentials ess) { this.ess = ess; } - + @Override public void onBlockBreak(final BlockBreakEvent event) { @@ -33,13 +33,13 @@ public class SignBlockListener extends BlockListener { return; } - + if (protectSignsAndBlocks(event.getBlock(), event.getPlayer())) { event.setCancelled(true); } } - + public boolean protectSignsAndBlocks(final Block block, final Player player) { final int mat = block.getTypeId(); @@ -77,7 +77,7 @@ public class SignBlockListener extends BlockListener } return false; } - + @Override public void onSignChange(final SignChangeEvent event) { @@ -96,7 +96,7 @@ public class SignBlockListener extends BlockListener } } } - + @Override public void onBlockPlace(final BlockPlaceEvent event) { @@ -104,7 +104,14 @@ public class SignBlockListener extends BlockListener { return; } - + + final Block against = event.getBlockAgainst(); + if (against.getType() == Material.WALL_SIGN + || against.getType() == Material.SIGN_POST) + { + event.setCancelled(true); + return; + } final Block block = event.getBlock(); if (block.getType() == Material.WALL_SIGN || block.getType() == Material.SIGN_POST) @@ -122,7 +129,7 @@ public class SignBlockListener extends BlockListener } } } - + @Override public void onBlockBurn(final BlockBurnEvent event) { @@ -130,7 +137,7 @@ public class SignBlockListener extends BlockListener { return; } - + final Block block = event.getBlock(); if ((block.getType() == Material.WALL_SIGN || block.getType() == Material.SIGN_POST @@ -150,7 +157,7 @@ public class SignBlockListener extends BlockListener } } } - + @Override public void onBlockIgnite(final BlockIgniteEvent event) { @@ -158,7 +165,7 @@ public class SignBlockListener extends BlockListener { return; } - + if (protectSignsAndBlocks(event.getBlock(), event.getPlayer())) { event.setCancelled(true); -- cgit v1.2.3 From d95d7745addb6a057629f00268529ac13ca54b27 Mon Sep 17 00:00:00 2001 From: snowleo Date: Thu, 30 Jun 2011 23:27:00 +0200 Subject: Fix for a bug in getTrade() of Signs that would return the quantity of items as money. --- Essentials/src/com/earth2me/essentials/signs/EssentialsSign.java | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/Essentials/src/com/earth2me/essentials/signs/EssentialsSign.java b/Essentials/src/com/earth2me/essentials/signs/EssentialsSign.java index ecd2aedb4..c1be18e7e 100644 --- a/Essentials/src/com/earth2me/essentials/signs/EssentialsSign.java +++ b/Essentials/src/com/earth2me/essentials/signs/EssentialsSign.java @@ -327,7 +327,7 @@ public class EssentialsSign protected final Double getMoney(final String line) throws SignException { - final boolean isMoney = line.matches("^[^0-9-\\.][\\.0-9]+"); + final boolean isMoney = line.matches("^[^0-9-\\.][\\.0-9]+$"); return isMoney ? getDouble(line.substring(1)) : null; } @@ -381,15 +381,12 @@ public class EssentialsSign { final ItemStack stack = getItemStack(item, quantity); sign.setLine(index, quantity + " " + item); - return new Trade(quantity, ess); + return new Trade(stack, ess); } } else { return new Trade(money, ess); - - - } } -- cgit v1.2.3 From 5346b112a40490fdea857aa8e0a02c5e6dab6dab Mon Sep 17 00:00:00 2001 From: snowleo Date: Fri, 1 Jul 2011 01:31:20 +0200 Subject: Don't add items with an amount of 0 or lower to the inventory. --- Essentials/src/com/earth2me/essentials/InventoryWorkaround.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Essentials/src/com/earth2me/essentials/InventoryWorkaround.java b/Essentials/src/com/earth2me/essentials/InventoryWorkaround.java index 9ac63c374..3cbcd1b2e 100644 --- a/Essentials/src/com/earth2me/essentials/InventoryWorkaround.java +++ b/Essentials/src/com/earth2me/essentials/InventoryWorkaround.java @@ -80,7 +80,7 @@ public final class InventoryWorkaround ItemStack[] combined = new ItemStack[items.length]; for (int i = 0; i < items.length; i++) { - if (items[i] == null) + if (items[i] == null || items[i].getAmount() < 1) { continue; } -- cgit v1.2.3 From bd7a50ad07e9e6ec2249a7818425df916ac323e7 Mon Sep 17 00:00:00 2001 From: snowleo Date: Fri, 1 Jul 2011 01:32:13 +0200 Subject: Always cancel interact with sign. --- Essentials/src/com/earth2me/essentials/signs/SignPlayerListener.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Essentials/src/com/earth2me/essentials/signs/SignPlayerListener.java b/Essentials/src/com/earth2me/essentials/signs/SignPlayerListener.java index 96ff3eace..1df9e3640 100644 --- a/Essentials/src/com/earth2me/essentials/signs/SignPlayerListener.java +++ b/Essentials/src/com/earth2me/essentials/signs/SignPlayerListener.java @@ -39,9 +39,9 @@ public class SignPlayerListener extends PlayerListener for (Signs signs : Signs.values()) { final EssentialsSign sign = signs.getSign(); - if (csign.getLine(0).equalsIgnoreCase(sign.getSuccessName()) - && !sign.onSignInteract(block, event.getPlayer(), ess)) + if (csign.getLine(0).equalsIgnoreCase(sign.getSuccessName())) { + sign.onSignInteract(block, event.getPlayer(), ess); event.setCancelled(true); return; } -- cgit v1.2.3 From aef2ca3e5d5c4d475b8d0b1ef15c2842c1c1ab8e Mon Sep 17 00:00:00 2001 From: snowleo Date: Fri, 1 Jul 2011 01:32:49 +0200 Subject: Fix Groups for warp signs --- Essentials/src/com/earth2me/essentials/signs/SignWarp.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Essentials/src/com/earth2me/essentials/signs/SignWarp.java b/Essentials/src/com/earth2me/essentials/signs/SignWarp.java index 776d97924..244450d8a 100644 --- a/Essentials/src/com/earth2me/essentials/signs/SignWarp.java +++ b/Essentials/src/com/earth2me/essentials/signs/SignWarp.java @@ -51,7 +51,7 @@ public class SignWarp extends EssentialsSign if ((!group.isEmpty() && ("§2Everyone".equals(group) || player.inGroup(group))) - || (!ess.getSettings().getPerWarpPermission() || player.isAuthorized("essentials.warp." + warpName))) + || (group.isEmpty() && (!ess.getSettings().getPerWarpPermission() || player.isAuthorized("essentials.warp." + warpName)))) { final Trade charge = getTrade(sign, 3, ess); try -- cgit v1.2.3 From e596f859534766d90e21463b6364f9b0ff628b6c Mon Sep 17 00:00:00 2001 From: snowleo Date: Fri, 1 Jul 2011 01:33:09 +0200 Subject: Fix Trade signs --- .../earth2me/essentials/signs/EssentialsSign.java | 21 +++++++++++++-------- .../com/earth2me/essentials/signs/SignTrade.java | 22 +++++++++++----------- 2 files changed, 24 insertions(+), 19 deletions(-) diff --git a/Essentials/src/com/earth2me/essentials/signs/EssentialsSign.java b/Essentials/src/com/earth2me/essentials/signs/EssentialsSign.java index c1be18e7e..810103f78 100644 --- a/Essentials/src/com/earth2me/essentials/signs/EssentialsSign.java +++ b/Essentials/src/com/earth2me/essentials/signs/EssentialsSign.java @@ -290,7 +290,7 @@ public class EssentialsSign protected final int getIntegerPositive(final String line) throws SignException { final int quantity = getInteger(line); - if (quantity <= 1) + if (quantity < 1) { throw new SignException(Util.i18n("moreThanZero")); } @@ -328,19 +328,24 @@ public class EssentialsSign protected final Double getMoney(final String line) throws SignException { final boolean isMoney = line.matches("^[^0-9-\\.][\\.0-9]+$"); - return isMoney ? getDouble(line.substring(1)) : null; + return isMoney ? getDoublePositive(line.substring(1)) : null; + } + + protected final Double getDoublePositive(final String line) throws SignException + { + final double quantity = getDouble(line); + if (quantity <= 0.0) + { + throw new SignException(Util.i18n("moreThanZero")); + } + return quantity; } protected final Double getDouble(final String line) throws SignException { try { - final double quantity = Double.parseDouble(line); - if (quantity <= 0.0) - { - throw new SignException(Util.i18n("moreThanZero")); - } - return quantity; + return Double.parseDouble(line); } catch (NumberFormatException ex) { diff --git a/Essentials/src/com/earth2me/essentials/signs/SignTrade.java b/Essentials/src/com/earth2me/essentials/signs/SignTrade.java index 5a0354afa..e63ff49b8 100644 --- a/Essentials/src/com/earth2me/essentials/signs/SignTrade.java +++ b/Essentials/src/com/earth2me/essentials/signs/SignTrade.java @@ -20,7 +20,7 @@ public class SignTrade extends EssentialsSign { validateTrade(sign, 1, false, ess); validateTrade(sign, 2, true, ess); - final Trade charge = getTrade(sign, 2, true, ess); + final Trade charge = getTrade(sign, 2, true, true, ess); charge.isAffordableFor(player); sign.setLine(3, "§8" + username); charge.charge(player); @@ -32,14 +32,14 @@ public class SignTrade extends EssentialsSign { if (sign.getLine(3).substring(2).equalsIgnoreCase(username)) { - final Trade stored = getTrade(sign, 1, true, ess); + final Trade stored = getTrade(sign, 1, true, true, ess); substractAmount(sign, 1, stored); stored.pay(player); } else { - final Trade charge = getTrade(sign, 1, false, ess); - final Trade trade = getTrade(sign, 2, false, ess); + final Trade charge = getTrade(sign, 1, false, false, ess); + final Trade trade = getTrade(sign, 2, false, true, ess); charge.isAffordableFor(player); substractAmount(sign, 2, trade); trade.pay(player); @@ -54,8 +54,8 @@ public class SignTrade extends EssentialsSign { if (sign.getLine(3).length() > 3 && sign.getLine(3).substring(2).equalsIgnoreCase(username)) { - final Trade stored1 = getTrade(sign, 1, true, ess); - final Trade stored2 = getTrade(sign, 2, true, ess); + final Trade stored1 = getTrade(sign, 1, true, false, ess); + final Trade stored2 = getTrade(sign, 2, true, false, ess); stored1.pay(player); stored2.pay(player); return true; @@ -88,7 +88,7 @@ public class SignTrade extends EssentialsSign if (split.length == 2 && amountNeeded) { final Double money = getMoney(split[0]); - final Double amount = getDouble(split[1]); + final Double amount = getDoublePositive(split[1]); if (money != null && amount != null) { sign.setLine(index, Util.formatCurrency(money) + ":" + Util.formatCurrency(amount).substring(1)); @@ -124,7 +124,7 @@ public class SignTrade extends EssentialsSign throw new SignException(Util.format("invalidSignLine", index)); } - protected final Trade getTrade(final ISign sign, final int index, final boolean fullAmount, final IEssentials ess) throws SignException + protected final Trade getTrade(final ISign sign, final int index, final boolean fullAmount, final boolean notEmpty, final IEssentials ess) throws SignException { final String line = sign.getLine(index).trim(); if (line.isEmpty()) @@ -136,7 +136,7 @@ public class SignTrade extends EssentialsSign if (split.length == 2) { final Double money = getMoney(split[0]); - final Double amount = getDouble(split[1]); + final Double amount = notEmpty ? getDoublePositive(split[1]) : getDouble(split[1]); if (money != null && amount != null) { return new Trade(fullAmount ? amount : money, ess); @@ -147,9 +147,9 @@ public class SignTrade extends EssentialsSign { final int stackamount = getIntegerPositive(split[0]); final ItemStack item = getItemStack(split[1], stackamount); - int amount = getIntegerPositive(split[2]); + int amount = getInteger(split[2]); amount -= amount % stackamount; - if (amount < 1 || stackamount < 1 || item.getTypeId() == 0) + if (notEmpty && (amount < 1 || stackamount < 1 || item.getTypeId() == 0)) { throw new SignException(Util.i18n("moreThanZero")); } -- cgit v1.2.3 From ecaecc5e62f69a74763289d73b619b21bbd051de Mon Sep 17 00:00:00 2001 From: snowleo Date: Fri, 1 Jul 2011 01:33:35 +0200 Subject: Fix Protection signs --- .../earth2me/essentials/signs/SignProtection.java | 111 ++++++++++----------- 1 file changed, 55 insertions(+), 56 deletions(-) diff --git a/Essentials/src/com/earth2me/essentials/signs/SignProtection.java b/Essentials/src/com/earth2me/essentials/signs/SignProtection.java index 8e0f4461f..555bb0114 100644 --- a/Essentials/src/com/earth2me/essentials/signs/SignProtection.java +++ b/Essentials/src/com/earth2me/essentials/signs/SignProtection.java @@ -21,7 +21,7 @@ import org.bukkit.inventory.ItemStack; public class SignProtection extends EssentialsSign { private final transient Set protectedBlocks = EnumSet.noneOf(Material.class); - + public SignProtection() { super("Protection"); @@ -30,25 +30,27 @@ public class SignProtection extends EssentialsSign protectedBlocks.add(Material.FURNACE); protectedBlocks.add(Material.DISPENSER); } - + @Override protected boolean onSignCreate(final ISign sign, final User player, final String username, final IEssentials ess) throws SignException, ChargeException { sign.setLine(3, "§4" + username); - if (hasAdjacentBlock(sign.getBlock()) && isBlockProtected(sign.getBlock(), player, username) != SignProtectionState.NOT_ALLOWED) + if (hasAdjacentBlock(sign.getBlock()) && isBlockProtected(sign.getBlock(), player, username, true) != SignProtectionState.NOT_ALLOWED) { sign.setLine(3, "§1" + username); + return true; } - return true; + player.sendMessage("§4You are not allowed to create sign here."); + return false; } - + @Override protected boolean onSignBreak(final ISign sign, final User player, final String username, final IEssentials ess) throws SignException { final SignProtectionState state = checkProtectionSign(sign, player, username); return state == SignProtectionState.OWNER; } - + public boolean hasAdjacentBlock(final Block block, final Block... ignoredBlocks) { final Block[] faces = getAdjacentBlocks(block); @@ -68,10 +70,10 @@ public class SignProtection extends EssentialsSign } return false; } - + private void checkIfSignsAreBroken(final Block block, final User player, final String username, final IEssentials ess) { - final Map signs = getConnectedSigns(block, player, username); + final Map signs = getConnectedSigns(block, player, username, false); for (Map.Entry entry : signs.entrySet()) { if (entry.getValue() != SignProtectionState.NOSIGN) @@ -86,14 +88,14 @@ public class SignProtection extends EssentialsSign } } } - - private Map getConnectedSigns(final Block block, final User user, final String username) + + private Map getConnectedSigns(final Block block, final User user, final String username, boolean secure) { final Map signs = new HashMap(); - getConnectedSigns(block, signs, user, username, 2); + getConnectedSigns(block, signs, user, username, secure ? 4 : 2); return signs; } - + private void getConnectedSigns(final Block block, final Map signs, final User user, final String username, final int depth) { final Block[] faces = getAdjacentBlocks(block); @@ -106,20 +108,20 @@ public class SignProtection extends EssentialsSign } final SignProtectionState check = checkProtectionSign(b, user, username); signs.put(loc, check); - + if (protectedBlocks.contains(b.getType()) && depth > 0) { getConnectedSigns(b, signs, user, username, depth - 1); } } } - - + + public enum SignProtectionState { NOT_ALLOWED, ALLOWED, NOSIGN, OWNER } - + private SignProtectionState checkProtectionSign(final Block block, final User user, final String username) { if (block.getType() == Material.SIGN_POST || block.getType() == Material.WALL_SIGN) @@ -132,7 +134,7 @@ public class SignProtection extends EssentialsSign } return SignProtectionState.NOSIGN; } - + private SignProtectionState checkProtectionSign(final ISign sign, final User user, final String username) { if (user == null || username == null) @@ -155,13 +157,13 @@ public class SignProtection extends EssentialsSign return SignProtectionState.ALLOWED; } } - if (sign.getLine(3).equalsIgnoreCase(username)) + if (sign.getLine(3).substring(2).equalsIgnoreCase(username)) { return SignProtectionState.OWNER; } return SignProtectionState.NOT_ALLOWED; } - + private Block[] getAdjacentBlocks(final Block block) { return new Block[] @@ -174,10 +176,10 @@ public class SignProtection extends EssentialsSign block.getFace(BlockFace.UP) }; } - - public SignProtectionState isBlockProtected(final Block block, final User user, final String username) + + public SignProtectionState isBlockProtected(final Block block, final User user, final String username, boolean secure) { - final Map signs = getConnectedSigns(block, user, username); + final Map signs = getConnectedSigns(block, user, username, secure); SignProtectionState retstate = SignProtectionState.NOSIGN; for (SignProtectionState state : signs.values()) { @@ -192,7 +194,7 @@ public class SignProtection extends EssentialsSign } return retstate; } - + public boolean isBlockProtected(final Block block) { final Block[] faces = getAdjacentBlocks(block); @@ -209,7 +211,7 @@ public class SignProtection extends EssentialsSign if (protectedBlocks.contains(b.getType())) { final Block[] faceChest = getAdjacentBlocks(b); - + for (Block a : faceChest) { if (a.getType() == Material.SIGN_POST || a.getType() == Material.WALL_SIGN) @@ -225,7 +227,7 @@ public class SignProtection extends EssentialsSign } return false; } - + @Override public Set getBlocks() { @@ -235,81 +237,78 @@ public class SignProtection extends EssentialsSign @Override protected boolean onBlockPlace(final Block block, final User player, final String username, final IEssentials ess) throws SignException { - final SignProtectionState state = isBlockProtected(block, player, username); - - if (state == SignProtectionState.OWNER || state == SignProtectionState.NOSIGN) + for (Block adjBlock : getAdjacentBlocks(block)) { - return true; - } - - if ((state == SignProtectionState.ALLOWED || state == SignProtectionState.NOT_ALLOWED) - && player.isAuthorized("essentials.signs.protection.override")) - { - return true; + final SignProtectionState state = isBlockProtected(adjBlock, player, username, true); + + if ((state == SignProtectionState.ALLOWED || state == SignProtectionState.NOT_ALLOWED) + && !player.isAuthorized("essentials.signs.protection.override")) + { + player.sendMessage(Util.format("noPlacePermission", block.getType().toString().toLowerCase())); + return false; + } } - - - player.sendMessage(Util.format("noPlacePermission", block.getType().toString().toLowerCase())); - return false; + return true; + } @Override protected boolean onBlockInteract(final Block block, final User player, final String username, final IEssentials ess) throws SignException { - final SignProtectionState state = isBlockProtected(block, player, username); - + final SignProtectionState state = isBlockProtected(block, player, username, false); + if (state == SignProtectionState.OWNER || state == SignProtectionState.NOSIGN || state == SignProtectionState.ALLOWED) { return true; } - + if (state == SignProtectionState.NOT_ALLOWED && player.isAuthorized("essentials.signs.protection.override")) { return true; } - - + + player.sendMessage(Util.format("noAccessPermission", block.getType().toString().toLowerCase())); return false; } - + @Override protected boolean onBlockBreak(final Block block, final User player, final String username, final IEssentials ess) throws SignException { - final SignProtectionState state = isBlockProtected(block, player, username); - + final SignProtectionState state = isBlockProtected(block, player, username, false); + if (state == SignProtectionState.OWNER || state == SignProtectionState.NOSIGN) { checkIfSignsAreBroken(block, player, username, ess); return true; } - + if ((state == SignProtectionState.ALLOWED || state == SignProtectionState.NOT_ALLOWED) && player.isAuthorized("essentials.signs.protection.override")) { checkIfSignsAreBroken(block, player, username, ess); return true; } - - + + player.sendMessage(Util.format("noDestroyPermission", block.getType().toString().toLowerCase())); return false; } - + @Override public boolean onBlockExplode(final Block block, final IEssentials ess) { - final SignProtectionState state = isBlockProtected(block, null, null); - + final SignProtectionState state = isBlockProtected(block, null, null, false); + return state == SignProtectionState.NOSIGN; } - + @Override public boolean onBlockBurn(final Block block, final IEssentials ess) { - final SignProtectionState state = isBlockProtected(block, null, null); - + final SignProtectionState state = isBlockProtected(block, null, null, false); + return state == SignProtectionState.NOSIGN; } } -- cgit v1.2.3 From 5ae0ab745fc6c3087ca54f3c43858e52e69a3d6f Mon Sep 17 00:00:00 2001 From: snowleo Date: Fri, 1 Jul 2011 10:58:50 +0200 Subject: More names for pistons (items.csv) Fix for /unlimited and pistons --- Essentials/src/com/earth2me/essentials/EssentialsBlockListener.java | 2 ++ Essentials/src/items.csv | 4 +++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/Essentials/src/com/earth2me/essentials/EssentialsBlockListener.java b/Essentials/src/com/earth2me/essentials/EssentialsBlockListener.java index b2e1d7d43..4e70346fb 100644 --- a/Essentials/src/com/earth2me/essentials/EssentialsBlockListener.java +++ b/Essentials/src/com/earth2me/essentials/EssentialsBlockListener.java @@ -304,6 +304,8 @@ public class EssentialsBlockListener extends BlockListener case JACK_O_LANTERN: case WOOD_PLATE: case STONE_PLATE: + case PISTON_STICKY_BASE: + case PISTON_BASE: is.setDurability((short)0); break; } diff --git a/Essentials/src/items.csv b/Essentials/src/items.csv index 0c814fb81..2268c7def 100644 --- a/Essentials/src/items.csv +++ b/Essentials/src/items.csv @@ -451,6 +451,8 @@ pistonstickybase,29,0 stickypiston,29,0 stickyp,29,0 psticky,29,0 +spiston,29,0 +pistons,29,0 spiderweb,30,0 sweb,30,0 web,30,0 @@ -472,6 +474,7 @@ dshrub,32,0 shrubd,32,0 pistonbase,33,0 piston,33,0 +pistonblock,33,0 pistonextension,34,0 pistonext,34,0 whitecloth,35,0 @@ -605,7 +608,6 @@ blawool,35,15 blacotton,35,15 pistonmovingpiece,36,0 pistonmp,36,0 -ppusher,36,0 yellowflower,37,0 yflower,37,0 flower,37,0 -- cgit v1.2.3 From bbd10b90c0a61c82363315d5a7bc1617b4acd226 Mon Sep 17 00:00:00 2001 From: snowleo Date: Sat, 2 Jul 2011 01:09:19 +0200 Subject: CB# 953 B# 754 --- lib/bukkit-0.0.1-SNAPSHOT.jar | Bin 2695176 -> 2696052 bytes lib/craftbukkit-0.0.1-SNAPSHOT.jar | Bin 7701825 -> 7704329 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/lib/bukkit-0.0.1-SNAPSHOT.jar b/lib/bukkit-0.0.1-SNAPSHOT.jar index 2423740a8..862601752 100644 Binary files a/lib/bukkit-0.0.1-SNAPSHOT.jar and b/lib/bukkit-0.0.1-SNAPSHOT.jar differ diff --git a/lib/craftbukkit-0.0.1-SNAPSHOT.jar b/lib/craftbukkit-0.0.1-SNAPSHOT.jar index d7286e059..216a4a943 100644 Binary files a/lib/craftbukkit-0.0.1-SNAPSHOT.jar and b/lib/craftbukkit-0.0.1-SNAPSHOT.jar differ -- cgit v1.2.3 From 914a44007d72148eb4bed422ab7afc1113f5d996 Mon Sep 17 00:00:00 2001 From: snowleo Date: Sat, 2 Jul 2011 01:13:44 +0200 Subject: Update of bukkit version number in essentials class --- Essentials/src/com/earth2me/essentials/Essentials.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Essentials/src/com/earth2me/essentials/Essentials.java b/Essentials/src/com/earth2me/essentials/Essentials.java index c329e3b20..1656a4e29 100644 --- a/Essentials/src/com/earth2me/essentials/Essentials.java +++ b/Essentials/src/com/earth2me/essentials/Essentials.java @@ -46,7 +46,7 @@ import org.bukkit.plugin.java.*; public class Essentials extends JavaPlugin implements IEssentials { public static final String AUTHORS = "Zenexer, ementalo, Aelux, Brettflan, KimKandor, snowleo, ceulemans and Xeology"; - public static final int minBukkitBuildVersion = 939; + public static final int minBukkitBuildVersion = 953; private static final Logger logger = Logger.getLogger("Minecraft"); private Settings settings; private TNTExplodeListener tntListener; -- cgit v1.2.3 From 335c9f37ab8685b115bbf756938b4e4602492958 Mon Sep 17 00:00:00 2001 From: snowleo Date: Sat, 2 Jul 2011 13:12:10 +0200 Subject: Fix: No cooldown for all /tpo commands TP-Delay: Player can move around roughly in the 9 blocks surrounding them. --- Essentials/src/com/earth2me/essentials/Teleport.java | 20 ++++++++++++-------- .../com/earth2me/essentials/commands/Commandtp.java | 4 ++-- .../earth2me/essentials/commands/Commandtpall.java | 2 +- .../com/earth2me/essentials/commands/Commandtpo.java | 2 +- .../earth2me/essentials/commands/Commandtpohere.java | 2 +- 5 files changed, 17 insertions(+), 13 deletions(-) diff --git a/Essentials/src/com/earth2me/essentials/Teleport.java b/Essentials/src/com/earth2me/essentials/Teleport.java index e63d1699e..429834b02 100644 --- a/Essentials/src/com/earth2me/essentials/Teleport.java +++ b/Essentials/src/com/earth2me/essentials/Teleport.java @@ -10,6 +10,7 @@ import org.bukkit.entity.Entity; public class Teleport implements Runnable { + private static final double MOVE_CONSTANT = 0.3; private static class Target { private final Location location; @@ -57,9 +58,9 @@ public class Teleport implements Runnable this.started = System.currentTimeMillis(); this.delay = delay; this.health = user.getHealth(); - this.initX = Math.round(user.getLocation().getX() * 10000); - this.initY = Math.round(user.getLocation().getY() * 10000); - this.initZ = Math.round(user.getLocation().getZ() * 10000); + this.initX = Math.round(user.getLocation().getX()*MOVE_CONSTANT); + this.initY = Math.round(user.getLocation().getY()*MOVE_CONSTANT); + this.initZ = Math.round(user.getLocation().getZ()*MOVE_CONSTANT); this.teleportTarget = target; this.chargeFor = chargeFor; } @@ -72,9 +73,9 @@ public class Teleport implements Runnable cancel(); return; } - if (Math.round(user.getLocation().getX() * 10000) != initX - || Math.round(user.getLocation().getY() * 10000) != initY - || Math.round(user.getLocation().getZ() * 10000) != initZ + if (Math.round(user.getLocation().getX()*MOVE_CONSTANT) != initX + || Math.round(user.getLocation().getY()*MOVE_CONSTANT) != initY + || Math.round(user.getLocation().getZ()*MOVE_CONSTANT) != initZ || user.getHealth() < health) { // user moved, cancel teleport cancel(true); @@ -237,9 +238,12 @@ public class Teleport implements Runnable now(new Target(loc)); } - public void now(Entity entity) throws Exception + public void now(Entity entity, boolean cooldown) throws Exception { - cooldown(false); + if (cooldown) + { + cooldown(false); + } now(new Target(entity)); } diff --git a/Essentials/src/com/earth2me/essentials/commands/Commandtp.java b/Essentials/src/com/earth2me/essentials/commands/Commandtp.java index a8b805e8d..c147c5d25 100644 --- a/Essentials/src/com/earth2me/essentials/commands/Commandtp.java +++ b/Essentials/src/com/earth2me/essentials/commands/Commandtp.java @@ -44,7 +44,7 @@ public class Commandtp extends EssentialsCommand charge(user); User target = getPlayer(server, args, 0); User toPlayer = getPlayer(server, args, 1); - target.getTeleport().now(toPlayer); + target.getTeleport().now(toPlayer, false); target.sendMessage(Util.format("teleportAtoB", user.getDisplayName(), toPlayer.getDisplayName())); break; } @@ -61,7 +61,7 @@ public class Commandtp extends EssentialsCommand sender.sendMessage(Util.i18n("teleporting")); User target = getPlayer(server, args, 0); User toPlayer = getPlayer(server, args, 1); - target.getTeleport().now(toPlayer); + target.getTeleport().now(toPlayer, false); target.sendMessage(Util.format("teleportAtoB", Console.NAME, toPlayer.getDisplayName())); } } diff --git a/Essentials/src/com/earth2me/essentials/commands/Commandtpall.java b/Essentials/src/com/earth2me/essentials/commands/Commandtpall.java index d564e90ea..cc58944d7 100644 --- a/Essentials/src/com/earth2me/essentials/commands/Commandtpall.java +++ b/Essentials/src/com/earth2me/essentials/commands/Commandtpall.java @@ -45,7 +45,7 @@ public class Commandtpall extends EssentialsCommand } try { - u.getTeleport().now(p); + u.getTeleport().now(p, false); } catch (Exception ex) { diff --git a/Essentials/src/com/earth2me/essentials/commands/Commandtpo.java b/Essentials/src/com/earth2me/essentials/commands/Commandtpo.java index 6b74f5062..2a9e34da8 100644 --- a/Essentials/src/com/earth2me/essentials/commands/Commandtpo.java +++ b/Essentials/src/com/earth2me/essentials/commands/Commandtpo.java @@ -23,7 +23,7 @@ public class Commandtpo extends EssentialsCommand //Just basically the old tp command User p = getPlayer(server, args, 0); charge(user); - user.getTeleport().now(p); + user.getTeleport().now(p, false); user.sendMessage(Util.i18n("teleporting")); } } diff --git a/Essentials/src/com/earth2me/essentials/commands/Commandtpohere.java b/Essentials/src/com/earth2me/essentials/commands/Commandtpohere.java index 5dc7a4478..593d17b59 100644 --- a/Essentials/src/com/earth2me/essentials/commands/Commandtpohere.java +++ b/Essentials/src/com/earth2me/essentials/commands/Commandtpohere.java @@ -23,7 +23,7 @@ public class Commandtpohere extends EssentialsCommand //Just basically the old tphere command User p = getPlayer(server, args, 0); charge(user); - p.getTeleport().now(user); + p.getTeleport().now(user, false); user.sendMessage(Util.i18n("teleporting")); } } -- cgit v1.2.3 From ae053dea5850b12c1f10d505c0631f7ffd561345 Mon Sep 17 00:00:00 2001 From: snowleo Date: Sat, 2 Jul 2011 13:16:44 +0200 Subject: Prevent signs created by plugins like SignColours --- Essentials/src/com/earth2me/essentials/signs/SignBlockListener.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/Essentials/src/com/earth2me/essentials/signs/SignBlockListener.java b/Essentials/src/com/earth2me/essentials/signs/SignBlockListener.java index 592c61231..dfa1ed052 100644 --- a/Essentials/src/com/earth2me/essentials/signs/SignBlockListener.java +++ b/Essentials/src/com/earth2me/essentials/signs/SignBlockListener.java @@ -88,6 +88,11 @@ public class SignBlockListener extends BlockListener for (Signs signs : Signs.values()) { final EssentialsSign sign = signs.getSign(); + if (event.getLine(0).equalsIgnoreCase(sign.getSuccessName())) + { + event.setCancelled(true); + return; + } if (event.getLine(0).equalsIgnoreCase(sign.getTemplateName()) && !sign.onSignCreate(event, ess)) { -- cgit v1.2.3 From ff8564787a234ed4dce9bc4ee136850cd2cb370a Mon Sep 17 00:00:00 2001 From: snowleo Date: Sat, 2 Jul 2011 15:12:43 -0700 Subject: Edited README.markdown via GitHub --- README.markdown | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.markdown b/README.markdown index 3d21b2baf..dd0cf38d2 100644 --- a/README.markdown +++ b/README.markdown @@ -13,4 +13,6 @@ Recommended NetBeans plugins: In the root folder of the repository is a file called settings.zip. It contains the code guidelines settings. Open the preferences of NetBeans and import the zip file. Use "Source > Format" before each commit please. -To build all jars, select the BuildAll project and build that. You'll find all jars inside the dist/lib folder of the BuildAll project. \ No newline at end of file +To build all jars, select the BuildAll project and build that. You'll find all jars inside the dist/lib folder of the BuildAll project. + +If you create pull requests, always make them for the master branch. \ No newline at end of file -- cgit v1.2.3 From 16b101b958551bac656364fa6ed4399799d72b0c Mon Sep 17 00:00:00 2001 From: Brettflan Date: Sat, 2 Jul 2011 17:34:49 -0500 Subject: Implemented Factions hooks for proper chat integration with it (master/dev branch) --- EssentialsChat/nbproject/project.properties | 4 +- .../earth2me/essentials/chat/EssentialsChat.java | 3 ++ .../chat/EssentialsChatPlayerListener.java | 42 ++++++++++++++++++++- lib/Factions.jar | Bin 0 -> 316592 bytes 4 files changed, 47 insertions(+), 2 deletions(-) create mode 100644 lib/Factions.jar diff --git a/EssentialsChat/nbproject/project.properties b/EssentialsChat/nbproject/project.properties index 08df72abc..2e51b176b 100644 --- a/EssentialsChat/nbproject/project.properties +++ b/EssentialsChat/nbproject/project.properties @@ -27,11 +27,13 @@ dist.javadoc.dir=${dist.dir}/javadoc endorsed.classpath= excludes= file.reference.bukkit-0.0.1-SNAPSHOT.jar=../lib/bukkit-0.0.1-SNAPSHOT.jar +file.reference.Factions.jar=../lib/Factions.jar includes=** jar.compress=false javac.classpath=\ ${reference.Essentials.jar}:\ - ${file.reference.bukkit-0.0.1-SNAPSHOT.jar} + ${file.reference.bukkit-0.0.1-SNAPSHOT.jar}:\ + ${file.reference.Factions.jar} # Space-separated list of extra javac options javac.compilerargs= javac.deprecation=false diff --git a/EssentialsChat/src/com/earth2me/essentials/chat/EssentialsChat.java b/EssentialsChat/src/com/earth2me/essentials/chat/EssentialsChat.java index 428413661..5fb8e9842 100644 --- a/EssentialsChat/src/com/earth2me/essentials/chat/EssentialsChat.java +++ b/EssentialsChat/src/com/earth2me/essentials/chat/EssentialsChat.java @@ -17,6 +17,9 @@ public class EssentialsChat extends JavaPlugin public void onEnable() { final PluginManager pluginManager = getServer().getPluginManager(); + + EssentialsChatPlayerListener.checkFactions(pluginManager); + final EssentialsChatPlayerListener playerListener = new EssentialsChatPlayerListener(getServer()); pluginManager.registerEvent(Type.PLAYER_JOIN, playerListener, Priority.Lowest, this); pluginManager.registerEvent(Type.PLAYER_CHAT, playerListener, Priority.Highest, this); diff --git a/EssentialsChat/src/com/earth2me/essentials/chat/EssentialsChatPlayerListener.java b/EssentialsChat/src/com/earth2me/essentials/chat/EssentialsChatPlayerListener.java index 211733818..57c41de72 100644 --- a/EssentialsChat/src/com/earth2me/essentials/chat/EssentialsChatPlayerListener.java +++ b/EssentialsChat/src/com/earth2me/essentials/chat/EssentialsChatPlayerListener.java @@ -13,6 +13,10 @@ import org.bukkit.event.player.PlayerChatEvent; import org.bukkit.event.player.PlayerJoinEvent; import org.bukkit.event.player.PlayerListener; import org.bukkit.event.player.PlayerRespawnEvent; +import org.bukkit.plugin.Plugin; +import org.bukkit.plugin.PluginManager; + +import org.mcteam.factions.Factions; public class EssentialsChatPlayerListener extends PlayerListener @@ -20,6 +24,7 @@ public class EssentialsChatPlayerListener extends PlayerListener private static final Logger LOGGER = Logger.getLogger("Minecraft"); private final transient IEssentials ess = Essentials.getStatic(); private final transient Server server; + private static Factions factions = null; public EssentialsChatPlayerListener(final Server server) { @@ -48,6 +53,10 @@ public class EssentialsChatPlayerListener extends PlayerListener { return; } + + if (factions != null && (factions.shouldLetFactionsHandleThisChat(event))) + return; + final User user = ess.getUser(event.getPlayer()); updateDisplayName(user); @@ -118,8 +127,39 @@ public class EssentialsChatPlayerListener extends PlayerListener continue; } } + String message = String.format(event.getFormat(), user.getDisplayName(), event.getMessage()); + + if (factions != null) + message = message.replace("{FACTION}", factions.getPlayerFactionTagRelation(event.getPlayer(), p)).replace("{FACTION_TITLE}", factions.getPlayerTitle(event.getPlayer())); - u.sendMessage(String.format(event.getFormat(), user.getDisplayName(), event.getMessage())); + u.sendMessage(message); } } + + protected static void checkFactions(PluginManager pm) + { + if (factions != null) + return; + + Plugin factionsPlugin = pm.getPlugin("Factions"); + if (factionsPlugin == null) + return; + + factions = (Factions)factionsPlugin; + try + { // make sure Factions is sufficiently up-to-date + if (factions.hookSupportVersion() < 1) + factions = null; + } + catch (NoSuchMethodError ex) + { // if not, we can't work with it, so don't bother + factions = null; + } + + if (factions == null) + return; + + // normally a good thing, but we'll skip it to let Factions handle faction tags for global messages + //factions.handleFactionTagExternally(true); + } } diff --git a/lib/Factions.jar b/lib/Factions.jar new file mode 100644 index 000000000..af13995ae Binary files /dev/null and b/lib/Factions.jar differ -- cgit v1.2.3 From ed1aa2f9dc6c0133b4882d7c6aefc4726d8a11ac Mon Sep 17 00:00:00 2001 From: snowleo Date: Sat, 2 Jul 2011 15:42:28 -0700 Subject: Added softdepend: Factions to EssentialsChat --- EssentialsChat/src/plugin.yml | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/EssentialsChat/src/plugin.yml b/EssentialsChat/src/plugin.yml index 0be4e1c75..4ad77d230 100644 --- a/EssentialsChat/src/plugin.yml +++ b/EssentialsChat/src/plugin.yml @@ -1,9 +1,10 @@ -# This determines the command prefix when there are conflicts (/name:home, /name:help, etc.) -name: EssentialsChat -main: com.earth2me.essentials.chat.EssentialsChat -# Note to developers: This next line cannot change, or the automatic versioning system will break. -version: TeamCity -website: http://www.earth2me.net:8001/ -description: Provides chat control features for Essentials. Requires Permissions. -authors: [Zenexer, ementalo, Aelux, Brettflan, KimKandor, snowleo, ceulemans, Xeology] -depend: [Essentials] \ No newline at end of file +# This determines the command prefix when there are conflicts (/name:home, /name:help, etc.) +name: EssentialsChat +main: com.earth2me.essentials.chat.EssentialsChat +# Note to developers: This next line cannot change, or the automatic versioning system will break. +version: TeamCity +website: http://www.earth2me.net:8001/ +description: Provides chat control features for Essentials. Requires Permissions. +authors: [Zenexer, ementalo, Aelux, Brettflan, KimKandor, snowleo, ceulemans, Xeology] +depend: [Essentials] +softdepend: [Factions] \ No newline at end of file -- cgit v1.2.3 From 3a8b888e7cf1c5a14f9c1251d07d75b97aa54214 Mon Sep 17 00:00:00 2001 From: ementalo Date: Sat, 2 Jul 2011 23:53:54 +0100 Subject: fixes #475. User is no longer afk if they move. others can set afk /afk playername. needs essentials.afk.others --- .../essentials/EssentialsPlayerListener.java | 6 ++++++ .../com/earth2me/essentials/commands/Commandafk.java | 20 +++++++++++++++++++- 2 files changed, 25 insertions(+), 1 deletion(-) diff --git a/Essentials/src/com/earth2me/essentials/EssentialsPlayerListener.java b/Essentials/src/com/earth2me/essentials/EssentialsPlayerListener.java index 044560bfe..611b479bb 100644 --- a/Essentials/src/com/earth2me/essentials/EssentialsPlayerListener.java +++ b/Essentials/src/com/earth2me/essentials/EssentialsPlayerListener.java @@ -91,6 +91,12 @@ public class EssentialsPlayerListener extends PlayerListener } final User user = ess.getUser(event.getPlayer()); + if(user.isAfk()) + { + user.setAfk(false); + ess.broadcastMessage(user.getName(), Util.format("userIsNotAway", user.getDisplayName())); + } + if (!ess.getSettings().getNetherPortalsEnabled()) { return; diff --git a/Essentials/src/com/earth2me/essentials/commands/Commandafk.java b/Essentials/src/com/earth2me/essentials/commands/Commandafk.java index 24ff9758b..03950966c 100644 --- a/Essentials/src/com/earth2me/essentials/commands/Commandafk.java +++ b/Essentials/src/com/earth2me/essentials/commands/Commandafk.java @@ -17,11 +17,29 @@ public class Commandafk extends EssentialsCommand { charge(user); + if (args.length > 0 && user.isAuthorized("essentials.afk.others")) + { + User afkUser = ess.getUser(ess.getServer().matchPlayer(args[0])); + if (afkUser != null) + { + toggleAfk(afkUser); + } + } + else + { + toggleAfk(user); + } + } + + private final void toggleAfk(User user) + { if (!user.toggleAfk()) { user.sendMessage(Util.i18n("markedAsNotAway")); ess.broadcastMessage(user.getName(), Util.format("userIsNotAway", user.getDisplayName())); - } else { + } + else + { user.sendMessage(Util.i18n("markedAsAway")); ess.broadcastMessage(user.getName(), Util.format("userIsAway", user.getDisplayName())); } -- cgit v1.2.3 From 7f4ba16388dc81628c8279f4769eb14919a594c6 Mon Sep 17 00:00:00 2001 From: ementalo Date: Sun, 3 Jul 2011 00:05:46 +0100 Subject: fixes #654 - user is no longer afk on chat or command use --- .../com/earth2me/essentials/EssentialsPlayerListener.java | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/Essentials/src/com/earth2me/essentials/EssentialsPlayerListener.java b/Essentials/src/com/earth2me/essentials/EssentialsPlayerListener.java index 611b479bb..6b39cbb9b 100644 --- a/Essentials/src/com/earth2me/essentials/EssentialsPlayerListener.java +++ b/Essentials/src/com/earth2me/essentials/EssentialsPlayerListener.java @@ -80,6 +80,11 @@ public class EssentialsPlayerListener extends PlayerListener it.remove(); } } + if(user.isAfk()) + { + user.setAfk(false); + ess.broadcastMessage(user.getName(), Util.format("userIsNotAway", user.getDisplayName())); + } } @Override @@ -623,7 +628,7 @@ public class EssentialsPlayerListener extends PlayerListener public void onPlayerCommandPreprocess(PlayerCommandPreprocessEvent event) { if (event.isCancelled()) return; - Player commandUser = event.getPlayer(); + User user = ess.getUser(event.getPlayer()); String cmd = event.getMessage().toLowerCase(); if (("msg".equals(cmd) || "r".equals(cmd) || "mail".equals(cmd))) { @@ -631,9 +636,14 @@ public class EssentialsPlayerListener extends PlayerListener { if (ess.getUser(player).isSocialSpyEnabled()) { - player.sendMessage(ess.getUser(commandUser).getDisplayName() + " : " + cmd); + player.sendMessage(user.getDisplayName() + " : " + cmd); } } } + if(user.isAfk()) + { + user.setAfk(false); + ess.broadcastMessage(user.getName(), Util.format("userIsNotAway", user.getDisplayName())); + } } } -- cgit v1.2.3 From ffd1154ca3ac4d9b0eb6e2bef9ff6978c30575bb Mon Sep 17 00:00:00 2001 From: KHobbits Date: Sun, 3 Jul 2011 06:58:20 -0700 Subject: essentials.back.ondeath would be useless without essentials.back --- EssentialsGroupManager/src/groups.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/EssentialsGroupManager/src/groups.yml b/EssentialsGroupManager/src/groups.yml index 97cb0f271..87033cdc9 100644 --- a/EssentialsGroupManager/src/groups.yml +++ b/EssentialsGroupManager/src/groups.yml @@ -54,6 +54,7 @@ groups: default: false permissions: - essentials.afk + - essentials.back - essentials.back.ondeath - essentials.balance - essentials.chat.shout @@ -98,7 +99,6 @@ groups: Moderator: default: false permissions: - - essentials.back - essentials.ban - essentials.banip - essentials.broadcast -- cgit v1.2.3 From f610dd9c7204e7f0725b726459841d94ad4ee011 Mon Sep 17 00:00:00 2001 From: snowleo Date: Tue, 5 Jul 2011 23:50:31 +0200 Subject: Limiting the amount of money a player can have. The maximum limit is 10 trillions. --- .../src/com/earth2me/essentials/Settings.java | 10 ++++++ .../src/com/earth2me/essentials/UserData.java | 37 ++++++++++++---------- Essentials/src/config.yml | 4 +++ 3 files changed, 34 insertions(+), 17 deletions(-) diff --git a/Essentials/src/com/earth2me/essentials/Settings.java b/Essentials/src/com/earth2me/essentials/Settings.java index e1e60cb35..4622bbe46 100644 --- a/Essentials/src/com/earth2me/essentials/Settings.java +++ b/Essentials/src/com/earth2me/essentials/Settings.java @@ -375,4 +375,14 @@ public class Settings implements IConf { return config.getBoolean(configName, def); } + + private final static double MAXMONEY = 10000000000000.0; + double getMaxMoney() + { + double max = config.getDouble("max-money", MAXMONEY); + if (Math.abs(max) > MAXMONEY) { + max = max < 0 ? -MAXMONEY : MAXMONEY; + } + return max; + } } diff --git a/Essentials/src/com/earth2me/essentials/UserData.java b/Essentials/src/com/earth2me/essentials/UserData.java index 5aa98eeb4..896339642 100644 --- a/Essentials/src/com/earth2me/essentials/UserData.java +++ b/Essentials/src/com/earth2me/essentials/UserData.java @@ -58,18 +58,20 @@ public abstract class UserData extends PlayerExtension implements IConf isSocialSpyEnabled = _isSocialSpyEnabled(); isNPC = _isNPC(); } - private double money; - - private double _getMoney() { + + private double _getMoney() + { + double money = ess.getSettings().getStartingBalance(); if (config.hasProperty("money")) { - return config.getDouble("money", ess.getSettings().getStartingBalance()); + money = config.getDouble("money", money); } - else + if (Math.abs(money) > ess.getSettings().getMaxMoney()) { - return ess.getSettings().getStartingBalance(); + money = money < 0 ? -ess.getSettings().getMaxMoney() : ess.getSettings().getMaxMoney(); } + return money; } public double getMoney() @@ -80,6 +82,10 @@ public abstract class UserData extends PlayerExtension implements IConf public void setMoney(double value) { money = value; + if (Math.abs(money) > ess.getSettings().getMaxMoney()) + { + money = money < 0 ? -ess.getSettings().getMaxMoney() : ess.getSettings().getMaxMoney(); + } config.setProperty("money", value); config.save(); } @@ -92,7 +98,7 @@ public abstract class UserData extends PlayerExtension implements IConf } return false; } - + public Location getHome(Location location) { if (!hasHome()) @@ -383,6 +389,7 @@ public abstract class UserData extends PlayerExtension implements IConf setTeleportEnabled(ret); return ret; } + public boolean toggleSocialSpy() { boolean ret = !isSocialSpyEnabled(); @@ -622,7 +629,6 @@ public abstract class UserData extends PlayerExtension implements IConf setAfk(ret); return ret; } - private boolean newplayer; private boolean getNew() @@ -641,7 +647,6 @@ public abstract class UserData extends PlayerExtension implements IConf config.setProperty("newplayer", set); config.save(); } - private String geolocation; private String _getGeoLocation() @@ -668,38 +673,36 @@ public abstract class UserData extends PlayerExtension implements IConf } config.save(); } - private boolean isSocialSpyEnabled; - + private boolean _isSocialSpyEnabled() { return config.getBoolean("socialspy", false); } - + public boolean isSocialSpyEnabled() { return isSocialSpyEnabled; } - + public void setSocialSpyEnabled(boolean status) { isSocialSpyEnabled = status; config.setProperty("socialspy", status); config.save(); } - private boolean isNPC; - + private boolean _isNPC() { return config.getBoolean("npc", false); } - + public boolean isNPC() { return isNPC; } - + public void setNPC(boolean set) { isNPC = set; diff --git a/Essentials/src/config.yml b/Essentials/src/config.yml index 7f0b20e8f..95117bd26 100644 --- a/Essentials/src/config.yml +++ b/Essentials/src/config.yml @@ -229,6 +229,10 @@ command-costs: # Set this to a currency symbol you want to use. currency-symbol: '$' +# Set the maximum amount of money a player can have +# The amount is always limited to 10 trillions because of the limitations of a java double +max-money: 10000000000000 + ############################################################ # +------------------------------------------------------+ # # | EssentialsHelp | # -- cgit v1.2.3 From f2107047da4dd42267e7eeed83f67e19a41086d2 Mon Sep 17 00:00:00 2001 From: snowleo Date: Wed, 6 Jul 2011 00:05:44 +0200 Subject: Set sleeping ignored for afk players & disable afk mode on login --- .../essentials/EssentialsPlayerListener.java | 1 + Essentials/src/com/earth2me/essentials/User.java | 35 ++++++++++++++++------ 2 files changed, 27 insertions(+), 9 deletions(-) diff --git a/Essentials/src/com/earth2me/essentials/EssentialsPlayerListener.java b/Essentials/src/com/earth2me/essentials/EssentialsPlayerListener.java index 6b39cbb9b..b92a29ebb 100644 --- a/Essentials/src/com/earth2me/essentials/EssentialsPlayerListener.java +++ b/Essentials/src/com/earth2me/essentials/EssentialsPlayerListener.java @@ -261,6 +261,7 @@ public class EssentialsPlayerListener extends PlayerListener } user.setDisplayName(user.getNick()); + user.setAfk(false); if (!ess.getSettings().isCommandDisabled("motd") && user.isAuthorized("essentials.motd")) { diff --git a/Essentials/src/com/earth2me/essentials/User.java b/Essentials/src/com/earth2me/essentials/User.java index c3384d033..401619df0 100644 --- a/Essentials/src/com/earth2me/essentials/User.java +++ b/Essentials/src/com/earth2me/essentials/User.java @@ -31,7 +31,7 @@ public class User extends UserData implements Comparable, IReplyTo, IUser setBase(base); return this; } - + public boolean isAuthorized(IEssentialsCommand cmd) { return isAuthorized(cmd, "essentials."); @@ -53,7 +53,7 @@ public class User extends UserData implements Comparable, IReplyTo, IUser { return false; } - + return ess.getPermissionsHandler().hasPermission(this, node); } @@ -99,7 +99,7 @@ public class User extends UserData implements Comparable, IReplyTo, IUser { setMoney(getMoney() - value); reciever.setMoney(reciever.getMoney() + value); - sendMessage(Util.format("moneySentTo", Util.formatCurrency(value), reciever.getDisplayName())); + sendMessage(Util.format("moneySentTo", Util.formatCurrency(value), reciever.getDisplayName())); reciever.sendMessage(Util.format("moneyRecievedFrom", Util.formatCurrency(value), getDisplayName())); } } @@ -157,8 +157,8 @@ public class User extends UserData implements Comparable, IReplyTo, IUser { return false; } - return ChatColor.stripColor(this.getDisplayName()).equalsIgnoreCase(ChatColor.stripColor(((User) o).getDisplayName())); - + return ChatColor.stripColor(this.getDisplayName()).equalsIgnoreCase(ChatColor.stripColor(((User)o).getDisplayName())); + } @Override @@ -220,7 +220,7 @@ public class User extends UserData implements Comparable, IReplyTo, IUser { nickname = ess.getSettings().getOperatorColor().toString() + nickname + "§f"; } - catch(Exception e) + catch (Exception e) { } } @@ -250,14 +250,15 @@ public class User extends UserData implements Comparable, IReplyTo, IUser try { Method method = ess.getPaymentMethod().getMethod(); - if (!method.hasAccount(this.getName())) { + if (!method.hasAccount(this.getName())) + { throw new Exception(); } Method.MethodAccount account = ess.getPaymentMethod().getMethod().getAccount(this.getName()); return account.balance(); } catch (Throwable ex) - { + { } } return super.getMoney(); @@ -271,7 +272,8 @@ public class User extends UserData implements Comparable, IReplyTo, IUser try { Method method = ess.getPaymentMethod().getMethod(); - if (!method.hasAccount(this.getName())) { + if (!method.hasAccount(this.getName())) + { throw new Exception(); } Method.MethodAccount account = ess.getPaymentMethod().getMethod().getAccount(this.getName()); @@ -283,4 +285,19 @@ public class User extends UserData implements Comparable, IReplyTo, IUser } super.setMoney(value); } + + @Override + public void setAfk(boolean set) + { + this.setSleepingIgnored(set); + super.setAfk(set); + } + + @Override + public boolean toggleAfk() + { + boolean now = super.toggleAfk(); + this.setSleepingIgnored(now); + return now; + } } \ No newline at end of file -- cgit v1.2.3 From e92aeee91b61e25902af9e172c5f4a2a69945734 Mon Sep 17 00:00:00 2001 From: snowleo Date: Wed, 6 Jul 2011 00:14:06 +0200 Subject: Run the sign break event with the lowest priority, so it won't restore if other plugins cancel the event. --- Essentials/src/com/earth2me/essentials/Essentials.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Essentials/src/com/earth2me/essentials/Essentials.java b/Essentials/src/com/earth2me/essentials/Essentials.java index 1656a4e29..d75c13a73 100644 --- a/Essentials/src/com/earth2me/essentials/Essentials.java +++ b/Essentials/src/com/earth2me/essentials/Essentials.java @@ -196,7 +196,7 @@ public class Essentials extends JavaPlugin implements IEssentials final SignBlockListener signBlockListener = new SignBlockListener(this); pm.registerEvent(Type.SIGN_CHANGE, signBlockListener, Priority.Low, this); pm.registerEvent(Type.BLOCK_PLACE, signBlockListener, Priority.Low, this); - pm.registerEvent(Type.BLOCK_BREAK, signBlockListener, Priority.Low, this); + pm.registerEvent(Type.BLOCK_BREAK, signBlockListener, Priority.Lowest, this); pm.registerEvent(Type.BLOCK_IGNITE, signBlockListener, Priority.Low, this); pm.registerEvent(Type.BLOCK_BURN, signBlockListener, Priority.Low, this); -- cgit v1.2.3 From 526df76ca99a3082371dcec42764a6f8d4758316 Mon Sep 17 00:00:00 2001 From: snowleo Date: Wed, 6 Jul 2011 00:55:05 +0200 Subject: Weather sign --- .../com/earth2me/essentials/signs/SignWeather.java | 56 ++++++++++++++++++++++ Essentials/src/messages.properties | 1 + Essentials/src/messages_da.properties | 1 + Essentials/src/messages_de.properties | 1 + Essentials/src/messages_en.properties | 1 + Essentials/src/messages_fr.properties | 1 + Essentials/src/messages_nl.properties | 1 + 7 files changed, 62 insertions(+) create mode 100644 Essentials/src/com/earth2me/essentials/signs/SignWeather.java diff --git a/Essentials/src/com/earth2me/essentials/signs/SignWeather.java b/Essentials/src/com/earth2me/essentials/signs/SignWeather.java new file mode 100644 index 000000000..05496ac14 --- /dev/null +++ b/Essentials/src/com/earth2me/essentials/signs/SignWeather.java @@ -0,0 +1,56 @@ +package com.earth2me.essentials.signs; + +import com.earth2me.essentials.ChargeException; +import com.earth2me.essentials.IEssentials; +import com.earth2me.essentials.Trade; +import com.earth2me.essentials.User; +import com.earth2me.essentials.Util; + + +public class SignWeather extends EssentialsSign +{ + public SignWeather() + { + super("Weather"); + } + + @Override + protected boolean onSignCreate(final ISign sign, final User player, final String username, final IEssentials ess) throws SignException + { + validateTrade(sign, 2, ess); + final String timeString = sign.getLine(1); + if ("Sun".equalsIgnoreCase(timeString)) + { + sign.setLine(1, "§2Sun"); + return true; + } + if ("Storm".equalsIgnoreCase(timeString)) + { + sign.setLine(1, "§2Storm"); + return true; + } + throw new SignException(Util.i18n("onlySunStorm")); + } + + @Override + protected boolean onSignInteract(final ISign sign, final User player, final String username, final IEssentials ess) throws SignException, ChargeException + { + final Trade charge = getTrade(sign, 2, ess); + charge.isAffordableFor(player); + final String weatherString = sign.getLine(1); + if ("§2Sun".equalsIgnoreCase(weatherString)) + { + player.getWorld().setStorm(false); + charge.charge(player); + return true; + } + if ("§2Storm".equalsIgnoreCase(weatherString)) + { + player.getWorld().setStorm(true); + charge.charge(player); + return true; + } + throw new SignException(Util.i18n("onlySunStorm")); + } +} + diff --git a/Essentials/src/messages.properties b/Essentials/src/messages.properties index 1467df312..11bbd4687 100644 --- a/Essentials/src/messages.properties +++ b/Essentials/src/messages.properties @@ -199,6 +199,7 @@ now = now numberRequired = A number goes there, silly. onlyDayNight = /time only supports day/night. onlyPlayers = Only in-game players can use {0}. +onlySunStorm = /weather only supports sun/storm. parseError = Error parsing {0} on line {1} pendingTeleportCancelled = \u00a7cPending teleportation request cancelled. permissionsError = Missing Permissions/GroupManager; chat prefixes/suffixes will be disabled. diff --git a/Essentials/src/messages_da.properties b/Essentials/src/messages_da.properties index 8f696830c..27b3602b0 100644 --- a/Essentials/src/messages_da.properties +++ b/Essentials/src/messages_da.properties @@ -201,6 +201,7 @@ now = nu numberRequired = Der skal v\u00e6re et nummer, fjolle. onlyDayNight = /time underst\u00f8tter kun day/night. onlyPlayers = Kun in-game spillere kan bruge {0}. +onlySunStorm = /weather only supports sun/storm. parseError = Fejl ved parsing {0} p\u00e5 linje {1} pendingTeleportCancelled = \u00a7cVentende teleportations anmodning aflyst. permissionsError = Mangler Permissions/GroupManager; chat pr\u00e6fikser/suffikser vil v\u00e6re sl\u00e5et fra. diff --git a/Essentials/src/messages_de.properties b/Essentials/src/messages_de.properties index 7b287c583..110b6bcc6 100644 --- a/Essentials/src/messages_de.properties +++ b/Essentials/src/messages_de.properties @@ -199,6 +199,7 @@ now = jetzt numberRequired = Ein Zahl wird ben\u00f6tigt. onlyDayNight = /time unterst\u00fctzt nur day/night. onlyPlayers = Nur Spieler k\u00f6nnen {0} benutzen. +onlySunStorm = /weather unterst\u00fctzt nur sun/storm. parseError = Fehler beim Parsen von {0} in Zeile {1} pendingTeleportCancelled = \u00a7cLaufende Teleportierung abgebrochen. permissionsError = Permissions/GroupManager fehlt; Chat-Prefixe/-Suffixe sind ausgeschaltet. diff --git a/Essentials/src/messages_en.properties b/Essentials/src/messages_en.properties index 1467df312..11bbd4687 100644 --- a/Essentials/src/messages_en.properties +++ b/Essentials/src/messages_en.properties @@ -199,6 +199,7 @@ now = now numberRequired = A number goes there, silly. onlyDayNight = /time only supports day/night. onlyPlayers = Only in-game players can use {0}. +onlySunStorm = /weather only supports sun/storm. parseError = Error parsing {0} on line {1} pendingTeleportCancelled = \u00a7cPending teleportation request cancelled. permissionsError = Missing Permissions/GroupManager; chat prefixes/suffixes will be disabled. diff --git a/Essentials/src/messages_fr.properties b/Essentials/src/messages_fr.properties index c53559ed3..6cd2622a2 100644 --- a/Essentials/src/messages_fr.properties +++ b/Essentials/src/messages_fr.properties @@ -199,6 +199,7 @@ now = maintenant numberRequired = On a besoin d''un nombre ici, idiot. onlyDayNight = /time ne supporte que (jour) day/night (nuit). onlyPlayers = Seulement les joueurs en jeu peuvent utiliser {0}. +onlySunStorm = /weather only supports sun/storm. parseError = Erreur de conversion {0} \u00e0 la ligne {1} pendingTeleportCancelled = \u00a7cRequete de t\u00e9l\u00e9portation annul\u00e9e. permissionsError = Permissions/GroupManager manquant, les pr\u00e9fixes et suffixes ne seront pas affich\u00e9s. diff --git a/Essentials/src/messages_nl.properties b/Essentials/src/messages_nl.properties index 549c6a439..6ee9954e3 100644 --- a/Essentials/src/messages_nl.properties +++ b/Essentials/src/messages_nl.properties @@ -200,6 +200,7 @@ now = nu numberRequired = Er moet daar een nummer, grapjas. onlyDayNight = /time oondersteund alleen day/night. onlyPlayers = Alleen in-game spelers kunnen {0} gebruiken. +onlySunStorm = /weather only supports sun/storm. parseError = Fout bij ontleding {0} op regel {1} pendingTeleportCancelled = \u00a7cAangevraagde teleportatie afgelast. permissionsError = Vermisde Permissions/GroupManager; chat prefixes/suffixes worden uitgeschakeld. -- cgit v1.2.3 From 5006c68af201857583c3097554713a9fa497d1a8 Mon Sep 17 00:00:00 2001 From: snowleo Date: Wed, 6 Jul 2011 01:13:03 +0200 Subject: Bounce projectiles, if they are cancelled. --- .../com/earth2me/essentials/protect/EssentialsProtectEntityListener.java | 1 + 1 file changed, 1 insertion(+) diff --git a/EssentialsProtect/src/com/earth2me/essentials/protect/EssentialsProtectEntityListener.java b/EssentialsProtect/src/com/earth2me/essentials/protect/EssentialsProtectEntityListener.java index f93475337..f66302ffc 100644 --- a/EssentialsProtect/src/com/earth2me/essentials/protect/EssentialsProtectEntityListener.java +++ b/EssentialsProtect/src/com/earth2me/essentials/protect/EssentialsProtectEntityListener.java @@ -125,6 +125,7 @@ public class EssentialsProtectEntityListener extends EntityListener && !user.isAuthorized("essentials.protect.damage.disable"))) { event.setCancelled(true); + ((EntityDamageByProjectileEvent)event).setBounce(true); return; } -- cgit v1.2.3 From c2936186f8ca326659bf7a0b985603c5231a8dc7 Mon Sep 17 00:00:00 2001 From: snowleo Date: Wed, 6 Jul 2011 01:24:54 +0200 Subject: Now fireball explosion prevention has it's own config settings (was catched by tnt explosion prevention before) --- Essentials/src/config.yml | 1 + .../essentials/protect/EssentialsProtectEntityListener.java | 10 +++++++++- .../src/com/earth2me/essentials/protect/ProtectConfig.java | 1 + 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/Essentials/src/config.yml b/Essentials/src/config.yml index 95117bd26..aa9eed02b 100644 --- a/Essentials/src/config.yml +++ b/Essentials/src/config.yml @@ -325,6 +325,7 @@ protect: lightning-fire-spread: true portal-creation: false tnt-explosion: false + fireball-explosion: false creeper-explosion: false creeper-playerdamage: false creeper-blockdamage: false diff --git a/EssentialsProtect/src/com/earth2me/essentials/protect/EssentialsProtectEntityListener.java b/EssentialsProtect/src/com/earth2me/essentials/protect/EssentialsProtectEntityListener.java index f66302ffc..f8166b1d5 100644 --- a/EssentialsProtect/src/com/earth2me/essentials/protect/EssentialsProtectEntityListener.java +++ b/EssentialsProtect/src/com/earth2me/essentials/protect/EssentialsProtectEntityListener.java @@ -13,7 +13,9 @@ import org.bukkit.block.Block; import org.bukkit.block.BlockFace; import org.bukkit.craftbukkit.CraftServer; import org.bukkit.craftbukkit.CraftWorld; +import org.bukkit.craftbukkit.entity.CraftFireball; import org.bukkit.craftbukkit.entity.CraftPlayer; +import org.bukkit.craftbukkit.entity.CraftTNTPrimed; import org.bukkit.entity.Creeper; import org.bukkit.entity.Entity; import org.bukkit.entity.LivingEntity; @@ -221,12 +223,18 @@ public class EssentialsProtectEntityListener extends EntityListener event.setCancelled(true); return; } - else if (!(event.getEntity() instanceof LivingEntity) + else if (event.getEntity() instanceof CraftTNTPrimed && prot.getSettingBool(ProtectConfig.prevent_tnt_explosion)) { event.setCancelled(true); return; } + else if (event.getEntity() instanceof CraftFireball + && prot.getSettingBool(ProtectConfig.prevent_fireball_explosion)) + { + event.setCancelled(true); + return; + } // This code will prevent explosions near protected rails, signs or protected chests // TODO: Use protect db instead of this code diff --git a/EssentialsProtect/src/com/earth2me/essentials/protect/ProtectConfig.java b/EssentialsProtect/src/com/earth2me/essentials/protect/ProtectConfig.java index d9161bda8..75824c368 100644 --- a/EssentialsProtect/src/com/earth2me/essentials/protect/ProtectConfig.java +++ b/EssentialsProtect/src/com/earth2me/essentials/protect/ProtectConfig.java @@ -31,6 +31,7 @@ public enum ProtectConfig prevent_portal_creation("protect.prevent.portal-creation", false), prevent_block_on_rail("protect.protect.prevent-block-on-rails", false), prevent_tnt_explosion("protect.prevent.tnt-explosion", false), + prevent_fireball_explosion("protect.prevent.fireball-explosion", false), prevent_creeper_explosion("protect.prevent.creeper-explosion", true), prevent_creeper_playerdmg("protect.prevent.creeper-playerdamage", false), prevent_creeper_blockdmg("protect.prevent.creeper-blockdamage", false), -- cgit v1.2.3 From 674128b3f7e9f2bc9f1462d7313d32e259a3a9b7 Mon Sep 17 00:00:00 2001 From: snowleo Date: Wed, 6 Jul 2011 01:39:24 +0200 Subject: Prevent oversized lines on trade signs --- Essentials/src/com/earth2me/essentials/signs/SignTrade.java | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/Essentials/src/com/earth2me/essentials/signs/SignTrade.java b/Essentials/src/com/earth2me/essentials/signs/SignTrade.java index e63ff49b8..c7515a2fb 100644 --- a/Essentials/src/com/earth2me/essentials/signs/SignTrade.java +++ b/Essentials/src/com/earth2me/essentials/signs/SignTrade.java @@ -80,6 +80,10 @@ public class SignTrade extends EssentialsSign final Double money = getMoney(split[0]); if (money != null) { + if (Util.formatCurrency(money).length() * 2 > 15) + { + throw new SignException("Line can be too long!"); + } sign.setLine(index, Util.formatCurrency(money) + ":0"); return; } @@ -104,7 +108,12 @@ public class SignTrade extends EssentialsSign { throw new SignException(Util.i18n("moreThanZero")); } - sign.setLine(index, amount + " " + split[1] + ":0"); + String newline = amount + " " + split[1] + ":0"; + if ((newline + amount).length() > 16) + { + throw new SignException("Line can be too long!"); + } + sign.setLine(index, newline); return; } -- cgit v1.2.3 From 8afde1ccc0aaf089940c879fcbe3efb65e07a88f Mon Sep 17 00:00:00 2001 From: snowleo Date: Wed, 6 Jul 2011 01:55:15 +0200 Subject: Fix /realname --- .../com/earth2me/essentials/commands/Commandrealname.java | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/Essentials/src/com/earth2me/essentials/commands/Commandrealname.java b/Essentials/src/com/earth2me/essentials/commands/Commandrealname.java index 4d5ad8e9b..ce327b204 100644 --- a/Essentials/src/com/earth2me/essentials/commands/Commandrealname.java +++ b/Essentials/src/com/earth2me/essentials/commands/Commandrealname.java @@ -4,6 +4,7 @@ import org.bukkit.Server; import org.bukkit.entity.Player; import com.earth2me.essentials.User; import com.earth2me.essentials.Util; +import org.bukkit.ChatColor; public class Commandrealname extends EssentialsCommand @@ -20,15 +21,15 @@ public class Commandrealname extends EssentialsCommand { throw new NotEnoughArgumentsException(); } - String whois = args[0].toLowerCase(); + final String whois = args[0].toLowerCase(); charge(user); for (Player p : server.getOnlinePlayers()) { - User u = ess.getUser(p); - String dn = u.getDisplayName().toLowerCase(); - if (!whois.equals(dn) - && !whois.equals(ess.getSettings().getNicknamePrefix() + dn) - && !whois.equals(u.getName().toLowerCase())) + final User u = ess.getUser(p); + final String displayName = ChatColor.stripColor(u.getDisplayName()).toLowerCase(); + if (!whois.equals(displayName) + && !displayName.equals(ChatColor.stripColor(ess.getSettings().getNicknamePrefix()) + whois) + && !whois.equalsIgnoreCase(u.getName())) { continue; } -- cgit v1.2.3 From b2723740726631caa837dcf3d2695720eb170dcc Mon Sep 17 00:00:00 2001 From: snowleo Date: Wed, 6 Jul 2011 02:58:59 +0200 Subject: Basic logging of trade/buy/sell signs and sell command --- .../src/com/earth2me/essentials/Essentials.java | 2 + .../src/com/earth2me/essentials/Settings.java | 5 + Essentials/src/com/earth2me/essentials/Trade.java | 105 +++++++++++++++++++++ .../earth2me/essentials/commands/Commandsell.java | 5 +- .../src/com/earth2me/essentials/signs/SignBuy.java | 1 + .../com/earth2me/essentials/signs/SignSell.java | 1 + .../com/earth2me/essentials/signs/SignTrade.java | 4 + 7 files changed, 122 insertions(+), 1 deletion(-) diff --git a/Essentials/src/com/earth2me/essentials/Essentials.java b/Essentials/src/com/earth2me/essentials/Essentials.java index d75c13a73..27dc46409 100644 --- a/Essentials/src/com/earth2me/essentials/Essentials.java +++ b/Essentials/src/com/earth2me/essentials/Essentials.java @@ -241,11 +241,13 @@ public class Essentials extends JavaPlugin implements IEssentials public void onDisable() { instance = null; + Trade.closeLog(); logger.removeHandler(errorHandler); } public void reload() { + Trade.closeLog(); loadBanList(); for (IConf iConf : confList) diff --git a/Essentials/src/com/earth2me/essentials/Settings.java b/Essentials/src/com/earth2me/essentials/Settings.java index 4622bbe46..7f4328d1b 100644 --- a/Essentials/src/com/earth2me/essentials/Settings.java +++ b/Essentials/src/com/earth2me/essentials/Settings.java @@ -385,4 +385,9 @@ public class Settings implements IConf } return max; } + + boolean isEcoLogEnabled() + { + return config.getBoolean("economy-log-enabled", false); + } } diff --git a/Essentials/src/com/earth2me/essentials/Trade.java b/Essentials/src/com/earth2me/essentials/Trade.java index 93d73acde..0be445032 100644 --- a/Essentials/src/com/earth2me/essentials/Trade.java +++ b/Essentials/src/com/earth2me/essentials/Trade.java @@ -1,6 +1,13 @@ package com.earth2me.essentials; +import java.io.File; +import java.io.FileWriter; +import java.io.IOException; +import java.text.DateFormat; +import java.util.Date; import java.util.Map; +import java.util.logging.Level; +import java.util.logging.Logger; import org.bukkit.inventory.ItemStack; @@ -122,4 +129,102 @@ public class Trade { return itemStack; } + private static FileWriter fw = null; + + public static void log(String type, String subtype, String event, String sender, Trade charge, String receiver, Trade pay, IEssentials ess) + { + if (!ess.getSettings().isEcoLogEnabled()) + { + return; + } + if (fw == null) + { + try + { + fw = new FileWriter(new File(ess.getDataFolder(), "trade.log"), true); + } + catch (IOException ex) + { + Logger.getLogger("Minecraft").log(Level.SEVERE, null, ex); + } + } + StringBuilder sb = new StringBuilder(); + sb.append(type).append(",").append(subtype).append(",").append("event").append(",\""); + sb.append(DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL).format(new Date())); + sb.append("\",\""); + if (sender != null) + { + sb.append(sender); + } + sb.append("\","); + if (charge == null) + { + sb.append("\"\",\"\",\"\""); + } + else + { + if (charge.getItemStack() != null) + { + sb.append(charge.getItemStack().getAmount()).append(","); + sb.append(charge.getItemStack().getType().toString()).append(","); + sb.append(charge.getItemStack().getDurability()); + } + if (charge.getMoney() != null) + { + sb.append(charge.getMoney()).append(","); + sb.append("money").append(","); + sb.append(ess.getSettings().getCurrencySymbol()); + } + } + sb.append(",\""); + if (receiver != null) + { + sb.append(receiver); + } + sb.append("\","); + if (pay == null) + { + sb.append("\"\",\"\",\"\""); + } + else + { + if (pay.getItemStack() != null) + { + sb.append(pay.getItemStack().getAmount()).append(","); + sb.append(pay.getItemStack().getType().toString()).append(","); + sb.append(pay.getItemStack().getDurability()); + } + if (pay.getMoney() != null) + { + sb.append(pay.getMoney()).append(","); + sb.append("money").append(","); + sb.append(ess.getSettings().getCurrencySymbol()); + } + } + sb.append("\n"); + try + { + fw.write(sb.toString()); + fw.flush(); + } + catch (IOException ex) + { + Logger.getLogger("Minecraft").log(Level.SEVERE, null, ex); + } + } + + public static void closeLog() + { + if (fw != null) { + try + { + fw.close(); + } + catch (IOException ex) + { + Logger.getLogger("Minecraft").log(Level.SEVERE, null, ex); + } + fw = null; + } + } } diff --git a/Essentials/src/com/earth2me/essentials/commands/Commandsell.java b/Essentials/src/com/earth2me/essentials/commands/Commandsell.java index 155ee695c..4a20968b7 100644 --- a/Essentials/src/com/earth2me/essentials/commands/Commandsell.java +++ b/Essentials/src/com/earth2me/essentials/commands/Commandsell.java @@ -4,6 +4,7 @@ import org.bukkit.Server; import com.earth2me.essentials.Essentials; import com.earth2me.essentials.InventoryWorkaround; import com.earth2me.essentials.ItemDb; +import com.earth2me.essentials.Trade; import com.earth2me.essentials.User; import com.earth2me.essentials.Util; import java.util.logging.Level; @@ -151,8 +152,10 @@ public class Commandsell extends EssentialsCommand } charge(user); - InventoryWorkaround.removeItem(user.getInventory(), true, new ItemStack(is.getType(), amount, is.getDurability())); + final ItemStack ris = new ItemStack(is.getType(), amount, is.getDurability()); + InventoryWorkaround.removeItem(user.getInventory(), true, ris); user.updateInventory(); + Trade.log("Command", "Sell", "Item", user.getName(), new Trade(ris, ess), user.getName(), new Trade(worth*amount, ess), ess); user.giveMoney(worth * amount); user.sendMessage(Util.format("itemSold", Util.formatCurrency(worth * amount), amount, Util.formatCurrency(worth))); logger.log(Level.INFO, Util.format("itemSoldConsole", user.getDisplayName(), is.getType().toString().toLowerCase(), Util.formatCurrency(worth * amount), amount, Util.formatCurrency(worth))); diff --git a/Essentials/src/com/earth2me/essentials/signs/SignBuy.java b/Essentials/src/com/earth2me/essentials/signs/SignBuy.java index 21dc7683e..4249342e1 100644 --- a/Essentials/src/com/earth2me/essentials/signs/SignBuy.java +++ b/Essentials/src/com/earth2me/essentials/signs/SignBuy.java @@ -29,6 +29,7 @@ public class SignBuy extends EssentialsSign charge.isAffordableFor(player); items.pay(player); charge.charge(player); + Trade.log("Sign", "Buy", "Interact", username, charge, username, items, ess); return true; } } diff --git a/Essentials/src/com/earth2me/essentials/signs/SignSell.java b/Essentials/src/com/earth2me/essentials/signs/SignSell.java index d35a83518..9df1ec874 100644 --- a/Essentials/src/com/earth2me/essentials/signs/SignSell.java +++ b/Essentials/src/com/earth2me/essentials/signs/SignSell.java @@ -29,6 +29,7 @@ public class SignSell extends EssentialsSign charge.isAffordableFor(player); money.pay(player); charge.charge(player); + Trade.log("Sign", "Sell", "Interact", username, charge, username, money, ess); return true; } } diff --git a/Essentials/src/com/earth2me/essentials/signs/SignTrade.java b/Essentials/src/com/earth2me/essentials/signs/SignTrade.java index c7515a2fb..8f7b0f8c2 100644 --- a/Essentials/src/com/earth2me/essentials/signs/SignTrade.java +++ b/Essentials/src/com/earth2me/essentials/signs/SignTrade.java @@ -24,6 +24,7 @@ public class SignTrade extends EssentialsSign charge.isAffordableFor(player); sign.setLine(3, "§8" + username); charge.charge(player); + Trade.log("Sign", "Trade", "Create", username, charge, username, null, ess); return true; } @@ -35,6 +36,7 @@ public class SignTrade extends EssentialsSign final Trade stored = getTrade(sign, 1, true, true, ess); substractAmount(sign, 1, stored); stored.pay(player); + Trade.log("Sign", "Trade", "OwnerInteract", username, null, username, stored, ess); } else { @@ -45,6 +47,7 @@ public class SignTrade extends EssentialsSign trade.pay(player); addAmount(sign, 1, charge); charge.charge(player); + Trade.log("Sign", "Trade", "Interact", sign.getLine(3), charge, username, trade, ess); } return true; } @@ -58,6 +61,7 @@ public class SignTrade extends EssentialsSign final Trade stored2 = getTrade(sign, 2, true, false, ess); stored1.pay(player); stored2.pay(player); + Trade.log("Sign", "Trade", "Break", username, stored2, username, stored1, ess); return true; } else -- cgit v1.2.3 From db03b3c09eb6a7149392a3cf5b0f3d1eecf8c21b Mon Sep 17 00:00:00 2001 From: snowleo Date: Wed, 6 Jul 2011 03:13:03 +0200 Subject: Missing config for last commit --- Essentials/src/config.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Essentials/src/config.yml b/Essentials/src/config.yml index aa9eed02b..a3607c4ce 100644 --- a/Essentials/src/config.yml +++ b/Essentials/src/config.yml @@ -233,6 +233,9 @@ currency-symbol: '$' # The amount is always limited to 10 trillions because of the limitations of a java double max-money: 10000000000000 +# Enable this to log all interactions with trade/buy/sell signs and sell command +economy-log-enabled: false + ############################################################ # +------------------------------------------------------+ # # | EssentialsHelp | # -- cgit v1.2.3 From 56a2398d9bf7bb946066006781b10360ec1997b4 Mon Sep 17 00:00:00 2001 From: snowleo Date: Wed, 6 Jul 2011 02:59:16 -0700 Subject: Added a comment to config that the item-spawn-blacklist will be ignored, if permission-based-item-spawn is set to true. --- Essentials/src/config.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/Essentials/src/config.yml b/Essentials/src/config.yml index a3607c4ce..1908b1d2e 100644 --- a/Essentials/src/config.yml +++ b/Essentials/src/config.yml @@ -51,6 +51,7 @@ default-stack-size: 64 item-spawn-blacklist: # Set this to true if you want permission based item spawn rules +# Note: The blacklist above will be ignored then. # Permissions: # - essentials.itemspawn.item-all # - essentials.itemspawn.item-[itemname] -- cgit v1.2.3