From 7cd8e8bf5b483166f359400298d5160c6256d1e8 Mon Sep 17 00:00:00 2001 From: Luck Date: Wed, 3 Apr 2019 10:01:18 +0100 Subject: [PATCH] Fix NPE in Vault contextForLookup method Fixes CodeCrafter47/BungeeTabListPlus#415 --- .../luckperms/bukkit/vault/LuckPermsVaultPermission.java | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/bukkit/src/main/java/me/lucko/luckperms/bukkit/vault/LuckPermsVaultPermission.java b/bukkit/src/main/java/me/lucko/luckperms/bukkit/vault/LuckPermsVaultPermission.java index 0dca1089d..9c89fa1df 100644 --- a/bukkit/src/main/java/me/lucko/luckperms/bukkit/vault/LuckPermsVaultPermission.java +++ b/bukkit/src/main/java/me/lucko/luckperms/bukkit/vault/LuckPermsVaultPermission.java @@ -49,9 +49,11 @@ import net.milkbowl.vault.permission.Permission; import org.bukkit.Bukkit; import org.bukkit.entity.Player; +import org.checkerframework.checker.nullness.qual.Nullable; import java.util.Arrays; import java.util.Objects; +import java.util.Optional; import java.util.UUID; /** @@ -362,10 +364,10 @@ public class LuckPermsVaultPermission extends AbstractVaultPermission { } // utility method for getting a contexts instance for a given vault lookup. - Contexts contextForLookup(UUID uuid, String world) { + Contexts contextForLookup(@Nullable UUID uuid, @Nullable String world) { MutableContextSet context; - Player player = this.plugin.getBootstrap().getPlayer(uuid).orElse(null); + Player player = Optional.ofNullable(uuid).flatMap(u -> this.plugin.getBootstrap().getPlayer(u)).orElse(null); if (player != null) { context = this.plugin.getContextManager().getApplicableContext(player).mutableCopy(); } else { @@ -397,7 +399,7 @@ public class LuckPermsVaultPermission extends AbstractVaultPermission { boolean op = false; if (player != null) { op = player.isOp(); - } else if (uuid.version() == 2) { // npc + } else if (uuid != null && uuid.version() == 2) { // npc op = this.plugin.getConfiguration().get(ConfigKeys.VAULT_NPC_OP_STATUS); }