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.java37
1 files changed, 19 insertions, 18 deletions
diff --git a/src/main/java/io/github/moulberry/notenoughupdates/NEUManager.java b/src/main/java/io/github/moulberry/notenoughupdates/NEUManager.java
index 668ac1fe..0381a70a 100644
--- a/src/main/java/io/github/moulberry/notenoughupdates/NEUManager.java
+++ b/src/main/java/io/github/moulberry/notenoughupdates/NEUManager.java
@@ -27,6 +27,7 @@ import java.nio.charset.StandardCharsets;
import java.util.*;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
+import java.util.concurrent.ThreadPoolExecutor;
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;
@@ -172,8 +173,6 @@ public class NEUManager {
}*/
-
-
Thread thread = new Thread(() -> {
JDialog dialog = null;
try {
@@ -277,7 +276,6 @@ public class NEUManager {
}
});
- System.out.println("finished thread create");
File items = new File(repoLocation, "items");
if(items.exists()) {
File[] itemFiles = new File(repoLocation, "items").listFiles();
@@ -652,6 +650,8 @@ public class NEUManager {
if(ea.hasKey("id", 8)) {
internalname = ea.getString("id").replaceAll(":", "-");
+ } else {
+ return null;
}
if("PET".equals(internalname)) {
@@ -1313,28 +1313,25 @@ public class NEUManager {
}
public ItemStack jsonToStack(JsonObject json, boolean useCache) {
- return jsonToStack(json, useCache, true, false);
+ return jsonToStack(json, useCache, true);
}
- private static ExecutorService asyncItemES = Executors.newFixedThreadPool(10);
- public ItemStack jsonToStack(JsonObject json, boolean useCache, boolean useReplacements, boolean multithread) {
+ public ItemStack jsonToStack(JsonObject json, boolean useCache, boolean useReplacements) {
+ return jsonToStack(json, useCache, useReplacements, true);
+ }
+
+ public ItemStack jsonToStack(JsonObject json, boolean useCache, boolean useReplacements, boolean copyStack) {
if(json == null) return new ItemStack(Items.painting, 1, 10);
String internalname = json.get("internalname").getAsString();
if(useCache) {
- if(itemstackCache.containsKey(internalname)) {
- ItemStack stack = itemstackCache.get(internalname);
- if(stack == null) {
- if(multithread) {
- return null;
- }
- } else {
+ ItemStack stack = itemstackCache.get(internalname);
+ if(stack != null) {
+ if(copyStack) {
return stack.copy();
+ } else {
+ return stack;
}
- } else if(multithread) {
- asyncItemES.submit(() -> jsonToStack(json, true, useReplacements, false));
- itemstackCache.put(internalname, null);
- return null;
}
}
@@ -1385,7 +1382,11 @@ public class NEUManager {
}
if(useCache) itemstackCache.put(internalname, stack);
- return stack;
+ if(copyStack) {
+ return stack.copy();
+ } else {
+ return stack;
+ }
}
}