From 448b32f43cbf7ae660cf4f6969b80e8f85217d94 Mon Sep 17 00:00:00 2001 From: snowleo Date: Sun, 1 May 2011 19:09:38 +0000 Subject: [trunk] Fix unknown itemids to crash clients. git-svn-id: https://svn.java.net/svn/essentials~svn/trunk@1297 e251c2fe-e539-e718-e476-b85c1f46cddb --- Essentials/src/com/earth2me/essentials/ItemDb.java | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/Essentials/src/com/earth2me/essentials/ItemDb.java b/Essentials/src/com/earth2me/essentials/ItemDb.java index 936563997..6dd82f156 100644 --- a/Essentials/src/com/earth2me/essentials/ItemDb.java +++ b/Essentials/src/com/earth2me/essentials/ItemDb.java @@ -8,6 +8,8 @@ import java.io.IOException; import java.io.InputStream; import java.util.*; import java.util.logging.Logger; +import java.util.regex.Pattern; +import org.bukkit.Material; import org.bukkit.inventory.ItemStack; @@ -88,11 +90,15 @@ public class ItemDb public static ItemStack get(String id) throws Exception { - ItemStack retval = new ItemStack(getUnsafe(id)); + int itemid = getUnsafe(id); + Material mat = Material.getMaterial(itemid); + if (mat == null) { + throw new Exception("Unknown item id: "+itemid); + } + ItemStack retval = new ItemStack(mat); retval.setAmount(Essentials.getSettings().getDefaultStackSize()); retval.setDurability(durabilities.containsKey(id.toLowerCase()) ? durabilities.get(id.toLowerCase()) : 0); - if (items.containsValue(retval.getTypeId()) || true) return retval; - throw new Exception("Unknown item numeric: " + retval); + return retval; } private static int getUnsafe(String id) throws Exception -- cgit v1.2.3