diff --git a/common/src/main/java/com/viaversion/viarewind/protocol/protocol1_7_2_5to1_7_6_10/Protocol1_7_2_5To1_7_6_10.java b/common/src/main/java/com/viaversion/viarewind/protocol/protocol1_7_2_5to1_7_6_10/Protocol1_7_2_5To1_7_6_10.java index 6988774db..e2fb60043 100644 --- a/common/src/main/java/com/viaversion/viarewind/protocol/protocol1_7_2_5to1_7_6_10/Protocol1_7_2_5To1_7_6_10.java +++ b/common/src/main/java/com/viaversion/viarewind/protocol/protocol1_7_2_5to1_7_6_10/Protocol1_7_2_5To1_7_6_10.java @@ -48,49 +48,49 @@ protected void registerPackets() { this.registerClientbound(State.LOGIN, ClientboundLoginPackets.GAME_PROFILE.getId(), ClientboundLoginPackets.GAME_PROFILE.getId(), new PacketHandlers() { @Override public void register() { - map(Type.STRING, REMOVE_DASHES); // uuid - map(Type.STRING); // name + map(Type.STRING, REMOVE_DASHES); // Uuid + map(Type.STRING); // Name } }); this.registerClientbound(ClientboundPackets1_7_2_5.SPAWN_PLAYER, new PacketHandlers() { @Override public void register() { - map(Type.VAR_INT); // entity id - map(Type.STRING, REMOVE_DASHES); // uuid - map(Type.STRING); // name - handler(wrapper -> { // delete data introduced in 1.7.6 - final int size = wrapper.read(Type.VAR_INT); // data count + map(Type.VAR_INT); // Entity id + map(Type.STRING, REMOVE_DASHES); // Uuid + map(Type.STRING); // Name + handler(wrapper -> { + final int size = wrapper.read(Type.VAR_INT); // Data count for (int i = 0; i < size; i++) { - wrapper.read(Type.STRING); // data name - wrapper.read(Type.STRING); // data value - wrapper.read(Type.STRING); // data signature + wrapper.read(Type.STRING); // Data name + wrapper.read(Type.STRING); // Data value + wrapper.read(Type.STRING); // Data signature } }); - map(Type.INT); // x - map(Type.INT); // y - map(Type.INT); // z - map(Type.BYTE); // yaw - map(Type.BYTE); // pitch - map(Type.SHORT); // item in hand - map(Types1_7_6_10.METADATA_LIST); // metadata + map(Type.INT); // X + map(Type.INT); // Y + map(Type.INT); // Z + map(Type.BYTE); // Yaw + map(Type.BYTE); // Pitch + map(Type.SHORT); // Item in hand + map(Types1_7_6_10.METADATA_LIST); // Metadata } }); this.registerClientbound(ClientboundPackets1_7_2_5.TEAMS, new PacketHandlers() { @Override public void register() { - map(Type.STRING); // team name - map(Type.BYTE); // mode + map(Type.STRING); // Team name + map(Type.BYTE); // Mode handler(wrapper -> { final byte mode = wrapper.get(Type.BYTE, 0); - if (mode == 0 || mode == 2) { // team is created or information is updated - wrapper.passthrough(Type.STRING); // team display name - wrapper.passthrough(Type.STRING); // team prefix - wrapper.passthrough(Type.STRING); // team suffix - wrapper.passthrough(Type.BYTE); // friendly fire + if (mode == 0 || mode == 2) { // Team is created or information is updated + wrapper.passthrough(Type.STRING); // Team display name + wrapper.passthrough(Type.STRING); // Team prefix + wrapper.passthrough(Type.STRING); // Team suffix + wrapper.passthrough(Type.BYTE); // Friendly fire } - if (mode == 0 || mode == 3 || mode == 4) { // team is created, player is added or player is removed + if (mode == 0 || mode == 3 || mode == 4) { // Team is created, player is added or player is removed List entryList = new ArrayList<>(); final int size = wrapper.read(Type.SHORT); for (int i = 0; i < size; i++) { diff --git a/common/src/main/java/com/viaversion/viarewind/protocol/protocol1_7_6_10to1_8/emulation/VirtualHologramEntity.java b/common/src/main/java/com/viaversion/viarewind/protocol/protocol1_7_6_10to1_8/data/VirtualHologramEntity.java similarity index 99% rename from common/src/main/java/com/viaversion/viarewind/protocol/protocol1_7_6_10to1_8/emulation/VirtualHologramEntity.java rename to common/src/main/java/com/viaversion/viarewind/protocol/protocol1_7_6_10to1_8/data/VirtualHologramEntity.java index 1a2aeb0a4..f1eef30ed 100644 --- a/common/src/main/java/com/viaversion/viarewind/protocol/protocol1_7_6_10to1_8/emulation/VirtualHologramEntity.java +++ b/common/src/main/java/com/viaversion/viarewind/protocol/protocol1_7_6_10to1_8/data/VirtualHologramEntity.java @@ -15,7 +15,7 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package com.viaversion.viarewind.protocol.protocol1_7_6_10to1_8.emulation; +package com.viaversion.viarewind.protocol.protocol1_7_6_10to1_8.data; import com.viaversion.viarewind.protocol.protocol1_7_2_5to1_7_6_10.ClientboundPackets1_7_2_5; import com.viaversion.viarewind.protocol.protocol1_7_6_10to1_8.Protocol1_7_6_10To1_8; diff --git a/common/src/main/java/com/viaversion/viarewind/protocol/protocol1_7_6_10to1_8/metadata/MetadataRewriter1_7_6_10To1_8.java b/common/src/main/java/com/viaversion/viarewind/protocol/protocol1_7_6_10to1_8/metadata/MetadataRewriter1_7_6_10To1_8.java index 343bcbbd9..4e130218e 100644 --- a/common/src/main/java/com/viaversion/viarewind/protocol/protocol1_7_6_10to1_8/metadata/MetadataRewriter1_7_6_10To1_8.java +++ b/common/src/main/java/com/viaversion/viarewind/protocol/protocol1_7_6_10to1_8/metadata/MetadataRewriter1_7_6_10To1_8.java @@ -25,7 +25,7 @@ import com.viaversion.viarewind.api.type.metadata.MetaType1_7_6_10; import com.viaversion.viarewind.protocol.protocol1_7_2_5to1_7_6_10.ClientboundPackets1_7_2_5; import com.viaversion.viarewind.protocol.protocol1_7_6_10to1_8.Protocol1_7_6_10To1_8; -import com.viaversion.viarewind.protocol.protocol1_7_6_10to1_8.emulation.VirtualHologramEntity; +import com.viaversion.viarewind.protocol.protocol1_7_6_10to1_8.data.VirtualHologramEntity; import com.viaversion.viarewind.protocol.protocol1_7_6_10to1_8.storage.EntityTracker1_8; import com.viaversion.viarewind.protocol.protocol1_7_6_10to1_8.storage.GameProfileStorage; import com.viaversion.viarewind.protocol.protocol1_7_6_10to1_8.storage.Scoreboard; diff --git a/common/src/main/java/com/viaversion/viarewind/protocol/protocol1_7_6_10to1_8/packets/EntityPackets1_8.java b/common/src/main/java/com/viaversion/viarewind/protocol/protocol1_7_6_10to1_8/packets/EntityPackets1_8.java index ebbfa4645..c85a02670 100644 --- a/common/src/main/java/com/viaversion/viarewind/protocol/protocol1_7_6_10to1_8/packets/EntityPackets1_8.java +++ b/common/src/main/java/com/viaversion/viarewind/protocol/protocol1_7_6_10to1_8/packets/EntityPackets1_8.java @@ -18,7 +18,7 @@ package com.viaversion.viarewind.protocol.protocol1_7_6_10to1_8.packets; import com.viaversion.viarewind.protocol.protocol1_7_6_10to1_8.Protocol1_7_6_10To1_8; -import com.viaversion.viarewind.protocol.protocol1_7_6_10to1_8.emulation.VirtualHologramEntity; +import com.viaversion.viarewind.protocol.protocol1_7_6_10to1_8.data.VirtualHologramEntity; import com.viaversion.viarewind.protocol.protocol1_7_6_10to1_8.storage.EntityTracker1_8; import com.viaversion.viarewind.protocol.protocol1_7_6_10to1_8.storage.GameProfileStorage; import com.viaversion.viarewind.protocol.protocol1_7_6_10to1_8.storage.PlayerSessionStorage; @@ -48,6 +48,15 @@ public void register() { wrapper.set(Types1_7_6_10.COMPRESSED_NBT_ITEM, 0, item); }); + handler(wrapper -> { + final EntityTracker1_8 tracker = wrapper.user().getEntityTracker(Protocol1_7_6_10To1_8.class); + final int id = wrapper.get(Type.INT, 0); + int limit = tracker.clientEntityId() == id ? 3 : 4; + if (wrapper.get(Type.SHORT, 0) > limit) { + wrapper.cancel(); + } + }); + handler(wrapper -> { final EntityTracker1_8 tracker = wrapper.user().getEntityTracker(Protocol1_7_6_10To1_8.class); final short slot = wrapper.get(Type.SHORT, 0); diff --git a/common/src/main/java/com/viaversion/viarewind/protocol/protocol1_7_6_10to1_8/packets/PlayerPackets1_8.java b/common/src/main/java/com/viaversion/viarewind/protocol/protocol1_7_6_10to1_8/packets/PlayerPackets1_8.java index 3593afe5a..73d8fa6ed 100644 --- a/common/src/main/java/com/viaversion/viarewind/protocol/protocol1_7_6_10to1_8/packets/PlayerPackets1_8.java +++ b/common/src/main/java/com/viaversion/viarewind/protocol/protocol1_7_6_10to1_8/packets/PlayerPackets1_8.java @@ -701,7 +701,7 @@ public void register() { abilitiesPacket.write(Type.BYTE, playerSession.combineAbilities()); abilitiesPacket.write(Type.FLOAT, playerSession.sprinting ? playerSession.flySpeed * 2.0f : playerSession.flySpeed); abilitiesPacket.write(Type.FLOAT, playerSession.walkSpeed); - abilitiesPacket.send(Protocol1_7_6_10To1_8.class); + abilitiesPacket.scheduleSend(Protocol1_7_6_10To1_8.class); } }); } diff --git a/common/src/main/java/com/viaversion/viarewind/protocol/protocol1_7_6_10to1_8/packets/ScoreboardPackets1_8.java b/common/src/main/java/com/viaversion/viarewind/protocol/protocol1_7_6_10to1_8/packets/ScoreboardPackets1_8.java index ef77b6d94..03fc0a1ff 100644 --- a/common/src/main/java/com/viaversion/viarewind/protocol/protocol1_7_6_10to1_8/packets/ScoreboardPackets1_8.java +++ b/common/src/main/java/com/viaversion/viarewind/protocol/protocol1_7_6_10to1_8/packets/ScoreboardPackets1_8.java @@ -204,7 +204,6 @@ public void register() { wrapper.read(Type.STRING); // name tag visibility byte color = wrapper.read(Type.BYTE); if (mode == 2 && scoreboard.getTeamColor(team).get() != color) { - String username = wrapper.user().getProtocolInfo().getUsername(); String sidebar = scoreboard.getColorDependentSidebar().get(color); PacketWrapper sidebarPacket = wrapper.create(0x3D); sidebarPacket.write(Type.BYTE, (byte) 1); diff --git a/common/src/main/java/com/viaversion/viarewind/protocol/protocol1_7_6_10to1_8/packets/WorldPackets1_8.java b/common/src/main/java/com/viaversion/viarewind/protocol/protocol1_7_6_10to1_8/packets/WorldPackets1_8.java index 537a91e0f..84c579bad 100644 --- a/common/src/main/java/com/viaversion/viarewind/protocol/protocol1_7_6_10to1_8/packets/WorldPackets1_8.java +++ b/common/src/main/java/com/viaversion/viarewind/protocol/protocol1_7_6_10to1_8/packets/WorldPackets1_8.java @@ -224,7 +224,7 @@ public void register() { mapData.write(Type.SHORT, (short) columnData.length); // data length mapData.write(new FixedByteArrayType(columnData.length), columnData); // data - mapData.send(Protocol1_7_6_10To1_8.class, true); + mapData.send(Protocol1_7_6_10To1_8.class); } } @@ -242,7 +242,7 @@ public void register() { mapData.write(Type.SHORT, (short) iconData.length); // data length mapData.write(new FixedByteArrayType(iconData.length), iconData); // data - mapData.send(Protocol1_7_6_10To1_8.class, true); + mapData.send(Protocol1_7_6_10To1_8.class); } // Update scale @@ -251,7 +251,7 @@ public void register() { mapData.write(Type.SHORT, (short) 2); // data length mapData.write(new FixedByteArrayType(2), new byte[]{2, scale}); // data - mapData.send(Protocol1_7_6_10To1_8.class, true); + mapData.send(Protocol1_7_6_10To1_8.class); }); } }); diff --git a/common/src/main/java/com/viaversion/viarewind/protocol/protocol1_7_6_10to1_8/storage/EntityTracker1_8.java b/common/src/main/java/com/viaversion/viarewind/protocol/protocol1_7_6_10to1_8/storage/EntityTracker1_8.java index edb6fe85b..fa92dd44f 100644 --- a/common/src/main/java/com/viaversion/viarewind/protocol/protocol1_7_6_10to1_8/storage/EntityTracker1_8.java +++ b/common/src/main/java/com/viaversion/viarewind/protocol/protocol1_7_6_10to1_8/storage/EntityTracker1_8.java @@ -20,7 +20,7 @@ import com.viaversion.viarewind.ViaRewind; import com.viaversion.viarewind.protocol.protocol1_7_2_5to1_7_6_10.ServerboundPackets1_7_2_5; import com.viaversion.viarewind.protocol.protocol1_7_6_10to1_8.Protocol1_7_6_10To1_8; -import com.viaversion.viarewind.protocol.protocol1_7_6_10to1_8.emulation.VirtualHologramEntity; +import com.viaversion.viarewind.protocol.protocol1_7_6_10to1_8.data.VirtualHologramEntity; import com.viaversion.viaversion.api.connection.UserConnection; import com.viaversion.viaversion.api.minecraft.entities.EntityType; import com.viaversion.viaversion.api.minecraft.entities.EntityTypes1_10; @@ -148,7 +148,7 @@ protected void attachEntity(final int target) { attachEntity.write(Type.INT, target); // passenger id attachEntity.write(Type.BOOLEAN, false); // leash - attachEntity.scheduleSend(Protocol1_7_6_10To1_8.class, true); + attachEntity.scheduleSend(Protocol1_7_6_10To1_8.class); } catch (Exception e) { ViaRewind.getPlatform().getLogger().log(Level.SEVERE, "Failed to send attach packet", e); } diff --git a/common/src/main/java/com/viaversion/viarewind/protocol/protocol1_7_6_10to1_8/task/WorldBorderUpdateTask.java b/common/src/main/java/com/viaversion/viarewind/protocol/protocol1_7_6_10to1_8/task/WorldBorderUpdateTask.java index 4a68143e6..3341bab56 100644 --- a/common/src/main/java/com/viaversion/viarewind/protocol/protocol1_7_6_10to1_8/task/WorldBorderUpdateTask.java +++ b/common/src/main/java/com/viaversion/viarewind/protocol/protocol1_7_6_10to1_8/task/WorldBorderUpdateTask.java @@ -85,7 +85,7 @@ public void run() { spawnParticle.write(Type.INT, (int) Math.floor((maxH - minH) * (maxV - minV) * 0.5)); try { - spawnParticle.send(Protocol1_7_6_10To1_8.class, true); + spawnParticle.send(Protocol1_7_6_10To1_8.class); } catch (Exception e) { ViaRewind.getPlatform().getLogger().log(Level.SEVERE, "Failed to send world border particle", e); } diff --git a/common/src/main/java/com/viaversion/viarewind/protocol/protocol1_8to1_9/emulation/BossBarVisualization.java b/common/src/main/java/com/viaversion/viarewind/protocol/protocol1_8to1_9/emulation/BossBarVisualization.java index 47c992e25..bb73e9b85 100644 --- a/common/src/main/java/com/viaversion/viarewind/protocol/protocol1_8to1_9/emulation/BossBarVisualization.java +++ b/common/src/main/java/com/viaversion/viarewind/protocol/protocol1_8to1_9/emulation/BossBarVisualization.java @@ -50,7 +50,7 @@ public void show(double progress) throws Exception { wrapper.write(Type.VAR_INT, 2); // Action - update health wrapper.write(Type.FLOAT, (float) progress); // Health } - wrapper.scheduleSend(Protocol1_8To1_9.class, false); + wrapper.send(Protocol1_8To1_9.class, false); } @Override @@ -61,7 +61,7 @@ public void hide() throws Exception { PacketWrapper wrapper = PacketWrapper.create(ClientboundPackets1_9.BOSSBAR, null, user); wrapper.write(Type.UUID, bossUUID); wrapper.write(Type.VAR_INT, 1); // Action - remove - wrapper.scheduleSend(Protocol1_8To1_9.class, false); + wrapper.send(Protocol1_8To1_9.class, false); bossUUID = null; } }