From 90b741ed8d74b8130b722834bc801ab777abdfa0 Mon Sep 17 00:00:00 2001 From: LMBishop <13875753+LMBishop@users.noreply.github.com> Date: Fri, 12 Jul 2019 16:18:04 +0100 Subject: 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 --- .../java/com/leonardobishop/quests/events/EventPlayerLeave.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) 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()); } -- cgit v1.2.3-70-g09d2