aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/com/MylesAndMore/Tumble/commands
diff options
context:
space:
mode:
authorsowgro <tpoke.ferrari@gmail.com>2024-06-10 00:42:55 -0400
committersowgro <tpoke.ferrari@gmail.com>2024-06-10 00:42:55 -0400
commit2aa28e390b8a9fa763baef30e204af78e1a28456 (patch)
treec5cffbcfb36419633263bc68d5a1c239df540a56 /src/main/java/com/MylesAndMore/Tumble/commands
parent8cb97b0bc66f6d29770e6994ee19cd0c3835055c (diff)
downloadTumble-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.java89
-rw-r--r--src/main/java/com/MylesAndMore/Tumble/commands/Leave.java17
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