diff options
Diffstat (limited to 'src/main/java/io/github/moulberry/notenoughupdates/NEUManager.java')
| -rw-r--r-- | src/main/java/io/github/moulberry/notenoughupdates/NEUManager.java | 541 |
1 files changed, 277 insertions, 264 deletions
diff --git a/src/main/java/io/github/moulberry/notenoughupdates/NEUManager.java b/src/main/java/io/github/moulberry/notenoughupdates/NEUManager.java index 5fef4c62..59332f23 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/NEUManager.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/NEUManager.java @@ -40,10 +40,10 @@ public class NEUManager { public final Gson gson; public final APIManager auctionManager; - private TreeMap<String, JsonObject> itemMap = new TreeMap<>(); + private final TreeMap<String, JsonObject> itemMap = new TreeMap<>(); - private TreeMap<String, HashMap<String, List<Integer>>> titleWordMap = new TreeMap<>(); - private TreeMap<String, HashMap<String, List<Integer>>> loreWordMap = new TreeMap<>(); + private final TreeMap<String, HashMap<String, List<Integer>>> titleWordMap = new TreeMap<>(); + private final TreeMap<String, HashMap<String, List<Integer>>> loreWordMap = new TreeMap<>(); public final KeyBinding keybindGive = new KeyBinding("Add item to inventory (Creative-only)", Keyboard.KEY_L, "NotEnoughUpdates"); public final KeyBinding keybindFavourite = new KeyBinding("Set item as favourite", Keyboard.KEY_F, "NotEnoughUpdates"); @@ -52,23 +52,23 @@ public class NEUManager { public final KeyBinding keybindToggleDisplay = new KeyBinding("Toggle NEU overlay", 0, "NotEnoughUpdates"); public final KeyBinding keybindClosePanes = new KeyBinding("Close NEU panes", 0, "NotEnoughUpdates"); public final KeyBinding keybindItemSelect = new KeyBinding("Select Item", -98 /*middle*/, "NotEnoughUpdates"); - public final KeyBinding[] keybinds = new KeyBinding[]{ keybindGive, keybindFavourite, keybindViewUsages, keybindViewRecipe, + public final KeyBinding[] keybinds = new KeyBinding[]{keybindGive, keybindFavourite, keybindViewUsages, keybindViewRecipe, keybindToggleDisplay, keybindClosePanes, keybindItemSelect}; public String viewItemAttemptID = null; public long viewItemAttemptTime = 0; private String currentProfile = ""; - private String currentProfileBackup = ""; + private final String currentProfileBackup = ""; public final HypixelApi hypixelApi = new HypixelApi(); - private Map<String, ItemStack> itemstackCache = new HashMap<>(); + private final Map<String, ItemStack> itemstackCache = new HashMap<>(); - private ExecutorService repoLoaderES = Executors.newSingleThreadExecutor(); + private final ExecutorService repoLoaderES = Executors.newSingleThreadExecutor(); private static String GIT_COMMITS_URL; - private HashMap<String, Set<String>> usagesMap = new HashMap<>(); + private final HashMap<String, Set<String>> usagesMap = new HashMap<>(); public String latestRepoCommit = null; @@ -97,25 +97,33 @@ public class NEUManager { } public <T> T getJsonFromFile(File file, Class<T> clazz) { - try(BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream(file), StandardCharsets.UTF_8))) { + try (BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream(file), StandardCharsets.UTF_8))) { T obj = gson.fromJson(reader, clazz); return obj; - } catch(Exception e) { return null; } + } catch (Exception e) { + return null; + } } /** * Parses a file in to a JsonObject. */ public JsonObject getJsonFromFile(File file) { - try(BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream(file), StandardCharsets.UTF_8))) { + try (BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream(file), StandardCharsets.UTF_8))) { JsonObject json = gson.fromJson(reader, JsonObject.class); return json; - } catch(Exception e) { return null; } + } catch (Exception e) { + return null; + } } public void resetRepo() { - try { Utils.recursiveDelete(new File(configLocation, "repo")); } catch(Exception e) {} - try { new File(configLocation, "currentCommit.json").delete(); } catch(Exception e) {} + try { + Utils.recursiveDelete(new File(configLocation, "repo")); + } catch (Exception ignored) {} + try { + new File(configLocation, "currentCommit.json").delete(); + } catch (Exception ignored) {} } /** @@ -158,27 +166,27 @@ public class NEUManager { repoLoaderES.submit(() -> { JDialog dialog = null; try { - if(NotEnoughUpdates.INSTANCE.config.hidden.autoupdate) { + if (NotEnoughUpdates.INSTANCE.config.hidden.autoupdate) { JOptionPane pane = new JOptionPane("Getting items to download from remote repository."); dialog = pane.createDialog("NotEnoughUpdates Remote Sync"); dialog.setModal(false); - if(NotEnoughUpdates.INSTANCE.config.hidden.dev) dialog.setVisible(true); + if (NotEnoughUpdates.INSTANCE.config.hidden.dev) dialog.setVisible(true); if (Display.isActive()) dialog.toFront(); JsonObject currentCommitJSON = getJsonFromFile(new File(configLocation, "currentCommit.json")); latestRepoCommit = null; - try(Reader inReader = new InputStreamReader(new URL(GIT_COMMITS_URL).openStream())) { + try (Reader inReader = new InputStreamReader(new URL(GIT_COMMITS_URL).openStream())) { JsonObject commits = gson.fromJson(inReader, JsonObject.class); latestRepoCommit = commits.get("sha").getAsString(); } catch (Exception e) { e.printStackTrace(); } - if(latestRepoCommit == null || latestRepoCommit.isEmpty()) return; + if (latestRepoCommit == null || latestRepoCommit.isEmpty()) return; - if(new File(configLocation, "repo").exists() && new File(configLocation, "repo/items").exists()) { - if(currentCommitJSON != null && currentCommitJSON.get("sha").getAsString().equals(latestRepoCommit)) { + if (new File(configLocation, "repo").exists() && new File(configLocation, "repo/items").exists()) { + if (currentCommitJSON != null && currentCommitJSON.get("sha").getAsString().equals(latestRepoCommit)) { dialog.setVisible(false); return; } @@ -189,12 +197,11 @@ public class NEUManager { Utils.recursiveDelete(repoLocation); repoLocation.mkdirs(); - String dlUrl = neu.config.hidden.repoURL; pane.setMessage("Downloading NEU Master Archive. (DL# >20)"); dialog.pack(); - if(NotEnoughUpdates.INSTANCE.config.hidden.dev) dialog.setVisible(true); + if (NotEnoughUpdates.INSTANCE.config.hidden.dev) dialog.setVisible(true); if (Display.isActive()) dialog.toFront(); File itemsZip = new File(repoLocation, "neu-items-master.zip"); @@ -204,13 +211,12 @@ public class NEUManager { return; } - URL url = new URL(dlUrl); URLConnection urlConnection = url.openConnection(); urlConnection.setConnectTimeout(15000); urlConnection.setReadTimeout(30000); - try(InputStream is = urlConnection.getInputStream()) { + try (InputStream is = urlConnection.getInputStream()) { FileUtils.copyInputStreamToFile(is, itemsZip); } catch (IOException e) { dialog.dispose(); @@ -237,29 +243,28 @@ public class NEUManager { unzipIgnoreFirstFolder(itemsZip.getAbsolutePath(), repoLocation.getAbsolutePath()); - if(currentCommitJSON == null || !currentCommitJSON.get("sha").getAsString().equals(latestRepoCommit)) { + if (currentCommitJSON == null || !currentCommitJSON.get("sha").getAsString().equals(latestRepoCommit)) { JsonObject newCurrentCommitJSON = new JsonObject(); newCurrentCommitJSON.addProperty("sha", latestRepoCommit); try { writeJson(newCurrentCommitJSON, new File(configLocation, "currentCommit.json")); - } catch (IOException e) { - } + } catch (IOException ignored) {} } } - } catch(Exception e) { + } catch (Exception e) { e.printStackTrace(); } finally { - if(dialog != null) dialog.dispose(); + if (dialog != null) dialog.dispose(); } File items = new File(repoLocation, "items"); - if(items.exists()) { + if (items.exists()) { File[] itemFiles = new File(repoLocation, "items").listFiles(); - if(itemFiles != null) { - for(File f : itemFiles) { - String internalname = f.getName().substring(0, f.getName().length()-5); - synchronized(itemMap) { - if(!itemMap.keySet().contains(internalname)) { + if (itemFiles != null) { + for (File f : itemFiles) { + String internalname = f.getName().substring(0, f.getName().length() - 5); + synchronized (itemMap) { + if (!itemMap.containsKey(internalname)) { loadItem(internalname); } } @@ -269,19 +274,19 @@ public class NEUManager { try { Constants.reload(); - } catch(Exception e) { + } catch (Exception e) { e.printStackTrace(); } }); File items = new File(repoLocation, "items"); - if(items.exists()) { + if (items.exists()) { File[] itemFiles = new File(repoLocation, "items").listFiles(); - if(itemFiles != null) { - for(File f : itemFiles) { - String internalname = f.getName().substring(0, f.getName().length()-5); - synchronized(itemMap) { - if(!itemMap.keySet().contains(internalname)) { + if (itemFiles != null) { + for (File f : itemFiles) { + String internalname = f.getName().substring(0, f.getName().length() - 5); + synchronized (itemMap) { + if (!itemMap.containsKey(internalname)) { loadItem(internalname); } } @@ -291,7 +296,7 @@ public class NEUManager { try { Constants.reload(); - } catch(Exception e) { + } catch (Exception e) { e.printStackTrace(); } } @@ -299,41 +304,42 @@ public class NEUManager { /** * Loads the item in to the itemMap and also stores various words associated with this item * in to titleWordMap and loreWordMap. These maps are used in the searching algorithm. + * * @param internalName */ public void loadItem(String internalName) { itemstackCache.remove(internalName); try { JsonObject json = getJsonFromFile(new File(new File(repoLocation, "items"), internalName + ".json")); - if(json == null) { + if (json == null) { return; } - if(json.get("itemid") == null) return; + if (json.get("itemid") == null) return; String itemid = json.get("itemid").getAsString(); Item mcitem = Item.getByNameOrId(itemid); - if(mcitem != null) { + if (mcitem != null) { itemid = mcitem.getRegistryName(); } json.addProperty("itemid", itemid); itemMap.put(internalName, json); - if(json.has("recipe")) { - synchronized(usagesMap) { + if (json.has("recipe")) { + synchronized (usagesMap) { JsonObject recipe = json.get("recipe").getAsJsonObject(); - String[] x = {"1","2","3"}; - String[] y = {"A","B","C"}; - for(int i=0; i<9; i++) { - String name = y[i/3]+x[i%3]; + String[] x = {"1", "2", "3"}; + String[] y = {"A", "B", "C"}; + for (int i = 0; i < 9; i++) { + String name = y[i / 3] + x[i % 3]; String itemS = recipe.get(name).getAsString(); - if(itemS != null && itemS.split(":").length == 2) { + if (itemS != null && itemS.split(":").length == 2) { itemS = itemS.split(":")[0]; } - if(!usagesMap.containsKey(itemS)) { + if (!usagesMap.containsKey(itemS)) { usagesMap.put(itemS, new HashSet<>()); } usagesMap.get(itemS).add(internalName); @@ -341,15 +347,15 @@ public class NEUManager { } } - if(json.has("displayname")) { - synchronized(titleWordMap) { - int wordIndex=0; - for(String str : json.get("displayname").getAsString().split(" ")) { + if (json.has("displayname")) { + synchronized (titleWordMap) { + int wordIndex = 0; + for (String str : json.get("displayname").getAsString().split(" ")) { str = clean(str); - if(!titleWordMap.containsKey(str)) { + if (!titleWordMap.containsKey(str)) { titleWordMap.put(str, new HashMap<>()); } - if(!titleWordMap.get(str).containsKey(internalName)) { + if (!titleWordMap.get(str).containsKey(internalName)) { titleWordMap.get(str).put(internalName, new ArrayList<>()); } titleWordMap.get(str).get(internalName).add(wordIndex); @@ -358,16 +364,16 @@ public class NEUManager { } } - if(json.has("lore")) { - synchronized(loreWordMap) { - int wordIndex=0; - for(JsonElement element : json.get("lore").getAsJsonArray()) { - for(String str : element.getAsString().split(" ")) { + if (json.has("lore")) { + synchronized (loreWordMap) { + int wordIndex = 0; + for (JsonElement element : json.get("lore").getAsJsonArray()) { + for (String str : element.getAsString().split(" ")) { str = clean(str); - if(!loreWordMap.containsKey(str)) { + if (!loreWordMap.containsKey(str)) { loreWordMap.put(str, new HashMap<>()); } - if(!loreWordMap.get(str).containsKey(internalName)) { + if (!loreWordMap.get(str).containsKey(internalName)) { loreWordMap.get(str).put(internalName, new ArrayList<>()); } loreWordMap.get(str).get(internalName).add(wordIndex); @@ -376,11 +382,11 @@ public class NEUManager { } } } - } catch(Exception e) { - synchronized(loreWordMap) { + } catch (Exception e) { + synchronized (loreWordMap) { System.out.println("loreWordMap is : " + loreWordMap); } - synchronized(titleWordMap) { + synchronized (titleWordMap) { System.out.println("titleWordMap is : " + titleWordMap); } System.out.println("internalName is : " + internalName); @@ -399,9 +405,9 @@ public class NEUManager { query = clean(query).toLowerCase(); String[] splitToSeach = toSearch.split(" "); out: - for(String s : query.split(" ")) { - for(int i=0; i<splitToSeach.length; i++) { - if(lastMatch == -1 || lastMatch == i-1) { + for (String s : query.split(" ")) { + for (int i = 0; i < splitToSeach.length; i++) { + if (lastMatch == -1 || lastMatch == i - 1) { if (splitToSeach[i].startsWith(s)) { lastMatch = i; continue out; @@ -419,14 +425,14 @@ public class NEUManager { * more complex map-based search function. */ public boolean doesStackMatchSearch(ItemStack stack, String query) { - if(query.startsWith("title:")) { + if (query.startsWith("title:")) { query = query.substring(6); return searchString(stack.getDisplayName(), query); - } else if(query.startsWith("desc:")) { + } else if (query.startsWith("desc:")) { query = query.substring(5); String lore = ""; NBTTagCompound tag = stack.getTagCompound(); - if(tag != null) { + if (tag != null) { NBTTagCompound display = tag.getCompoundTag("display"); if (display.hasKey("Lore", 9)) { NBTTagList list = display.getTagList("Lore", 8); @@ -436,15 +442,15 @@ public class NEUManager { } } return searchString(lore, query); - } else if(query.startsWith("id:")) { + } else if (query.startsWith("id:")) { query = query.substring(3); String internalName = getInternalNameForItem(stack); return query.equalsIgnoreCase(internalName); } else { boolean result = false; - if(!query.trim().contains(" ")) { + if (!query.trim().contains(" ")) { StringBuilder sb = new StringBuilder(); - for(char c : query.toCharArray()) { + for (char c : query.toCharArray()) { sb.append(c).append(" "); } result = result || searchString(stack.getDisplayName(), sb.toString()); @@ -453,7 +459,7 @@ public class NEUManager { String lore = ""; NBTTagCompound tag = stack.getTagCompound(); - if(tag != null) { + if (tag != null) { NBTTagCompound display = tag.getCompoundTag("display"); if (display.hasKey("Lore", 9)) { NBTTagList list = display.getTagList("Lore", 8); @@ -474,16 +480,16 @@ public class NEUManager { * eg. search(A|B) = search(A) + search(B) */ public Set<String> search(String query, boolean multi) { - if(multi) { + if (multi) { Set<String> result = new HashSet<>(); StringBuilder query2 = new StringBuilder(); char lastOp = '|'; - for(char c : query.toCharArray()) { - if(c == '|' || c == '&') { - if(lastOp == '|') { + for (char c : query.toCharArray()) { + if (c == '|' || c == '&') { + if (lastOp == '|') { result.addAll(search(query2.toString())); - } else if(lastOp == '&') { + } else if (lastOp == '&') { result.retainAll(search(query2.toString())); } @@ -493,9 +499,9 @@ public class NEUManager { query2.append(c); } } - if(lastOp == '|') { + if (lastOp == '|') { result.addAll(search(query2.toString())); - } else if(lastOp == '&') { + } else if (lastOp == '&') { result.retainAll(search(query2.toString())); } @@ -543,22 +549,22 @@ public class NEUManager { public Set<String> search(String query) { query = query.trim(); boolean negate = query.startsWith("!"); - if(negate) query = query.substring(1); + if (negate) query = query.substring(1); LinkedHashSet<String> results = new LinkedHashSet<>(); - if(query.startsWith("title:")) { + if (query.startsWith("title:")) { query = query.substring(6); results.addAll(new TreeSet<>(search(query, titleWordMap))); - } else if(query.startsWith("desc:")) { + } else if (query.startsWith("desc:")) { query = query.substring(5); results.addAll(new TreeSet<>(search(query, loreWordMap))); - } else if(query.startsWith("id:")) { + } else if (query.startsWith("id:")) { query = query.substring(3); results.addAll(new TreeSet<>(subMapWithKeysThatAreSuffixes(query.toUpperCase(), itemMap).keySet())); } else { - if(!query.trim().contains(" ")) { + if (!query.trim().contains(" ")) { StringBuilder sb = new StringBuilder(); - for(char c : query.toCharArray()) { + for (char c : query.toCharArray()) { sb.append(c).append(" "); } results.addAll(new TreeSet<>(search(sb.toString(), titleWordMap))); @@ -566,11 +572,11 @@ public class NEUManager { results.addAll(new TreeSet<>(search(query, titleWordMap))); results.addAll(new TreeSet<>(search(query, loreWordMap))); } - if(!negate) { + if (!negate) { return results; } else { Set<String> negatedResults = new HashSet<>(); - for(String internalname : itemMap.keySet()) { + for (String internalname : itemMap.keySet()) { negatedResults.add(internalname); } negatedResults.removeAll(results); @@ -589,24 +595,24 @@ public class NEUManager { HashMap<String, List<Integer>> matches = null; query = clean(query).toLowerCase(); - for(String queryWord : query.split(" ")) { + for (String queryWord : query.split(" ")) { HashMap<String, List<Integer>> matchesToKeep = new HashMap<>(); - for(HashMap<String, List<Integer>> wordMatches : subMapWithKeysThatAreSuffixes(queryWord, wordMap).values()) { - if(wordMatches != null && !wordMatches.isEmpty()) { - if(matches == null) { + for (HashMap<String, List<Integer>> wordMatches : subMapWithKeysThatAreSuffixes(queryWord, wordMap).values()) { + if (wordMatches != null && !wordMatches.isEmpty()) { + if (matches == null) { //Copy all wordMatches to titleMatches - for(String internalname : wordMatches.keySet()) { - if(!matchesToKeep.containsKey(internalname)) { + for (String internalname : wordMatches.keySet()) { + if (!matchesToKeep.containsKey(internalname)) { matchesToKeep.put(internalname, new ArrayList<>()); } matchesToKeep.get(internalname).addAll(wordMatches.get(internalname)); } } else { - for(String internalname : matches.keySet()) { - if(wordMatches.containsKey(internalname)) { - for(Integer newIndex : wordMatches.get(internalname)) { - if(matches.get(internalname).contains(newIndex-1)) { - if(!matchesToKeep.containsKey(internalname)) { + for (String internalname : matches.keySet()) { + if (wordMatches.containsKey(internalname)) { + for (Integer newIndex : wordMatches.get(internalname)) { + if (matches.get(internalname).contains(newIndex - 1)) { + if (!matchesToKeep.containsKey(internalname)) { matchesToKeep.put(internalname, new ArrayList<>()); } matchesToKeep.get(internalname).add(newIndex); @@ -617,7 +623,7 @@ public class NEUManager { } } } - if(matchesToKeep.isEmpty()) return new HashSet<>(); + if (matchesToKeep.isEmpty()) return new HashSet<>(); matches = matchesToKeep; } @@ -634,11 +640,11 @@ public class NEUManager { } public String createLexicographicallyNextStringOfTheSameLength(String input) { - final int lastCharPosition = input.length()-1; + final int lastCharPosition = input.length() - 1; String inputWithoutLastChar = input.substring(0, lastCharPosition); - char lastChar = input.charAt(lastCharPosition) ; + char lastChar = input.charAt(lastCharPosition); char incrementedLastChar = (char) (lastChar + 1); - return inputWithoutLastChar+incrementedLastChar; + return inputWithoutLastChar + incrementedLastChar; } public JsonObject getJsonFromItemBytes(String item_bytes) { @@ -646,7 +652,7 @@ public class NEUManager { NBTTagCompound tag = CompressedStreamTools.readCompressed(new ByteArrayInputStream(Base64.getDecoder().decode(item_bytes))); //System.out.println(tag.toString()); return getJsonFromNBT(tag); - } catch(IOException e) { + } catch (IOException e) { return null; } } @@ -665,41 +671,47 @@ public class NEUManager { public String getInternalnameFromNBT(NBTTagCompound tag) { String internalname = null; - if(tag != null && tag.hasKey("ExtraAttributes", 10)) { + if (tag != null && tag.hasKey("ExtraAttributes", 10)) { NBTTagCompound ea = tag.getCompoundTag("ExtraAttributes"); - if(ea.hasKey("id", 8)) { + if (ea.hasKey("id", 8)) { internalname = ea.getString("id").replaceAll(":", "-"); } else { return null; } - if("PET".equals(internalname)) { + if ("PET".equals(internalname)) { String petInfo = ea.getString("petInfo"); - if(petInfo.length() > 0) { + if (petInfo.length() > 0) { JsonObject petInfoObject = gson.fromJson(petInfo, JsonObject.class); internalname = petInfoObject.get("type").getAsString(); String tier = petInfoObject.get("tier").getAsString(); - switch(tier) { + switch (tier) { case "COMMON": - internalname += ";0"; break; + internalname += ";0"; + break; case "UNCOMMON": - internalname += ";1"; break; + internalname += ";1"; + break; case "RARE": - internalname += ";2"; break; + internalname += ";2"; + break; case "EPIC": - internalname += ";3"; break; + internalname += ";3"; + break; case "LEGENDARY": - internalname += ";4"; break; + internalname += ";4"; + break; case "MYTHIC": - internalname += ";5"; break; + internalname += ";5"; + break; } } } - if("ENCHANTED_BOOK".equals(internalname)) { + if ("ENCHANTED_BOOK".equals(internalname)) { NBTTagCompound enchants = ea.getCompoundTag("enchantments"); - for(String enchname : enchants.getKeySet()) { + for (String enchname : enchants.getKeySet()) { internalname = enchname.toUpperCase() + ";" + enchants.getInteger(enchname); break; } @@ -713,10 +725,10 @@ public class NEUManager { String[] lore = new String[0]; NBTTagCompound display = tag.getCompoundTag("display"); - if(display.hasKey("Lore", 9)) { + if (display.hasKey("Lore", 9)) { NBTTagList list = display.getTagList("Lore", 8); lore = new String[list.tagCount()]; - for(int k=0; k<list.tagCount(); k++) { + for (int k = 0; k < list.tagCount(); k++) { lore[k] = list.getStringTagAt(k); } } @@ -728,24 +740,24 @@ public class NEUManager { } public JsonObject getJsonFromNBTEntry(NBTTagCompound tag) { - if(tag.getKeySet().size() == 0) return null; + if (tag.getKeySet().size() == 0) return null; int id = tag.getShort("id"); int damage = tag.getShort("Damage"); int count = tag.getShort("Count"); tag = tag.getCompoundTag("tag"); - if(id == 141) id = 391; //for some reason hypixel thinks carrots have id 141 + if (id == 141) id = 391; //for some reason hypixel thinks carrots have id 141 String internalname = getInternalnameFromNBT(tag); - if(internalname == null) return null; + if (internalname == null) return null; NBTTagCompound display = tag.getCompoundTag("display"); String[] lore = getLoreFromNBT(tag); Item itemMc = Item.getItemById(id); String itemid = "null"; - if(itemMc != null) { + if (itemMc != null) { itemid = itemMc.getRegistryName(); } String displayname = display.getString("Name"); @@ -757,29 +769,29 @@ public class NEUManager { item.addProperty("itemid", itemid); item.addProperty("displayname", displayname); - if(tag != null && tag.hasKey("ExtraAttributes", 10)) { + if (tag != null && tag.hasKey("ExtraAttributes", 10)) { NBTTagCompound ea = tag.getCompoundTag("ExtraAttributes"); byte[] bytes = null; - for(String key : ea.getKeySet()) { - if(key.endsWith("backpack_data") || key.equals("new_year_cake_bag_data")) { + for (String key : ea.getKeySet()) { + if (key.endsWith("backpack_data") || key.equals("new_year_cake_bag_data")) { bytes = ea.getByteArray(key); break; } } - if(bytes != null) { + if (bytes != null) { JsonArray bytesArr = new JsonArray(); - for(byte b : bytes) { + for (byte b : bytes) { bytesArr.add(new JsonPrimitive(b)); } item.add("item_contents", bytesArr); } - if(ea.hasKey("dungeon_item_level")) { + if (ea.hasKey("dungeon_item_level")) { item.addProperty("dungeon_item_level", ea.getInteger("dungeon_item_level")); } } - if(lore != null && lore.length > 0) { + if (lore != null && lore.length > 0) { JsonArray jsonLore = new JsonArray(); for (String line : lore) { jsonLore.add(new JsonPrimitive(line)); @@ -788,7 +800,7 @@ public class NEUManager { } item.addProperty("damage", damage); - if(count > 1) item.addProperty("count", count); + if (count > 1) item.addProperty("count", count); item.addProperty("nbttag", tag.toString()); return item; @@ -800,22 +812,22 @@ public class NEUManager { public void showRecipe(JsonObject item) { ContainerChest container = null; - if(Minecraft.getMinecraft().thePlayer.openContainer instanceof ContainerChest) + if (Minecraft.getMinecraft().thePlayer.openContainer instanceof ContainerChest) container = (ContainerChest) Minecraft.getMinecraft().thePlayer.openContainer; if (item.has("recipe") && container != null && container.getLowerChestInventory().getDisplayName().getUnformattedText().equals("Craft Item")) { CraftingOverlay.updateItem(item); - } else if(item.has("useneucraft") && item.get("useneucraft").getAsBoolean()) { + } else if (item.has("useneucraft") && item.get("useneucraft").getAsBoolean()) { displayGuiItemRecipe(item.get("internalname").getAsString(), ""); - } else if(item.has("clickcommand")) { + } else if (item.has("clickcommand")) { String clickcommand = item.get("clickcommand").getAsString(); - if(clickcommand.equals("viewrecipe")) { + if (clickcommand.equals("viewrecipe")) { neu.sendChatMessage( "/" + clickcommand + " " + item.get("internalname").getAsString().split(";")[0]); viewItemAttemptID = item.get("internalname").getAsString(); viewItemAttemptTime = System.currentTimeMillis(); - } else if(clickcommand.equals("viewpotion")) { + } else if (clickcommand.equals("viewpotion")) { neu.sendChatMessage( "/" + clickcommand + " " + item.get("internalname").getAsString().split(";")[0].toLowerCase()); @@ -833,26 +845,26 @@ public class NEUManager { //Item lore String[] lore = new String[0]; - if(tag.hasKey("display", 10)) { + if (tag.hasKey("display", 10)) { NBTTagCompound display = tag.getCompoundTag("display"); - if(display.hasKey("Lore", 9)) { + if (display.hasKey("Lore", 9)) { NBTTagList list = display.getTagList("Lore", 8); lore = new String[list.tagCount()]; - for(int i=0; i<list.tagCount(); i++) { + for (int i = 0; i < list.tagCount(); i++) { lore[i] = list.getStringTagAt(i); } } } - if(stack.getDisplayName().endsWith(" Recipes")) { - stack.setStackDisplayName(stack.getDisplayName().substring(0, stack.getDisplayName().length()-8)); + if (stack.getDisplayName().endsWith(" Recipes")) { + stack.setStackDisplayName(stack.getDisplayName().substring(0, stack.getDisplayName().length() - 8)); } - if(lore.length > 0 && (lore[lore.length-1].contains("Click to view recipes!") || - lore[lore.length-1].contains("Click to view recipe!"))) { - String[] lore2 = new String[lore.length-2]; - System.arraycopy(lore, 0, lore2, 0, lore.length-2); + if (lore.length > 0 && (lore[lore.length - 1].contains("Click to view recipes!") || + lore[lore.length - 1].contains("Click to view recipe!"))) { + String[] lore2 = new String[lore.length - 2]; + System.arraycopy(lore, 0, lore2, 0, lore.length - 2); lore = lore2; } @@ -863,7 +875,7 @@ public class NEUManager { json.addProperty("damage", stack.getItemDamage()); JsonArray jsonlore = new JsonArray(); - for(String line : lore) { + for (String line : lore) { jsonlore.add(new JsonPrimitive(line)); } json.add("lore", jsonlore); @@ -872,13 +884,13 @@ public class NEUManager { } public String getInternalNameForItem(ItemStack stack) { - if(stack == null) return null; + if (stack == null) return null; NBTTagCompound tag = stack.getTagCompound(); return getInternalnameFromNBT(tag); } public String getUUIDForItem(ItemStack stack) { - if(stack == null) return null; + if (stack == null) return null; NBTTagCompound tag = stack.getTagCompound(); return getUUIDFromNBT(tag); } @@ -886,7 +898,7 @@ public class NEUManager { public void writeItemToFile(ItemStack stack) { String internalname = getInternalNameForItem(stack); - if(internalname == null) { + if (internalname == null) { return; } @@ -896,8 +908,8 @@ public class NEUManager { json.addProperty("modver", NotEnoughUpdates.VERSION); try { - writeJson(json, new File(new File(repoLocation, "items"), internalname+".json")); - } catch (IOException e) {} + writeJson(json, new File(new File(repoLocation, "items"), internalname + ".json")); + } catch (IOException ignored) {} loadItem(internalname); } @@ -907,33 +919,33 @@ public class NEUManager { */ public boolean displayGuiItemUsages(String internalName) { List<ItemStack[]> craftMatrices = new ArrayList<>(); - List<JsonObject> results = new ArrayList<>(); + List<JsonObject> results = new ArrayList<>(); - if(!usagesMap.containsKey(internalName)) { + if (!usagesMap.containsKey(internalName)) { return false; } - for(String internalNameResult : usagesMap.get(internalName)) { + for (String internalNameResult : usagesMap.get(internalName)) { JsonObject item = getItemInformation().get(internalNameResult); results.add(item); - if(item != null && item.has("recipe")) { + if (item != null && item.has("recipe")) { JsonObject recipe = item.get("recipe").getAsJsonObject(); ItemStack[] craftMatrix = new ItemStack[9]; - String[] x = {"1","2","3"}; - String[] y = {"A","B","C"}; - for(int i=0; i<9; i++) { - String name = y[i/3]+x[i%3]; + String[] x = {"1", "2", "3"}; + String[] y = {"A", "B", "C"}; + for (int i = 0; i < 9; i++) { + String name = y[i / 3] + x[i % 3]; String itemS = recipe.get(name).getAsString(); int count = 1; - if(itemS != null && itemS.split(":").length == 2) { - count = Integer.valueOf(itemS.split(":")[1]); + if (itemS != null && itemS.split(":").length == 2) { + count = Integer.parseInt(itemS.split(":")[1 |
