diff options
| author | Pugmatt <pugmatt@gmail.com> | 2019-08-09 02:14:47 -0400 |
|---|---|---|
| committer | Pugmatt <pugmatt@gmail.com> | 2019-08-09 02:14:47 -0400 |
| commit | d52f8c4955a91b4495f017f37187749f1bd3085b (patch) | |
| tree | 15db44d7c30ecfb842049f68d667ae8da8135753 /serverlist-server | |
| parent | b21abf92a7c2cb016bc71d6d5e7686259a337b82 (diff) | |
| download | BedrockConnect-d52f8c4955a91b4495f017f37187749f1bd3085b.tar.gz BedrockConnect-d52f8c4955a91b4495f017f37187749f1bd3085b.tar.bz2 BedrockConnect-d52f8c4955a91b4495f017f37187749f1bd3085b.zip | |
Update server to newest Bedrock version + add BIND
Diffstat (limited to 'serverlist-server')
7 files changed, 50 insertions, 25 deletions
diff --git a/serverlist-server/BedrockConnect.iml b/serverlist-server/BedrockConnect.iml index 919c761..b4edf70 100644 --- a/serverlist-server/BedrockConnect.iml +++ b/serverlist-server/BedrockConnect.iml @@ -11,20 +11,20 @@ <orderEntry type="sourceFolder" forTests="false" /> <orderEntry type="library" name="Maven: com.github.steveice10:packetlib:1.4-SNAPSHOT" level="project" /> <orderEntry type="library" name="Maven: io.netty:netty-all:4.1.25.Final" level="project" /> - <orderEntry type="library" name="Maven: com.nukkitx.protocol:bedrock-v354:2.0.2" level="project" /> - <orderEntry type="library" name="Maven: com.nukkitx.protocol:bedrock-common:2.0.2" level="project" /> - <orderEntry type="library" name="Maven: com.nukkitx.protocol:common:2.0.2" level="project" /> - <orderEntry type="library" name="Maven: com.nukkitx.network:common:1.5.4" level="project" /> + <orderEntry type="library" name="Maven: com.nukkitx.protocol:bedrock-v361:2.1.2" level="project" /> + <orderEntry type="library" name="Maven: com.nukkitx.protocol:bedrock-common:2.1.2" level="project" /> + <orderEntry type="library" name="Maven: com.nukkitx.protocol:common:2.1.2" level="project" /> + <orderEntry type="library" name="Maven: com.nukkitx.network:common:1.6.7" level="project" /> <orderEntry type="library" name="Maven: io.netty:netty-buffer:4.1.36.Final" level="project" /> <orderEntry type="library" name="Maven: io.netty:netty-transport-native-epoll:linux-x86_64:4.1.36.Final" level="project" /> <orderEntry type="library" name="Maven: io.netty:netty-transport-native-unix-common:4.1.36.Final" level="project" /> <orderEntry type="library" name="Maven: io.netty:netty-transport-native-kqueue:osx-x86_64:4.1.36.Final" level="project" /> <orderEntry type="library" name="Maven: cn.nukkit:nukkit-natives:1.0.1-SNAPSHOT" level="project" /> - <orderEntry type="library" name="Maven: com.nukkitx:nbt:1.2.0" level="project" /> + <orderEntry type="library" name="Maven: com.nukkitx:nbt:1.3.2" level="project" /> <orderEntry type="library" name="Maven: com.flowpowered:flow-math:1.0.3" level="project" /> <orderEntry type="library" name="Maven: net.sf.trove4j:trove:3.1.0-SNAPSHOT" level="project" /> <orderEntry type="library" name="Maven: net.sf.trove4j:trove-generator:3.1.0-SNAPSHOT" level="project" /> - <orderEntry type="library" name="Maven: com.nukkitx.network:raknet:1.5.4" level="project" /> + <orderEntry type="library" name="Maven: com.nukkitx.network:raknet:1.6.7" level="project" /> <orderEntry type="library" name="Maven: io.netty:netty-handler:4.1.36.Final" level="project" /> <orderEntry type="library" name="Maven: io.netty:netty-common:4.1.36.Final" level="project" /> <orderEntry type="library" name="Maven: io.netty:netty-transport:4.1.36.Final" level="project" /> diff --git a/serverlist-server/pom.xml b/serverlist-server/pom.xml index 54f1b73..61cf223 100644 --- a/serverlist-server/pom.xml +++ b/serverlist-server/pom.xml @@ -77,8 +77,8 @@ </dependency> <dependency> <groupId>com.nukkitx.protocol</groupId> - <artifactId>bedrock-v354</artifactId> - <version>2.0.2</version> + <artifactId>bedrock-v361</artifactId> + <version>2.1.2</version> <scope>compile</scope> </dependency> <dependency> diff --git a/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/BedrockConnect.java b/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/BedrockConnect.java index 6756351..f5ab2bc 100644 --- a/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/BedrockConnect.java +++ b/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/BedrockConnect.java @@ -78,7 +78,6 @@ public class BedrockConnect { e.printStackTrace(); } - while(true) { } } } 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 fb25671..0cf725f 100644 --- a/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/PipePlayer.java +++ b/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/PipePlayer.java @@ -3,6 +3,10 @@ package main.com.pyratron.pugmatt.bedrockconnect; import com.flowpowered.math.vector.Vector2f; import com.flowpowered.math.vector.Vector3f; import com.flowpowered.math.vector.Vector3i; +import com.nukkitx.nbt.CompoundTagBuilder; +import com.nukkitx.nbt.NbtUtils; +import com.nukkitx.nbt.stream.NBTOutputStream; +import com.nukkitx.nbt.tag.CompoundTag; import com.nukkitx.protocol.bedrock.BedrockServerSession; import com.nukkitx.protocol.bedrock.data.Attribute; import com.nukkitx.protocol.bedrock.data.GamePublishSetting; @@ -14,6 +18,8 @@ import main.com.pyratron.pugmatt.bedrockconnect.gui.UIComponents; import main.com.pyratron.pugmatt.bedrockconnect.sql.Data; import main.com.pyratron.pugmatt.bedrockconnect.utils.PaletteManager; +import java.io.ByteArrayOutputStream; +import java.io.IOException; import java.util.ArrayList; import java.util.List; @@ -28,6 +34,23 @@ public class PipePlayer { private String uuid; + private static final CompoundTag EMPTY_TAG = CompoundTagBuilder.builder().buildRootTag(); + private static final byte[] EMPTY_LEVEL_CHUNK_DATA; + + static { + try (ByteArrayOutputStream outputStream = new ByteArrayOutputStream()) { + outputStream.write(new byte[258]); // Biomes + Border Size + Extra Data Size + + try (NBTOutputStream stream = NbtUtils.createNetworkWriter(outputStream)) { + stream.write(EMPTY_TAG); + } + + EMPTY_LEVEL_CHUNK_DATA = outputStream.toByteArray(); + }catch (IOException e) { + throw new AssertionError("Unable to generate empty level chunk data"); + } + } + public PipePlayer(String uuid, Data data, BedrockServerSession session, List<String> serverList, int serverLimit) { this.uuid = uuid; @@ -105,15 +128,15 @@ public class PipePlayer { startGamePacket.setDifficulty(0); startGamePacket.setDefaultSpawn(new Vector3i(-249, 67, -275)); startGamePacket.setAcheivementsDisabled(true); - startGamePacket.setTime(1300); + startGamePacket.setTime(0); startGamePacket.setEduLevel(false); startGamePacket.setEduFeaturesEnabled(false); startGamePacket.setRainLevel(0); startGamePacket.setLightningLevel(0); startGamePacket.setPlatformLockedContentConfirmed(false); - startGamePacket.setMultiplayerGame(false); + startGamePacket.setMultiplayerGame(true); startGamePacket.setBroadcastingToLan(false); - startGamePacket.getGamerules().add((new GameRule("showcoordinates", true))); + startGamePacket.getGamerules().add((new GameRule<>("showcoordinates", true))); startGamePacket.setPlatformBroadcastMode(GamePublishSetting.PUBLIC); startGamePacket.setXblBroadcastMode(GamePublishSetting.PUBLIC); startGamePacket.setCommandsEnabled(true); @@ -133,8 +156,8 @@ public class PipePlayer { startGamePacket.setLevelId("oerjhii"); startGamePacket.setWorldName("world"); startGamePacket.setPremiumWorldTemplateId("00000000-0000-0000-0000-000000000000"); - startGamePacket.setCurrentTick(1); - startGamePacket.setEnchantmentSeed(1); + startGamePacket.setCurrentTick(0); + startGamePacket.setEnchantmentSeed(0); startGamePacket.setMultiplayerCorrelationId(""); startGamePacket.setCachedPalette(BedrockConnect.paletteManager.getCachedPalette()); @@ -176,10 +199,11 @@ public class PipePlayer { for (int x = -3; x < 3; x++) { for (int z = -3; z < 3; z++) { - FullChunkDataPacket data2 = new FullChunkDataPacket(); + LevelChunkPacket data2 = new LevelChunkPacket(); data2.setChunkX(chunkX + x); data2.setChunkZ(chunkZ + z); - data2.setData(new byte[0]); + data2.setSubChunksLength(0); + data2.setData(EMPTY_LEVEL_CHUNK_DATA); session.sendPacketImmediately(data2); } } diff --git a/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/Server.java b/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/Server.java index e5f71fa..46a8ff1 100644 --- a/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/Server.java +++ b/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/Server.java @@ -4,7 +4,7 @@ import com.fasterxml.jackson.databind.DeserializationFeature; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.dataformat.yaml.YAMLMapper; import com.nukkitx.protocol.bedrock.*; -import com.nukkitx.protocol.bedrock.v354.Bedrock_v354; +import com.nukkitx.protocol.bedrock.v361.Bedrock_v361; import main.com.pyratron.pugmatt.bedrockconnect.listeners.PacketHandler; import main.com.pyratron.pugmatt.bedrockconnect.sql.Data; @@ -66,16 +66,17 @@ public class Server { players = new ArrayList<>(); InetSocketAddress bindAddress = new InetSocketAddress("0.0.0.0", 19132); - codec = Bedrock_v354.V354_CODEC; + codec = Bedrock_v361.V361_CODEC; server = new BedrockServer(bindAddress); pong = new BedrockPong(); pong.setEdition("MCPE"); pong.setMotd("Join to open Server List"); - pong.setSubMotd("Test"); + pong.setSubMotd("BedrockConnect Server List"); pong.setPlayerCount(0); pong.setMaximumPlayerCount(20); pong.setGameType("Survival"); - pong.setProtocolVersion(Bedrock_v354.V354_CODEC.getProtocolVersion()); + pong.setIpv4Port(19132); + pong.setProtocolVersion(Bedrock_v361.V361_CODEC.getProtocolVersion()); server.setHandler(new BedrockServerEventHandler() { @Override public boolean onConnectionRequest(InetSocketAddress address) { diff --git a/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/listeners/ClientPacketHandler.java b/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/listeners/ClientPacketHandler.java index 2595a33..306c3a2 100644 --- a/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/listeners/ClientPacketHandler.java +++ b/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/listeners/ClientPacketHandler.java @@ -262,7 +262,7 @@ public class ClientPacketHandler implements BedrockPacketHandler { int chunkRadius = 5; for (int x = -chunkRadius; x < chunkRadius; x++) { for (int z = -chunkRadius; z < chunkRadius; z++) { - FullChunkDataPacket fullChunk = new FullChunkDataPacket(); + LevelChunkPacket fullChunk = new LevelChunkPacket(); fullChunk.setChunkX(chunkPositionX + x); fullChunk.setChunkZ(chunkPositionZ + z); fullChunk.setData(new byte[0]); @@ -430,11 +430,11 @@ public class ClientPacketHandler implements BedrockPacketHandler { return false; } - @Override + /** @Override public boolean handle(FullChunkDataPacket packet) { System.out.println(packet.toString()); return false; - } + } **/ @Override public boolean handle(GameRulesChangedPacket packet) { 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 508a48c..055c511 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 @@ -4,7 +4,7 @@ import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.type.CollectionType; import com.nukkitx.network.VarInts; -import com.nukkitx.protocol.bedrock.v354.BedrockUtils; +import com.nukkitx.protocol.bedrock.v361.BedrockUtils; import io.netty.buffer.ByteBuf; import io.netty.buffer.Unpooled; import main.com.pyratron.pugmatt.bedrockconnect.BedrockConnect; @@ -22,11 +22,12 @@ public class PaletteManager { public ByteBuf getCachedPalette() { ByteBuf cachedPalette = Unpooled.buffer(); - VarInts.writeInt(cachedPalette, entries.size()); + VarInts.writeUnsignedInt(cachedPalette, entries.size()); for (RuntimeEntry entry : entries) { BedrockUtils.writeString(cachedPalette, entry.name); cachedPalette.writeShortLE(entry.data); + cachedPalette.writeShortLE(entry.id); } return cachedPalette; |
