From 10847df6951c70e41a5a878901236429ab78a598 Mon Sep 17 00:00:00 2001 From: Jitse Boonstra Date: Tue, 21 Jul 2020 17:03:25 +0200 Subject: [PATCH] Removed support for 1.8 R2 --- api/pom.xml | 2 +- nms/pom.xml | 1 - nms/v1_8_R2/pom.xml | 24 --- .../jitse/npclib/nms/v1_8_R2/NPC_v1_8_R2.java | 160 ------------------ .../PacketPlayOutAnimationWrapper.java | 20 --- ...acketPlayOutEntityHeadRotationWrapper.java | 26 --- .../PacketPlayOutEntityMetadataWrapper.java | 18 -- .../PacketPlayOutNamedEntitySpawnWrapper.java | 45 ----- .../PacketPlayOutPlayerInfoWrapper.java | 34 ---- .../PacketPlayOutScoreboardTeamWrapper.java | 48 ------ plugin/pom.xml | 8 +- 11 files changed, 2 insertions(+), 384 deletions(-) delete mode 100755 nms/v1_8_R2/pom.xml delete mode 100755 nms/v1_8_R2/src/main/java/net/jitse/npclib/nms/v1_8_R2/NPC_v1_8_R2.java delete mode 100644 nms/v1_8_R2/src/main/java/net/jitse/npclib/nms/v1_8_R2/packets/PacketPlayOutAnimationWrapper.java delete mode 100755 nms/v1_8_R2/src/main/java/net/jitse/npclib/nms/v1_8_R2/packets/PacketPlayOutEntityHeadRotationWrapper.java delete mode 100644 nms/v1_8_R2/src/main/java/net/jitse/npclib/nms/v1_8_R2/packets/PacketPlayOutEntityMetadataWrapper.java delete mode 100755 nms/v1_8_R2/src/main/java/net/jitse/npclib/nms/v1_8_R2/packets/PacketPlayOutNamedEntitySpawnWrapper.java delete mode 100755 nms/v1_8_R2/src/main/java/net/jitse/npclib/nms/v1_8_R2/packets/PacketPlayOutPlayerInfoWrapper.java delete mode 100755 nms/v1_8_R2/src/main/java/net/jitse/npclib/nms/v1_8_R2/packets/PacketPlayOutScoreboardTeamWrapper.java diff --git a/api/pom.xml b/api/pom.xml index a0ce66b..a4ab543 100644 --- a/api/pom.xml +++ b/api/pom.xml @@ -28,7 +28,7 @@ org.spigotmc spigot-api - 1.15.2-R0.1-SNAPSHOT + 1.16.1-R0.1-SNAPSHOT provided diff --git a/nms/pom.xml b/nms/pom.xml index 286a9da..ddc43b7 100644 --- a/nms/pom.xml +++ b/nms/pom.xml @@ -14,7 +14,6 @@ npclib-nms - v1_8_R2 v1_8_R3 v1_9_R1 v1_9_R2 diff --git a/nms/v1_8_R2/pom.xml b/nms/v1_8_R2/pom.xml deleted file mode 100755 index 1ff6d62..0000000 --- a/nms/v1_8_R2/pom.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - 4.0.0 - jar - - - net.jitse - npclib-nms - 2.9-SNAPSHOT - - - npclib-nms-v1_8_R2 - - - - org.spigotmc - spigot - 1.8.3-R0.1-SNAPSHOT - provided - - - diff --git a/nms/v1_8_R2/src/main/java/net/jitse/npclib/nms/v1_8_R2/NPC_v1_8_R2.java b/nms/v1_8_R2/src/main/java/net/jitse/npclib/nms/v1_8_R2/NPC_v1_8_R2.java deleted file mode 100755 index 6121e5b..0000000 --- a/nms/v1_8_R2/src/main/java/net/jitse/npclib/nms/v1_8_R2/NPC_v1_8_R2.java +++ /dev/null @@ -1,160 +0,0 @@ -/* - * Copyright (c) 2018 Jitse Boonstra - */ - -package net.jitse.npclib.nms.v1_8_R2; - -import com.mojang.authlib.GameProfile; -import com.mojang.authlib.properties.Property; -import net.jitse.npclib.NPCLib; -import net.jitse.npclib.api.skin.Skin; -import net.jitse.npclib.api.state.NPCAnimation; -import net.jitse.npclib.api.state.NPCSlot; -import net.jitse.npclib.hologram.Hologram; -import net.jitse.npclib.internal.MinecraftVersion; -import net.jitse.npclib.internal.NPCBase; -import net.jitse.npclib.nms.v1_8_R2.packets.*; -import net.minecraft.server.v1_8_R2.*; -import org.bukkit.Bukkit; -import org.bukkit.craftbukkit.v1_8_R2.entity.CraftPlayer; -import org.bukkit.craftbukkit.v1_8_R2.inventory.CraftItemStack; -import org.bukkit.entity.Player; -import org.bukkit.inventory.ItemStack; - -import java.util.List; - -/** - * @author Jitse Boonstra - */ -public class NPC_v1_8_R2 extends NPCBase { - - private PacketPlayOutNamedEntitySpawn packetPlayOutNamedEntitySpawn; - private PacketPlayOutScoreboardTeam packetPlayOutScoreboardTeamRegister; - private PacketPlayOutPlayerInfo packetPlayOutPlayerInfoAdd, packetPlayOutPlayerInfoRemove; - private PacketPlayOutEntityHeadRotation packetPlayOutEntityHeadRotation; - private PacketPlayOutEntityDestroy packetPlayOutEntityDestroy; - - public NPC_v1_8_R2(NPCLib instance, List lines) { - super(instance, lines); - } - - @Override - public Hologram getPlayerHologram(Player player) { - Hologram holo = super.getPlayerHologram(player); - if (holo == null){ - holo = new Hologram(MinecraftVersion.V1_8_R2, location.clone().add(0, 0.5, 0), getPlayerLines(player)); - } - super.textDisplayHolograms.put(player.getUniqueId(), holo); - return holo; - } - - - @Override - public void createPackets() { - Bukkit.getOnlinePlayers().forEach(this::createPackets); - } - - @Override - public void createPackets(Player player) { - - PacketPlayOutPlayerInfoWrapper packetPlayOutPlayerInfoWrapper = new PacketPlayOutPlayerInfoWrapper(); - - // Packets for spawning the NPC: - this.packetPlayOutScoreboardTeamRegister = new PacketPlayOutScoreboardTeamWrapper() - .createRegisterTeam(name); // First packet to send. - - this.packetPlayOutPlayerInfoAdd = packetPlayOutPlayerInfoWrapper - .create(PacketPlayOutPlayerInfo.EnumPlayerInfoAction.ADD_PLAYER, gameProfile, name); // Second packet to send. - - this.packetPlayOutNamedEntitySpawn = new PacketPlayOutNamedEntitySpawnWrapper() - .create(uuid, location, entityId); // Third packet to send. - - this.packetPlayOutEntityHeadRotation = new PacketPlayOutEntityHeadRotationWrapper() - .create(location, entityId); // Fourth packet to send. - - this.packetPlayOutPlayerInfoRemove = packetPlayOutPlayerInfoWrapper - .create(PacketPlayOutPlayerInfo.EnumPlayerInfoAction.REMOVE_PLAYER, gameProfile, name); // Fifth packet to send (delayed). - - // Packet for destroying the NPC: - this.packetPlayOutEntityDestroy = new PacketPlayOutEntityDestroy(entityId); // First packet to send. - } - - - @Override - public void sendShowPackets(Player player) { - PlayerConnection playerConnection = ((CraftPlayer) player).getHandle().playerConnection; - - if (hasTeamRegistered.add(player.getUniqueId())) - playerConnection.sendPacket(packetPlayOutScoreboardTeamRegister); - playerConnection.sendPacket(packetPlayOutPlayerInfoAdd); - playerConnection.sendPacket(packetPlayOutNamedEntitySpawn); - playerConnection.sendPacket(packetPlayOutEntityHeadRotation); - - getPlayerHologram(player).show(player); - - // Removing the player info after 10 seconds. - Bukkit.getScheduler().runTaskLater(instance.getPlugin(), () -> - playerConnection.sendPacket(packetPlayOutPlayerInfoRemove), 200); - } - - @Override - public void sendHidePackets(Player player) { - PlayerConnection playerConnection = ((CraftPlayer) player).getHandle().playerConnection; - - playerConnection.sendPacket(packetPlayOutEntityDestroy); - playerConnection.sendPacket(packetPlayOutPlayerInfoRemove); - getPlayerHologram(player).hide(player); - } - - @Override - public void sendMetadataPacket(Player player) { - PlayerConnection playerConnection = ((CraftPlayer) player).getHandle().playerConnection; - PacketPlayOutEntityMetadata packet = new PacketPlayOutEntityMetadataWrapper().create(activeStates, entityId); - - playerConnection.sendPacket(packet); - } - - @Override - public void sendEquipmentPacket(Player player, NPCSlot slot, boolean auto) { - PlayerConnection playerConnection = ((CraftPlayer) player).getHandle().playerConnection; - - if (slot == NPCSlot.OFFHAND) { - if (!auto) { - throw new UnsupportedOperationException("Offhand is not supported on servers below 1.9"); - } - return; - } - - ItemStack item = getItem(slot); - - PacketPlayOutEntityEquipment packet = new PacketPlayOutEntityEquipment(entityId, slot.getSlot(), CraftItemStack.asNMSCopy(item)); - playerConnection.sendPacket(packet); - } - - @Override - public void sendAnimationPacket(Player player, NPCAnimation animation) { - if(animation == NPCAnimation.SWING_OFFHAND) { - throw new IllegalArgumentException("Offhand Swing Animations are only available on 1.9 and up."); - } - - PlayerConnection playerConnection = ((CraftPlayer) player).getHandle().playerConnection; - - PacketPlayOutAnimation packet = new PacketPlayOutAnimationWrapper().create(animation, entityId); - playerConnection.sendPacket(packet); - } - - @Override - public void updateSkin(Skin skin) { - GameProfile newProfile = new GameProfile(uuid, name); - newProfile.getProperties().get("textures").clear(); - newProfile.getProperties().put("textures", new Property("textures", skin.getValue(), skin.getSignature())); - this.packetPlayOutPlayerInfoAdd = new PacketPlayOutPlayerInfoWrapper().create(PacketPlayOutPlayerInfo.EnumPlayerInfoAction.ADD_PLAYER, newProfile, name); - for (Player player : Bukkit.getOnlinePlayers()) { - PlayerConnection playerConnection = ((CraftPlayer) player).getHandle().playerConnection; - playerConnection.sendPacket(packetPlayOutPlayerInfoRemove); - playerConnection.sendPacket(packetPlayOutEntityDestroy); - playerConnection.sendPacket(packetPlayOutPlayerInfoAdd); - playerConnection.sendPacket(packetPlayOutNamedEntitySpawn); - } - } -} diff --git a/nms/v1_8_R2/src/main/java/net/jitse/npclib/nms/v1_8_R2/packets/PacketPlayOutAnimationWrapper.java b/nms/v1_8_R2/src/main/java/net/jitse/npclib/nms/v1_8_R2/packets/PacketPlayOutAnimationWrapper.java deleted file mode 100644 index 6e915b1..0000000 --- a/nms/v1_8_R2/src/main/java/net/jitse/npclib/nms/v1_8_R2/packets/PacketPlayOutAnimationWrapper.java +++ /dev/null @@ -1,20 +0,0 @@ -package net.jitse.npclib.nms.v1_8_R2.packets; - -import com.comphenix.tinyprotocol.Reflection; -import net.jitse.npclib.api.state.NPCAnimation; -import net.minecraft.server.v1_8_R2.PacketPlayOutAnimation; - -public class PacketPlayOutAnimationWrapper { - - public PacketPlayOutAnimation create(NPCAnimation npcAnimation, int entityId) { - PacketPlayOutAnimation packetPlayOutAnimation = new PacketPlayOutAnimation(); - - Reflection.getField(packetPlayOutAnimation.getClass(), "a", int.class) - .set(packetPlayOutAnimation, entityId); - Reflection.getField(packetPlayOutAnimation.getClass(), "b", int.class) - .set(packetPlayOutAnimation, npcAnimation.getId()); - - return packetPlayOutAnimation; - } - -} diff --git a/nms/v1_8_R2/src/main/java/net/jitse/npclib/nms/v1_8_R2/packets/PacketPlayOutEntityHeadRotationWrapper.java b/nms/v1_8_R2/src/main/java/net/jitse/npclib/nms/v1_8_R2/packets/PacketPlayOutEntityHeadRotationWrapper.java deleted file mode 100755 index 5ac6220..0000000 --- a/nms/v1_8_R2/src/main/java/net/jitse/npclib/nms/v1_8_R2/packets/PacketPlayOutEntityHeadRotationWrapper.java +++ /dev/null @@ -1,26 +0,0 @@ -/* - * Copyright (c) 2018 Jitse Boonstra - */ - -package net.jitse.npclib.nms.v1_8_R2.packets; - -import com.comphenix.tinyprotocol.Reflection; -import net.minecraft.server.v1_8_R2.PacketPlayOutEntityHeadRotation; -import org.bukkit.Location; - -/** - * @author Jitse Boonstra - */ -public class PacketPlayOutEntityHeadRotationWrapper { - - public PacketPlayOutEntityHeadRotation create(Location location, int entityId) { - PacketPlayOutEntityHeadRotation packetPlayOutEntityHeadRotation = new PacketPlayOutEntityHeadRotation(); - - Reflection.getField(packetPlayOutEntityHeadRotation.getClass(), "a", int.class). - set(packetPlayOutEntityHeadRotation, entityId); - Reflection.getField(packetPlayOutEntityHeadRotation.getClass(), "b", byte.class) - .set(packetPlayOutEntityHeadRotation, (byte) ((int) location.getYaw() * 256.0F / 360.0F)); - - return packetPlayOutEntityHeadRotation; - } -} diff --git a/nms/v1_8_R2/src/main/java/net/jitse/npclib/nms/v1_8_R2/packets/PacketPlayOutEntityMetadataWrapper.java b/nms/v1_8_R2/src/main/java/net/jitse/npclib/nms/v1_8_R2/packets/PacketPlayOutEntityMetadataWrapper.java deleted file mode 100644 index 592fa3f..0000000 --- a/nms/v1_8_R2/src/main/java/net/jitse/npclib/nms/v1_8_R2/packets/PacketPlayOutEntityMetadataWrapper.java +++ /dev/null @@ -1,18 +0,0 @@ -package net.jitse.npclib.nms.v1_8_R2.packets; - -import net.jitse.npclib.api.state.NPCState; -import net.minecraft.server.v1_8_R2.DataWatcher; -import net.minecraft.server.v1_8_R2.PacketPlayOutEntityMetadata; - -import java.util.Collection; - -public class PacketPlayOutEntityMetadataWrapper { - - public PacketPlayOutEntityMetadata create(Collection activateStates, int entityId) { - DataWatcher dataWatcher = new DataWatcher(null); - byte masked = NPCState.getMasked(activateStates); - dataWatcher.a(0, masked); - - return new PacketPlayOutEntityMetadata(entityId, dataWatcher, true); - } -} diff --git a/nms/v1_8_R2/src/main/java/net/jitse/npclib/nms/v1_8_R2/packets/PacketPlayOutNamedEntitySpawnWrapper.java b/nms/v1_8_R2/src/main/java/net/jitse/npclib/nms/v1_8_R2/packets/PacketPlayOutNamedEntitySpawnWrapper.java deleted file mode 100755 index f48b8c8..0000000 --- a/nms/v1_8_R2/src/main/java/net/jitse/npclib/nms/v1_8_R2/packets/PacketPlayOutNamedEntitySpawnWrapper.java +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Copyright (c) 2018 Jitse Boonstra - */ - -package net.jitse.npclib.nms.v1_8_R2.packets; - -import com.comphenix.tinyprotocol.Reflection; -import net.minecraft.server.v1_8_R2.DataWatcher; -import net.minecraft.server.v1_8_R2.PacketPlayOutNamedEntitySpawn; -import org.bukkit.Location; - -import java.util.UUID; - -/** - * @author Jitse Boonstra - */ -public class PacketPlayOutNamedEntitySpawnWrapper { - - public PacketPlayOutNamedEntitySpawn create(UUID uuid, Location location, int entityId) { - PacketPlayOutNamedEntitySpawn packetPlayOutNamedEntitySpawn = new PacketPlayOutNamedEntitySpawn(); - - Reflection.getField(packetPlayOutNamedEntitySpawn.getClass(), "a", int.class) - .set(packetPlayOutNamedEntitySpawn, entityId); - Reflection.getField(packetPlayOutNamedEntitySpawn.getClass(), "b", UUID.class) - .set(packetPlayOutNamedEntitySpawn, uuid); - Reflection.getField(packetPlayOutNamedEntitySpawn.getClass(), "c", int.class) - .set(packetPlayOutNamedEntitySpawn, (int) Math.floor(location.getX() * 32.0D)); - Reflection.getField(packetPlayOutNamedEntitySpawn.getClass(), "d", int.class) - .set(packetPlayOutNamedEntitySpawn, (int) Math.floor(location.getY() * 32.0D)); - Reflection.getField(packetPlayOutNamedEntitySpawn.getClass(), "e", int.class) - .set(packetPlayOutNamedEntitySpawn, (int) Math.floor(location.getZ() * 32.0D)); - Reflection.getField(packetPlayOutNamedEntitySpawn.getClass(), "f", byte.class) - .set(packetPlayOutNamedEntitySpawn, (byte) ((int) (location.getYaw() * 256.0F / 360.0F))); - Reflection.getField(packetPlayOutNamedEntitySpawn.getClass(), "g", byte.class) - .set(packetPlayOutNamedEntitySpawn, (byte) ((int) (location.getPitch() * 256.0F / 360.0F))); - - DataWatcher dataWatcher = new DataWatcher(null); - dataWatcher.a(10, (byte) 127); - - Reflection.getField(packetPlayOutNamedEntitySpawn.getClass(), "i", DataWatcher.class) - .set(packetPlayOutNamedEntitySpawn, dataWatcher); - - return packetPlayOutNamedEntitySpawn; - } -} diff --git a/nms/v1_8_R2/src/main/java/net/jitse/npclib/nms/v1_8_R2/packets/PacketPlayOutPlayerInfoWrapper.java b/nms/v1_8_R2/src/main/java/net/jitse/npclib/nms/v1_8_R2/packets/PacketPlayOutPlayerInfoWrapper.java deleted file mode 100755 index c05ceb6..0000000 --- a/nms/v1_8_R2/src/main/java/net/jitse/npclib/nms/v1_8_R2/packets/PacketPlayOutPlayerInfoWrapper.java +++ /dev/null @@ -1,34 +0,0 @@ -/* - * Copyright (c) 2018 Jitse Boonstra - */ - -package net.jitse.npclib.nms.v1_8_R2.packets; - -import com.comphenix.tinyprotocol.Reflection; -import com.mojang.authlib.GameProfile; -import net.minecraft.server.v1_8_R2.IChatBaseComponent; -import net.minecraft.server.v1_8_R2.PacketPlayOutPlayerInfo; -import net.minecraft.server.v1_8_R2.WorldSettings; - -import java.util.Collections; -import java.util.List; - -/** - * @author Jitse Boonstra - */ -public class PacketPlayOutPlayerInfoWrapper { - - public PacketPlayOutPlayerInfo create(PacketPlayOutPlayerInfo.EnumPlayerInfoAction action, GameProfile gameProfile, String name) { - PacketPlayOutPlayerInfo packetPlayOutPlayerInfo = new PacketPlayOutPlayerInfo(); - Reflection.getField(packetPlayOutPlayerInfo.getClass(), "a", PacketPlayOutPlayerInfo.EnumPlayerInfoAction.class) - .set(packetPlayOutPlayerInfo, action); - - PacketPlayOutPlayerInfo.PlayerInfoData playerInfoData = packetPlayOutPlayerInfo.new PlayerInfoData(gameProfile, 1, - WorldSettings.EnumGamemode.NOT_SET, IChatBaseComponent.ChatSerializer.a("{\"text\":\"[NPC] " + name + "\",\"color\":\"dark_gray\"}")); - - Reflection.FieldAccessor fieldAccessor = Reflection.getField(packetPlayOutPlayerInfo.getClass(), "b", List.class); - fieldAccessor.set(packetPlayOutPlayerInfo, Collections.singletonList(playerInfoData)); - - return packetPlayOutPlayerInfo; - } -} diff --git a/nms/v1_8_R2/src/main/java/net/jitse/npclib/nms/v1_8_R2/packets/PacketPlayOutScoreboardTeamWrapper.java b/nms/v1_8_R2/src/main/java/net/jitse/npclib/nms/v1_8_R2/packets/PacketPlayOutScoreboardTeamWrapper.java deleted file mode 100755 index 7c60b08..0000000 --- a/nms/v1_8_R2/src/main/java/net/jitse/npclib/nms/v1_8_R2/packets/PacketPlayOutScoreboardTeamWrapper.java +++ /dev/null @@ -1,48 +0,0 @@ -/* - * Copyright (c) 2018 Jitse Boonstra - */ - -package net.jitse.npclib.nms.v1_8_R2.packets; - -import com.comphenix.tinyprotocol.Reflection; -import net.minecraft.server.v1_8_R2.PacketPlayOutScoreboardTeam; - -import java.util.Collection; -import java.util.Collections; - -/** - * @author Jitse Boonstra - */ -public class PacketPlayOutScoreboardTeamWrapper { - - public PacketPlayOutScoreboardTeam createRegisterTeam(String name) { - PacketPlayOutScoreboardTeam packetPlayOutScoreboardTeam = new PacketPlayOutScoreboardTeam(); - - Reflection.getField(packetPlayOutScoreboardTeam.getClass(), "h", int.class) - .set(packetPlayOutScoreboardTeam, 0); - Reflection.getField(packetPlayOutScoreboardTeam.getClass(), "b", String.class) - .set(packetPlayOutScoreboardTeam, name); - Reflection.getField(packetPlayOutScoreboardTeam.getClass(), "a", String.class) - .set(packetPlayOutScoreboardTeam, name); - Reflection.getField(packetPlayOutScoreboardTeam.getClass(), "e", String.class) - .set(packetPlayOutScoreboardTeam, "never"); - Reflection.getField(packetPlayOutScoreboardTeam.getClass(), "i", int.class) - .set(packetPlayOutScoreboardTeam, 1); - Reflection.FieldAccessor collectionFieldAccessor = Reflection.getField( - packetPlayOutScoreboardTeam.getClass(), "g", Collection.class); - collectionFieldAccessor.set(packetPlayOutScoreboardTeam, Collections.singletonList(name)); - - return packetPlayOutScoreboardTeam; - } - - public PacketPlayOutScoreboardTeam createUnregisterTeam(String name) { - PacketPlayOutScoreboardTeam packetPlayOutScoreboardTeam = new PacketPlayOutScoreboardTeam(); - - Reflection.getField(packetPlayOutScoreboardTeam.getClass(), "h", int.class) - .set(packetPlayOutScoreboardTeam, 1); - Reflection.getField(packetPlayOutScoreboardTeam.getClass(), "a", String.class) - .set(packetPlayOutScoreboardTeam, name); - - return packetPlayOutScoreboardTeam; - } -} diff --git a/plugin/pom.xml b/plugin/pom.xml index e22133a..a5bca0c 100644 --- a/plugin/pom.xml +++ b/plugin/pom.xml @@ -17,7 +17,7 @@ org.spigotmc spigot-api - 1.14.4-R0.1-SNAPSHOT + 1.16.1-R0.1-SNAPSHOT provided @@ -26,12 +26,6 @@ ${project.version} compile - - net.jitse - npclib-nms-v1_8_R2 - ${project.version} - compile - net.jitse npclib-nms-v1_8_R3