Update from Git Manager GUI

This commit is contained in:
2026-02-26 11:07:51 +01:00
parent 43dac083d4
commit 35dded973b
26 changed files with 1121 additions and 528 deletions

View File

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

View File

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