From d53be400cf5cbdc6de3e153a8128ef975c694ec8 Mon Sep 17 00:00:00 2001 From: ementalo Date: Sat, 7 May 2011 13:03:45 +0000 Subject: [PATCH] [trunk] metadata support in itemsdb.java, allows worth commands with metadata git-svn-id: https://svn.java.net/svn/essentials~svn/trunk@1364 e251c2fe-e539-e718-e476-b85c1f46cddb --- .../src/com/earth2me/essentials/ItemDb.java | 15 +++++++++++++-- .../essentials/commands/Commandworth.java | 1 + 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/Essentials/src/com/earth2me/essentials/ItemDb.java b/Essentials/src/com/earth2me/essentials/ItemDb.java index a793a0258..3d845f005 100644 --- a/Essentials/src/com/earth2me/essentials/ItemDb.java +++ b/Essentials/src/com/earth2me/essentials/ItemDb.java @@ -89,14 +89,25 @@ public class ItemDb public static ItemStack get(String id) throws Exception { - int itemid = getUnsafe(id); + int itemid; + short metaData =0; + if(id.matches("^\\d+:\\d+$")) + { + itemid = getUnsafe(id.split(":")[0]); + metaData = (short)getUnsafe(id.split(":")[1]); + } + else + { + 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.getStatic().getSettings().getDefaultStackSize()); - retval.setDurability(durabilities.containsKey(id.toLowerCase()) ? durabilities.get(id.toLowerCase()) : 0); + retval.setDurability(metaData !=0 ? metaData :(durabilities.containsKey(id.toLowerCase()) ? durabilities.get(id.toLowerCase()) : 0)); return retval; } diff --git a/Essentials/src/com/earth2me/essentials/commands/Commandworth.java b/Essentials/src/com/earth2me/essentials/commands/Commandworth.java index 1b53d13d9..069061c78 100644 --- a/Essentials/src/com/earth2me/essentials/commands/Commandworth.java +++ b/Essentials/src/com/earth2me/essentials/commands/Commandworth.java @@ -49,6 +49,7 @@ public class Commandworth extends EssentialsCommand user.charge(this); user.sendMessage("§7Stack of " + is.getType().toString().toLowerCase().replace("_", "") + + (is.getDurability() !=0 ? " with metadata of "+ String.valueOf(is.getDurability()) : "") + " worth §c" + Util.formatCurrency(worth*amount) + "§7 (" + amount + " item(s) at " + Util.formatCurrency(worth) + " each)"); }