Compare commits

...

5 Commits

Author SHA1 Message Date
Christian Koop 5bcfbde8c4
Merge branch 'development' 2024-04-06 21:14:02 +02:00
Christian Koop 4c4b6fe6dd
Release v3.0.6 2024-04-06 21:13:57 +02:00
Christian Koop ff12fda7d2
Revert "Bump com.sk89q.worldedit:worldedit-bukkit from 7.2.20 to 7.3.0 (#37)"
This reverts commit 018e26c1b0.

Apparently 7.3 now requires java language features newer than Java 8... We can't upgrade right now
2024-04-06 21:12:41 +02:00
Christian Koop 4dffd7e2a8
fix: Fix ConcurrentModificationException on PlayerData-Storage (#39) 2024-04-06 21:11:13 +02:00
dependabot[bot] 018e26c1b0
Bump com.sk89q.worldedit:worldedit-bukkit from 7.2.20 to 7.3.0 (#37)
Bumps com.sk89q.worldedit:worldedit-bukkit from 7.2.20 to 7.3.0.

---
updated-dependencies:
- dependency-name: com.sk89q.worldedit:worldedit-bukkit
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-04-06 21:06:14 +02:00
5 changed files with 35 additions and 16 deletions

View File

@ -6,7 +6,7 @@
<groupId>com.craftaro</groupId> <groupId>com.craftaro</groupId>
<artifactId>FabledSkyBlock</artifactId> <artifactId>FabledSkyBlock</artifactId>
<version>3.0.5</version> <version>3.0.6</version>
<name>FabledSkyBlock</name> <name>FabledSkyBlock</name>
<description>Bring your server's SkyBlock experience to the next level with the ability to fine-tune island settings, create custom islands, view leaderboards, and much more</description> <description>Bring your server's SkyBlock experience to the next level with the ability to fine-tune island settings, create custom islands, view leaderboards, and much more</description>

View File

@ -5,6 +5,7 @@ import com.craftaro.core.hooks.economies.Economy;
import com.craftaro.skyblock.SkyBlock; import com.craftaro.skyblock.SkyBlock;
import com.craftaro.skyblock.config.FileManager; import com.craftaro.skyblock.config.FileManager;
import com.craftaro.skyblock.island.Island; import com.craftaro.skyblock.island.Island;
import com.craftaro.skyblock.playerdata.PlayerData;
import org.bukkit.configuration.file.FileConfiguration; import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
@ -12,6 +13,7 @@ import java.util.ArrayList;
import java.util.Calendar; import java.util.Calendar;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map;
import java.util.UUID; import java.util.UUID;
public class BankManager { public class BankManager {
@ -71,8 +73,11 @@ public class BankManager {
} }
private void loadTransactions() { private void loadTransactions() {
for (UUID uid : SkyBlock.getInstance().getPlayerDataManager().getPlayerData().keySet()) { Map<UUID, PlayerData> playerDataStorage = SkyBlock.getInstance().getPlayerDataManager().getPlayerData();
this.log.put(uid, SkyBlock.getInstance().getPlayerDataManager().getPlayerData().get(uid).getTransactions()); synchronized (playerDataStorage) {
for (UUID uid : playerDataStorage.keySet()) {
this.log.put(uid, playerDataStorage.get(uid).getTransactions());
}
} }
} }

View File

@ -4,6 +4,9 @@ import com.craftaro.skyblock.playerdata.PlayerData;
import com.craftaro.skyblock.playerdata.PlayerDataManager; import com.craftaro.skyblock.playerdata.PlayerDataManager;
import org.bukkit.scheduler.BukkitRunnable; import org.bukkit.scheduler.BukkitRunnable;
import java.util.Map;
import java.util.UUID;
public class ConfirmationTask extends BukkitRunnable { public class ConfirmationTask extends BukkitRunnable {
private final PlayerDataManager playerDataManager; private final PlayerDataManager playerDataManager;
@ -13,9 +16,12 @@ public class ConfirmationTask extends BukkitRunnable {
@Override @Override
public void run() { public void run() {
for (PlayerData playerData : this.playerDataManager.getPlayerData().values()) { Map<UUID, PlayerData> playerDataStorage = this.playerDataManager.getPlayerData();
if (playerData.getConfirmationTime() > 0) { synchronized (playerDataStorage) {
playerData.setConfirmationTime(playerData.getConfirmationTime() - 1); for (PlayerData playerData : playerDataStorage.values()) {
if (playerData.getConfirmationTime() > 0) {
playerData.setConfirmationTime(playerData.getConfirmationTime() - 1);
}
} }
} }
} }

View File

@ -1189,14 +1189,16 @@ public class IslandManager {
Map<UUID, PlayerData> playerDataStorage = this.plugin.getPlayerDataManager().getPlayerData(); Map<UUID, PlayerData> playerDataStorage = this.plugin.getPlayerDataManager().getPlayerData();
Set<UUID> islandVisitors = new HashSet<>(); Set<UUID> islandVisitors = new HashSet<>();
for (UUID playerDataStorageList : playerDataStorage.keySet()) { synchronized (playerDataStorage) {
PlayerData playerData = playerDataStorage.get(playerDataStorageList); for (UUID playerDataStorageList : playerDataStorage.keySet()) {
UUID islandOwnerUUID = playerData.getIsland(); PlayerData playerData = playerDataStorage.get(playerDataStorageList);
UUID islandOwnerUUID = playerData.getIsland();
if (islandOwnerUUID != null && islandOwnerUUID.equals(island.getOwnerUUID())) { if (islandOwnerUUID != null && islandOwnerUUID.equals(island.getOwnerUUID())) {
if (playerData.getOwner() == null || !playerData.getOwner().equals(island.getOwnerUUID())) { if (playerData.getOwner() == null || !playerData.getOwner().equals(island.getOwnerUUID())) {
if (Bukkit.getServer().getPlayer(playerDataStorageList) != null) { if (Bukkit.getServer().getPlayer(playerDataStorageList) != null) {
islandVisitors.add(playerDataStorageList); islandVisitors.add(playerDataStorageList);
}
} }
} }
} }

View File

@ -4,6 +4,9 @@ import com.craftaro.skyblock.playerdata.PlayerData;
import com.craftaro.skyblock.playerdata.PlayerDataManager; import com.craftaro.skyblock.playerdata.PlayerDataManager;
import org.bukkit.scheduler.BukkitRunnable; import org.bukkit.scheduler.BukkitRunnable;
import java.util.Map;
import java.util.UUID;
public class VisitTask extends BukkitRunnable { public class VisitTask extends BukkitRunnable {
private final PlayerDataManager playerDataManager; private final PlayerDataManager playerDataManager;
@ -13,9 +16,12 @@ public class VisitTask extends BukkitRunnable {
@Override @Override
public void run() { public void run() {
for (PlayerData playerData : this.playerDataManager.getPlayerData().values()) { Map<UUID, PlayerData> playerDataStorage = this.playerDataManager.getPlayerData();
if (playerData.getIsland() != null) { synchronized (playerDataStorage) {
playerData.setVisitTime(playerData.getVisitTime() + 1); for (PlayerData playerData : playerDataStorage.values()) {
if (playerData.getIsland() != null) {
playerData.setVisitTime(playerData.getVisitTime() + 1);
}
} }
} }
} }