]> git.lizzy.rs Git - BoundingBoxOutlineReloaded.git/commitdiff
Support older server versions
authorIrtimaled <irtimaled@gmail.com>
Mon, 25 May 2020 23:29:28 +0000 (16:29 -0700)
committerIrtimaled <irtimaled@gmail.com>
Tue, 26 May 2020 05:23:37 +0000 (22:23 -0700)
src/main/java/com/irtimaled/bbor/common/messages/AddBoundingBox.java
src/main/java/com/irtimaled/bbor/common/messages/PayloadReader.java
src/main/java/com/irtimaled/bbor/mixin/network/play/server/MixinSPacketCustomPayload.java

index cc3759c5f0d4cdf72bc4b00e9b0b43bfbcc5e8ee..a34b7044320bd45a02737ba372466e9c88e9d37e 100644 (file)
@@ -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<AbstractBoundingBox> 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);
+    }
 }
index 1186bc5eda1b08d2f4f92b43730f859b4b3e9b8b..22974b7a0f5250173eccdedad3797bb0d9830561 100644 (file)
@@ -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;
index b39c83858658972d1949983d84524e58c6c1bea4..719d14a88db050cdb27cfc3dfda9f6f2afb8f3bb 100644 (file)
@@ -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;
                     }
                 }