From 2942ef40f3f78a5316885302da2512b0e4d52e27 Mon Sep 17 00:00:00 2001 From: KHobbits Date: Tue, 31 Jan 2012 08:06:50 +0000 Subject: Update jails to new event system. --- Essentials/src/com/earth2me/essentials/Jails.java | 43 ++++++++++++----------- 1 file changed, 22 insertions(+), 21 deletions(-) diff --git a/Essentials/src/com/earth2me/essentials/Jails.java b/Essentials/src/com/earth2me/essentials/Jails.java index f8ab2d02e..7035fb859 100644 --- a/Essentials/src/com/earth2me/essentials/Jails.java +++ b/Essentials/src/com/earth2me/essentials/Jails.java @@ -1,18 +1,24 @@ package com.earth2me.essentials; +import static com.earth2me.essentials.I18n._; import com.earth2me.essentials.api.IJails; import com.earth2me.essentials.storage.AsyncStorageObjectHolder; -import static com.earth2me.essentials.I18n._; import java.io.File; import java.util.*; import java.util.logging.Level; import java.util.logging.Logger; import org.bukkit.Bukkit; import org.bukkit.Location; -import org.bukkit.event.Event.Priority; -import org.bukkit.event.Event.Type; -import org.bukkit.event.block.*; -import org.bukkit.event.player.*; +import org.bukkit.event.EventHandler; +import org.bukkit.event.EventPriority; +import org.bukkit.event.Listener; +import org.bukkit.event.block.BlockBreakEvent; +import org.bukkit.event.block.BlockDamageEvent; +import org.bukkit.event.block.BlockPlaceEvent; +import org.bukkit.event.player.PlayerInteractEvent; +import org.bukkit.event.player.PlayerJoinEvent; +import org.bukkit.event.player.PlayerRespawnEvent; +import org.bukkit.event.player.PlayerTeleportEvent; import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause; import org.bukkit.plugin.PluginManager; @@ -33,13 +39,8 @@ public class Jails extends AsyncStorageObjectHolder Date: Tue, 31 Jan 2012 08:33:14 +0000 Subject: More info, and less severe warning on jail error. --- Essentials/src/com/earth2me/essentials/Jails.java | 27 ++++++++++++++++++++--- Essentials/src/messages.properties | 2 +- Essentials/src/messages_da.properties | 2 +- Essentials/src/messages_de.properties | 2 +- Essentials/src/messages_en.properties | 2 +- Essentials/src/messages_es.properties | 2 +- Essentials/src/messages_fr.properties | 2 +- Essentials/src/messages_nl.properties | 2 +- 8 files changed, 31 insertions(+), 10 deletions(-) diff --git a/Essentials/src/com/earth2me/essentials/Jails.java b/Essentials/src/com/earth2me/essentials/Jails.java index 7035fb859..0011905ec 100644 --- a/Essentials/src/com/earth2me/essentials/Jails.java +++ b/Essentials/src/com/earth2me/essentials/Jails.java @@ -208,7 +208,14 @@ public class Jails extends AsyncStorageObjectHolder Date: Thu, 2 Feb 2012 09:26:36 +0000 Subject: Sanitize mail for untoward characters. Prevent a user error from terminating essentials timer task. --- .../src/com/earth2me/essentials/EssentialsTimer.java | 16 ++++++++++++---- Essentials/src/com/earth2me/essentials/Util.java | 10 ++++++++-- .../com/earth2me/essentials/commands/Commandmail.java | 7 ++++--- .../com/earth2me/essentials/signs/SignProtection.java | 2 +- 4 files changed, 25 insertions(+), 10 deletions(-) diff --git a/Essentials/src/com/earth2me/essentials/EssentialsTimer.java b/Essentials/src/com/earth2me/essentials/EssentialsTimer.java index f3b447dae..0c413bfc8 100644 --- a/Essentials/src/com/earth2me/essentials/EssentialsTimer.java +++ b/Essentials/src/com/earth2me/essentials/EssentialsTimer.java @@ -3,6 +3,7 @@ package com.earth2me.essentials; import java.util.HashSet; import java.util.Iterator; import java.util.Set; +import java.util.logging.Level; import org.bukkit.entity.Player; @@ -22,10 +23,17 @@ public class EssentialsTimer implements Runnable final long currentTime = System.currentTimeMillis(); for (Player player : ess.getServer().getOnlinePlayers()) { - final User user = ess.getUser(player); - onlineUsers.add(user); - user.setLastOnlineActivity(currentTime); - user.checkActivity(); + try + { + final User user = ess.getUser(player); + onlineUsers.add(user); + user.setLastOnlineActivity(currentTime); + user.checkActivity(); + } + catch (Exception e) + { + ess.getLogger().log(Level.WARNING, "EssentialsTimer Error:", e); + } } final Iterator iterator = onlineUsers.iterator(); diff --git a/Essentials/src/com/earth2me/essentials/Util.java b/Essentials/src/com/earth2me/essentials/Util.java index 386433326..48e2a53a0 100644 --- a/Essentials/src/com/earth2me/essentials/Util.java +++ b/Essentials/src/com/earth2me/essentials/Util.java @@ -21,11 +21,17 @@ public class Util { } private final static Logger logger = Logger.getLogger("Minecraft"); - private final static Pattern INVALIDCHARS = Pattern.compile("[^a-z0-9]"); + private final static Pattern INVALIDFILECHARS = Pattern.compile("[^a-z0-9]"); + private final static Pattern INVALIDCHARS = Pattern.compile("[^\\p{Print}]"); public static String sanitizeFileName(final String name) { - return INVALIDCHARS.matcher(name.toLowerCase(Locale.ENGLISH)).replaceAll("_"); + return INVALIDFILECHARS.matcher(name.toLowerCase(Locale.ENGLISH)).replaceAll("_"); + } + + public static String sanitizeString(final String string) + { + return INVALIDCHARS.matcher(string).replaceAll(""); } public static String formatDateDiff(long date) diff --git a/Essentials/src/com/earth2me/essentials/commands/Commandmail.java b/Essentials/src/com/earth2me/essentials/commands/Commandmail.java index 4a9928b85..abc551f58 100644 --- a/Essentials/src/com/earth2me/essentials/commands/Commandmail.java +++ b/Essentials/src/com/earth2me/essentials/commands/Commandmail.java @@ -40,7 +40,7 @@ public class Commandmail extends EssentialsCommand { if (!user.isAuthorized("essentials.mail.send")) { - throw new Exception(_("noPerm","essentials.mail.send")); + throw new Exception(_("noPerm", "essentials.mail.send")); } Player player = server.getPlayer(args[1]); @@ -59,7 +59,8 @@ public class Commandmail extends EssentialsCommand } if (!u.isIgnoredPlayer(user.getName())) { - u.addMail(user.getName() + ": " + Util.stripColor(getFinalArg(args, 2))); + final String mail = Util.sanitizeString(Util.stripColor(getFinalArg(args, 2))); + u.addMail(user.getName() + ": " + mail); } user.sendMessage(_("mailSent")); return; @@ -68,7 +69,7 @@ public class Commandmail extends EssentialsCommand { if (!user.isAuthorized("essentials.mail.sendall")) { - throw new Exception(_("noPerm","essentials.mail.sendall")); + throw new Exception(_("noPerm", "essentials.mail.sendall")); } ess.scheduleAsyncDelayedTask(new SendAll(user.getName() + ": " + Util.stripColor(getFinalArg(args, 1)))); user.sendMessage(_("mailSent")); diff --git a/Essentials/src/com/earth2me/essentials/signs/SignProtection.java b/Essentials/src/com/earth2me/essentials/signs/SignProtection.java index f64b6f3f1..088e74f01 100644 --- a/Essentials/src/com/earth2me/essentials/signs/SignProtection.java +++ b/Essentials/src/com/earth2me/essentials/signs/SignProtection.java @@ -129,7 +129,7 @@ public class SignProtection extends EssentialsSign if (block.getType() == Material.SIGN_POST || block.getType() == Material.WALL_SIGN) { final BlockSign sign = new BlockSign(block); - if (sign.getLine(0).equalsIgnoreCase(this.getSuccessName())) + if (sign.getLine(0).equals(this.getSuccessName())) { return checkProtectionSign(sign, user, username); } -- cgit v1.2.3 From 6e2ac3b56ec504b60c104b4a5856843e34b3eb23 Mon Sep 17 00:00:00 2001 From: KHobbits Date: Thu, 2 Feb 2012 09:37:30 +0000 Subject: Extend valid characters to be a little less strict. --- Essentials/src/com/earth2me/essentials/Util.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Essentials/src/com/earth2me/essentials/Util.java b/Essentials/src/com/earth2me/essentials/Util.java index 48e2a53a0..65077a7fc 100644 --- a/Essentials/src/com/earth2me/essentials/Util.java +++ b/Essentials/src/com/earth2me/essentials/Util.java @@ -22,7 +22,7 @@ public class Util } private final static Logger logger = Logger.getLogger("Minecraft"); private final static Pattern INVALIDFILECHARS = Pattern.compile("[^a-z0-9]"); - private final static Pattern INVALIDCHARS = Pattern.compile("[^\\p{Print}]"); + private final static Pattern INVALIDCHARS = Pattern.compile("[^\t\n\r\u0020-\u007E\u0085\u00A0-\uD7FF\uE000-\uFFFC]");; public static String sanitizeFileName(final String name) { -- cgit v1.2.3 From e3f3fe84ea9a2e665105f0acc334dbd0fd1c9f8e Mon Sep 17 00:00:00 2001 From: KHobbits Date: Thu, 2 Feb 2012 09:48:56 +0000 Subject: Recover from broken config files, but keep a backup of the old one for purpose of data recovery. --- Essentials/src/com/earth2me/essentials/EssentialsConf.java | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/Essentials/src/com/earth2me/essentials/EssentialsConf.java b/Essentials/src/com/earth2me/essentials/EssentialsConf.java index 35252532f..ec6e27b53 100644 --- a/Essentials/src/com/earth2me/essentials/EssentialsConf.java +++ b/Essentials/src/com/earth2me/essentials/EssentialsConf.java @@ -110,9 +110,10 @@ public class EssentialsConf extends Configuration super.load(); } catch (RuntimeException e) - { - LOGGER.log(Level.SEVERE, "File broken: " + configFile.toString()); - throw e; + { + File broken = new File(configFile.getAbsolutePath() + ".broken." + System.currentTimeMillis()); + configFile.renameTo(broken); + LOGGER.log(Level.SEVERE, "The file " + configFile.toString() + " is broken, it has been renamed to " + broken.toString(), e.getCause()); } if (this.root == null) -- cgit v1.2.3 From 492c4e8521a3c81ab6f6367a86c7d7f2f8802ef3 Mon Sep 17 00:00:00 2001 From: KHobbits Date: Thu, 2 Feb 2012 10:27:09 +0000 Subject: Craftbukkit #1846 Bukkit #1211 --- lib/bukkit.jar | Bin 4718659 -> 4718663 bytes lib/craftbukkit.jar | Bin 10689331 -> 10691664 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/lib/bukkit.jar b/lib/bukkit.jar index a06058767..aa26f4f35 100644 Binary files a/lib/bukkit.jar and b/lib/bukkit.jar differ diff --git a/lib/craftbukkit.jar b/lib/craftbukkit.jar index 188d0cabb..190294358 100644 Binary files a/lib/craftbukkit.jar and b/lib/craftbukkit.jar differ -- cgit v1.2.3 From 3ff1f4adbbad83d7987e6f43569eee69d6b1c0ef Mon Sep 17 00:00:00 2001 From: KHobbits Date: Thu, 2 Feb 2012 10:27:35 +0000 Subject: Fixing repair to not repair items with datavalues, unless they actually have a durability. --- Essentials/src/com/earth2me/essentials/commands/Commandrepair.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Essentials/src/com/earth2me/essentials/commands/Commandrepair.java b/Essentials/src/com/earth2me/essentials/commands/Commandrepair.java index cf9e43f9f..8d1278fd0 100644 --- a/Essentials/src/com/earth2me/essentials/commands/Commandrepair.java +++ b/Essentials/src/com/earth2me/essentials/commands/Commandrepair.java @@ -80,7 +80,7 @@ public class Commandrepair extends EssentialsCommand private void repairItem(final ItemStack item) throws Exception { final Material material = Material.getMaterial(item.getTypeId()); - if (material.isBlock() || material.getMaxDurability() < 0) + if (material.isBlock() || material.getMaxDurability() < 1) { throw new Exception(_("repairInvalidType")); } -- cgit v1.2.3 From 4326ce0d4ab98aec52894358c48bd7504ce51ebe Mon Sep 17 00:00:00 2001 From: KHobbits Date: Thu, 2 Feb 2012 10:32:18 +0000 Subject: Force minimum CB version to 1846, don't want people on #1840 due to big bugs. --- 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 e1c8c28b9..21f2e38ea 100644 --- a/Essentials/src/com/earth2me/essentials/Essentials.java +++ b/Essentials/src/com/earth2me/essentials/Essentials.java @@ -61,7 +61,7 @@ import org.yaml.snakeyaml.error.YAMLException; public class Essentials extends JavaPlugin implements IEssentials { - public static final int BUKKIT_VERSION = 1818; + public static final int BUKKIT_VERSION = 1846; private static final Logger LOGGER = Logger.getLogger("Minecraft"); private transient ISettings settings; private final transient TNTExplodeListener tntListener = new TNTExplodeListener(this); -- cgit v1.2.3 From 86a1dda46c6b269bb3c95fc0431e15838eeafbca Mon Sep 17 00:00:00 2001 From: KHobbits Date: Thu, 2 Feb 2012 10:43:17 +0000 Subject: Make it so ops can build, even if they don't have the matching permission. --- Essentials/src/com/earth2me/essentials/User.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Essentials/src/com/earth2me/essentials/User.java b/Essentials/src/com/earth2me/essentials/User.java index e23fe1de0..b289333aa 100644 --- a/Essentials/src/com/earth2me/essentials/User.java +++ b/Essentials/src/com/earth2me/essentials/User.java @@ -544,6 +544,10 @@ public class User extends UserData implements Comparable, IReplyTo, IUser public boolean canBuild() { + if (isOp()) + { + return true; + } return ess.getPermissionsHandler().canBuild(base, getGroup()); } -- cgit v1.2.3