diff options
author | sowgro <tpoke.ferrari@gmail.com> | 2024-06-10 00:42:55 -0400 |
---|---|---|
committer | sowgro <tpoke.ferrari@gmail.com> | 2024-06-10 00:42:55 -0400 |
commit | 2aa28e390b8a9fa763baef30e204af78e1a28456 (patch) | |
tree | c5cffbcfb36419633263bc68d5a1c239df540a56 /src/main/java/com/MylesAndMore/Tumble/commands | |
parent | 8cb97b0bc66f6d29770e6994ee19cd0c3835055c (diff) | |
download | Tumble-2aa28e390b8a9fa763baef30e204af78e1a28456.tar.gz Tumble-2aa28e390b8a9fa763baef30e204af78e1a28456.tar.bz2 Tumble-2aa28e390b8a9fa763baef30e204af78e1a28456.zip |
Add config comand and file writing
Diffstat (limited to 'src/main/java/com/MylesAndMore/Tumble/commands')
-rw-r--r-- | src/main/java/com/MylesAndMore/Tumble/commands/Config.java | 89 | ||||
-rw-r--r-- | src/main/java/com/MylesAndMore/Tumble/commands/Leave.java | 17 |
2 files changed, 92 insertions, 14 deletions
diff --git a/src/main/java/com/MylesAndMore/Tumble/commands/Config.java b/src/main/java/com/MylesAndMore/Tumble/commands/Config.java index d91a5b5..256b45e 100644 --- a/src/main/java/com/MylesAndMore/Tumble/commands/Config.java +++ b/src/main/java/com/MylesAndMore/Tumble/commands/Config.java @@ -1,5 +1,7 @@ package com.MylesAndMore.Tumble.commands; +import com.MylesAndMore.Tumble.game.Arena; +import com.MylesAndMore.Tumble.plugin.ConfigManager; import org.bukkit.ChatColor; import org.bukkit.command.Command; import org.bukkit.command.CommandExecutor; @@ -9,6 +11,7 @@ import org.bukkit.entity.Player; import org.jetbrains.annotations.NotNull; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; public class Config implements CommandExecutor, TabCompleter { @@ -24,12 +27,96 @@ public class Config implements CommandExecutor, TabCompleter { return false; } - sender.sendMessage(ChatColor.RED + "Not implemented yet"); // TODO + if (args.length < 2 || args[0] == null || args[1] == null) { + sender.sendMessage(ChatColor.RED + "Missing arguments"); + return false; + } + + switch (args[0]) { + case "add" -> { + String arenaName = args[1]; + ConfigManager.arenas.put(arenaName, new Arena(arenaName, ((Player)sender).getLocation())); + sender.sendMessage(ChatColor.GREEN + "Arena added."); + } + case "set" -> { + String world = args[1]; + if (ConfigManager.arenas.containsKey(world)) { + ConfigManager.arenas.get(world).location = ((Player)sender).getLocation(); + } + else if (world.equals("waitArea")) { + ConfigManager.waitArea = ((Player)sender).getLocation(); + } + else if (world.equals("lobbySpawn")) { + ConfigManager.lobby = ((Player)sender).getLocation(); + } + else if (world.equals("winnerLobbySpawn")) { + ConfigManager.winnerLobby = ((Player)sender).getLocation(); + } + else { + sender.sendMessage(ChatColor.RED + "Invalid parameter"); + return false; + } + sender.sendMessage(ChatColor.GREEN + "Location set."); + } + case "disable" -> { + String world = args[1]; + if (world.equals("waitArea")) { + ConfigManager.waitArea = null; + } + else if (world.equals("winnerLobbySpawn")) { + ConfigManager.winnerLobby = null; + } + else { + sender.sendMessage(ChatColor.RED + "Invalid parameter"); + return false; + } + sender.sendMessage(ChatColor.GREEN + "World disabled."); + } + case "remove" -> { + String world = args[1]; + if (ConfigManager.arenas.containsKey(world)) { + ConfigManager.arenas.remove(world); + } + else { + sender.sendMessage(ChatColor.RED + "Invalid parameter"); + return false; + } + sender.sendMessage(ChatColor.GREEN + "Location set"); + } + default -> { + sender.sendMessage(ChatColor.RED + "Invalid parameter"); + return false; + } + } + + ConfigManager.WriteConfig(); + sender.sendMessage(ChatColor.GREEN + "Wrote changes to file."); return true; } @Override public List<String> onTabComplete(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, String[] args) { + if (args.length == 1) { + return new ArrayList<>(Arrays.asList("add", "set", "disable", "remove")); + } + if (args.length == 2) { + switch (args[0]) { + case "set" -> { + ArrayList<String> temp = new ArrayList<>(ConfigManager.arenas.keySet()); + temp.addAll(Arrays.asList("waitArea", "lobbySpawn", "winnerLobbySpawn")); + return temp; + } + case "disable" -> { + return Arrays.asList("waitArea", "winnerLobbySpawn"); + } + case "delete" -> { + return ConfigManager.arenas.keySet().stream().toList(); + } + default -> { + return new ArrayList<>(); + } + } + } return new ArrayList<>(); } } diff --git a/src/main/java/com/MylesAndMore/Tumble/commands/Leave.java b/src/main/java/com/MylesAndMore/Tumble/commands/Leave.java index abf0592..1d00ca4 100644 --- a/src/main/java/com/MylesAndMore/Tumble/commands/Leave.java +++ b/src/main/java/com/MylesAndMore/Tumble/commands/Leave.java @@ -27,16 +27,10 @@ public class Leave implements CommandExecutor, TabCompleter { return false; } - Game game; - if (args.length < 1 || args[0] == null) { - game = ConfigManager.findGamePlayerIsIn((Player)sender); - if (game == null) { - sender.sendMessage(ChatColor.RED + "Missing arena name"); - return false; - } - } - else { - game = ConfigManager.arenas.get(args[0]).game; + Game game = ConfigManager.findGamePlayerIsIn((Player)sender); + if (game == null) { + sender.sendMessage(ChatColor.RED + "You are not in a game."); + return false; } game.removePlayer((Player) sender); @@ -46,9 +40,6 @@ public class Leave implements CommandExecutor, TabCompleter { @Override public List<String> onTabComplete(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, String[] args) { - if (args.length == 1) { - return ConfigManager.arenas.keySet().stream().toList(); - } return new ArrayList<>(); } }
\ No newline at end of file |