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
commit2928e8a99f823e593cd0942aa12fed63b21450a5 (patch)
tree744ecc934c050cd72dfe31cbf735f1e834bd8327
parentffae86dd42f424a0c14c17bcb65db287923852c1 (diff)
downloadEssentials-2928e8a99f823e593cd0942aa12fed63b21450a5.tar
Essentials-2928e8a99f823e593cd0942aa12fed63b21450a5.tar.gz
Essentials-2928e8a99f823e593cd0942aa12fed63b21450a5.tar.lz
Essentials-2928e8a99f823e593cd0942aa12fed63b21450a5.tar.xz
Essentials-2928e8a99f823e593cd0942aa12fed63b21450a5.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;
}