From 83a882295c60b9370388e2a8f0630b5c5bb654bf Mon Sep 17 00:00:00 2001 From: hardcorefactions <108526035+hardcorefactions@users.noreply.github.com> Date: Wed, 21 Jan 2026 16:16:23 +0100 Subject: [PATCH 1/4] feat: add aikar to repo list --- build.gradle.kts | 1 + spigot/build.gradle.kts | 4 ++++ 2 files changed, 5 insertions(+) diff --git a/build.gradle.kts b/build.gradle.kts index 7057eb2..231c90e 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -23,6 +23,7 @@ allprojects { maven("https://repo.lunarclient.dev") maven("https://jitpack.io") maven("https://repo.codemc.io/repository/maven-public/") + maven("https://repo.aikar.co/content/groups/aikar/") } } diff --git a/spigot/build.gradle.kts b/spigot/build.gradle.kts index 5e007a9..9b29edf 100644 --- a/spigot/build.gradle.kts +++ b/spigot/build.gradle.kts @@ -14,6 +14,7 @@ dependencies { implementation("org.jetbrains:annotations:26.0.2-1") implementation("net.kyori:adventure-api:4.26.1") implementation("net.kyori:adventure-platform-bukkit:4.4.1") + implementation("co.aikar:acf-bukkit:0.5.1-SNAPSHOT") compileOnly("me.clip:placeholderapi:2.11.7") compileOnly("org.spigotmc:spigot-api:1.8.8-R0.1-SNAPSHOT") @@ -23,5 +24,8 @@ dependencies { } tasks.shadowJar { + minimize() + relocate("net.kyori", "fun.ogtimes.skywars.libs.kyori") + relocate("co.aikar", "fun.ogtimes.skywars.libs.aikar") } \ No newline at end of file From efc1ab96058dbb0d1383a9bcccff3aea4a744ca9 Mon Sep 17 00:00:00 2001 From: hardcorefactions <108526035+hardcorefactions@users.noreply.github.com> Date: Wed, 21 Jan 2026 16:43:50 +0100 Subject: [PATCH 2/4] feat: main commands moved to ACF --- .../fun/ogtimes/skywars/spigot/SkyWars.java | 6 +- .../skywars/spigot/commands/CmdExecutor.java | 226 +++++++------- .../spigot/commands/CommandManager.java | 59 ++++ .../spigot/commands/acf/LeaveCommand.java | 30 ++ .../spigot/commands/acf/PlayAgainCommand.java | 61 ++++ .../spigot/commands/acf/SkyWarsCommand.java | 292 ++++++++++++++++++ .../spigot/commands/admin/CmdReload.java | 256 --------------- .../commands/admin/edit/arena/CmdTp.java | 77 ----- .../admin/edit/lobby/CmdLobbySpawn.java | 47 --- .../spigot/commands/user/CmdCoins.java | 26 +- .../spigot/commands/user/CmdForceStart.java | 56 ---- .../skywars/spigot/commands/user/CmdJoin.java | 142 --------- .../skywars/spigot/commands/user/CmdOpen.java | 63 ---- .../spigot/commands/user/CmdOthers.java | 76 ----- 14 files changed, 571 insertions(+), 846 deletions(-) create mode 100644 spigot/src/main/java/fun/ogtimes/skywars/spigot/commands/CommandManager.java create mode 100644 spigot/src/main/java/fun/ogtimes/skywars/spigot/commands/acf/LeaveCommand.java create mode 100644 spigot/src/main/java/fun/ogtimes/skywars/spigot/commands/acf/PlayAgainCommand.java create mode 100644 spigot/src/main/java/fun/ogtimes/skywars/spigot/commands/acf/SkyWarsCommand.java delete mode 100644 spigot/src/main/java/fun/ogtimes/skywars/spigot/commands/admin/CmdReload.java delete mode 100644 spigot/src/main/java/fun/ogtimes/skywars/spigot/commands/admin/edit/arena/CmdTp.java delete mode 100644 spigot/src/main/java/fun/ogtimes/skywars/spigot/commands/admin/edit/lobby/CmdLobbySpawn.java delete mode 100644 spigot/src/main/java/fun/ogtimes/skywars/spigot/commands/user/CmdForceStart.java delete mode 100644 spigot/src/main/java/fun/ogtimes/skywars/spigot/commands/user/CmdJoin.java delete mode 100644 spigot/src/main/java/fun/ogtimes/skywars/spigot/commands/user/CmdOpen.java delete mode 100644 spigot/src/main/java/fun/ogtimes/skywars/spigot/commands/user/CmdOthers.java diff --git a/spigot/src/main/java/fun/ogtimes/skywars/spigot/SkyWars.java b/spigot/src/main/java/fun/ogtimes/skywars/spigot/SkyWars.java index 64cdc07..61e0d03 100644 --- a/spigot/src/main/java/fun/ogtimes/skywars/spigot/SkyWars.java +++ b/spigot/src/main/java/fun/ogtimes/skywars/spigot/SkyWars.java @@ -6,7 +6,7 @@ import fun.ogtimes.skywars.spigot.arena.ArenaState; import fun.ogtimes.skywars.spigot.arena.chest.ChestTypeManager; import fun.ogtimes.skywars.spigot.box.BoxManager; -import fun.ogtimes.skywars.spigot.commands.CmdExecutor; +import fun.ogtimes.skywars.spigot.commands.CommandManager; import fun.ogtimes.skywars.spigot.commands.user.CmdOthers; import fun.ogtimes.skywars.spigot.config.ConfigManager; import fun.ogtimes.skywars.spigot.database.DatabaseHandler; @@ -94,6 +94,7 @@ public class SkyWars extends JavaPlugin implements Listener { private Metrics metrics; private BukkitAudiences adventure; + private CommandManager commandManager; public static void reloadMessages() { CustomConfig customConfig = new CustomConfig(SkyWars.getPlugin()); @@ -503,8 +504,7 @@ public void onEnable() { " &aHologram(s))"); } - getCommand("sw").setExecutor(new CmdExecutor()); - getCommand("sw").setTabCompleter(new CmdExecutor()); + commandManager = new CommandManager(this); Bukkit.setSpawnRadius(0); diff --git a/spigot/src/main/java/fun/ogtimes/skywars/spigot/commands/CmdExecutor.java b/spigot/src/main/java/fun/ogtimes/skywars/spigot/commands/CmdExecutor.java index ab80145..4fcbbe3 100644 --- a/spigot/src/main/java/fun/ogtimes/skywars/spigot/commands/CmdExecutor.java +++ b/spigot/src/main/java/fun/ogtimes/skywars/spigot/commands/CmdExecutor.java @@ -27,125 +27,125 @@ import org.bukkit.util.StringUtil; public class CmdExecutor implements CommandExecutor, TabCompleter { - private final HashMap commands = new HashMap<>(); - private final List cmds = new ArrayList<>(); - - public CmdExecutor() { - this.loadCommands(); - this.cmds.clear(); - - for (String var2 : this.commands.keySet()) { - if (!var2.equals("hide")) { - this.cmds.add(var2); - } - } - - } - - private void loadCommands() { - this.commands.clear(); - if (!SkyWars.isLobbyMode()) { - this.commands.put("arena", new CmdArena()); - this.commands.put("tp", new CmdTp()); - this.commands.put("forcestart", new CmdForceStart()); - } - - if (!SkyWars.isProxyMode()) { - if (SkyWars.holo) { - this.commands.put("hologram", new CmdHologram()); - } - - this.commands.put("lobbyspawn", new CmdLobbySpawn()); - this.commands.put("open", new CmdOpen()); - this.commands.put("join", new CmdJoin()); - } - - this.commands.put("coins", new CmdCoins()); - this.commands.put("reload", new CmdReload()); - this.commands.put("hide", new CmdHide()); - } - - public boolean onCommand(CommandSender var1, Command var2, String var3, String[] var4) { - if (var2.getName().equalsIgnoreCase("sw")) { - if (var4 != null && var4.length >= 1) { - if (var4[0].equalsIgnoreCase("help")) { - this.help(var1); - return true; + private final HashMap commands = new HashMap<>(); + private final List cmds = new ArrayList<>(); + + public CmdExecutor() { + this.loadCommands(); + this.cmds.clear(); + + for (String command : this.commands.keySet()) { + if (!command.equals("hide")) { + this.cmds.add(command); + } + } + + } + + private void loadCommands() { + this.commands.clear(); + if (!SkyWars.isLobbyMode()) { + this.commands.put("arena", new CmdArena()); + this.commands.put("tp", new CmdTp()); + this.commands.put("forcestart", new CmdForceStart()); + } + + if (!SkyWars.isProxyMode()) { + if (SkyWars.holo) { + this.commands.put("hologram", new CmdHologram()); + } + + this.commands.put("lobbyspawn", new CmdLobbySpawn()); + this.commands.put("open", new CmdOpen()); + this.commands.put("join", new CmdJoin()); + } + + this.commands.put("coins", new CmdCoins()); + this.commands.put("reload", new CmdReload()); + this.commands.put("hide", new CmdHide()); + } + + public boolean onCommand(CommandSender var1, Command var2, String var3, String[] var4) { + if (var2.getName().equalsIgnoreCase("sw")) { + if (var4 != null && var4.length >= 1) { + if (var4[0].equalsIgnoreCase("help")) { + this.help(var1); + return true; + } else { + String var5 = var4[0]; + Vector var6 = new Vector(Arrays.asList(var4)); + var6.removeFirst(); + var4 = (String[]) var6.toArray(new String[0]); + if (!this.commands.containsKey(var5)) { + var1.sendMessage("This command doesnt exist"); + } else { + try { + this.commands.get(var5).onCommand(var1, var4); + } catch (Exception var8) { + var8.printStackTrace(); + var1.sendMessage("An error occured while executing the command. Check the console"); + var1.sendMessage("Type /sw help for help"); + } + + } + return true; + } } else { - String var5 = var4[0]; - Vector var6 = new Vector(Arrays.asList(var4)); - var6.removeFirst(); - var4 = (String[]) var6.toArray(new String[0]); - if (!this.commands.containsKey(var5)) { - var1.sendMessage("This command doesnt exist"); - } else { - try { - this.commands.get(var5).onCommand(var1, var4); - } catch (Exception var8) { - var8.printStackTrace(); - var1.sendMessage("An error occured while executing the command. Check the console"); - var1.sendMessage("Type /sw help for help"); - } - - } + this.help(var1); return true; } - } else { - this.help(var1); + } else { return true; - } - } else { - return true; - } - } - - private void help(CommandSender var1) { - String var2 = "---------- §8[§7SkyWars§8]§a " + SkyWars.getPlugin().getDescription().getVersion() + " §r----------"; - var1.sendMessage(var2); - - for (BaseCommand var4 : this.commands.values()) { - if (!var4.help(var1).isEmpty()) { - if (!(var1 instanceof Player)) { - if (var4.console()) { - var1.sendMessage(ChatColor.translateAlternateColorCodes('&', var4.help(var1))); - } - } else { - var1.sendMessage(ChatColor.translateAlternateColorCodes('&', var4.help(var1))); - } - } - } - - var1.sendMessage("-----------------------------------"); - } - - public List onTabComplete(CommandSender var1, Command var2, String var3, String[] var4) { - if (var2.getName().equalsIgnoreCase("sw") && var1 instanceof Player) { - if (var4.length == 1) { - ArrayList var8 = new ArrayList(); - StringUtil.copyPartialMatches(var4[0], this.cmds, var8); - Collections.sort(var8); - return var8; - } - - if (var4.length >= 2) { - String var5 = var4[0]; - Vector var6 = new Vector(Arrays.asList(var4)); - var6.removeFirst(); - var4 = (String[])var6.toArray(new String[0]); - if (!this.commands.containsKey(var5)) { - var1.sendMessage("This command doesnt exist"); - return null; + } + } + + private void help(CommandSender var1) { + String var2 = "---------- §8[§7SkyWars§8]§a " + SkyWars.getPlugin().getDescription().getVersion() + " §r----------"; + var1.sendMessage(var2); + + for (BaseCommand var4 : this.commands.values()) { + if (!var4.help(var1).isEmpty()) { + if (!(var1 instanceof Player)) { + if (var4.console()) { + var1.sendMessage(ChatColor.translateAlternateColorCodes('&', var4.help(var1))); + } + } else { + var1.sendMessage(ChatColor.translateAlternateColorCodes('&', var4.help(var1))); + } } - - Object var7 = this.commands.get(var5).onTabComplete(var1, var4); - if (var7 == null) { - var7 = new ArrayList<>(); + } + + var1.sendMessage("-----------------------------------"); + } + + public List onTabComplete(CommandSender var1, Command var2, String var3, String[] var4) { + if (var2.getName().equalsIgnoreCase("sw") && var1 instanceof Player) { + if (var4.length == 1) { + ArrayList var8 = new ArrayList(); + StringUtil.copyPartialMatches(var4[0], this.cmds, var8); + Collections.sort(var8); + return var8; } - return (List)var7; - } - } + if (var4.length >= 2) { + String var5 = var4[0]; + Vector var6 = new Vector(Arrays.asList(var4)); + var6.removeFirst(); + var4 = (String[])var6.toArray(new String[0]); + if (!this.commands.containsKey(var5)) { + var1.sendMessage("This command doesnt exist"); + return null; + } + + Object var7 = this.commands.get(var5).onTabComplete(var1, var4); + if (var7 == null) { + var7 = new ArrayList<>(); + } + + return (List)var7; + } + } - return null; - } + return null; + } } diff --git a/spigot/src/main/java/fun/ogtimes/skywars/spigot/commands/CommandManager.java b/spigot/src/main/java/fun/ogtimes/skywars/spigot/commands/CommandManager.java new file mode 100644 index 0000000..0f8249a --- /dev/null +++ b/spigot/src/main/java/fun/ogtimes/skywars/spigot/commands/CommandManager.java @@ -0,0 +1,59 @@ +package fun.ogtimes.skywars.spigot.commands; + +import co.aikar.commands.BukkitCommandManager; +import co.aikar.commands.InvalidCommandArgument; +import fun.ogtimes.skywars.spigot.SkyWars; +import fun.ogtimes.skywars.spigot.arena.Arena; +import fun.ogtimes.skywars.spigot.arena.ArenaManager; +import fun.ogtimes.skywars.spigot.commands.acf.SkyWarsCommand; + +import java.util.List; + +/** + * This code was made by jsexp, in case of any unauthorized + * use, at least please leave credits. + * Find more about me @ my GitHub :D + * © 2025 - jsexp + */ +public class CommandManager { + private final SkyWars instance; + private BukkitCommandManager manager; + + public CommandManager(SkyWars instance) { + this.instance = instance; + + this.manager = new BukkitCommandManager(instance); + + this.registerContexts(); + this.registerCompletions(); + this.registerCommands(); + } + + private void registerCompletions() { + manager.getCommandCompletions().registerCompletion("arenas", context -> + ArenaManager.getGames().stream().map(Arena::getName).toList()); + } + + private void registerContexts() { + manager.getCommandContexts().registerContext(Arena.class, context -> { + String name = context.popFirstArg(); + if (name == null) { + return null; + } + + Arena arena = ArenaManager.getGame(name); + if (arena == null) { + throw new InvalidCommandArgument("Arena '" + name + "' not found!", false); + } + + return arena; + }); + } + + private void registerCommands() { + List.of( + new SkyWarsCommand() + ).forEach(command -> manager.registerCommand(command)); + } + +} diff --git a/spigot/src/main/java/fun/ogtimes/skywars/spigot/commands/acf/LeaveCommand.java b/spigot/src/main/java/fun/ogtimes/skywars/spigot/commands/acf/LeaveCommand.java new file mode 100644 index 0000000..efe2d3e --- /dev/null +++ b/spigot/src/main/java/fun/ogtimes/skywars/spigot/commands/acf/LeaveCommand.java @@ -0,0 +1,30 @@ +package fun.ogtimes.skywars.spigot.commands.acf; + +import co.aikar.commands.BaseCommand; +import co.aikar.commands.annotation.CommandAlias; +import co.aikar.commands.annotation.Default; +import fun.ogtimes.skywars.spigot.SkyWars; +import fun.ogtimes.skywars.spigot.player.SkyPlayer; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; + +/** + * This code was made by jsexp, in case of any unauthorized + * use, at least please leave credits. + * Find more about me @ my GitHub :D + * © 2025 - jsexp + */ +@CommandAlias("leave|salir") +public class LeaveCommand extends BaseCommand { + + @Default + public void leave(Player player) { + SkyPlayer skyPlayer = SkyWars.getSkyPlayer(player); + if (skyPlayer == null) { + return; + } + + skyPlayer.leave(); + } + +} diff --git a/spigot/src/main/java/fun/ogtimes/skywars/spigot/commands/acf/PlayAgainCommand.java b/spigot/src/main/java/fun/ogtimes/skywars/spigot/commands/acf/PlayAgainCommand.java new file mode 100644 index 0000000..8210e81 --- /dev/null +++ b/spigot/src/main/java/fun/ogtimes/skywars/spigot/commands/acf/PlayAgainCommand.java @@ -0,0 +1,61 @@ +package fun.ogtimes.skywars.spigot.commands.acf; + +import co.aikar.commands.BaseCommand; +import co.aikar.commands.annotation.CommandAlias; +import co.aikar.commands.annotation.Default; +import fun.ogtimes.skywars.spigot.SkyWars; +import fun.ogtimes.skywars.spigot.arena.Arena; +import fun.ogtimes.skywars.spigot.arena.GameQueue; +import fun.ogtimes.skywars.spigot.events.enums.ArenaJoinCause; +import fun.ogtimes.skywars.spigot.player.SkyPlayer; +import fun.ogtimes.skywars.spigot.utils.Game; +import fun.ogtimes.skywars.spigot.utils.ProxyUtils; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; + +/** + * This code was made by jsexp, in case of any unauthorized + * use, at least please leave credits. + * Find more about me @ my GitHub :D + * © 2025 - jsexp + */ +@CommandAlias("playagain") +public class PlayAgainCommand extends BaseCommand { + + @Default + public void playagain(Player player) { + SkyPlayer skyPlayer = SkyWars.getSkyPlayer(player); + if (skyPlayer == null) { + return; + } + + skyPlayer.leave(); + try { + if (!skyPlayer.isInArena()) { + if (GameQueue.withoutGames()) { + GameQueue.addPlayer(skyPlayer); + skyPlayer.sendMessage("&cNo games available, you have been added to the queue"); + return; + } + } + + Game game = GameQueue.getJoinableGame(); + if (game == null) { + GameQueue.addPlayer(skyPlayer); + skyPlayer.sendMessage("&cNo games available, you have been added to the queue"); + return; + } + + if (SkyWars.isMultiArenaMode()) { + Arena arena = (Arena)game; + arena.addPlayer(skyPlayer, ArenaJoinCause.COMMAND); + } else if (SkyWars.isLobbyMode()) { + ProxyUtils.teleToServer(skyPlayer.getPlayer(), "", game.getName()); + } + + } catch (Exception e) { + skyPlayer.sendMessage("&cAn error occurred while trying to join a new game."); + } + } + +} diff --git a/spigot/src/main/java/fun/ogtimes/skywars/spigot/commands/acf/SkyWarsCommand.java b/spigot/src/main/java/fun/ogtimes/skywars/spigot/commands/acf/SkyWarsCommand.java new file mode 100644 index 0000000..c10ebd5 --- /dev/null +++ b/spigot/src/main/java/fun/ogtimes/skywars/spigot/commands/acf/SkyWarsCommand.java @@ -0,0 +1,292 @@ +package fun.ogtimes.skywars.spigot.commands.acf; + +import co.aikar.commands.BaseCommand; +import co.aikar.commands.annotation.*; +import fun.ogtimes.skywars.spigot.SkyWars; +import fun.ogtimes.skywars.spigot.arena.Arena; +import fun.ogtimes.skywars.spigot.arena.ArenaState; +import fun.ogtimes.skywars.spigot.arena.GameQueue; +import fun.ogtimes.skywars.spigot.config.ConfigManager; +import fun.ogtimes.skywars.spigot.events.enums.ArenaJoinCause; +import fun.ogtimes.skywars.spigot.menus.MenuListener; +import fun.ogtimes.skywars.spigot.player.SkyPlayer; +import fun.ogtimes.skywars.spigot.utils.Game; +import fun.ogtimes.skywars.spigot.utils.LocationUtil; +import fun.ogtimes.skywars.spigot.utils.Messages; +import fun.ogtimes.skywars.spigot.utils.ProxyUtils; +import org.bukkit.ChatColor; +import org.bukkit.World; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; + +import java.util.logging.Level; + +/** + * This code was made by jsexp, in case of any unauthorized + * use, at least please leave credits. + * Find more about me @ my GitHub :D + * © 2025 - jsexp + */ +@CommandAlias("sw|skywars") +public class SkyWarsCommand extends BaseCommand { + + @Default + @HelpCommand + public void help(CommandSender sender) { + + } + + @Subcommand("join") + @CommandPermission("skywars.join") + @Syntax("[arena]") + @CommandCompletion("@arenas") + public void join(Player player, @Optional Arena arena) { + if (SkyWars.isProxyMode()) return; + SkyPlayer skyPlayer = SkyWars.getSkyPlayer(player); + if (skyPlayer == null) { + return; + } + + if (arena == null) { + if (!skyPlayer.isInArena()) { + if (GameQueue.withoutGames()) { + GameQueue.addPlayer(skyPlayer); + skyPlayer.sendMessage("&cNo games available, you has been added to the queue"); + return; + } + + Game game = GameQueue.getJoinableGame(); + if (game == null) { + GameQueue.addPlayer(skyPlayer); + skyPlayer.sendMessage("&cNo games available, you has been added to the queue"); + return; + } + + if (SkyWars.isMultiArenaMode()) { + arena = (Arena)game; + arena.addPlayer(skyPlayer, ArenaJoinCause.COMMAND); + } else if (SkyWars.isLobbyMode()) { + ProxyUtils.teleToServer(skyPlayer.getPlayer(), "", game.getName()); + } + + } + return; + } + + if (SkyWars.isMultiArenaMode() && !skyPlayer.isInArena()) { + if (arena.getState() == ArenaState.INGAME && !player.hasPermission("skywars.admin.spectate")) { + skyPlayer.sendMessage(SkyWars.getMessage(Messages.GAME_INGAME_MESSAGE)); + return; + } + + if (arena.getAlivePlayers() >= arena.getMaxPlayers() && !player.hasPermission("skywars.admin.spectate")) { + skyPlayer.sendMessage(SkyWars.getMessage(Messages.GAME_FULL_MESSAGE)); + return; + } + + if (arena.isLoading()) { + skyPlayer.sendMessage(SkyWars.getMessage(Messages.GAME_LOADING)); + return; + } + + arena.addPlayer(skyPlayer, ArenaJoinCause.COMMAND); + } + } + + @Subcommand("forcestart") + @CommandPermission("skywars.admin.forcestart") + public void forceStart(Player player) { + SkyPlayer skyPlayer = SkyWars.getSkyPlayer(player); + if (skyPlayer == null) { + return; + } + + if (skyPlayer.isInArena()) { + if (skyPlayer.getArena().getPlayers().size() <= 1) { + skyPlayer.sendMessage("&cYou need at least two (2) players to force the game"); + return; + } + + Arena arena = skyPlayer.getArena(); + arena.setForceStart(); + arena.broadcast(SkyWars.getMessage(Messages.GAME_FORCESTART)); + } + } + + @Subcommand("lobbyspawn") + @CommandPermission("skywars.admin.lobbyspawn") + public void lobbySpawn(Player player) { + SkyWars.getPlugin().getConfig().set("spawn", LocationUtil.getString(player.getLocation(), true)); + ConfigManager.main.set("spawn", LocationUtil.getString(player.getLocation(), true)); + ConfigManager.main.save(); + SkyWars.spawn = player.getLocation(); + player.sendMessage("§aLobby Spawn set"); + } + + @Subcommand("tp") + @CommandPermission("skywars.admin.tp") + @Syntax("") + @CommandCompletion("@worlds") + public void tp(Player player, World world) { + SkyPlayer skyPlayer = SkyWars.getSkyPlayer(player); + if (skyPlayer == null) { + return; + } + + if (!SkyWars.isLobbyMode()) { + skyPlayer.sendMessage("&cYou can only use this command in lobby mode"); + return; + } + + player.teleport(world.getSpawnLocation()); + skyPlayer.sendMessage("&aTeleported to world &e" + world); + } + + @Subcommand("reload") + @CommandPermission("skywars.admin.reload") + public static class ReloadCommand extends BaseCommand { + + @Subcommand("all") + public void all(CommandSender sender) { + sender.sendMessage(ChatColor.translateAlternateColorCodes('&', "&a" + SkyWars.prefix + "&eReloading all files")); + + reloadConfig(sender, false); + reloadMessages(sender, false); + reloadScoreboard(sender, false); + reloadShops(sender, false); + + sender.sendMessage(ChatColor.translateAlternateColorCodes('&', "&a" + SkyWars.prefix + "All files reloaded")); + } + + @Subcommand("config") + public void config(CommandSender sender) { + reloadConfig(sender, true); + } + + @Subcommand("messages") + public void messages(CommandSender sender) { + reloadMessages(sender, true); + } + + @Subcommand("scoreboard") + public void scoreboard(CommandSender sender) { + reloadScoreboard(sender, true); + } + + @Subcommand("shops") + public void shops(CommandSender sender) { + reloadShops(sender, true); + } + + private void reloadConfig(CommandSender sender, boolean sendMessage) { + if (sendMessage) { + sender.sendMessage(ChatColor.translateAlternateColorCodes('&', "&a" + SkyWars.prefix + "&eReloading config file")); + } + + try { + SkyWars.reloadConfigMain(); + if (sendMessage) { + sender.sendMessage(ChatColor.translateAlternateColorCodes('&', "&a" + SkyWars.prefix + "Config file reloaded")); + } + } catch (Exception var4) { + sender.sendMessage(ChatColor.translateAlternateColorCodes('&', "&c" + SkyWars.prefix + "An error occurred while try to reload config file, please check console log")); + SkyWars.getPlugin().getLogger().log(Level.SEVERE, "An error occurred in config.yml", var4); + } + + } + + private void reloadMessages(CommandSender sender, boolean sendMessage) { + if (sendMessage) { + sender.sendMessage(ChatColor.translateAlternateColorCodes('&', "&a" + SkyWars.prefix + "&eReloading messages files")); + } + + try { + SkyWars.reloadMessages(); + if (sendMessage) { + sender.sendMessage(ChatColor.translateAlternateColorCodes('&', "&a" + SkyWars.prefix + "Messages files reloaded")); + } + } catch (Exception var4) { + sender.sendMessage(ChatColor.translateAlternateColorCodes('&', "&c" + SkyWars.prefix + "An error occurred while try to reload messages files, please check console log")); + SkyWars.getPlugin().getLogger().log(Level.SEVERE, "An error occurred in some message file", var4); + } + + } + + private void reloadScoreboard(CommandSender sender, boolean sendMessage) { + if (sendMessage) { + sender.sendMessage(ChatColor.translateAlternateColorCodes('&', "&a" + SkyWars.prefix + "&eReloading scoreboard file")); + } + + try { + SkyWars.reloadConfigScoreboard(); + if (sendMessage) { + sender.sendMessage(ChatColor.translateAlternateColorCodes('&', "&a" + SkyWars.prefix + "Scoreboard file reloaded")); + } + } catch (Exception var4) { + sender.sendMessage(ChatColor.translateAlternateColorCodes('&', "&c" + SkyWars.prefix + "An error occurred while try to reload scoreboard file, please check console log")); + SkyWars.getPlugin().getLogger().log(Level.SEVERE, "An error occurred in scoreboard.yml", var4); + } + + } + + private void reloadShops(CommandSender sender, boolean sendMessage) { + if (sendMessage) { + sender.sendMessage(ChatColor.translateAlternateColorCodes('&', "&a" + SkyWars.prefix + "&eReloading shop file")); + } + + try { + SkyWars.reloadConfigShop(); + if (sendMessage) { + sender.sendMessage(ChatColor.translateAlternateColorCodes('&', "&a" + SkyWars.prefix + "Shop file reloaded")); + } + } catch (Exception var6) { + sender.sendMessage(ChatColor.translateAlternateColorCodes('&', "&c" + SkyWars.prefix + "An error occurred while try to reload shop file, please check console log")); + SkyWars.getPlugin().getLogger().log(Level.SEVERE, "An error occurred in shop.yml", var6); + } + + sender.sendMessage(ChatColor.translateAlternateColorCodes('&', "&a" + SkyWars.prefix + "&eReloading abilities file")); + + try { + SkyWars.reloadConfigAbilities(); + sender.sendMessage(ChatColor.translateAlternateColorCodes('&', "&a" + SkyWars.prefix + "Abilities file reloaded")); + } catch (Exception var5) { + sender.sendMessage(ChatColor.translateAlternateColorCodes('&', "&c" + SkyWars.prefix + "An error occurred while try to reload abilities file, please check console log")); + SkyWars.getPlugin().getLogger().log(Level.SEVERE, "An error occurred in abilities.yml", var5); + } + + try { + SkyWars.reloadAbilities(); + } catch (Exception var4) { + SkyWars.getPlugin().getLogger().log(Level.SEVERE, "An error occurred while try to reload abilities objects", var4); + } + + } + + } + + @Subcommand("open") + @CommandPermission("skywars.cmd.open") + public static class OpenCommand extends BaseCommand { + + @Subcommand("lshop") + @CommandPermission("skywars.cmd.open.lshop") + public void lshop(Player player) { + SkyPlayer skyPlayer = SkyWars.getSkyPlayer(player); + if (skyPlayer == null) { + return; + } + + if (SkyWars.isMultiArenaMode() && !skyPlayer.isInArena() || SkyWars.isLobbyMode()) { + player.openInventory(MenuListener.getPlayerMenu(skyPlayer.getPlayer(), "shop").getInventory()); + } + } + + } + + @Subcommand("hologram") + @CommandPermission("skywars.admin.hologram") + public static class HologramCommand extends BaseCommand { + + } + +} diff --git a/spigot/src/main/java/fun/ogtimes/skywars/spigot/commands/admin/CmdReload.java b/spigot/src/main/java/fun/ogtimes/skywars/spigot/commands/admin/CmdReload.java deleted file mode 100644 index 83a8ab5..0000000 --- a/spigot/src/main/java/fun/ogtimes/skywars/spigot/commands/admin/CmdReload.java +++ /dev/null @@ -1,256 +0,0 @@ -package fun.ogtimes.skywars.spigot.commands.admin; - -import fun.ogtimes.skywars.spigot.SkyWars; -import fun.ogtimes.skywars.spigot.commands.BaseCommand; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collections; -import java.util.HashMap; -import java.util.Iterator; -import java.util.List; -import java.util.Map.Entry; -import java.util.logging.Level; -import org.bukkit.ChatColor; -import org.bukkit.command.CommandSender; -import org.bukkit.entity.Player; -import org.bukkit.util.StringUtil; - -public class CmdReload implements BaseCommand { - public void onCommand(CommandSender sender, String[] args) { - Player var3 = null; - if (!(sender instanceof Player)) { - sender.sendMessage("You aren't a player!"); - } else { - var3 = (Player) sender; - if (!var3.hasPermission(this.getPermission())) { - var3.sendMessage("§cYou do not have permission!"); - } else if (args.length == 0) { - this.helpDefault(sender); - } else { - if (args.length >= 1) { - String var4 = args[0].toLowerCase(); - byte var5 = -1; - switch(var4.hashCode()) { - case -1354792126: - if (var4.equals("config")) { - var5 = 0; - } - break; - case -462094004: - if (var4.equals("messages")) { - var5 = 1; - } - break; - case 96673: - if (var4.equals("all")) { - var5 = 4; - } - break; - case 109264530: - if (var4.equals("score")) { - var5 = 2; - } - break; - case 109413437: - if (var4.equals("shops")) { - var5 = 3; - } - } - - switch(var5) { - case 0: - if (!sender.hasPermission("skywars.admin.reload.config")) { - return; - } - - this.reloadConfig(sender, true); - break; - case 1: - if (!sender.hasPermission("skywars.admin.reload.messages")) { - return; - } - - this.reloadMessages(sender, true); - break; - case 2: - if (!sender.hasPermission("skywars.admin.reload.score")) { - return; - } - - this.reloadScoreboard(sender, true); - break; - case 3: - if (!sender.hasPermission("skywars.admin.reload.shops")) { - return; - } - - this.reloadShops(sender, true); - break; - case 4: - if (!sender.hasPermission("skywars.admin.reload.all")) { - return; - } - - sender.sendMessage(ChatColor.translateAlternateColorCodes('&', "&a" + SkyWars.prefix + "&eReloading all files")); - this.reloadConfig(sender, false); - this.reloadMessages(sender, false); - this.reloadScoreboard(sender, false); - this.reloadShops(sender, false); - sender.sendMessage(ChatColor.translateAlternateColorCodes('&', "&a" + SkyWars.prefix + "All files reloaded")); - break; - default: - this.helpDefault(sender); - } - } - - } - } - } - - public String help(CommandSender sender) { - String var2 = "&a/sw reload - &bFor more help about reload command"; - return sender.hasPermission(this.getPermission()) ? var2 : ""; - } - - public String getPermission() { - return "skywars.admin.reload"; - } - - public boolean console() { - return false; - } - - private void reloadConfig(CommandSender var1, boolean var2) { - if (var2) { - var1.sendMessage(ChatColor.translateAlternateColorCodes('&', "&a" + SkyWars.prefix + "&eReloading config file")); - } - - try { - SkyWars.reloadConfigMain(); - if (var2) { - var1.sendMessage(ChatColor.translateAlternateColorCodes('&', "&a" + SkyWars.prefix + "Config file reloaded")); - } - } catch (Exception var4) { - var1.sendMessage(ChatColor.translateAlternateColorCodes('&', "&c" + SkyWars.prefix + "An error occurred while try to reload config file, please check console log")); - SkyWars.getPlugin().getLogger().log(Level.SEVERE, "An error occurred in config.yml", var4); - } - - } - - private void reloadMessages(CommandSender var1, boolean var2) { - if (var2) { - var1.sendMessage(ChatColor.translateAlternateColorCodes('&', "&a" + SkyWars.prefix + "&eReloading messages files")); - } - - try { - SkyWars.reloadMessages(); - if (var2) { - var1.sendMessage(ChatColor.translateAlternateColorCodes('&', "&a" + SkyWars.prefix + "Messages files reloaded")); - } - } catch (Exception var4) { - var1.sendMessage(ChatColor.translateAlternateColorCodes('&', "&c" + SkyWars.prefix + "An error occurred while try to reload messages files, please check console log")); - SkyWars.getPlugin().getLogger().log(Level.SEVERE, "An error occurred in some message file", var4); - } - - } - - private void reloadScoreboard(CommandSender var1, boolean var2) { - if (var2) { - var1.sendMessage(ChatColor.translateAlternateColorCodes('&', "&a" + SkyWars.prefix + "&eReloading scoreboard file")); - } - - try { - SkyWars.reloadConfigScoreboard(); - if (var2) { - var1.sendMessage(ChatColor.translateAlternateColorCodes('&', "&a" + SkyWars.prefix + "Scoreboard file reloaded")); - } - } catch (Exception var4) { - var1.sendMessage(ChatColor.translateAlternateColorCodes('&', "&c" + SkyWars.prefix + "An error occurred while try to reload scoreboard file, please check console log")); - SkyWars.getPlugin().getLogger().log(Level.SEVERE, "An error occurred in scoreboard.yml", var4); - } - - } - - private void reloadShops(CommandSender var1, boolean var2) { - if (var2) { - var1.sendMessage(ChatColor.translateAlternateColorCodes('&', "&a" + SkyWars.prefix + "&eReloading shop file")); - } - - try { - SkyWars.reloadConfigShop(); - if (var2) { - var1.sendMessage(ChatColor.translateAlternateColorCodes('&', "&a" + SkyWars.prefix + "Shop file reloaded")); - } - } catch (Exception var6) { - var1.sendMessage(ChatColor.translateAlternateColorCodes('&', "&c" + SkyWars.prefix + "An error occurred while try to reload shop file, please check console log")); - SkyWars.getPlugin().getLogger().log(Level.SEVERE, "An error occurred in shop.yml", var6); - } - - var1.sendMessage(ChatColor.translateAlternateColorCodes('&', "&a" + SkyWars.prefix + "&eReloading abilities file")); - - try { - SkyWars.reloadConfigAbilities(); - var1.sendMessage(ChatColor.translateAlternateColorCodes('&', "&a" + SkyWars.prefix + "Abilities file reloaded")); - } catch (Exception var5) { - var1.sendMessage(ChatColor.translateAlternateColorCodes('&', "&c" + SkyWars.prefix + "An error occurred while try to reload abilities file, please check console log")); - SkyWars.getPlugin().getLogger().log(Level.SEVERE, "An error occurred in abilities.yml", var5); - } - - try { - SkyWars.reloadAbilities(); - } catch (Exception var4) { - SkyWars.getPlugin().getLogger().log(Level.SEVERE, "An error occurred while try to reload abilities objects", var4); - } - - } - - public void helpDefault(CommandSender var1) { - HashMap var2 = new HashMap(); - var2.put("all", "&a/sw reload &call &a- &bExecute all previous sub commands"); - var2.put("config", "&a/sw reload &econfig &a- &bReload config.yml file"); - var2.put("messages", "&a/sw reload &emessages &a- &bReload all messages files"); - var2.put("score", "&a/sw reload &escore &a- &bReload scoreboard file"); - var2.put("shops", "&a/sw reload &eshops &a- &bReload shop menu and messages"); - var1.sendMessage("------------ &a[SkyWars Reload Help] &f------------"); - - for (Object object : var2.entrySet()) { - Entry var4 = (Entry) object; - if (var1.hasPermission("skywars.admin.reload." + var4.getKey())) { - var1.sendMessage(ChatColor.translateAlternateColorCodes('&', (String) var4.getValue())); - } - } - - var1.sendMessage("--------------------------------------------"); - } - - public List onTabComplete(CommandSender sender, String[] args) { - if (!sender.hasPermission(this.getPermission())) { - return null; - } else if (args.length == 1) { - HashMap var3 = new HashMap(); - var3.put("all", "&a/sw reload &call &a- &bExecute all previous sub commands"); - var3.put("config", "&a/sw reload &econfig &a- &bReload config.yml file"); - var3.put("messages", "&a/sw reload &emessages &a- &bReload all messages files"); - var3.put("score", "&a/sw reload &escore &a- &bReload scoreboard file"); - var3.put("shops", "&a/sw reload &eshops &a- &bReload shop menu and messages"); - String[] var4 = new String[]{"config", "messages", "score", "shops", "all"}; - ArrayList var5 = new ArrayList(Arrays.asList(var4)); - ArrayList var6 = new ArrayList(); - StringUtil.copyPartialMatches(args[0], var5, var6); - Collections.sort(var6); - sender.sendMessage("--------------------------------------------"); - - for (Object object : var3.entrySet()) { - Entry var8 = (Entry) object; - if (var6.contains(var8.getKey())) { - sender.sendMessage(ChatColor.translateAlternateColorCodes('&', (String) var8.getValue())); - } - } - - sender.sendMessage("--------------------------------------------"); - return var6; - } else { - return null; - } - } -} diff --git a/spigot/src/main/java/fun/ogtimes/skywars/spigot/commands/admin/edit/arena/CmdTp.java b/spigot/src/main/java/fun/ogtimes/skywars/spigot/commands/admin/edit/arena/CmdTp.java deleted file mode 100644 index 51cfe67..0000000 --- a/spigot/src/main/java/fun/ogtimes/skywars/spigot/commands/admin/edit/arena/CmdTp.java +++ /dev/null @@ -1,77 +0,0 @@ -package fun.ogtimes.skywars.spigot.commands.admin.edit.arena; - -import fun.ogtimes.skywars.spigot.commands.BaseCommand; -import java.util.ArrayList; -import java.util.Collections; -import java.util.Iterator; -import java.util.List; -import org.bukkit.Bukkit; -import org.bukkit.ChatColor; -import org.bukkit.World; -import org.bukkit.command.CommandSender; -import org.bukkit.entity.Player; -import org.bukkit.util.StringUtil; - -public class CmdTp implements BaseCommand { - public void onCommand(CommandSender sender, String[] args) { - Player var3 = null; - if (!(sender instanceof Player)) { - sender.sendMessage("You aren't a player!"); - } else { - var3 = (Player) sender; - if (!var3.hasPermission(this.getPermission())) { - var3.sendMessage("§cYou do not have permission!"); - } else if (args.length == 1) { - World var7 = Bukkit.getWorld(args[0]); - if (var7 == null) { - var3.sendMessage("§cThat world does not exist!"); - } else { - var3.getPlayer().teleport(var7.getSpawnLocation()); - } - } else { - var3.sendMessage("§cUsage: /sw tp "); - StringBuilder var4 = new StringBuilder(); - - for (World var6 : Bukkit.getWorlds()) { - var4.append(", ").append(var6.getName()); - } - - var3.sendMessage(String.format("§cWorlds Loaded List: %s", var4.toString().replaceFirst(", ", ""))); - } - } - } - - public String help(CommandSender sender) { - String var2 = "&a/sw tp &e &a- &bTeleport to another world"; - return sender.hasPermission(this.getPermission()) ? var2 : ""; - } - - public String getPermission() { - return "skywars.admin.tp"; - } - - public boolean console() { - return false; - } - - public List onTabComplete(CommandSender sender, String[] args) { - if (!sender.hasPermission(this.getPermission())) { - return null; - } else if (args.length != 1) { - return null; - } else { - ArrayList var3 = new ArrayList(); - ArrayList var4 = new ArrayList(); - - for (World var6 : Bukkit.getWorlds()) { - var3.add(var6.getName()); - } - - sender.sendMessage("--------------------------------------------"); - sender.sendMessage(ChatColor.translateAlternateColorCodes('&', "&aWorlds loaded (&b" + var3.size() + "&a):")); - StringUtil.copyPartialMatches(args[0], var3, var4); - Collections.sort(var4); - return var4; - } - } -} diff --git a/spigot/src/main/java/fun/ogtimes/skywars/spigot/commands/admin/edit/lobby/CmdLobbySpawn.java b/spigot/src/main/java/fun/ogtimes/skywars/spigot/commands/admin/edit/lobby/CmdLobbySpawn.java deleted file mode 100644 index 67e2146..0000000 --- a/spigot/src/main/java/fun/ogtimes/skywars/spigot/commands/admin/edit/lobby/CmdLobbySpawn.java +++ /dev/null @@ -1,47 +0,0 @@ -package fun.ogtimes.skywars.spigot.commands.admin.edit.lobby; - -import fun.ogtimes.skywars.spigot.SkyWars; -import fun.ogtimes.skywars.spigot.commands.BaseCommand; -import fun.ogtimes.skywars.spigot.config.ConfigManager; -import fun.ogtimes.skywars.spigot.utils.LocationUtil; -import java.util.List; -import org.bukkit.command.CommandSender; -import org.bukkit.entity.Player; - -public class CmdLobbySpawn implements BaseCommand { - public void onCommand(CommandSender sender, String[] args) { - Player player; - if (!(sender instanceof Player)) { - sender.sendMessage("You aren't a player!"); - } else { - player = (Player)sender; - if (!player.hasPermission(this.getPermission())) { - player.sendMessage("§cYou do not have permission!"); - } else if (args.length == 0) { - SkyWars.getPlugin().getConfig().set("spawn", LocationUtil.getString(player.getLocation(), true)); - ConfigManager.main.set("spawn", LocationUtil.getString(player.getLocation(), true)); - ConfigManager.main.save(); - SkyWars.spawn = player.getLocation(); - player.sendMessage("§aLobby Spawn set"); - } else { - } - } - } - - public String help(CommandSender sender) { - String var2 = "&a/sw lobbyspawn &a- &bSet lobby spawn"; - return sender.hasPermission(this.getPermission()) ? var2 : ""; - } - - public String getPermission() { - return "skywars.admin"; - } - - public boolean console() { - return false; - } - - public List onTabComplete(CommandSender sender, String[] args) { - return null; - } -} diff --git a/spigot/src/main/java/fun/ogtimes/skywars/spigot/commands/user/CmdCoins.java b/spigot/src/main/java/fun/ogtimes/skywars/spigot/commands/user/CmdCoins.java index f654db6..6a363ed 100644 --- a/spigot/src/main/java/fun/ogtimes/skywars/spigot/commands/user/CmdCoins.java +++ b/spigot/src/main/java/fun/ogtimes/skywars/spigot/commands/user/CmdCoins.java @@ -12,13 +12,13 @@ public class CmdCoins implements BaseCommand { public void onCommand(CommandSender sender, String[] args) { - Player var3 = null; - SkyPlayer var4 = null; + Player player = null; + SkyPlayer skyPlayer = null; boolean var5 = false; if (sender instanceof Player) { - var3 = (Player) sender; - var4 = SkyWars.getSkyPlayer(var3); - if (var4 == null) { + player = (Player) sender; + skyPlayer = SkyWars.getSkyPlayer(player); + if (skyPlayer == null) { return; } @@ -29,24 +29,24 @@ public void onCommand(CommandSender sender, String[] args) { sender.sendMessage("§cYou don't have permission!"); } else if (args.length == 0) { if (var5) { - double var12 = var4.getCoins(); - var4.sendMessage("&aCoins: &e" + var12); + double coins = skyPlayer.getCoins(); + skyPlayer.sendMessage("&aCoins: &e" + coins); } else { sender.sendMessage(ChatColor.translateAlternateColorCodes('&', this.help(sender))); } } else { if (args.length >= 1 && sender.hasPermission("skywars.admin.coins")) { - String var6 = args[0].toLowerCase(); + String firstArg = args[0].toLowerCase(); byte var7 = -1; - switch(var6.hashCode()) { + switch(firstArg.hashCode()) { case -934610812: - if (var6.equals("remove")) { + if (firstArg.equals("remove")) { var7 = 1; } break; case 96417: - if (var6.equals("add")) { + if (firstArg.equals("add")) { var7 = 0; } } @@ -66,7 +66,7 @@ public void onCommand(CommandSender sender, String[] args) { if (args.length == 2) { if (var5) { var13 = Integer.parseInt(args[1]); - SkyEconomyManager.addCoins(var4.getPlayer(), var13, false); + SkyEconomyManager.addCoins(skyPlayer.getPlayer(), var13, false); } else { sender.sendMessage(ChatColor.translateAlternateColorCodes('&', "&cType: /sw coins add [PlayerName]")); } @@ -102,7 +102,7 @@ public void onCommand(CommandSender sender, String[] args) { if (args.length == 2) { if (var5) { var13 = Integer.parseInt(args[1]); - SkyEconomyManager.removeCoins(var4.getPlayer(), var13); + SkyEconomyManager.removeCoins(skyPlayer.getPlayer(), var13); } else { sender.sendMessage(ChatColor.translateAlternateColorCodes('&', "&cType: /sw coins remove [PlayerName]")); } diff --git a/spigot/src/main/java/fun/ogtimes/skywars/spigot/commands/user/CmdForceStart.java b/spigot/src/main/java/fun/ogtimes/skywars/spigot/commands/user/CmdForceStart.java deleted file mode 100644 index 367b1c2..0000000 --- a/spigot/src/main/java/fun/ogtimes/skywars/spigot/commands/user/CmdForceStart.java +++ /dev/null @@ -1,56 +0,0 @@ -package fun.ogtimes.skywars.spigot.commands.user; - -import fun.ogtimes.skywars.spigot.SkyWars; -import fun.ogtimes.skywars.spigot.arena.Arena; -import fun.ogtimes.skywars.spigot.commands.BaseCommand; -import fun.ogtimes.skywars.spigot.player.SkyPlayer; -import fun.ogtimes.skywars.spigot.utils.Messages; -import java.util.List; -import org.bukkit.command.CommandSender; -import org.bukkit.entity.Player; - -public class CmdForceStart implements BaseCommand { - public void onCommand(CommandSender sender, String[] args) { - Player var3 = null; - if (!(sender instanceof Player)) { - sender.sendMessage("You aren't a player!"); - } else { - var3 = (Player) sender; - if (!var3.hasPermission(this.getPermission())) { - var3.sendMessage("§cYou do not have permission!"); - } else { - if (args.length < 1) { - SkyPlayer var4 = SkyWars.getSkyPlayer(var3); - if (var4.isInArena()) { - if (var4.getArena().getPlayers().size() <= 1) { - var4.sendMessage("&cYou need at least two (2) players to force the game"); - return; - } - - Arena var5 = var4.getArena(); - var5.setForceStart(); - var5.broadcast(SkyWars.getMessage(Messages.GAME_FORCESTART)); - } - } - - } - } - } - - public String help(CommandSender sender) { - String var2 = "&a/sw &eforcestart &a- &bForce to start game"; - return sender.hasPermission(this.getPermission()) ? var2 : ""; - } - - public String getPermission() { - return "skywars.admin.forcestart"; - } - - public boolean console() { - return false; - } - - public List onTabComplete(CommandSender sender, String[] args) { - return null; - } -} diff --git a/spigot/src/main/java/fun/ogtimes/skywars/spigot/commands/user/CmdJoin.java b/spigot/src/main/java/fun/ogtimes/skywars/spigot/commands/user/CmdJoin.java deleted file mode 100644 index 8143bc6..0000000 --- a/spigot/src/main/java/fun/ogtimes/skywars/spigot/commands/user/CmdJoin.java +++ /dev/null @@ -1,142 +0,0 @@ -package fun.ogtimes.skywars.spigot.commands.user; - -import fun.ogtimes.skywars.spigot.SkyWars; -import fun.ogtimes.skywars.spigot.arena.Arena; -import fun.ogtimes.skywars.spigot.arena.ArenaManager; -import fun.ogtimes.skywars.spigot.arena.ArenaState; -import fun.ogtimes.skywars.spigot.arena.GameQueue; -import fun.ogtimes.skywars.spigot.commands.BaseCommand; -import fun.ogtimes.skywars.spigot.events.enums.ArenaJoinCause; -import fun.ogtimes.skywars.spigot.player.SkyPlayer; -import fun.ogtimes.skywars.spigot.utils.ProxyUtils; -import fun.ogtimes.skywars.spigot.utils.Game; -import fun.ogtimes.skywars.spigot.utils.Messages; -import java.util.ArrayList; -import java.util.Collections; -import java.util.Iterator; -import java.util.List; -import org.bukkit.ChatColor; -import org.bukkit.command.CommandSender; -import org.bukkit.entity.Player; -import org.bukkit.util.StringUtil; - -public class CmdJoin implements BaseCommand { - - @Override - public void onCommand(CommandSender sender, String[] args) { - if (!(sender instanceof Player player)) { - sender.sendMessage("You aren't a player!"); - return; - } - - SkyPlayer skyPlayer = SkyWars.getSkyPlayer(player); - if (skyPlayer == null) { - return; - } - - if (!player.hasPermission(this.getPermission())) { - player.sendMessage("§cYou do not have permission!"); - return; - } - - Arena arena; - if (args.length == 0) { - if (!skyPlayer.isInArena()) { - if (GameQueue.withoutGames()) { - GameQueue.addPlayer(skyPlayer); - skyPlayer.sendMessage("&cNo games available, you has been added to the queue"); - return; - } - - Game game = GameQueue.getJoinableGame(); - if (game == null) { - GameQueue.addPlayer(skyPlayer); - skyPlayer.sendMessage("&cNo games available, you has been added to the queue"); - return; - } - - if (SkyWars.isMultiArenaMode()) { - arena = (Arena)game; - arena.addPlayer(skyPlayer, ArenaJoinCause.COMMAND); - } else if (SkyWars.isLobbyMode()) { - ProxyUtils.teleToServer(skyPlayer.getPlayer(), "", game.getName()); - } - - } - } else if (args.length == 1 && SkyWars.isMultiArenaMode() && !skyPlayer.isInArena()) { - String var7 = args[0]; - arena = ArenaManager.getGame(var7); - if (arena == null) { - skyPlayer.sendMessage("&cThis arena doesn't exists"); - return; - } - - if (arena.getState() == ArenaState.INGAME && !player.hasPermission("skywars.admin.spectate")) { - skyPlayer.sendMessage(SkyWars.getMessage(Messages.GAME_INGAME_MESSAGE)); - return; - } - - if (arena.getAlivePlayers() >= arena.getMaxPlayers() && !player.hasPermission("skywars.admin.spectate")) { - skyPlayer.sendMessage(SkyWars.getMessage(Messages.GAME_FULL_MESSAGE)); - return; - } - - if (arena.isLoading()) { - skyPlayer.sendMessage(SkyWars.getMessage(Messages.GAME_LOADING)); - return; - } - - arena.addPlayer(skyPlayer, ArenaJoinCause.COMMAND); - } - } - - public String help(CommandSender sender) { - String var2 = "&a/sw join &e[ArenaName] &a- &bJoin to a random or specific"; - if (SkyWars.isLobbyMode()) { - var2 = "&a/sw join &a- &bJoin to a random game"; - } - - return sender.hasPermission(this.getPermission()) ? var2 : ""; - } - - public String getPermission() { - return "skywars.join"; - } - - public boolean console() { - return false; - } - - public List onTabComplete(CommandSender sender, String[] args) { - if (sender.hasPermission(this.getPermission()) && !SkyWars.isLobbyMode()) { - if (args.length != 1) { - return null; - } else { - ArrayList var3 = new ArrayList(); - ArrayList var4 = new ArrayList(); - Iterator var5 = ArenaManager.getGames().iterator(); - - while(true) { - Arena var6; - do { - if (!var5.hasNext()) { - sender.sendMessage("--------------------------------------------"); - sender.sendMessage(ChatColor.translateAlternateColorCodes('&', "&aAvailable games (&b" + var3.size() + "&a):")); - StringUtil.copyPartialMatches(args[0], var3, var4); - Collections.sort(var4); - return var4; - } - - var6 = (Arena)var5.next(); - } while(var6.getState() != ArenaState.WAITING && var6.getState() != ArenaState.STARTING); - - if (var6.getAlivePlayers() < var6.getMaxPlayers()) { - var3.add(var6.getName()); - } - } - } - } else { - return null; - } - } -} diff --git a/spigot/src/main/java/fun/ogtimes/skywars/spigot/commands/user/CmdOpen.java b/spigot/src/main/java/fun/ogtimes/skywars/spigot/commands/user/CmdOpen.java deleted file mode 100644 index 2229ef6..0000000 --- a/spigot/src/main/java/fun/ogtimes/skywars/spigot/commands/user/CmdOpen.java +++ /dev/null @@ -1,63 +0,0 @@ -package fun.ogtimes.skywars.spigot.commands.user; - -import fun.ogtimes.skywars.spigot.SkyWars; -import fun.ogtimes.skywars.spigot.commands.BaseCommand; -import fun.ogtimes.skywars.spigot.menus.MenuListener; -import fun.ogtimes.skywars.spigot.player.SkyPlayer; -import java.util.ArrayList; -import java.util.List; -import org.bukkit.command.CommandSender; -import org.bukkit.entity.Player; - -public class CmdOpen implements BaseCommand { - public void onCommand(CommandSender sender, String[] args) { - if (!(sender instanceof Player var3)) { - sender.sendMessage("Only for Players"); - } else { - if (args.length != 1) { - var3.sendMessage("§cUsage: /sw open lshop"); - } else { - String var4 = args[0]; - byte var5 = -1; - if (var4.hashCode() == 103269730) { - if (var4.equals("lshop")) { - var5 = 0; - } - } - - if (var5 == 0) { - if (var3.hasPermission("skywars.cmd.open.lshop")) { - SkyPlayer var6 = SkyWars.getSkyPlayer(var3); - if (var6 == null) { - } else if (SkyWars.isMultiArenaMode() && !var6.isInArena() || SkyWars.isLobbyMode()) { - var3.openInventory(MenuListener.getPlayerMenu(var6.getPlayer(), "shop").getInventory()); - } - } - } - } - } - } - - public String help(CommandSender sender) { - String var2 = "&a/sw &eopen lshop &a- &bOpen Lobby Kit Shop Inventory"; - return sender.hasPermission(this.getPermission()) ? var2 : ""; - } - - public String getPermission() { - return "skywars.cmd.open"; - } - - public boolean console() { - return false; - } - - public List onTabComplete(CommandSender sender, String[] args) { - if (args.length >= 1) { - ArrayList var3 = new ArrayList(); - var3.add("lshop"); - return var3; - } else { - return null; - } - } -} diff --git a/spigot/src/main/java/fun/ogtimes/skywars/spigot/commands/user/CmdOthers.java b/spigot/src/main/java/fun/ogtimes/skywars/spigot/commands/user/CmdOthers.java deleted file mode 100644 index 1ec0236..0000000 --- a/spigot/src/main/java/fun/ogtimes/skywars/spigot/commands/user/CmdOthers.java +++ /dev/null @@ -1,76 +0,0 @@ -package fun.ogtimes.skywars.spigot.commands.user; - -import fun.ogtimes.skywars.spigot.SkyWars; -import fun.ogtimes.skywars.spigot.arena.Arena; -import fun.ogtimes.skywars.spigot.arena.GameQueue; -import fun.ogtimes.skywars.spigot.events.enums.ArenaJoinCause; -import fun.ogtimes.skywars.spigot.events.enums.ArenaLeaveCause; -import fun.ogtimes.skywars.spigot.listener.DamageListener; -import fun.ogtimes.skywars.spigot.player.SkyPlayer; -import fun.ogtimes.skywars.spigot.utils.Game; -import fun.ogtimes.skywars.spigot.utils.ProxyUtils; -import fun.ogtimes.skywars.spigot.utils.Messages; -import java.util.UUID; -import org.bukkit.Bukkit; -import org.bukkit.command.Command; -import org.bukkit.command.CommandExecutor; -import org.bukkit.command.CommandSender; -import org.bukkit.entity.Player; - -public class CmdOthers implements CommandExecutor { - - public CmdOthers(SkyWars instance) { - instance.getCommand("leave").setExecutor(this); - instance.getCommand("salir").setExecutor(this); - instance.getCommand("playagain").setExecutor(this); - } - - @Override - public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { - if (!(sender instanceof Player player)) return true; - - SkyPlayer skyPlayer = SkyWars.getSkyPlayer(player); - if (skyPlayer == null) { - return false; - } - - switch (label.toLowerCase()) { - case "leave": - case "salir": - skyPlayer.leave(); - break; - case "playagain": - skyPlayer.leave(); - try { - if (!skyPlayer.isInArena()) { - if (GameQueue.withoutGames()) { - GameQueue.addPlayer(skyPlayer); - skyPlayer.sendMessage("&cNo games available, you have been added to the queue"); - return true; - } - } - - Game game = GameQueue.getJoinableGame(); - if (game == null) { - GameQueue.addPlayer(skyPlayer); - skyPlayer.sendMessage("&cNo games available, you have been added to the queue"); - return true; - } - - if (SkyWars.isMultiArenaMode()) { - Arena arena = (Arena)game; - arena.addPlayer(skyPlayer, ArenaJoinCause.COMMAND); - } else if (SkyWars.isLobbyMode()) { - ProxyUtils.teleToServer(skyPlayer.getPlayer(), "", game.getName()); - } - - } catch (Exception e) { - skyPlayer.sendMessage("&cAn error occurred while trying to join a new game."); - return true; - } - break; - } - - return true; - } -} From 2d1c3150c3459bd0c602b741def48e4cb70a1bbb Mon Sep 17 00:00:00 2001 From: hardcorefactions <108526035+hardcorefactions@users.noreply.github.com> Date: Wed, 21 Jan 2026 17:15:40 +0100 Subject: [PATCH 3/4] feat: arena and hologram commands --- .../spigot/commands/CommandManager.java | 1 + .../spigot/commands/acf/SkyWarsCommand.java | 335 +++++++++- .../commands/admin/edit/arena/CmdArena.java | 618 ------------------ .../admin/edit/lobby/CmdHologram.java | 178 ----- 4 files changed, 328 insertions(+), 804 deletions(-) delete mode 100644 spigot/src/main/java/fun/ogtimes/skywars/spigot/commands/admin/edit/arena/CmdArena.java delete mode 100644 spigot/src/main/java/fun/ogtimes/skywars/spigot/commands/admin/edit/lobby/CmdHologram.java diff --git a/spigot/src/main/java/fun/ogtimes/skywars/spigot/commands/CommandManager.java b/spigot/src/main/java/fun/ogtimes/skywars/spigot/commands/CommandManager.java index 0f8249a..cb518db 100644 --- a/spigot/src/main/java/fun/ogtimes/skywars/spigot/commands/CommandManager.java +++ b/spigot/src/main/java/fun/ogtimes/skywars/spigot/commands/CommandManager.java @@ -23,6 +23,7 @@ public CommandManager(SkyWars instance) { this.instance = instance; this.manager = new BukkitCommandManager(instance); + this.manager.enableUnstableAPI("help"); this.registerContexts(); this.registerCompletions(); diff --git a/spigot/src/main/java/fun/ogtimes/skywars/spigot/commands/acf/SkyWarsCommand.java b/spigot/src/main/java/fun/ogtimes/skywars/spigot/commands/acf/SkyWarsCommand.java index c10ebd5..8a38f7c 100644 --- a/spigot/src/main/java/fun/ogtimes/skywars/spigot/commands/acf/SkyWarsCommand.java +++ b/spigot/src/main/java/fun/ogtimes/skywars/spigot/commands/acf/SkyWarsCommand.java @@ -4,21 +4,23 @@ import co.aikar.commands.annotation.*; import fun.ogtimes.skywars.spigot.SkyWars; import fun.ogtimes.skywars.spigot.arena.Arena; +import fun.ogtimes.skywars.spigot.arena.ArenaManager; import fun.ogtimes.skywars.spigot.arena.ArenaState; import fun.ogtimes.skywars.spigot.arena.GameQueue; import fun.ogtimes.skywars.spigot.config.ConfigManager; import fun.ogtimes.skywars.spigot.events.enums.ArenaJoinCause; import fun.ogtimes.skywars.spigot.menus.MenuListener; import fun.ogtimes.skywars.spigot.player.SkyPlayer; -import fun.ogtimes.skywars.spigot.utils.Game; -import fun.ogtimes.skywars.spigot.utils.LocationUtil; -import fun.ogtimes.skywars.spigot.utils.Messages; -import fun.ogtimes.skywars.spigot.utils.ProxyUtils; -import org.bukkit.ChatColor; -import org.bukkit.World; +import fun.ogtimes.skywars.spigot.utils.*; +import fun.ogtimes.skywars.spigot.utils.sky.SkyHologram; +import org.bukkit.*; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; +import java.io.File; +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; import java.util.logging.Level; /** @@ -33,7 +35,7 @@ public class SkyWarsCommand extends BaseCommand { @Default @HelpCommand public void help(CommandSender sender) { - + showCommandHelp(); } @Subcommand("join") @@ -142,6 +144,262 @@ public void tp(Player player, World world) { skyPlayer.sendMessage("&aTeleported to world &e" + world); } + @Subcommand("arena") + @CommandPermission("skywars.admin.arena") + public static class ArenaCommand extends BaseCommand { + + @Subcommand("load") + @CommandPermission("skywars.admin.arena.load") + @Syntax("") + @CommandCompletion("@arenas") + public void load(CommandSender sender, String worldName) { + File mapsFolder = new File(SkyWars.maps); + + if (!mapsFolder.exists() || !mapsFolder.isDirectory()) { + sender.sendMessage("§cMaps folder not found."); + return; + } + + File[] mapCandidates = mapsFolder.listFiles(); + if (mapCandidates == null) { + sender.sendMessage("§cMaps folder is empty."); + return; + } + + boolean loaded = false; + for (File candidate : mapCandidates) { + if (!candidate.isDirectory()) continue; + if (!candidate.getName().contains(worldName)) continue; + + try { + ArenaManager.delete(new File(candidate.getName())); + ArenaManager.copyFolder(candidate, new File(candidate.getName())); + + WorldCreator creator = new WorldCreator(worldName); + creator.generateStructures(false); + + World world = creator.createWorld(); + if (world != null) { + world.setAutoSave(false); + world.setKeepSpawnInMemory(false); + world.setGameRuleValue("doMobSpawning", "false"); + world.setGameRuleValue("doDaylightCycle", "false"); + world.setGameRuleValue("mobGriefing", "false"); + world.setGameRuleValue("commandBlockOutput", "false"); + world.setTime(0L); + } + + sender.sendMessage("§a" + worldName + " loaded"); + loaded = true; + } catch (Exception ex) { + ex.printStackTrace(); + } + } + + if (!loaded) { + sender.sendMessage("§cWorld not found in maps folder: " + worldName); + } + } + + @Subcommand("create") + @CommandPermission("skywars.admin.arena.create") + public void create(CommandSender sender, String arenaName) { + Arena existingArena = ArenaManager.getGame(arenaName); + if (existingArena != null) { + sender.sendMessage("§cThis arena already exists!"); + return; + } + + new Arena(arenaName, true); + sender.sendMessage("§a" + arenaName + " has been created"); + } + + @Subcommand("disable") + @CommandPermission("skywars.admin.arena.disable") + @Syntax("") + @CommandCompletion("@arenas") + public void disable(CommandSender sender, Arena arena) { + if (arena.isDisabled()) { + sender.sendMessage("§cThe arena is already disabled"); + return; + } + + arena.setDisabled(true); + arena.restart(); + sender.sendMessage("§a" + arena.getName() + " has been disabled and now you can edit it"); + } + + @Subcommand("reload") + @CommandPermission("skywars.admin.arena.reload") + @Syntax("") + @CommandCompletion("@arenas") + public void reload(CommandSender sender, Arena arena) { + arena.setDisabled(false); + arena.restart(); + sender.sendMessage("§a" + arena.getName() + " has been reloaded" + (arena.isDisabled() ? " §aand now is enabled" : "")); + } + + @Subcommand("save") + @CommandPermission("skywars.admin.arena.save") + @Syntax("") + @CommandCompletion("@arenas") + public void save(CommandSender sender, Arena arena) { + if (!arena.isDisabled()) { + sender.sendMessage("§cYou can't save an arena if it is not disabled"); + return; + } + + arena.getWorld().save(); + + String mapPath = SkyWars.maps + File.separator + arena.getName(); + ZipDir.zipFile(mapPath); + sender.sendMessage("§aBackup created for " + arena.getName()); + + File mapFolder = new File(mapPath); + ArenaManager.delete(mapFolder); + + try { + ArenaManager.copyFolder(new File(arena.getName()), mapFolder); + } catch (IOException ex) { + ex.printStackTrace(); + } + + sender.sendMessage("§a" + arena.getName() + " has been saved in maps folder"); + } + + @Subcommand("spawn") + @CommandPermission("skywars.admin.arena.create") + public static class SpawnCommand extends BaseCommand { + + @Subcommand("add") + public void add(Player player) { + Arena arena = getArenaFromCurrentWorld(player); + if (arena == null) { + player.sendMessage("§cFirst you need create the arena (/sw arena create )"); + return; + } + + if (!arena.isDisabled()) { + player.sendMessage("§cYou can't edit an arena if it is not disabled"); + return; + } + + List spawnpoints = new ArrayList<>(arena.getConfig().getStringList("spawnpoints")); + spawnpoints.add(LocationUtil.getString(player.getLocation(), true)); + arena.getConfig().set("spawnpoints", spawnpoints); + arena.getConfig().save(); + player.sendMessage("§aSpawn added (" + spawnpoints.size() + ")"); + } + + @Subcommand("remove") + public void remove(Player player, @Optional Integer index) { + Arena arena = getArenaFromCurrentWorld(player); + if (arena == null) { + player.sendMessage("§cFirst you need create the arena (/sw arena create )"); + return; + } + + if (!arena.isDisabled()) { + player.sendMessage("§cYou can't edit an arena if it is not disabled"); + return; + } + + List spawnpoints = new ArrayList<>(arena.getConfig().getStringList("spawnpoints")); + if (spawnpoints.isEmpty()) { + player.sendMessage("§cThis arena don't have spawn points"); + return; + } + + int indexToRemove = index == null ? spawnpoints.size() : index; + if (indexToRemove < 1 || indexToRemove > spawnpoints.size()) { + player.sendMessage("§cInvalid spawn index. Choose between 1 and " + spawnpoints.size() + "."); + return; + } + + spawnpoints.remove(indexToRemove - 1); + arena.getConfig().set("spawnpoints", spawnpoints); + arena.getConfig().save(); + player.sendMessage("§aSpawn #" + indexToRemove + " removed"); + } + + @Subcommand("spectator|spect") + public void spectator(Player player, String arenaName) { + Arena arena = getArenaFromCurrentWorld(player); + if (arena == null) { + player.sendMessage("§cFirst you need create the arena (/sw arena create )"); + return; + } + + if (!arena.isDisabled()) { + player.sendMessage("§cYou can't edit an arena if it is not disabled"); + return; + } + + arena.getConfig().set("spectator_spawn", LocationUtil.getString(player.getLocation(), true)); + arena.getConfig().save(); + player.sendMessage("§aSpectator spawn set"); + } + + private Arena getArenaFromCurrentWorld(Player player) { + String currentWorldName = player.getWorld().getName(); + return ArenaManager.getGame(currentWorldName); + } + + } + + @Subcommand("set") + @CommandPermission("skywars.admin.arena.set") + public static class SetCommand extends BaseCommand { + + @Subcommand("max") + public void add(Player player, int maxPlayers) { + Arena arena = getArenaFromCurrentWorld(player); + if (arena == null) { + player.sendMessage("§cFirst you need create the arena (/sw arena create )"); + return; + } + + if (!arena.isDisabled()) { + player.sendMessage("§cYou can't edit an arena if it is not disabled"); + return; + } + + arena.getConfig().set("max_players", maxPlayers); + arena.getConfig().save(); + player.sendMessage("§aMaximum players set to " + maxPlayers + " in " + arena.getName()); + } + + @Subcommand("min") + public void min(Player player, int minPlayers) { + Arena arena = getArenaFromCurrentWorld(player); + if (arena == null) { + player.sendMessage("§cFirst you need create the arena (/sw arena create )"); + return; + } + + if (!arena.isDisabled()) { + player.sendMessage("§cYou can't edit an arena if it is not disabled"); + return; + } + + if (minPlayers <= 1) { + player.sendMessage("§cThere isn't recommended set minimum player to " + minPlayers + ", this could cause the game start after one player join the match (and if is alone will win)"); + } + + arena.getConfig().set("min_players", minPlayers); + arena.getConfig().save(); + player.sendMessage("§aMinimun players set to " + minPlayers + " in " + arena.getName()); + } + + private Arena getArenaFromCurrentWorld(Player player) { + String currentWorldName = player.getWorld().getName(); + return ArenaManager.getGame(currentWorldName); + } + + } + + } + @Subcommand("reload") @CommandPermission("skywars.admin.reload") public static class ReloadCommand extends BaseCommand { @@ -287,6 +545,67 @@ public void lshop(Player player) { @CommandPermission("skywars.admin.hologram") public static class HologramCommand extends BaseCommand { + @Subcommand("add") + @CommandPermission("skywars.admin.hologram.add") + public void add(Player player) { + List locations = new ArrayList<>(ConfigManager.score.getStringList("hologram.locations")); + locations.add(LocationUtil.getString(player.getLocation(), true)); + + ConfigManager.score.set("hologram.locations", locations); + ConfigManager.score.save(); + + reloadHologramLocations(); + recreateHologramsInWorld(player.getWorld().getName()); + + player.sendMessage("§aHologram added (" + locations.size() + ")"); + } + + @Subcommand("remove") + @CommandPermission("skywars.admin.hologram.remove") + @Syntax("") + public void remove(Player player, @Optional Integer index) { + List locations = new ArrayList<>(ConfigManager.score.getStringList("hologram.locations")); + if (locations.isEmpty()) { + player.sendMessage("§cThis server don't have hologram(s)"); + return; + } + + int indexToRemove = index == null ? locations.size(): index; + + if (indexToRemove < 1 || indexToRemove > locations.size()) { + player.sendMessage("§cInvalid hologram index. Choose between 1 and " + locations.size() + "."); + return; + } + + locations.remove(indexToRemove - 1); + ConfigManager.score.set("hologram.locations", locations); + ConfigManager.score.save(); + + reloadHologramLocations(); + recreateHologramsInWorld(player.getWorld().getName()); + + player.sendMessage("§aHologram #" + indexToRemove + " was removed"); + } + + private void reloadHologramLocations() { + SkyWars.hologram.clear(); + for (String serializedLocation : ConfigManager.score.getStringList("hologram.locations")) { + Location location = LocationUtil.getLocation(serializedLocation); + if (location != null) { + SkyWars.hologram.add(location); + } + } + } + + private void recreateHologramsInWorld(String worldName) { + for (Player online : Bukkit.getOnlinePlayers()) { + if (online.getWorld() != null && online.getWorld().getName().equals(worldName)) { + SkyPlayer skyPlayer = SkyWars.getSkyPlayer(online); + SkyHologram.createHologram(skyPlayer); + } + } + } + } -} +} \ No newline at end of file diff --git a/spigot/src/main/java/fun/ogtimes/skywars/spigot/commands/admin/edit/arena/CmdArena.java b/spigot/src/main/java/fun/ogtimes/skywars/spigot/commands/admin/edit/arena/CmdArena.java deleted file mode 100644 index 3dd8a1b..0000000 --- a/spigot/src/main/java/fun/ogtimes/skywars/spigot/commands/admin/edit/arena/CmdArena.java +++ /dev/null @@ -1,618 +0,0 @@ -package fun.ogtimes.skywars.spigot.commands.admin.edit.arena; - -import fun.ogtimes.skywars.spigot.SkyWars; -import fun.ogtimes.skywars.spigot.arena.Arena; -import fun.ogtimes.skywars.spigot.arena.ArenaManager; -import fun.ogtimes.skywars.spigot.commands.BaseCommand; -import fun.ogtimes.skywars.spigot.utils.LocationUtil; -import fun.ogtimes.skywars.spigot.utils.ZipDir; -import java.io.File; -import java.io.IOException; -import java.util.*; -import java.util.Map.Entry; -import org.bukkit.Bukkit; -import org.bukkit.ChatColor; -import org.bukkit.World; -import org.bukkit.WorldCreator; -import org.bukkit.command.CommandSender; -import org.bukkit.entity.Player; -import org.bukkit.util.StringUtil; -import org.jetbrains.annotations.NotNull; - -public class CmdArena implements BaseCommand { - public void onCommand(CommandSender sender, String[] args) { - Player var3 = null; - if (!(sender instanceof Player)) { - sender.sendMessage("You aren't a player!"); - } else { - var3 = (Player) sender; - if (!var3.hasPermission(this.getPermission())) { - var3.sendMessage("§cYou do not have permissions!"); - } else if (args.length == 0) { - this.helpDefault(sender); - } else { - if (args.length >= 1) { - String var4 = args[0].toLowerCase(); - byte var5 = -1; - switch(var4.hashCode()) { - case -1352294148: - if (var4.equals("create")) { - var5 = 1; - } - break; - case -934641255: - if (var4.equals("reload")) { - var5 = 5; - } - break; - case 113762: - if (var4.equals("set")) { - var5 = 3; - } - break; - case 3327206: - if (var4.equals("load")) { - var5 = 0; - } - break; - case 3522941: - if (var4.equals("save")) { - var5 = 6; - } - break; - case 109638523: - if (var4.equals("spawn")) { - var5 = 2; - } - break; - case 1671308008: - if (var4.equals("disable")) { - var5 = 4; - } - } - - String var6; - Arena var7; - String var8; - int var10; - switch(var5) { - case 0: - if (!sender.hasPermission("skywars.admin.arena.load")) { - return; - } - - if (args.length == 1) { - var3.sendMessage("§cUsage: /sw arena load "); - StringBuilder var17 = new StringBuilder(); - - for (World var21 : Bukkit.getWorlds()) { - var17.append(", ").append(var21.getName()); - } - - var3.sendMessage(String.format("§cWorlds Loaded List: %s", var17.toString().replaceFirst(", ", ""))); - } - - if (args.length == 2) { - File var18 = new File(SkyWars.maps); - String var22 = args[1]; - if (var18.exists() && var18.isDirectory()) { - File[] var23 = var18.listFiles(); - int var27 = var23.length; - - for(var10 = 0; var10 < var27; ++var10) { - File var28 = var23[var10]; - if (var28.getName().contains(var22) && var28.isDirectory()) { - try { - ArenaManager.delete(new File(var28.getName())); - ArenaManager.copyFolder(var28, new File(var28.getName())); - WorldCreator var12 = new WorldCreator(var22); - var12.generateStructures(false); - World var13 = var12.createWorld(); - var13.setAutoSave(false); - var13.setKeepSpawnInMemory(false); - var13.setGameRuleValue("doMobSpawning", "false"); - var13.setGameRuleValue("doDaylightCycle", "false"); - var13.setGameRuleValue("mobGriefing", "false"); - var13.setGameRuleValue("commandBlockOutput", "false"); - var13.setTime(0L); - var3.sendMessage("§a" + var22 + " loaded"); - } catch (Exception var16) { - var16.printStackTrace(); - } - } - } - } - } - break; - case 1: - if (!sender.hasPermission("skywars.admin.arena.create")) { - return; - } - - if (args.length == 1) { - var3.sendMessage("§cUsage: /sw arena create "); - } - - if (args.length == 2) { - var6 = args[1]; - var7 = ArenaManager.getGame(var6); - if (var7 != null) { - var3.sendMessage("§cThis arena already exists!"); - return; - } - - new Arena(var6, true); - var3.sendMessage("§a" + var6 + " has been created"); - } - break; - case 2: - if (!sender.hasPermission("skywars.admin.arena.spawn")) { - return; - } - - if (args.length == 1) { - var3.sendMessage("§a/sw arena §espawn §dadd §a- §bAdd spawn point"); - var3.sendMessage("§a/sw arena §espawn §dremove §9[#] §a- §bRemove the latest or specific spawn point"); - var3.sendMessage("§a/sw arena §espawn §dspect §a- §bSet spectator spawn point"); - } - - if (args.length >= 2) { - var6 = var3.getWorld().getName(); - var7 = ArenaManager.getGame(var6); - if (var7 == null) { - var3.sendMessage("§cFirst you need create the arena (/sw arena create )"); - return; - } - - if (!var7.isDisabled()) { - var3.sendMessage("§cYou can't edit an arena if it is not disabled"); - return; - } - - List var19 = var7.getConfig().getStringList("spawnpoints"); - String var25 = args[1].toLowerCase(); - byte var26 = -1; - switch(var25.hashCode()) { - case -934610812: - if (var25.equals("remove")) { - var26 = 1; - } - break; - case 96417: - if (var25.equals("add")) { - var26 = 0; - } - break; - case 109641753: - if (var25.equals("spect")) { - var26 = 2; - } - } - - switch(var26) { - case 0: - var19.add(LocationUtil.getString(var3.getLocation(), true)); - var7.getConfig().set("spawnpoints", var19); - var7.getConfig().save(); - var3.sendMessage("§aSpawn added (" + var19.size() + ")"); - return; - case 1: - if (var19.isEmpty()) { - var3.sendMessage("§cThis arena don't have spawn points"); - return; - } - - int var11 = var19.size(); - if (args.length >= 3) { - var11 = Integer.parseInt(args[2]); - } - - var19.remove(var11 - 1); - var7.getConfig().set("spawnpoints", var19); - var7.getConfig().save(); - var3.sendMessage("§aSpawn #" + var11 + " removed"); - return; - case 2: - var7.getConfig().set("spectator_spawn", LocationUtil.getString(var3.getLocation(), true)); - var7.getConfig().save(); - var3.sendMessage("§aSpectator spawn set"); - return; - default: - var3.sendMessage("§a/sw arena §espawn §dadd §a- §bAdd spawn point"); - var3.sendMessage("§a/sw arena §espawn §dremove §9[#] §a- §bRemove the latest or specific spawn point"); - var3.sendMessage("§a/sw arena §espawn §dspect §a- §bSet spectator spawn point"); - } - } - break; - case 3: - if (!sender.hasPermission("skywars.admin.arena.set")) { - return; - } - - if (args.length == 1) { - var3.sendMessage("§a/sw arena §eset §dmax §9 §a- §bSet maximum players in arena"); - var3.sendMessage("§a/sw arena §eset §dmin §9 §a- §bSet minimum players in arena"); - } - - if (args.length >= 2) { - var6 = var3.getWorld().getName(); - var7 = ArenaManager.getGame(var6); - if (var7 == null) { - var3.sendMessage("§cFirst you need create the arena (/sw arena create )"); - return; - } - - if (!var7.isDisabled()) { - var3.sendMessage("§cYou can't edit an arena if it is not disabled"); - return; - } - - var8 = args[1].toLowerCase(); - byte var24 = -1; - switch(var8.hashCode()) { - case 107876: - if (var8.equals("max")) { - var24 = 0; - } - break; - case 108114: - if (var8.equals("min")) { - var24 = 1; - } - } - - switch(var24) { - case 0: - if (args.length == 2) { - var3.sendMessage("§a/sw arena §eset §dmax §9 §a- §bSet maximum players in arena"); - } - - if (args.length == 3) { - var10 = Integer.parseInt(args[2]); - var7.getConfig().set("max_players", var10); - var7.getConfig().save(); - var3.sendMessage("§aMaximum players set to " + var10 + " in " + var6); - } - - return; - case 1: - if (args.length == 2) { - var3.sendMessage("§a/sw arena §eset §dmin §9 §a- §bSet minimum players in arena"); - } - - if (args.length == 3) { - var10 = Integer.parseInt(args[2]); - if (var10 <= 1) { - var3.sendMessage("§cThere isn't recommended set minimum player to " + var10 + ", this could cause the game start after one player join the match (and if is alone will win)"); - } - - var7.getConfig().set("min_players", var10); - var7.getConfig().save(); - var3.sendMessage("§aMinimun players set to " + var10 + " in " + var6); - return; - } - - return; - default: - var3.sendMessage("§a/sw arena §eset §dmax §9 §a- §bSet maximum players in arena"); - var3.sendMessage("§a/sw arena §eset §dmin §9 §a- §bSet minimum players in arena"); - return; - } - } - break; - case 4: - if (!sender.hasPermission("skywars.admin.arena.disable")) { - return; - } - - if (args.length >= 2) { - var6 = args[1]; - var7 = ArenaManager.getGame(var6); - if (var7 != null) { - if (var7.isDisabled()) { - var3.sendMessage("§cThe arena is already disabled"); - return; - } - - var7.setDisabled(true); - var7.restart(); - var3.sendMessage("§a" + var6 + " has been disabled and now you can edit it"); - return; - } - - var3.sendMessage("§cThe arena doesn't exists"); - return; - } - - var3.sendMessage("§a/sw arena §edisable §d §a- §bDisable an arena to edit it"); - return; - case 5: - if (!sender.hasPermission("skywars.admin.arena.reload")) { - return; - } - - if (args.length >= 2) { - var6 = args[1]; - var7 = ArenaManager.getGame(var6); - if (var7 != null) { - var7.setDisabled(false); - var7.restart(); - var3.sendMessage("§a" + var6 + " has been reloaded" + (var7.isDisabled() ? " §aand now is enabled" : "")); - return; - } - - var3.sendMessage("§cThe arena doesn't exists"); - return; - } - - var3.sendMessage("§a/sw arena §ereload §d §a- §bReload an arena and enable it"); - return; - case 6: - if (!sender.hasPermission("skywars.admin.arena.save")) { - return; - } - - if (args.length >= 2) { - var6 = args[1]; - var7 = ArenaManager.getGame(var6); - if (var7 == null) { - var3.sendMessage("§cFirst you need create the arena (/sw arena create )"); - return; - } - - if (!var7.isDisabled()) { - var3.sendMessage("§cYou can't save an arena if it is not disabled"); - return; - } - - var7.getWorld().save(); - var8 = SkyWars.maps + File.separator + var6; - ZipDir.zipFile(var8); - var3.sendMessage("§aBackup created for " + var6); - File var9 = new File(var8); - - ArenaManager.delete(var9); - - try { - ArenaManager.copyFolder(new File(var6), var9); - } catch (IOException var14) { - var14.printStackTrace(); - } - - var3.sendMessage("§a" + var6 + " has been saved in maps folder"); - return; - } - - var3.sendMessage("§a/sw arena §esave §d §a- §bSave an arena world"); - return; - default: - this.helpDefault(sender); - } - } - - } - } - } - - public String help(CommandSender sender) { - String var2 = "&a/sw arena - &bFor more help about arena commands"; - return sender.hasPermission(this.getPermission()) ? var2 : ""; - } - - public String getPermission() { - return "skywars.admin.arena"; - } - - public boolean console() { - return false; - } - - public void helpDefault(CommandSender var1) { - Map helpMessage = getHelpMessage(); - var1.sendMessage("------------ §a[SkyWars Arena Help] §f------------"); - - for (Entry stringStringEntry : helpMessage.entrySet()) { - Entry var4 = stringStringEntry; - if (var1.hasPermission("skywars.admin.arena." + var4.getKey())) { - var1.sendMessage(ChatColor.translateAlternateColorCodes('&', (String) var4.getValue())); - } - } - - var1.sendMessage("--------------------------------------------"); - } - - private static @NotNull Map getHelpMessage() { - Map lines = new HashMap<>(); - lines.put("load", "&a/sw arena &eload &a- &bLoad new arena world"); - lines.put("create", "&a/sw arena &ecreate &a- &bCreate new arena"); - lines.put("spawn", "&a/sw arena &espawn &a- &bAdd or remove spawn points"); - lines.put("set", "&a/sw arena &eset &a- &bSet arena configuration"); - lines.put("disable", "&a/sw arena &edisable &a- &bDisable an arena to edit it"); - lines.put("reload", "&a/sw arena &ereload &a- &bReload an arena and enable it"); - lines.put("save", "&a/sw arena &esave &a- &bSave an arena world"); - return lines; - } - - public List onTabComplete(CommandSender sender, String[] args) { - if (!sender.hasPermission(this.getPermission())) { - return null; - } else { - Iterator var7; - Entry var8; - HashMap var10; - String[] var12; - ArrayList var13; - ArrayList var14; - if (args.length == 1) { - var10 = new HashMap(); - var10.put("load", "&a/sw arena &eload &a- &bFor more help about load worlds"); - var10.put("create", "&a/sw arena &ecreate &a- &bFor more help about create arena"); - var10.put("spawn", "&a/sw arena &espawn &a- &bFor more help about set spawns"); - var10.put("set", "&a/sw arena &eset &a- &bFor more help about set arena config"); - var10.put("disable", "&a/sw arena &edisable &a- &bDisable an arena to edit it"); - var10.put("reload", "&a/sw arena &ereload &a- &bReload an arena and enable it"); - var10.put("save", "&a/sw arena &esave &a- &bSave an arena world"); - var12 = new String[]{"load", "create", "spawn", "set", "disable", "reload", "save"}; - var13 = new ArrayList(Arrays.asList(var12)); - var14 = new ArrayList(); - StringUtil.copyPartialMatches(args[0], var13, var14); - Collections.sort(var14); - sender.sendMessage("--------------------------------------------"); - var7 = var10.entrySet().iterator(); - - while(var7.hasNext()) { - var8 = (Entry)var7.next(); - if (var14.contains(var8.getKey()) && sender.hasPermission("skywars.admin.arena." + var8.getKey())) { - sender.sendMessage(ChatColor.translateAlternateColorCodes('&', (String)var8.getValue())); - } - } - - sender.sendMessage("--------------------------------------------"); - return var14; - } else { - if (args.length > 1 && args.length < 4) { - ArrayList var4; - if (args[0].equalsIgnoreCase("load")) { - if (!sender.hasPermission("skywars.admin.arena.load")) { - return null; - } - - File var11 = new File(SkyWars.maps); - var4 = new ArrayList(); - var13 = new ArrayList(); - if (var11.exists() && var11.isDirectory()) { - File[] var16 = var11.listFiles(); - int var17 = var16.length; - - for (File var9 : var16) { - if (var9.isDirectory()) { - var4.add(var9.getName()); - } - } - } - - for (World var19 : Bukkit.getWorlds()) { - var4.remove(var19.getName()); - } - - sender.sendMessage("--------------------------------------------"); - sender.sendMessage(ChatColor.translateAlternateColorCodes('&', "&aWorlds available to load (&b" + var4.size() + "&a):")); - sender.sendMessage("--------------------------------------------"); - StringUtil.copyPartialMatches(args[1], var4, var13); - Collections.sort(var13); - return var13; - } - - ArrayList var3; - Iterator var5; - Arena var6; - if (args[0].equalsIgnoreCase("create")) { - if (!sender.hasPermission("skywars.admin.arena.create")) { - return null; - } - - var3 = new ArrayList(); - var4 = new ArrayList(); - var5 = Bukkit.getWorlds().iterator(); - - while(var5.hasNext()) { - World var15 = (World)var5.next(); - var3.add(var15.getName()); - } - - var5 = ArenaManager.getGames().iterator(); - - while(var5.hasNext()) { - var6 = (Arena)var5.next(); - var3.remove(var6.getName()); - } - - sender.sendMessage("--------------------------------------------"); - sender.sendMessage(ChatColor.translateAlternateColorCodes('&', "&aPossible arenas available to create (&b" + var3.size() + "&a):")); - sender.sendMessage("--------------------------------------------"); - StringUtil.copyPartialMatches(args[1], var3, var4); - Collections.sort(var4); - return var4; - } - - if (args[0].equalsIgnoreCase("spawn")) { - if (!sender.hasPermission("skywars.admin.arena.spawn")) { - return null; - } else { - var10 = new HashMap(); - var10.put("add", "&a/sw arena &espawn &dadd &a- &bAdd spawn point"); - var10.put("remove", "&a/sw arena &espawn &dremove &9[#] &a- &bRemove the latest or specific spawn point"); - var10.put("spect", "&a/sw arena &espawn &dspect &a- &bSet spectator spawn point"); - var12 = new String[]{"add", "remove", "spect"}; - var13 = new ArrayList(Arrays.asList(var12)); - var14 = new ArrayList(); - StringUtil.copyPartialMatches(args[1], var13, var14); - Collections.sort(var14); - sender.sendMessage("--------------------------------------------"); - var7 = var10.entrySet().iterator(); - - while(var7.hasNext()) { - var8 = (Entry)var7.next(); - if (var14.contains(var8.getKey())) { - sender.sendMessage(ChatColor.translateAlternateColorCodes('&', (String)var8.getValue())); - } - } - - sender.sendMessage("--------------------------------------------"); - return var14; - } - } - - if (args[0].equalsIgnoreCase("set")) { - if (!sender.hasPermission("skywars.admin.arena.set")) { - return null; - } - - var10 = new HashMap(); - var10.put("max", "&a/sw arena &eset &dmax &9 &a- &bSet maximum players in arena"); - var10.put("min", "&a/sw arena &eset &dmin &9 &a- &bSet minimum players in arena"); - var12 = new String[]{"max", "min"}; - var13 = new ArrayList(Arrays.asList(var12)); - var14 = new ArrayList(); - StringUtil.copyPartialMatches(args[1], var13, var14); - Collections.sort(var14); - sender.sendMessage("--------------------------------------------"); - var7 = var10.entrySet().iterator(); - - while(var7.hasNext()) { - var8 = (Entry)var7.next(); - if (var14.contains(var8.getKey())) { - sender.sendMessage(ChatColor.translateAlternateColorCodes('&', (String)var8.getValue())); - } - } - - sender.sendMessage("--------------------------------------------"); - return var14; - } - - if (args[0].equalsIgnoreCase("disable") || args[0].equalsIgnoreCase("reload") || args[0].equalsIgnoreCase("save")) { - if (!sender.hasPermission("skywars.admin.arena." + args[0])) { - return null; - } - - var3 = new ArrayList(); - var4 = new ArrayList(); - var5 = ArenaManager.getGames().iterator(); - - while(var5.hasNext()) { - var6 = (Arena)var5.next(); - var3.add(var6.getName()); - } - - sender.sendMessage("--------------------------------------------"); - StringUtil.copyPartialMatches(args[1], var3, var4); - Collections.sort(var4); - return var4; - } - } - - return null; - } - } - } -} diff --git a/spigot/src/main/java/fun/ogtimes/skywars/spigot/commands/admin/edit/lobby/CmdHologram.java b/spigot/src/main/java/fun/ogtimes/skywars/spigot/commands/admin/edit/lobby/CmdHologram.java deleted file mode 100644 index 4d87b2f..0000000 --- a/spigot/src/main/java/fun/ogtimes/skywars/spigot/commands/admin/edit/lobby/CmdHologram.java +++ /dev/null @@ -1,178 +0,0 @@ -package fun.ogtimes.skywars.spigot.commands.admin.edit.lobby; - -import fun.ogtimes.skywars.spigot.SkyWars; -import fun.ogtimes.skywars.spigot.commands.BaseCommand; -import fun.ogtimes.skywars.spigot.config.ConfigManager; -import fun.ogtimes.skywars.spigot.player.SkyPlayer; -import fun.ogtimes.skywars.spigot.utils.LocationUtil; -import fun.ogtimes.skywars.spigot.utils.sky.SkyHologram; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collections; -import java.util.HashMap; -import java.util.Iterator; -import java.util.List; -import java.util.Map.Entry; -import org.bukkit.Bukkit; -import org.bukkit.ChatColor; -import org.bukkit.command.CommandSender; -import org.bukkit.entity.Player; -import org.bukkit.util.StringUtil; - -public class CmdHologram implements BaseCommand { - public void onCommand(CommandSender sender, String[] args) { - Player var3 = null; - if (!(sender instanceof Player)) { - sender.sendMessage("You are not a player!"); - } else { - var3 = (Player) sender; - if (!var3.hasPermission(this.getPermission())) { - var3.sendMessage("§cYou do not have permission!"); - } else if (args.length == 0) { - this.helpDefault(sender); - } else { - if (args.length >= 1) { - ArrayList var4 = new ArrayList(); - String var5 = args[0].toLowerCase(); - byte var6 = -1; - switch(var5.hashCode()) { - case -934610812: - if (var5.equals("remove")) { - var6 = 1; - } - break; - case 96417: - if (var5.equals("add")) { - var6 = 0; - } - } - - switch(var6) { - case 0: - var4.addAll(ConfigManager.score.getStringList("hologram.locations")); - var4.add(LocationUtil.getString(var3.getLocation(), true)); - ConfigManager.score.set("hologram.locations", var4); - ConfigManager.score.save(); - SkyWars.hologram.clear(); - Iterator var11 = ConfigManager.score.getStringList("hologram.locations").iterator(); - - while(var11.hasNext()) { - String var12 = (String)var11.next(); - SkyWars.hologram.add(LocationUtil.getLocation(var12)); - } - - var11 = Bukkit.getOnlinePlayers().iterator(); - - while(var11.hasNext()) { - Player var13 = (Player)var11.next(); - SkyPlayer var15 = SkyWars.getSkyPlayer(var13); - if (var3.getWorld() == var13.getWorld()) { - SkyHologram.createHologram(var15); - } - } - - var3.sendMessage("§aHologram added (" + var4.size() + ")"); - break; - case 1: - var4.addAll(ConfigManager.score.getStringList("hologram.locations")); - if (var4.isEmpty()) { - var3.sendMessage("§cThis server don't have hologram(s)"); - return; - } - - int var7; - if (args.length == 1) { - var7 = var4.size(); - } else { - var7 = Integer.parseInt(args[0]); - } - - var4.remove(var7 - 1); - ConfigManager.score.set("hologram.locations", var4); - ConfigManager.score.save(); - SkyWars.hologram.clear(); - Iterator var8 = ConfigManager.score.getStringList("hologram.locations").iterator(); - - while(var8.hasNext()) { - String var9 = (String)var8.next(); - SkyWars.hologram.add(LocationUtil.getLocation(var9)); - } - - var8 = Bukkit.getOnlinePlayers().iterator(); - - while(var8.hasNext()) { - Player var14 = (Player)var8.next(); - SkyPlayer var10 = SkyWars.getSkyPlayer(var14); - if (var3.getWorld() == var14.getWorld()) { - SkyHologram.createHologram(var10); - } - } - - var3.sendMessage("§aHologram #" + var7 + " was removed"); - break; - default: - this.helpDefault(sender); - } - } - - } - } - } - - public String help(CommandSender sender) { - String var2 = "&a/sw hologram &a- &bFor more help about setup holograms"; - return sender.hasPermission(this.getPermission()) ? var2 : ""; - } - - public String getPermission() { - return "skywars.admin.hologram"; - } - - public boolean console() { - return false; - } - - public void helpDefault(CommandSender var1) { - HashMap var2 = new HashMap(); - var2.put("add", "&a/sw hologram &eadd &a- &bAdd new hologram"); - var2.put("remove", "&a/sw hologram &eremove &d[#] &a- &bRemove latest or specific hologram"); - var1.sendMessage("--------------------------------------------"); - - for (Object object : var2.entrySet()) { - Entry var4 = (Entry) object; - if (var1.hasPermission("skywars.admin.hologram." + var4.getKey())) { - var1.sendMessage(ChatColor.translateAlternateColorCodes('&', (String) var4.getValue())); - } - } - - var1.sendMessage("--------------------------------------------"); - } - - public List onTabComplete(CommandSender sender, String[] args) { - if (!sender.hasPermission(this.getPermission())) { - return null; - } else if (args.length == 1) { - HashMap var3 = new HashMap(); - var3.put("add", "&a/sw hologram &eadd &a- &bAdd Lobby Hologram"); - var3.put("remove", "&a/sw hologram &eremove &d[#] &a- &bRemove latest or specific hologram"); - String[] var4 = new String[]{"add", "remove"}; - ArrayList var5 = new ArrayList(Arrays.asList(var4)); - ArrayList var6 = new ArrayList(); - StringUtil.copyPartialMatches(args[0], var5, var6); - Collections.sort(var6); - sender.sendMessage("--------------------------------------------"); - - for (Object object : var3.entrySet()) { - Entry var8 = (Entry) object; - if (var6.contains(var8.getKey()) && sender.hasPermission("skywars.admin.hologram." + var8.getKey())) { - sender.sendMessage(ChatColor.translateAlternateColorCodes('&', (String) var8.getValue())); - } - } - - sender.sendMessage("--------------------------------------------"); - return var6; - } else { - return null; - } - } -} From a00e202833a14b9906d11c7d46352453df5e77c8 Mon Sep 17 00:00:00 2001 From: hardcorefactions <108526035+hardcorefactions@users.noreply.github.com> Date: Wed, 21 Jan 2026 17:30:43 +0100 Subject: [PATCH 4/4] fix: command conditions --- .../spigot/commands/acf/SkyWarsCommand.java | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/spigot/src/main/java/fun/ogtimes/skywars/spigot/commands/acf/SkyWarsCommand.java b/spigot/src/main/java/fun/ogtimes/skywars/spigot/commands/acf/SkyWarsCommand.java index 8a38f7c..53b1f67 100644 --- a/spigot/src/main/java/fun/ogtimes/skywars/spigot/commands/acf/SkyWarsCommand.java +++ b/spigot/src/main/java/fun/ogtimes/skywars/spigot/commands/acf/SkyWarsCommand.java @@ -98,6 +98,7 @@ public void join(Player player, @Optional Arena arena) { @Subcommand("forcestart") @CommandPermission("skywars.admin.forcestart") public void forceStart(Player player) { + if (SkyWars.isProxyMode()) return; SkyPlayer skyPlayer = SkyWars.getSkyPlayer(player); if (skyPlayer == null) { return; @@ -118,6 +119,7 @@ public void forceStart(Player player) { @Subcommand("lobbyspawn") @CommandPermission("skywars.admin.lobbyspawn") public void lobbySpawn(Player player) { + if (SkyWars.isProxyMode()) return; SkyWars.getPlugin().getConfig().set("spawn", LocationUtil.getString(player.getLocation(), true)); ConfigManager.main.set("spawn", LocationUtil.getString(player.getLocation(), true)); ConfigManager.main.save(); @@ -130,6 +132,7 @@ public void lobbySpawn(Player player) { @Syntax("") @CommandCompletion("@worlds") public void tp(Player player, World world) { + if (SkyWars.isProxyMode()) return; SkyPlayer skyPlayer = SkyWars.getSkyPlayer(player); if (skyPlayer == null) { return; @@ -153,6 +156,7 @@ public static class ArenaCommand extends BaseCommand { @Syntax("") @CommandCompletion("@arenas") public void load(CommandSender sender, String worldName) { + if (SkyWars.isLobbyMode()) return; File mapsFolder = new File(SkyWars.maps); if (!mapsFolder.exists() || !mapsFolder.isDirectory()) { @@ -204,6 +208,7 @@ public void load(CommandSender sender, String worldName) { @Subcommand("create") @CommandPermission("skywars.admin.arena.create") public void create(CommandSender sender, String arenaName) { + if (SkyWars.isLobbyMode()) return; Arena existingArena = ArenaManager.getGame(arenaName); if (existingArena != null) { sender.sendMessage("§cThis arena already exists!"); @@ -219,6 +224,7 @@ public void create(CommandSender sender, String arenaName) { @Syntax("") @CommandCompletion("@arenas") public void disable(CommandSender sender, Arena arena) { + if (SkyWars.isLobbyMode()) return; if (arena.isDisabled()) { sender.sendMessage("§cThe arena is already disabled"); return; @@ -234,6 +240,7 @@ public void disable(CommandSender sender, Arena arena) { @Syntax("") @CommandCompletion("@arenas") public void reload(CommandSender sender, Arena arena) { + if (SkyWars.isLobbyMode()) return; arena.setDisabled(false); arena.restart(); sender.sendMessage("§a" + arena.getName() + " has been reloaded" + (arena.isDisabled() ? " §aand now is enabled" : "")); @@ -244,6 +251,7 @@ public void reload(CommandSender sender, Arena arena) { @Syntax("") @CommandCompletion("@arenas") public void save(CommandSender sender, Arena arena) { + if (SkyWars.isLobbyMode()) return; if (!arena.isDisabled()) { sender.sendMessage("§cYou can't save an arena if it is not disabled"); return; @@ -273,6 +281,7 @@ public static class SpawnCommand extends BaseCommand { @Subcommand("add") public void add(Player player) { + if (SkyWars.isLobbyMode()) return; Arena arena = getArenaFromCurrentWorld(player); if (arena == null) { player.sendMessage("§cFirst you need create the arena (/sw arena create )"); @@ -293,6 +302,7 @@ public void add(Player player) { @Subcommand("remove") public void remove(Player player, @Optional Integer index) { + if (SkyWars.isLobbyMode()) return; Arena arena = getArenaFromCurrentWorld(player); if (arena == null) { player.sendMessage("§cFirst you need create the arena (/sw arena create )"); @@ -323,7 +333,8 @@ public void remove(Player player, @Optional Integer index) { } @Subcommand("spectator|spect") - public void spectator(Player player, String arenaName) { + public void spectator(Player player) { + if (SkyWars.isLobbyMode()) return; Arena arena = getArenaFromCurrentWorld(player); if (arena == null) { player.sendMessage("§cFirst you need create the arena (/sw arena create )"); @@ -353,6 +364,7 @@ public static class SetCommand extends BaseCommand { @Subcommand("max") public void add(Player player, int maxPlayers) { + if (SkyWars.isLobbyMode()) return; Arena arena = getArenaFromCurrentWorld(player); if (arena == null) { player.sendMessage("§cFirst you need create the arena (/sw arena create )"); @@ -371,6 +383,7 @@ public void add(Player player, int maxPlayers) { @Subcommand("min") public void min(Player player, int minPlayers) { + if (SkyWars.isLobbyMode()) return; Arena arena = getArenaFromCurrentWorld(player); if (arena == null) { player.sendMessage("§cFirst you need create the arena (/sw arena create )"); @@ -529,6 +542,7 @@ public static class OpenCommand extends BaseCommand { @Subcommand("lshop") @CommandPermission("skywars.cmd.open.lshop") public void lshop(Player player) { + if (SkyWars.isProxyMode()) return; SkyPlayer skyPlayer = SkyWars.getSkyPlayer(player); if (skyPlayer == null) { return; @@ -548,6 +562,7 @@ public static class HologramCommand extends BaseCommand { @Subcommand("add") @CommandPermission("skywars.admin.hologram.add") public void add(Player player) { + if (SkyWars.isProxyMode() && !SkyWars.holo) return; List locations = new ArrayList<>(ConfigManager.score.getStringList("hologram.locations")); locations.add(LocationUtil.getString(player.getLocation(), true)); @@ -564,6 +579,7 @@ public void add(Player player) { @CommandPermission("skywars.admin.hologram.remove") @Syntax("") public void remove(Player player, @Optional Integer index) { + if (SkyWars.isProxyMode() && !SkyWars.holo) return; List locations = new ArrayList<>(ConfigManager.score.getStringList("hologram.locations")); if (locations.isEmpty()) { player.sendMessage("§cThis server don't have hologram(s)");