From 7471373c334b118b7d7c031c4ce63f28365b1355 Mon Sep 17 00:00:00 2001 From: Irtimaled Date: Mon, 25 May 2020 16:29:28 -0700 Subject: [PATCH] Support older server versions --- .../bbor/common/messages/AddBoundingBox.java | 14 ++++++++++++-- .../bbor/common/messages/PayloadReader.java | 1 - .../play/server/MixinSPacketCustomPayload.java | 5 +++-- 3 files changed, 15 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/irtimaled/bbor/common/messages/AddBoundingBox.java b/src/main/java/com/irtimaled/bbor/common/messages/AddBoundingBox.java index cc3759c..a34b704 100644 --- a/src/main/java/com/irtimaled/bbor/common/messages/AddBoundingBox.java +++ b/src/main/java/com/irtimaled/bbor/common/messages/AddBoundingBox.java @@ -3,12 +3,14 @@ package com.irtimaled.bbor.common.messages; import com.irtimaled.bbor.client.events.AddBoundingBoxReceived; import com.irtimaled.bbor.common.models.AbstractBoundingBox; import com.irtimaled.bbor.common.models.DimensionId; +import net.minecraft.world.dimension.DimensionType; import java.util.HashSet; import java.util.Set; public class AddBoundingBox { public static final String NAME = "bbor:add_bounding_box_v2"; + public static final String LEGACY = "bbor:add_bounding_box"; public static PayloadBuilder getPayload(DimensionId dimensionId, AbstractBoundingBox key, Set boundingBoxes) { if (!BoundingBoxSerializer.canSerialize(key)) return null; @@ -24,8 +26,8 @@ public class AddBoundingBox { return builder; } - public static AddBoundingBoxReceived getEvent(PayloadReader reader) { - DimensionId dimensionId = reader.readDimensionId(); + public static AddBoundingBoxReceived getEvent(PayloadReader reader, String name) { + DimensionId dimensionId = getDimensionId(reader, name); AbstractBoundingBox key = BoundingBoxDeserializer.deserialize(reader); if (key == null) return null; @@ -38,4 +40,12 @@ public class AddBoundingBox { boundingBoxes.add(key); return new AddBoundingBoxReceived(dimensionId, key, boundingBoxes); } + + private static DimensionId getDimensionId(PayloadReader reader, String name) { + if (name.equals(NAME)) return reader.readDimensionId(); + + int dimensionRawId = reader.readVarInt(); + DimensionType dimensionType = DimensionType.getById(dimensionRawId); + return DimensionId.from(dimensionType); + } } diff --git a/src/main/java/com/irtimaled/bbor/common/messages/PayloadReader.java b/src/main/java/com/irtimaled/bbor/common/messages/PayloadReader.java index 1186bc5..22974b7 100644 --- a/src/main/java/com/irtimaled/bbor/common/messages/PayloadReader.java +++ b/src/main/java/com/irtimaled/bbor/common/messages/PayloadReader.java @@ -3,7 +3,6 @@ package com.irtimaled.bbor.common.messages; import com.irtimaled.bbor.common.models.Coords; import com.irtimaled.bbor.common.models.DimensionId; import net.minecraft.network.PacketBuffer; -import net.minecraft.util.ResourceLocation; public class PayloadReader { private final PacketBuffer buffer; diff --git a/src/main/java/com/irtimaled/bbor/mixin/network/play/server/MixinSPacketCustomPayload.java b/src/main/java/com/irtimaled/bbor/mixin/network/play/server/MixinSPacketCustomPayload.java index b39c838..719d14a 100644 --- a/src/main/java/com/irtimaled/bbor/mixin/network/play/server/MixinSPacketCustomPayload.java +++ b/src/main/java/com/irtimaled/bbor/mixin/network/play/server/MixinSPacketCustomPayload.java @@ -34,8 +34,9 @@ public abstract class MixinSPacketCustomPayload { ((ClientPlayNetHandler) netHandlerPlayClient).sendPacket(SubscribeToServer.getPayload().build()); break; } - case AddBoundingBox.NAME: { - EventBus.publish(AddBoundingBox.getEvent(reader)); + case AddBoundingBox.NAME: + case AddBoundingBox.LEGACY: { + EventBus.publish(AddBoundingBox.getEvent(reader, channelName)); break; } } -- 2.44.0