From 7bffd2f79dc9cfec90cba76b71c0a8e70ef52205 Mon Sep 17 00:00:00 2001 From: ArasakaID <52627239+ArasakaID@users.noreply.github.com> Date: Mon, 11 Nov 2024 22:04:44 +0700 Subject: [PATCH] 1.21.3 Update (Untested) Update packet for 1.21.3 --- plugin/build.gradle | 4 +-- .../java/lol/pyr/znpcsplus/ZNpcsPlus.java | 1 + .../packets/V1_21_3PacketFactory.java | 29 +++++++++++++++++++ 3 files changed, 32 insertions(+), 2 deletions(-) create mode 100644 plugin/src/main/java/lol/pyr/znpcsplus/packets/V1_21_3PacketFactory.java diff --git a/plugin/build.gradle b/plugin/build.gradle index d60fc90..35783cc 100644 --- a/plugin/build.gradle +++ b/plugin/build.gradle @@ -8,7 +8,7 @@ runServer { javaLauncher = javaToolchains.launcherFor { languageVersion = JavaLanguageVersion.of(21) } - minecraftVersion "1.21.1" + minecraftVersion "1.21.3" } processResources { @@ -19,7 +19,7 @@ dependencies { compileOnly "me.clip:placeholderapi:2.11.6" // Placeholder support implementation "com.google.code.gson:gson:2.10.1" // JSON parsing implementation "org.bstats:bstats-bukkit:3.0.2" // Plugin stats - implementation "com.github.retrooper:packetevents-spigot:2.4.0" // Packets + implementation "com.github.retrooper:packetevents-spigot:2.6.0" // Packets implementation "space.arim.dazzleconf:dazzleconf-ext-snakeyaml:1.2.1" // Configs implementation "lol.pyr:director-adventure:2.1.2" // Commands diff --git a/plugin/src/main/java/lol/pyr/znpcsplus/ZNpcsPlus.java b/plugin/src/main/java/lol/pyr/znpcsplus/ZNpcsPlus.java index 2b667eb..c4d1f9a 100644 --- a/plugin/src/main/java/lol/pyr/znpcsplus/ZNpcsPlus.java +++ b/plugin/src/main/java/lol/pyr/znpcsplus/ZNpcsPlus.java @@ -231,6 +231,7 @@ public class ZNpcsPlus { versions.put(ServerVersion.V_1_17, LazyLoader.of(() -> new V1_17PacketFactory(scheduler, packetEvents, propertyRegistry, textSerializer, configManager))); versions.put(ServerVersion.V_1_19_3, LazyLoader.of(() -> new V1_19_3PacketFactory(scheduler, packetEvents, propertyRegistry, textSerializer, configManager))); versions.put(ServerVersion.V_1_20_2, LazyLoader.of(() -> new V1_20_2PacketFactory(scheduler, packetEvents, propertyRegistry, textSerializer, configManager))); + versions.put(ServerVersion.V_1_21_3, LazyLoader.of(() -> new V1_21_3PacketFactory(scheduler, packetEvents, propertyRegistry, textSerializer, configManager))); ServerVersion version = packetEvents.getServerManager().getVersion(); if (versions.containsKey(version)) return versions.get(version).get(); diff --git a/plugin/src/main/java/lol/pyr/znpcsplus/packets/V1_21_3PacketFactory.java b/plugin/src/main/java/lol/pyr/znpcsplus/packets/V1_21_3PacketFactory.java new file mode 100644 index 0000000..7b7ddc5 --- /dev/null +++ b/plugin/src/main/java/lol/pyr/znpcsplus/packets/V1_21_3PacketFactory.java @@ -0,0 +1,29 @@ +package lol.pyr.znpcsplus.packets; + +import com.github.retrooper.packetevents.PacketEventsAPI; +import com.github.retrooper.packetevents.protocol.entity.EntityPositionData; +import com.github.retrooper.packetevents.protocol.teleport.RelativeFlag; +import com.github.retrooper.packetevents.util.Vector3d; +import com.github.retrooper.packetevents.wrapper.play.server.WrapperPlayServerEntityHeadLook; +import com.github.retrooper.packetevents.wrapper.play.server.WrapperPlayServerEntityTeleport; +import lol.pyr.znpcsplus.config.ConfigManager; +import lol.pyr.znpcsplus.entity.EntityPropertyRegistryImpl; +import lol.pyr.znpcsplus.entity.PacketEntity; +import lol.pyr.znpcsplus.scheduling.TaskScheduler; +import lol.pyr.znpcsplus.util.NpcLocation; +import net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer; +import org.bukkit.entity.Player; +import org.bukkit.plugin.Plugin; + +public class V1_21_3PacketFactory extends V1_20_2PacketFactory { + public V1_21_3PacketFactory(TaskScheduler scheduler, PacketEventsAPI packetEvents, EntityPropertyRegistryImpl propertyRegistry, LegacyComponentSerializer textSerializer, ConfigManager configManager) { + super(scheduler, packetEvents, propertyRegistry, textSerializer, configManager); + } + + @Override + public void teleportEntity(Player player, PacketEntity entity) { + NpcLocation location = entity.getLocation(); + sendPacket(player, new WrapperPlayServerEntityTeleport(entity.getEntityId(), new EntityPositionData(npcLocationToVector(location), new Vector3d(0, 0, 0), location.getYaw(), location.getPitch()), RelativeFlag.NONE, false)); + sendPacket(player, new WrapperPlayServerEntityHeadLook(entity.getEntityId(), location.getYaw())); + } +}