diff options
| author | LMBishop <13875753+LMBishop@users.noreply.github.com> | 2019-07-12 16:18:04 +0100 |
|---|---|---|
| committer | LMBishop <13875753+LMBishop@users.noreply.github.com> | 2019-07-12 16:18:04 +0100 |
| commit | 90b741ed8d74b8130b722834bc801ab777abdfa0 (patch) | |
| tree | 9f0e55fb0feb4a0cab0d98e8cfe0c9d3d0ac389a /src/main | |
| parent | 71f118f233bdd24b4fdadfa6f2f38ff2e6d6b246 (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')
| -rw-r--r-- | src/main/java/com/leonardobishop/quests/events/EventPlayerLeave.java | 7 |
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()); } |
