From 3a961101e6b5f5b9e9288288f7a9df6d20dd842a Mon Sep 17 00:00:00 2001 From: Willem <94999824+OmeWillem@users.noreply.github.com> Date: Wed, 26 Feb 2025 20:31:29 +0100 Subject: [PATCH] General cleanup & black particles fix. --- .github/workflows/maven.yml | 6 +- .idea/misc.xml | 3 +- .../common/camera/data/CameraPreset.java | 55 +- .../geyserutils/common/camera/data/Ease.java | 2 - .../common/camera/data/EaseType.java | 65 +- .../camera/instruction/ClearInstruction.java | 3 +- .../camera/instruction/FadeInstruction.java | 3 +- .../camera/instruction/SetInstruction.java | 10 +- .../form/element/NpcDialogueButton.java | 5 +- .../common/manager/PacketManager.java | 5 - .../AnimateEntityCustomPayloadPacket.java | 2 +- .../common/packet/BundlePacket.java | 5 +- .../common/packet/CustomEntityPacket.java | 2 - .../CustomParticleEffectPayloadPacket.java | 4 - .../common/packet/CustomPayloadPacket.java | 5 - .../packet/CustomSkinPayloadPacket.java | 3 - .../common/util/CustomPayloadPacketUtils.java | 1 - .../geyserutils/geyser/GeyserUtils.java | 578 +++++++++--------- .../zimzaza4/geyserutils/geyser/MountFix.java | 1 - .../geyser/camera/CameraPresetDefinition.java | 2 - .../geyser/form/NpcDialogueForm.java | 14 +- .../geyser/form/NpcDialogueForms.java | 3 - .../geyser/form/element/Button.java | 20 +- .../JavaAddEntityTranslatorReplace.java | 5 +- .../translator/NPCFormResponseTranslator.java | 3 - .../geyserutils/geyser/util/Converter.java | 7 +- .../geyserutils/geyser/util/DeltaUtils.java | 8 +- .../geyser/util/ReflectionUtils.java | 3 + geyser/src/main/resources/extension.yml | 2 +- .../geyserutils/spigot/GeyserUtils.java | 1 + .../geyserutils/spigot/api/EntityUtils.java | 1 - .../geyserutils/spigot/api/PlayerUtils.java | 1 - .../spigot/api/form/NpcDialogueForm.java | 53 +- .../geyserutils/velocity/GeyserUtils.java | 1 + 34 files changed, 423 insertions(+), 459 deletions(-) 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