diff options
| author | Pugmatt <pugmatt@gmail.com> | 2019-06-19 01:43:47 -0400 |
|---|---|---|
| committer | Pugmatt <pugmatt@gmail.com> | 2019-06-19 01:43:47 -0400 |
| commit | 8b2524bc538357c053d80e2cac0352c79e4389e7 (patch) | |
| tree | 75ecd61a6787d1bdb0e31a279877b05bf8eb7c71 /serverlist-server | |
| parent | a98d6164e8f03c19ed568fbe05b69b2a1d4eccf2 (diff) | |
| download | BedrockConnect-8b2524bc538357c053d80e2cac0352c79e4389e7.tar.gz BedrockConnect-8b2524bc538357c053d80e2cac0352c79e4389e7.tar.bz2 BedrockConnect-8b2524bc538357c053d80e2cac0352c79e4389e7.zip | |
Fix bug where player couldn't join back
Diffstat (limited to 'serverlist-server')
3 files changed, 22 insertions, 18 deletions
diff --git a/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/PipePlayer.java b/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/PipePlayer.java index 110a53d..a468fa4 100644 --- a/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/PipePlayer.java +++ b/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/PipePlayer.java @@ -8,7 +8,9 @@ import com.nukkitx.protocol.bedrock.data.Attribute; import com.nukkitx.protocol.bedrock.data.GamePublishSetting; import com.nukkitx.protocol.bedrock.data.GameRule; import com.nukkitx.protocol.bedrock.packet.*; +import io.netty.buffer.ByteBuf; import main.com.pyratron.pugmatt.bedrockconnect.chunk.ChunkData; +import main.com.pyratron.pugmatt.bedrockconnect.utils.PaletteManager; import java.util.ArrayList; diff --git a/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/listeners/PacketHandler.java b/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/listeners/PacketHandler.java index 64b680e..b4926fc 100644 --- a/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/listeners/PacketHandler.java +++ b/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/listeners/PacketHandler.java @@ -45,7 +45,7 @@ public class PacketHandler implements BedrockPacketHandler { private ArrayNode chainData; private AuthData authData; - @Override + /** @Override public boolean handle(AdventureSettingsPacket packet) { System.out.println(packet.getClass().getName()); return false; @@ -200,7 +200,7 @@ public class PacketHandler implements BedrockPacketHandler { public boolean handle(MobEquipmentPacket packet) { System.out.println(packet.getClass().getName()); return false; - } + } **/ @Override @@ -236,6 +236,7 @@ public class PacketHandler implements BedrockPacketHandler { return false; } + /** @Override public boolean handle(MoveEntityAbsolutePacket packet) { System.out.println(packet.getClass().getName()); @@ -289,7 +290,7 @@ public class PacketHandler implements BedrockPacketHandler { public boolean handle(PurchaseReceiptPacket packet) { System.out.println(packet.getClass().getName()); return false; - } + } **/ @Override public boolean handle(RequestChunkRadiusPacket packet) { @@ -324,7 +325,7 @@ public class PacketHandler implements BedrockPacketHandler { return false; **/ return false; } - + /** @Override public boolean handle(RiderJumpPacket packet) { System.out.println(packet.getClass().getName()); @@ -341,7 +342,7 @@ public class PacketHandler implements BedrockPacketHandler { public boolean handle(SetDefaultGameTypePacket packet) { System.out.println(packet.getClass().getName()); return false; - } + } **/ @Override public boolean handle(SetLocalPlayerAsInitializedPacket packet) { @@ -351,6 +352,7 @@ public class PacketHandler implements BedrockPacketHandler { return false; } + /** @Override public boolean handle(SetPlayerGameTypePacket packet) { System.out.println(packet.getClass().getName()); @@ -835,7 +837,7 @@ public class PacketHandler implements BedrockPacketHandler { public boolean handle(VideoStreamConnectPacket packet) { System.out.println(packet.getClass().getName()); return false; - } + } **/ public PacketHandler(BedrockServerSession session, Server server) { this.session = session; @@ -845,6 +847,7 @@ public class PacketHandler implements BedrockPacketHandler { } public void disconnect() { + System.out.println("Player disconnected"); server.removePlayer(player); } diff --git a/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/utils/PaletteManager.java b/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/utils/PaletteManager.java index 6c033fc..508a48c 100644 --- a/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/utils/PaletteManager.java +++ b/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/utils/PaletteManager.java @@ -17,9 +17,18 @@ import java.util.ArrayList; public class PaletteManager { - private ByteBuf cachedPalette; + private ArrayList<RuntimeEntry> entries; public ByteBuf getCachedPalette() { + ByteBuf cachedPalette = Unpooled.buffer(); + + VarInts.writeInt(cachedPalette, entries.size()); + + for (RuntimeEntry entry : entries) { + BedrockUtils.writeString(cachedPalette, entry.name); + cachedPalette.writeShortLE(entry.data); + } + return cachedPalette; } @@ -32,22 +41,12 @@ public class PaletteManager { ObjectMapper mapper = new ObjectMapper(); CollectionType type = mapper.getTypeFactory().constructCollectionType(ArrayList.class, RuntimeEntry.class); - ArrayList<RuntimeEntry> entries = new ArrayList<>(); + entries = new ArrayList<>(); try { entries = mapper.readValue(stream, type); } catch (Exception e) { e.printStackTrace(); } - - cachedPalette = Unpooled.buffer(); - - VarInts.writeInt(cachedPalette, entries.size()); - - for (RuntimeEntry entry : entries) { - BedrockUtils.writeString(cachedPalette, entry.name); - cachedPalette.writeShortLE(entry.data); - } - } private static class RuntimeEntry { |
