nossr50 6 years ago
parent
commit
0638f4c437

+ 1 - 1
pom.xml

@@ -2,7 +2,7 @@
     <modelVersion>4.0.0</modelVersion>
     <modelVersion>4.0.0</modelVersion>
     <groupId>com.gmail.nossr50.mcMMO</groupId>
     <groupId>com.gmail.nossr50.mcMMO</groupId>
     <artifactId>mcMMO</artifactId>
     <artifactId>mcMMO</artifactId>
-    <version>2.1.69-SNAPSHOT</version>
+    <version>2.1.69</version>
     <name>mcMMO</name>
     <name>mcMMO</name>
     <url>https://github.com/mcMMO-Dev/mcMMO</url>
     <url>https://github.com/mcMMO-Dev/mcMMO</url>
     <scm>
     <scm>

+ 2 - 2
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.");
                         " Check your console for errors and inspect your DB for issues.");
             }
             }
 
 
+        } else {
+            saveAttempts = 0;
         }
         }
-
-        saveAttempts = 0;
     }
     }
 
 
     public String getPlayerName() {
     public String getPlayerName() {

+ 3 - 1
src/main/java/com/gmail/nossr50/listeners/PlayerListener.java

@@ -502,7 +502,9 @@ public class PlayerListener implements Listener {
         }
         }
 
 
         McMMOPlayer mcMMOPlayer = UserManager.getPlayer(player);
         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);
     }
     }
 
 
     /**
     /**

+ 1 - 1
src/main/java/com/gmail/nossr50/mcMMO.java

@@ -332,7 +332,7 @@ public class mcMMO extends JavaPlugin {
             placeStore.saveAll();       // Save our metadata
             placeStore.saveAll();       // Save our metadata
             placeStore.cleanUp();       // Cleanup empty metadata stores
             placeStore.cleanUp();       // Cleanup empty metadata stores
         }
         }
-        catch (NullPointerException e) { e.printStackTrace(); }
+        catch (Exception e) { e.printStackTrace(); }
 
 
         debug("Canceling all tasks...");
         debug("Canceling all tasks...");
         getServer().getScheduler().cancelTasks(this); // This removes our tasks
         getServer().getScheduler().cancelTasks(this); // This removes our tasks

+ 2 - 1
src/main/java/com/gmail/nossr50/util/player/UserManager.java

@@ -33,7 +33,8 @@ public final class UserManager {
     }
     }
 
 
     public static void cleanupPlayer(McMMOPlayer mcMMOPlayer) {
     public static void cleanupPlayer(McMMOPlayer mcMMOPlayer) {
-        playerDataSet.remove(mcMMOPlayer);
+        if(playerDataSet != null && playerDataSet.contains(mcMMOPlayer))
+            playerDataSet.remove(mcMMOPlayer);
     }
     }
 
 
     /**
     /**