summaryrefslogtreecommitdiff
path: root/serverlist-server
diff options
context:
space:
mode:
authorMattie <pugmatt@gmail.com>2023-02-06 03:48:50 -0500
committerMattie <pugmatt@gmail.com>2023-02-06 03:48:50 -0500
commitd44577f11ec967c01049c34aa7725857b44f233f (patch)
treecb8dbb59631a0e274665640adc08771fc60bcd13 /serverlist-server
parentece82dd065e525ddf3b59150fabb14f38c758853 (diff)
downloadBedrockConnect-d44577f11ec967c01049c34aa7725857b44f233f.tar.gz
BedrockConnect-d44577f11ec967c01049c34aa7725857b44f233f.tar.bz2
BedrockConnect-d44577f11ec967c01049c34aa7725857b44f233f.zip
Upgrade Protocol to 3.0
Diffstat (limited to 'serverlist-server')
-rw-r--r--serverlist-server/BedrockConnect.iml73
-rw-r--r--serverlist-server/pom.xml32
-rw-r--r--serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/BCPlayer.java54
-rw-r--r--serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/Server.java65
-rw-r--r--serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/gui/UIComponents.java3
-rw-r--r--serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/gui/UIForms.java8
-rw-r--r--serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/listeners/PacketHandler.java966
-rw-r--r--serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/sql/Data.java2
-rw-r--r--serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/utils/BedrockProtocol.java72
-rw-r--r--serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/utils/PaletteManager.java14
10 files changed, 1007 insertions, 282 deletions
diff --git a/serverlist-server/BedrockConnect.iml b/serverlist-server/BedrockConnect.iml
index 9a65b25..6b4de5c 100644
--- a/serverlist-server/BedrockConnect.iml
+++ b/serverlist-server/BedrockConnect.iml
@@ -9,74 +9,49 @@
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
- <orderEntry type="library" name="Maven: mysql:mysql-connector-java:5.1.17" level="project" />
- <orderEntry type="library" name="Maven: dnsjava:dnsjava:3.0.2" level="project" />
- <orderEntry type="library" name="Maven: org.slf4j:slf4j-api:1.7.30" level="project" />
- <orderEntry type="library" name="Maven: io.netty:netty-resolver-dns:4.1.43.Final" level="project" />
- <orderEntry type="library" name="Maven: io.netty:netty-codec-dns:4.1.43.Final" level="project" />
- <orderEntry type="library" name="Maven: com.nukkitx.protocol:bedrock-v448:2.8.1-SNAPSHOT" level="project" />
- <orderEntry type="library" name="Maven: com.nukkitx.protocol:bedrock-v440:2.8.1-SNAPSHOT" level="project" />
- <orderEntry type="library" name="Maven: com.nukkitx.protocol:bedrock-v431:2.8.1-SNAPSHOT" level="project" />
- <orderEntry type="library" name="Maven: com.nukkitx.protocol:bedrock-v428:2.8.1-SNAPSHOT" level="project" />
- <orderEntry type="library" name="Maven: com.nukkitx.protocol:bedrock-v422:2.8.1-SNAPSHOT" level="project" />
- <orderEntry type="library" name="Maven: com.nukkitx.protocol:bedrock-v419:2.8.1-SNAPSHOT" level="project" />
- <orderEntry type="library" name="Maven: com.nukkitx.protocol:bedrock-v408:2.8.1-SNAPSHOT" level="project" />
- <orderEntry type="library" name="Maven: com.nukkitx.protocol:bedrock-v407:2.8.1-SNAPSHOT" level="project" />
- <orderEntry type="library" name="Maven: com.nukkitx.protocol:bedrock-v390:2.8.1-SNAPSHOT" level="project" />
- <orderEntry type="library" name="Maven: com.nukkitx.protocol:bedrock-v389:2.8.1-SNAPSHOT" level="project" />
- <orderEntry type="library" name="Maven: com.nukkitx.protocol:bedrock-v388:2.8.1-SNAPSHOT" level="project" />
- <orderEntry type="library" name="Maven: com.nukkitx.protocol:bedrock-v361:2.8.1-SNAPSHOT" level="project" />
- <orderEntry type="library" name="Maven: com.nukkitx.protocol:bedrock-v354:2.8.1-SNAPSHOT" level="project" />
- <orderEntry type="library" name="Maven: com.nukkitx.protocol:bedrock-v340:2.8.1-SNAPSHOT" level="project" />
- <orderEntry type="library" name="Maven: com.nukkitx.protocol:bedrock-v332:2.8.1-SNAPSHOT" level="project" />
- <orderEntry type="library" name="Maven: com.nukkitx.protocol:bedrock-v313:2.8.1-SNAPSHOT" level="project" />
- <orderEntry type="library" name="Maven: com.nukkitx.protocol:bedrock-v291:2.8.1-SNAPSHOT" level="project" />
- <orderEntry type="library" name="Maven: com.nukkitx.protocol:bedrock-common:2.8.1-SNAPSHOT" level="project" />
- <orderEntry type="library" name="Maven: com.nukkitx.protocol:common:2.8.1-SNAPSHOT" level="project" />
- <orderEntry type="library" name="Maven: com.nukkitx.network:common:1.6.26-SNAPSHOT" level="project" />
- <orderEntry type="library" name="Maven: io.netty:netty-buffer:4.1.43.Final" level="project" />
- <orderEntry type="library" name="Maven: io.netty:netty-transport-native-epoll:linux-x86_64:4.1.43.Final" level="project" />
- <orderEntry type="library" name="Maven: io.netty:netty-transport-native-unix-common:4.1.43.Final" level="project" />
- <orderEntry type="library" name="Maven: io.netty:netty-transport-native-kqueue:osx-x86_64:4.1.43.Final" level="project" />
- <orderEntry type="library" name="Maven: com.nukkitx:natives:1.0.2" level="project" />
- <orderEntry type="library" name="Maven: com.nukkitx:nbt:2.0.1" level="project" />
- <orderEntry type="library" name="Maven: com.nukkitx:math:1.1.0" level="project" />
+ <orderEntry type="library" name="Maven: org.cloudburstmc.protocol:bedrock-connection:3.0.0.Beta1-SNAPSHOT" level="project" />
+ <orderEntry type="library" name="Maven: org.cloudburstmc.protocol:bedrock-codec:3.0.0.Beta1-SNAPSHOT" level="project" />
+ <orderEntry type="library" name="Maven: org.cloudburstmc.protocol:common:3.0.0.Beta1-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: com.nukkitx.fastutil:fastutil-int-object-maps:8.5.3" level="project" />
<orderEntry type="library" name="Maven: com.nukkitx.fastutil:fastutil-int-sets:8.5.3" level="project" />
<orderEntry type="library" name="Maven: com.nukkitx.fastutil:fastutil-int-common:8.5.3" level="project" />
<orderEntry type="library" name="Maven: com.nukkitx.fastutil:fastutil-object-int-maps:8.5.3" level="project" />
- <orderEntry type="library" name="Maven: com.nukkitx.network:raknet:1.6.26-SNAPSHOT" level="project" />
- <orderEntry type="library" name="Maven: io.netty:netty-handler:4.1.43.Final" level="project" />
- <orderEntry type="library" name="Maven: io.netty:netty-common:4.1.43.Final" level="project" />
- <orderEntry type="library" name="Maven: io.netty:netty-transport:4.1.43.Final" level="project" />
- <orderEntry type="library" name="Maven: io.netty:netty-resolver:4.1.43.Final" level="project" />
- <orderEntry type="library" name="Maven: io.netty:netty-codec:4.1.43.Final" level="project" />
- <orderEntry type="library" name="Maven: net.jodah:expiringmap:0.5.9" level="project" />
+ <orderEntry type="library" name="Maven: org.cloudburstmc.math:immutable:2.0-SNAPSHOT" level="project" />
+ <orderEntry type="library" name="Maven: com.nukkitx:natives:1.0.3" level="project" />
+ <orderEntry type="library" name="Maven: io.netty:netty-buffer:4.1.84.Final" level="project" />
<orderEntry type="library" name="Maven: com.nukkitx.fastutil:fastutil-long-common:8.5.3" level="project" />
<orderEntry type="library" name="Maven: com.nukkitx.fastutil:fastutil-common:8.5.3" level="project" />
<orderEntry type="library" name="Maven: com.nukkitx.fastutil:fastutil-long-object-maps:8.5.3" level="project" />
<orderEntry type="library" name="Maven: com.nukkitx.fastutil:fastutil-long-sets:8.5.3" level="project" />
<orderEntry type="library" name="Maven: com.nukkitx.fastutil:fastutil-object-sets:8.5.3" level="project" />
<orderEntry type="library" name="Maven: com.nukkitx.fastutil:fastutil-object-common:8.5.3" level="project" />
+ <orderEntry type="library" name="Maven: org.cloudburstmc:nbt:3.0.0.Final" level="project" />
+ <orderEntry type="library" name="Maven: org.lanternpowered:lmbda:2.0.0" level="project" />
+ <orderEntry type="library" name="Maven: org.ow2.asm:asm:7.1" level="project" />
+ <orderEntry type="library" name="Maven: org.checkerframework:checker-qual:2.8.1" level="project" />
+ <orderEntry type="library" name="Maven: org.cloudburstmc.netty:netty-transport-raknet:0.0.1.Final-SNAPSHOT" level="project" />
+ <orderEntry type="library" name="Maven: io.netty:netty-common:4.1.84.Final" level="project" />
+ <orderEntry type="library" name="Maven: io.netty:netty-codec:4.1.84.Final" level="project" />
+ <orderEntry type="library" name="Maven: io.netty:netty-transport:4.1.84.Final" level="project" />
+ <orderEntry type="library" name="Maven: io.netty:netty-resolver:4.1.84.Final" level="project" />
+ <orderEntry type="library" name="Maven: net.jodah:expiringmap:0.5.9" level="project" />
+ <orderEntry type="library" name="Maven: io.airlift:aircompressor:0.21" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: com.google.code.findbugs:jsr305:1.3.9" level="project" />
- <orderEntry type="library" name="Maven: com.google.code.gson:gson:2.5" level="project" />
- <orderEntry type="library" name="Maven: com.nimbusds:nimbus-jose-jwt:4.39.2" level="project" />
+ <orderEntry type="library" name="Maven: com.google.code.gson:gson:2.8.9" level="project" />
+ <orderEntry type="library" name="Maven: com.nimbusds:nimbus-jose-jwt:9.13" level="project" />
<orderEntry type="library" name="Maven: com.github.stephenc.jcip:jcip-annotations:1.0-1" level="project" />
- <orderEntry type="library" name="Maven: net.minidev:json-smart:2.3" level="project" />
- <orderEntry type="library" name="Maven: net.minidev:accessors-smart:1.2" level="project" />
- <orderEntry type="library" name="Maven: org.ow2.asm:asm:5.0.4" level="project" />
<orderEntry type="library" name="Maven: com.googlecode.json-simple:json-simple:1.1.1" level="project" />
<orderEntry type="library" name="Maven: junit:junit:4.10" level="project" />
<orderEntry type="library" name="Maven: org.hamcrest:hamcrest-core:1.1" level="project" />
- <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-databind:2.9.8" level="project" />
- <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-annotations:2.9.0" level="project" />
- <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-core:2.9.8" level="project" />
+ <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-databind:2.12.7.1" level="project" />
+ <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-annotations:2.12.7" level="project" />
+ <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-core:2.12.7" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.9.8" level="project" />
<orderEntry type="library" name="Maven: org.yaml:snakeyaml:1.23" 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: mysql:mysql-connector-java:8.0.19" level="project" />
- <orderEntry type="library" name="Maven: com.google.protobuf:protobuf-java:3.6.1" level="project" />
+ <orderEntry type="library" name="Maven: mysql:mysql-connector-java:8.0.28" level="project" />
+ <orderEntry type="library" name="Maven: com.google.protobuf:protobuf-java:3.11.4" level="project" />
<orderEntry type="library" name="Maven: org.slf4j:slf4j-simple:1.7.21" level="project" />
<orderEntry type="library" name="Maven: org.slf4j:slf4j-api:1.7.21" level="project" />
</component>
diff --git a/serverlist-server/pom.xml b/serverlist-server/pom.xml
index f712286..b59f5bd 100644
--- a/serverlist-server/pom.xml
+++ b/serverlist-server/pom.xml
@@ -48,7 +48,7 @@
<configuration>
<relocations>
<relocation>
- <pattern>com.nukkitx.protocol</pattern>
+ <pattern>org.cloudburstmc.protocol</pattern>
<shadedPattern>com.pyratron.pugmatt.protocol</shadedPattern>
</relocation>
</relocations>
@@ -61,26 +61,32 @@
<repositories>
<repository>
- <id>opencollab-releases</id>
+ <id>opencollab-repo-release</id>
<url>https://repo.opencollab.dev/maven-releases/</url>
+ <releases>
+ <enabled>true</enabled>
+ </releases>
+ <snapshots>
+ <enabled>false</enabled>
+ </snapshots>
</repository>
<repository>
- <id>opencollab-snapshots</id>
+ <id>opencollab-repo-snapshot</id>
<url>https://repo.opencollab.dev/maven-snapshots/</url>
+ <releases>
+ <enabled>false</enabled>
+ </releases>
+ <snapshots>
+ <enabled>true</enabled>
+ </snapshots>
</repository>
</repositories>
<dependencies>
- <!-- https://mvnrepository.com/artifact/net.minidev/json-smart -->
<dependency>
- <groupId>net.minidev</groupId>
- <artifactId>json-smart</artifactId>
- <version>2.4.4</version>
- </dependency>
- <dependency>
- <groupId>com.nukkitx.protocol</groupId>
- <artifactId>bedrock-v560</artifactId>
- <version>2.9.15-SNAPSHOT</version>
+ <groupId>org.cloudburstmc.protocol</groupId>
+ <artifactId>bedrock-connection</artifactId>
+ <version>3.0.0.Beta1-SNAPSHOT</version>
<scope>compile</scope>
<exclusions>
<exclusion>
@@ -106,7 +112,7 @@
<dependency>
<groupId>com.nimbusds</groupId>
<artifactId>nimbus-jose-jwt</artifactId>
- <version>7.9</version>
+ <version>9.13</version>
<scope>compile</scope>
</dependency>
<dependency>
diff --git a/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/BCPlayer.java b/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/BCPlayer.java
index 2b6f537..aa35698 100644
--- a/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/BCPlayer.java
+++ b/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/BCPlayer.java
@@ -1,22 +1,21 @@
package main.com.pyratron.pugmatt.bedrockconnect;
-import com.nukkitx.math.vector.Vector2f;
-import com.nukkitx.math.vector.Vector3i;
-import com.nukkitx.nbt.NBTOutputStream;
-import com.nukkitx.nbt.NbtMap;
-import com.nukkitx.nbt.NbtMapBuilder;
-import com.nukkitx.nbt.NbtUtils;
-import com.nukkitx.protocol.bedrock.Bedrock;
-import com.nukkitx.protocol.bedrock.BedrockPacket;
-import com.nukkitx.protocol.bedrock.BedrockServerSession;
-import com.nukkitx.protocol.bedrock.data.*;
-import com.nukkitx.protocol.bedrock.data.inventory.ContainerId;
-import com.nukkitx.protocol.bedrock.data.inventory.ItemData;
-import com.nukkitx.protocol.bedrock.packet.*;
-import com.nukkitx.math.vector.Vector3f;
+import io.netty.buffer.ByteBuf;
+import io.netty.buffer.Unpooled;
import main.com.pyratron.pugmatt.bedrockconnect.gui.UIComponents;
import main.com.pyratron.pugmatt.bedrockconnect.gui.UIForms;
import main.com.pyratron.pugmatt.bedrockconnect.sql.Data;
+import org.cloudburstmc.math.vector.Vector2f;
+import org.cloudburstmc.math.vector.Vector3f;
+import org.cloudburstmc.math.vector.Vector3i;
+import org.cloudburstmc.nbt.NBTOutputStream;
+import org.cloudburstmc.nbt.NbtMap;
+import org.cloudburstmc.nbt.NbtUtils;
+import org.cloudburstmc.protocol.bedrock.BedrockServerSession;
+import org.cloudburstmc.protocol.bedrock.data.*;
+import org.cloudburstmc.protocol.bedrock.data.inventory.ItemData;
+import org.cloudburstmc.protocol.bedrock.packet.*;
+import org.cloudburstmc.protocol.common.util.OptionalBoolean;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
@@ -70,7 +69,7 @@ public class BCPlayer {
this.serverLimit = serverLimit;
this.lastAction = LocalTime.now();
- if(session != null && !session.isClosed())
+ if(session != null && session.isConnected())
joinGame();
}
@@ -217,15 +216,6 @@ public class BCPlayer {
}
public void joinGame() {
-
- MovePlayerPacket mp = new MovePlayerPacket();
- mp.setRuntimeEntityId(1);
- mp.setOnGround(false);
- mp.setMode(MovePlayerPacket.Mode.NORMAL);
- mp.setRotation(Vector3f.from(0,0,0));
- mp.setPosition(Vector3f.from(0,0,0));
- session.sendPacket(mp);
-
StartGamePacket startGamePacket = new StartGamePacket();
startGamePacket.setUniqueEntityId(1);
startGamePacket.setRuntimeEntityId(1);
@@ -266,16 +256,18 @@ public class BCPlayer {
startGamePacket.setUsingMsaGamertagsOnly(false);
startGamePacket.setFromWorldTemplate(false);
startGamePacket.setWorldTemplateOptionLocked(false);
+ startGamePacket.setSpawnBiomeType(SpawnBiomeType.DEFAULT);
+ startGamePacket.setCustomBiomeName("");
+ startGamePacket.setEducationProductionId("");
+ startGamePacket.setForceExperimentalGameplay(OptionalBoolean.empty());
- //startGamePacket.setOnlySpawningV1Villagers(false);
startGamePacket.setAuthoritativeMovementMode(AuthoritativeMovementMode.CLIENT);
- SyncedPlayerMovementSettings settings = new SyncedPlayerMovementSettings();
- settings.setMovementMode(AuthoritativeMovementMode.CLIENT);
- settings.setRewindHistorySize(0);
- settings.setServerAuthoritativeBlockBreaking(false);
- startGamePacket.setPlayerMovementSettings(settings);
+ startGamePacket.setRewindHistorySize(0);
+ startGamePacket.setServerAuthoritativeBlockBreaking(false);
//startGamePacket.setTrial(false);
startGamePacket.setVanillaVersion("*");
+ startGamePacket.setInventoriesServerAuthoritative(true);
+ startGamePacket.setServerEngine("");
startGamePacket.setLevelId("world");
startGamePacket.setLevelName("world");
@@ -314,7 +306,7 @@ public class BCPlayer {
data2.setChunkX(chunkX + x);
data2.setChunkZ(chunkZ + z);
data2.setSubChunksLength(0);
- data2.setData(EMPTY_LEVEL_CHUNK_DATA);
+ data2.setData(Unpooled.wrappedBuffer(EMPTY_LEVEL_CHUNK_DATA));
session.sendPacket(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 d15367a..48c9ab1 100644
--- a/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/Server.java
+++ b/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/Server.java
@@ -3,9 +3,19 @@ package main.com.pyratron.pugmatt.bedrockconnect;
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 io.netty.bootstrap.ServerBootstrap;
+import io.netty.channel.Channel;
+import io.netty.channel.nio.NioEventLoopGroup;
+import io.netty.channel.socket.nio.NioDatagramChannel;
import main.com.pyratron.pugmatt.bedrockconnect.listeners.PacketHandler;
import main.com.pyratron.pugmatt.bedrockconnect.utils.BedrockProtocol;
+import org.cloudburstmc.netty.channel.raknet.RakChannelFactory;
+import org.cloudburstmc.netty.channel.raknet.config.RakChannelOption;
+import org.cloudburstmc.protocol.bedrock.BedrockPong;
+import org.cloudburstmc.protocol.bedrock.BedrockServerSession;
+import org.cloudburstmc.protocol.bedrock.BedrockSession;
+import org.cloudburstmc.protocol.bedrock.netty.initializer.BedrockServerInitializer;
+import org.cloudburstmc.protocol.bedrock.packet.BedrockPacketHandler;
import javax.annotation.Nonnull;
@@ -14,7 +24,8 @@ import java.util.*;
public class Server {
- public BedrockServer server;
+ private final NioEventLoopGroup eventLoopGroup = new NioEventLoopGroup();
+ public Channel server;
public BedrockPong pong;
public static final ObjectMapper JSON_MAPPER = new ObjectMapper().disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES);
@@ -51,35 +62,31 @@ public class Server {
InetSocketAddress bindAddress = new InetSocketAddress(bindIp, Integer.parseInt(port));
- server = new BedrockServer(bindAddress);
pong = new BedrockPong();
- pong.setEdition("MCPE");
- pong.setMotd(BedrockConnect.language.getWording("serverInfo", "motd"));
- pong.setSubMotd(BedrockConnect.language.getWording("serverInfo", "subMotd"));
- pong.setPlayerCount(0);
- pong.setMaximumPlayerCount(20);
- pong.setGameType("Survival");
- pong.setIpv4Port(Integer.parseInt(port));
- pong.setProtocolVersion(BedrockProtocol.DEFAULT_BEDROCK_CODEC.getProtocolVersion());
- pong.setVersion(BedrockProtocol.DEFAULT_BEDROCK_CODEC.getMinecraftVersion());
- server.setHandler(new BedrockServerEventHandler() {
- @Override
- public boolean onConnectionRequest(InetSocketAddress address) {
- return true; // Connection will be accepted
- }
-
- @Nonnull
- public BedrockPong onQuery(InetSocketAddress address) {
- return pong;
- }
+ pong.edition("MCPE");
+ pong.motd(BedrockConnect.language.getWording("serverInfo", "motd"));
+ pong.subMotd(BedrockConnect.language.getWording("serverInfo", "subMotd"));
+ pong.playerCount(0);
+ pong.maximumPlayerCount(20);
+ pong.gameType("Survival");
+ pong.ipv4Port(Integer.parseInt(port));
+ pong.protocolVersion(BedrockProtocol.DEFAULT_BEDROCK_CODEC.getProtocolVersion());
+ pong.version(BedrockProtocol.DEFAULT_BEDROCK_CODEC.getMinecraftVersion());
+
+ server = new ServerBootstrap()
+ .group(this.eventLoopGroup)
+ .channelFactory(RakChannelFactory.server(NioDatagramChannel.class))
+ .option(RakChannelOption.RAK_ADVERTISEMENT, pong.toByteBuf())
+ .childHandler(new BedrockServerInitializer() {
+ @Override
+ protected void initSession(BedrockServerSession session) {
+ session.setPacketHandler(new PacketHandler(session, current, false));
+ }
+ })
+ .bind(bindAddress)
+ .awaitUninterruptibly()
+ .channel();
- @Override
- public void onSessionCreation(BedrockServerSession session) {
- session.setPacketHandler(new PacketHandler(session, current, false));
- }
- });
- // Start server up
- server.bind().join();
System.out.println("Bedrock Connection Started: " + bindIp + ":" + port);
if(BedrockConnect.kickInactive) {
Timer timer = new Timer();
diff --git a/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/gui/UIComponents.java b/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/gui/UIComponents.java
index 102fe0d..531aef3 100644
--- a/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/gui/UIComponents.java
+++ b/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/gui/UIComponents.java
@@ -2,11 +2,8 @@ package main.com.pyratron.pugmatt.bedrockconnect.gui;
import com.google.gson.JsonArray;
import com.google.gson.JsonObject;
-import com.nukkitx.protocol.bedrock.BedrockSession;
-import com.nukkitx.protocol.bedrock.packet.ModalFormRequestPacket;
import main.com.pyratron.pugmatt.bedrockconnect.BCPlayer;
import main.com.pyratron.pugmatt.bedrockconnect.BedrockConnect;
-import net.minidev.json.JSONUtil;
import org.json.simple.JSONArray;
import org.json.simple.parser.JSONParser;
import org.json.simple.parser.ParseException;
diff --git a/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/gui/UIForms.java b/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/gui/UIForms.java
index 6a8ac1f..78d20b9 100644
--- a/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/gui/UIForms.java
+++ b/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/gui/UIForms.java
@@ -2,12 +2,10 @@ package main.com.pyratron.pugmatt.bedrockconnect.gui;
import com.google.gson.JsonArray;
import com.google.gson.JsonObject;
-import com.nukkitx.protocol.bedrock.Bedrock;
-import com.nukkitx.protocol.bedrock.BedrockServerSession;
-import com.nukkitx.protocol.bedrock.packet.ModalFormRequestPacket;
-
-import com.nukkitx.protocol.bedrock.packet.NetworkStackLatencyPacket;
import main.com.pyratron.pugmatt.bedrockconnect.*;
+import org.cloudburstmc.protocol.bedrock.BedrockServerSession;
+import org.cloudburstmc.protocol.bedrock.packet.ModalFormRequestPacket;
+import org.cloudburstmc.protocol.bedrock.packet.NetworkStackLatencyPacket;
import java.util.ArrayList;
import java.util.List;
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 88bb367..acf190d 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
@@ -2,28 +2,31 @@ package main.com.pyratron.pugmatt.bedrockconnect.listeners;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.node.JsonNodeType;
-import com.nukkitx.math.vector.Vector3f;
-import com.nukkitx.network.util.Preconditions;
-import com.nukkitx.protocol.bedrock.BedrockPacketCodec;
-import com.nukkitx.protocol.bedrock.data.AttributeData;
-import com.nukkitx.protocol.bedrock.data.PacketCompressionAlgorithm;
-import com.nukkitx.protocol.bedrock.packet.*;
import com.nimbusds.jose.JOSEException;
import com.nimbusds.jose.JWSObject;
+import com.nimbusds.jose.Payload;
import com.nimbusds.jose.crypto.factories.DefaultJWSVerifierFactory;
-import com.nukkitx.protocol.bedrock.BedrockServerSession;
-import com.nukkitx.protocol.bedrock.handler.BedrockPacketHandler;
-import com.nukkitx.protocol.bedrock.packet.LoginPacket;
-import com.nukkitx.protocol.bedrock.util.EncryptionUtils;
+import com.nimbusds.jose.shaded.json.JSONObject;
+import com.nimbusds.jose.shaded.json.JSONValue;
+import com.nimbusds.jwt.SignedJWT;
import main.com.pyratron.pugmatt.bedrockconnect.*;
import main.com.pyratron.pugmatt.bedrockconnect.gui.MainFormButton;
import main.com.pyratron.pugmatt.bedrockconnect.gui.ManageFormButton;
import main.com.pyratron.pugmatt.bedrockconnect.gui.UIComponents;
import main.com.pyratron.pugmatt.bedrockconnect.gui.UIForms;
import main.com.pyratron.pugmatt.bedrockconnect.utils.BedrockProtocol;
-import net.minidev.json.JSONObject;
+import org.cloudburstmc.math.vector.Vector3f;
+import org.cloudburstmc.protocol.bedrock.BedrockServerSession;
+import org.cloudburstmc.protocol.bedrock.codec.BedrockCodec;
+import org.cloudburstmc.protocol.bedrock.data.AttributeData;
+import org.cloudburstmc.protocol.bedrock.data.PacketCompressionAlgorithm;
+import org.cloudburstmc.protocol.bedrock.packet.*;
+import org.cloudburstmc.protocol.bedrock.util.EncryptionUtils;
+import org.cloudburstmc.protocol.common.PacketSignal;
+import org.cloudburstmc.protocol.common.util.Preconditions;
import java.io.IOException;
+import java.net.URI;
import java.security.interfaces.ECPublicKey;
import java.util.*;
import java.net.InetAddress;
@@ -60,7 +63,7 @@ public class PacketHandler implements BedrockPacketHandler {
}
@Override
- public boolean handle(RequestChunkRadiusPacket packet) {
+ public PacketSignal handle(RequestChunkRadiusPacket packet) {
ChunkRadiusUpdatedPacket chunkRadiusUpdatePacket = new ChunkRadiusUpdatedPacket();
chunkRadiusUpdatePacket.setRadius(packet.getRadius());
session.sendPacketImmediately(chunkRadiusUpdatePacket);
@@ -68,26 +71,26 @@ public class PacketHandler implements BedrockPacketHandler {
PlayStatusPacket playStatus = new PlayStatusPacket();
playStatus.setStatus(PlayStatusPacket.Status.PLAYER_SPAWN);
session.sendPacket(playStatus);
- return false;
+ return PacketSignal.HANDLED;
}
// Occasionally, a sent form will not correctly send to a player for whatever reason, and they float in space. This works as a way to open the form back up.
-
+
@Override
- public boolean handle(PlayerActionPacket packet) {
+ public PacketSignal handle(PlayerActionPacket packet) {
player.movementOpen();
- return false;
+ return PacketSignal.HANDLED;
}
@Override
- public boolean handle(AnimatePacket packet) {
+ public PacketSignal handle(AnimatePacket packet) {
if(packet.getAction() == AnimatePacket.Action.SWING_ARM)
player.movementOpen();
- return false;
+ return PacketSignal.HANDLED;
}
@Override
- public boolean handle(ModalFormResponsePacket packet) {
+ public PacketSignal handle(ModalFormResponsePacket packet) {
player.setActive();
player.resetMovementOpen();
@@ -96,7 +99,7 @@ public class PacketHandler implements BedrockPacketHandler {
// Re-open window if closed
if (packet.getFormData() == null || packet.getFormData().contains("null")) {
if(player.getCurrentForm() != packet.getFormId())
- return false;
+ return PacketSignal.HANDLED;
player.openForm(UIForms.MAIN);
} else { // If selecting button
int chosen = Integer.parseInt(packet.getFormData().replaceAll("\\s+",""));
@@ -173,7 +176,7 @@ public class PacketHandler implements BedrockPacketHandler {
case UIForms.SERVER_GROUP:
if(packet.getFormData() == null || packet.getFormData().contains("null")) {
if(player.getCurrentForm() != packet.getFormId())
- return false;
+ return PacketSignal.HANDLED;
player.openForm(UIForms.MAIN);
}
else {
@@ -193,7 +196,7 @@ public class PacketHandler implements BedrockPacketHandler {
case UIForms.MANAGE_SERVER:
if(packet.getFormData() == null) {
if(player.getCurrentForm() != packet.getFormId())
- return false;
+ return PacketSignal.HANDLED;
player.openForm(UIForms.MAIN);
}
else {
@@ -218,7 +221,7 @@ public class PacketHandler implements BedrockPacketHandler {
try {
if(packet.getFormData() == null || packet.getFormData().contains("null")) {
if(player.getCurrentForm() != packet.getFormId())
- return false;
+ return PacketSignal.HANDLED;
player.openForm(UIForms.MANAGE_SERVER);
}
else {
@@ -246,7 +249,7 @@ public class PacketHandler implements BedrockPacketHandler {
try {
if(packet.getFormData() == null || packet.getFormData().contains("null")) {
if(player.getCurrentForm() != packet.getFormId())
- return false;
+ return PacketSignal.HANDLED;
player.openForm(UIForms.MAIN);
}
else {
@@ -278,7 +281,7 @@ public class PacketHandler implements BedrockPacketHandler {
case UIForms.EDIT_CHOOSE_SERVER:
if(packet.getFormData() == null || packet.getFormData().contains("null")) {
if(player.getCurrentForm() != packet.getFormId())
- return false;
+ return PacketSignal.HANDLED;
player.openForm(UIForms.MANAGE_SERVER);
}
else {
@@ -305,7 +308,7 @@ public class PacketHandler implements BedrockPacketHandler {
case UIForms.EDIT_SERVER:
if(packet.getFormData() == null || packet.getFormData().contains("null")) {
if(player.getCurrentForm() != packet.getFormId())
- return false;
+ return PacketSignal.HANDLED;
player.openForm(UIForms.EDIT_CHOOSE_SERVER);
}
else {
@@ -336,7 +339,7 @@ public class PacketHandler implements BedrockPacketHandler {
try {
if(packet.getFormData() == null || packet.getFormData().contains("null")) {
if(player.getCurrentForm() != packet.getFormId())
- return false;
+ return PacketSignal.HANDLED;
player.openForm(UIForms.MANAGE_SERVER);
}
else {
@@ -361,11 +364,11 @@ public class PacketHandler implements BedrockPacketHandler {
break;
}
- return false;
+ return PacketSignal.HANDLED;
}
@Override
- public boolean handle(NetworkStackLatencyPacket packet) {
+ public PacketSignal handle(NetworkStackLatencyPacket packet) {
// Fix bug where server icons don't load
UpdateAttributesPacket updateAttributesPacket = new UpdateAttributesPacket();
updateAttributesPacket.setRuntimeEntityId(1);
@@ -374,11 +377,11 @@ public class PacketHandler implements BedrockPacketHandler {
Timer timer = new Timer();
TimerTask task = new TimerTask() {
- public void run() { if(!session.isClosed()) { session.sendPacket(updateAttributesPacket); } }
+ public void run() { if(session.isConnected()) { session.sendPacket(updateAttributesPacket); } }
};
timer.schedule(task, 500);
- return false;
+ return PacketSignal.HANDLED;
}
public void transfer(String ip, int port) {
@@ -393,58 +396,101 @@ public class PacketHandler implements BedrockPacketHandler {
}
@Override
- public boolean handle(SetLocalPlayerAsInitializedPacket packet) {
+ public PacketSignal handle(SetLocalPlayerAsInitializedPacket packet) {
session.sendPacketImmediately(UIForms.createMain(player.getServerList(), session));
- return false;
+ return PacketSignal.HANDLED;
}
@Override
- public boolean handle(RequestNetworkSettingsPacket packet) {
+ public PacketSignal handle(RequestNetworkSettingsPacket packet) {
+ int protocolVersion = packet.getProtocolVersion();
+
+ BedrockCodec packetCodec = BedrockProtocol.getBedrockCodec(packet.getProtocolVersion());
+
+ if (protocolVersion != BedrockProtocol.DEFAULT_BEDROCK_CODEC.getProtocolVersion()) {
+ PlayStatusPacket status = new PlayStatusPacket();
+ if (protocolVersion > BedrockProtocol.DEFAULT_BEDROCK_CODEC.getProtocolVersion()) {
+ status.setStatus(PlayStatusPacket.Status.LOGIN_FAILED_SERVER_OLD);
+ } else {
+ status.setStatus(PlayStatusPacket.Status.LOGIN_FAILED_CLIENT_OLD);
+ }
+
+ session.sendPacketImmediately(status);
+ return PacketSignal.HANDLED;
+ }
+ session.setCodec(packetCodec);
+
PacketCompressionAlgorithm algorithm = PacketCompressionAlgorithm.ZLIB;
NetworkSettingsPacket responsePacket = new NetworkSettingsPacket();
responsePacket.setCompressionAlgorithm(algorithm);
- responsePacket.setCompressionThreshold(512);
+ responsePacket.setCompressionThreshold(0);
session.sendPacketImmediately(responsePacket);
session.setCompression(algorithm);
- return false;
+ return PacketSignal.HANDLED;
}
public PacketHandler(BedrockServerSession session, Server server, boolean packetListening) {
- session.setPacketCodec(BedrockProtocol.DEFAULT_BEDROCK_CODEC);
this.session = session;
this.server = server;
-
- session.addDisconnectHandler((DisconnectReason) -> disconnect());
}
- public void disconnect() {
+ @Override
+ public void onDisconnect(String reason) {
System.out.println(name + " disconnected");
if(player != null)
server.removePlayer(player);
}
- private static boolean validateChainData(JsonNode data) throws Exception {
+ private static boolean validateChainData(List<SignedJWT> chain) throws Exception {
+ if (chain.size() != 3) {
+ return false;
+ }
+
+ Payload identity = null;
ECPublicKey lastKey = null;
- boolean validChain = false;
- for (JsonNode node : data) {
- JWSObject jwt = JWSObject.parse(node.asText());
+ boolean mojangSigned = false;
+ Iterator<SignedJWT> iterator = chain.iterator();
+ while (iterator.hasNext()) {
+ SignedJWT jwt = iterator.next();
+ identity = jwt.getPayload();
+
+ // x509 cert is expected in every claim
+ URI x5u = jwt.getHeader().getX509CertURL();
+ if (x5u == null) {
+ return false;
+ }
- if (!validChain) {
- validChain = verifyJwt(jwt, EncryptionUtils.getMojangPublicKey());
+ ECPublicKey expectedKey = EncryptionUtils.generateKey(jwt.getHeader().getX509CertURL().toString());
+ // First key is self-signed
+ if (lastKey == null) {
+ lastKey = expectedKey;
+ } else if (!lastKey.equals(expectedKey)) {
+ return false;
}
- if (lastKey != null) {
- verifyJwt(jwt, lastKey);
+ if (!EncryptionUtils.verifyJwt(jwt, lastKey)) {
+ return false;
}
- JsonNode payloadNode = Server.JSON_MAPPER.readTree(jwt.getPayload().toString());
- JsonNode ipkNode = payloadNode.get("identityPublicKey");
- Preconditions.checkState(ipkNode != null && ipkNode.getNodeType() == JsonNodeType.STRING, "identityPublicKey node is missing in chain");
- lastKey = EncryptionUtils.generateKey(ipkNode.asText());
+ if (mojangSigned) {
+ return !iterator.hasNext();
+ }
+
+ if (lastKey.equals(EncryptionUtils.getMojangPublicKey())) {
+ mojangSigned = true;
+ }
+
+ Object payload = JSONValue.parse(jwt.getPayload().toString());
+ Preconditions.checkArgument(payload instanceof JSONObject, "Payload is not an object");
+
+ Object identityPublicKey = ((JSONObject) payload).get("identityPublicKey");
+ Preconditions.checkArgument(identityPublicKey instanceof String, "identityPublicKey node is missing in chain");
+ lastKey = EncryptionUtils.generateKey((String) identityPublicKey);
}
- return validChain;
+
+ return mojangSigned;
}
@@ -453,12 +499,12 @@ public class PacketHandler implements BedrockPacketHandler {
}
@Override
- public boolean handle(DisconnectPacket packet) {
- return false;
+ public PacketSignal handle(DisconnectPacket packet) {
+ return PacketSignal.UNHANDLED;
}
@Override
- public boolean handle(ResourcePackClientResponsePacket packet) {
+ public PacketSignal handle(ResourcePackClientResponsePacket packet) {
switch (packet.getStatus()) {
case COMPLETED:
BedrockConnect.data.userExists(uuid, name, session, this);
@@ -475,49 +521,18 @@ public class PacketHandler implements BedrockPacketHandler {
break;
}
- return true;
+ return PacketSignal.HANDLED;
}
// Heavily referenced from https://github.com/NukkitX/ProxyPass/blob/master/src/main/java/com/nukkitx/proxypass/network/bedrock/session/UpstreamPacketHandler.java
@Override
- public boolean handle(LoginPacket packet) {
- BedrockPacketCodec packetCodec = BedrockProtocol.getBedrockCodec(packet.getProtocolVersion());
-
- if (packetCodec == null) {
- session.setPacketCodec(BedrockProtocol.DEFAULT_BEDROCK_CODEC);
-
- PlayStatusPacket status = new PlayStatusPacket();
-
- if (packet.getProtocolVersion() > BedrockProtocol.DEFAULT_BEDROCK_CODEC.getProtocolVersion()) {
- status.setStatus(PlayStatusPacket.Status.LOGIN_FAILED_SERVER_OLD);
- }
- else if (packet.getProtocolVersion() < BedrockProtocol.DEFAULT_BEDROCK_CODEC.getProtocolVersion()) {
- status.setStatus(PlayStatusPacket.Status.LOGIN_FAILED_CLIENT_OLD);
- }
-
- session.sendPacket(status);
- }
-
- session.setPacketCodec(packetCodec);
-
- JsonNode certData;
- try {
- certData = Server.JSON_MAPPER.readTree(packet.getChainData().toByteArray());
- } catch (IOException e) {
- throw new RuntimeException("Certificate JSON can not be read.");
- }
+ public PacketSignal handle(LoginPacket packet) {
- JsonNode certChainData = certData.get("chain");
- if (certChainData.getNodeType() != JsonNodeType.ARRAY) {
- throw new RuntimeException("Certificate data is not valid");
- }
+ List<SignedJWT> certChainData = packet.getChain();
- boolean validChain;
try {
- validChain = validateChainData(certChainData);
-
- JWSObject jwt = JWSObject.parse(certChainData.get(certChainData.size() - 1).asText());
+ JWSObject jwt = certChainData.get(certChainData.size() - 1);
JsonNode payload = Server.JSON_MAPPER.readTree(jwt.getPayload().toBytes());
if (payload.get("extraData").getNodeType() != JsonNodeType.OBJECT) {
@@ -531,7 +546,7 @@ public class PacketHandler implements BedrockPacketHandler {
}
ECPublicKey identityPublicKey = EncryptionUtils.generateKey(payload.get("identityPublicKey").textValue());
- JWSObject clientJwt = JWSObject.parse(packet.getSkinData().toString());
+ JWSObject clientJwt = packet.getExtra();
verifyJwt(clientJwt, identityPublicKey);
System.out.println("Made it through login - " + "User: " + extraData.getAsString("displayName") + " (" + extraData.getAsString("identity") + ")");
@@ -541,7 +556,7 @@ public class PacketHandler implements BedrockPacketHandler {
uuid = extraData.getAsString("identity");
- //whitelist check
+ // Whitelist check
if (Whitelist.hasWhitelist() && !Whitelist.isPlayerWhitelisted(name)) {
session.disconnect(Whitelist.getWhitelistMessage());
System.out.println("Kicked " + name + ": \"" + Whitelist.getWhitelistMessage() + "\"");
@@ -564,8 +579,771 @@ public class PacketHandler implements BedrockPacketHandler {
session.disconnect("disconnectionScreen.internalError.cantConnect");
throw new RuntimeException("Unable to complete login", e);
}
- return true;
+ return PacketSignal.HANDLED;
+ }
+
+ // Handle rest of packets to avoid log warnings
+
+ @Override
+ public PacketSignal handle(AdventureSettingsPacket packet) {
+ return PacketSignal.HANDLED;
+ }
+
+
+ @Override
+ public PacketSignal handle(BlockEntityDataPacket packet) {
+ return PacketSignal.HANDLED;
+ }
+
+ @Override
+ public PacketSignal handle(BlockPickRequestPacket packet) {
+ return PacketSignal.HANDLED;
+ }
+
+ @Override
+ public PacketSignal handle(BookEditPacket packet) {
+ return PacketSignal.HANDLED;
+ }
+
+ @Override
+ public PacketSignal handle(ClientCacheBlobStatusPacket packet) {
+ return PacketSignal.HANDLED;
+ }
+
+ @Override
+ public PacketSignal handle(ClientCacheMissResponsePacket packet) {
+ return PacketSignal.HANDLED;
+ }
+
+ @Override
+ public PacketSignal handle(ClientCacheStatusPacket packet) {
+ return PacketSignal.HANDLED;
+ }
+
+ @Override
+ public PacketSignal handle(ClientToServerHandshakePacket packet) {
+ return PacketSignal.HANDLED;
+ }
+
+ @Override
+ public PacketSignal handle(CommandBlockUpdatePacket packet) {
+ return PacketSignal.HANDLED;
+ }
+
+ @Override
+ public PacketSignal handle(CommandRequestPacket packet) {
+ return PacketSignal.HANDLED;
+ }
+
+ @Override
+ public PacketSignal handle(ContainerClosePacket packet) {
+ return PacketSignal.HANDLED;
+ }
+
+ @Override
+ public PacketSignal handle(CraftingEventPacket packet) {
+ return PacketSignal.HANDLED;
+ }
+
+ @Override
+ public PacketSignal handle(EntityEventPacket packet) {
+ return PacketSignal.HANDLED;
+ }
+
+ @Override
+ public PacketSignal handle(EntityPickRequestPacket packet) {
+ return PacketSignal.HANDLED;
+ }
+
+ @Override
+ public PacketSignal handle(EventPacket packet) {
+ return PacketSignal.HANDLED;
+ }
+
+ @Override
+ public PacketSignal handle(InteractPacket packet) {
+ return PacketSignal.HANDLED;
+ }
+
+ @Override
+ public PacketSignal handle(InventoryContentPacket packet) {
+ return PacketSignal.HANDLED;
+ }
+
+ @Override
+ public PacketSignal handle(InventorySlotPacket packet) {
+ return PacketSignal.HANDLED;
+ }
+
+ @Override
+ public PacketSignal handle(InventoryTransactionPacket packet) {
+ return PacketSignal.HANDLED;
+ }
+
+ @Override
+ public PacketSignal handle(ItemFrameDropItemPacket packet) {
+ return PacketSignal.HANDLED;
+ }
+
+ @Override
+ public PacketSignal handle(LabTablePacket packet) {
+ return PacketSignal.HANDLED;
+ }
+
+ @Override
+ public PacketSignal handle(LecternUpdatePacket packet) {
+ return PacketSignal.HANDLED;
+ }
+
+ @Override
+ public PacketSignal handle(LevelEventGenericPacket packet) {
+ return PacketSignal.HANDLED;
+ }
+
+ @Override
+ public PacketSignal handle(LevelSoundEventPacket packet) {
+ return PacketSignal.HANDLED;
+ }
+
+ @Override
+ public PacketSignal handle(MapInfoRequestPacket packet) {
+ return PacketSignal.HANDLED;
+ }
+
+ @Override
+ public PacketSignal handle(MobArmorEquipmentPacket packet) {
+ return PacketSignal.HANDLED;
+ }
+
+ @Override
+ public PacketSignal handle(MobEquipmentPacket packet) {
+ return PacketSignal.HANDLED;
+ }
+
+ @Override
+ public PacketSignal handle(MoveEntityAbsolutePacket packet) {
+ return PacketSignal.HANDLED;
+ }
+
+ @Override
+ public PacketSignal handle(MovePlayerPacket packet) {
+ return PacketSignal.HANDLED;
+ }
+
+ @Override
+ public PacketSignal handle(PhotoTransferPacket packet) {
+ return PacketSignal.HANDLED;
+ }
+
+ @Override
+ public PacketSignal handle(PlayerHotbarPacket packet) {
+ return PacketSignal.HANDLED;
+ }
+
+ @Override
+ public PacketSignal handle(PlayerInputPacket packet) {
+ return PacketSignal.HANDLED;
+ }
+
+ @Override
+ public PacketSignal handle(PlayerSkinPacket packet) {
+ return PacketSignal.HANDLED;
+ }
+
+ @Override
+ public PacketSignal handle(PurchaseReceiptPacket packet) {
+ return PacketSignal.HANDLED;
+ }
+
+ @Override
+ public PacketSignal handle(ResourcePackChunkRequestPacket packet) {
+ return PacketSignal.HANDLED;
+ }
+
+ @Override
+ public PacketSignal handle(RiderJumpPacket packet) {
+ return PacketSignal.HANDLED;
+ }
+
+ @Override
+ public PacketSignal handle(ServerSettingsRequestPacket packet) {
+ return PacketSignal.HANDLED;
+ }
+
+ @Override
+ public PacketSignal handle(SetDefaultGameTypePacket packet) {
+ return PacketSignal.HANDLED;
+ }
+
+ @Override
+ public PacketSignal handle(SetPlayerGameTypePacket packet) {
+ return PacketSignal.HANDLED;
+ }
+
+ @Override
+ public PacketSignal handle(SubClientLoginPacket packet) {
+ return PacketSignal.HANDLED;
+ }
+
+ @Override
+ public PacketSignal handle(TextPacket packet) {
+ return PacketSignal.HANDLED;
+ }
+
+ @Override
+ public PacketSignal handle(AddBehaviorTreePacket packet) {
+ return PacketSignal.HANDLED;
+ }
+
+ @Override
+ public PacketSignal handle(AddEntityPacket packet) {
+ return PacketSignal.HANDLED;
+ }
+
+ @Override
+ public PacketSignal handle(AddHangingEntityPacket packet) {
+ return PacketSignal.HANDLED;
+ }
+
+ @Override
+ public PacketSignal handle(AddItemEntityPacket packet) {
+ return PacketSignal.HANDLED;
+ }
+
+ @Override
+ public PacketSignal handle(AddPaintingPacket packet) {
+ return PacketSignal.HANDLED;
+ }
+
+ @Override
+ public PacketSignal handle(AddPlayerPacket packet) {
+ return PacketSignal.HANDLED;
+ }
+
+ @Override
+ public PacketSignal handle(AvailableCommandsPacket packet) {
+ return PacketSignal.HANDLED;
+ }
+
+ @Override
+ public PacketSignal handle(BlockEventPacket packet) {
+ return PacketSignal.HANDLED;
+ }
+
+ @Override
+ public PacketSignal handle(BossEventPacket packet) {
+ return PacketSignal.HANDLED;
+ }
+
+ @Override
+ public PacketSignal handle(CameraPacket packet) {
+ return PacketSignal.HANDLED;
+ }
+
+ @Override
+ public PacketSignal handle(ChangeDimensionPacket packet) {
+ return PacketSignal.HANDLED;
+ }
+
+ @Override
+ public PacketSignal handle(ChunkRadiusUpdatedPacket packet) {
+ return PacketSignal.HANDLED;
+ }
+
+ @Override
+ public PacketSignal handle(ClientboundMapItemDataPacket packet) {
+ return PacketSignal.HANDLED;
+ }
+
+ @Override
+ public PacketSignal handle(CommandOutputPacket packet) {
+ return PacketSignal.HANDLED;
+ }
+
+ @Override
+ public PacketSignal handle(ContainerOpenPacket packet) {
+ return PacketSignal.HANDLED;
+ }
+
+ @Override
+ public PacketSignal handle(ContainerSetDataPacket packet) {
+ return PacketSignal.HANDLED;
+ }
+
+ @Override
+ public PacketSignal handle(CraftingDataPacket packet) {
+ return PacketSignal.HANDLED;
+ }
+
+ @Override
+ public PacketSignal handle(ExplodePacket packet) {
+ return PacketSignal.HANDLED;
+ }
+
+ @Override
+ public PacketSignal handle(LevelChunkPacket packet) {
+ return PacketSignal.HANDLED;
+ }
+
+ @Override
+ public PacketSignal handle(GameRulesChangedPacket packet) {
+ return PacketSignal.HANDLED;
+ }
+
+ @Override
+ public PacketSignal handle(GuiDataPickItemPacket packet) {
+ return PacketSignal.HANDLED;
+ }
+
+ @Override
+ public PacketSignal handle(HurtArmorPacket packet) {
+ return PacketSignal.HANDLED;
+ }
+
+ @Override
+ public PacketSignal handle(AutomationClientConnectPacket packet) {
+ return PacketSignal.HANDLED;
+ }
+
+ @Override
+ public PacketSignal handle(LevelEventPacket packet) {
+ return PacketSignal.HANDLED;
+ }
+
+ @Override
+ public PacketSignal handle(MapCreateLockedCopyPacket packet) {
+ return PacketSignal.HANDLED;
+ }
+
+ @Override
+ public PacketSignal handle(MobEffectPacket packet) {
+ return PacketSignal.HANDLED;
+ }
+
+ @Override
+ public PacketSignal handle(ModalFormRequestPacket packet) {
+ return PacketSignal.HANDLED;
+ }
+
+ @Override
+ public PacketSignal handle(MoveEntityDeltaPacket packet) {
+ return PacketSignal.HANDLED;
}
+ @Override
+ public PacketSignal handle(NpcRequestPacket packet) {
+ return PacketSignal.HANDLED;
+ }
+
+ @Override
+ public PacketSignal handle(OnScreenTextureAnimationPacket packet) {
+ return PacketSignal.HANDLED;
+ }
+
+ @Override
+ public PacketSignal handle(PlayerListPacket packet) {
+ return PacketSignal.HANDLED;
+ }
+
+ @Override
+ public PacketSignal handle(PlaySoundPacket packet) {
+ return PacketSignal.HANDLED;
+ }
+
+ @Override
+ public PacketSignal handle(PlayStatusPacket packet) {
+ return PacketSignal.HANDLED;
+ }
+
+ @Override
+ public PacketSignal handle(RemoveEntityPacket packet) {
+ return PacketSignal.HANDLED;
+ }
+
+ @Override
+ public PacketSignal handle(RemoveObjectivePacket packet) {
+ return PacketSignal.HANDLED;
+ }
+
+ @Override
+ public PacketSignal handle(ResourcePackChunkDataPacket packet) {
+ return PacketSignal.HANDLED;
+ }
+
+ @Override
+ public PacketSignal handle(ResourcePackDataInfoPacket packet) {
+ return PacketSignal.HANDLED;
+ }
+
+ @Override
+ public PacketSignal handle(ResourcePacksInfoPacket packet) {
+ return PacketSignal.HANDLED;
+ }
+
+ @Override
+ public PacketSignal handle(ResourcePackStackPacket packet) {
+ return PacketSignal.HANDLED;
+ }
+
+ @Override
+ public PacketSignal handle(RespawnPacket packet) {
+ return PacketSignal.HANDLED;
+ }
+
+ @Override
+ public PacketSignal handle(ScriptCustomEventPacket packet) {
+ return PacketSignal.HANDLED;
+ }
+
+ @Override
+ public PacketSignal handle(ServerSettingsResponsePacket packet) {
+ return PacketSignal.HANDLED;
+ }
+
+ @Override
+ public PacketSignal handle(ServerToClientHandshakePacket packet) {
+ return PacketSignal.HANDLED;
+ }
+
+ @Override
+ public PacketSignal handle(SetCommandsEnabledPacket packet) {
+ return PacketSignal.HANDLED;
+ }
+
+ @Override
+ public PacketSignal handle(SetDifficultyPacket packet) {
+ return PacketSignal.HANDLED;
+ }
+
+ @Override
+ public PacketSignal handle(SetDisplayObjectivePacket packet) {
+ return PacketSignal.HANDLED;
+ }
+
+ @Override
+ public PacketSignal handle(SetEntityDataPacket packet) {
+ return PacketSignal.HANDLED;
+ }
+
+ @Override
+ public PacketSignal handle(SetEntityLinkPacket packet) {
+ return PacketSignal.HANDLED;
+ }
+
+ @Override
+ public PacketSignal handle(SetEntityMotionPacket packet) {
+ return PacketSignal.HANDLED;
+ }
+
+ @Override
+ public PacketSignal handle(SetHealthPacket packet) {
+ return PacketSignal.HANDLED;
+ }
+
+ @Override
+ public PacketSignal handle(SetLastHurtByPacket packet) {
+ return PacketSignal.HANDLED;
+ }
+
+ @Override
+ public PacketSignal handle(SetScoreboardIdentityPacket packet) {
+ return PacketSignal.HANDLED;
+ }
+
+ @Override
+ public PacketSignal handle(SetScorePacket packet) {
+ return PacketSignal.HANDLED;
+ }
+
+ @Override
+ public PacketSignal handle(SetSpawnPositionPacket packet) {
+ return PacketSignal.HANDLED;
+ }
+
+ @Override
+ public PacketSignal handle(SetTimePacket packet) {
+ return PacketSignal.HANDLED;
+ }
+
+ @Override
+ public PacketSignal handle(SetTitlePacket packet) {
+ return PacketSignal.HANDLED;
+ }
+
+ @Override
+ public PacketSignal handle(ShowCreditsPacket packet) {
+ return PacketSignal.HANDLED;
+ }
+
+ @Override
+ public PacketSignal handle(ShowProfilePacket packet) {
+ return PacketSignal.HANDLED;
+ }
+
+ @Override
+ public PacketSignal handle(ShowStoreOfferPacket packet) {
+ return PacketSignal.HANDLED;
+ }
+
+ @Override
+ public PacketSignal handle(SimpleEventPacket packet) {
+ return PacketSignal.HANDLED;
+ }
+
+ @Override
+ public PacketSignal handle(SpawnExperienceOrbPacket packet) {
+ return PacketSignal.HANDLED;
+ }
+
+ @Override
+ public PacketSignal handle(StartGamePacket packet) {
+ return PacketSignal.HANDLED;
+ }
+
+ @Override
+ public PacketSignal handle(StopSoundPacket packet) {
+ return PacketSignal.HANDLED;
+ }
+
+ @Override
+ public PacketSignal handle(StructureBlockUpdatePacket packet) {
+ return PacketSignal.HANDLED;
+ }
+
+ @Override
+ public PacketSignal handle(StructureTemplateDataRequestPacket packet) {
+ return PacketSignal.HANDLED;
+ }
+
+ @Override
+ public PacketSignal handle(StructureTemplateDataResponsePacket packet) {
+ return PacketSignal.HANDLED;
+ }
+
+ @Override
+ public PacketSignal handle(TakeItemEntityPacket packet) {
+ return PacketSignal.HANDLED;
+ }
+
+ @Override
+ public PacketSignal handle(TransferPacket packet) {
+ return PacketSignal.HANDLED;
+ }
+
+ @Override
+ public PacketSignal handle(UpdateAttributesPacket packet) {
+ return PacketSignal.HANDLED;
+ }
+
+ @Override
+ public PacketSignal handle(UpdateBlockPacket packet) {
+ return PacketSignal.HANDLED;
+ }
+
+ @Override
+ public PacketSignal handle(UpdateBlockPropertiesPacket packet) {
+ return PacketSignal.HANDLED;
+ }
+
+ @Override
+ public PacketSignal handle(UpdateBlockSyncedPacket packet) {
+ return PacketSignal.HANDLED;
+ }
+
+ @Override
+ public PacketSignal handle(UpdateEquipPacket packet) {
+ return PacketSignal.HANDLED;
+ }
+
+ @Override
+ public PacketSignal handle(UpdateSoftEnumPacket packet) {
+ return PacketSignal.HANDLED;
+ }
+
+ @Override
+ public PacketSignal handle(UpdateTradePacket packet) {
+ return PacketSignal.HANDLED;
+ }
+
+ @Override
+ public PacketSignal handle(AvailableEntityIdentifiersPacket packet) {
+ return PacketSignal.HANDLED;
+ }
+
+ @Override
+ public PacketSignal handle(BiomeDefinitionListPacket packet) {
+ return PacketSignal.HANDLED;
+ }
+
+ @Override
+ public PacketSignal handle(LevelSoundEvent2Packet packet) {
+ return PacketSignal.HANDLED;
+ }
+
+ @Override
+ public PacketSignal handle(NetworkChunkPublisherUpdatePacket packet) {
+ return PacketSignal.HANDLED;
+ }
+
+ @Override
+ public PacketSignal handle(SpawnParticleEffectPacket packet) {
+ return PacketSignal.HANDLED;
+ }
+
+ @Override
+ public PacketSignal handle(VideoStreamConnectPacket packet) {
+ return PacketSignal.HANDLED;
+ }
+
+ @Override
+ public PacketSignal handle(EmotePacket packet) {
+ return PacketSignal.HANDLED;
+ }
+
+ @Override
+ public PacketSignal handle(TickSyncPacket packet) {
+ return PacketSignal.HANDLED;
+ }
+
+ @Override
+ public PacketSignal handle(AnvilDamagePacket packet) {
+ return PacketSignal.HANDLED;
+ }
+
+ @Override
+ public PacketSignal handle(NetworkSettingsPacket packet) {
+ return PacketSignal.HANDLED;
+ }
+
+ @Override
+ public PacketSignal handle(PlayerAuthInputPacket packet) {
+ return PacketSignal.HANDLED;
+ }
+
+ @Override
+ public PacketSignal handle(SettingsCommandPacket packet) {
+ return PacketSignal.HANDLED;
+ }
+
+ @Override
+ public PacketSignal handle(EducationSettingsPacket packet) {
+ return PacketSignal.HANDLED;
+ }
+
+ @Override
+ public PacketSignal handle(CompletedUsingItemPacket packet) {
+ return PacketSignal.HANDLED;
+ }
+
+ @Override
+ public PacketSignal handle(MultiplayerSettingsPacket packet) {
+ return PacketSignal.HANDLED;
+ }
+
+ // 1.16 new packets
+ @Override
+ public PacketSignal handle(DebugInfoPacket packet) {
+ return PacketSignal.HANDLED;
+ }
+
+ @Override
+ public PacketSignal handle(EmoteListPacket packet) {
+ return PacketSignal.HANDLED;
+ }
+
+ @Override
+ public PacketSignal handle(CodeBuilderPacket packet) {
+ return PacketSignal.HANDLED;
+ }
+
+ @Override
+ public PacketSignal handle(CreativeContentPacket packet) {
+ return PacketSignal.HANDLED;
+ }
+
+ @Override
+ public PacketSignal handle(ItemStackRequestPacket packet) {
+ return PacketSignal.HANDLED;
+ }
+
+ @Override
+ public PacketSignal handle(LevelSoundEvent1Packet packet) {
+ return PacketSignal.HANDLED;
+ }
+
+ @Override
+ public PacketSignal handle(ItemStackResponsePacket packet) {
+ return PacketSignal.HANDLED;
+ }
+
+ @Override
+ public PacketSignal handle(PlayerArmorDamagePacket packet) {
+ return PacketSignal.HANDLED;
+ }
+
+ @Override
+ public PacketSignal handle(PlayerEnchantOptionsPacket packet) {
+ return PacketSignal.HANDLED;
+ }
+
+ @Override
+ public PacketSignal handle(UpdatePlayerGameTypePacket packet) {
+ return PacketSignal.HANDLED;
+ }
+
+ @Override
+ public PacketSignal handle(PacketViolationWarningPacket packet) {
+ return PacketSignal.HANDLED;
+ }
+
+ @Override
+ public PacketSignal handle(PositionTrackingDBClientRequestPacket packet) {
+ return PacketSignal.HANDLED;
+ }
+
+ @Override
+ public PacketSignal handle(PositionTrackingDBServerBroadcastPacket packet) {
+ return PacketSignal.HANDLED;
+ }
+
+ @Override
+ public PacketSignal handle(MotionPredictionHintsPacket packet) {
+ return PacketSignal.HANDLED;
+ }
+
+ @Override
+ public PacketSignal handle(AnimateEntityPacket packet) {
+ return PacketSignal.HANDLED;
+ }
+
+ @Override
+ public PacketSignal handle(CameraShakePacket packet) {
+ return PacketSignal.HANDLED;
+ }
+
+ @Override
+ public PacketSignal handle(PlayerFogPacket packet) {
+ return PacketSignal.HANDLED;
+ }
+
+ @Override
+ public PacketSignal handle(CorrectPlayerMovePredictionPacket packet) {
+ return PacketSignal.HANDLED;
+ }
+
+ @Override
+ public PacketSignal handle(ItemComponentPacket packet) {
+ return PacketSignal.HANDLED;
+ }
+
+ @Override
+ public PacketSignal handle(FilterTextPacket packet) {
+ return PacketSignal.HANDLED;
+ }
+
+ @Override
+ public PacketSignal handle(RequestAbilityPacket packet) {
+ return PacketSignal.HANDLED;
+ }
}
diff --git a/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/sql/Data.java b/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/sql/Data.java
index 7abe8f1..07e79b2 100644
--- a/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/sql/Data.java
+++ b/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/sql/Data.java
@@ -1,10 +1,10 @@
package main.com.pyratron.pugmatt.bedrockconnect.sql;
-import com.nukkitx.protocol.bedrock.BedrockServerSession;
import main.com.pyratron.pugmatt.bedrockconnect.BedrockConnect;
import main.com.pyratron.pugmatt.bedrockconnect.BCPlayer;
import main.com.pyratron.pugmatt.bedrockconnect.gui.UIComponents;
import main.com.pyratron.pugmatt.bedrockconnect.listeners.PacketHandler;
+import org.cloudburstmc.protocol.bedrock.BedrockServerSession;
import org.json.simple.JSONArray;
import org.json.simple.JSONObject;
import org.json.simple.parser.JSONParser;
diff --git a/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/utils/BedrockProtocol.java b/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/utils/BedrockProtocol.java
index b8bf0f5..50500dc 100644
--- a/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/utils/BedrockProtocol.java
+++ b/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/utils/BedrockProtocol.java
@@ -1,23 +1,11 @@
package main.com.pyratron.pugmatt.bedrockconnect.utils;
-import com.nukkitx.protocol.bedrock.BedrockPacketCodec;
-import com.nukkitx.protocol.bedrock.v419.Bedrock_v419;
-import com.nukkitx.protocol.bedrock.v422.Bedrock_v422;
-import com.nukkitx.protocol.bedrock.v428.Bedrock_v428;
-import com.nukkitx.protocol.bedrock.v431.Bedrock_v431;
-import com.nukkitx.protocol.bedrock.v440.Bedrock_v440;
-import com.nukkitx.protocol.bedrock.v448.Bedrock_v448;
-import com.nukkitx.protocol.bedrock.v465.Bedrock_v465;
-import com.nukkitx.protocol.bedrock.v471.Bedrock_v471;
-import com.nukkitx.protocol.bedrock.v475.Bedrock_v475;
-import com.nukkitx.protocol.bedrock.v486.Bedrock_v486;
-import com.nukkitx.protocol.bedrock.v503.Bedrock_v503;
-import com.nukkitx.protocol.bedrock.v527.Bedrock_v527;
-import com.nukkitx.protocol.bedrock.v534.Bedrock_v534;
-import com.nukkitx.protocol.bedrock.v544.Bedrock_v544;
-import com.nukkitx.protocol.bedrock.v554.Bedrock_v554;
-import com.nukkitx.protocol.bedrock.v557.Bedrock_v557;
-import com.nukkitx.protocol.bedrock.v560.Bedrock_v560;
+import org.cloudburstmc.protocol.bedrock.codec.BedrockCodec;
+import org.cloudburstmc.protocol.bedrock.codec.v544.Bedrock_v544;
+import org.cloudburstmc.protocol.bedrock.codec.v545.Bedrock_v545;
+import org.cloudburstmc.protocol.bedrock.codec.v554.Bedrock_v554;
+import org.cloudburstmc.protocol.bedrock.codec.v557.Bedrock_v557;
+import org.cloudburstmc.protocol.bedrock.codec.v560.Bedrock_v560;
import java.util.ArrayList;
import java.util.List;
@@ -28,52 +16,36 @@ public class BedrockProtocol {
/**
* Latest available version
*/
- public static final BedrockPacketCodec DEFAULT_BEDROCK_CODEC = Bedrock_v554.V554_CODEC.toBuilder()
- .minecraftVersion("1.19.30")
- .protocolVersion(553)
- .build();
+ public static final BedrockCodec DEFAULT_BEDROCK_CODEC = Bedrock_v560.CODEC;
/**
* A list of all supported Bedrock versions that can join BedrockConnect
*/
- public static final List<BedrockPacketCodec> SUPPORTED_BEDROCK_CODECS = new ArrayList<>();
+ public static final List<BedrockCodec> SUPPORTED_BEDROCK_CODECS = new ArrayList<>();
static {
- SUPPORTED_BEDROCK_CODECS.add(Bedrock_v419.V419_CODEC.toBuilder()
- .minecraftVersion("1.16.100/1.16.101")
+ SUPPORTED_BEDROCK_CODECS.add(Bedrock_v544.CODEC);
+ SUPPORTED_BEDROCK_CODECS.add(Bedrock_v545.CODEC.toBuilder()
+ .minecraftVersion("1.19.21/1.19.22")
.build());
- SUPPORTED_BEDROCK_CODECS.add(Bedrock_v422.V422_CODEC.toBuilder()
- .minecraftVersion("1.16.200/1.16.201")
+ SUPPORTED_BEDROCK_CODECS.add(Bedrock_v554.CODEC.toBuilder()
+ .minecraftVersion("1.19.30/1.19.31")
+ .build());
+ SUPPORTED_BEDROCK_CODECS.add(Bedrock_v557.CODEC.toBuilder()
+ .minecraftVersion("1.19.40/1.19.41")
+ .build());
+ SUPPORTED_BEDROCK_CODECS.add(DEFAULT_BEDROCK_CODEC.toBuilder()
+ .minecraftVersion("1.19.50/1.19.51")
.build());
- SUPPORTED_BEDROCK_CODECS.add(Bedrock_v428.V428_CODEC);
- SUPPORTED_BEDROCK_CODECS.add(Bedrock_v431.V431_CODEC);
- SUPPORTED_BEDROCK_CODECS.add(Bedrock_v440.V440_CODEC);
- SUPPORTED_BEDROCK_CODECS.add(Bedrock_v448.V448_CODEC);
- SUPPORTED_BEDROCK_CODECS.add(Bedrock_v465.V465_CODEC);
- SUPPORTED_BEDROCK_CODECS.add(Bedrock_v471.V471_CODEC);
- SUPPORTED_BEDROCK_CODECS.add(Bedrock_v475.V475_CODEC);
- SUPPORTED_BEDROCK_CODECS.add(Bedrock_v486.V486_CODEC);
- SUPPORTED_BEDROCK_CODECS.add(Bedrock_v503.V503_CODEC);
- SUPPORTED_BEDROCK_CODECS.add(Bedrock_v527.V527_CODEC);
- SUPPORTED_BEDROCK_CODECS.add(Bedrock_v534.V534_CODEC);
- SUPPORTED_BEDROCK_CODECS.add(Bedrock_v544.V544_CODEC);
- SUPPORTED_BEDROCK_CODECS.add(Bedrock_v544.V544_CODEC.toBuilder()
- .minecraftVersion("1.19.21")
- .protocolVersion(545)
- .build());
- SUPPORTED_BEDROCK_CODECS.add(Bedrock_v554.V554_CODEC);
- SUPPORTED_BEDROCK_CODECS.add(Bedrock_v557.V557_CODEC);
- SUPPORTED_BEDROCK_CODECS.add(Bedrock_v560.V560_CODEC);
-
}
/**
- * Gets the {@link BedrockPacketCodec} of the given protocol version.
+ * Gets the {@link BedrockCodec} of the given protocol version.
* @param protocolVersion The protocol version to attempt to find
* @return The packet codec, or null if the client's protocol is unsupported
*/
- public static BedrockPacketCodec getBedrockCodec(int protocolVersion) {
- for (BedrockPacketCodec packetCodec : SUPPORTED_BEDROCK_CODECS) {
+ public static BedrockCodec getBedrockCodec(int protocolVersion) {
+ for (BedrockCodec packetCodec : SUPPORTED_BEDROCK_CODECS) {
if (packetCodec.getProtocolVersion() == protocolVersion) {
return packetCodec;
}
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 1efc1fb..fdc5a63 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,14 +4,14 @@ import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.databind.DeserializationFeature;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
-import com.nukkitx.nbt.NBTInputStream;
-import com.nukkitx.nbt.NbtList;
-import com.nukkitx.nbt.NbtMap;
-import com.nukkitx.nbt.NbtUtils;
-import com.nukkitx.protocol.bedrock.data.inventory.ItemData;
import io.netty.buffer.ByteBuf;
import io.netty.buffer.Unpooled;
import main.com.pyratron.pugmatt.bedrockconnect.BedrockConnect;
+import org.cloudburstmc.nbt.NBTInputStream;
+import org.cloudburstmc.nbt.NbtList;
+import org.cloudburstmc.nbt.NbtMap;
+import org.cloudburstmc.nbt.NbtUtils;
+import org.cloudburstmc.protocol.bedrock.data.inventory.ItemData;
import java.io.*;
import java.nio.ByteOrder;
@@ -85,7 +85,7 @@ public class PaletteManager {
try {
NbtMap tag = (NbtMap) NbtUtils.createReaderLE(bais).readTag();
creativeItems.add(ItemData.builder()
- .id(itemNode.get("id").asInt())
+ .netId(itemNode.get("id").asInt())
.damage(damage)
.count(1)
.tag(tag).build());
@@ -94,7 +94,7 @@ public class PaletteManager {
}
} else {
creativeItems.add(ItemData.builder()
- .id(itemNode.get("id").asInt())
+ .netId(itemNode.get("id").asInt())
.damage(damage)
.count(1).build());
}