diff --git a/fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/mixin/registry/sync/SimpleRegistryMixin.java b/fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/mixin/registry/sync/SimpleRegistryMixin.java index 92ffd5b34..7dbde1ddb 100644 --- a/fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/mixin/registry/sync/SimpleRegistryMixin.java +++ b/fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/mixin/registry/sync/SimpleRegistryMixin.java @@ -25,6 +25,7 @@ import java.util.Set; import com.google.common.collect.BiMap; import com.google.common.collect.HashBiMap; +import com.llamalad7.mixinextras.injector.ModifyExpressionValue; import com.mojang.serialization.Lifecycle; import it.unimi.dsi.fastutil.ints.Int2IntMap; import it.unimi.dsi.fastutil.ints.Int2IntOpenHashMap; @@ -379,4 +380,10 @@ public abstract class SimpleRegistryMixin implements MutableRegistry, Rema fabric_prevEntries = null; } } + + // Actually throw the exception when a duplicate is found. + @ModifyExpressionValue(method = "add", at = @At(value = "INVOKE", target = "Lnet/minecraft/util/Util;throwOrPause(Ljava/lang/Throwable;)Ljava/lang/Throwable;")) + private E throwOnDuplicate(E t) throws E { + throw t; + } }