diff --git a/pom.xml b/pom.xml
index 6e46fabb5..313aa80ed 100755
--- a/pom.xml
+++ b/pom.xml
@@ -2,7 +2,7 @@
4.0.0
com.gmail.nossr50.mcMMO
mcMMO
- 2.1.69-SNAPSHOT
+ 2.1.69
mcMMO
https://github.com/mcMMO-Dev/mcMMO
diff --git a/src/main/java/com/gmail/nossr50/datatypes/player/PlayerProfile.java b/src/main/java/com/gmail/nossr50/datatypes/player/PlayerProfile.java
index ba3567363..a9582c095 100644
--- a/src/main/java/com/gmail/nossr50/datatypes/player/PlayerProfile.java
+++ b/src/main/java/com/gmail/nossr50/datatypes/player/PlayerProfile.java
@@ -144,9 +144,9 @@ public class PlayerProfile {
" Check your console for errors and inspect your DB for issues.");
}
+ } else {
+ saveAttempts = 0;
}
-
- saveAttempts = 0;
}
public String getPlayerName() {
diff --git a/src/main/java/com/gmail/nossr50/listeners/PlayerListener.java b/src/main/java/com/gmail/nossr50/listeners/PlayerListener.java
index ff9c6cd46..6b29f41e8 100644
--- a/src/main/java/com/gmail/nossr50/listeners/PlayerListener.java
+++ b/src/main/java/com/gmail/nossr50/listeners/PlayerListener.java
@@ -502,7 +502,9 @@ public class PlayerListener implements Listener {
}
McMMOPlayer mcMMOPlayer = UserManager.getPlayer(player);
- mcMMOPlayer.logout(false);
+ //There's an issue with using Async saves on player quit
+ //Basically there are conditions in which an async task does not execute fast enough to save the data if the server shutdown shortly after this task was scheduled
+ mcMMOPlayer.logout(true);
}
/**
diff --git a/src/main/java/com/gmail/nossr50/mcMMO.java b/src/main/java/com/gmail/nossr50/mcMMO.java
index 6aa845ae7..3e20e8f15 100644
--- a/src/main/java/com/gmail/nossr50/mcMMO.java
+++ b/src/main/java/com/gmail/nossr50/mcMMO.java
@@ -332,7 +332,7 @@ public class mcMMO extends JavaPlugin {
placeStore.saveAll(); // Save our metadata
placeStore.cleanUp(); // Cleanup empty metadata stores
}
- catch (NullPointerException e) { e.printStackTrace(); }
+ catch (Exception e) { e.printStackTrace(); }
debug("Canceling all tasks...");
getServer().getScheduler().cancelTasks(this); // This removes our tasks
diff --git a/src/main/java/com/gmail/nossr50/util/player/UserManager.java b/src/main/java/com/gmail/nossr50/util/player/UserManager.java
index d20f39356..c635300c5 100644
--- a/src/main/java/com/gmail/nossr50/util/player/UserManager.java
+++ b/src/main/java/com/gmail/nossr50/util/player/UserManager.java
@@ -33,7 +33,8 @@ public final class UserManager {
}
public static void cleanupPlayer(McMMOPlayer mcMMOPlayer) {
- playerDataSet.remove(mcMMOPlayer);
+ if(playerDataSet != null && playerDataSet.contains(mcMMOPlayer))
+ playerDataSet.remove(mcMMOPlayer);
}
/**