Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -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/")
}
}

Expand Down
4 changes: 4 additions & 0 deletions spigot/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -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")
Expand All @@ -23,5 +24,8 @@ dependencies {
}

tasks.shadowJar {
minimize()

relocate("net.kyori", "fun.ogtimes.skywars.libs.kyori")
relocate("co.aikar", "fun.ogtimes.skywars.libs.aikar")
}
6 changes: 3 additions & 3 deletions spigot/src/main/java/fun/ogtimes/skywars/spigot/SkyWars.java
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -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());
Expand Down Expand Up @@ -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);

Expand Down
226 changes: 113 additions & 113 deletions spigot/src/main/java/fun/ogtimes/skywars/spigot/commands/CmdExecutor.java
Original file line number Diff line number Diff line change
Expand Up @@ -27,125 +27,125 @@
import org.bukkit.util.StringUtil;

public class CmdExecutor implements CommandExecutor, TabCompleter {
private final HashMap<String, BaseCommand> commands = new HashMap<>();
private final List<String> 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<String, BaseCommand> commands = new HashMap<>();
private final List<String> 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<String> 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<String> 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;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
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 <a href="https://github.com/hardcorefactions">GitHub</a> :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.manager.enableUnstableAPI("help");

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));
}

}
Original file line number Diff line number Diff line change
@@ -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 <a href="https://github.com/hardcorefactions">GitHub</a> :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();
}

}
Loading