From 6bb473ea8d7f3f4cac077f4fba2def3b64b0987b Mon Sep 17 00:00:00 2001 From: Myles Date: Wed, 20 Apr 2016 01:33:01 +0100 Subject: [PATCH] Change PlayerMovementMapper to a handler and fix the mappings so it works. --- .../PlayerMovementMapper.java | 22 +++----- .../packets/PlayerPackets.java | 51 +++++++++++++++++-- 2 files changed, 55 insertions(+), 18 deletions(-) diff --git a/src/main/java/us/myles/ViaVersion/protocols/protocol1_9to1_8/PlayerMovementMapper.java b/src/main/java/us/myles/ViaVersion/protocols/protocol1_9to1_8/PlayerMovementMapper.java index dfc8c0d56..e653e9e4e 100644 --- a/src/main/java/us/myles/ViaVersion/protocols/protocol1_9to1_8/PlayerMovementMapper.java +++ b/src/main/java/us/myles/ViaVersion/protocols/protocol1_9to1_8/PlayerMovementMapper.java @@ -2,23 +2,17 @@ package us.myles.ViaVersion.protocols.protocol1_9to1_8; import us.myles.ViaVersion.api.PacketWrapper; import us.myles.ViaVersion.api.remapper.PacketHandler; -import us.myles.ViaVersion.api.remapper.PacketRemapper; import us.myles.ViaVersion.api.type.Type; import us.myles.ViaVersion.protocols.protocol1_9to1_8.storage.MovementTracker; -public class PlayerMovementMapper extends PacketRemapper { +public class PlayerMovementMapper extends PacketHandler { @Override - public void registerMap() { - handler(new PacketHandler() { - @Override - public void handle(PacketWrapper wrapper) throws Exception { - MovementTracker tracker = wrapper.user().get(MovementTracker.class); - tracker.incrementIdlePacket(); - // If packet has the ground data - if (wrapper.is(Type.BOOLEAN, 0)) { - tracker.setGround(wrapper.get(Type.BOOLEAN, 0)); - } - } - }); + public void handle(PacketWrapper wrapper) throws Exception { + MovementTracker tracker = wrapper.user().get(MovementTracker.class); + tracker.incrementIdlePacket(); + // If packet has the ground data + if (wrapper.is(Type.BOOLEAN, 0)) { + tracker.setGround(wrapper.get(Type.BOOLEAN, 0)); + } } } diff --git a/src/main/java/us/myles/ViaVersion/protocols/protocol1_9to1_8/packets/PlayerPackets.java b/src/main/java/us/myles/ViaVersion/protocols/protocol1_9to1_8/packets/PlayerPackets.java index 072bc12b5..9505c8c7d 100644 --- a/src/main/java/us/myles/ViaVersion/protocols/protocol1_9to1_8/packets/PlayerPackets.java +++ b/src/main/java/us/myles/ViaVersion/protocols/protocol1_9to1_8/packets/PlayerPackets.java @@ -443,6 +443,52 @@ public class PlayerPackets { } }); + // Player Position Packet + protocol.registerIncoming(State.PLAY, 0x04, 0x0C, new PacketRemapper() { + @Override + public void registerMap() { + map(Type.DOUBLE); // 0 - X + map(Type.DOUBLE); // 1 - Y + map(Type.DOUBLE); // 2 - Z + map(Type.BOOLEAN); // 3 - Ground + handler(new PlayerMovementMapper()); + } + }); + + // Player Move & Look Packet + protocol.registerIncoming(State.PLAY, 0x06, 0x0D, new PacketRemapper() { + @Override + public void registerMap() { + map(Type.DOUBLE); // 0 - X + map(Type.DOUBLE); // 1 - Y + map(Type.DOUBLE); // 2 - Z + map(Type.FLOAT); // 3 - Yaw + map(Type.FLOAT); // 4 - Pitch + map(Type.BOOLEAN); // 5 - Ground + handler(new PlayerMovementMapper()); + } + }); + + // Player Look Packet + protocol.registerIncoming(State.PLAY, 0x05, 0x0E, new PacketRemapper() { + @Override + public void registerMap() { + map(Type.FLOAT); // 0 - Yaw + map(Type.FLOAT); // 1 - Pitch + map(Type.BOOLEAN); // 2 - Ground + handler(new PlayerMovementMapper()); + } + }); + + // Player Packet + protocol.registerIncoming(State.PLAY, 0x03, 0x0F, new PacketRemapper() { + @Override + public void registerMap() { + map(Type.BOOLEAN); // 0 - Ground + handler(new PlayerMovementMapper()); + } + }); + /* Packets which do not have any field remapping or handlers */ protocol.registerIncoming(State.PLAY, 0x01, 0x02); // Chat Message Packet @@ -451,9 +497,6 @@ public class PlayerPackets { protocol.registerIncoming(State.PLAY, 0x00, 0x0B); // Keep Alive Request Packet - protocol.registerIncoming(State.PLAY, 0x04, 0x0C, new PlayerMovementMapper()); // Player Position Packet - protocol.registerIncoming(State.PLAY, 0x06, 0x0D, new PlayerMovementMapper()); // Player Move & Look Packet - protocol.registerIncoming(State.PLAY, 0x05, 0x0E, new PlayerMovementMapper()); // Player Look Packet - protocol.registerIncoming(State.PLAY, 0x03, 0x0F, new PlayerMovementMapper()); // Player Packet + } }