From e09bdca55ee9f29a48c15e3b9ed8a1904822ecb9 Mon Sep 17 00:00:00 2001 From: zimzaza4 <3625282098@qq.com> Date: Sat, 16 Sep 2023 23:27:29 +0800 Subject: [PATCH] well --- common/pom.xml | 47 +++++++++++++++++-- .../form/element/NpcDialogueButton.java | 2 +- .../common/manager/PacketManager.java | 42 ++++++++--------- .../CameraShakeCustomPayloadPacket.java | 2 + .../common/packet/CustomPayloadPacket.java | 7 ++- ...pcDialogueFormDataCustomPayloadPacket.java | 2 + .../common/util/CustomPayloadPacketUtils.java | 5 -- .../geyserutils/geyser/GeyserUtils.java | 7 +-- .../geyserutils/spigot/api/PlayerUtils.java | 1 + 9 files changed, 78 insertions(+), 37 deletions(-) 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 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); }