Puts a null check on player UUID

It's possible for fake players to have null UUIDs apparently. So this
check avoids an NPE.
This commit is contained in:
tastybento 2020-05-01 20:48:04 -07:00
parent c4e28b7937
commit f0564b7c78
2 changed files with 13 additions and 11 deletions

View File

@ -55,7 +55,7 @@ public class JoinLeaveListener implements Listener {
if (!players.isKnown(playerUUID)) { if (!players.isKnown(playerUUID)) {
firstTime(user); firstTime(user);
} }
// Make sure the player is loaded into the cache or create the player if they don't exist // Make sure the player is loaded into the cache or create the player if they don't exist
players.addPlayer(playerUUID); players.addPlayer(playerUUID);
@ -121,7 +121,7 @@ public class JoinLeaveListener implements Listener {
} }
} }
}); });
} }
/** /**
@ -142,10 +142,11 @@ public class JoinLeaveListener implements Listener {
* @param user Targeted user. * @param user Targeted user.
*/ */
private void clearPlayersInventory(World world, @NonNull User user) { private void clearPlayersInventory(World world, @NonNull User user) {
if (user.getUniqueId() == null) return;
// Clear inventory if required // Clear inventory if required
Players playerData = players.getPlayer(user.getUniqueId()); Players playerData = players.getPlayer(user.getUniqueId());
if (playerData.getPendingKicks().contains(world.getName())) { if (playerData != null && playerData.getPendingKicks().contains(world.getName())) {
if (plugin.getIWM().isOnLeaveResetEnderChest(world)) { if (plugin.getIWM().isOnLeaveResetEnderChest(world)) {
user.getPlayer().getEnderChest().clear(); user.getPlayer().getEnderChest().clear();
} }
@ -214,13 +215,13 @@ public class JoinLeaveListener implements Listener {
// Call Protection Range Change event. Does not support cancelling. // Call Protection Range Change event. Does not support cancelling.
IslandEvent.builder() IslandEvent.builder()
.island(island) .island(island)
.location(island.getCenter()) .location(island.getCenter())
.reason(IslandEvent.Reason.RANGE_CHANGE) .reason(IslandEvent.Reason.RANGE_CHANGE)
.involvedPlayer(user.getUniqueId()) .involvedPlayer(user.getUniqueId())
.admin(true) .admin(true)
.protectionRange(range, oldRange) .protectionRange(range, oldRange)
.build(); .build();
} }
} }
}); });

View File

@ -103,8 +103,9 @@ public class PlayersManager {
/** /**
* Get player by UUID. Adds player to cache if not in there already * Get player by UUID. Adds player to cache if not in there already
* @param uuid of player * @param uuid of player
* @return player object or null if it does not exist * @return player object or null if it does not exist, for example the UUID is null
*/ */
@Nullable
public Players getPlayer(UUID uuid){ public Players getPlayer(UUID uuid){
if (!playerCache.containsKey(uuid)) { if (!playerCache.containsKey(uuid)) {
addPlayer(uuid); addPlayer(uuid);