diff options
| author | Moulberry <james.jenour@student.scotch.wa.edu.au> | 2020-07-10 02:13:17 +0800 |
|---|---|---|
| committer | Moulberry <james.jenour@student.scotch.wa.edu.au> | 2020-07-10 02:13:17 +0800 |
| commit | 2254c0fac78dbca807a93648c60c93281b8fb686 (patch) | |
| tree | b2fbeb5d53aa276197bb41f9869468c746cefca4 /src/main/java/io/github/moulberry/notenoughupdates/NEUManager.java | |
| parent | 7bdf7f256fe3968fe7129928c0a7100c30628bf9 (diff) | |
| download | notenoughupdates-2254c0fac78dbca807a93648c60c93281b8fb686.tar.gz notenoughupdates-2254c0fac78dbca807a93648c60c93281b8fb686.tar.bz2 notenoughupdates-2254c0fac78dbca807a93648c60c93281b8fb686.zip | |
1.9.9
Diffstat (limited to 'src/main/java/io/github/moulberry/notenoughupdates/NEUManager.java')
| -rw-r--r-- | src/main/java/io/github/moulberry/notenoughupdates/NEUManager.java | 55 |
1 files changed, 40 insertions, 15 deletions
diff --git a/src/main/java/io/github/moulberry/notenoughupdates/NEUManager.java b/src/main/java/io/github/moulberry/notenoughupdates/NEUManager.java index f3263e0f..77d3be7f 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/NEUManager.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/NEUManager.java @@ -223,12 +223,17 @@ public class NEUManager { } } - public JsonObject getAuctionPricesJson() { - return auctionPricesJson; + public boolean hasAuctionInfo(String internalname) { + return auctionPricesJson.has("item_data") && auctionPricesJson.get("item_data").getAsJsonObject().has(internalname); + } + + public boolean hasBazaarInfo(String internalname) { + return auctionPricesJson.has("bazaar") && auctionPricesJson.get("bazaar").getAsJsonObject().has(internalname); } public JsonObject getItemAuctionInfo(String internalname) { - JsonElement e = auctionPricesJson.get("prices").getAsJsonObject().get(internalname); + if(!hasAuctionInfo(internalname)) return null; + JsonElement e = auctionPricesJson.get("item_data").getAsJsonObject().get(internalname); if(e == null) { return null; } @@ -236,6 +241,7 @@ public class NEUManager { } public JsonObject getBazaarInfo(String internalname) { + if(!hasBazaarInfo(internalname)) return null; JsonElement e = auctionPricesJson.get("bazaar").getAsJsonObject().get(internalname); if(e == null) { return null; @@ -463,8 +469,13 @@ public class NEUManager { return; } + if(json.get("itemid") == null) return; + String itemid = json.get("itemid").getAsString(); - itemid = Item.getByNameOrId(itemid).getRegistryName(); + Item mcitem = Item.getByNameOrId(itemid); + if(mcitem != null) { + itemid = mcitem.getRegistryName(); + } json.addProperty("itemid", itemid); itemMap.put(internalName, json); @@ -787,14 +798,36 @@ public class NEUManager { } public String getInternalnameFromNBT(NBTTagCompound tag) { - String internalname = "UNKNOWN"; + String internalname = null; if(tag != null && tag.hasKey("ExtraAttributes", 10)) { NBTTagCompound ea = tag.getCompoundTag("ExtraAttributes"); if(ea.hasKey("id", 8)) { - internalname = ea.getString("id"); + internalname = ea.getString("id").replaceAll(":", "-"); + } + + if("PET".equals(internalname)) { + String petInfo = ea.getString("petInfo"); + if(petInfo.length() > 0) { + JsonObject petInfoObject = gson.fromJson(petInfo, JsonObject.class); + internalname = petInfoObject.get("type").getAsString(); + String tier = petInfoObject.get("tier").getAsString(); + switch(tier) { + case "COMMON": + internalname += ";0"; break; + case "UNCOMMON": + internalname += ";1"; break; + case "RARE": + internalname += ";2"; break; + case "EPIC": + internalname += ";3"; break; + case "LEGENDARY": + internalname += ";4"; break; + } + } } } + return internalname; } @@ -934,15 +967,7 @@ public class NEUManager { public String getInternalNameForItem(ItemStack stack) { NBTTagCompound tag = stack.getTagCompound(); - //Internal id - if(tag != null && tag.hasKey("ExtraAttributes", 10)) { - NBTTagCompound ea = tag.getCompoundTag("ExtraAttributes"); - - if(ea.hasKey("id", 8)) { - return ea.getString("id").replaceAll(":", "-"); - } - } - return null; + return getInternalnameFromNBT(tag); } //Currently unused in production. |
