summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorsnowleo <snowleo@e251c2fe-e539-e718-e476-b85c1f46cddb>2011-05-09 00:22:45 +0000
committersnowleo <snowleo@e251c2fe-e539-e718-e476-b85c1f46cddb>2011-05-09 00:22:45 +0000
commited47df93e9efe2ef50e487d76b328bf3c05ef285 (patch)
treec8464bdd860633c4599b1c98c0562d1ad8f26a93
parente0f103c7d8a5008349436da61d4d17ee0a8c5485 (diff)
downloadEssentials-ed47df93e9efe2ef50e487d76b328bf3c05ef285.tar
Essentials-ed47df93e9efe2ef50e487d76b328bf3c05ef285.tar.gz
Essentials-ed47df93e9efe2ef50e487d76b328bf3c05ef285.tar.lz
Essentials-ed47df93e9efe2ef50e487d76b328bf3c05ef285.tar.xz
Essentials-ed47df93e9efe2ef50e487d76b328bf3c05ef285.zip
[trunk] Rewritten ItemDb.get(), removed the getUnsafe function.
git-svn-id: https://svn.java.net/svn/essentials~svn/trunk@1383 e251c2fe-e539-e718-e476-b85c1f46cddb
-rw-r--r--Essentials/src/com/earth2me/essentials/ItemDb.java64
1 files changed, 36 insertions, 28 deletions
diff --git a/Essentials/src/com/earth2me/essentials/ItemDb.java b/Essentials/src/com/earth2me/essentials/ItemDb.java
index 3d845f005..6eb35c50b 100644
--- a/Essentials/src/com/earth2me/essentials/ItemDb.java
+++ b/Essentials/src/com/earth2me/essentials/ItemDb.java
@@ -31,7 +31,10 @@ public class ItemDb
FileWriter tx = new FileWriter(file);
try
{
- for (int i = 0; (i = res.read()) > 0;) tx.write(i);
+ for (int i = 0; (i = res.read()) > 0;)
+ {
+ tx.write(i);
+ }
}
finally
{
@@ -58,14 +61,18 @@ public class ItemDb
{
String line = rx.readLine().trim().toLowerCase();
if (line.startsWith("#"))
+ {
continue;
-
+ }
+
String[] parts = line.split("[^a-z0-9]");
if (parts.length < 2)
+ {
continue;
-
+ }
+
int numeric = Integer.parseInt(parts[1]);
-
+
durabilities.put(parts[0].toLowerCase(), parts.length > 2 && !parts[2].equals("0") ? Short.parseShort(parts[2]) : 0);
items.put(parts[0].toLowerCase(), numeric);
}
@@ -80,8 +87,9 @@ public class ItemDb
rx.close();
}
}
-
- public static ItemStack get(String id, int quantity) throws Exception {
+
+ public static ItemStack get(String id, int quantity) throws Exception
+ {
ItemStack retval = get(id.toLowerCase());
retval.setAmount(quantity);
return retval;
@@ -90,37 +98,37 @@ public class ItemDb
public static ItemStack get(String id) throws Exception
{
int itemid;
- short metaData =0;
- if(id.matches("^\\d+:\\d+$"))
+ short metaData = 0;
+ if (id.matches("^\\d+:\\d+$"))
{
- itemid = getUnsafe(id.split(":")[0]);
- metaData = (short)getUnsafe(id.split(":")[1]);
+ itemid = Integer.parseInt(id.split(":")[0]);
+ metaData = Short.parseShort(id.split(":")[1]);
+ }
+ else if (id.matches("^\\d+$"))
+ {
+ itemid = Integer.parseInt(id);
+ }
+ else if (items.containsKey(id.toLowerCase()))
+ {
+ itemid = items.get(id.toLowerCase());
+ if (durabilities.containsKey(id.toLowerCase()))
+ {
+ metaData = durabilities.get(id.toLowerCase());
+ }
}
else
{
- itemid = getUnsafe(id);
+ throw new Exception("Unknown item name: " + id);
}
-
+
Material mat = Material.getMaterial(itemid);
- if (mat == null) {
- throw new Exception("Unknown item id: "+itemid);
+ if (mat == null)
+ {
+ throw new Exception("Unknown item id: " + itemid);
}
ItemStack retval = new ItemStack(mat);
retval.setAmount(Essentials.getStatic().getSettings().getDefaultStackSize());
- retval.setDurability(metaData !=0 ? metaData :(durabilities.containsKey(id.toLowerCase()) ? durabilities.get(id.toLowerCase()) : 0));
+ retval.setDurability(metaData);
return retval;
}
-
- private static int getUnsafe(String id) throws Exception
- {
- try
- {
- return Integer.parseInt(id);
- }
- catch (NumberFormatException ex)
- {
- if (items.containsKey(id.toLowerCase())) return items.get(id.toLowerCase());
- throw new Exception("Unknown item name: " + id);
- }
- }
}