diff --git a/README.md b/README.md index bccbd98..56108fc 100755 --- a/README.md +++ b/README.md @@ -2,13 +2,12 @@ NPCLib – Basic non-player character library.
[![Release](https://jitpack.io/v/JitseB/NPCLib.svg)](https://github.com/JitseB/NPCLib/releases) [![Build Status](https://travis-ci.com/JitseB/NPCLib.svg?branch=master)](https://travis-ci.com/JitseB/NPCLib) -[![Versions](https://img.shields.io/badge/MC-1.8%20R2%20--%20latest-blue.svg)](https://github.com/JitseB/NPCLib/releases) +[![Versions](https://img.shields.io/badge/MC-1.8.8%20--%20latest-blue.svg)](https://github.com/JitseB/NPCLib/releases) [![Resource](https://img.shields.io/badge/SpigotMC-Resource-orange.svg)](https://www.spigotmc.org/resources/npclib.55884/) +[![Discord](https://img.shields.io/badge/Support-Discord-blue.svg)](https://discord.gg/pvJGhEq) = -This is an API made specifically for spigot servers (Minecraft). Current supported versions: **1.8 R2 - latest**\*. Lightweight replacement for Citizens. NPCLib only uses packets instead of registering the entity in the actual Minecraft server. - -\*You can find a version of NPCLib with basic support for 1.7.10 on the [legacy branch](https://github.com/JitseB/NPCLib/tree/legacy). This branch is not actively maintained as the master branch. This version does not support multi-line text. +This is an API made specifically for spigot servers (Minecraft). Current supported versions: **1.8.8 - latest**. Lightweight replacement for Citizens. NPCLib only uses packets instead of registering the entity in the actual Minecraft server. ### Preview (click to play video) [![YouTube Video](http://img.youtube.com/vi/LqwdqIxPIvE/0.jpg)](http://www.youtube.com/watch?v=LqwdqIxPIvE "NPCLib – Basic non-player character library (Minecraft).") @@ -47,7 +46,7 @@ If you have NPCLib under your `plugins` folder, you may use the following: net.jitse npclib-api - 2.7-SNAPSHOT + 2.9-SNAPSHOT compile diff --git a/api/pom.xml b/api/pom.xml index 395cfb2..a4ab543 100644 --- a/api/pom.xml +++ b/api/pom.xml @@ -8,7 +8,7 @@ npclib net.jitse - 2.10-SNAPSHOT + 2.9-SNAPSHOT npclib-api @@ -28,7 +28,7 @@ org.spigotmc spigot-api - 1.15.2-R0.1-SNAPSHOT + 1.16.1-R0.1-SNAPSHOT provided diff --git a/api/src/main/java/net/jitse/npclib/internal/NPCBase.java b/api/src/main/java/net/jitse/npclib/internal/NPCBase.java index ca6cc05..90c7cbb 100644 --- a/api/src/main/java/net/jitse/npclib/internal/NPCBase.java +++ b/api/src/main/java/net/jitse/npclib/internal/NPCBase.java @@ -85,13 +85,13 @@ public abstract class NPCBase implements NPC, NPCPacketHandler { Validate.notNull(targetPlayer, "Player cannot be null."); List originalLines = getPlayerLines(targetPlayer); setPlayerLines(uniqueLines, targetPlayer); - if (update){ - if (originalLines.size() != uniqueLines.size()){ // recreate the entire hologram + if (update) { + if (originalLines.size() != uniqueLines.size()) { // recreate the entire hologram Hologram originalhologram = getPlayerHologram(targetPlayer); originalhologram.hide(targetPlayer); // essentially destroy the hologram textDisplayHolograms.remove(targetPlayer.getUniqueId()); // remove the old obj } - + if (isShown(targetPlayer)) { //only show hologram if the player is in range Hologram hologram = getPlayerHologram(targetPlayer); List updatePackets = hologram.getUpdatePackets(getPlayerLines(targetPlayer)); @@ -217,7 +217,7 @@ public abstract class NPCBase implements NPC, NPCPacketHandler { public boolean inViewOf(Player player) { Vector dir = location.toVector().subtract(player.getEyeLocation().toVector()).normalize(); - return dir.dot(player.getLocation().getDirection()) >= cosFOV; + return dir.dot(player.getEyeLocation().getDirection()) >= cosFOV; } @Override diff --git a/nms/pom.xml b/nms/pom.xml index cf526cf..ddc43b7 100644 --- a/nms/pom.xml +++ b/nms/pom.xml @@ -8,13 +8,12 @@ net.jitse npclib - 2.10-SNAPSHOT + 2.9-SNAPSHOT npclib-nms - v1_8_R2 v1_8_R3 v1_9_R1 v1_9_R2 diff --git a/nms/v1_10_R1/pom.xml b/nms/v1_10_R1/pom.xml index 74f8c6a..7d18f5f 100755 --- a/nms/v1_10_R1/pom.xml +++ b/nms/v1_10_R1/pom.xml @@ -8,7 +8,7 @@ net.jitse npclib-nms - 2.10-SNAPSHOT + 2.9-SNAPSHOT npclib-nms-v1_10_R1 diff --git a/nms/v1_11_R1/pom.xml b/nms/v1_11_R1/pom.xml index 5b9c2e4..5fa1c32 100755 --- a/nms/v1_11_R1/pom.xml +++ b/nms/v1_11_R1/pom.xml @@ -8,7 +8,7 @@ net.jitse npclib-nms - 2.10-SNAPSHOT + 2.9-SNAPSHOT npclib-nms-v1_11_R1 diff --git a/nms/v1_12_R1/pom.xml b/nms/v1_12_R1/pom.xml index cf76613..aa9b953 100755 --- a/nms/v1_12_R1/pom.xml +++ b/nms/v1_12_R1/pom.xml @@ -8,7 +8,7 @@ net.jitse npclib-nms - 2.10-SNAPSHOT + 2.9-SNAPSHOT npclib-nms-v1_12_R1 diff --git a/nms/v1_13_R1/pom.xml b/nms/v1_13_R1/pom.xml index 4977e7a..2c0742b 100755 --- a/nms/v1_13_R1/pom.xml +++ b/nms/v1_13_R1/pom.xml @@ -8,7 +8,7 @@ net.jitse npclib-nms - 2.10-SNAPSHOT + 2.9-SNAPSHOT npclib-nms-v1_13_R1 diff --git a/nms/v1_13_R2/pom.xml b/nms/v1_13_R2/pom.xml index 22d51ff..4c544ae 100755 --- a/nms/v1_13_R2/pom.xml +++ b/nms/v1_13_R2/pom.xml @@ -8,7 +8,7 @@ net.jitse npclib-nms - 2.10-SNAPSHOT + 2.9-SNAPSHOT npclib-nms-v1_13_R2 diff --git a/nms/v1_14_R1/pom.xml b/nms/v1_14_R1/pom.xml index fd8b902..6814941 100755 --- a/nms/v1_14_R1/pom.xml +++ b/nms/v1_14_R1/pom.xml @@ -8,7 +8,7 @@ net.jitse npclib-nms - 2.10-SNAPSHOT + 2.9-SNAPSHOT npclib-nms-v1_14_R1 diff --git a/nms/v1_15_R1/pom.xml b/nms/v1_15_R1/pom.xml index 5b3f1b1..0708d81 100644 --- a/nms/v1_15_R1/pom.xml +++ b/nms/v1_15_R1/pom.xml @@ -8,7 +8,7 @@ net.jitse npclib-nms - 2.10-SNAPSHOT + 2.9-SNAPSHOT npclib-nms-v1_15_R1 diff --git a/nms/v1_16_R1/pom.xml b/nms/v1_16_R1/pom.xml index 4c55a8f..62cae7a 100644 --- a/nms/v1_16_R1/pom.xml +++ b/nms/v1_16_R1/pom.xml @@ -8,7 +8,7 @@ net.jitse npclib-nms - 2.10-SNAPSHOT + 2.9-SNAPSHOT npclib-nms-v1_16_R1 diff --git a/nms/v1_8_R2/pom.xml b/nms/v1_8_R2/pom.xml deleted file mode 100755 index fe990d7..0000000 --- a/nms/v1_8_R2/pom.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - 4.0.0 - jar - - - net.jitse - npclib-nms - 2.10-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/nms/v1_8_R3/pom.xml b/nms/v1_8_R3/pom.xml index a922061..f79d2fd 100755 --- a/nms/v1_8_R3/pom.xml +++ b/nms/v1_8_R3/pom.xml @@ -8,7 +8,7 @@ net.jitse npclib-nms - 2.10-SNAPSHOT + 2.9-SNAPSHOT npclib-nms-v1_8_R3 diff --git a/nms/v1_9_R1/pom.xml b/nms/v1_9_R1/pom.xml index db91bbe..6760a1f 100755 --- a/nms/v1_9_R1/pom.xml +++ b/nms/v1_9_R1/pom.xml @@ -8,7 +8,7 @@ net.jitse npclib-nms - 2.10-SNAPSHOT + 2.9-SNAPSHOT npclib-nms-v1_9_R1 diff --git a/nms/v1_9_R2/pom.xml b/nms/v1_9_R2/pom.xml index 52b08b4..0a13be4 100755 --- a/nms/v1_9_R2/pom.xml +++ b/nms/v1_9_R2/pom.xml @@ -8,7 +8,7 @@ net.jitse npclib-nms - 2.10-SNAPSHOT + 2.9-SNAPSHOT npclib-nms-v1_9_R2 diff --git a/plugin/pom.xml b/plugin/pom.xml index f5a2f36..a5bca0c 100644 --- a/plugin/pom.xml +++ b/plugin/pom.xml @@ -8,7 +8,7 @@ net.jitse npclib - 2.10-SNAPSHOT + 2.9-SNAPSHOT npclib-plugin @@ -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 diff --git a/pom.xml b/pom.xml index f0faf50..f82abf4 100755 --- a/pom.xml +++ b/pom.xml @@ -7,7 +7,7 @@ net.jitse npclib - 2.10-SNAPSHOT + 2.9-SNAPSHOT UTF-8