diff --git a/common/src/main/java/org/embeddedt/modernfix/common/mixin/bugfix/concurrency/RenderTypeEqualsStrategyMixin.java b/common/src/main/java/org/embeddedt/modernfix/common/mixin/bugfix/concurrency/RenderTypeEqualsStrategyMixin.java new file mode 100644 index 00000000..c3afbe3d --- /dev/null +++ b/common/src/main/java/org/embeddedt/modernfix/common/mixin/bugfix/concurrency/RenderTypeEqualsStrategyMixin.java @@ -0,0 +1,17 @@ +package org.embeddedt.modernfix.common.mixin.bugfix.concurrency; + +import net.minecraft.client.renderer.RenderType; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Redirect; + +import java.util.Objects; + +@Mixin(targets = { "net/minecraft/client/renderer/RenderType$CompositeRenderType$EqualsStrategy"}) +public class RenderTypeEqualsStrategyMixin { + @Redirect(method = "equals(Lnet/minecraft/client/renderer/RenderType$CompositeRenderType;Lnet/minecraft/client/renderer/RenderType$CompositeRenderType;)Z", at = @At(value = "INVOKE", target = "Ljava/util/Objects;equals(Ljava/lang/Object;Ljava/lang/Object;)Z", ordinal = 0)) + private boolean alsoCheckName(Object a, Object b, RenderType.CompositeRenderType type1, RenderType.CompositeRenderType type2) { + boolean supposedlyEqual = Objects.equals(a, b); + return supposedlyEqual && Objects.equals(type1.name, type2.name); + } +} diff --git a/common/src/main/resources/modernfix.accesswidener b/common/src/main/resources/modernfix.accesswidener index 5081dfe7..bf157c09 100644 --- a/common/src/main/resources/modernfix.accesswidener +++ b/common/src/main/resources/modernfix.accesswidener @@ -36,4 +36,5 @@ accessible field net/minecraft/client/Minecraft reserve [B accessible method net/minecraft/resources/ResourceKey (Lnet/minecraft/resources/ResourceLocation;Lnet/minecraft/resources/ResourceLocation;)V accessible method net/minecraft/client/renderer/texture/TextureAtlasSprite (Lnet/minecraft/client/renderer/texture/TextureAtlas;Lnet/minecraft/client/renderer/texture/TextureAtlasSprite$Info;IIIIILcom/mojang/blaze3d/platform/NativeImage;)V accessible field net/minecraft/client/renderer/block/model/BlockModel GSON Lcom/google/gson/Gson; -accessible field net/minecraft/server/MinecraftServer resources Lnet/minecraft/server/ServerResources; \ No newline at end of file +accessible field net/minecraft/server/MinecraftServer resources Lnet/minecraft/server/ServerResources; +accessible field net/minecraft/client/renderer/RenderStateShard name Ljava/lang/String; \ No newline at end of file