Merge pull request #105 from RealGatt/feature/per-player-names
Feature to add Per-Player Name Holograms to NPCs
This commit is contained in:
commit
6037711d30
|
@ -18,5 +18,6 @@ install:
|
||||||
- ls $HOME/.m2/repository/org/spigotmc/spigot/1.13.2-R0.1-SNAPSHOT >> /dev/null 2>&1 || java -jar BuildTools.jar --rev 1.13.2 >> /dev/null 2>&1
|
- ls $HOME/.m2/repository/org/spigotmc/spigot/1.13.2-R0.1-SNAPSHOT >> /dev/null 2>&1 || java -jar BuildTools.jar --rev 1.13.2 >> /dev/null 2>&1
|
||||||
- ls $HOME/.m2/repository/org/spigotmc/spigot/1.14.4-R0.1-SNAPSHOT >> /dev/null 2>&1 || java -jar BuildTools.jar --rev 1.14.4 >> /dev/null 2>&1
|
- ls $HOME/.m2/repository/org/spigotmc/spigot/1.14.4-R0.1-SNAPSHOT >> /dev/null 2>&1 || java -jar BuildTools.jar --rev 1.14.4 >> /dev/null 2>&1
|
||||||
- ls $HOME/.m2/repository/org/spigotmc/spigot/1.15.2-R0.1-SNAPSHOT >> /dev/null 2>&1 || java -jar BuildTools.jar --rev 1.15.2 >> /dev/null 2>&1
|
- ls $HOME/.m2/repository/org/spigotmc/spigot/1.15.2-R0.1-SNAPSHOT >> /dev/null 2>&1 || java -jar BuildTools.jar --rev 1.15.2 >> /dev/null 2>&1
|
||||||
|
- ls $HOME/.m2/repository/org/spigotmc/spigot/1.16.1-R0.1-SNAPSHOT >> /dev/null 2>&1 || java -jar BuildTools.jar --rev 1.16.1 >> /dev/null 2>&1
|
||||||
script:
|
script:
|
||||||
- mvn clean install
|
- mvn clean install
|
|
@ -8,7 +8,7 @@
|
||||||
<parent>
|
<parent>
|
||||||
<artifactId>npclib</artifactId>
|
<artifactId>npclib</artifactId>
|
||||||
<groupId>net.jitse</groupId>
|
<groupId>net.jitse</groupId>
|
||||||
<version>2.9-SNAPSHOT</version>
|
<version>2.10-SNAPSHOT</version>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
<artifactId>npclib-api</artifactId>
|
<artifactId>npclib-api</artifactId>
|
||||||
|
|
|
@ -8,6 +8,7 @@ import net.jitse.npclib.api.skin.Skin;
|
||||||
import net.jitse.npclib.api.state.NPCAnimation;
|
import net.jitse.npclib.api.state.NPCAnimation;
|
||||||
import net.jitse.npclib.api.state.NPCSlot;
|
import net.jitse.npclib.api.state.NPCSlot;
|
||||||
import net.jitse.npclib.api.state.NPCState;
|
import net.jitse.npclib.api.state.NPCState;
|
||||||
|
import net.jitse.npclib.hologram.Hologram;
|
||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
import org.bukkit.World;
|
import org.bukkit.World;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
@ -18,6 +19,39 @@ import java.util.UUID;
|
||||||
|
|
||||||
public interface NPC {
|
public interface NPC {
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @param player
|
||||||
|
* @return unique hologram for that user
|
||||||
|
*/
|
||||||
|
Hologram getPlayerHologram(Player player);
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @param uniqueLines The text that the targetPlayer will see
|
||||||
|
* @param targetPlayer The target player
|
||||||
|
* @return object instance
|
||||||
|
* @author Gatt
|
||||||
|
*/
|
||||||
|
NPC setPlayerLines(List<String> uniqueLines, Player targetPlayer);
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @param uniqueLines The text that the targetPlayer will see
|
||||||
|
* @param targetPlayer The target player
|
||||||
|
* @param update whether or not to send the update packets
|
||||||
|
* @return object instance
|
||||||
|
* @author Gatt
|
||||||
|
*/
|
||||||
|
NPC setPlayerLines(List<String> uniqueLines, Player targetPlayer, boolean update);
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @param targetPlayer The target player
|
||||||
|
* @return the lines that the targetPlayer will see, if null; default lines.
|
||||||
|
*/
|
||||||
|
List<String> getPlayerLines(Player targetPlayer);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set the NPC's location.
|
* Set the NPC's location.
|
||||||
* Use this method before using {@link NPC#create}.
|
* Use this method before using {@link NPC#create}.
|
||||||
|
|
|
@ -16,7 +16,8 @@ public enum MinecraftVersion {
|
||||||
V1_13_R1,
|
V1_13_R1,
|
||||||
V1_13_R2,
|
V1_13_R2,
|
||||||
V1_14_R1,
|
V1_14_R1,
|
||||||
V1_15_R1;
|
V1_15_R1,
|
||||||
|
V1_16_R1;
|
||||||
|
|
||||||
public boolean isAboveOrEqual(MinecraftVersion compare) {
|
public boolean isAboveOrEqual(MinecraftVersion compare) {
|
||||||
return ordinal() >= compare.ordinal();
|
return ordinal() >= compare.ordinal();
|
||||||
|
|
|
@ -45,10 +45,15 @@ public abstract class NPCBase implements NPC, NPCPacketHandler {
|
||||||
protected List<String> text;
|
protected List<String> text;
|
||||||
protected Location location;
|
protected Location location;
|
||||||
protected Skin skin;
|
protected Skin skin;
|
||||||
protected Hologram hologram;
|
|
||||||
|
//protected Hologram hologram;
|
||||||
|
|
||||||
protected final Map<NPCSlot, ItemStack> items = new EnumMap<>(NPCSlot.class);
|
protected final Map<NPCSlot, ItemStack> items = new EnumMap<>(NPCSlot.class);
|
||||||
|
|
||||||
|
// Storage for per-player text;
|
||||||
|
protected final Map<UUID, List<String>> uniqueText = new HashMap<>();
|
||||||
|
protected final Map<UUID, Hologram> textDisplayHolograms = new HashMap<>();
|
||||||
|
|
||||||
public NPCBase(NPCLib instance, List<String> text) {
|
public NPCBase(NPCLib instance, List<String> text) {
|
||||||
this.instance = instance;
|
this.instance = instance;
|
||||||
this.text = text == null ? Collections.emptyList() : text;
|
this.text = text == null ? Collections.emptyList() : text;
|
||||||
|
@ -60,6 +65,43 @@ public abstract class NPCBase implements NPC, NPCPacketHandler {
|
||||||
return instance;
|
return instance;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Hologram getPlayerHologram(Player player){
|
||||||
|
Hologram playerHologram = textDisplayHolograms.getOrDefault(player.getUniqueId(), null);
|
||||||
|
return playerHologram;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public NPC setPlayerLines(List<String> uniqueLines, Player targetPlayer) {
|
||||||
|
uniqueText.put(targetPlayer.getUniqueId(), uniqueLines);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public NPC setPlayerLines(List<String> uniqueLines, Player targetPlayer, boolean update) {
|
||||||
|
List<String> originalLines = getPlayerLines(targetPlayer);
|
||||||
|
setPlayerLines(uniqueLines, targetPlayer);
|
||||||
|
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<Object> updatePackets = hologram.getUpdatePackets(getPlayerLines(targetPlayer));
|
||||||
|
hologram.update(targetPlayer, updatePackets);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<String> getPlayerLines(Player targetPlayer) {
|
||||||
|
return uniqueText.getOrDefault(targetPlayer.getUniqueId(), text);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public UUID getUniqueId() {
|
public UUID getUniqueId() {
|
||||||
return uuid;
|
return uuid;
|
||||||
|
@ -90,8 +132,9 @@ public abstract class NPCBase implements NPC, NPCPacketHandler {
|
||||||
if (autoHidden.contains(uuid)) {
|
if (autoHidden.contains(uuid)) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
Player plyr = Bukkit.getPlayer(uuid); // destroy the per player holograms
|
||||||
hide(Bukkit.getPlayer(uuid), true);
|
getPlayerHologram(plyr).hide(plyr);
|
||||||
|
hide(plyr, true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -303,11 +346,16 @@ public abstract class NPCBase implements NPC, NPCPacketHandler {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public NPC setText(List<String> text) {
|
public NPC setText(List<String> text) {
|
||||||
List<Object> updatePackets = hologram.getUpdatePackets(text);
|
uniqueText.clear();
|
||||||
|
|
||||||
for (UUID shownUuid : shown) {
|
for (UUID shownUuid : shown) {
|
||||||
Player player = Bukkit.getPlayer(shownUuid);
|
Player player = Bukkit.getPlayer(shownUuid);
|
||||||
if (player != null && isShown(player)) {
|
if (player != null && isShown(player)) {
|
||||||
|
Hologram originalHologram = getPlayerHologram(player);
|
||||||
|
originalHologram.hide(player); // essentially destroy the hologram
|
||||||
|
textDisplayHolograms.remove(player.getUniqueId()); // remove the old obj
|
||||||
|
Hologram hologram = getPlayerHologram(player); // let it regenerate
|
||||||
|
List<Object> updatePackets = hologram.getUpdatePackets(getPlayerLines(player));
|
||||||
hologram.update(player, updatePackets);
|
hologram.update(player, updatePackets);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -15,6 +15,8 @@ interface NPCPacketHandler {
|
||||||
|
|
||||||
void createPackets();
|
void createPackets();
|
||||||
|
|
||||||
|
void createPackets(Player player);
|
||||||
|
|
||||||
void sendShowPackets(Player player);
|
void sendShowPackets(Player player);
|
||||||
|
|
||||||
void sendHidePackets(Player player);
|
void sendHidePackets(Player player);
|
||||||
|
|
|
@ -8,7 +8,7 @@
|
||||||
<parent>
|
<parent>
|
||||||
<groupId>net.jitse</groupId>
|
<groupId>net.jitse</groupId>
|
||||||
<artifactId>npclib</artifactId>
|
<artifactId>npclib</artifactId>
|
||||||
<version>2.9-SNAPSHOT</version>
|
<version>2.10-SNAPSHOT</version>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
<artifactId>npclib-nms</artifactId>
|
<artifactId>npclib-nms</artifactId>
|
||||||
|
|
|
@ -8,7 +8,7 @@
|
||||||
<parent>
|
<parent>
|
||||||
<groupId>net.jitse</groupId>
|
<groupId>net.jitse</groupId>
|
||||||
<artifactId>npclib-nms</artifactId>
|
<artifactId>npclib-nms</artifactId>
|
||||||
<version>2.9-SNAPSHOT</version>
|
<version>2.10-SNAPSHOT</version>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
<artifactId>npclib-nms-v1_10_R1</artifactId>
|
<artifactId>npclib-nms-v1_10_R1</artifactId>
|
||||||
|
|
|
@ -38,9 +38,24 @@ public class NPC_v1_10_R1 extends NPCBase {
|
||||||
super(instance, lines);
|
super(instance, lines);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Hologram getPlayerHologram(Player player) {
|
||||||
|
Hologram holo = super.getPlayerHologram(player);
|
||||||
|
if (holo == null){
|
||||||
|
holo = new Hologram(MinecraftVersion.V1_10_R1, location.clone().add(0, 0.5, 0), getPlayerLines(player));
|
||||||
|
}
|
||||||
|
super.textDisplayHolograms.put(player.getUniqueId(), holo);
|
||||||
|
return holo;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void createPackets() {
|
public void createPackets() {
|
||||||
this.hologram = new Hologram(MinecraftVersion.V1_10_R1, location.clone().subtract(0, 0.5, 0), text);
|
Bukkit.getOnlinePlayers().forEach(this::createPackets);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void createPackets(Player player) {
|
||||||
|
|
||||||
PacketPlayOutPlayerInfoWrapper packetPlayOutPlayerInfoWrapper = new PacketPlayOutPlayerInfoWrapper();
|
PacketPlayOutPlayerInfoWrapper packetPlayOutPlayerInfoWrapper = new PacketPlayOutPlayerInfoWrapper();
|
||||||
|
|
||||||
|
@ -74,7 +89,7 @@ public class NPC_v1_10_R1 extends NPCBase {
|
||||||
playerConnection.sendPacket(packetPlayOutNamedEntitySpawn);
|
playerConnection.sendPacket(packetPlayOutNamedEntitySpawn);
|
||||||
playerConnection.sendPacket(packetPlayOutEntityHeadRotation);
|
playerConnection.sendPacket(packetPlayOutEntityHeadRotation);
|
||||||
|
|
||||||
hologram.show(player);
|
getPlayerHologram(player).show(player);
|
||||||
|
|
||||||
// Removing the player info after 10 seconds.
|
// Removing the player info after 10 seconds.
|
||||||
Bukkit.getScheduler().runTaskLater(instance.getPlugin(), () ->
|
Bukkit.getScheduler().runTaskLater(instance.getPlugin(), () ->
|
||||||
|
@ -88,7 +103,7 @@ public class NPC_v1_10_R1 extends NPCBase {
|
||||||
playerConnection.sendPacket(packetPlayOutEntityDestroy);
|
playerConnection.sendPacket(packetPlayOutEntityDestroy);
|
||||||
playerConnection.sendPacket(packetPlayOutPlayerInfoRemove);
|
playerConnection.sendPacket(packetPlayOutPlayerInfoRemove);
|
||||||
|
|
||||||
hologram.hide(player);
|
getPlayerHologram(player).hide(player);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -8,7 +8,7 @@
|
||||||
<parent>
|
<parent>
|
||||||
<groupId>net.jitse</groupId>
|
<groupId>net.jitse</groupId>
|
||||||
<artifactId>npclib-nms</artifactId>
|
<artifactId>npclib-nms</artifactId>
|
||||||
<version>2.9-SNAPSHOT</version>
|
<version>2.10-SNAPSHOT</version>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
<artifactId>npclib-nms-v1_11_R1</artifactId>
|
<artifactId>npclib-nms-v1_11_R1</artifactId>
|
||||||
|
|
|
@ -38,9 +38,24 @@ public class NPC_v1_11_R1 extends NPCBase {
|
||||||
super(instance, lines);
|
super(instance, lines);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Hologram getPlayerHologram(Player player) {
|
||||||
|
Hologram holo = super.getPlayerHologram(player);
|
||||||
|
if (holo == null){
|
||||||
|
holo = new Hologram(MinecraftVersion.V1_11_R1, location.clone().add(0, 0.5, 0), getPlayerLines(player));
|
||||||
|
}
|
||||||
|
super.textDisplayHolograms.put(player.getUniqueId(), holo);
|
||||||
|
return holo;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void createPackets() {
|
public void createPackets() {
|
||||||
this.hologram = new Hologram(MinecraftVersion.V1_11_R1, location.clone().add(0, 0.5, 0), text);
|
Bukkit.getOnlinePlayers().forEach(this::createPackets);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void createPackets(Player player) {
|
||||||
|
|
||||||
PacketPlayOutPlayerInfoWrapper packetPlayOutPlayerInfoWrapper = new PacketPlayOutPlayerInfoWrapper();
|
PacketPlayOutPlayerInfoWrapper packetPlayOutPlayerInfoWrapper = new PacketPlayOutPlayerInfoWrapper();
|
||||||
|
|
||||||
|
@ -74,7 +89,7 @@ public class NPC_v1_11_R1 extends NPCBase {
|
||||||
playerConnection.sendPacket(packetPlayOutNamedEntitySpawn);
|
playerConnection.sendPacket(packetPlayOutNamedEntitySpawn);
|
||||||
playerConnection.sendPacket(packetPlayOutEntityHeadRotation);
|
playerConnection.sendPacket(packetPlayOutEntityHeadRotation);
|
||||||
|
|
||||||
hologram.show(player);
|
getPlayerHologram(player).show(player);
|
||||||
|
|
||||||
// Removing the player info after 10 seconds.
|
// Removing the player info after 10 seconds.
|
||||||
Bukkit.getScheduler().runTaskLater(instance.getPlugin(), () ->
|
Bukkit.getScheduler().runTaskLater(instance.getPlugin(), () ->
|
||||||
|
@ -88,7 +103,7 @@ public class NPC_v1_11_R1 extends NPCBase {
|
||||||
playerConnection.sendPacket(packetPlayOutEntityDestroy);
|
playerConnection.sendPacket(packetPlayOutEntityDestroy);
|
||||||
playerConnection.sendPacket(packetPlayOutPlayerInfoRemove);
|
playerConnection.sendPacket(packetPlayOutPlayerInfoRemove);
|
||||||
|
|
||||||
hologram.hide(player);
|
getPlayerHologram(player).hide(player);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -8,7 +8,7 @@
|
||||||
<parent>
|
<parent>
|
||||||
<groupId>net.jitse</groupId>
|
<groupId>net.jitse</groupId>
|
||||||
<artifactId>npclib-nms</artifactId>
|
<artifactId>npclib-nms</artifactId>
|
||||||
<version>2.9-SNAPSHOT</version>
|
<version>2.10-SNAPSHOT</version>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
<artifactId>npclib-nms-v1_12_R1</artifactId>
|
<artifactId>npclib-nms-v1_12_R1</artifactId>
|
||||||
|
|
|
@ -38,9 +38,24 @@ public class NPC_v1_12_R1 extends NPCBase {
|
||||||
super(instance, lines);
|
super(instance, lines);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Hologram getPlayerHologram(Player player) {
|
||||||
|
Hologram holo = super.getPlayerHologram(player);
|
||||||
|
if (holo == null){
|
||||||
|
holo = new Hologram(MinecraftVersion.V1_12_R1, location.clone().add(0, 0.5, 0), getPlayerLines(player));
|
||||||
|
}
|
||||||
|
super.textDisplayHolograms.put(player.getUniqueId(), holo);
|
||||||
|
return holo;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void createPackets() {
|
public void createPackets() {
|
||||||
this.hologram = new Hologram(MinecraftVersion.V1_12_R1, location.clone().add(0, 0.5, 0), text);
|
Bukkit.getOnlinePlayers().forEach(this::createPackets);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void createPackets(Player player) {
|
||||||
|
|
||||||
PacketPlayOutPlayerInfoWrapper packetPlayOutPlayerInfoWrapper = new PacketPlayOutPlayerInfoWrapper();
|
PacketPlayOutPlayerInfoWrapper packetPlayOutPlayerInfoWrapper = new PacketPlayOutPlayerInfoWrapper();
|
||||||
|
|
||||||
|
@ -74,7 +89,7 @@ public class NPC_v1_12_R1 extends NPCBase {
|
||||||
playerConnection.sendPacket(packetPlayOutNamedEntitySpawn);
|
playerConnection.sendPacket(packetPlayOutNamedEntitySpawn);
|
||||||
playerConnection.sendPacket(packetPlayOutEntityHeadRotation);
|
playerConnection.sendPacket(packetPlayOutEntityHeadRotation);
|
||||||
|
|
||||||
hologram.show(player);
|
getPlayerHologram(player).show(player);
|
||||||
|
|
||||||
// Removing the player info after 10 seconds.
|
// Removing the player info after 10 seconds.
|
||||||
Bukkit.getScheduler().runTaskLater(instance.getPlugin(), () ->
|
Bukkit.getScheduler().runTaskLater(instance.getPlugin(), () ->
|
||||||
|
@ -88,7 +103,7 @@ public class NPC_v1_12_R1 extends NPCBase {
|
||||||
playerConnection.sendPacket(packetPlayOutEntityDestroy);
|
playerConnection.sendPacket(packetPlayOutEntityDestroy);
|
||||||
playerConnection.sendPacket(packetPlayOutPlayerInfoRemove);
|
playerConnection.sendPacket(packetPlayOutPlayerInfoRemove);
|
||||||
|
|
||||||
hologram.hide(player);
|
getPlayerHologram(player).hide(player);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -8,7 +8,7 @@
|
||||||
<parent>
|
<parent>
|
||||||
<groupId>net.jitse</groupId>
|
<groupId>net.jitse</groupId>
|
||||||
<artifactId>npclib-nms</artifactId>
|
<artifactId>npclib-nms</artifactId>
|
||||||
<version>2.9-SNAPSHOT</version>
|
<version>2.10-SNAPSHOT</version>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
<artifactId>npclib-nms-v1_13_R1</artifactId>
|
<artifactId>npclib-nms-v1_13_R1</artifactId>
|
||||||
|
|
|
@ -38,9 +38,24 @@ public class NPC_v1_13_R1 extends NPCBase {
|
||||||
super(instance, lines);
|
super(instance, lines);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Hologram getPlayerHologram(Player player) {
|
||||||
|
Hologram holo = super.getPlayerHologram(player);
|
||||||
|
if (holo == null){
|
||||||
|
holo = new Hologram(MinecraftVersion.V1_13_R1, location.clone().add(0, 0.5, 0), getPlayerLines(player));
|
||||||
|
}
|
||||||
|
super.textDisplayHolograms.put(player.getUniqueId(), holo);
|
||||||
|
return holo;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void createPackets() {
|
public void createPackets() {
|
||||||
this.hologram = new Hologram(MinecraftVersion.V1_13_R1, location.clone().add(0, 0.5, 0), text);
|
Bukkit.getOnlinePlayers().forEach(this::createPackets);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void createPackets(Player player) {
|
||||||
|
|
||||||
PacketPlayOutPlayerInfoWrapper packetPlayOutPlayerInfoWrapper = new PacketPlayOutPlayerInfoWrapper();
|
PacketPlayOutPlayerInfoWrapper packetPlayOutPlayerInfoWrapper = new PacketPlayOutPlayerInfoWrapper();
|
||||||
|
|
||||||
|
@ -74,7 +89,7 @@ public class NPC_v1_13_R1 extends NPCBase {
|
||||||
playerConnection.sendPacket(packetPlayOutNamedEntitySpawn);
|
playerConnection.sendPacket(packetPlayOutNamedEntitySpawn);
|
||||||
playerConnection.sendPacket(packetPlayOutEntityHeadRotation);
|
playerConnection.sendPacket(packetPlayOutEntityHeadRotation);
|
||||||
|
|
||||||
hologram.show(player);
|
getPlayerHologram(player).show(player);
|
||||||
|
|
||||||
// Removing the player info after 10 seconds.
|
// Removing the player info after 10 seconds.
|
||||||
Bukkit.getScheduler().runTaskLater(instance.getPlugin(), () ->
|
Bukkit.getScheduler().runTaskLater(instance.getPlugin(), () ->
|
||||||
|
@ -88,7 +103,7 @@ public class NPC_v1_13_R1 extends NPCBase {
|
||||||
playerConnection.sendPacket(packetPlayOutEntityDestroy);
|
playerConnection.sendPacket(packetPlayOutEntityDestroy);
|
||||||
playerConnection.sendPacket(packetPlayOutPlayerInfoRemove);
|
playerConnection.sendPacket(packetPlayOutPlayerInfoRemove);
|
||||||
|
|
||||||
hologram.hide(player);
|
getPlayerHologram(player).hide(player);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -8,7 +8,7 @@
|
||||||
<parent>
|
<parent>
|
||||||
<groupId>net.jitse</groupId>
|
<groupId>net.jitse</groupId>
|
||||||
<artifactId>npclib-nms</artifactId>
|
<artifactId>npclib-nms</artifactId>
|
||||||
<version>2.9-SNAPSHOT</version>
|
<version>2.10-SNAPSHOT</version>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
<artifactId>npclib-nms-v1_13_R2</artifactId>
|
<artifactId>npclib-nms-v1_13_R2</artifactId>
|
||||||
|
|
|
@ -37,10 +37,24 @@ public class NPC_v1_13_R2 extends NPCBase {
|
||||||
public NPC_v1_13_R2(NPCLib instance, List<String> lines) {
|
public NPC_v1_13_R2(NPCLib instance, List<String> lines) {
|
||||||
super(instance, lines);
|
super(instance, lines);
|
||||||
}
|
}
|
||||||
|
@Override
|
||||||
|
public Hologram getPlayerHologram(Player player) {
|
||||||
|
Hologram holo = super.getPlayerHologram(player);
|
||||||
|
if (holo == null){
|
||||||
|
holo = new Hologram(MinecraftVersion.V1_13_R2, location.clone().add(0, 0.5, 0), getPlayerLines(player));
|
||||||
|
}
|
||||||
|
super.textDisplayHolograms.put(player.getUniqueId(), holo);
|
||||||
|
return holo;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void createPackets() {
|
public void createPackets() {
|
||||||
this.hologram = new Hologram(MinecraftVersion.V1_13_R2, location.clone().add(0, 0.5, 0), text);
|
Bukkit.getOnlinePlayers().forEach(this::createPackets);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void createPackets(Player player) {
|
||||||
|
|
||||||
PacketPlayOutPlayerInfoWrapper packetPlayOutPlayerInfoWrapper = new PacketPlayOutPlayerInfoWrapper();
|
PacketPlayOutPlayerInfoWrapper packetPlayOutPlayerInfoWrapper = new PacketPlayOutPlayerInfoWrapper();
|
||||||
|
|
||||||
|
@ -74,7 +88,7 @@ public class NPC_v1_13_R2 extends NPCBase {
|
||||||
playerConnection.sendPacket(packetPlayOutNamedEntitySpawn);
|
playerConnection.sendPacket(packetPlayOutNamedEntitySpawn);
|
||||||
playerConnection.sendPacket(packetPlayOutEntityHeadRotation);
|
playerConnection.sendPacket(packetPlayOutEntityHeadRotation);
|
||||||
|
|
||||||
hologram.show(player);
|
getPlayerHologram(player).show(player);
|
||||||
|
|
||||||
// Removing the player info after 10 seconds.
|
// Removing the player info after 10 seconds.
|
||||||
Bukkit.getScheduler().runTaskLater(instance.getPlugin(), () ->
|
Bukkit.getScheduler().runTaskLater(instance.getPlugin(), () ->
|
||||||
|
@ -88,7 +102,7 @@ public class NPC_v1_13_R2 extends NPCBase {
|
||||||
playerConnection.sendPacket(packetPlayOutEntityDestroy);
|
playerConnection.sendPacket(packetPlayOutEntityDestroy);
|
||||||
playerConnection.sendPacket(packetPlayOutPlayerInfoRemove);
|
playerConnection.sendPacket(packetPlayOutPlayerInfoRemove);
|
||||||
|
|
||||||
hologram.hide(player);
|
getPlayerHologram(player).hide(player);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -8,7 +8,7 @@
|
||||||
<parent>
|
<parent>
|
||||||
<groupId>net.jitse</groupId>
|
<groupId>net.jitse</groupId>
|
||||||
<artifactId>npclib-nms</artifactId>
|
<artifactId>npclib-nms</artifactId>
|
||||||
<version>2.9-SNAPSHOT</version>
|
<version>2.10-SNAPSHOT</version>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
<artifactId>npclib-nms-v1_14_R1</artifactId>
|
<artifactId>npclib-nms-v1_14_R1</artifactId>
|
||||||
|
|
|
@ -33,10 +33,24 @@ public class NPC_v1_14_R1 extends NPCBase {
|
||||||
public NPC_v1_14_R1(NPCLib instance, List<String> lines) {
|
public NPC_v1_14_R1(NPCLib instance, List<String> lines) {
|
||||||
super(instance, lines);
|
super(instance, lines);
|
||||||
}
|
}
|
||||||
|
@Override
|
||||||
|
public Hologram getPlayerHologram(Player player) {
|
||||||
|
Hologram holo = super.getPlayerHologram(player);
|
||||||
|
if (holo == null){
|
||||||
|
holo = new Hologram(MinecraftVersion.V1_14_R1, location.clone().add(0, 0.5, 0), getPlayerLines(player));
|
||||||
|
}
|
||||||
|
super.textDisplayHolograms.put(player.getUniqueId(), holo);
|
||||||
|
return holo;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void createPackets() {
|
public void createPackets() {
|
||||||
this.hologram = new Hologram(MinecraftVersion.V1_14_R1, location.clone().add(0, 0.5, 0), text);
|
Bukkit.getOnlinePlayers().forEach(this::createPackets);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void createPackets(Player player) {
|
||||||
|
|
||||||
PacketPlayOutPlayerInfoWrapper packetPlayOutPlayerInfoWrapper = new PacketPlayOutPlayerInfoWrapper();
|
PacketPlayOutPlayerInfoWrapper packetPlayOutPlayerInfoWrapper = new PacketPlayOutPlayerInfoWrapper();
|
||||||
|
|
||||||
|
@ -70,7 +84,7 @@ public class NPC_v1_14_R1 extends NPCBase {
|
||||||
playerConnection.sendPacket(packetPlayOutNamedEntitySpawn);
|
playerConnection.sendPacket(packetPlayOutNamedEntitySpawn);
|
||||||
playerConnection.sendPacket(packetPlayOutEntityHeadRotation);
|
playerConnection.sendPacket(packetPlayOutEntityHeadRotation);
|
||||||
|
|
||||||
hologram.show(player);
|
getPlayerHologram(player).show(player);
|
||||||
|
|
||||||
// Removing the player info after 10 seconds.
|
// Removing the player info after 10 seconds.
|
||||||
Bukkit.getScheduler().runTaskLater(instance.getPlugin(), () ->
|
Bukkit.getScheduler().runTaskLater(instance.getPlugin(), () ->
|
||||||
|
@ -84,7 +98,7 @@ public class NPC_v1_14_R1 extends NPCBase {
|
||||||
playerConnection.sendPacket(packetPlayOutEntityDestroy);
|
playerConnection.sendPacket(packetPlayOutEntityDestroy);
|
||||||
playerConnection.sendPacket(packetPlayOutPlayerInfoRemove);
|
playerConnection.sendPacket(packetPlayOutPlayerInfoRemove);
|
||||||
|
|
||||||
hologram.hide(player);
|
getPlayerHologram(player).hide(player);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -8,7 +8,7 @@
|
||||||
<parent>
|
<parent>
|
||||||
<groupId>net.jitse</groupId>
|
<groupId>net.jitse</groupId>
|
||||||
<artifactId>npclib-nms</artifactId>
|
<artifactId>npclib-nms</artifactId>
|
||||||
<version>2.9-SNAPSHOT</version>
|
<version>2.10-SNAPSHOT</version>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
<artifactId>npclib-nms-v1_15_R1</artifactId>
|
<artifactId>npclib-nms-v1_15_R1</artifactId>
|
||||||
|
|
|
@ -33,10 +33,24 @@ public class NPC_v1_15_R1 extends NPCBase {
|
||||||
public NPC_v1_15_R1(NPCLib instance, List<String> lines) {
|
public NPC_v1_15_R1(NPCLib instance, List<String> lines) {
|
||||||
super(instance, lines);
|
super(instance, lines);
|
||||||
}
|
}
|
||||||
|
@Override
|
||||||
|
public Hologram getPlayerHologram(Player player) {
|
||||||
|
Hologram holo = super.getPlayerHologram(player);
|
||||||
|
if (holo == null){
|
||||||
|
holo = new Hologram(MinecraftVersion.V1_15_R1, location.clone().add(0, 0.5, 0), getPlayerLines(player));
|
||||||
|
}
|
||||||
|
super.textDisplayHolograms.put(player.getUniqueId(), holo);
|
||||||
|
return holo;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void createPackets() {
|
public void createPackets() {
|
||||||
this.hologram = new Hologram(MinecraftVersion.V1_15_R1, location.clone().add(0, 0.5, 0), text);
|
Bukkit.getOnlinePlayers().forEach(this::createPackets);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void createPackets(Player player) {
|
||||||
|
|
||||||
PacketPlayOutPlayerInfoWrapper packetPlayOutPlayerInfoWrapper = new PacketPlayOutPlayerInfoWrapper();
|
PacketPlayOutPlayerInfoWrapper packetPlayOutPlayerInfoWrapper = new PacketPlayOutPlayerInfoWrapper();
|
||||||
|
|
||||||
|
@ -71,7 +85,7 @@ public class NPC_v1_15_R1 extends NPCBase {
|
||||||
playerConnection.sendPacket(packetPlayOutEntityHeadRotation);
|
playerConnection.sendPacket(packetPlayOutEntityHeadRotation);
|
||||||
sendMetadataPacket(player);
|
sendMetadataPacket(player);
|
||||||
|
|
||||||
hologram.show(player);
|
getPlayerHologram(player).show(player);
|
||||||
|
|
||||||
// Removing the player info after 10 seconds.
|
// Removing the player info after 10 seconds.
|
||||||
Bukkit.getScheduler().runTaskLater(instance.getPlugin(), () ->
|
Bukkit.getScheduler().runTaskLater(instance.getPlugin(), () ->
|
||||||
|
@ -85,7 +99,7 @@ public class NPC_v1_15_R1 extends NPCBase {
|
||||||
playerConnection.sendPacket(packetPlayOutEntityDestroy);
|
playerConnection.sendPacket(packetPlayOutEntityDestroy);
|
||||||
playerConnection.sendPacket(packetPlayOutPlayerInfoRemove);
|
playerConnection.sendPacket(packetPlayOutPlayerInfoRemove);
|
||||||
|
|
||||||
hologram.hide(player);
|
getPlayerHologram(player).hide(player);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -8,7 +8,7 @@
|
||||||
<parent>
|
<parent>
|
||||||
<groupId>net.jitse</groupId>
|
<groupId>net.jitse</groupId>
|
||||||
<artifactId>npclib-nms</artifactId>
|
<artifactId>npclib-nms</artifactId>
|
||||||
<version>2.9-SNAPSHOT</version>
|
<version>2.10-SNAPSHOT</version>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
<artifactId>npclib-nms-v1_16_R1</artifactId>
|
<artifactId>npclib-nms-v1_16_R1</artifactId>
|
||||||
|
|
|
@ -36,10 +36,24 @@ public class NPC_v1_16_R1 extends NPCBase {
|
||||||
public NPC_v1_16_R1(NPCLib instance, List<String> lines) {
|
public NPC_v1_16_R1(NPCLib instance, List<String> lines) {
|
||||||
super(instance, lines);
|
super(instance, lines);
|
||||||
}
|
}
|
||||||
|
@Override
|
||||||
|
public Hologram getPlayerHologram(Player player) {
|
||||||
|
Hologram holo = super.getPlayerHologram(player);
|
||||||
|
if (holo == null){
|
||||||
|
holo = new Hologram(MinecraftVersion.V1_16_R1, location.clone().add(0, 0.5, 0), getPlayerLines(player));
|
||||||
|
}
|
||||||
|
super.textDisplayHolograms.put(player.getUniqueId(), holo);
|
||||||
|
return holo;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void createPackets() {
|
public void createPackets() {
|
||||||
this.hologram = new Hologram(MinecraftVersion.V1_15_R1, location.clone().add(0, 0.5, 0), text);
|
Bukkit.getOnlinePlayers().forEach(this::createPackets);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void createPackets(Player player) {
|
||||||
|
|
||||||
PacketPlayOutPlayerInfoWrapper packetPlayOutPlayerInfoWrapper = new PacketPlayOutPlayerInfoWrapper();
|
PacketPlayOutPlayerInfoWrapper packetPlayOutPlayerInfoWrapper = new PacketPlayOutPlayerInfoWrapper();
|
||||||
|
|
||||||
|
@ -74,7 +88,7 @@ public class NPC_v1_16_R1 extends NPCBase {
|
||||||
playerConnection.sendPacket(packetPlayOutEntityHeadRotation);
|
playerConnection.sendPacket(packetPlayOutEntityHeadRotation);
|
||||||
sendMetadataPacket(player);
|
sendMetadataPacket(player);
|
||||||
|
|
||||||
hologram.show(player);
|
getPlayerHologram(player).show(player);
|
||||||
|
|
||||||
// Removing the player info after 10 seconds.
|
// Removing the player info after 10 seconds.
|
||||||
Bukkit.getScheduler().runTaskLater(instance.getPlugin(), () ->
|
Bukkit.getScheduler().runTaskLater(instance.getPlugin(), () ->
|
||||||
|
@ -88,7 +102,7 @@ public class NPC_v1_16_R1 extends NPCBase {
|
||||||
playerConnection.sendPacket(packetPlayOutEntityDestroy);
|
playerConnection.sendPacket(packetPlayOutEntityDestroy);
|
||||||
playerConnection.sendPacket(packetPlayOutPlayerInfoRemove);
|
playerConnection.sendPacket(packetPlayOutPlayerInfoRemove);
|
||||||
|
|
||||||
hologram.hide(player);
|
getPlayerHologram(player).hide(player);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -8,7 +8,7 @@
|
||||||
<parent>
|
<parent>
|
||||||
<groupId>net.jitse</groupId>
|
<groupId>net.jitse</groupId>
|
||||||
<artifactId>npclib-nms</artifactId>
|
<artifactId>npclib-nms</artifactId>
|
||||||
<version>2.9-SNAPSHOT</version>
|
<version>2.10-SNAPSHOT</version>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
<artifactId>npclib-nms-v1_8_R2</artifactId>
|
<artifactId>npclib-nms-v1_8_R2</artifactId>
|
||||||
|
|
|
@ -38,9 +38,24 @@ public class NPC_v1_8_R2 extends NPCBase {
|
||||||
super(instance, 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
|
@Override
|
||||||
public void createPackets() {
|
public void createPackets() {
|
||||||
this.hologram = new Hologram(MinecraftVersion.V1_8_R2, location.clone().add(0, 0.5, 0), text);
|
Bukkit.getOnlinePlayers().forEach(this::createPackets);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void createPackets(Player player) {
|
||||||
|
|
||||||
PacketPlayOutPlayerInfoWrapper packetPlayOutPlayerInfoWrapper = new PacketPlayOutPlayerInfoWrapper();
|
PacketPlayOutPlayerInfoWrapper packetPlayOutPlayerInfoWrapper = new PacketPlayOutPlayerInfoWrapper();
|
||||||
|
|
||||||
|
@ -64,6 +79,7 @@ public class NPC_v1_8_R2 extends NPCBase {
|
||||||
this.packetPlayOutEntityDestroy = new PacketPlayOutEntityDestroy(entityId); // First packet to send.
|
this.packetPlayOutEntityDestroy = new PacketPlayOutEntityDestroy(entityId); // First packet to send.
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void sendShowPackets(Player player) {
|
public void sendShowPackets(Player player) {
|
||||||
PlayerConnection playerConnection = ((CraftPlayer) player).getHandle().playerConnection;
|
PlayerConnection playerConnection = ((CraftPlayer) player).getHandle().playerConnection;
|
||||||
|
@ -74,7 +90,7 @@ public class NPC_v1_8_R2 extends NPCBase {
|
||||||
playerConnection.sendPacket(packetPlayOutNamedEntitySpawn);
|
playerConnection.sendPacket(packetPlayOutNamedEntitySpawn);
|
||||||
playerConnection.sendPacket(packetPlayOutEntityHeadRotation);
|
playerConnection.sendPacket(packetPlayOutEntityHeadRotation);
|
||||||
|
|
||||||
hologram.show(player);
|
getPlayerHologram(player).show(player);
|
||||||
|
|
||||||
// Removing the player info after 10 seconds.
|
// Removing the player info after 10 seconds.
|
||||||
Bukkit.getScheduler().runTaskLater(instance.getPlugin(), () ->
|
Bukkit.getScheduler().runTaskLater(instance.getPlugin(), () ->
|
||||||
|
@ -87,7 +103,7 @@ public class NPC_v1_8_R2 extends NPCBase {
|
||||||
|
|
||||||
playerConnection.sendPacket(packetPlayOutEntityDestroy);
|
playerConnection.sendPacket(packetPlayOutEntityDestroy);
|
||||||
playerConnection.sendPacket(packetPlayOutPlayerInfoRemove);
|
playerConnection.sendPacket(packetPlayOutPlayerInfoRemove);
|
||||||
hologram.hide(player);
|
getPlayerHologram(player).hide(player);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -8,7 +8,7 @@
|
||||||
<parent>
|
<parent>
|
||||||
<groupId>net.jitse</groupId>
|
<groupId>net.jitse</groupId>
|
||||||
<artifactId>npclib-nms</artifactId>
|
<artifactId>npclib-nms</artifactId>
|
||||||
<version>2.9-SNAPSHOT</version>
|
<version>2.10-SNAPSHOT</version>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
<artifactId>npclib-nms-v1_8_R3</artifactId>
|
<artifactId>npclib-nms-v1_8_R3</artifactId>
|
||||||
|
|
|
@ -38,9 +38,23 @@ public class NPC_v1_8_R3 extends NPCBase {
|
||||||
super(instance, lines);
|
super(instance, lines);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Hologram getPlayerHologram(Player player) {
|
||||||
|
Hologram holo = super.getPlayerHologram(player);
|
||||||
|
if (holo == null){
|
||||||
|
holo = new Hologram(MinecraftVersion.V1_8_R3, location.clone().add(0, 0.5, 0), getPlayerLines(player));
|
||||||
|
}
|
||||||
|
super.textDisplayHolograms.put(player.getUniqueId(), holo);
|
||||||
|
return holo;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void createPackets() {
|
public void createPackets() {
|
||||||
this.hologram = new Hologram(MinecraftVersion.V1_8_R3, location.clone().add(0, 0.5, 0), text);
|
Bukkit.getOnlinePlayers().forEach(this::createPackets);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void createPackets(Player player) {
|
||||||
|
|
||||||
PacketPlayOutPlayerInfoWrapper packetPlayOutPlayerInfoWrapper = new PacketPlayOutPlayerInfoWrapper();
|
PacketPlayOutPlayerInfoWrapper packetPlayOutPlayerInfoWrapper = new PacketPlayOutPlayerInfoWrapper();
|
||||||
|
|
||||||
|
@ -74,7 +88,7 @@ public class NPC_v1_8_R3 extends NPCBase {
|
||||||
playerConnection.sendPacket(packetPlayOutNamedEntitySpawn);
|
playerConnection.sendPacket(packetPlayOutNamedEntitySpawn);
|
||||||
playerConnection.sendPacket(packetPlayOutEntityHeadRotation);
|
playerConnection.sendPacket(packetPlayOutEntityHeadRotation);
|
||||||
|
|
||||||
hologram.show(player);
|
getPlayerHologram(player).show(player);
|
||||||
|
|
||||||
// Removing the player info after 10 seconds.
|
// Removing the player info after 10 seconds.
|
||||||
Bukkit.getScheduler().runTaskLater(instance.getPlugin(), () ->
|
Bukkit.getScheduler().runTaskLater(instance.getPlugin(), () ->
|
||||||
|
@ -88,7 +102,7 @@ public class NPC_v1_8_R3 extends NPCBase {
|
||||||
playerConnection.sendPacket(packetPlayOutEntityDestroy);
|
playerConnection.sendPacket(packetPlayOutEntityDestroy);
|
||||||
playerConnection.sendPacket(packetPlayOutPlayerInfoRemove);
|
playerConnection.sendPacket(packetPlayOutPlayerInfoRemove);
|
||||||
|
|
||||||
hologram.hide(player);
|
getPlayerHologram(player).hide(player);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -8,7 +8,7 @@
|
||||||
<parent>
|
<parent>
|
||||||
<groupId>net.jitse</groupId>
|
<groupId>net.jitse</groupId>
|
||||||
<artifactId>npclib-nms</artifactId>
|
<artifactId>npclib-nms</artifactId>
|
||||||
<version>2.9-SNAPSHOT</version>
|
<version>2.10-SNAPSHOT</version>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
<artifactId>npclib-nms-v1_9_R1</artifactId>
|
<artifactId>npclib-nms-v1_9_R1</artifactId>
|
||||||
|
|
|
@ -38,9 +38,24 @@ public class NPC_v1_9_R1 extends NPCBase {
|
||||||
super(instance, lines);
|
super(instance, lines);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Hologram getPlayerHologram(Player player) {
|
||||||
|
Hologram holo = super.getPlayerHologram(player);
|
||||||
|
if (holo == null){
|
||||||
|
holo = new Hologram(MinecraftVersion.V1_9_R1, location.clone().add(0, 0.5, 0), getPlayerLines(player));
|
||||||
|
}
|
||||||
|
super.textDisplayHolograms.put(player.getUniqueId(), holo);
|
||||||
|
return holo;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void createPackets() {
|
public void createPackets() {
|
||||||
this.hologram = new Hologram(MinecraftVersion.V1_9_R1, location.clone().subtract(0, 0.5, 0), text);
|
Bukkit.getOnlinePlayers().forEach(this::createPackets);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void createPackets(Player player) {
|
||||||
|
|
||||||
PacketPlayOutPlayerInfoWrapper packetPlayOutPlayerInfoWrapper = new PacketPlayOutPlayerInfoWrapper();
|
PacketPlayOutPlayerInfoWrapper packetPlayOutPlayerInfoWrapper = new PacketPlayOutPlayerInfoWrapper();
|
||||||
|
|
||||||
|
@ -74,7 +89,7 @@ public class NPC_v1_9_R1 extends NPCBase {
|
||||||
playerConnection.sendPacket(packetPlayOutNamedEntitySpawn);
|
playerConnection.sendPacket(packetPlayOutNamedEntitySpawn);
|
||||||
playerConnection.sendPacket(packetPlayOutEntityHeadRotation);
|
playerConnection.sendPacket(packetPlayOutEntityHeadRotation);
|
||||||
|
|
||||||
hologram.show(player);
|
getPlayerHologram(player).show(player);
|
||||||
|
|
||||||
// Removing the player info after 10 seconds.
|
// Removing the player info after 10 seconds.
|
||||||
Bukkit.getScheduler().runTaskLater(instance.getPlugin(), () ->
|
Bukkit.getScheduler().runTaskLater(instance.getPlugin(), () ->
|
||||||
|
@ -88,7 +103,7 @@ public class NPC_v1_9_R1 extends NPCBase {
|
||||||
playerConnection.sendPacket(packetPlayOutEntityDestroy);
|
playerConnection.sendPacket(packetPlayOutEntityDestroy);
|
||||||
playerConnection.sendPacket(packetPlayOutPlayerInfoRemove);
|
playerConnection.sendPacket(packetPlayOutPlayerInfoRemove);
|
||||||
|
|
||||||
hologram.hide(player);
|
getPlayerHologram(player).hide(player);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -8,7 +8,7 @@
|
||||||
<parent>
|
<parent>
|
||||||
<groupId>net.jitse</groupId>
|
<groupId>net.jitse</groupId>
|
||||||
<artifactId>npclib-nms</artifactId>
|
<artifactId>npclib-nms</artifactId>
|
||||||
<version>2.9-SNAPSHOT</version>
|
<version>2.10-SNAPSHOT</version>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
<artifactId>npclib-nms-v1_9_R2</artifactId>
|
<artifactId>npclib-nms-v1_9_R2</artifactId>
|
||||||
|
|
|
@ -38,9 +38,25 @@ public class NPC_v1_9_R2 extends NPCBase {
|
||||||
super(instance, lines);
|
super(instance, lines);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Hologram getPlayerHologram(Player player) {
|
||||||
|
Hologram holo = super.getPlayerHologram(player);
|
||||||
|
if (holo == null){
|
||||||
|
holo = new Hologram(MinecraftVersion.V1_9_R2, location.clone().add(0, 0.5, 0), getPlayerLines(player));
|
||||||
|
}
|
||||||
|
super.textDisplayHolograms.put(player.getUniqueId(), holo);
|
||||||
|
return holo;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void createPackets() {
|
public void createPackets() {
|
||||||
this.hologram = new Hologram(MinecraftVersion.V1_9_R2, location.clone().subtract(0, 0.5, 0), text);
|
Bukkit.getOnlinePlayers().forEach(this::createPackets);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void createPackets(Player player) {
|
||||||
|
|
||||||
PacketPlayOutPlayerInfoWrapper packetPlayOutPlayerInfoWrapper = new PacketPlayOutPlayerInfoWrapper();
|
PacketPlayOutPlayerInfoWrapper packetPlayOutPlayerInfoWrapper = new PacketPlayOutPlayerInfoWrapper();
|
||||||
|
|
||||||
|
@ -74,7 +90,7 @@ public class NPC_v1_9_R2 extends NPCBase {
|
||||||
playerConnection.sendPacket(packetPlayOutNamedEntitySpawn);
|
playerConnection.sendPacket(packetPlayOutNamedEntitySpawn);
|
||||||
playerConnection.sendPacket(packetPlayOutEntityHeadRotation);
|
playerConnection.sendPacket(packetPlayOutEntityHeadRotation);
|
||||||
|
|
||||||
hologram.show(player);
|
getPlayerHologram(player).show(player);
|
||||||
|
|
||||||
// Removing the player info after 10 seconds.
|
// Removing the player info after 10 seconds.
|
||||||
Bukkit.getScheduler().runTaskLater(instance.getPlugin(), () ->
|
Bukkit.getScheduler().runTaskLater(instance.getPlugin(), () ->
|
||||||
|
@ -88,7 +104,7 @@ public class NPC_v1_9_R2 extends NPCBase {
|
||||||
playerConnection.sendPacket(packetPlayOutEntityDestroy);
|
playerConnection.sendPacket(packetPlayOutEntityDestroy);
|
||||||
playerConnection.sendPacket(packetPlayOutPlayerInfoRemove);
|
playerConnection.sendPacket(packetPlayOutPlayerInfoRemove);
|
||||||
|
|
||||||
hologram.hide(player);
|
getPlayerHologram(player).hide(player);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -8,7 +8,7 @@
|
||||||
<parent>
|
<parent>
|
||||||
<groupId>net.jitse</groupId>
|
<groupId>net.jitse</groupId>
|
||||||
<artifactId>npclib</artifactId>
|
<artifactId>npclib</artifactId>
|
||||||
<version>2.9-SNAPSHOT</version>
|
<version>2.10-SNAPSHOT</version>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
<artifactId>npclib-plugin</artifactId>
|
<artifactId>npclib-plugin</artifactId>
|
||||||
|
|
2
pom.xml
2
pom.xml
|
@ -7,7 +7,7 @@
|
||||||
|
|
||||||
<groupId>net.jitse</groupId>
|
<groupId>net.jitse</groupId>
|
||||||
<artifactId>npclib</artifactId>
|
<artifactId>npclib</artifactId>
|
||||||
<version>2.9-SNAPSHOT</version>
|
<version>2.10-SNAPSHOT</version>
|
||||||
|
|
||||||
<properties>
|
<properties>
|
||||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||||
|
|
Loading…
Reference in New Issue