From 4df6669131ffa4ff41aee93689f83a8ab4c0c778 Mon Sep 17 00:00:00 2001 From: Magnus Ulf Date: Mon, 11 Feb 2019 17:26:30 +0100 Subject: [PATCH] More null debug --- .../massivecraft/massivecore/mixin/MixinPlayed.java | 6 ++++++ .../massivecore/store/EntityInternal.java | 6 ++++++ .../massivecraft/massivecore/store/SenderEntity.java | 12 ++++++------ src/com/massivecraft/massivecore/util/IdUtil.java | 1 + 4 files changed, 19 insertions(+), 6 deletions(-) diff --git a/src/com/massivecraft/massivecore/mixin/MixinPlayed.java b/src/com/massivecraft/massivecore/mixin/MixinPlayed.java index dd8da146..adb766a2 100644 --- a/src/com/massivecraft/massivecore/mixin/MixinPlayed.java +++ b/src/com/massivecraft/massivecore/mixin/MixinPlayed.java @@ -24,16 +24,19 @@ public class MixinPlayed extends Mixin public boolean isOnline(Object senderObject) { + if (senderObject == null) throw new NullPointerException("senderObject"); return IdUtil.isOnline(senderObject); } public boolean isOffline(Object senderObject) { + if (senderObject == null) throw new NullPointerException("senderObject"); return ! this.isOnline(senderObject); } public Long getFirstPlayed(Object senderObject) { + if (senderObject == null) throw new NullPointerException("senderObject"); if (MUtil.isNpc(senderObject)) return null; UUID uuid = IdUtil.getUuid(senderObject); @@ -49,6 +52,7 @@ public class MixinPlayed extends Mixin public Long getLastPlayed(Object senderObject) { + if (senderObject == null) throw new NullPointerException("senderObject"); //if (this.isOnline(senderObject)) return System.currentTimeMillis(); // We do in fact NOT want this commented out behavior // It's important we can check the previous played time on join! @@ -68,12 +72,14 @@ public class MixinPlayed extends Mixin public boolean hasPlayedBefore(Object senderObject) { + if (senderObject == null) throw new NullPointerException("senderObject"); Long firstPlayed = this.getFirstPlayed(senderObject); return firstPlayed != null && firstPlayed != 0; } public String getIp(Object senderObject) { + if (senderObject == null) throw new NullPointerException("senderObject"); CommandSender sender = IdUtil.getSender(senderObject); if (MUtil.isntPlayer(senderObject)) return null; return MUtil.getIp(sender); diff --git a/src/com/massivecraft/massivecore/store/EntityInternal.java b/src/com/massivecraft/massivecore/store/EntityInternal.java index f9a4004e..fe6be334 100644 --- a/src/com/massivecraft/massivecore/store/EntityInternal.java +++ b/src/com/massivecraft/massivecore/store/EntityInternal.java @@ -39,6 +39,12 @@ public class EntityInternal> implements Identified { return this.id; } + public String getIdOrThrow() + { + String id = this.getId(); + if (id == null) throw new NullPointerException("id"); + return id; + } // -------------------------------------------- // // ATTACH AND DETACH diff --git a/src/com/massivecraft/massivecore/store/SenderEntity.java b/src/com/massivecraft/massivecore/store/SenderEntity.java index 43249a5e..c6b8197b 100644 --- a/src/com/massivecraft/massivecore/store/SenderEntity.java +++ b/src/com/massivecraft/massivecore/store/SenderEntity.java @@ -190,32 +190,32 @@ public abstract class SenderEntity> extends Entity public boolean isOnline() { - return MixinPlayed.get().isOnline(this.getId()); + return MixinPlayed.get().isOnline(this.getIdOrThrow()); } public boolean isOffline() { - return MixinPlayed.get().isOffline(this.getId()); + return MixinPlayed.get().isOffline(this.getIdOrThrow()); } public Long getLastPlayed() { - return MixinPlayed.get().getLastPlayed(this.getId()); + return MixinPlayed.get().getLastPlayed(this.getIdOrThrow()); } public Long getFirstPlayed() { - return MixinPlayed.get().getFirstPlayed(this.getId()); + return MixinPlayed.get().getFirstPlayed(this.getIdOrThrow()); } public boolean hasPlayedBefore() { - return MixinPlayed.get().hasPlayedBefore(this.getId()); + return MixinPlayed.get().hasPlayedBefore(this.getIdOrThrow()); } public String getIp() { - return MixinPlayed.get().getIp(this.getId()); + return MixinPlayed.get().getIp(this.getIdOrThrow()); } public boolean isVisible() diff --git a/src/com/massivecraft/massivecore/util/IdUtil.java b/src/com/massivecraft/massivecore/util/IdUtil.java index a2beb2ac..bb4c26f1 100644 --- a/src/com/massivecraft/massivecore/util/IdUtil.java +++ b/src/com/massivecraft/massivecore/util/IdUtil.java @@ -800,6 +800,7 @@ public class IdUtil implements Listener, Runnable public static boolean isOnline(Object senderObject) { + if (senderObject == null) throw new NullPointerException("senderObject"); // Fix the id ... String id = getId(senderObject); if (id == null) return false;