aboutsummaryrefslogtreecommitdiff
path: root/src/main
diff options
context:
space:
mode:
authorMyles <mylesandmore9@gmail.com>2024-08-01 00:45:40 -0500
committerMyles <mylesandmore9@gmail.com>2024-08-01 00:45:40 -0500
commitb9295115ff968b3d6d941ac3af91afe598420202 (patch)
tree448cfea72c58ad9faf2e487d86ac4e72463ed7fc /src/main
parent908e3347eafb1c5c2d214dc434b9bb0a07133444 (diff)
downloadTumble-b9295115ff968b3d6d941ac3af91afe598420202.tar.gz
Tumble-b9295115ff968b3d6d941ac3af91afe598420202.tar.bz2
Tumble-b9295115ff968b3d6d941ac3af91afe598420202.zip
standardize style and language
- standardize code style across PR - change some language/fix typos in documentation (code + external)
Diffstat (limited to 'src/main')
-rw-r--r--src/main/java/com/MylesAndMore/Tumble/Main.java4
-rw-r--r--src/main/java/com/MylesAndMore/Tumble/commands/ForceStart.java7
-rw-r--r--src/main/java/com/MylesAndMore/Tumble/commands/ForceStop.java5
-rw-r--r--src/main/java/com/MylesAndMore/Tumble/commands/Join.java18
-rw-r--r--src/main/java/com/MylesAndMore/Tumble/commands/Reload.java1
-rw-r--r--src/main/java/com/MylesAndMore/Tumble/commands/Tumble.java9
-rw-r--r--src/main/java/com/MylesAndMore/Tumble/config/ArenaManager.java8
-rw-r--r--src/main/java/com/MylesAndMore/Tumble/config/ConfigManager.java1
-rw-r--r--src/main/java/com/MylesAndMore/Tumble/game/Arena.java1
-rw-r--r--src/main/java/com/MylesAndMore/Tumble/game/EventListener.java12
-rw-r--r--src/main/java/com/MylesAndMore/Tumble/game/Game.java61
-rw-r--r--src/main/java/com/MylesAndMore/Tumble/game/Generator.java20
-rw-r--r--src/main/java/com/MylesAndMore/Tumble/game/Layers.java5
-rw-r--r--src/main/java/com/MylesAndMore/Tumble/plugin/GameState.java2
-rw-r--r--src/main/resources/arenas.yml4
-rw-r--r--src/main/resources/config.yml6
-rw-r--r--src/main/resources/language.yml10
-rw-r--r--src/main/resources/plugin.yml16
18 files changed, 89 insertions, 101 deletions
diff --git a/src/main/java/com/MylesAndMore/Tumble/Main.java b/src/main/java/com/MylesAndMore/Tumble/Main.java
index eb1c4e0..3bfa6c0 100644
--- a/src/main/java/com/MylesAndMore/Tumble/Main.java
+++ b/src/main/java/com/MylesAndMore/Tumble/Main.java
@@ -13,7 +13,7 @@ import org.bukkit.plugin.java.JavaPlugin;
import java.util.Objects;
-public class Main extends JavaPlugin{
+public class Main extends JavaPlugin {
public static Main plugin;
@Override
@@ -32,7 +32,7 @@ public class Main extends JavaPlugin{
@Override
public void onDisable() {
- // stop running games
+ // Stop any running games
for (Arena a : ArenaManager.arenas.values()) {
if (a.game != null) {
a.game.stopGame();
diff --git a/src/main/java/com/MylesAndMore/Tumble/commands/ForceStart.java b/src/main/java/com/MylesAndMore/Tumble/commands/ForceStart.java
index 3953bea..29583a4 100644
--- a/src/main/java/com/MylesAndMore/Tumble/commands/ForceStart.java
+++ b/src/main/java/com/MylesAndMore/Tumble/commands/ForceStart.java
@@ -29,17 +29,16 @@ public class ForceStart implements SubCommand, CommandExecutor, TabCompleter {
@Override
public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, String[] args) {
-
Game game;
+
if (args.length < 1 || args[0] == null) {
- // no arena passed in, try to infer from game player is in
+ // No arena passed in, try to infer from game player is in
game = ArenaManager.findGamePlayerIsIn((Player)sender);
if (game == null) {
sender.sendMessage(LanguageManager.fromKey("missing-arena-parameter"));
return false;
}
- }
- else {
+ } else {
String arenaName = args[0];
if (!ArenaManager.arenas.containsKey(arenaName)) {
sender.sendMessage(LanguageManager.fromKey("invalid-arena").replace("%arena%",arenaName));
diff --git a/src/main/java/com/MylesAndMore/Tumble/commands/ForceStop.java b/src/main/java/com/MylesAndMore/Tumble/commands/ForceStop.java
index 37d3465..f308979 100644
--- a/src/main/java/com/MylesAndMore/Tumble/commands/ForceStop.java
+++ b/src/main/java/com/MylesAndMore/Tumble/commands/ForceStop.java
@@ -31,14 +31,13 @@ public class ForceStop implements SubCommand, CommandExecutor, TabCompleter {
Game game;
if (args.length < 1 || args[0] == null) {
- // no arena passed in, try to infer from game player is in
+ // No arena passed in, try to infer from game player is in
game = ArenaManager.findGamePlayerIsIn((Player)sender);
if (game == null) {
sender.sendMessage(LanguageManager.fromKey("missing-arena-parameter"));
return false;
}
- }
- else {
+ } else {
String arenaName = args[0];
if (!ArenaManager.arenas.containsKey(arenaName)) {
sender.sendMessage(LanguageManager.fromKey("invalid-arena").replace("%arena%",arenaName));
diff --git a/src/main/java/com/MylesAndMore/Tumble/commands/Join.java b/src/main/java/com/MylesAndMore/Tumble/commands/Join.java
index 6ce33c3..3f1a8fb 100644
--- a/src/main/java/com/MylesAndMore/Tumble/commands/Join.java
+++ b/src/main/java/com/MylesAndMore/Tumble/commands/Join.java
@@ -50,8 +50,7 @@ public class Join implements SubCommand, CommandExecutor, TabCompleter {
return false;
}
String arenaName = args[0];
- if (!ArenaManager.arenas.containsKey(arenaName))
- {
+ if (!ArenaManager.arenas.containsKey(arenaName)) {
sender.sendMessage(LanguageManager.fromKey("invalid-arena").replace("%arena%", arenaName));
return false;
}
@@ -59,17 +58,16 @@ public class Join implements SubCommand, CommandExecutor, TabCompleter {
Game game;
if (args.length < 2 || args[1] == null) {
- // no type specified: try to infer game type from game taking place in the arena
+ // No type specified: try to infer game type from game taking place in the arena
if (arena.game == null) {
- // cant infer if no game is taking place
+ // Can't infer if no game is taking place
sender.sendMessage(LanguageManager.fromKey("specify-game-type"));
return false;
}
game = arena.game;
- }
- else {
- // type specified
+ } else {
+ // Game type specified
GameType type;
switch (args[1]) {
case "shovels", "shovel" -> type = GameType.SHOVELS;
@@ -84,9 +82,7 @@ public class Join implements SubCommand, CommandExecutor, TabCompleter {
if (arena.game == null) {
// no game is taking place in this arena, start one
game = arena.game = new Game(arena, type);
- }
- else
- {
+ } else {
// a game is taking place in this arena, check that it is the right type
if (arena.game.type == type) {
game = arena.game;
@@ -100,7 +96,7 @@ public class Join implements SubCommand, CommandExecutor, TabCompleter {
}
}
- // check to make sure the arena has a game spawn
+ // 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"));
diff --git a/src/main/java/com/MylesAndMore/Tumble/commands/Reload.java b/src/main/java/com/MylesAndMore/Tumble/commands/Reload.java
index 79faef9..588755f 100644
--- a/src/main/java/com/MylesAndMore/Tumble/commands/Reload.java
+++ b/src/main/java/com/MylesAndMore/Tumble/commands/Reload.java
@@ -29,7 +29,6 @@ public class Reload implements SubCommand, CommandExecutor, TabCompleter {
@Override
public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, String[] args) {
-
for (Arena a : ArenaManager.arenas.values()) {
if (a.game != null) {
a.game.stopGame();
diff --git a/src/main/java/com/MylesAndMore/Tumble/commands/Tumble.java b/src/main/java/com/MylesAndMore/Tumble/commands/Tumble.java
index 8b4f925..e7d1cf4 100644
--- a/src/main/java/com/MylesAndMore/Tumble/commands/Tumble.java
+++ b/src/main/java/com/MylesAndMore/Tumble/commands/Tumble.java
@@ -44,7 +44,7 @@ public class Tumble implements CommandExecutor, TabCompleter {
return false;
}
- // pass command action through to subCommand
+ // Pass command action through to subCommand
subCmd.onCommand(sender, command, args[0], removeFirst(args));
return true;
}
@@ -52,7 +52,7 @@ public class Tumble implements CommandExecutor, TabCompleter {
@Override
public List<String> onTabComplete(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, String[] args) {
if (args.length == 1) {
- // show only subCommands the user has permission for
+ // Show only subCommands the user has permission for
ArrayList<String> PermittedSubCmds = new ArrayList<>();
for (SubCommand subCmd: subCommands.values()) {
if (sender.hasPermission(subCmd.getPermission())) {
@@ -67,11 +67,10 @@ public class Tumble implements CommandExecutor, TabCompleter {
return Collections.emptyList();
}
- // pass tab complete through to subCommand
+ // Pass tab complete through to subCommand
if (subCommands.get(args[0]) instanceof TabCompleter tcmp) {
return tcmp.onTabComplete(sender, command, args[0], removeFirst(args));
- }
- else {
+ } else {
return null;
}
}
diff --git a/src/main/java/com/MylesAndMore/Tumble/config/ArenaManager.java b/src/main/java/com/MylesAndMore/Tumble/config/ArenaManager.java
index ac7767a..2f21a32 100644
--- a/src/main/java/com/MylesAndMore/Tumble/config/ArenaManager.java
+++ b/src/main/java/com/MylesAndMore/Tumble/config/ArenaManager.java
@@ -58,12 +58,12 @@ public class ArenaManager {
arena.waitArea = readWorld("arenas." + arenaName + ".wait-area");
}
- // validate
+ // 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 '/tmbl setgamespawn'.");
+ 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.gameSpawn == null) {
- plugin.getLogger().severe("arenas.yml: Arena " + arenaName + " is missing a lobby location. The spawn point of the default world will be used.");
+ 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);
diff --git a/src/main/java/com/MylesAndMore/Tumble/config/ConfigManager.java b/src/main/java/com/MylesAndMore/Tumble/config/ConfigManager.java
index 59d653a..2d2bd4c 100644
--- a/src/main/java/com/MylesAndMore/Tumble/config/ConfigManager.java
+++ b/src/main/java/com/MylesAndMore/Tumble/config/ConfigManager.java
@@ -27,6 +27,7 @@ public class ConfigManager {
defaultConfig = Objects.requireNonNull(config.getDefaults());
HideLeaveJoin = config.getBoolean("hide-join-leave-messages", false);
waitDuration = config.getInt("wait-duration", 15);
+
validate();
}
diff --git a/src/main/java/com/MylesAndMore/Tumble/game/Arena.java b/src/main/java/com/MylesAndMore/Tumble/game/Arena.java
index 71849e6..157c59c 100644
--- a/src/main/java/com/MylesAndMore/Tumble/game/Arena.java
+++ b/src/main/java/com/MylesAndMore/Tumble/game/Arena.java
@@ -1,7 +1,6 @@
package com.MylesAndMore.Tumble.game;
import org.bukkit.Location;
-import org.bukkit.World;
import org.jetbrains.annotations.NotNull;
/**
diff --git a/src/main/java/com/MylesAndMore/Tumble/game/EventListener.java b/src/main/java/com/MylesAndMore/Tumble/game/EventListener.java
index 9f1456e..c8331f7 100644
--- a/src/main/java/com/MylesAndMore/Tumble/game/EventListener.java
+++ b/src/main/java/com/MylesAndMore/Tumble/game/EventListener.java
@@ -26,7 +26,7 @@ import java.util.Objects;
import static com.MylesAndMore.Tumble.Main.plugin;
/**
- * An event listener for a game of tumble.
+ * An event listener for a game of Tumble.
*/
public class EventListener implements Listener {
Game game;
@@ -55,7 +55,7 @@ public class EventListener implements Listener {
event.setQuitMessage(null);
}
- // remove player from game if they leave during a game
+ // Remove player from game if they leave during a game
if (game.gamePlayers.contains(event.getPlayer())) {
game.removePlayer(event.getPlayer());
}
@@ -63,7 +63,7 @@ public class EventListener implements Listener {
@EventHandler
public void PlayerDeathEvent(PlayerDeathEvent event) {
- // inform the game that the player died and respawn them
+ // Inform the game that the player died and respawn them
if (game.gamePlayers.contains(event.getEntity()) && game.gameState == GameState.RUNNING) {
game.playerDeath(event.getEntity());
Bukkit.getServer().getScheduler().scheduleSyncDelayedTask(plugin, () -> event.getEntity().spigot().respawn(), 10);
@@ -109,8 +109,7 @@ public class EventListener implements Listener {
event.getHitBlock().getType());
event.getHitBlock().setType(Material.AIR);
}
- }
- else if (event.getHitEntity() != null) {
+ } else if (event.getHitEntity() != null) {
if (event.getHitEntity() instanceof Player hitPlayer) {
// Also cancel any knockback
Bukkit.getServer().getScheduler().scheduleSyncDelayedTask(plugin, () -> hitPlayer.setVelocity(new Vector()));
@@ -134,7 +133,7 @@ public class EventListener implements Listener {
if (Objects.equals(game.gameState, GameState.STARTING) && !equalPosition(event.getFrom(),event.getTo())) {
event.setCancelled(true);
}
- // kill player if they are below a Y level
+ // Kill player if they are below configured Y level
if (game.arena.killAtY != null && game.gameState == GameState.RUNNING) {
if (event.getPlayer().getLocation().getY() <= game.arena.killAtY) {
event.getPlayer().setHealth(0);
@@ -226,5 +225,4 @@ public class EventListener implements Listener {
(l1.getY() == l2.getY()) &&
(l1.getZ() == l2.getZ());
}
-
} \ No newline at end of file
diff --git a/src/main/java/com/MylesAndMore/Tumble/game/Game.java b/src/main/java/com/MylesAndMore/Tumble/game/Game.java
index e9b7223..5ccb757 100644
--- a/src/main/java/com/MylesAndMore/Tumble/game/Game.java
+++ b/src/main/java/com/MylesAndMore/Tumble/game/Game.java
@@ -48,7 +48,7 @@ public class Game {
}
/**
- * Adds a player to the wait area. Called from /tmbl join
+ * Adds a player to the wait area. Called from /tumble join
* Precondition: the game is in state WAITING
* @param p Player to add
*/
@@ -62,15 +62,14 @@ public class Game {
}
if (gamePlayers.size() >= 2 && gameState == GameState.WAITING) {
autoStart();
- }
- else {
+ } else {
displayActionbar(Collections.singletonList(p), LanguageManager.fromKeyNoPrefix("waiting-for-players"));
}
}
/**
* Starts the game
- * Called from /tmbl forceStart or after the wait counter finishes
+ * Called from /tumble forceStart or after the wait counter finishes
*/
public void gameStart() {
@@ -79,15 +78,15 @@ public class Game {
return;
}
- // cancel wait timer
+ // Cancel wait timer
Bukkit.getServer().getScheduler().cancelTask(autoStartID);
autoStartID = -1;
- // register event listener
+ // Register event listener
eventListener = new EventListener(this);
Bukkit.getServer().getPluginManager().registerEvents(eventListener, plugin);
- // save inventories (if not already done)
+ // Save inventories (if not already done)
for (Player p : gamePlayers) {
if (!inventories.containsKey(p)) {
inventories.put(p, p.getInventory().getContents());
@@ -107,22 +106,18 @@ public class Game {
scatterPlayers(gamePlayers);
// Put all players in spectator to prevent them from getting kicked for flying
setGamemode(gamePlayers, GameMode.SPECTATOR);
- // do it again in case they were not in the world yet
- Bukkit.getServer().getScheduler().scheduleSyncDelayedTask(plugin, () -> {
- setGamemode(gamePlayers, GameMode.SPECTATOR);
- }, 10);
+ // Do it again in a bit in case they were not in the world yet
+ Bukkit.getServer().getScheduler().scheduleSyncDelayedTask(plugin, () -> setGamemode(gamePlayers, GameMode.SPECTATOR), 10);
clearInventories(gamePlayers);
clearArena();
prepareGameType(type);
// Begin the countdown sequence
- Bukkit.getServer().getScheduler().scheduleSyncDelayedTask(plugin, () -> {
- countdown(() -> {
- setGamemode(gamePlayers, GameMode.SURVIVAL);
- gameState = GameState.RUNNING;
- });
- }, 100);
+ Bukkit.getServer().getScheduler().scheduleSyncDelayedTask(plugin, () -> countdown(() -> {
+ setGamemode(gamePlayers, GameMode.SURVIVAL);
+ gameState = GameState.RUNNING;
+ }), 100);
}
/**
@@ -140,7 +135,7 @@ public class Game {
giveItems(gamePlayers, shovel);
// Schedule a process to give snowballs after 2m30s (so people can't island, the OG game had this);
- // add 160t because of the countdown
+ // Also add 160t because of the countdown
gameID = Bukkit.getServer().getScheduler().scheduleSyncDelayedTask(plugin, () -> {
clearInventories(gamePlayers);
giveItems(gamePlayers, new ItemStack(Material.SNOWBALL));
@@ -191,13 +186,11 @@ public class Game {
if (gameWins.get(winner) == 3) {
gameEnd();
- }
- else { // If that player doesn't have three wins, nobody else does, so we need another round
+ } else { // If that player doesn't have three wins, nobody else does, so we need another round
displayTitles(gamePlayers, LanguageManager.fromKeyNoPrefix("round-over"), LanguageManager.fromKeyNoPrefix("round-winner").replace("%winner%", winner.getDisplayName()), 5, 60, 5);
Bukkit.getServer().getScheduler().scheduleSyncDelayedTask(plugin, this::roundStart, 100);
}
- }
- else {
+ } else {
displayTitles(gamePlayers, LanguageManager.fromKeyNoPrefix("round-over"), LanguageManager.fromKeyNoPrefix("round-draw"), 5, 60, 5);
Bukkit.getServer().getScheduler().scheduleSyncDelayedTask(plugin, this::roundStart, 100);
}
@@ -207,13 +200,12 @@ public class Game {
* Ends game: Displays overall winner and teleports players to lobby
*/
private void gameEnd() {
-
if (!gamePlayers.isEmpty()) {
setGamemode(gamePlayers, GameMode.SPECTATOR);
clearInventories(gamePlayers);
- // display winner
+ // Display winner
Player winner = getPlayerWithMostWins(gameWins);
if (winner != null) {
displayTitles(gamePlayers, LanguageManager.fromKeyNoPrefix("game-over"), LanguageManager.fromKeyNoPrefix("game-winner").replace("%winner%",winner.getDisplayName()), 5, 60, 5);
@@ -231,8 +223,7 @@ public class Game {
p.setGameMode(GameMode.SURVIVAL);
if (p == winner && arena.winnerLobby != null) {
p.teleport(arena.winnerLobby);
- }
- else {
+ } else {
p.teleport(Objects.requireNonNull(arena.lobby));
}
@@ -254,7 +245,7 @@ public class Game {
/**
* Stops the game, usually while it is still going
- * called if too many players leave, or from /tmbl forceStop
+ * Called if too many players leave, or from /tumble forceStop
*/
public void stopGame() {
gamePlayers.forEach(this::removePlayer);
@@ -275,15 +266,15 @@ public class Game {
public void removePlayer(Player p) {
gamePlayers.remove(p);
- // check if the game has not started yet
+ // Check if the game has not started yet
if (gameState == GameState.WAITING) {
- // inform player that there are no longer enough players to start
+ // 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
+ // Teleport player back and restore inventory
if (arena.waitArea != null) {
p.getInventory().clear();
p.setGameMode(GameMode.SURVIVAL);
@@ -292,14 +283,12 @@ public class Game {
p.getInventory().setContents(inventories.get(p));
}
}
- }
- else {
- // stop the game if there are not enough players
+ } else {
+ // Stop the game if there are not enough players
if (gamePlayers.size() < 2) {
stopGame();
}
- // teleport player back and restore inventory
p.getInventory().clear();
p.setGameMode(GameMode.SURVIVAL);
p.teleport(arena.lobby);
@@ -329,7 +318,7 @@ public class Game {
*/
public void playerDeath(Player player) {
player.setGameMode(GameMode.SPECTATOR);
- // remove that player (who just died) from the roundPlayersArray, effectively eliminating them,
+ // Remove that player (who just died) from the alive players, effectively eliminating them,
playersAlive.remove(player);
// If there are less than 2 players in the game (1 just died),
if (playersAlive.size() < 2 && gameState == GameState.RUNNING) {
@@ -337,7 +326,7 @@ public class Game {
}
}
- // utility functions
+ // -- Utility functions --
/**
* Teleports a list of players to the specified scatter locations in the gameWorld
diff --git a/src/main/java/com/MylesAndMore/Tumble/game/Generator.java b/src/main/java/com/MylesAndMore/Tumble/game/Generator.java
index c8ecb06..d91c9e6 100644
--- a/src/main/java/com/MylesAndMore/Tumble/game/Generator.java
+++ b/src/main/java/com/MylesAndMore/Tumble/game/Generator.java
@@ -6,6 +6,8 @@ import org.bukkit.block.BlockFace;
import java.util.*;
+// TODO: clean up generator (when layers refactor is done)
+
/**
* Holds the methods that generate blocks in-game such as cylinders, cuboids, and block clumps.
*/
@@ -24,12 +26,10 @@ public class Generator {
if (random.nextInt(4) == 0) {
// Circular layer
Generator.generateClumps(Generator.generateLayer(layer, 17, 1, Material.SNOW_BLOCK), layers.getSafeMaterialList());
- }
- else if (random.nextInt(4) == 1) {
+ } 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());
- }
- else if (random.nextInt(4) == 2) {
+ } else if (random.nextInt(4) == 2) {
// Multi-tiered circle
Generator.generateClumps(Generator.generateLayer(layer, 17, 1, Material.SNOW_BLOCK), layers.getSafeMaterialList());
Generator.generateLayer(layer, 13, 1, Material.AIR);
@@ -38,8 +38,7 @@ public class Generator {
Generator.generateLayer(layer, 4, 1, Material.AIR);
layer.setY(layer.getY() - 1);
Generator.generateClumps(Generator.generateLayer(layer, 4, 1, Material.PODZOL), layers.getMaterialList());
- }
- else {
+ } 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.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);
@@ -68,16 +67,14 @@ public class Generator {
Generator.generateClumps(Generator.generateLayer(layer, 17, 1, Material.STONE), layers.getMaterialList());
layer.setY(layer.getY() - 6);
Generator.generateClumps(Generator.generateLayer(layer, 17, 1, Material.STONE), layers.getMaterialList());
- }
- else if (random.nextInt(4) == 1) {
+ } 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());
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());
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());
- }
- else if (random.nextInt(4) == 2) {
+ } else if (random.nextInt(4) == 2) {
// Multi-tiered circle
Generator.generateClumps(Generator.generateLayer(layer, 17, 1, Material.STONE), layers.getSafeMaterialList());
Generator.generateLayer(layer, 13, 1, Material.AIR);
@@ -104,8 +101,7 @@ public class Generator {
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());
- }
- else {
+ } 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.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);
diff --git a/src/main/java/com/MylesAndMore/Tumble/game/Layers.java b/src/main/java/com/MylesAndMore/Tumble/game/Layers.java
index 8954732..1685843 100644
--- a/src/main/java/com/MylesAndMore/Tumble/game/Layers.java
+++ b/src/main/java/com/MylesAndMore/Tumble/game/Layers.java
@@ -6,6 +6,8 @@ import java.util.ArrayList;
import java.util.List;
import java.util.Random;
+// TODO: make layers user-configurable through a LayerManager and a yaml
+
/**
* Stores the different types of layers that can be generated
*/
@@ -284,8 +286,7 @@ public class Layers {
safeMatList.add(gen11); // Troll glass layer
}
- // Define Random class
- Random random = new Random();
+ final Random random = new Random();
/**
* @return A random predefined List of Materials that are okay to use in the clump generator
*/
diff --git a/src/main/java/com/MylesAndMore/Tumble/plugin/GameState.java b/src/main/java/com/MylesAndMore/Tumble/plugin/GameState.java
index 06b2abe..e27c728 100644
--- a/src/main/java/com/MylesAndMore/Tumble/plugin/GameState.java
+++ b/src/main/java/com/MylesAndMore/Tumble/plugin/GameState.java
@@ -4,5 +4,5 @@ public enum GameState {
WAITING,
STARTING,
RUNNING,
- ENDING
+ ENDING,
}
diff --git a/src/main/resources/arenas.yml b/src/main/resources/arenas.yml
index 3b755c3..6d3e3bb 100644
--- a/src/main/resources/arenas.yml
+++ b/src/main/resources/arenas.yml
@@ -1,2 +1,2 @@
-# NOTE: Coordinates cannot be zero! Use something like 0.5
-arenas: {} \ No newline at end of file
+# NOTE: No coordinate can be equal to zero! Use 0.5 instead if needed.
+arenas: {}
diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml
index ded50ef..b15acaf 100644
--- a/src/main/resources/config.yml
+++ b/src/main/resources/config.yml
@@ -1,7 +1,5 @@
-# Hides player join/leave messages in public chat
+# Hides player join and leave messages in public chat
hide-join-leave-messages: false
-# Duration in seconds to wait for more players to join
+# Duration (in seconds) to wait for more players to join a game before starting
wait-duration: 15
-
-
diff --git a/src/main/resources/language.yml b/src/main/resources/language.yml
index 835d577..dabb5f4 100644
--- a/src/main/resources/language.yml
+++ b/src/main/resources/language.yml
@@ -1,5 +1,7 @@
+# All plugin chat messages will have this message prepended to them
prefix: "&f[&eTumble&f] "
+# Error messages
unknown-command: "&4Unknown command '%command%'"
no-permission: "&4You do not have permission to perform this command! &7Required permission: '%permission%.'"
missing-arena-parameter: "&4Missing arena name!"
@@ -9,13 +11,14 @@ no-game-in-arena: "&4No game is currently running in this arena!"
player-not-in-game: "&4You are not in a game!"
not-for-console: "&4This cannot be run by the console!"
game-in-progress: "&4This game is still in progress!&7 wait until it finishes or join another game."
-another-type-in-arena: "A game of %type% is currently taking place in this arena!&7 choose another arena or join it with '/tmbl join %arena% %type%'."
+another-type-in-arena: "A game of %type% is currently taking place in this arena!&7 choose another arena or join it with '/tumble join %arena% %type%'."
already-in-game: "&4You are already in a game! Leave it to join another one."
arena-not-ready: "&4This arena is not finished being set up!"
-arena-not-ready-op: "&4Incomplete arena. &7Set a game spawn with '/tmbl setGameSpawn'."
+arena-not-ready-op: "&4Incomplete arena. &7Set a game spawn with '/tumble setGameSpawn'."
specify-game-type: "&4No game is currently taking place in this arena! &7Provide the game type to start one."
-create-success: "&aArena created successfully! &eBefore you can join, you must set a game spawn location with '/tmbl setgamespawn'."
+# Success messages
+create-success: "&aArena created successfully! &eBefore you can join, you must set a game spawn location with '/tumble setgamespawn'."
forcestart-success: "&aStarting game."
forcestop-success: "&aGame stopped."
join-success: "&aJoined game &d%arena% - %type%"
@@ -24,6 +27,7 @@ reload-success: "&aConfig files reloaded. &eCheck console for errors."
remove-success: "&aArena removed."
set-success: "&aLocation set."
+# Game messages
showdown: "&4Showdown!"
lobby-in-10: "&9Returning to lobby in ten seconds..."
waiting-for-players: "&aWaiting for players"
diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml
index c8085b8..da7f8bd 100644
--- a/src/main/resources/plugin.yml
+++ b/src/main/resources/plugin.yml
@@ -1,6 +1,6 @@
main: com.MylesAndMore.Tumble.Main
name: Tumble
-version: 1.0.4
+version: 2.0.0
description: 'A Minecraft: Java Edition plugin recreating the Tumble minigame from Minecraft Legacy Console Edition.'
api-version: 1.16
load: POSTWORLD
@@ -10,8 +10,8 @@ softdepend: [Multiverse-Core]
commands:
tumble:
- description: Base command for Rumble
- usage: "/tmbl <subCommand> ..."
+ description: Base command for Tumble
+ usage: "/tumble <subCommand> ..."
aliases: tmbl
permissions:
@@ -22,23 +22,33 @@ permissions:
description: Allows you to leave a Tumble match.
default: true
tumble.forcestart:
+ description: Allows you to forcibly start a Tumble match.
default: op
tumble.forcestop:
+ description: Allows you to forcibly stop a Tumble match.
default: op
tumble.reload:
+ description: Allows you to reload the Tumble configuration.
default: op
tumble.create:
+ description: Allows you to create Tumble arenas.
default: op
tumble.remove:
+ description: Allows you to remove Tumble arenas.
default: op
tumble.setgamespawn:
+ description: Allows you to set the game spawn location for Tumble arenas.
default: op
tumble.setkillylevel:
+ description: Allows you to set the kill Y-level for Tumble arenas.
default: op
tumble.setlobby:
+ description: Allows you to set the lobby location for Tumble arenas.
default: op
tumble.setwaitarea:
+ description: Allows you to set the wait area location for Tumble arenas.
default: op
tumble.setwinnerlobby:
+ description: Allows you to set the winner lobby location for Tumble arenas.
default: op