aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorshedaniel <daniel@shedaniel.me>2022-06-28 03:23:21 +0800
committershedaniel <daniel@shedaniel.me>2022-06-28 03:23:21 +0800
commit943fa03de28ed923a10100e7e094e69364acc2e9 (patch)
treec5b2f1aa120ca994f28637b5ffd2afd7f6b26753
parent6c0eaa5b5d59870e3830fd3f877aa43847db56c7 (diff)
downloadRoughlyEnoughItems-943fa03de28ed923a10100e7e094e69364acc2e9.tar.gz
RoughlyEnoughItems-943fa03de28ed923a10100e7e094e69364acc2e9.tar.bz2
RoughlyEnoughItems-943fa03de28ed923a10100e7e094e69364acc2e9.zip
Fix potential crash
-rw-r--r--fabric/src/main/java/me/shedaniel/rei/mixin/fabric/MixinTagLoader.java7
1 files changed, 5 insertions, 2 deletions
diff --git a/fabric/src/main/java/me/shedaniel/rei/mixin/fabric/MixinTagLoader.java b/fabric/src/main/java/me/shedaniel/rei/mixin/fabric/MixinTagLoader.java
index 493361c56..4e1f3b020 100644
--- a/fabric/src/main/java/me/shedaniel/rei/mixin/fabric/MixinTagLoader.java
+++ b/fabric/src/main/java/me/shedaniel/rei/mixin/fabric/MixinTagLoader.java
@@ -58,7 +58,10 @@ public class MixinTagLoader<T> {
@Inject(method = "build", at = @At("RETURN"))
private void loadPost(Map<ResourceLocation, Tag.Builder> map, CallbackInfoReturnable<Map<ResourceLocation, Tag<T>>> cir) {
- HashBiMap<ResourceLocation, Tag<T>> biMap = HashBiMap.create(cir.getReturnValue());
+ Map<Tag<T>, ResourceLocation> inverseMap = new HashMap<>(cir.getReturnValue().size());
+ for (Map.Entry<ResourceLocation, Tag<T>> entry : cir.getReturnValue().entrySet()) {
+ inverseMap.put(entry.getValue(), entry.getKey());
+ }
ResourceKey<? extends Registry<?>> resourceKey = TagNodes.TAG_DIR_MAP.get(directory);
if (resourceKey == null) return;
TagNodes.TAG_DATA_MAP.put(resourceKey, new HashMap<>());
@@ -77,7 +80,7 @@ public class MixinTagLoader<T> {
entryIterator.remove();
if (registry != null) {
- ResourceLocation tagLoc = biMap.inverse().get(tag);
+ ResourceLocation tagLoc = inverseMap.get(tag);
if (tagLoc != null) {
TagNodes.RawTagData rawTagData = entry.getValue();