From 49f1154e6581960c6d0792827134018f574e3baf Mon Sep 17 00:00:00 2001 From: nossr50 Date: Thu, 18 Mar 2021 15:15:43 -0700 Subject: [PATCH] NPE fix for McMMOPlayerExperienceEvent --- Changelog.txt | 1 + .../events/experience/McMMOPlayerExperienceEvent.java | 8 +++++++- src/main/java/com/gmail/nossr50/mcMMO.java | 9 +++++---- 3 files changed, 13 insertions(+), 5 deletions(-) diff --git a/Changelog.txt b/Changelog.txt index 9c4980063..da135f2bc 100644 --- a/Changelog.txt +++ b/Changelog.txt @@ -6,6 +6,7 @@ Version 2.1.182 Added some safety so that mcMMO automatic save interval is never more frequent than 1 minute Removed a few silent exceptions for scoreboards & mcMMO Added warning about UltraPermissions to mcMMO + Fixed a potential NPE in McMMOPlayerExperienceEvent Version 2.1.181 mcMMO no longer pointlessly tries to check for missing UUIDs for FlatFile database diff --git a/src/main/java/com/gmail/nossr50/events/experience/McMMOPlayerExperienceEvent.java b/src/main/java/com/gmail/nossr50/events/experience/McMMOPlayerExperienceEvent.java index 73829b7a0..44ad7d078 100644 --- a/src/main/java/com/gmail/nossr50/events/experience/McMMOPlayerExperienceEvent.java +++ b/src/main/java/com/gmail/nossr50/events/experience/McMMOPlayerExperienceEvent.java @@ -29,7 +29,13 @@ public abstract class McMMOPlayerExperienceEvent extends PlayerEvent implements protected McMMOPlayerExperienceEvent(Player player, PrimarySkillType skill, XPGainReason xpGainReason) { super(player); this.skill = skill; - this.skillLevel = UserManager.getPlayer(player).getSkillLevel(skill); + + if(UserManager.getPlayer(player) != null) { + this.skillLevel = UserManager.getPlayer(player).getSkillLevel(skill); + } else { + this.skillLevel = 0; + } + this.xpGainReason = xpGainReason; } diff --git a/src/main/java/com/gmail/nossr50/mcMMO.java b/src/main/java/com/gmail/nossr50/mcMMO.java index 25dcfea14..335a7afbc 100644 --- a/src/main/java/com/gmail/nossr50/mcMMO.java +++ b/src/main/java/com/gmail/nossr50/mcMMO.java @@ -74,10 +74,6 @@ import java.util.ArrayList; import java.util.List; public class mcMMO extends JavaPlugin { - public static final String ULTRA_PERMISSONS = "UltraPermissons"; - public static final String UP_WARNING_2 = "Stop using " + ULTRA_PERMISSONS + " with mcMMO immediately!"; - public static final String UP_WARNING_1 = "mcMMO has detected " + ULTRA_PERMISSONS + " on your server, users have reported a severe plugin conflict between these two plugins which severely degrades server performance"; - public static final String UP_WARNING_3 = "The author of UltraPermissions has passed away and its unlikely this issue will ever be solved"; /* Managers */ private static PlatformManager platformManager; private static ChunkManager placeStore; @@ -152,6 +148,11 @@ public class mcMMO extends JavaPlugin { public static FixedMetadataValue metadataValue; + public static final String ULTRA_PERMISSONS = "UltraPermissons"; + public static final String UP_WARNING_2 = "Stop using " + ULTRA_PERMISSONS + " with mcMMO immediately!"; + public static final String UP_WARNING_1 = "mcMMO has detected " + ULTRA_PERMISSONS + " on your server, users have reported a severe plugin conflict between these two plugins which severely degrades server performance"; + public static final String UP_WARNING_3 = "The author of UltraPermissions has passed away and its unlikely this issue will ever be solved"; + public mcMMO() { p = this; }