diff --git a/src/main/java/com/craftaro/skyblock/bank/BankManager.java b/src/main/java/com/craftaro/skyblock/bank/BankManager.java index d00e2b00..1c4a2bd4 100644 --- a/src/main/java/com/craftaro/skyblock/bank/BankManager.java +++ b/src/main/java/com/craftaro/skyblock/bank/BankManager.java @@ -5,6 +5,7 @@ import com.craftaro.core.hooks.economies.Economy; import com.craftaro.skyblock.SkyBlock; import com.craftaro.skyblock.config.FileManager; import com.craftaro.skyblock.island.Island; +import com.craftaro.skyblock.playerdata.PlayerData; import org.bukkit.configuration.file.FileConfiguration; import org.bukkit.entity.Player; @@ -12,6 +13,7 @@ import java.util.ArrayList; import java.util.Calendar; import java.util.HashMap; import java.util.List; +import java.util.Map; import java.util.UUID; public class BankManager { @@ -71,8 +73,11 @@ public class BankManager { } private void loadTransactions() { - for (UUID uid : SkyBlock.getInstance().getPlayerDataManager().getPlayerData().keySet()) { - this.log.put(uid, SkyBlock.getInstance().getPlayerDataManager().getPlayerData().get(uid).getTransactions()); + Map playerDataStorage = SkyBlock.getInstance().getPlayerDataManager().getPlayerData(); + synchronized (playerDataStorage) { + for (UUID uid : playerDataStorage.keySet()) { + this.log.put(uid, playerDataStorage.get(uid).getTransactions()); + } } } diff --git a/src/main/java/com/craftaro/skyblock/confirmation/ConfirmationTask.java b/src/main/java/com/craftaro/skyblock/confirmation/ConfirmationTask.java index 296b1b02..3e84d47f 100644 --- a/src/main/java/com/craftaro/skyblock/confirmation/ConfirmationTask.java +++ b/src/main/java/com/craftaro/skyblock/confirmation/ConfirmationTask.java @@ -4,6 +4,9 @@ import com.craftaro.skyblock.playerdata.PlayerData; import com.craftaro.skyblock.playerdata.PlayerDataManager; import org.bukkit.scheduler.BukkitRunnable; +import java.util.Map; +import java.util.UUID; + public class ConfirmationTask extends BukkitRunnable { private final PlayerDataManager playerDataManager; @@ -13,9 +16,12 @@ public class ConfirmationTask extends BukkitRunnable { @Override public void run() { - for (PlayerData playerData : this.playerDataManager.getPlayerData().values()) { - if (playerData.getConfirmationTime() > 0) { - playerData.setConfirmationTime(playerData.getConfirmationTime() - 1); + Map playerDataStorage = this.playerDataManager.getPlayerData(); + synchronized (playerDataStorage) { + for (PlayerData playerData : playerDataStorage.values()) { + if (playerData.getConfirmationTime() > 0) { + playerData.setConfirmationTime(playerData.getConfirmationTime() - 1); + } } } } diff --git a/src/main/java/com/craftaro/skyblock/island/IslandManager.java b/src/main/java/com/craftaro/skyblock/island/IslandManager.java index 071d7f4a..37c01ed9 100644 --- a/src/main/java/com/craftaro/skyblock/island/IslandManager.java +++ b/src/main/java/com/craftaro/skyblock/island/IslandManager.java @@ -1189,14 +1189,16 @@ public class IslandManager { Map playerDataStorage = this.plugin.getPlayerDataManager().getPlayerData(); Set islandVisitors = new HashSet<>(); - for (UUID playerDataStorageList : playerDataStorage.keySet()) { - PlayerData playerData = playerDataStorage.get(playerDataStorageList); - UUID islandOwnerUUID = playerData.getIsland(); + synchronized (playerDataStorage) { + for (UUID playerDataStorageList : playerDataStorage.keySet()) { + PlayerData playerData = playerDataStorage.get(playerDataStorageList); + UUID islandOwnerUUID = playerData.getIsland(); - if (islandOwnerUUID != null && islandOwnerUUID.equals(island.getOwnerUUID())) { - if (playerData.getOwner() == null || !playerData.getOwner().equals(island.getOwnerUUID())) { - if (Bukkit.getServer().getPlayer(playerDataStorageList) != null) { - islandVisitors.add(playerDataStorageList); + if (islandOwnerUUID != null && islandOwnerUUID.equals(island.getOwnerUUID())) { + if (playerData.getOwner() == null || !playerData.getOwner().equals(island.getOwnerUUID())) { + if (Bukkit.getServer().getPlayer(playerDataStorageList) != null) { + islandVisitors.add(playerDataStorageList); + } } } } diff --git a/src/main/java/com/craftaro/skyblock/visit/VisitTask.java b/src/main/java/com/craftaro/skyblock/visit/VisitTask.java index b933dc5a..1ec0bc34 100644 --- a/src/main/java/com/craftaro/skyblock/visit/VisitTask.java +++ b/src/main/java/com/craftaro/skyblock/visit/VisitTask.java @@ -4,6 +4,9 @@ import com.craftaro.skyblock.playerdata.PlayerData; import com.craftaro.skyblock.playerdata.PlayerDataManager; import org.bukkit.scheduler.BukkitRunnable; +import java.util.Map; +import java.util.UUID; + public class VisitTask extends BukkitRunnable { private final PlayerDataManager playerDataManager; @@ -13,9 +16,12 @@ public class VisitTask extends BukkitRunnable { @Override public void run() { - for (PlayerData playerData : this.playerDataManager.getPlayerData().values()) { - if (playerData.getIsland() != null) { - playerData.setVisitTime(playerData.getVisitTime() + 1); + Map playerDataStorage = this.playerDataManager.getPlayerData(); + synchronized (playerDataStorage) { + for (PlayerData playerData : playerDataStorage.values()) { + if (playerData.getIsland() != null) { + playerData.setVisitTime(playerData.getVisitTime() + 1); + } } } }