From ca5f27dffcbca4c05ab499890e48e91551b2d506 Mon Sep 17 00:00:00 2001 From: FalsePattern Date: Sun, 9 Jun 2024 13:32:43 +0200 Subject: [PATCH] make emergency crash method unique --- .../common/biome/vanilla/ChunkMixin.java | 23 +++++++++++-------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/src/main/java/com/falsepattern/endlessids/mixin/mixins/common/biome/vanilla/ChunkMixin.java b/src/main/java/com/falsepattern/endlessids/mixin/mixins/common/biome/vanilla/ChunkMixin.java index 1c0ac01..a089db9 100644 --- a/src/main/java/com/falsepattern/endlessids/mixin/mixins/common/biome/vanilla/ChunkMixin.java +++ b/src/main/java/com/falsepattern/endlessids/mixin/mixins/common/biome/vanilla/ChunkMixin.java @@ -9,6 +9,7 @@ import org.spongepowered.asm.mixin.Final; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Overwrite; import org.spongepowered.asm.mixin.Shadow; +import org.spongepowered.asm.mixin.Unique; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; @@ -34,18 +35,20 @@ public abstract class ChunkMixin implements ChunkBiomeHook { public World worldObj; @Shadow private byte[] blockBiomeArray; - private short[] blockBiomeShortArray; + @Unique + private short[] eid$blockBiomeShortArray; @Inject(method = "(Lnet/minecraft/world/World;II)V", at = @At(value = "RETURN"), require = 1) private void initShortArray(World p_i1995_1_, int p_i1995_2_, int p_i1995_3_, CallbackInfo ci) { blockBiomeArray = null; - blockBiomeShortArray = new short[16 * 16]; - Arrays.fill(blockBiomeShortArray, (short) -1); + eid$blockBiomeShortArray = new short[16 * 16]; + Arrays.fill(eid$blockBiomeShortArray, (short) -1); } - private void emergencyCrash() { + @Unique + private void eid$emergencyCrash() { val crashMSG = "A mod that is incompatible with " + Tags.MODNAME + " has tried to access the biome array of a" + " chunk like in vanilla! Crashing in fear of potential world corruption!\n" + "Please report this issue on https://github.com/FalsePattern/EndlessIDs ASAP!"; @@ -57,14 +60,14 @@ public abstract class ChunkMixin implements ChunkBiomeHook { at = @At(value = "HEAD"), require = 1) private void crashSetBiomeArray(byte[] p_76616_1_, CallbackInfo ci) { - emergencyCrash(); + eid$emergencyCrash(); } @Inject(method = "getBiomeArray", at = @At(value = "HEAD"), require = 1) private void crashGetBiomeArray(CallbackInfoReturnable cir) { - emergencyCrash(); + eid$emergencyCrash(); } /** @@ -73,7 +76,7 @@ public abstract class ChunkMixin implements ChunkBiomeHook { */ @Overwrite public BiomeGenBase getBiomeGenForWorldCoords(int x, int z, WorldChunkManager manager) { - int id = this.blockBiomeShortArray[z << 4 | x] & ExtendedConstants.biomeIDMask; + int id = this.eid$blockBiomeShortArray[z << 4 | x] & ExtendedConstants.biomeIDMask; if (id == ExtendedConstants.biomeIDNull) { //Source: https://github.com/embeddedt/ArchaicFix/blob/3d1392f4db5a7221534a6f9b00c0c36a49d9be59/src/main/java/org/embeddedt/archaicfix/mixins/common/core/MixinChunk.java#L52 if (this.worldObj.isRemote) { @@ -81,7 +84,7 @@ public abstract class ChunkMixin implements ChunkBiomeHook { } BiomeGenBase gen = manager.getBiomeGenAt((this.xPosition << 4) + x, (this.zPosition << 4) + z); id = gen.biomeID; - this.blockBiomeShortArray[z << 4 | x] = (short) (id & ExtendedConstants.biomeIDMask); + this.eid$blockBiomeShortArray[z << 4 | x] = (short) (id & ExtendedConstants.biomeIDMask); } return BiomeGenBase.getBiome(id) == null ? BiomeGenBase.plains : BiomeGenBase.getBiome(id); @@ -89,11 +92,11 @@ public abstract class ChunkMixin implements ChunkBiomeHook { @Override public short[] getBiomeShortArray() { - return blockBiomeShortArray; + return eid$blockBiomeShortArray; } @Override public void setBiomeShortArray(short[] data) { - blockBiomeShortArray = data; + eid$blockBiomeShortArray = data; } }