aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/me/shedaniel/rei/server/ContainerInfoHandler.java
diff options
context:
space:
mode:
authorshedaniel <daniel@shedaniel.me>2019-12-08 18:46:17 +0800
committershedaniel <daniel@shedaniel.me>2019-12-08 18:46:17 +0800
commit1b055888a74e68f5a287068428dc80196558fc98 (patch)
tree9a9f8707fb758966140dd68a56ef37b6598a4549 /src/main/java/me/shedaniel/rei/server/ContainerInfoHandler.java
parent237fb0b83944fc2fd4960bdc8a8b518a8ca9aaaf (diff)
downloadRoughlyEnoughItems-1b055888a74e68f5a287068428dc80196558fc98.tar.gz
RoughlyEnoughItems-1b055888a74e68f5a287068428dc80196558fc98.tar.bz2
RoughlyEnoughItems-1b055888a74e68f5a287068428dc80196558fc98.zip
Finally fixed the NPE
Diffstat (limited to 'src/main/java/me/shedaniel/rei/server/ContainerInfoHandler.java')
-rw-r--r--src/main/java/me/shedaniel/rei/server/ContainerInfoHandler.java13
1 files changed, 9 insertions, 4 deletions
diff --git a/src/main/java/me/shedaniel/rei/server/ContainerInfoHandler.java b/src/main/java/me/shedaniel/rei/server/ContainerInfoHandler.java
index 3ea2dc4f4..bad850074 100644
--- a/src/main/java/me/shedaniel/rei/server/ContainerInfoHandler.java
+++ b/src/main/java/me/shedaniel/rei/server/ContainerInfoHandler.java
@@ -12,11 +12,11 @@ import net.minecraft.util.Identifier;
import java.util.Map;
public class ContainerInfoHandler {
- private static final Map<String, Map<Class<? extends Container>, ContainerInfo>> containerInfoMap = Maps.newHashMap();
+ private static final Map<String, Map<Class<? extends Container>, ContainerInfo>> containerInfoMap = Maps.newLinkedHashMap();
public static void registerContainerInfo(Identifier category, ContainerInfo containerInfo) {
- if (!containerInfoMap.containsKey(category))
- containerInfoMap.put(category.toString(), Maps.newHashMap());
+ if (!containerInfoMap.containsKey(category.toString()))
+ containerInfoMap.put(category.toString(), Maps.newLinkedHashMap());
containerInfoMap.get(category.toString()).put(containerInfo.getContainerClass(), containerInfo);
}
@@ -25,6 +25,11 @@ public class ContainerInfoHandler {
}
public static ContainerInfo getContainerInfo(Identifier category, Class<?> containerClass) {
- return isCategoryHandled(category) ? containerInfoMap.get(category.toString()).get(containerClass) : null;
+ if (!isCategoryHandled(category)) return null;
+ Map<Class<? extends Container>, ContainerInfo> infoMap = containerInfoMap.get(category.toString());
+ if (infoMap.containsKey(containerClass)) return infoMap.get(containerClass);
+ for (Map.Entry<Class<? extends Container>, ContainerInfo> entry : infoMap.entrySet())
+ if (entry.getKey().isAssignableFrom(containerClass)) return entry.getValue();
+ return null;
}
}