summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKHobbits <rob@khobbits.co.uk>2013-08-15 05:47:23 +0100
committerKHobbits <rob@khobbits.co.uk>2013-08-15 05:47:23 +0100
commit68534303ac51789c6496f67e186194d656329767 (patch)
treea6246b2fca893dc0dc14b9b8081750f687118072
parent1f0a684204a9c7eac3bdafbe63c4693da6dca032 (diff)
downloadEssentials-68534303ac51789c6496f67e186194d656329767.tar
Essentials-68534303ac51789c6496f67e186194d656329767.tar.gz
Essentials-68534303ac51789c6496f67e186194d656329767.tar.lz
Essentials-68534303ac51789c6496f67e186194d656329767.tar.xz
Essentials-68534303ac51789c6496f67e186194d656329767.zip
Use essentials itemdb for charge messages.
-rw-r--r--Essentials/src/com/earth2me/essentials/ItemDb.java25
-rw-r--r--Essentials/src/com/earth2me/essentials/Trade.java2
-rw-r--r--Essentials/src/com/earth2me/essentials/api/IItemDb.java2
3 files changed, 25 insertions, 4 deletions
diff --git a/Essentials/src/com/earth2me/essentials/ItemDb.java b/Essentials/src/com/earth2me/essentials/ItemDb.java
index b1afe4576..14833e0ce 100644
--- a/Essentials/src/com/earth2me/essentials/ItemDb.java
+++ b/Essentials/src/com/earth2me/essentials/ItemDb.java
@@ -21,6 +21,7 @@ public class ItemDb implements IConf, net.ess3.api.IItemDb
}
private final transient Map<String, Integer> items = new HashMap<String, Integer>();
private final transient Map<ItemData, List<String>> names = new HashMap<ItemData, List<String>>();
+ private final transient Map<ItemData, String> primaryName = new HashMap<ItemData, String>();
private final transient Map<String, Short> durabilities = new HashMap<String, Short>();
private final transient ManagedFile file;
private final transient Pattern splitPattern = Pattern.compile("[:+',;.]");
@@ -38,6 +39,7 @@ public class ItemDb implements IConf, net.ess3.api.IItemDb
durabilities.clear();
items.clear();
names.clear();
+ primaryName.clear();
for (String line : lines)
{
@@ -68,10 +70,11 @@ public class ItemDb implements IConf, net.ess3.api.IItemDb
Collections.sort(nameList, new LengthCompare());
}
else
- {
+ {
List<String> nameList = new ArrayList<String>();
nameList.add(itemName);
names.put(itemData, nameList);
+ primaryName.put(itemData, itemName);
}
}
}
@@ -211,8 +214,24 @@ public class ItemDb implements IConf, net.ess3.api.IItemDb
}
return StringUtil.joinList(", ", nameList);
}
-
-
+
+@Override
+ public String name(ItemStack item)
+ {
+ ItemData itemData = new ItemData(item.getTypeId(), item.getDurability());
+ String name = primaryName.get(itemData);
+ if (name == null)
+ {
+ itemData = new ItemData(item.getTypeId(), (short)0);
+ name = primaryName.get(itemData);
+ if (name == null)
+ {
+ return null;
+ }
+ }
+ return name;
+ }
+
static class ItemData
{
final private int itemNo;
diff --git a/Essentials/src/com/earth2me/essentials/Trade.java b/Essentials/src/com/earth2me/essentials/Trade.java
index 8e8070776..fcb9e38f7 100644
--- a/Essentials/src/com/earth2me/essentials/Trade.java
+++ b/Essentials/src/com/earth2me/essentials/Trade.java
@@ -104,7 +104,7 @@ public class Trade
if (getItemStack() != null
&& !user.getBase().getInventory().containsAtLeast(itemStack, itemStack.getAmount()))
{
- throw new ChargeException(_("missingItems", getItemStack().getAmount(), getItemStack().getType().toString().toLowerCase(Locale.ENGLISH).replace("_", " ")));
+ throw new ChargeException(_("missingItems", getItemStack().getAmount(), ess.getItemDb().name(getItemStack())));
}
BigDecimal money;
diff --git a/Essentials/src/com/earth2me/essentials/api/IItemDb.java b/Essentials/src/com/earth2me/essentials/api/IItemDb.java
index 063502fad..a1da6dd8e 100644
--- a/Essentials/src/com/earth2me/essentials/api/IItemDb.java
+++ b/Essentials/src/com/earth2me/essentials/api/IItemDb.java
@@ -14,5 +14,7 @@ public interface IItemDb
public String names(ItemStack item);
+ public String name(ItemStack item);
+
List<ItemStack> getMatching(User user, String[] args) throws Exception;
}