diff --git a/.github/workflows/maven.yml b/.github/workflows/maven.yml
index 4ac2726..c3ca605 100644
--- a/.github/workflows/maven.yml
+++ b/.github/workflows/maven.yml
@@ -19,12 +19,12 @@ jobs:
with:
java-version: 17
distribution: 'zulu'
-
+
# Build
- name: Build with Maven
run: mvn -B package --file pom.xml
-
-
+
+
- name: Auto release
uses: "marvinpinto/action-automatic-releases@latest"
with:
diff --git a/.idea/misc.xml b/.idea/misc.xml
index 4a4279b..7ca4b63 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -1,3 +1,4 @@
+
@@ -19,7 +20,7 @@
-
+
\ No newline at end of file
diff --git a/common/src/main/java/me/zimzaza4/geyserutils/common/camera/data/CameraPreset.java b/common/src/main/java/me/zimzaza4/geyserutils/common/camera/data/CameraPreset.java
index 35f2d6f..c7ec50d 100644
--- a/common/src/main/java/me/zimzaza4/geyserutils/common/camera/data/CameraPreset.java
+++ b/common/src/main/java/me/zimzaza4/geyserutils/common/camera/data/CameraPreset.java
@@ -11,6 +11,31 @@ import java.util.TreeMap;
@Getter
public class CameraPreset {
private static final Map PRESETS = new TreeMap<>();
+ public static CameraPreset FIRST_PERSON;
+ public static CameraPreset FREE;
+ public static CameraPreset THIRD_PERSON;
+ public static CameraPreset THIRD_PERSON_FRONT;
+ private String identifier;
+ @Getter
+ private String inheritFrom;
+ @Getter
+ @Nullable
+ private Pos pos;
+ @Getter
+ @Nullable
+ private Rot rot;
+ @Getter
+ private int id;
+ @Builder
+ public CameraPreset(String identifier, String inheritFrom, @Nullable Pos pos, @Nullable Rot rot) {
+ this.identifier = identifier;
+ this.inheritFrom = inheritFrom != null ? inheritFrom : "";
+ this.pos = pos;
+ this.rot = rot;
+ }
+ protected CameraPreset() {
+
+ }
public static Map getPresets() {
return PRESETS;
@@ -34,11 +59,6 @@ public class CameraPreset {
}
}
- public static CameraPreset FIRST_PERSON;
- public static CameraPreset FREE;
- public static CameraPreset THIRD_PERSON;
- public static CameraPreset THIRD_PERSON_FRONT;
-
public static void load() {
FIRST_PERSON = CameraPreset.builder()
.identifier("minecraft:first_person")
@@ -57,29 +77,4 @@ public class CameraPreset {
registerCameraPresets(FIRST_PERSON, FREE, THIRD_PERSON, THIRD_PERSON_FRONT);
}
-
- private String identifier;
- @Getter
- private String inheritFrom;
- @Getter
- @Nullable
- private Pos pos;
- @Getter
- @Nullable
- private Rot rot;
-
- @Getter
- private int id;
-
- @Builder
- public CameraPreset(String identifier, String inheritFrom, @Nullable Pos pos, @Nullable Rot rot) {
- this.identifier = identifier;
- this.inheritFrom = inheritFrom != null ? inheritFrom : "";
- this.pos = pos;
- this.rot = rot;
- }
-
- protected CameraPreset() {
-
- }
}
diff --git a/common/src/main/java/me/zimzaza4/geyserutils/common/camera/data/Ease.java b/common/src/main/java/me/zimzaza4/geyserutils/common/camera/data/Ease.java
index 2368f4e..9e78d74 100644
--- a/common/src/main/java/me/zimzaza4/geyserutils/common/camera/data/Ease.java
+++ b/common/src/main/java/me/zimzaza4/geyserutils/common/camera/data/Ease.java
@@ -1,7 +1,5 @@
package me.zimzaza4.geyserutils.common.camera.data;
-import com.fasterxml.jackson.databind.JsonNode;
-import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
diff --git a/common/src/main/java/me/zimzaza4/geyserutils/common/camera/data/EaseType.java b/common/src/main/java/me/zimzaza4/geyserutils/common/camera/data/EaseType.java
index f4ece98..7e33786 100644
--- a/common/src/main/java/me/zimzaza4/geyserutils/common/camera/data/EaseType.java
+++ b/common/src/main/java/me/zimzaza4/geyserutils/common/camera/data/EaseType.java
@@ -4,42 +4,43 @@ import lombok.Getter;
@Getter
public enum EaseType {
- LINEAR("linear",0),
- SPRING("spring",1),
- EASE_IN_SINE("in_sine",2),
- EASE_OUT_SINE("out_sine",3),
- EASE_IN_OUT_SINE("in_out_sine",4),
- EASE_IN_QUAD("in_quad",5),
- EASE_OUT_QUAD("out_quad",6),
- EASE_IN_OUT_QUAD("in_out_quad",7),
- EASE_IN_CUBIC("in_cubic",8),
- EASE_OUT_CUBIC("out_cubic",9),
- EASE_IN_OUT_CUBIC("in_out_cubic",10),
- EASE_IN_QUART("in_quart",11),
- EASE_OUT_QUART("out_quart",12),
- EASE_IN_OUT_QUART("in_out_quart",13),
- EASE_IN_QUINT("in_quint",14),
- EASE_OUT_QUINT("out_quint",15),
- EASE_IN_OUT_QUINT("in_out_quint",16),
- EASE_IN_EXPO("in_expo",17),
- EASE_OUT_EXPO("out_expo",18),
- EASE_IN_OUT_EXPO("in_out_expo",19),
- EASE_IN_CIRC("in_circ",20),
- EASE_OUT_CIRC("out_circ",21),
- EASE_IN_OUT_CIRC("in_out_circ",22),
- EASE_IN_BACK("in_back",23),
- EASE_OUT_BACK("out_back",24),
- EASE_IN_OUT_BACK("in_out_back",25),
- EASE_IN_ELASTIC("in_elastic",26),
- EASE_OUT_ELASTIC("out_elastic",27),
- EASE_IN_OUT_ELASTIC("in_out_elastic",28),
- EASE_IN_BOUNCE("in_bounce",29),
- EASE_OUT_BOUNCE("out_bounce",30),
- EASE_IN_OUT_BOUNCE("in_out_bounce",31);
+ LINEAR("linear", 0),
+ SPRING("spring", 1),
+ EASE_IN_SINE("in_sine", 2),
+ EASE_OUT_SINE("out_sine", 3),
+ EASE_IN_OUT_SINE("in_out_sine", 4),
+ EASE_IN_QUAD("in_quad", 5),
+ EASE_OUT_QUAD("out_quad", 6),
+ EASE_IN_OUT_QUAD("in_out_quad", 7),
+ EASE_IN_CUBIC("in_cubic", 8),
+ EASE_OUT_CUBIC("out_cubic", 9),
+ EASE_IN_OUT_CUBIC("in_out_cubic", 10),
+ EASE_IN_QUART("in_quart", 11),
+ EASE_OUT_QUART("out_quart", 12),
+ EASE_IN_OUT_QUART("in_out_quart", 13),
+ EASE_IN_QUINT("in_quint", 14),
+ EASE_OUT_QUINT("out_quint", 15),
+ EASE_IN_OUT_QUINT("in_out_quint", 16),
+ EASE_IN_EXPO("in_expo", 17),
+ EASE_OUT_EXPO("out_expo", 18),
+ EASE_IN_OUT_EXPO("in_out_expo", 19),
+ EASE_IN_CIRC("in_circ", 20),
+ EASE_OUT_CIRC("out_circ", 21),
+ EASE_IN_OUT_CIRC("in_out_circ", 22),
+ EASE_IN_BACK("in_back", 23),
+ EASE_OUT_BACK("out_back", 24),
+ EASE_IN_OUT_BACK("in_out_back", 25),
+ EASE_IN_ELASTIC("in_elastic", 26),
+ EASE_OUT_ELASTIC("out_elastic", 27),
+ EASE_IN_OUT_ELASTIC("in_out_elastic", 28),
+ EASE_IN_BOUNCE("in_bounce", 29),
+ EASE_OUT_BOUNCE("out_bounce", 30),
+ EASE_IN_OUT_BOUNCE("in_out_bounce", 31);
private final String type;
private final int index;
+
EaseType(String type, int index) {
this.type = type;
this.index = index;
diff --git a/common/src/main/java/me/zimzaza4/geyserutils/common/camera/instruction/ClearInstruction.java b/common/src/main/java/me/zimzaza4/geyserutils/common/camera/instruction/ClearInstruction.java
index 7987ee6..f40d0ad 100644
--- a/common/src/main/java/me/zimzaza4/geyserutils/common/camera/instruction/ClearInstruction.java
+++ b/common/src/main/java/me/zimzaza4/geyserutils/common/camera/instruction/ClearInstruction.java
@@ -7,7 +7,8 @@ public class ClearInstruction implements Instruction {
private static final ClearInstruction INSTANCE = new ClearInstruction();
private final int clear = 1;
- private ClearInstruction() {}
+ private ClearInstruction() {
+ }
public static ClearInstruction instance() {
return INSTANCE;
diff --git a/common/src/main/java/me/zimzaza4/geyserutils/common/camera/instruction/FadeInstruction.java b/common/src/main/java/me/zimzaza4/geyserutils/common/camera/instruction/FadeInstruction.java
index 009841f..14e4e82 100644
--- a/common/src/main/java/me/zimzaza4/geyserutils/common/camera/instruction/FadeInstruction.java
+++ b/common/src/main/java/me/zimzaza4/geyserutils/common/camera/instruction/FadeInstruction.java
@@ -16,5 +16,6 @@ public class FadeInstruction implements Instruction {
@Nullable
private Time time;
- protected FadeInstruction() {}
+ protected FadeInstruction() {
+ }
}
diff --git a/common/src/main/java/me/zimzaza4/geyserutils/common/camera/instruction/SetInstruction.java b/common/src/main/java/me/zimzaza4/geyserutils/common/camera/instruction/SetInstruction.java
index 7abe8e4..abe7fba 100644
--- a/common/src/main/java/me/zimzaza4/geyserutils/common/camera/instruction/SetInstruction.java
+++ b/common/src/main/java/me/zimzaza4/geyserutils/common/camera/instruction/SetInstruction.java
@@ -1,10 +1,12 @@
package me.zimzaza4.geyserutils.common.camera.instruction;
-import lombok.*;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Getter;
import me.zimzaza4.geyserutils.common.camera.data.CameraPreset;
import me.zimzaza4.geyserutils.common.camera.data.Ease;
-import me.zimzaza4.geyserutils.common.util.Pos;
import me.zimzaza4.geyserutils.common.camera.data.Rot;
+import me.zimzaza4.geyserutils.common.util.Pos;
import org.jetbrains.annotations.Nullable;
@AllArgsConstructor
@@ -23,5 +25,7 @@ public class SetInstruction implements Instruction {
private CameraPreset preset;
@Nullable
private FadeInstruction fade;
- protected SetInstruction() {}
+
+ protected SetInstruction() {
+ }
}
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 924387e..8e91374 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
@@ -2,20 +2,19 @@ package me.zimzaza4.geyserutils.common.form.element;
import lombok.Getter;
import lombok.Setter;
-import lombok.Value;
import lombok.experimental.Accessors;
-import java.io.Serializable;
import java.util.List;
@Setter
@Getter
-@Accessors( fluent = true )
+@Accessors(fluent = true)
public class NpcDialogueButton {
private String text;
private List commands;
private ButtonMode mode;
private boolean hasNextForm;
+
public enum ButtonMode {
BUTTON_MODE,
ON_ENTER,
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 41cbe6c..59eacda 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
@@ -2,18 +2,13 @@ package me.zimzaza4.geyserutils.common.manager;
import com.fasterxml.jackson.annotation.JsonAutoDetect;
-import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonTypeInfo;
import com.fasterxml.jackson.annotation.PropertyAccessor;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
-import com.fasterxml.jackson.databind.SerializationFeature;
-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 {
diff --git a/common/src/main/java/me/zimzaza4/geyserutils/common/packet/AnimateEntityCustomPayloadPacket.java b/common/src/main/java/me/zimzaza4/geyserutils/common/packet/AnimateEntityCustomPayloadPacket.java
index cc2cb8c..3cefe01 100644
--- a/common/src/main/java/me/zimzaza4/geyserutils/common/packet/AnimateEntityCustomPayloadPacket.java
+++ b/common/src/main/java/me/zimzaza4/geyserutils/common/packet/AnimateEntityCustomPayloadPacket.java
@@ -9,7 +9,7 @@ import java.util.List;
@Setter
@Getter
-public class AnimateEntityCustomPayloadPacket extends CustomPayloadPacket{
+public class AnimateEntityCustomPayloadPacket extends CustomPayloadPacket {
private String animation;
private String nextState;
private String stopExpression;
diff --git a/common/src/main/java/me/zimzaza4/geyserutils/common/packet/BundlePacket.java b/common/src/main/java/me/zimzaza4/geyserutils/common/packet/BundlePacket.java
index a9eae80..0cdb364 100644
--- a/common/src/main/java/me/zimzaza4/geyserutils/common/packet/BundlePacket.java
+++ b/common/src/main/java/me/zimzaza4/geyserutils/common/packet/BundlePacket.java
@@ -1,6 +1,9 @@
package me.zimzaza4.geyserutils.common.packet;
-import lombok.*;
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.Setter;
import java.util.ArrayList;
import java.util.List;
diff --git a/common/src/main/java/me/zimzaza4/geyserutils/common/packet/CustomEntityPacket.java b/common/src/main/java/me/zimzaza4/geyserutils/common/packet/CustomEntityPacket.java
index 1353235..96aac99 100644
--- a/common/src/main/java/me/zimzaza4/geyserutils/common/packet/CustomEntityPacket.java
+++ b/common/src/main/java/me/zimzaza4/geyserutils/common/packet/CustomEntityPacket.java
@@ -5,8 +5,6 @@ import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
-import java.util.UUID;
-
@Setter
@Getter
@AllArgsConstructor
diff --git a/common/src/main/java/me/zimzaza4/geyserutils/common/packet/CustomParticleEffectPayloadPacket.java b/common/src/main/java/me/zimzaza4/geyserutils/common/packet/CustomParticleEffectPayloadPacket.java
index f6e58fe..2cb827d 100644
--- a/common/src/main/java/me/zimzaza4/geyserutils/common/packet/CustomParticleEffectPayloadPacket.java
+++ b/common/src/main/java/me/zimzaza4/geyserutils/common/packet/CustomParticleEffectPayloadPacket.java
@@ -4,12 +4,8 @@ import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
-import lombok.experimental.Accessors;
-import me.zimzaza4.geyserutils.common.animation.Animation;
-import me.zimzaza4.geyserutils.common.packet.CustomPayloadPacket;
import me.zimzaza4.geyserutils.common.particle.CustomParticle;
import me.zimzaza4.geyserutils.common.util.Pos;
-import org.jetbrains.annotations.Nullable;
@AllArgsConstructor
@NoArgsConstructor
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 b39ccf0..3639f08 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,11 +1,6 @@
package me.zimzaza4.geyserutils.common.packet;
-import lombok.Getter;
-import lombok.Setter;
-
-import java.io.Serializable;
-
public abstract class CustomPayloadPacket {
diff --git a/common/src/main/java/me/zimzaza4/geyserutils/common/packet/CustomSkinPayloadPacket.java b/common/src/main/java/me/zimzaza4/geyserutils/common/packet/CustomSkinPayloadPacket.java
index bf5b640..c95b699 100644
--- a/common/src/main/java/me/zimzaza4/geyserutils/common/packet/CustomSkinPayloadPacket.java
+++ b/common/src/main/java/me/zimzaza4/geyserutils/common/packet/CustomSkinPayloadPacket.java
@@ -5,9 +5,6 @@ import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
-import java.util.ArrayList;
-import java.util.List;
-
@Setter
@Getter
@AllArgsConstructor
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 f5d26a4..2ac0641 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
@@ -3,5 +3,4 @@ package me.zimzaza4.geyserutils.common.util;
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 bcb8ed7..0ff2c70 100644
--- a/geyser/src/main/java/me/zimzaza4/geyserutils/geyser/GeyserUtils.java
+++ b/geyser/src/main/java/me/zimzaza4/geyserutils/geyser/GeyserUtils.java
@@ -72,30 +72,20 @@ import java.util.concurrent.TimeUnit;
public class GeyserUtils implements Extension {
+ public static final ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(2);
+ private static final Map>>> properties = new HashMap<>();
@Getter
public static PacketManager packetManager = new PacketManager();
-
public static List REGISTERED_ENTITIES = new ArrayList<>();
- private static List ENTITIES_WAIT_FOR_LOAD = new ArrayList<>();
-
-
public static boolean GEYSER_LOADED = false;
-
@Getter
public static Map LOADED_SKIN_DATA = new HashMap<>();
-
@Getter
public static Map LOADED_ENTITY_DEFINITIONS = new HashMap<>();
-
@Getter
public static Map> CUSTOM_ENTITIES = new ConcurrentHashMap<>();
-
static Cape EMPTY_CAPE = new Cape("", "no-cape", new byte[0], true);
-
- public static final ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(2);
-
- private static final Map>>> properties = new HashMap<>();
-
+ private static List ENTITIES_WAIT_FOR_LOAD = new ArrayList<>();
@Getter
private static GeyserUtils instance;
@@ -103,25 +93,6 @@ public class GeyserUtils implements Extension {
instance = this;
}
- @Subscribe
- public void onEnable(GeyserPostInitializeEvent event) {
- Registries.BEDROCK_PACKET_TRANSLATORS.register(NpcRequestPacket.class, new NPCFormResponseTranslator());
- loadSkins();
- ReflectionUtils.init();
- CameraPreset.load();
-
- replaceTranslator();
- GEYSER_LOADED = true;
- for (String registeredEntity : REGISTERED_ENTITIES) {
- registerEntityToGeyser(registeredEntity);
- }
- for (String id : ENTITIES_WAIT_FOR_LOAD) {
- registerPropertiesForGeyser(id);
- }
- logger().info("Defined " + LOADED_ENTITY_DEFINITIONS.size() + " entities");
- MountFix.start();
- }
-
// the static here is crazy ;(
private static GeyserEntityProperties getProperties(String id) {
if (!properties.containsKey(id)) return null;
@@ -162,7 +133,7 @@ public class GeyserUtils implements Extension {
ENTITIES_WAIT_FOR_LOAD.add(entityId);
}
- public static void registerPropertiesForGeyser(String entityId) {
+ public static void registerPropertiesForGeyser(String entityId) {
GeyserEntityProperties entityProperties = getProperties(entityId);
if (entityProperties == null) return;
@@ -200,6 +171,7 @@ public class GeyserUtils implements Extension {
}
REGISTERED_ENTITIES.add(id);
}
+
public static void registerEntityToGeyser(String id) {
NbtMap registry = Registries.BEDROCK_ENTITY_IDENTIFIERS.get();
List idList = new ArrayList<>(registry.getList("idlist", NbtType.COMPOUND));
@@ -221,266 +193,6 @@ public class GeyserUtils implements Extension {
LOADED_ENTITY_DEFINITIONS.put(id, def);
}
-
- public void replaceTranslator() {
- Registries.JAVA_PACKET_TRANSLATORS
- .register(ClientboundAddEntityPacket.class, new JavaAddEntityTranslatorReplace());
- }
-
- @Subscribe
- public void onLoadCommand(GeyserDefineCommandsEvent event) {
-
- }
-
- public void loadSkins() {
- LOADED_SKIN_DATA.clear();
- File folder = this.dataFolder().resolve("skins").toFile();
- if (!folder.exists()) {
- folder.mkdirs();
- }
- for (File file : folder.listFiles()) {
- if (file.isDirectory()) {
- File textureFile = null;
- File geometryFile = null;
-
- for (File folderFile : file.listFiles()) {
- if (folderFile.getName().endsWith(".png")) {
- textureFile = folderFile;
- }
- if (folderFile.getName().endsWith(".json")) {
- geometryFile = folderFile;
- }
-
- }
-
- loadSkin(file.getName(), geometryFile, textureFile);
-
-
- }
- }
- }
-
- public void loadSkin(String skinId, File geometryFile, File textureFile) {
- try {
- Skin skin = new Skin(skinId, Files.readAllBytes(textureFile.toPath()), false);
-
- String geoId = "";
- JsonElement json = new JsonParser().parse(new FileReader(geometryFile));
- for (JsonElement element : json.getAsJsonObject().get("minecraft:geometry").getAsJsonArray()) {
- if (element.isJsonObject() && element.getAsJsonObject().has("description")) {
- geoId = element.getAsJsonObject().get("description").getAsJsonObject().get("identifier").getAsString();
- break;
- }
- }
- String geoName = "{\"geometry\" :{\"default\" :\"" + geoId + "\"}}";
- SkinGeometry geometry = new SkinGeometry(geoName, Files.readString(geometryFile.toPath()));
- LOADED_SKIN_DATA.put(skinId, new SkinData(skin, getEmptyCapeData(), geometry));
- this.logger().info("Loaded skin: " + skinId + "| geo:" + geoName);
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
-
- @Subscribe
- public void onSessionJoin(SessionLoginEvent event) {
- CUSTOM_ENTITIES.put(event.connection(), CacheBuilder.newBuilder().expireAfterWrite(30, TimeUnit.SECONDS).build());
- if (event.connection() instanceof GeyserSession session) {
- registerPacketListener(session);
- }
- }
-
- @Subscribe
- public void onSessionQuit(SessionDisconnectEvent event) {
- CUSTOM_ENTITIES.remove(event.connection());
- }
-
-
-
- public void registerPacketListener(GeyserSession session) {
-
- scheduler.schedule(() -> {
- if (session.getDownstream() == null) {
- registerPacketListener(session);
- return;
- }
-
- session.getDownstream().getSession().addListener(new SessionAdapter() {
-
- @Override
- public void packetSending(PacketSendingEvent event) {
- Packet packet = event.getPacket();
- if (packet instanceof ServerboundCustomPayloadPacket payloadPacket) {
- if (ReflectionUtils.getChannel(payloadPacket).toString().equals("minecraft:register")) {
- String channels = new String(payloadPacket.getData(), StandardCharsets.UTF_8);
- channels = channels + "\0" + GeyserUtilsChannels.MAIN;
- event.setPacket(ReflectionUtils.buildServerboundPayloadPacket("minecraft:register", channels.getBytes(StandardCharsets.UTF_8)));
- }
- }
- }
-
- @Override
- public void packetReceived(Session tcpSession, Packet packet) {
- if (packet instanceof ClientboundCustomPayloadPacket payloadPacket) {
- if (ReflectionUtils.getChannel(payloadPacket).toString().equals(GeyserUtilsChannels.MAIN)) {
- CustomPayloadPacket customPacket = packetManager.decodePacket(payloadPacket.getData());
- handleCustomPacket(session, customPacket);
- }
- }
- }
- });
- }, 80, TimeUnit.MILLISECONDS);
- }
-
- private void handleCustomPacket(GeyserSession session, CustomPayloadPacket customPacket) {
- if (customPacket instanceof BundlePacket bundlePacket) {
- bundlePacket.getPackets().forEach(p -> handleCustomPacket(session, p));
- }
-
- else if (customPacket instanceof CameraShakeCustomPayloadPacket cameraShakePacket) {
- session.camera().shakeCamera(cameraShakePacket.getIntensity(), cameraShakePacket.getDuration(), CameraShake.values()[cameraShakePacket.getType()]);
- } else if (customPacket instanceof NpcDialogueFormDataCustomPayloadPacket formData) {
-
- if (formData.action().equals("CLOSE")) {
- NpcDialogueForm openForm = NpcDialogueForms.getOpenNpcDialogueForms(session);
- if (openForm != null) {
- openForm.close(session);
- }
- return;
- }
-
- NpcDialogueForm form = new NpcDialogueForm();
- form.title(formData.title())
- .dialogue(formData.dialogue())
- .bindEntity(session.getEntityCache().getEntityByJavaId(formData.bindEntity()))
- .hasNextForm(formData.hasNextForm());
-
- if (formData.skinData() != null) {
- form.skinData(formData.skinData());
- }
-
-
- List