Fixes a potential NPE when calling getPlayerHologram at the wrong time
This commit is contained in:
@@ -16,6 +16,7 @@ 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 net.jitse.npclib.hologram.Hologram;
|
||||||
import net.jitse.npclib.utilities.MathUtil;
|
import net.jitse.npclib.utilities.MathUtil;
|
||||||
|
import org.apache.commons.lang.Validate;
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
import org.bukkit.World;
|
import org.bukkit.World;
|
||||||
@@ -67,18 +68,21 @@ public abstract class NPCBase implements NPC, NPCPacketHandler {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Hologram getPlayerHologram(Player player){
|
public Hologram getPlayerHologram(Player player){
|
||||||
|
Validate.notNull(player, "Player cannot be null.");
|
||||||
Hologram playerHologram = textDisplayHolograms.getOrDefault(player.getUniqueId(), null);
|
Hologram playerHologram = textDisplayHolograms.getOrDefault(player.getUniqueId(), null);
|
||||||
return playerHologram;
|
return playerHologram;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public NPC setPlayerLines(List<String> uniqueLines, Player targetPlayer) {
|
public NPC setPlayerLines(List<String> uniqueLines, Player targetPlayer) {
|
||||||
|
Validate.notNull(targetPlayer, "Player cannot be null.");
|
||||||
uniqueText.put(targetPlayer.getUniqueId(), uniqueLines);
|
uniqueText.put(targetPlayer.getUniqueId(), uniqueLines);
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public NPC setPlayerLines(List<String> uniqueLines, Player targetPlayer, boolean update) {
|
public NPC setPlayerLines(List<String> uniqueLines, Player targetPlayer, boolean update) {
|
||||||
|
Validate.notNull(targetPlayer, "Player cannot be null.");
|
||||||
List<String> originalLines = getPlayerLines(targetPlayer);
|
List<String> originalLines = getPlayerLines(targetPlayer);
|
||||||
setPlayerLines(uniqueLines, targetPlayer);
|
setPlayerLines(uniqueLines, targetPlayer);
|
||||||
if (update){
|
if (update){
|
||||||
@@ -99,6 +103,7 @@ public abstract class NPCBase implements NPC, NPCPacketHandler {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<String> getPlayerLines(Player targetPlayer) {
|
public List<String> getPlayerLines(Player targetPlayer) {
|
||||||
|
Validate.notNull(targetPlayer, "Player cannot be null.");
|
||||||
return uniqueText.getOrDefault(targetPlayer.getUniqueId(), text);
|
return uniqueText.getOrDefault(targetPlayer.getUniqueId(), text);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -133,10 +138,12 @@ public abstract class NPCBase implements NPC, NPCPacketHandler {
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
Player plyr = Bukkit.getPlayer(uuid); // destroy the per player holograms
|
Player plyr = Bukkit.getPlayer(uuid); // destroy the per player holograms
|
||||||
|
if (plyr != null) {
|
||||||
getPlayerHologram(plyr).hide(plyr);
|
getPlayerHologram(plyr).hide(plyr);
|
||||||
hide(plyr, true);
|
hide(plyr, true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public void disableFOV() {
|
public void disableFOV() {
|
||||||
this.cosFOV = 0;
|
this.cosFOV = 0;
|
||||||
|
|||||||
Reference in New Issue
Block a user