aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/io/github/moulberry/notenoughupdates/NEUManager.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/io/github/moulberry/notenoughupdates/NEUManager.java')
-rw-r--r--src/main/java/io/github/moulberry/notenoughupdates/NEUManager.java541
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