|
2 | 2 |
|
3 | 3 | import net.minecraft.block.Block; |
4 | 4 | import net.minecraft.class_454; |
| 5 | +import net.minecraft.client.network.ClientNetworkHandler; |
5 | 6 | import net.minecraft.world.World; |
6 | 7 | import net.minecraft.world.dimension.Dimension; |
7 | 8 | import net.minecraft.world.dimension.DimensionData; |
8 | 9 | import net.modificationstation.stationapi.api.block.BlockState; |
| 10 | +import net.modificationstation.stationapi.api.network.ModdedPacketHandler; |
9 | 11 | import net.modificationstation.stationapi.impl.client.world.ClientBlockChange; |
| 12 | +import net.modificationstation.stationapi.impl.world.StationClientWorld; |
10 | 13 | import org.spongepowered.asm.mixin.Mixin; |
11 | 14 | import org.spongepowered.asm.mixin.Shadow; |
12 | 15 | import org.spongepowered.asm.mixin.Unique; |
|
17 | 20 | import java.util.LinkedList; |
18 | 21 |
|
19 | 22 | @Mixin(class_454.class) |
20 | | -abstract class ClientWorldMixin extends World { |
| 23 | +abstract class ClientWorldMixin extends World implements StationClientWorld { |
| 24 | + @Unique boolean isModded = false; |
| 25 | + |
21 | 26 | @Shadow private LinkedList field_1722; |
22 | 27 |
|
23 | 28 | private ClientWorldMixin(DimensionData arg, String string, Dimension arg2, long l) { |
24 | 29 | super(arg, string, arg2, l); |
25 | 30 | } |
26 | 31 |
|
| 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 | + |
27 | 42 | @ModifyConstant(method = "method_1494(IIZ)V", constant = @Constant(intValue = 0)) |
28 | 43 | private int stationapi_changeMinHeight(int value) { |
29 | 44 | return getBottomY(); |
|
0 commit comments