summaryrefslogtreecommitdiff
path: root/serverlist-server
diff options
context:
space:
mode:
authorPugmatt <pugmatt@gmail.com>2019-08-09 02:14:47 -0400
committerPugmatt <pugmatt@gmail.com>2019-08-09 02:14:47 -0400
commitd52f8c4955a91b4495f017f37187749f1bd3085b (patch)
tree15db44d7c30ecfb842049f68d667ae8da8135753 /serverlist-server
parentb21abf92a7c2cb016bc71d6d5e7686259a337b82 (diff)
downloadBedrockConnect-d52f8c4955a91b4495f017f37187749f1bd3085b.tar.gz
BedrockConnect-d52f8c4955a91b4495f017f37187749f1bd3085b.tar.bz2
BedrockConnect-d52f8c4955a91b4495f017f37187749f1bd3085b.zip
Update server to newest Bedrock version + add BIND
Diffstat (limited to 'serverlist-server')
-rw-r--r--serverlist-server/BedrockConnect.iml12
-rw-r--r--serverlist-server/pom.xml4
-rw-r--r--serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/BedrockConnect.java1
-rw-r--r--serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/PipePlayer.java38
-rw-r--r--serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/Server.java9
-rw-r--r--serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/listeners/ClientPacketHandler.java6
-rw-r--r--serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/utils/PaletteManager.java5
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;