Skip to content

Commit 8d99206

Browse files
committed
Extend world border in <=1.7
1 parent a4f7f34 commit 8d99206

File tree

2 files changed

+38
-11
lines changed

2 files changed

+38
-11
lines changed

src/main/java/net/raphimc/vialegacy/protocol/classic/c0_28_30toa1_0_15/Protocolc0_28_30Toa1_0_15.java

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -161,17 +161,17 @@ public void register() {
161161
levelStorage.sendChunk(new ChunkCoord(0, 0));
162162

163163
if (wrapper.user().getProtocolInfo().getPipeline().contains(Protocolr1_7_6_10Tor1_8.class)) {
164-
final PacketWrapper worldBorder = PacketWrapper.create(ClientboundPackets1_8.SET_BORDER, wrapper.user());
165-
worldBorder.write(Types.VAR_INT, 3); // action (INITIALIZE)
166-
worldBorder.write(Types.DOUBLE, sizeX / 2D); // centerX
167-
worldBorder.write(Types.DOUBLE, sizeZ / 2D); // centerZ
168-
worldBorder.write(Types.DOUBLE, 0.0D); // diameter
169-
worldBorder.write(Types.DOUBLE, (double) Math.max(sizeX, sizeZ)); // target size
170-
worldBorder.write(Types.VAR_LONG, 0L); // time until target size
171-
worldBorder.write(Types.VAR_INT, Math.max(sizeX, sizeZ)); // size
172-
worldBorder.write(Types.VAR_INT, 0); // warning distance
173-
worldBorder.write(Types.VAR_INT, 0); // warning time
174-
worldBorder.send(Protocolr1_7_6_10Tor1_8.class);
164+
final PacketWrapper setBorder = PacketWrapper.create(ClientboundPackets1_8.SET_BORDER, wrapper.user());
165+
setBorder.write(Types.VAR_INT, 3); // action (INITIALIZE)
166+
setBorder.write(Types.DOUBLE, sizeX / 2D); // center x
167+
setBorder.write(Types.DOUBLE, sizeZ / 2D); // center z
168+
setBorder.write(Types.DOUBLE, 0D); // old size
169+
setBorder.write(Types.DOUBLE, (double) Math.max(sizeX, sizeZ)); // new size
170+
setBorder.write(Types.VAR_LONG, 0L); // lerp time
171+
setBorder.write(Types.VAR_INT, Math.max(sizeX, sizeZ)); // new absolute max size
172+
setBorder.write(Types.VAR_INT, 0); // warning blocks
173+
setBorder.write(Types.VAR_INT, 0); // warning time
174+
setBorder.send(Protocolr1_7_6_10Tor1_8.class);
175175
}
176176

177177
sendChatMessage(wrapper.user(), "§aWorld dimensions: §6" + sizeX + "§ax§6" + sizeY + "§ax§6" + sizeZ);

src/main/java/net/raphimc/vialegacy/protocol/release/r1_7_6_10tor1_8/Protocolr1_7_6_10Tor1_8.java

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -145,6 +145,21 @@ public void register() {
145145
tracker.trackEntity(entityId, EntityTypes1_8.EntityType.PLAYER);
146146
tracker.setPlayerID(entityId);
147147
wrapper.user().getClientWorld(Protocolr1_7_6_10Tor1_8.class).setEnvironment(dimensionId);
148+
149+
wrapper.send(Protocolr1_7_6_10Tor1_8.class);
150+
wrapper.cancel();
151+
152+
final PacketWrapper setBorder = PacketWrapper.create(ClientboundPackets1_8.SET_BORDER, wrapper.user());
153+
setBorder.write(Types.VAR_INT, 3); // action (INITIALIZE)
154+
setBorder.write(Types.DOUBLE, 0D); // center x
155+
setBorder.write(Types.DOUBLE, 0D); // center z
156+
setBorder.write(Types.DOUBLE, 0D); // old size
157+
setBorder.write(Types.DOUBLE, 60_000_000D); // new size
158+
setBorder.write(Types.VAR_LONG, 0L); // lerp time
159+
setBorder.write(Types.VAR_INT, 60_000_000); // new absolute max size
160+
setBorder.write(Types.VAR_INT, 0); // warning blocks
161+
setBorder.write(Types.VAR_INT, 0); // warning time
162+
setBorder.send(Protocolr1_7_6_10Tor1_8.class);
148163
});
149164
}
150165
});
@@ -200,6 +215,18 @@ public void register() {
200215
wrapper.send(Protocolr1_7_6_10Tor1_8.class);
201216
wrapper.cancel();
202217

218+
final PacketWrapper setBorder = PacketWrapper.create(ClientboundPackets1_8.SET_BORDER, wrapper.user());
219+
setBorder.write(Types.VAR_INT, 3); // action (INITIALIZE)
220+
setBorder.write(Types.DOUBLE, 0D); // center x
221+
setBorder.write(Types.DOUBLE, 0D); // center z
222+
setBorder.write(Types.DOUBLE, 0D); // old size
223+
setBorder.write(Types.DOUBLE, 60_000_000D); // new size
224+
setBorder.write(Types.VAR_LONG, 0L); // lerp time
225+
setBorder.write(Types.VAR_INT, 60_000_000); // new absolute max size
226+
setBorder.write(Types.VAR_INT, 0); // warning blocks
227+
setBorder.write(Types.VAR_INT, 0); // warning time
228+
setBorder.send(Protocolr1_7_6_10Tor1_8.class);
229+
203230
// 1.7 doesn't keep entity data after respawn, but 1.8 does
204231
final List<EntityData> defaultEntityData = new ArrayList<>();
205232
defaultEntityData.add(new EntityData(EntityDataIndex1_7_6.ENTITY_FLAGS.getNewIndex(), EntityDataTypes1_8.BYTE, (byte) 0));

0 commit comments

Comments
 (0)