diff --git a/src/main/java/com/iridium/iridiumskyblock/DataConverter.java b/src/main/java/com/iridium/iridiumskyblock/DataConverter.java index 25c6098a8..7147f5e00 100644 --- a/src/main/java/com/iridium/iridiumskyblock/DataConverter.java +++ b/src/main/java/com/iridium/iridiumskyblock/DataConverter.java @@ -1,12 +1,14 @@ package com.iridium.iridiumskyblock; +import com.iridium.iridiumskyblock.database.Island; +import com.iridium.iridiumskyblock.database.IslandUpgrade; + import java.io.File; import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; -import java.util.Arrays; -import java.util.Objects; +import java.util.*; public class DataConverter { @@ -18,6 +20,24 @@ public static void run(IridiumSkyblock instance) { v3_0_0(); } + public static void deleteDuplicateUpgrades() { + List islandUpgrades = new ArrayList<>(); + List remove = new ArrayList<>(); + for (IslandUpgrade islandUpgrade : IridiumSkyblock.getInstance().getDatabaseManager().getIslandUpgradeTableManager().getEntries()) { + Optional island = islandUpgrade.getIsland(); + if (island.isPresent()) { + if (islandUpgrades.contains(islandUpgrade.getUpgrade() + " - " + island.get().getId())) { + remove.add(islandUpgrade); + } else { + islandUpgrades.add(islandUpgrade.getUpgrade() + " - " + island.get().getId()); + } + } else { + remove.add(islandUpgrade); + } + } + IridiumSkyblock.getInstance().getDatabaseManager().getIslandUpgradeTableManager().delete(remove); + } + private static void v3_0_0() { String[] fileNames = Objects.requireNonNull(iridiumSkyblock.getDataFolder().list()); if (!Arrays.asList(fileNames).contains("config.json")) { diff --git a/src/main/java/com/iridium/iridiumskyblock/IridiumSkyblock.java b/src/main/java/com/iridium/iridiumskyblock/IridiumSkyblock.java index 012a28453..ba50c4539 100644 --- a/src/main/java/com/iridium/iridiumskyblock/IridiumSkyblock.java +++ b/src/main/java/com/iridium/iridiumskyblock/IridiumSkyblock.java @@ -195,6 +195,8 @@ public void run() { .setColoredConsoleOutput(true) .checkNow(); + DataConverter.deleteDuplicateUpgrades(); + getLogger().info("----------------------------------------"); getLogger().info(""); getLogger().info(getDescription().getName() + " Enabled!");