Update from Git Manager GUI
This commit is contained in:
@@ -28,65 +28,111 @@ public class LobbyTabCompleter implements TabCompleter {
|
||||
List<String> suggestions = new ArrayList<>();
|
||||
String cmdName = command.getName().toLowerCase();
|
||||
|
||||
// --- NexusLobby Hauptbefehl (/nexus) ---
|
||||
// ── NexusLobby Hauptbefehl (/nexus oder /nexuslobby) ─────────────────
|
||||
if (cmdName.equals("nexuslobby") || cmdName.equals("nexus")) {
|
||||
|
||||
// /nexuslobby <?>
|
||||
if (args.length == 1) {
|
||||
if (sender.hasPermission("nexuslobby.admin")) {
|
||||
suggestions.addAll(Arrays.asList("reload", "setspawn", "silentjoin", "parkour", "ball")); // NEU: ball
|
||||
suggestions.addAll(Arrays.asList(
|
||||
"reload", "setspawn", "silentjoin", "parkour", "ball"
|
||||
));
|
||||
}
|
||||
suggestions.add("sb");
|
||||
|
||||
// /nexuslobby <sub> <?>
|
||||
} else if (args.length == 2) {
|
||||
if (args[0].equalsIgnoreCase("sb")) {
|
||||
suggestions.addAll(Arrays.asList("on", "off"));
|
||||
if (sender.hasPermission("nexuslobby.scoreboard.admin")) {
|
||||
suggestions.addAll(Arrays.asList("admin", "spieler"));
|
||||
switch (args[0].toLowerCase()) {
|
||||
case "sb" -> {
|
||||
suggestions.addAll(Arrays.asList("on", "off"));
|
||||
if (sender.hasPermission("nexuslobby.scoreboard.admin"))
|
||||
suggestions.addAll(Arrays.asList("admin", "spieler"));
|
||||
}
|
||||
} else if (args[0].equalsIgnoreCase("silentjoin")) {
|
||||
suggestions.addAll(Arrays.asList("on", "off"));
|
||||
} else if (args[0].equalsIgnoreCase("parkour")) {
|
||||
suggestions.addAll(Arrays.asList("setstart", "setfinish", "setcheckpoint", "reset", "clear", "removeall"));
|
||||
} else if (args[0].equalsIgnoreCase("ball")) {
|
||||
if (sender.hasPermission("nexuslobby.admin")) {
|
||||
suggestions.addAll(Arrays.asList("setspawn", "respawn", "remove"));
|
||||
case "silentjoin" -> suggestions.addAll(Arrays.asList("on", "off"));
|
||||
case "parkour" -> suggestions.addAll(Arrays.asList(
|
||||
"setstart", "setfinish", "setcheckpoint", "reset", "clear", "removeall"
|
||||
));
|
||||
case "ball" -> {
|
||||
if (sender.hasPermission("nexuslobby.admin")) {
|
||||
suggestions.addAll(Arrays.asList(
|
||||
"setspawn", "respawn", "remove", "goal", "score"
|
||||
));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// /nexuslobby <sub> <sub2> <?>
|
||||
} else if (args.length == 3) {
|
||||
if (args[0].equalsIgnoreCase("parkour") && args[1].equalsIgnoreCase("setcheckpoint")) {
|
||||
suggestions.addAll(Arrays.asList("1", "2", "3", "4", "5", "6", "7", "8", "9"));
|
||||
switch (args[0].toLowerCase()) {
|
||||
case "parkour" -> {
|
||||
if (args[1].equalsIgnoreCase("setcheckpoint"))
|
||||
suggestions.addAll(Arrays.asList("1","2","3","4","5","6","7","8","9"));
|
||||
}
|
||||
case "ball" -> {
|
||||
switch (args[1].toLowerCase()) {
|
||||
// /nexuslobby ball goal <?>
|
||||
case "goal" -> suggestions.addAll(Arrays.asList(
|
||||
"pos1", "pos2", "save", "delete", "list", "show", "debug"
|
||||
));
|
||||
// /nexuslobby ball score <?>
|
||||
case "score" -> suggestions.add("reset");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// /nexuslobby <sub> <sub2> <sub3> <?>
|
||||
} else if (args.length == 4) {
|
||||
if (args[0].equalsIgnoreCase("ball") && args[1].equalsIgnoreCase("goal")) {
|
||||
switch (args[2].toLowerCase()) {
|
||||
// /nexuslobby ball goal save <Name> <?> → Tor-Name (Freitext)
|
||||
case "save" -> suggestions.add("<TorName>");
|
||||
// /nexuslobby ball goal delete <Name>
|
||||
case "delete" -> {
|
||||
// Tor-Namen aus Config laden und vorschlagen
|
||||
var section = NexusLobby.getInstance().getConfig()
|
||||
.getConfigurationSection("ball.goals");
|
||||
if (section != null) suggestions.addAll(section.getKeys(false));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// /nexuslobby ball goal save <Name> <?> → Team 1 oder 2
|
||||
} else if (args.length == 5) {
|
||||
if (args[0].equalsIgnoreCase("ball")
|
||||
&& args[1].equalsIgnoreCase("goal")
|
||||
&& args[2].equalsIgnoreCase("save")) {
|
||||
suggestions.addAll(Arrays.asList("1", "2"));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// --- Hologram Befehl ---
|
||||
}
|
||||
|
||||
// ── Hologram Befehl ───────────────────────────────────────────────────
|
||||
else if (cmdName.equals("holo")) {
|
||||
if (args.length == 1) {
|
||||
suggestions.addAll(Arrays.asList("create", "delete"));
|
||||
} else if (args.length == 2 && args[0].equalsIgnoreCase("delete")) {
|
||||
if (hologramModule != null) {
|
||||
if (hologramModule != null)
|
||||
suggestions.addAll(hologramModule.getHologramIds());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// --- Wartungsmodus ---
|
||||
}
|
||||
|
||||
// ── Wartungsmodus ─────────────────────────────────────────────────────
|
||||
else if (cmdName.equals("maintenance")) {
|
||||
if (args.length == 1) {
|
||||
if (args.length == 1)
|
||||
suggestions.addAll(Arrays.asList("on", "off"));
|
||||
}
|
||||
}
|
||||
|
||||
// --- Portalsystem ---
|
||||
}
|
||||
|
||||
// ── Portalsystem ──────────────────────────────────────────────────────
|
||||
else if (cmdName.equals("portal")) {
|
||||
if (args.length == 1) {
|
||||
suggestions.addAll(Arrays.asList("create", "delete", "list"));
|
||||
} else if (args.length == 2 && args[0].equalsIgnoreCase("delete")) {
|
||||
if (portalManager != null) {
|
||||
if (portalManager != null)
|
||||
suggestions.addAll(portalManager.getPortalNames());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// --- MapArt ---
|
||||
}
|
||||
|
||||
// ── MapArt ────────────────────────────────────────────────────────────
|
||||
else if (cmdName.equals("mapart")) {
|
||||
if (args.length == 1) {
|
||||
suggestions.add("https://");
|
||||
@@ -95,14 +141,13 @@ public class LobbyTabCompleter implements TabCompleter {
|
||||
}
|
||||
}
|
||||
|
||||
// --- Intro System ---
|
||||
// ── Intro System ──────────────────────────────────────────────────────
|
||||
else if (cmdName.equals("intro")) {
|
||||
if (args.length == 1) {
|
||||
if (args.length == 1)
|
||||
suggestions.addAll(Arrays.asList("add", "clear", "start"));
|
||||
}
|
||||
}
|
||||
|
||||
// --- WorldBorder ---
|
||||
// ── WorldBorder ───────────────────────────────────────────────────────
|
||||
else if (cmdName.equals("border")) {
|
||||
if (args.length == 1) {
|
||||
suggestions.addAll(Arrays.asList("circle", "square", "disable"));
|
||||
@@ -110,59 +155,49 @@ public class LobbyTabCompleter implements TabCompleter {
|
||||
suggestions.addAll(Arrays.asList("10", "25", "50", "100", "250"));
|
||||
}
|
||||
}
|
||||
|
||||
// --- NexusCmd / ArmorStandTools ---
|
||||
else if (cmdName.equals("nexuscmd") || cmdName.equals("ncmd") || cmdName.equals("ascmd") || cmdName.equals("conv")) {
|
||||
|
||||
// ── NexusCmd / ArmorStandTools ────────────────────────────────────────
|
||||
else if (cmdName.equals("nexuscmd") || cmdName.equals("ncmd")
|
||||
|| cmdName.equals("ascmd") || cmdName.equals("conv")) {
|
||||
if (args.length == 1) {
|
||||
suggestions.addAll(Arrays.asList("add", "remove", "list", "name", "lookat", "conv", "say"));
|
||||
}
|
||||
else if (args.length == 2) {
|
||||
if (args[0].equalsIgnoreCase("add")) {
|
||||
suggestions.addAll(Arrays.asList("0", "1", "2", "3", "4", "5", "6", "7", "8", "9"));
|
||||
} else if (args[0].equalsIgnoreCase("name")) {
|
||||
suggestions.addAll(Arrays.asList("<Anzeigename>", "none"));
|
||||
} else if (args[0].equalsIgnoreCase("conv")) {
|
||||
suggestions.addAll(Arrays.asList("select1", "select2", "select3", "select4", "link", "unlink", "start"));
|
||||
} else if (args[0].equalsIgnoreCase("remove")) {
|
||||
suggestions.addAll(Arrays.asList("0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "all"));
|
||||
} else if (args[0].equalsIgnoreCase("say")) {
|
||||
suggestions.add("<Nachricht>");
|
||||
} else if (args.length == 2) {
|
||||
switch (args[0].toLowerCase()) {
|
||||
case "add" -> suggestions.addAll(Arrays.asList("0","1","2","3","4","5","6","7","8","9"));
|
||||
case "name" -> suggestions.addAll(Arrays.asList("<Anzeigename>", "none"));
|
||||
case "conv" -> suggestions.addAll(Arrays.asList("select1","select2","select3","select4","link","unlink","start"));
|
||||
case "remove" -> suggestions.addAll(Arrays.asList("0","1","2","3","4","5","6","7","8","9","all"));
|
||||
case "say" -> suggestions.add("<Nachricht>");
|
||||
}
|
||||
}
|
||||
else if (args.length == 3) {
|
||||
} else if (args.length == 3) {
|
||||
if (args[0].equalsIgnoreCase("add")) {
|
||||
suggestions.addAll(Arrays.asList("0", "1", "2", "3", "4", "5", "6", "7", "8", "9"));
|
||||
} else if (args[0].equalsIgnoreCase("conv")) {
|
||||
if (args[1].equalsIgnoreCase("start") || args[1].equalsIgnoreCase("link")) {
|
||||
if (NexusLobby.getInstance().getConversationManager() != null) {
|
||||
suggestions.addAll(NexusLobby.getInstance().getConversationManager().getConversationIds());
|
||||
}
|
||||
}
|
||||
suggestions.addAll(Arrays.asList("0","1","2","3","4","5","6","7","8","9"));
|
||||
} else if (args[0].equalsIgnoreCase("conv")
|
||||
&& (args[1].equalsIgnoreCase("start") || args[1].equalsIgnoreCase("link"))) {
|
||||
if (NexusLobby.getInstance().getConversationManager() != null)
|
||||
suggestions.addAll(NexusLobby.getInstance().getConversationManager().getConversationIds());
|
||||
}
|
||||
}
|
||||
else if (args.length == 4 && args[0].equalsIgnoreCase("add")) {
|
||||
} else if (args.length == 4 && args[0].equalsIgnoreCase("add")) {
|
||||
suggestions.addAll(Arrays.asList("bungee", "console", "player"));
|
||||
}
|
||||
else if (args.length == 5 && args[0].equalsIgnoreCase("add") && args[3].equalsIgnoreCase("bungee")) {
|
||||
if (NexusLobby.getInstance().getConfig().getConfigurationSection("servers") != null) {
|
||||
suggestions.addAll(NexusLobby.getInstance().getConfig().getConfigurationSection("servers").getKeys(false));
|
||||
}
|
||||
} else if (args.length == 5 && args[0].equalsIgnoreCase("add")
|
||||
&& args[3].equalsIgnoreCase("bungee")) {
|
||||
var section = NexusLobby.getInstance().getConfig().getConfigurationSection("servers");
|
||||
if (section != null) suggestions.addAll(section.getKeys(false));
|
||||
}
|
||||
}
|
||||
|
||||
// --- ArmorStandTools Alternate ---
|
||||
// ── ArmorStandTools Alternate ─────────────────────────────────────────
|
||||
else if (cmdName.equals("astools") || cmdName.equals("nt") || cmdName.equals("ntools")) {
|
||||
if (args.length == 1) {
|
||||
suggestions.addAll(Arrays.asList("dynamic", "lookat", "addplayer", "addconsole", "remove", "reload", "say"));
|
||||
}
|
||||
else if (args.length == 2 && args[0].equalsIgnoreCase("say")) {
|
||||
suggestions.add("<Nachricht>");
|
||||
}
|
||||
else if (args.length == 2 && (args[0].equalsIgnoreCase("addplayer") || args[0].equalsIgnoreCase("addconsole"))) {
|
||||
suggestions.addAll(Arrays.asList("0", "1", "2", "3", "4", "5", "6", "7", "8", "9"));
|
||||
}
|
||||
else if (args.length == 3 && (args[0].equalsIgnoreCase("addplayer") || args[0].equalsIgnoreCase("addconsole"))) {
|
||||
suggestions.addAll(Arrays.asList("0", "1", "2", "3", "4", "5", "6", "7", "8", "9"));
|
||||
suggestions.addAll(Arrays.asList("dynamic","lookat","addplayer","addconsole","remove","reload","say"));
|
||||
} else if (args.length == 2) {
|
||||
if (args[0].equalsIgnoreCase("say"))
|
||||
suggestions.add("<Nachricht>");
|
||||
else if (args[0].equalsIgnoreCase("addplayer") || args[0].equalsIgnoreCase("addconsole"))
|
||||
suggestions.addAll(Arrays.asList("0","1","2","3","4","5","6","7","8","9"));
|
||||
} else if (args.length == 3) {
|
||||
if (args[0].equalsIgnoreCase("addplayer") || args[0].equalsIgnoreCase("addconsole"))
|
||||
suggestions.addAll(Arrays.asList("0","1","2","3","4","5","6","7","8","9"));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -82,6 +82,12 @@ public class NexusLobbyCommand implements CommandExecutor {
|
||||
player.playSound(player.getLocation(), Sound.ENTITY_PLAYER_LEVELUP, 1f, 1.5f);
|
||||
break;
|
||||
|
||||
case "cleanbubbles":
|
||||
// Bereinigt alle hängengebliebenen Sprechblasen-ArmorStands im gesamten Server.
|
||||
if (!player.hasPermission("nexuslobby.admin")) return noPerm(player);
|
||||
handleCleanBubbles(player);
|
||||
break;
|
||||
|
||||
case "setspawn":
|
||||
if (!player.hasPermission("nexuslobby.admin")) return noPerm(player);
|
||||
Location loc = player.getLocation();
|
||||
@@ -187,6 +193,18 @@ public class NexusLobbyCommand implements CommandExecutor {
|
||||
player.sendMessage(de.nexuslobby.utils.LangManager.get("parkour_start_set"));
|
||||
}
|
||||
|
||||
private void handleCleanBubbles(Player player) {
|
||||
de.nexuslobby.modules.armorstandtools.ConversationManager cm =
|
||||
NexusLobby.getInstance().getConversationManager();
|
||||
if (cm == null) {
|
||||
player.sendMessage("§8[§6Nexus§8] §cConversationManager ist nicht aktiv.");
|
||||
return;
|
||||
}
|
||||
cm.clearHangingBubbles();
|
||||
player.sendMessage("§8[§6Nexus§8] §aAlle hängengebliebenen Sprechblasen wurden entfernt.");
|
||||
player.playSound(player.getLocation(), Sound.BLOCK_NOTE_BLOCK_PLING, 1f, 2f);
|
||||
}
|
||||
|
||||
private boolean noPerm(Player player) {
|
||||
player.sendMessage(de.nexuslobby.utils.LangManager.get("no_permission"));
|
||||
return true;
|
||||
@@ -236,6 +254,7 @@ public class NexusLobbyCommand implements CommandExecutor {
|
||||
player.sendMessage(de.nexuslobby.utils.LangManager.get("info_setspawn"));
|
||||
player.sendMessage(de.nexuslobby.utils.LangManager.get("info_scoreboard"));
|
||||
player.sendMessage(de.nexuslobby.utils.LangManager.get("info_reload"));
|
||||
player.sendMessage("§e/nexuslobby cleanbubbles §7- Hängende Sprechblasen entfernen");
|
||||
player.sendMessage(de.nexuslobby.utils.LangManager.get("info_footer"));
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user