From ac21454a7bcc8c21f01f2a0bfffda4501b4381a9 Mon Sep 17 00:00:00 2001 From: OmerBenGera Date: Sat, 1 Oct 2022 15:43:57 +0300 Subject: [PATCH] Fixed errors when creating new islands --- .../island/GridManagerImpl.java | 17 ++++++++++++----- .../superiorskyblock/island/SIsland.java | 13 +++++++------ 2 files changed, 19 insertions(+), 11 deletions(-) diff --git a/src/main/java/com/bgsoftware/superiorskyblock/island/GridManagerImpl.java b/src/main/java/com/bgsoftware/superiorskyblock/island/GridManagerImpl.java index ae33d63ff..a2f60c5b3 100644 --- a/src/main/java/com/bgsoftware/superiorskyblock/island/GridManagerImpl.java +++ b/src/main/java/com/bgsoftware/superiorskyblock/island/GridManagerImpl.java @@ -172,10 +172,17 @@ public void createIsland(Island.Builder builderParam, Biome biome, boolean offse Preconditions.checkArgument(schematic != null, "Cannot create an island with an invalid schematic."); - if (!Bukkit.isPrimaryThread()) { - BukkitExecutor.sync(() -> createIslandInternalAsync(builder, biome, offset, schematic)); - } else { - createIslandInternalAsync(builder, biome, offset, schematic); + try { + if (!Bukkit.isPrimaryThread()) { + BukkitExecutor.sync(() -> createIslandInternalAsync(builder, biome, offset, schematic)); + } else { + createIslandInternalAsync(builder, biome, offset, schematic); + } + } catch (Throwable error) { + error.printStackTrace(); + PluginDebugger.debug(error); + builder.owner.setIsland(null); + Message.CREATE_ISLAND_FAILURE.send(builder.owner); } } @@ -192,7 +199,7 @@ private void createIslandInternalAsync(IslandBuilderImpl builder, Biome biome, b if (!plugin.getEventsBus().callPreIslandCreateEvent(builder.owner, builder.islandName)) return; - UUID islandUUID = generateIslandUUID(); + builder.setUniqueId(generateIslandUUID()); long startTime = System.currentTimeMillis(); diff --git a/src/main/java/com/bgsoftware/superiorskyblock/island/SIsland.java b/src/main/java/com/bgsoftware/superiorskyblock/island/SIsland.java index 49b5f8ee0..f42eeeb48 100644 --- a/src/main/java/com/bgsoftware/superiorskyblock/island/SIsland.java +++ b/src/main/java/com/bgsoftware/superiorskyblock/island/SIsland.java @@ -313,12 +313,6 @@ public SIsland(IslandBuilderImpl builder) { islandWarp.setIcon(warpRecord.icon); }); - updateDatesFormatter(); - startBankInterest(); - checkMembersDuplication(); - updateOldUpgradeValues(); - updateUpgrades(); - updateIslandChests(); // We want to save all the limits to the custom block keys plugin.getBlockValues().addCustomBlockKeys(builder.blockLimits.keySet()); @@ -329,6 +323,13 @@ public SIsland(IslandBuilderImpl builder) { this.blocksTracker = plugin.getFactory().createIslandBlocksTrackerAlgorithm(this); this.entitiesTracker = plugin.getFactory().createIslandEntitiesTrackerAlgorithm(this); + updateDatesFormatter(); + startBankInterest(); + checkMembersDuplication(); + updateOldUpgradeValues(); + updateUpgrades(); + updateIslandChests(); + this.islandBank.setBalance(builder.balance); builder.bankTransactions.forEach(this.islandBank::loadTransaction); if (builder.persistentData.length > 0)