mirror of
https://github.com/GeyserExtensionists/GeyserUtils.git
synced 2025-12-19 14:59:18 +00:00
well
This commit is contained in:
@@ -17,6 +17,42 @@
|
|||||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||||
</properties>
|
</properties>
|
||||||
|
|
||||||
|
<build>
|
||||||
|
<plugins>
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
|
<artifactId>maven-shade-plugin</artifactId>
|
||||||
|
<version>3.4.1</version>
|
||||||
|
<configuration>
|
||||||
|
<relocations>
|
||||||
|
<relocation>
|
||||||
|
<pattern>com.fasterxml.jackson</pattern>
|
||||||
|
<shadedPattern>me.zimzaza4.geyserutils.relocations.jackson</shadedPattern>
|
||||||
|
</relocation>
|
||||||
|
</relocations>
|
||||||
|
</configuration>
|
||||||
|
<executions>
|
||||||
|
<execution>
|
||||||
|
<phase>package</phase>
|
||||||
|
<goals>
|
||||||
|
<goal>shade</goal>
|
||||||
|
</goals>
|
||||||
|
<configuration>
|
||||||
|
<createDependencyReducedPom>false</createDependencyReducedPom>
|
||||||
|
</configuration>
|
||||||
|
</execution>
|
||||||
|
</executions>
|
||||||
|
</plugin>
|
||||||
|
</plugins>
|
||||||
|
<resources>
|
||||||
|
<resource>
|
||||||
|
<directory>src/main/resources</directory>
|
||||||
|
<filtering>true</filtering>
|
||||||
|
</resource>
|
||||||
|
</resources>
|
||||||
|
</build>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<dependencies>
|
<dependencies>
|
||||||
<dependency>
|
<dependency>
|
||||||
@@ -26,9 +62,14 @@
|
|||||||
<scope>compile</scope>
|
<scope>compile</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.esotericsoftware</groupId>
|
<groupId>com.fasterxml.jackson.core</groupId>
|
||||||
<artifactId>kryo</artifactId>
|
<artifactId>jackson-core</artifactId>
|
||||||
<version>5.5.0</version>
|
<version>2.15.2</version>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.fasterxml.jackson.core</groupId>
|
||||||
|
<artifactId>jackson-databind</artifactId>
|
||||||
|
<version>2.15.2</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ import java.util.List;
|
|||||||
@Setter
|
@Setter
|
||||||
@Getter
|
@Getter
|
||||||
@Accessors( fluent = true )
|
@Accessors( fluent = true )
|
||||||
public class NpcDialogueButton implements Serializable {
|
public class NpcDialogueButton {
|
||||||
private String text;
|
private String text;
|
||||||
private List<String> commands;
|
private List<String> commands;
|
||||||
private ButtonMode mode;
|
private ButtonMode mode;
|
||||||
|
|||||||
@@ -1,41 +1,41 @@
|
|||||||
package me.zimzaza4.geyserutils.common.manager;
|
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 {
|
public class PacketManager {
|
||||||
|
|
||||||
private final Kryo kryo = new Kryo();
|
private final ObjectMapper objectMapper;
|
||||||
|
|
||||||
public PacketManager() {
|
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) {
|
public byte[] encodePacket(CustomPayloadPacket packet) {
|
||||||
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
|
|
||||||
try (Output output = new Output()) {
|
try {
|
||||||
kryo.writeObject(output, packet);
|
return objectMapper.writeValueAsBytes(packet);
|
||||||
return byteArrayOutputStream.toByteArray();
|
} catch (JsonProcessingException e) {
|
||||||
|
throw new RuntimeException(e);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public CustomPayloadPacket decodePacket(byte[] bytes) {
|
public CustomPayloadPacket decodePacket(byte[] bytes) {
|
||||||
try (Input input = new Input(bytes)) {
|
try {
|
||||||
return kryo.readObject(input, CustomPayloadPacket.class);
|
return objectMapper.readValue(bytes, CustomPayloadPacket.class);
|
||||||
|
} catch (IOException e) {
|
||||||
|
throw new RuntimeException(e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,9 +2,11 @@ package me.zimzaza4.geyserutils.common.packet;
|
|||||||
|
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
@Getter
|
@Getter
|
||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
|
@NoArgsConstructor
|
||||||
public class CameraShakeCustomPayloadPacket extends CustomPayloadPacket {
|
public class CameraShakeCustomPayloadPacket extends CustomPayloadPacket {
|
||||||
|
|
||||||
float intensity;
|
float intensity;
|
||||||
|
|||||||
@@ -1,7 +1,12 @@
|
|||||||
package me.zimzaza4.geyserutils.common.packet;
|
package me.zimzaza4.geyserutils.common.packet;
|
||||||
|
|
||||||
|
|
||||||
|
import lombok.Getter;
|
||||||
|
import lombok.Setter;
|
||||||
|
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
|
|
||||||
public abstract class CustomPayloadPacket implements Serializable {
|
public abstract class CustomPayloadPacket {
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ package me.zimzaza4.geyserutils.common.packet;
|
|||||||
|
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
import lombok.Setter;
|
import lombok.Setter;
|
||||||
import lombok.experimental.Accessors;
|
import lombok.experimental.Accessors;
|
||||||
import me.zimzaza4.geyserutils.common.form.element.NpcDialogueButton;
|
import me.zimzaza4.geyserutils.common.form.element.NpcDialogueButton;
|
||||||
@@ -9,6 +10,7 @@ import me.zimzaza4.geyserutils.common.form.element.NpcDialogueButton;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
|
@NoArgsConstructor
|
||||||
@Accessors(fluent = true)
|
@Accessors(fluent = true)
|
||||||
@Getter
|
@Getter
|
||||||
@Setter
|
@Setter
|
||||||
|
|||||||
@@ -1,10 +1,5 @@
|
|||||||
package me.zimzaza4.geyserutils.common.util;
|
package me.zimzaza4.geyserutils.common.util;
|
||||||
|
|
||||||
import com.esotericsoftware.kryo.Kryo;
|
|
||||||
import me.zimzaza4.geyserutils.common.packet.CustomPayloadPacket;
|
|
||||||
|
|
||||||
import java.io.*;
|
|
||||||
|
|
||||||
public class CustomPayloadPacketUtils {
|
public class CustomPayloadPacketUtils {
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -42,18 +42,13 @@ public class GeyserUtils implements Extension {
|
|||||||
@Subscribe
|
@Subscribe
|
||||||
public void onSessionJoin(SessionJoinEvent event) {
|
public void onSessionJoin(SessionJoinEvent event) {
|
||||||
if (event.connection() instanceof GeyserSession session) {
|
if (event.connection() instanceof GeyserSession session) {
|
||||||
System.out.println("Add");
|
|
||||||
session.getDownstream().getSession().addListener(new SessionAdapter() {
|
session.getDownstream().getSession().addListener(new SessionAdapter() {
|
||||||
@Override
|
@Override
|
||||||
public void packetReceived(Session tcpSession, Packet packet) {
|
public void packetReceived(Session tcpSession, Packet packet) {
|
||||||
if (packet instanceof ClientboundCustomPayloadPacket payloadPacket) {
|
if (packet instanceof ClientboundCustomPayloadPacket payloadPacket) {
|
||||||
System.out.println(payloadPacket.getChannel());
|
if (payloadPacket.getChannel().equals(GeyserUtilsChannels.MAIN)) {;
|
||||||
if (payloadPacket.getChannel().equals(GeyserUtilsChannels.MAIN)) {
|
|
||||||
System.out.println("Received packet");
|
|
||||||
CustomPayloadPacket customPacket = packetManager.decodePacket(payloadPacket.getData());
|
CustomPayloadPacket customPacket = packetManager.decodePacket(payloadPacket.getData());
|
||||||
System.out.println(1);
|
|
||||||
if (customPacket instanceof CameraShakeCustomPayloadPacket cameraShakePacket) {
|
if (customPacket instanceof CameraShakeCustomPayloadPacket cameraShakePacket) {
|
||||||
System.out.println(2);
|
|
||||||
event.connection().shakeCamera(cameraShakePacket.getIntensity(), cameraShakePacket.getDuration(), CameraShake.values()[cameraShakePacket.getType()]);
|
event.connection().shakeCamera(cameraShakePacket.getIntensity(), cameraShakePacket.getDuration(), CameraShake.values()[cameraShakePacket.getType()]);
|
||||||
} else if (customPacket instanceof NpcDialogueFormDataCustomPayloadPacket formData) {
|
} else if (customPacket instanceof NpcDialogueFormDataCustomPayloadPacket formData) {
|
||||||
|
|
||||||
|
|||||||
@@ -24,6 +24,7 @@ public class PlayerUtils {
|
|||||||
for (Entity entity : entityList) {
|
for (Entity entity : entityList) {
|
||||||
idList.add(entity.getEntityId());
|
idList.add(entity.getEntityId());
|
||||||
}
|
}
|
||||||
|
|
||||||
playEntityAnimation(player, animation, idList);
|
playEntityAnimation(player, animation, idList);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user