aboutsummaryrefslogtreecommitdiffstats
path: root/src/main/java/com/leonardobishop/quests
diff options
context:
space:
mode:
authorLMBishop <13875753+LMBishop@users.noreply.github.com>2019-07-12 16:18:04 +0100
committerLMBishop <13875753+LMBishop@users.noreply.github.com>2019-07-12 16:18:04 +0100
commit90b741ed8d74b8130b722834bc801ab777abdfa0 (patch)
tree9f0e55fb0feb4a0cab0d98e8cfe0c9d3d0ac389a /src/main/java/com/leonardobishop/quests
parent71f118f233bdd24b4fdadfa6f2f38ff2e6d6b246 (diff)
Resolved ConcurrentModificationException when player quits
- Removing the player from the QPlayerManager will now be done synchronously after their data has been saved to disk asynchronously. - Closes #41, #42
Diffstat (limited to 'src/main/java/com/leonardobishop/quests')
-rw-r--r--src/main/java/com/leonardobishop/quests/events/EventPlayerLeave.java7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/main/java/com/leonardobishop/quests/events/EventPlayerLeave.java b/src/main/java/com/leonardobishop/quests/events/EventPlayerLeave.java
index c121ef64..dbe7a6d6 100644
--- a/src/main/java/com/leonardobishop/quests/events/EventPlayerLeave.java
+++ b/src/main/java/com/leonardobishop/quests/events/EventPlayerLeave.java
@@ -17,7 +17,12 @@ public class EventPlayerLeave implements Listener {
@Override
public void run() {
Quests.getPlayerManager().getPlayer(playerUuid).getQuestProgressFile().saveToDisk();
- Quests.getPlayerManager().removePlayer(playerUuid);
+ new BukkitRunnable() {
+ @Override
+ public void run() {
+ Quests.getPlayerManager().removePlayer(playerUuid);
+ }
+ }.runTask(Quests.getInstance());
}
}.runTaskAsynchronously(Quests.getInstance());
}