Use less invasive mixin on Blocks.rebuildCache()

Related: #99
This commit is contained in:
embeddedt 2023-05-15 22:19:54 -04:00
parent c1c9c02ff4
commit f22dbf5df1
No known key found for this signature in database
GPG Key ID: A69433EC199B5613

View File

@ -4,14 +4,15 @@ import net.minecraft.world.level.block.Blocks;
import org.embeddedt.modernfix.blockstate.BlockStateCacheHandler; import org.embeddedt.modernfix.blockstate.BlockStateCacheHandler;
import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.ModifyArg;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
@Mixin(Blocks.class) import java.util.function.Consumer;
@Mixin(value = Blocks.class, priority = 1100)
public class BlocksMixin { public class BlocksMixin {
@Inject(method = "rebuildCache", at = @At("HEAD"), cancellable = true) @ModifyArg(method = "rebuildCache", at = @At(value = "INVOKE", target = "Lnet/minecraft/core/IdMapper;forEach(Ljava/util/function/Consumer;)V"), index = 0)
private static void rebuildParallel(CallbackInfo ci) { private static Consumer getEmptyConsumer(Consumer original) {
ci.cancel();
BlockStateCacheHandler.rebuildParallel(true); BlockStateCacheHandler.rebuildParallel(true);
return o -> {};
} }
} }