diff --git a/common/pom.xml b/common/pom.xml
index db69fe7..15646cc 100644
--- a/common/pom.xml
+++ b/common/pom.xml
@@ -17,6 +17,42 @@
UTF-8
+
+
+
+ org.apache.maven.plugins
+ maven-shade-plugin
+ 3.4.1
+
+
+
+ com.fasterxml.jackson
+ me.zimzaza4.geyserutils.relocations.jackson
+
+
+
+
+
+ package
+
+ shade
+
+
+ false
+
+
+
+
+
+
+
+ src/main/resources
+ true
+
+
+
+
+
@@ -26,9 +62,14 @@
compile
- com.esotericsoftware
- kryo
- 5.5.0
+ com.fasterxml.jackson.core
+ jackson-core
+ 2.15.2
+
+
+ com.fasterxml.jackson.core
+ jackson-databind
+ 2.15.2
diff --git a/common/src/main/java/me/zimzaza4/geyserutils/common/form/element/NpcDialogueButton.java b/common/src/main/java/me/zimzaza4/geyserutils/common/form/element/NpcDialogueButton.java
index e3a6c42..b637b1e 100644
--- a/common/src/main/java/me/zimzaza4/geyserutils/common/form/element/NpcDialogueButton.java
+++ b/common/src/main/java/me/zimzaza4/geyserutils/common/form/element/NpcDialogueButton.java
@@ -11,7 +11,7 @@ import java.util.List;
@Setter
@Getter
@Accessors( fluent = true )
-public class NpcDialogueButton implements Serializable {
+public class NpcDialogueButton {
private String text;
private List commands;
private ButtonMode mode;
diff --git a/common/src/main/java/me/zimzaza4/geyserutils/common/manager/PacketManager.java b/common/src/main/java/me/zimzaza4/geyserutils/common/manager/PacketManager.java
index d56dca8..311535c 100644
--- a/common/src/main/java/me/zimzaza4/geyserutils/common/manager/PacketManager.java
+++ b/common/src/main/java/me/zimzaza4/geyserutils/common/manager/PacketManager.java
@@ -1,41 +1,41 @@
package me.zimzaza4.geyserutils.common.manager;
-import com.esotericsoftware.kryo.Kryo;
-import com.esotericsoftware.kryo.io.Input;
-import com.esotericsoftware.kryo.io.Output;
-import me.zimzaza4.geyserutils.common.packet.CameraShakeCustomPayloadPacket;
-import me.zimzaza4.geyserutils.common.packet.CustomPayloadPacket;
-import me.zimzaza4.geyserutils.common.packet.NpcDialogueFormDataCustomPayloadPacket;
-import java.io.*;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.jsontype.BasicPolymorphicTypeValidator;
+import com.fasterxml.jackson.databind.jsontype.PolymorphicTypeValidator;
+import me.zimzaza4.geyserutils.common.packet.CustomPayloadPacket;
+
+import java.io.IOException;
+import java.nio.charset.StandardCharsets;
public class PacketManager {
- private final Kryo kryo = new Kryo();
+ private final ObjectMapper objectMapper;
public PacketManager() {
- init();
+ objectMapper = new ObjectMapper();
+ objectMapper.enableDefaultTyping(ObjectMapper.DefaultTyping.EVERYTHING, JsonTypeInfo.As.PROPERTY);
}
- public void init() {
- kryo.setRegistrationRequired(false);
- }
- public void registerPacket(Class extends CustomPayloadPacket> clazz) {
- kryo.register(clazz);
- }
public byte[] encodePacket(CustomPayloadPacket packet) {
- ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
- try (Output output = new Output()) {
- kryo.writeObject(output, packet);
- return byteArrayOutputStream.toByteArray();
+
+ try {
+ return objectMapper.writeValueAsBytes(packet);
+ } catch (JsonProcessingException e) {
+ throw new RuntimeException(e);
}
}
public CustomPayloadPacket decodePacket(byte[] bytes) {
- try (Input input = new Input(bytes)) {
- return kryo.readObject(input, CustomPayloadPacket.class);
+ try {
+ return objectMapper.readValue(bytes, CustomPayloadPacket.class);
+ } catch (IOException e) {
+ throw new RuntimeException(e);
}
}
}
diff --git a/common/src/main/java/me/zimzaza4/geyserutils/common/packet/CameraShakeCustomPayloadPacket.java b/common/src/main/java/me/zimzaza4/geyserutils/common/packet/CameraShakeCustomPayloadPacket.java
index 17a89b0..4531e57 100644
--- a/common/src/main/java/me/zimzaza4/geyserutils/common/packet/CameraShakeCustomPayloadPacket.java
+++ b/common/src/main/java/me/zimzaza4/geyserutils/common/packet/CameraShakeCustomPayloadPacket.java
@@ -2,9 +2,11 @@ package me.zimzaza4.geyserutils.common.packet;
import lombok.AllArgsConstructor;
import lombok.Getter;
+import lombok.NoArgsConstructor;
@Getter
@AllArgsConstructor
+@NoArgsConstructor
public class CameraShakeCustomPayloadPacket extends CustomPayloadPacket {
float intensity;
diff --git a/common/src/main/java/me/zimzaza4/geyserutils/common/packet/CustomPayloadPacket.java b/common/src/main/java/me/zimzaza4/geyserutils/common/packet/CustomPayloadPacket.java
index e81520e..b39ccf0 100644
--- a/common/src/main/java/me/zimzaza4/geyserutils/common/packet/CustomPayloadPacket.java
+++ b/common/src/main/java/me/zimzaza4/geyserutils/common/packet/CustomPayloadPacket.java
@@ -1,7 +1,12 @@
package me.zimzaza4.geyserutils.common.packet;
+
+import lombok.Getter;
+import lombok.Setter;
+
import java.io.Serializable;
-public abstract class CustomPayloadPacket implements Serializable {
+public abstract class CustomPayloadPacket {
+
}
diff --git a/common/src/main/java/me/zimzaza4/geyserutils/common/packet/NpcDialogueFormDataCustomPayloadPacket.java b/common/src/main/java/me/zimzaza4/geyserutils/common/packet/NpcDialogueFormDataCustomPayloadPacket.java
index 91dd32c..d30b1a5 100644
--- a/common/src/main/java/me/zimzaza4/geyserutils/common/packet/NpcDialogueFormDataCustomPayloadPacket.java
+++ b/common/src/main/java/me/zimzaza4/geyserutils/common/packet/NpcDialogueFormDataCustomPayloadPacket.java
@@ -2,6 +2,7 @@ package me.zimzaza4.geyserutils.common.packet;
import lombok.AllArgsConstructor;
import lombok.Getter;
+import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.experimental.Accessors;
import me.zimzaza4.geyserutils.common.form.element.NpcDialogueButton;
@@ -9,6 +10,7 @@ import me.zimzaza4.geyserutils.common.form.element.NpcDialogueButton;
import java.util.List;
@AllArgsConstructor
+@NoArgsConstructor
@Accessors(fluent = true)
@Getter
@Setter
diff --git a/common/src/main/java/me/zimzaza4/geyserutils/common/util/CustomPayloadPacketUtils.java b/common/src/main/java/me/zimzaza4/geyserutils/common/util/CustomPayloadPacketUtils.java
index 924cda2..f5d26a4 100644
--- a/common/src/main/java/me/zimzaza4/geyserutils/common/util/CustomPayloadPacketUtils.java
+++ b/common/src/main/java/me/zimzaza4/geyserutils/common/util/CustomPayloadPacketUtils.java
@@ -1,10 +1,5 @@
package me.zimzaza4.geyserutils.common.util;
-import com.esotericsoftware.kryo.Kryo;
-import me.zimzaza4.geyserutils.common.packet.CustomPayloadPacket;
-
-import java.io.*;
-
public class CustomPayloadPacketUtils {
diff --git a/geyser/src/main/java/me/zimzaza4/geyserutils/geyser/GeyserUtils.java b/geyser/src/main/java/me/zimzaza4/geyserutils/geyser/GeyserUtils.java
index c35645d..7d7aee4 100644
--- a/geyser/src/main/java/me/zimzaza4/geyserutils/geyser/GeyserUtils.java
+++ b/geyser/src/main/java/me/zimzaza4/geyserutils/geyser/GeyserUtils.java
@@ -42,18 +42,13 @@ public class GeyserUtils implements Extension {
@Subscribe
public void onSessionJoin(SessionJoinEvent event) {
if (event.connection() instanceof GeyserSession session) {
- System.out.println("Add");
session.getDownstream().getSession().addListener(new SessionAdapter() {
@Override
public void packetReceived(Session tcpSession, Packet packet) {
if (packet instanceof ClientboundCustomPayloadPacket payloadPacket) {
- System.out.println(payloadPacket.getChannel());
- if (payloadPacket.getChannel().equals(GeyserUtilsChannels.MAIN)) {
- System.out.println("Received packet");
+ if (payloadPacket.getChannel().equals(GeyserUtilsChannels.MAIN)) {;
CustomPayloadPacket customPacket = packetManager.decodePacket(payloadPacket.getData());
- System.out.println(1);
if (customPacket instanceof CameraShakeCustomPayloadPacket cameraShakePacket) {
- System.out.println(2);
event.connection().shakeCamera(cameraShakePacket.getIntensity(), cameraShakePacket.getDuration(), CameraShake.values()[cameraShakePacket.getType()]);
} else if (customPacket instanceof NpcDialogueFormDataCustomPayloadPacket formData) {
diff --git a/spigot/src/main/java/me/zimzaza4/geyserutils/spigot/api/PlayerUtils.java b/spigot/src/main/java/me/zimzaza4/geyserutils/spigot/api/PlayerUtils.java
index 176297d..ecc0a86 100644
--- a/spigot/src/main/java/me/zimzaza4/geyserutils/spigot/api/PlayerUtils.java
+++ b/spigot/src/main/java/me/zimzaza4/geyserutils/spigot/api/PlayerUtils.java
@@ -24,6 +24,7 @@ public class PlayerUtils {
for (Entity entity : entityList) {
idList.add(entity.getEntityId());
}
+
playEntityAnimation(player, animation, idList);
}