From 2ba9288162a9bd6be2ab0d4b55894bf54f9b8dd9 Mon Sep 17 00:00:00 2001 From: Brianna Date: Mon, 26 Aug 2019 22:15:55 -0400 Subject: [PATCH] Made it so all blocks in an island delete when the island is deleted. --- .../skyblock/island/IslandManager.java | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/FabledSkyBlock/Core/src/main/java/com/songoda/skyblock/island/IslandManager.java b/FabledSkyBlock/Core/src/main/java/com/songoda/skyblock/island/IslandManager.java index 4f2fd2c0..41bca11f 100644 --- a/FabledSkyBlock/Core/src/main/java/com/songoda/skyblock/island/IslandManager.java +++ b/FabledSkyBlock/Core/src/main/java/com/songoda/skyblock/island/IslandManager.java @@ -10,6 +10,7 @@ import com.songoda.skyblock.cooldown.CooldownManager; import com.songoda.skyblock.cooldown.CooldownType; import com.songoda.skyblock.invite.Invite; import com.songoda.skyblock.invite.InviteManager; +import com.songoda.skyblock.levelling.LevelChunkSnapshotWrapper; import com.songoda.skyblock.message.MessageManager; import com.songoda.skyblock.playerdata.PlayerData; import com.songoda.skyblock.playerdata.PlayerDataManager; @@ -383,6 +384,26 @@ public class IslandManager { PlayerDataManager playerDataManager = skyblock.getPlayerDataManager(); CooldownManager cooldownManager = skyblock.getCooldownManager(); FileManager fileManager = skyblock.getFileManager(); + WorldManager worldManager = skyblock.getWorldManager(); + + // Delete island from world. + Bukkit.getScheduler().runTask(skyblock, () -> { + for (IslandWorld worldList : IslandWorld.getIslandWorlds()) { + org.bukkit.World world = worldManager.getWorld(worldList); + Location location = island.getLocation(worldList, IslandEnvironment.Island); + if (location == null) continue; + int size = island.getSize(); + int xx = location.getBlockX() - size / 2; + int zz = location.getBlockZ() - size / 2; + for (int x = xx; x < xx + size; x++) { + for (int z = zz; z < zz + size; z++) { + for (int y = 0; y < world.getMaxHeight(); y++) { + new Location(world, x, y, z).getBlock().setType(Material.AIR); + } + } + } + } + }); skyblock.getVisitManager().deleteIsland(island.getOwnerUUID()); skyblock.getBanManager().deleteIsland(island.getOwnerUUID());