]> git.lizzy.rs Git - BoundingBoxOutlineReloaded.git/blobdiff - src/main/java/com/irtimaled/bbor/common/messages/AddBoundingBox.java
Support older server versions
[BoundingBoxOutlineReloaded.git] / src / main / java / com / irtimaled / bbor / common / messages / AddBoundingBox.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);
+    }
 }