diff options
Diffstat (limited to 'src/main/java/com')
13 files changed, 121 insertions, 111 deletions
diff --git a/src/main/java/com/MylesAndMore/Tumble/commands/Create.java b/src/main/java/com/MylesAndMore/Tumble/commands/Create.java index 667be5e..d60ca64 100644 --- a/src/main/java/com/MylesAndMore/Tumble/commands/Create.java +++ b/src/main/java/com/MylesAndMore/Tumble/commands/Create.java @@ -33,7 +33,7 @@ public class Create implements SubCommand, CommandExecutor, TabCompleter { String arenaName = args[0]; ArenaManager.arenas.put(arenaName, new Arena(arenaName)); - ArenaManager.WriteConfig(); + ArenaManager.writeConfig(); sender.sendMessage(LanguageManager.fromKey("create-success")); return true; } diff --git a/src/main/java/com/MylesAndMore/Tumble/commands/Join.java b/src/main/java/com/MylesAndMore/Tumble/commands/Join.java index 3f1a8fb..f26d4e5 100644 --- a/src/main/java/com/MylesAndMore/Tumble/commands/Join.java +++ b/src/main/java/com/MylesAndMore/Tumble/commands/Join.java @@ -56,6 +56,16 @@ public class Join implements SubCommand, CommandExecutor, TabCompleter { } Arena arena = ArenaManager.arenas.get(arenaName); + // Check to make sure this arena has a game spawn + if (arena.gameSpawn == null) { + if (p.isOp()) { + sender.sendMessage(LanguageManager.fromKey("arena-not-ready-op")); + } else { + sender.sendMessage(LanguageManager.fromKey("arena-not-ready")); + } + return false; + } + Game game; if (args.length < 2 || args[1] == null) { // No type specified: try to infer game type from game taking place in the arena @@ -80,10 +90,10 @@ public class Join implements SubCommand, CommandExecutor, TabCompleter { } if (arena.game == null) { - // no game is taking place in this arena, start one + // No game is taking place in this arena, start one game = arena.game = new Game(arena, type); } else { - // a game is taking place in this arena, check that it is the right type + // A game is taking place in this arena, check that it is the right type if (arena.game.type == type) { game = arena.game; } @@ -96,16 +106,7 @@ public class Join implements SubCommand, CommandExecutor, TabCompleter { } } - // Check to make sure the arena has a game spawn - if (game.arena.gameSpawn == null) { - if (p.isOp()) { - sender.sendMessage(LanguageManager.fromKey("arena-not-ready-op")); - } else { - sender.sendMessage(LanguageManager.fromKey("arena-not-ready")); - } - return false; - } - + // Make sure the game isn't in progress before adding the player if (game.gameState != GameState.WAITING) { sender.sendMessage(LanguageManager.fromKey("game-in-progress")); return false; diff --git a/src/main/java/com/MylesAndMore/Tumble/commands/Remove.java b/src/main/java/com/MylesAndMore/Tumble/commands/Remove.java index c2aa149..9abc784 100644 --- a/src/main/java/com/MylesAndMore/Tumble/commands/Remove.java +++ b/src/main/java/com/MylesAndMore/Tumble/commands/Remove.java @@ -38,7 +38,7 @@ public class Remove implements SubCommand, CommandExecutor, TabCompleter { } ArenaManager.arenas.remove(arenaName); - ArenaManager.WriteConfig(); + ArenaManager.writeConfig(); sender.sendMessage(LanguageManager.fromKey("remove-success")); return true; } diff --git a/src/main/java/com/MylesAndMore/Tumble/commands/SetGameSpawn.java b/src/main/java/com/MylesAndMore/Tumble/commands/SetGameSpawn.java index 21bdfe8..817a1a4 100644 --- a/src/main/java/com/MylesAndMore/Tumble/commands/SetGameSpawn.java +++ b/src/main/java/com/MylesAndMore/Tumble/commands/SetGameSpawn.java @@ -45,7 +45,7 @@ public class SetGameSpawn implements SubCommand, CommandExecutor, TabCompleter { Arena arena = ArenaManager.arenas.get(arenaName); arena.gameSpawn = ((Player)sender).getLocation(); - ArenaManager.WriteConfig(); + ArenaManager.writeConfig(); sender.sendMessage(LanguageManager.fromKey("set-success")); return true; } diff --git a/src/main/java/com/MylesAndMore/Tumble/commands/SetKillYLevel.java b/src/main/java/com/MylesAndMore/Tumble/commands/SetKillYLevel.java index 142ffdd..27cc410 100644 --- a/src/main/java/com/MylesAndMore/Tumble/commands/SetKillYLevel.java +++ b/src/main/java/com/MylesAndMore/Tumble/commands/SetKillYLevel.java @@ -46,7 +46,7 @@ public class SetKillYLevel implements SubCommand, CommandExecutor, TabCompleter Arena arena = ArenaManager.arenas.get(arenaName); arena.killAtY = ((int) ((Player) sender).getLocation().getY()); - ArenaManager.WriteConfig(); + ArenaManager.writeConfig(); sender.sendMessage(LanguageManager.fromKey("set-success")); return true; } diff --git a/src/main/java/com/MylesAndMore/Tumble/commands/SetLobby.java b/src/main/java/com/MylesAndMore/Tumble/commands/SetLobby.java index a080d08..5708643 100644 --- a/src/main/java/com/MylesAndMore/Tumble/commands/SetLobby.java +++ b/src/main/java/com/MylesAndMore/Tumble/commands/SetLobby.java @@ -45,7 +45,7 @@ public class SetLobby implements SubCommand, CommandExecutor, TabCompleter { Arena arena = ArenaManager.arenas.get(arenaName); arena.lobby = ((Player)sender).getLocation(); - ArenaManager.WriteConfig(); + ArenaManager.writeConfig(); sender.sendMessage(LanguageManager.fromKey("set-success")); return true; } diff --git a/src/main/java/com/MylesAndMore/Tumble/commands/SetWaitArea.java b/src/main/java/com/MylesAndMore/Tumble/commands/SetWaitArea.java index a96e1a9..7b90099 100644 --- a/src/main/java/com/MylesAndMore/Tumble/commands/SetWaitArea.java +++ b/src/main/java/com/MylesAndMore/Tumble/commands/SetWaitArea.java @@ -45,7 +45,7 @@ public class SetWaitArea implements SubCommand, CommandExecutor, TabCompleter { Arena arena = ArenaManager.arenas.get(arenaName); arena.waitArea = ((Player)sender).getLocation(); - ArenaManager.WriteConfig(); + ArenaManager.writeConfig(); sender.sendMessage(LanguageManager.fromKey("set-success")); return true; } diff --git a/src/main/java/com/MylesAndMore/Tumble/commands/SetWinnerLobby.java b/src/main/java/com/MylesAndMore/Tumble/commands/SetWinnerLobby.java index 98a535b..e0d2bea 100644 --- a/src/main/java/com/MylesAndMore/Tumble/commands/SetWinnerLobby.java +++ b/src/main/java/com/MylesAndMore/Tumble/commands/SetWinnerLobby.java @@ -45,7 +45,7 @@ public class SetWinnerLobby implements SubCommand, CommandExecutor, TabCompleter Arena arena = ArenaManager.arenas.get(arenaName); arena.winnerLobby = ((Player)sender).getLocation(); - ArenaManager.WriteConfig(); + ArenaManager.writeConfig(); sender.sendMessage(LanguageManager.fromKey("set-success")); return true; } diff --git a/src/main/java/com/MylesAndMore/Tumble/config/ArenaManager.java b/src/main/java/com/MylesAndMore/Tumble/config/ArenaManager.java index 2f21a32..583f333 100644 --- a/src/main/java/com/MylesAndMore/Tumble/config/ArenaManager.java +++ b/src/main/java/com/MylesAndMore/Tumble/config/ArenaManager.java @@ -58,44 +58,51 @@ public class ArenaManager { arena.waitArea = readWorld("arenas." + arenaName + ".wait-area"); } - // Validate arena locations - if (arena.gameSpawn == null) { - plugin.getLogger().severe("arenas.yml: Arena " + arenaName + " is missing a game spawn, before you can join you must set it with '/tumble setgamespawn'."); - } - if (arena.lobby == null) { - plugin.getLogger().warning("arenas.yml: Arena " + arenaName + " is missing a lobby location. The spawn point of the default world will be used."); - } - arenas.put(arena.name, arena); } + validate(); // Validate arenas } /** * Write arenas from this.arenas to arenas.yml */ - public static void WriteConfig() { - config.set("arenas", null); // clear everything + public static void writeConfig() { + config.set("arenas", null); // Clear everything for (Arena arena: arenas.values()) { if (arena.killAtY != null) { config.set("arenas." + arena.name + ".kill-at-y", arena.killAtY); } if (arena.gameSpawn != null) { - WriteWorld("arenas." + arena.name + ".game-spawn", arena.gameSpawn); + writeWorld("arenas." + arena.name + ".game-spawn", arena.gameSpawn); } if (arena.lobby != null) { - WriteWorld("arenas." + arena.name + ".lobby", arena.lobby); + writeWorld("arenas." + arena.name + ".lobby", arena.lobby); } if (arena.winnerLobby != null) { - WriteWorld("arenas." + arena.name + ".winner-lobby", arena.winnerLobby); + writeWorld("arenas." + arena.name + ".winner-lobby", arena.winnerLobby); } if (arena.waitArea != null) { - WriteWorld("arenas." + arena.name + ".wait-area", arena.waitArea); + writeWorld("arenas." + arena.name + ".wait-area", arena.waitArea); } } + validate(); arenasYml.saveConfig(); + } + /** + * Check that all arenas are valid + */ + public static void validate() { + for (Arena arena: arenas.values()) { + if (arena.gameSpawn == null) { + plugin.getLogger().severe("arenas.yml: Arena '" + arena.name + "' is missing a game spawn, before it is usable you must set a spawn with '/tumble setgamespawn'."); + } + if (arena.lobby == null) { + plugin.getLogger().warning("arenas.yml: Arena '" + arena.name + "' is missing a lobby location. The spawn point of the default world will be used."); + } + } } /** @@ -125,7 +132,6 @@ public class ArenaManager { * Result#success = false and Result#error */ private static Location readWorld(String path) { - ConfigurationSection section = config.getConfigurationSection(path); if (section == null) { plugin.getLogger().warning("arenas.yml: Error loading location at '" + path + "' - " + "Section is null"); @@ -165,8 +171,7 @@ public class ArenaManager { * @param path The path of the section to write * @param location The location to write */ - private static void WriteWorld(String path, @NotNull Location location) { - + private static void writeWorld(String path, @NotNull Location location) { ConfigurationSection section = config.getConfigurationSection(path); if (section == null) { diff --git a/src/main/java/com/MylesAndMore/Tumble/config/ConfigManager.java b/src/main/java/com/MylesAndMore/Tumble/config/ConfigManager.java index 2d2bd4c..c279a22 100644 --- a/src/main/java/com/MylesAndMore/Tumble/config/ConfigManager.java +++ b/src/main/java/com/MylesAndMore/Tumble/config/ConfigManager.java @@ -11,7 +11,8 @@ import static com.MylesAndMore.Tumble.Main.plugin; * Manages config.yml and stores its options */ public class ConfigManager { - public static boolean HideLeaveJoin; + public static boolean hideLeaveJoin; + public static boolean hideDeathMessages; public static int waitDuration; private static Configuration config; @@ -25,7 +26,8 @@ public class ConfigManager { configYml.saveDefaultConfig(); config = configYml.getConfig(); defaultConfig = Objects.requireNonNull(config.getDefaults()); - HideLeaveJoin = config.getBoolean("hide-join-leave-messages", false); + hideLeaveJoin = config.getBoolean("hide-join-leave-messages", false); + hideDeathMessages = config.getBoolean("hide-death-messages", false); waitDuration = config.getInt("wait-duration", 15); validate(); diff --git a/src/main/java/com/MylesAndMore/Tumble/game/EventListener.java b/src/main/java/com/MylesAndMore/Tumble/game/EventListener.java index c8331f7..0b23779 100644 --- a/src/main/java/com/MylesAndMore/Tumble/game/EventListener.java +++ b/src/main/java/com/MylesAndMore/Tumble/game/EventListener.java @@ -29,7 +29,7 @@ import static com.MylesAndMore.Tumble.Main.plugin; * An event listener for a game of Tumble. */ public class EventListener implements Listener { - Game game; + final Game game; /** * Create a new EventListener for a game. @@ -43,7 +43,7 @@ public class EventListener implements Listener { @EventHandler public void PlayerJoinEvent(PlayerJoinEvent event) { // Hide/show join message accordingly - if (ConfigManager.HideLeaveJoin) { + if (event.getPlayer().getWorld() == game.arena.gameSpawn.getWorld() && ConfigManager.hideLeaveJoin) { event.setJoinMessage(null); } } @@ -51,7 +51,7 @@ public class EventListener implements Listener { @EventHandler public void PlayerQuitEvent(PlayerQuitEvent event) { // Hide/show leave message accordingly - if (ConfigManager.HideLeaveJoin) { + if (event.getPlayer().getWorld() == game.arena.gameSpawn.getWorld() && ConfigManager.hideLeaveJoin) { event.setQuitMessage(null); } @@ -63,6 +63,11 @@ public class EventListener implements Listener { @EventHandler public void PlayerDeathEvent(PlayerDeathEvent event) { + // Hide death messages if configured + if (event.getEntity().getWorld() == game.arena.gameSpawn.getWorld() && ConfigManager.hideDeathMessages) { + event.setDeathMessage(null); + } + // Inform the game that the player died and respawn them if (game.gamePlayers.contains(event.getEntity()) && game.gameState == GameState.RUNNING) { game.playerDeath(event.getEntity()); @@ -203,7 +208,7 @@ public class EventListener implements Listener { } @EventHandler - public void PlayerRespwanEvent(PlayerRespawnEvent event) { + public void PlayerRespawnEvent(PlayerRespawnEvent event) { // Make sure players respawn in the correct location if (game.gamePlayers.contains(event.getPlayer())) { event.setRespawnLocation(game.arena.gameSpawn); diff --git a/src/main/java/com/MylesAndMore/Tumble/game/Game.java b/src/main/java/com/MylesAndMore/Tumble/game/Game.java index 5ccb757..b309d42 100644 --- a/src/main/java/com/MylesAndMore/Tumble/game/Game.java +++ b/src/main/java/com/MylesAndMore/Tumble/game/Game.java @@ -212,26 +212,12 @@ public class Game { } displayActionbar(gamePlayers, LanguageManager.fromKeyNoPrefix("lobby-in-10")); - - // Wait 10s (200t), then + // Wait 10s (200t), then clear the arena and teleport players back Bukkit.getServer().getScheduler().scheduleSyncDelayedTask(plugin, () -> { clearArena(); - - // teleport player back and restore inventory for (Player p : gamePlayers) { - p.getInventory().clear(); - p.setGameMode(GameMode.SURVIVAL); - if (p == winner && arena.winnerLobby != null) { - p.teleport(arena.winnerLobby); - } else { - p.teleport(Objects.requireNonNull(arena.lobby)); - } - - if (inventories.containsKey(p)) { - p.getInventory().setContents(inventories.get(p)); - } + sendToLobby(p, p == winner); } - }, 200); } @@ -248,7 +234,9 @@ public class Game { * Called if too many players leave, or from /tumble forceStop */ public void stopGame() { - gamePlayers.forEach(this::removePlayer); + // A new list must be created to avoid removing elements while iterating + List<Player> players = new ArrayList<>(gamePlayers); + players.forEach(this::removePlayer); Bukkit.getServer().getScheduler().cancelTask(gameID); gameID = -1; @@ -268,46 +256,32 @@ public class Game { // Check if the game has not started yet if (gameState == GameState.WAITING) { - // Inform player that there are no longer enough players to start if (gamePlayers.size() < 2) { displayActionbar(gamePlayers, LanguageManager.fromKeyNoPrefix("waiting-for-players")); } - // Teleport player back and restore inventory - if (arena.waitArea != null) { - p.getInventory().clear(); - p.setGameMode(GameMode.SURVIVAL); - p.teleport(arena.lobby); - if (inventories.containsKey(p)) { - p.getInventory().setContents(inventories.get(p)); - } - } + sendToLobby(p, false); } else { - // Stop the game if there are not enough players + // Stop the game if there are no longer enough players if (gamePlayers.size() < 2) { stopGame(); } - p.getInventory().clear(); - p.setGameMode(GameMode.SURVIVAL); - p.teleport(arena.lobby); - if (inventories.containsKey(p)) { - p.getInventory().setContents(inventories.get(p)); - } + sendToLobby(p, false); // You can never win if you quit, remember that kids!! } } /** - * Initiates an automatic start of a Tumble game + * Attempts to initiate an automatic start of a Tumble game */ public void autoStart() { - // Wait for the player to load in int waitDuration = ConfigManager.waitDuration; + if (waitDuration <= 0) { return; } Bukkit.getServer().getScheduler().scheduleSyncDelayedTask(plugin, () -> { displayActionbar(gamePlayers, LanguageManager.fromKeyNoPrefix("time-till-start").replace("%wait%",waitDuration+"")); playSound(gamePlayers, Sound.BLOCK_NOTE_BLOCK_CHIME, SoundCategory.BLOCKS, 1, 1); - // Schedule a process to start the game in 300t (15s) and save the PID so we can cancel it later if needed + // Schedule a process to start the game in the specified waitDuration and save the PID so we can cancel it later if needed autoStartID = Bukkit.getServer().getScheduler().scheduleSyncDelayedTask(plugin, this::gameStart, waitDuration * 20L); }, 50); } @@ -471,4 +445,27 @@ public class Game { new Location(gameSpawn.getWorld(), gameSpawn.getX() + 20, gameSpawn.getY(), gameSpawn.getZ() + 20), Material.AIR); } + + /** + * Teleports a player to the lobby and restores their inventory + * @param p Player to teleport + * @param winner Whether the player is the winner + */ + private void sendToLobby(Player p, boolean winner) { + p.getInventory().clear(); + p.setGameMode(GameMode.SURVIVAL); + if (winner && arena.winnerLobby != null) { + p.teleport(arena.winnerLobby); + } else { + // Use default world spawn if lobby is not set + if (arena.lobby == null) { + p.teleport(Objects.requireNonNull(Bukkit.getWorlds().get(0)).getSpawnLocation()); + } else { + p.teleport(Objects.requireNonNull(arena.lobby)); + } + } + if (inventories.containsKey(p)) { + p.getInventory().setContents(inventories.get(p)); + } + } } diff --git a/src/main/java/com/MylesAndMore/Tumble/game/Generator.java b/src/main/java/com/MylesAndMore/Tumble/game/Generator.java index d91c9e6..3136a93 100644 --- a/src/main/java/com/MylesAndMore/Tumble/game/Generator.java +++ b/src/main/java/com/MylesAndMore/Tumble/game/Generator.java @@ -25,28 +25,28 @@ public class Generator { // Choose a random type of generation; a circular layer, a square layer, or a multi-tiered layer of either variety if (random.nextInt(4) == 0) { // Circular layer - Generator.generateClumps(Generator.generateLayer(layer, 17, 1, Material.SNOW_BLOCK), layers.getSafeMaterialList()); + Generator.generateClumps(Generator.generateLayer(layer, 17, 1, Material.AIR), layers.getSafeMaterialList()); } else if (random.nextInt(4) == 1) { // Square layer - Generator.generateClumps(Generator.generateCuboid(new Location(layer.getWorld(), layer.getX() - 17, layer.getY(), layer.getZ() - 17), new Location(layer.getWorld(), layer.getX() + 17, layer.getY(), layer.getZ() + 17), Material.SNOW_BLOCK), layers.getSafeMaterialList()); + Generator.generateClumps(Generator.generateCuboid(new Location(layer.getWorld(), layer.getX() - 17, layer.getY(), layer.getZ() - 17), new Location(layer.getWorld(), layer.getX() + 17, layer.getY(), layer.getZ() + 17), Material.AIR), layers.getSafeMaterialList()); } else if (random.nextInt(4) == 2) { // Multi-tiered circle - Generator.generateClumps(Generator.generateLayer(layer, 17, 1, Material.SNOW_BLOCK), layers.getSafeMaterialList()); + Generator.generateClumps(Generator.generateLayer(layer, 17, 1, Material.AIR), layers.getSafeMaterialList()); Generator.generateLayer(layer, 13, 1, Material.AIR); layer.setY(layer.getY() - 1); - Generator.generateClumps(Generator.generateLayer(layer, 13, 1, Material.GRASS_BLOCK), layers.getMaterialList()); + Generator.generateClumps(Generator.generateLayer(layer, 13, 1, Material.AIR), layers.getMaterialList()); Generator.generateLayer(layer, 4, 1, Material.AIR); layer.setY(layer.getY() - 1); - Generator.generateClumps(Generator.generateLayer(layer, 4, 1, Material.PODZOL), layers.getMaterialList()); + Generator.generateClumps(Generator.generateLayer(layer, 4, 1, Material.AIR), layers.getMaterialList()); } else { // Multi-tiered square - Generator.generateClumps(Generator.generateCuboid(new Location(layer.getWorld(), layer.getX() - 17, layer.getY(), layer.getZ() - 17), new Location(layer.getWorld(), layer.getX() + 17, layer.getY(), layer.getZ() + 17), Material.SNOW_BLOCK), layers.getSafeMaterialList()); + Generator.generateClumps(Generator.generateCuboid(new Location(layer.getWorld(), layer.getX() - 17, layer.getY(), layer.getZ() - 17), new Location(layer.getWorld(), layer.getX() + 17, layer.getY(), layer.getZ() + 17), Material.AIR), layers.getSafeMaterialList()); Generator.generateCuboid(new Location(layer.getWorld(), layer.getX() - 13, layer.getY(), layer.getZ() - 13), new Location(layer.getWorld(), layer.getX() + 13, layer.getY(), layer.getZ() + 13), Material.AIR); layer.setY(layer.getY() - 1); - Generator.generateClumps(Generator.generateCuboid(new Location(layer.getWorld(), layer.getX() - 13, layer.getY(), layer.getZ() - 13), new Location(layer.getWorld(), layer.getX() + 13, layer.getY(), layer.getZ() + 13), Material.GRASS_BLOCK), layers.getMaterialList()); + Generator.generateClumps(Generator.generateCuboid(new Location(layer.getWorld(), layer.getX() - 13, layer.getY(), layer.getZ() - 13), new Location(layer.getWorld(), layer.getX() + 13, layer.getY(), layer.getZ() + 13), Material.AIR), layers.getMaterialList()); Generator.generateCuboid(new Location(layer.getWorld(), layer.getX() - 7, layer.getY(), layer.getZ() - 7), new Location(layer.getWorld(), layer.getX() + 7, layer.getY(), layer.getZ() + 7), Material.AIR); layer.setY(layer.getY() - 1); - Generator.generateClumps(Generator.generateCuboid(new Location(layer.getWorld(), layer.getX() - 7, layer.getY(), layer.getZ() - 7), new Location(layer.getWorld(), layer.getX() + 7, layer.getY(), layer.getZ() + 7), Material.PODZOL), layers.getMaterialList()); + Generator.generateClumps(Generator.generateCuboid(new Location(layer.getWorld(), layer.getX() - 7, layer.getY(), layer.getZ() - 7), new Location(layer.getWorld(), layer.getX() + 7, layer.getY(), layer.getZ() + 7), Material.AIR), layers.getMaterialList()); } } @@ -62,72 +62,72 @@ public class Generator { // Similar generation to shovels, except there are three layers if (random.nextInt(4) == 0) { // Circular layer - Generator.generateClumps(Generator.generateLayer(layer, 17, 1, Material.STONE), layers.getSafeMaterialList()); + Generator.generateClumps(Generator.generateLayer(layer, 17, 1, Material.AIR), layers.getSafeMaterialList()); layer.setY(layer.getY() - 6); - Generator.generateClumps(Generator.generateLayer(layer, 17, 1, Material.STONE), layers.getMaterialList()); + Generator.generateClumps(Generator.generateLayer(layer, 17, 1, Material.AIR), layers.getMaterialList()); layer.setY(layer.getY() - 6); - Generator.generateClumps(Generator.generateLayer(layer, 17, 1, Material.STONE), layers.getMaterialList()); + Generator.generateClumps(Generator.generateLayer(layer, 17, 1, Material.AIR), layers.getMaterialList()); } else if (random.nextInt(4) == 1) { // Square layer - Generator.generateClumps(Generator.generateCuboid(new Location(layer.getWorld(), layer.getX() - 17, layer.getY(), layer.getZ() - 17), new Location(layer.getWorld(), layer.getX() + 17, layer.getY(), layer.getZ() + 17), Material.STONE), layers.getSafeMaterialList()); + Generator.generateClumps(Generator.generateCuboid(new Location(layer.getWorld(), layer.getX() - 17, layer.getY(), layer.getZ() - 17), new Location(layer.getWorld(), layer.getX() + 17, layer.getY(), layer.getZ() + 17), Material.AIR), layers.getSafeMaterialList()); layer.setY(layer.getY() - 6); - Generator.generateClumps(Generator.generateCuboid(new Location(layer.getWorld(), layer.getX() - 17, layer.getY(), layer.getZ() - 17), new Location(layer.getWorld(), layer.getX() + 17, layer.getY(), layer.getZ() + 17), Material.STONE), layers.getMaterialList()); + Generator.generateClumps(Generator.generateCuboid(new Location(layer.getWorld(), layer.getX() - 17, layer.getY(), layer.getZ() - 17), new Location(layer.getWorld(), layer.getX() + 17, layer.getY(), layer.getZ() + 17), Material.AIR), layers.getMaterialList()); layer.setY(layer.getY() - 6); - Generator.generateClumps(Generator.generateCuboid(new Location(layer.getWorld(), layer.getX() - 17, layer.getY(), layer.getZ() - 17), new Location(layer.getWorld(), layer.getX() + 17, layer.getY(), layer.getZ() + 17), Material.STONE), layers.getMaterialList()); + Generator.generateClumps(Generator.generateCuboid(new Location(layer.getWorld(), layer.getX() - 17, layer.getY(), layer.getZ() - 17), new Location(layer.getWorld(), layer.getX() + 17, layer.getY(), layer.getZ() + 17), Material.AIR), layers.getMaterialList()); } else if (random.nextInt(4) == 2) { // Multi-tiered circle - Generator.generateClumps(Generator.generateLayer(layer, 17, 1, Material.STONE), layers.getSafeMaterialList()); + Generator.generateClumps(Generator.generateLayer(layer, 17, 1, Material.AIR), layers.getSafeMaterialList()); Generator.generateLayer(layer, 13, 1, Material.AIR); layer.setY(layer.getY() - 1); - Generator.generateClumps(Generator.generateLayer(layer, 13, 1, Material.GRANITE), layers.getMaterialList()); + Generator.generateClumps(Generator.generateLayer(layer, 13, 1, Material.AIR), layers.getMaterialList()); Generator.generateLayer(layer, 4, 1, Material.AIR); layer.setY(layer.getY() - 1); - Generator.generateClumps(Generator.generateLayer(layer, 4, 1, Material.LIME_GLAZED_TERRACOTTA), layers.getMaterialList()); + Generator.generateClumps(Generator.generateLayer(layer, 4, 1, Material.AIR), layers.getMaterialList()); layer.setY(layer.getY() - 6); - Generator.generateClumps(Generator.generateLayer(layer, 17, 1, Material.STONE), layers.getSafeMaterialList()); + Generator.generateClumps(Generator.generateLayer(layer, 17, 1, Material.AIR), layers.getSafeMaterialList()); Generator.generateLayer(layer, 13, 1, Material.AIR); layer.setY(layer.getY() - 1); - Generator.generateClumps(Generator.generateLayer(layer, 13, 1, Material.GRANITE), layers.getMaterialList()); + Generator.generateClumps(Generator.generateLayer(layer, 13, 1, Material.AIR), layers.getMaterialList()); Generator.generateLayer(layer, 4, 1, Material.AIR); layer.setY(layer.getY() - 1); - Generator.generateClumps(Generator.generateLayer(layer, 4, 1, Material.LIME_GLAZED_TERRACOTTA), layers.getMaterialList()); + Generator.generateClumps(Generator.generateLayer(layer, 4, 1, Material.AIR), layers.getMaterialList()); layer.setY(layer.getY() - 6); - Generator.generateClumps(Generator.generateLayer(layer, 17, 1, Material.STONE), layers.getSafeMaterialList()); + Generator.generateClumps(Generator.generateLayer(layer, 17, 1, Material.AIR), layers.getSafeMaterialList()); Generator.generateLayer(layer, 13, 1, Material.AIR); layer.setY(layer.getY() - 1); - Generator.generateClumps(Generator.generateLayer(layer, 13, 1, Material.GRANITE), layers.getMaterialList()); + Generator.generateClumps(Generator.generateLayer(layer, 13, 1, Material.AIR), layers.getMaterialList()); Generator.generateLayer(layer, 4, 1, Material.AIR); layer.setY(layer.getY() - 1); - Generator.generateClumps(Generator.generateLayer(layer, 4, 1, Material.LIME_GLAZED_TERRACOTTA), layers.getMaterialList()); + Generator.generateClumps(Generator.generateLayer(layer, 4, 1, Material.AIR), layers.getMaterialList()); } else { // Multi-tiered square - Generator.generateClumps(Generator.generateCuboid(new Location(layer.getWorld(), layer.getX() - 17, layer.getY(), layer.getZ() - 17), new Location(layer.getWorld(), layer.getX() + 17, layer.getY(), layer.getZ() + 17), Material.STONE), layers.getSafeMaterialList()); + Generator.generateClumps(Generator.generateCuboid(new Location(layer.getWorld(), layer.getX() - 17, layer.getY(), layer.getZ() - 17), new Location(layer.getWorld(), layer.getX() + 17, layer.getY(), layer.getZ() + 17), Material.AIR), layers.getSafeMaterialList()); Generator.generateCuboid(new Location(layer.getWorld(), layer.getX() - 13, layer.getY(), layer.getZ() - 13), new Location(layer.getWorld(), layer.getX() + 13, layer.getY(), layer.getZ() + 13), Material.AIR); layer.setY(layer.getY() - 1); - Generator.generateClumps(Generator.generateCuboid(new Location(layer.getWorld(), layer.getX() - 13, layer.getY(), layer.getZ() - 13), new Location(layer.getWorld(), layer.getX() + 13, layer.getY(), layer.getZ() + 13), Material.GRANITE), layers.getMaterialList()); + Generator.generateClumps(Generator.generateCuboid(new Location(layer.getWorld(), layer.getX() - 13, layer.getY(), layer.getZ() - 13), new Location(layer.getWorld(), layer.getX() + 13, layer.getY(), layer.getZ() + 13), Material.AIR), layers.getMaterialList()); Generator.generateCuboid(new Location(layer.getWorld(), layer.getX() - 7, layer.getY(), layer.getZ() - 7), new Location(layer.getWorld(), layer.getX() + 7, layer.getY(), layer.getZ() + 7), Material.AIR); layer.setY(layer.getY() - 1); - Generator.generateClumps(Generator.generateCuboid(new Location(layer.getWorld(), layer.getX() - 7, layer.getY(), layer.getZ() - 7), new Location(layer.getWorld(), layer.getX() + 7, layer.getY(), layer.getZ() + 7), Material.LIME_GLAZED_TERRACOTTA), layers.getMaterialList()); + Generator.generateClumps(Generator.generateCuboid(new Location(layer.getWorld(), layer.getX() - 7, layer.getY(), layer.getZ() - 7), new Location(layer.getWorld(), layer.getX() + 7, layer.getY(), layer.getZ() + 7), Material.AIR), layers.getMaterialList()); layer.setY(layer.getY() - 6); - Generator.generateClumps(Generator.generateCuboid(new Location(layer.getWorld(), layer.getX() - 17, layer.getY(), layer.getZ() - 17), new Location(layer.getWorld(), layer.getX() + 17, layer.getY(), layer.getZ() + 17), Material.STONE), layers.getSafeMaterialList()); + Generator.generateClumps(Generator.generateCuboid(new Location(layer.getWorld(), layer.getX() - 17, layer.getY(), layer.getZ() - 17), new Location(layer.getWorld(), layer.getX() + 17, layer.getY(), layer.getZ() + 17), Material.AIR), layers.getSafeMaterialList()); Generator.generateCuboid(new Location(layer.getWorld(), layer.getX() - 13, layer.getY(), layer.getZ() - 13), new Location(layer.getWorld(), layer.getX() + 13, layer.getY(), layer.getZ() + 13), Material.AIR); layer.setY(layer.getY() - 1); - Generator.generateClumps(Generator.generateCuboid(new Location(layer.getWorld(), layer.getX() - 13, layer.getY(), layer.getZ() - 13), new Location(layer.getWorld(), layer.getX() + 13, layer.getY(), layer.getZ() + 13), Material.GRANITE), layers.getMaterialList()); + Generator.generateClumps(Generator.generateCuboid(new Location(layer.getWorld(), layer.getX() - 13, layer.getY(), layer.getZ() - 13), new Location(layer.getWorld(), layer.getX() + 13, layer.getY(), layer.getZ() + 13), Material.AIR), layers.getMaterialList()); Generator.generateCuboid(new Location(layer.getWorld(), layer.getX() - 7, layer.getY(), layer.getZ() - 7), new Location(layer.getWorld(), layer.getX() + 7, layer.getY(), layer.getZ() + 7), Material.AIR); layer.setY(layer.getY() - 1); - Generator.generateClumps(Generator.generateCuboid(new Location(layer.getWorld(), layer.getX() - 7, layer.getY(), layer.getZ() - 7), new Location(layer.getWorld(), layer.getX() + 7, layer.getY(), layer.getZ() + 7), Material.LIME_GLAZED_TERRACOTTA), layers.getMaterialList()); + Generator.generateClumps(Generator.generateCuboid(new Location(layer.getWorld(), layer.getX() - 7, layer.getY(), layer.getZ() - 7), new Location(layer.getWorld(), layer.getX() + 7, layer.getY(), layer.getZ() + 7), Material.AIR), layers.getMaterialList()); layer.setY(layer.getY() - 6); - Generator.generateClumps(Generator.generateCuboid(new Location(layer.getWorld(), layer.getX() - 17, layer.getY(), layer.getZ() - 17), new Location(layer.getWorld(), layer.getX() + 17, layer.getY(), layer.getZ() + 17), Material.STONE), layers.getSafeMaterialList()); + Generator.generateClumps(Generator.generateCuboid(new Location(layer.getWorld(), layer.getX() - 17, layer.getY(), layer.getZ() - 17), new Location(layer.getWorld(), layer.getX() + 17, layer.getY(), layer.getZ() + 17), Material.AIR), layers.getSafeMaterialList()); Generator.generateCuboid(new Location(layer.getWorld(), layer.getX() - 13, layer.getY(), layer.getZ() - 13), new Location(layer.getWorld(), layer.getX() + 13, layer.getY(), layer.getZ() + 13), Material.AIR); layer.setY(layer.getY() - 1); - Generator.generateClumps(Generator.generateCuboid(new Location(layer.getWorld(), layer.getX() - 13, layer.getY(), layer.getZ() - 13), new Location(layer.getWorld(), layer.getX() + 13, layer.getY(), layer.getZ() + 13), Material.GRANITE), layers.getMaterialList()); + Generator.generateClumps(Generator.generateCuboid(new Location(layer.getWorld(), layer.getX() - 13, layer.getY(), layer.getZ() - 13), new Location(layer.getWorld(), layer.getX() + 13, layer.getY(), layer.getZ() + 13), Material.AIR), layers.getMaterialList()); Generator.generateCuboid(new Location(layer.getWorld(), layer.getX() - 7, layer.getY(), layer.getZ() - 7), new Location(layer.getWorld(), layer.getX() + 7, layer.getY(), layer.getZ() + 7), Material.AIR); layer.setY(layer.getY() - 1); - Generator.generateClumps(Generator.generateCuboid(new Location(layer.getWorld(), layer.getX() - 7, layer.getY(), layer.getZ() - 7), new Location(layer.getWorld(), layer.getX() + 7, layer.getY(), layer.getZ() + 7), Material.LIME_GLAZED_TERRACOTTA), layers.getMaterialList()); + Generator.generateClumps(Generator.generateCuboid(new Location(layer.getWorld(), layer.getX() - 7, layer.getY(), layer.getZ() - 7), new Location(layer.getWorld(), layer.getX() + 7, layer.getY(), layer.getZ() + 7), Material.AIR), layers.getMaterialList()); } } |