Skip to content

Commit 466818f

Browse files
authored
Fix (#185)
1 parent 866b19b commit 466818f

3 files changed

Lines changed: 23 additions & 3 deletions

File tree

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
package net.modificationstation.stationapi.impl.world;
2+
3+
public interface StationClientWorld {
4+
boolean stationAPI$isModded();
5+
}

station-flattening-v0/src/main/java/net/modificationstation/stationapi/mixin/flattening/client/ClientWorldMixin.java

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,14 @@
22

33
import net.minecraft.block.Block;
44
import net.minecraft.class_454;
5+
import net.minecraft.client.network.ClientNetworkHandler;
56
import net.minecraft.world.World;
67
import net.minecraft.world.dimension.Dimension;
78
import net.minecraft.world.dimension.DimensionData;
89
import net.modificationstation.stationapi.api.block.BlockState;
10+
import net.modificationstation.stationapi.api.network.ModdedPacketHandler;
911
import net.modificationstation.stationapi.impl.client.world.ClientBlockChange;
12+
import net.modificationstation.stationapi.impl.world.StationClientWorld;
1013
import org.spongepowered.asm.mixin.Mixin;
1114
import org.spongepowered.asm.mixin.Shadow;
1215
import org.spongepowered.asm.mixin.Unique;
@@ -17,13 +20,25 @@
1720
import java.util.LinkedList;
1821

1922
@Mixin(class_454.class)
20-
abstract class ClientWorldMixin extends World {
23+
abstract class ClientWorldMixin extends World implements StationClientWorld {
24+
@Unique boolean isModded = false;
25+
2126
@Shadow private LinkedList field_1722;
2227

2328
private ClientWorldMixin(DimensionData arg, String string, Dimension arg2, long l) {
2429
super(arg, string, arg2, l);
2530
}
2631

32+
@Inject(method = "<init>", at = @At("RETURN"))
33+
void mpCrashWorkaround(ClientNetworkHandler handler, long l, int i, CallbackInfo ci) {
34+
isModded = ((ModdedPacketHandler) handler).isModded();
35+
}
36+
37+
@Override
38+
public boolean stationAPI$isModded() {
39+
return isModded;
40+
}
41+
2742
@ModifyConstant(method = "method_1494(IIZ)V", constant = @Constant(intValue = 0))
2843
private int stationapi_changeMinHeight(int value) {
2944
return getBottomY();

station-flattening-v0/src/main/java/net/modificationstation/stationapi/mixin/flattening/client/MultiplayerChunkCacheMixin.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
import net.minecraft.world.World;
88
import net.minecraft.world.chunk.Chunk;
99
import net.modificationstation.stationapi.api.network.ModdedPacketHandler;
10+
import net.modificationstation.stationapi.impl.world.StationClientWorld;
1011
import net.modificationstation.stationapi.impl.world.chunk.FlattenedChunk;
1112
import org.spongepowered.asm.mixin.Mixin;
1213
import org.spongepowered.asm.mixin.Shadow;
@@ -28,8 +29,7 @@ class MultiplayerChunkCacheMixin {
2829
cancellable = true
2930
)
3031
public void stationapi_loadChunk(int i, int j, CallbackInfoReturnable<Chunk> cir) {
31-
//noinspection deprecation
32-
if (!((ModdedPacketHandler) ((Minecraft) FabricLoader.getInstance().getGameInstance()).getNetworkHandler()).isModded())
32+
if (!((StationClientWorld) field_2555).stationAPI$isModded())
3333
return;
3434
ChunkPos vec2i = new ChunkPos(i, j);
3535
FlattenedChunk chunk = new FlattenedChunk(this.field_2555, i, j);

0 commit comments

Comments
 (0)