From 1505ccfeca0ec4317fabbd9ea061057b273a0cf5 Mon Sep 17 00:00:00 2001 From: fullwall Date: Sat, 27 Jun 2020 15:17:29 +0800 Subject: [PATCH] Extra NPE check --- .../java/net/citizensnpcs/nms/v1_10_R1/util/NMSImpl.java | 8 ++++++-- .../java/net/citizensnpcs/nms/v1_11_R1/util/NMSImpl.java | 8 ++++++-- .../java/net/citizensnpcs/nms/v1_12_R1/util/NMSImpl.java | 8 ++++++-- .../java/net/citizensnpcs/nms/v1_13_R2/util/NMSImpl.java | 8 ++++++-- .../java/net/citizensnpcs/nms/v1_14_R1/util/NMSImpl.java | 8 ++++++-- .../java/net/citizensnpcs/nms/v1_15_R1/util/NMSImpl.java | 8 ++++++-- .../java/net/citizensnpcs/nms/v1_16_R1/util/NMSImpl.java | 8 ++++++-- .../java/net/citizensnpcs/nms/v1_8_R3/util/NMSImpl.java | 3 ++- 8 files changed, 44 insertions(+), 15 deletions(-) diff --git a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/util/NMSImpl.java b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/util/NMSImpl.java index 14b62af64..10cbcf8bc 100644 --- a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/util/NMSImpl.java +++ b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/util/NMSImpl.java @@ -367,12 +367,16 @@ public class NMSImpl implements NMSBridge { @Override public NPC getNPC(org.bukkit.entity.Entity entity) { - return getHandle(entity) instanceof NPCHolder ? ((NPCHolder) getHandle(entity)).getNPC() : null; + Entity handle = getHandle(entity); + return handle instanceof NPCHolder ? ((NPCHolder) handle).getNPC() : null; } @Override public List getPassengers(org.bukkit.entity.Entity entity) { - return Lists.transform(NMSImpl.getHandle(entity).passengers, new Function() { + Entity handle = NMSImpl.getHandle(entity); + if (handle == null || handle.passengers == null) + return Lists.newArrayList(); + return Lists.transform(handle.passengers, new Function() { @Override public org.bukkit.entity.Entity apply(Entity input) { return input.getBukkitEntity(); diff --git a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/util/NMSImpl.java b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/util/NMSImpl.java index e10756513..6338f6f6b 100644 --- a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/util/NMSImpl.java +++ b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/util/NMSImpl.java @@ -386,12 +386,16 @@ public class NMSImpl implements NMSBridge { @Override public NPC getNPC(org.bukkit.entity.Entity entity) { - return getHandle(entity) instanceof NPCHolder ? ((NPCHolder) getHandle(entity)).getNPC() : null; + Entity handle = getHandle(entity); + return handle instanceof NPCHolder ? ((NPCHolder) handle).getNPC() : null; } @Override public List getPassengers(org.bukkit.entity.Entity entity) { - return Lists.transform(NMSImpl.getHandle(entity).passengers, new Function() { + Entity handle = NMSImpl.getHandle(entity); + if (handle == null || handle.passengers == null) + return Lists.newArrayList(); + return Lists.transform(handle.passengers, new Function() { @Override public org.bukkit.entity.Entity apply(Entity input) { return input.getBukkitEntity(); diff --git a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/util/NMSImpl.java b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/util/NMSImpl.java index f094620dd..1846b73cf 100644 --- a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/util/NMSImpl.java +++ b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/util/NMSImpl.java @@ -390,12 +390,16 @@ public class NMSImpl implements NMSBridge { @Override public NPC getNPC(org.bukkit.entity.Entity entity) { - return getHandle(entity) instanceof NPCHolder ? ((NPCHolder) getHandle(entity)).getNPC() : null; + Entity handle = getHandle(entity); + return handle instanceof NPCHolder ? ((NPCHolder) handle).getNPC() : null; } @Override public List getPassengers(org.bukkit.entity.Entity entity) { - return Lists.transform(NMSImpl.getHandle(entity).passengers, new Function() { + Entity handle = NMSImpl.getHandle(entity); + if (handle == null || handle.passengers == null) + return Lists.newArrayList(); + return Lists.transform(handle.passengers, new Function() { @Override public org.bukkit.entity.Entity apply(Entity input) { return input.getBukkitEntity(); diff --git a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/util/NMSImpl.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/util/NMSImpl.java index 5b9beb1a8..b9193ecf0 100644 --- a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/util/NMSImpl.java +++ b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/util/NMSImpl.java @@ -412,12 +412,16 @@ public class NMSImpl implements NMSBridge { @Override public NPC getNPC(org.bukkit.entity.Entity entity) { - return getHandle(entity) instanceof NPCHolder ? ((NPCHolder) getHandle(entity)).getNPC() : null; + Entity handle = getHandle(entity); + return handle instanceof NPCHolder ? ((NPCHolder) handle).getNPC() : null; } @Override public List getPassengers(org.bukkit.entity.Entity entity) { - return Lists.transform(NMSImpl.getHandle(entity).passengers, new Function() { + Entity handle = NMSImpl.getHandle(entity); + if (handle == null || handle.passengers == null) + return Lists.newArrayList(); + return Lists.transform(handle.passengers, new Function() { @Override public org.bukkit.entity.Entity apply(Entity input) { return input.getBukkitEntity(); diff --git a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/util/NMSImpl.java b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/util/NMSImpl.java index 97ca2b9bd..d2e97a76e 100644 --- a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/util/NMSImpl.java +++ b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/util/NMSImpl.java @@ -448,12 +448,16 @@ public class NMSImpl implements NMSBridge { @Override public NPC getNPC(org.bukkit.entity.Entity entity) { - return getHandle(entity) instanceof NPCHolder ? ((NPCHolder) getHandle(entity)).getNPC() : null; + Entity handle = getHandle(entity); + return handle instanceof NPCHolder ? ((NPCHolder) handle).getNPC() : null; } @Override public List getPassengers(org.bukkit.entity.Entity entity) { - return Lists.transform(NMSImpl.getHandle(entity).passengers, new Function() { + Entity handle = NMSImpl.getHandle(entity); + if (handle == null || handle.passengers == null) + return Lists.newArrayList(); + return Lists.transform(handle.passengers, new Function() { @Override public org.bukkit.entity.Entity apply(Entity input) { return input.getBukkitEntity(); diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/util/NMSImpl.java b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/util/NMSImpl.java index 20b621dac..2c4684690 100644 --- a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/util/NMSImpl.java +++ b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/util/NMSImpl.java @@ -455,12 +455,16 @@ public class NMSImpl implements NMSBridge { @Override public NPC getNPC(org.bukkit.entity.Entity entity) { - return getHandle(entity) instanceof NPCHolder ? ((NPCHolder) getHandle(entity)).getNPC() : null; + Entity handle = getHandle(entity); + return handle instanceof NPCHolder ? ((NPCHolder) handle).getNPC() : null; } @Override public List getPassengers(org.bukkit.entity.Entity entity) { - return Lists.transform(NMSImpl.getHandle(entity).passengers, new Function() { + Entity handle = NMSImpl.getHandle(entity); + if (handle == null || handle.passengers == null) + return Lists.newArrayList(); + return Lists.transform(handle.passengers, new Function() { @Override public org.bukkit.entity.Entity apply(Entity input) { return input.getBukkitEntity(); diff --git a/v1_16_R1/src/main/java/net/citizensnpcs/nms/v1_16_R1/util/NMSImpl.java b/v1_16_R1/src/main/java/net/citizensnpcs/nms/v1_16_R1/util/NMSImpl.java index c07c6bc81..f8e58b92c 100644 --- a/v1_16_R1/src/main/java/net/citizensnpcs/nms/v1_16_R1/util/NMSImpl.java +++ b/v1_16_R1/src/main/java/net/citizensnpcs/nms/v1_16_R1/util/NMSImpl.java @@ -461,12 +461,16 @@ public class NMSImpl implements NMSBridge { @Override public NPC getNPC(org.bukkit.entity.Entity entity) { - return getHandle(entity) instanceof NPCHolder ? ((NPCHolder) getHandle(entity)).getNPC() : null; + Entity handle = getHandle(entity); + return handle instanceof NPCHolder ? ((NPCHolder) handle).getNPC() : null; } @Override public List getPassengers(org.bukkit.entity.Entity entity) { - return Lists.transform(NMSImpl.getHandle(entity).passengers, new Function() { + Entity handle = NMSImpl.getHandle(entity); + if (handle == null || handle.passengers == null) + return Lists.newArrayList(); + return Lists.transform(handle.passengers, new Function() { @Override public org.bukkit.entity.Entity apply(Entity input) { return input.getBukkitEntity(); diff --git a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/util/NMSImpl.java b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/util/NMSImpl.java index 017e29310..7d6878f7b 100644 --- a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/util/NMSImpl.java +++ b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/util/NMSImpl.java @@ -320,7 +320,8 @@ public class NMSImpl implements NMSBridge { @Override public NPC getNPC(org.bukkit.entity.Entity entity) { - return getHandle(entity) instanceof NPCHolder ? ((NPCHolder) getHandle(entity)).getNPC() : null; + Entity handle = getHandle(entity); + return handle instanceof NPCHolder ? ((NPCHolder) handle).getNPC() : null; } @Override