Dateien nach "src/main/java/de/nexuslobby/commands" hochladen
This commit is contained in:
61
src/main/java/de/nexuslobby/commands/BuildCommand.java
Normal file
61
src/main/java/de/nexuslobby/commands/BuildCommand.java
Normal file
@@ -0,0 +1,61 @@
|
|||||||
|
package de.nexuslobby.commands;
|
||||||
|
|
||||||
|
import de.nexuslobby.NexusLobby;
|
||||||
|
import org.bukkit.GameMode;
|
||||||
|
import org.bukkit.command.Command;
|
||||||
|
import org.bukkit.command.CommandExecutor;
|
||||||
|
import org.bukkit.command.CommandSender;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
|
public class BuildCommand implements CommandExecutor {
|
||||||
|
|
||||||
|
// Liste der Spieler im Baumodus
|
||||||
|
private static final ArrayList<UUID> buildModePlayers = new ArrayList<>();
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
|
||||||
|
if (!(sender instanceof Player)) return true;
|
||||||
|
Player player = (Player) sender;
|
||||||
|
|
||||||
|
if (!player.hasPermission("nexuslobby.build")) {
|
||||||
|
player.sendMessage("§cKeine Rechte.");
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
UUID uuid = player.getUniqueId();
|
||||||
|
if (buildModePlayers.contains(uuid)) {
|
||||||
|
// BAUMODUS DEAKTIVIEREN
|
||||||
|
buildModePlayers.remove(uuid);
|
||||||
|
|
||||||
|
// Gamemode zurücksetzen (aus Config)
|
||||||
|
String defaultGmName = NexusLobby.getInstance().getConfig().getString("default-gamemode", "ADVENTURE");
|
||||||
|
try {
|
||||||
|
GameMode gm = GameMode.valueOf(defaultGmName.toUpperCase());
|
||||||
|
player.setGameMode(gm);
|
||||||
|
} catch (IllegalArgumentException e) {
|
||||||
|
player.setGameMode(GameMode.ADVENTURE);
|
||||||
|
}
|
||||||
|
|
||||||
|
player.sendMessage("§8» §6§lBuild §8| §7Baumodus §cdeaktiviert§7.");
|
||||||
|
} else {
|
||||||
|
// BAUMODUS AKTIVIEREN
|
||||||
|
buildModePlayers.add(uuid);
|
||||||
|
player.setGameMode(GameMode.CREATIVE);
|
||||||
|
|
||||||
|
player.sendMessage("§8» §6§lBuild §8| §7Baumodus §aaktiviert§7.");
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static boolean isInBuildMode(Player player) {
|
||||||
|
return buildModePlayers.contains(player.getUniqueId());
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void removePlayerFromBuildMode(Player player) {
|
||||||
|
buildModePlayers.remove(player.getUniqueId());
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,58 @@
|
|||||||
|
package de.nexuslobby.commands;
|
||||||
|
|
||||||
|
import de.nexuslobby.NexusLobby;
|
||||||
|
import org.bukkit.Material;
|
||||||
|
import org.bukkit.NamespacedKey;
|
||||||
|
import org.bukkit.command.Command;
|
||||||
|
import org.bukkit.command.CommandExecutor;
|
||||||
|
import org.bukkit.command.CommandSender;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
import org.bukkit.inventory.ItemStack;
|
||||||
|
import org.bukkit.inventory.meta.ItemMeta;
|
||||||
|
import org.bukkit.persistence.PersistentDataType;
|
||||||
|
|
||||||
|
import java.util.Arrays;
|
||||||
|
|
||||||
|
public class GivePortalToolCommand implements CommandExecutor {
|
||||||
|
|
||||||
|
private final NexusLobby plugin;
|
||||||
|
|
||||||
|
public GivePortalToolCommand(NexusLobby plugin) {
|
||||||
|
this.plugin = plugin;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
|
||||||
|
if (!(sender instanceof Player)) {
|
||||||
|
sender.sendMessage("Nur Spieler können dieses Item erhalten.");
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
Player p = (Player) sender;
|
||||||
|
|
||||||
|
// Erstelle das Item
|
||||||
|
ItemStack wand = new ItemStack(Material.BLAZE_ROD);
|
||||||
|
ItemMeta meta = wand.getItemMeta();
|
||||||
|
|
||||||
|
// Design des Items
|
||||||
|
meta.setDisplayName("§cPortal-Werkzeug");
|
||||||
|
meta.setLore(Arrays.asList(
|
||||||
|
"§7Linksklick: Setze Position 1",
|
||||||
|
"§7Rechtsklick: Setze Position 2",
|
||||||
|
" ",
|
||||||
|
"§eNexusLobby Portal System"
|
||||||
|
));
|
||||||
|
|
||||||
|
// Füge einen unsichtbaren Tag hinzu (NBT), damit wir das Item eindeutig erkennen
|
||||||
|
NamespacedKey key = new NamespacedKey(plugin, "nexuslobby_portal_wand");
|
||||||
|
meta.getPersistentDataContainer().set(key, PersistentDataType.BYTE, (byte) 1);
|
||||||
|
|
||||||
|
wand.setItemMeta(meta);
|
||||||
|
|
||||||
|
p.getInventory().addItem(wand);
|
||||||
|
p.sendMessage(plugin.getName() + " §aDu hast das Portal-Werkzeug erhalten!");
|
||||||
|
p.playSound(p.getLocation(), org.bukkit.Sound.ENTITY_ITEM_PICKUP, 1.0f, 1.0f);
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,36 @@
|
|||||||
|
package de.nexuslobby.commands;
|
||||||
|
|
||||||
|
import de.nexuslobby.modules.settings.LobbySettingsModule;
|
||||||
|
import org.bukkit.command.Command;
|
||||||
|
import org.bukkit.command.CommandExecutor;
|
||||||
|
import org.bukkit.command.CommandSender;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
|
public class LobbySettingsCommand implements CommandExecutor {
|
||||||
|
|
||||||
|
private final LobbySettingsModule module;
|
||||||
|
|
||||||
|
public LobbySettingsCommand(LobbySettingsModule module) {
|
||||||
|
this.module = module;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
|
||||||
|
if (!(sender instanceof Player)) {
|
||||||
|
sender.sendMessage("§cDieser Befehl kann nur von Spielern genutzt werden.");
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
Player player = (Player) sender;
|
||||||
|
|
||||||
|
// Permission zurückgesetzt auf nexuslobby.admin
|
||||||
|
if (!player.hasPermission("nexuslobby.admin")) {
|
||||||
|
player.sendMessage("§cKeine Rechte.");
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Öffnet das Hauptmenü des Einstellungs-Moduls
|
||||||
|
module.openMainMenu(player);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
101
src/main/java/de/nexuslobby/commands/LobbyTabCompleter.java
Normal file
101
src/main/java/de/nexuslobby/commands/LobbyTabCompleter.java
Normal file
@@ -0,0 +1,101 @@
|
|||||||
|
package de.nexuslobby.commands;
|
||||||
|
|
||||||
|
import de.nexuslobby.modules.portal.PortalManager;
|
||||||
|
import org.bukkit.command.Command;
|
||||||
|
import org.bukkit.command.CommandSender;
|
||||||
|
import org.bukkit.command.TabCompleter;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Arrays;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
public class LobbyTabCompleter implements TabCompleter {
|
||||||
|
|
||||||
|
private final PortalManager portalManager;
|
||||||
|
|
||||||
|
public LobbyTabCompleter(PortalManager portalManager) {
|
||||||
|
this.portalManager = portalManager;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<String> onTabComplete(CommandSender sender, Command command, String alias, String[] args) {
|
||||||
|
List<String> suggestions = new ArrayList<>();
|
||||||
|
|
||||||
|
// --- NexusLobby Hauptbefehl ---
|
||||||
|
if (command.getName().equalsIgnoreCase("nexuslobby") || command.getName().equalsIgnoreCase("nexus")) {
|
||||||
|
if (args.length == 1) {
|
||||||
|
if (sender.hasPermission("nexuslobby.admin")) suggestions.add("reload");
|
||||||
|
suggestions.add("sb");
|
||||||
|
} else if (args.length == 2 && args[0].equalsIgnoreCase("sb")) {
|
||||||
|
suggestions.add("on");
|
||||||
|
suggestions.add("off");
|
||||||
|
if (sender.hasPermission("nexuslobby.scoreboard.admin")) {
|
||||||
|
suggestions.add("admin");
|
||||||
|
suggestions.add("spieler");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// --- Wartungsmodus ---
|
||||||
|
else if (command.getName().equalsIgnoreCase("maintenance")) {
|
||||||
|
if (args.length == 1) {
|
||||||
|
suggestions.add("on");
|
||||||
|
suggestions.add("off");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// --- Portalsystem ---
|
||||||
|
else if (command.getName().equalsIgnoreCase("portal")) {
|
||||||
|
if (args.length == 1) {
|
||||||
|
suggestions.add("create");
|
||||||
|
suggestions.add("delete");
|
||||||
|
suggestions.add("list");
|
||||||
|
} else if (args.length == 2 && args[0].equalsIgnoreCase("delete")) {
|
||||||
|
suggestions.addAll(portalManager.getPortalNames());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// --- NexusTools (ehemals astools) ---
|
||||||
|
else if (command.getName().equalsIgnoreCase("nexustools") || command.getName().equalsIgnoreCase("astools") || command.getName().equalsIgnoreCase("nt")) {
|
||||||
|
if (args.length == 1) {
|
||||||
|
suggestions.add("reload");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// --- NexusCmd (ehemals ascmd) ---
|
||||||
|
else if (command.getName().equalsIgnoreCase("nexuscmd") || command.getName().equalsIgnoreCase("ascmd") || command.getName().equalsIgnoreCase("ncmd")) {
|
||||||
|
if (args.length == 1) {
|
||||||
|
suggestions.add("name"); // NEU
|
||||||
|
suggestions.add("list");
|
||||||
|
suggestions.add("add");
|
||||||
|
suggestions.add("remove");
|
||||||
|
}
|
||||||
|
// Vorschläge für: /nexuscmd name <Text>
|
||||||
|
else if (args.length == 2 && args[0].equalsIgnoreCase("name")) {
|
||||||
|
suggestions.add("none");
|
||||||
|
suggestions.add("<Text>");
|
||||||
|
}
|
||||||
|
// Vorschläge für: /nexuscmd add <delay> <cooldown> <type>
|
||||||
|
else if (args.length == 2 && args[0].equalsIgnoreCase("add")) {
|
||||||
|
suggestions.add("0");
|
||||||
|
}
|
||||||
|
else if (args.length == 3 && args[0].equalsIgnoreCase("add")) {
|
||||||
|
suggestions.add("0");
|
||||||
|
}
|
||||||
|
else if (args.length == 4 && args[0].equalsIgnoreCase("add")) {
|
||||||
|
suggestions.add("player");
|
||||||
|
suggestions.add("console");
|
||||||
|
suggestions.add("bungee");
|
||||||
|
}
|
||||||
|
else if (args.length == 5 && args[0].equalsIgnoreCase("add") && args[3].equalsIgnoreCase("bungee")) {
|
||||||
|
suggestions.add("<Servername>");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Filtert die Liste basierend auf dem, was der Spieler bereits getippt hat
|
||||||
|
return suggestions.stream()
|
||||||
|
.filter(s -> s.toLowerCase().startsWith(args[args.length - 1].toLowerCase()))
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
}
|
||||||
|
}
|
||||||
47
src/main/java/de/nexuslobby/commands/MaintenanceCommand.java
Normal file
47
src/main/java/de/nexuslobby/commands/MaintenanceCommand.java
Normal file
@@ -0,0 +1,47 @@
|
|||||||
|
package de.nexuslobby.commands;
|
||||||
|
|
||||||
|
import de.nexuslobby.NexusLobby;
|
||||||
|
import org.bukkit.Bukkit;
|
||||||
|
import org.bukkit.ChatColor;
|
||||||
|
import org.bukkit.command.Command;
|
||||||
|
import org.bukkit.command.CommandExecutor;
|
||||||
|
import org.bukkit.command.CommandSender;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
|
public class MaintenanceCommand implements CommandExecutor {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
|
||||||
|
if (!sender.hasPermission("nexuslobby.maintenance")) {
|
||||||
|
sender.sendMessage("§cKeine Rechte!");
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (args.length != 1) {
|
||||||
|
sender.sendMessage("§cBenutzung: /maintenance <on|off>");
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
boolean enable = args[0].equalsIgnoreCase("on");
|
||||||
|
NexusLobby.getInstance().getConfig().set("maintenance.enabled", enable);
|
||||||
|
NexusLobby.getInstance().saveConfig();
|
||||||
|
|
||||||
|
if (enable) {
|
||||||
|
sender.sendMessage("§aWartungsmodus §cAKTIVIERT§a!");
|
||||||
|
|
||||||
|
String kickMsg = ChatColor.translateAlternateColorCodes('&',
|
||||||
|
NexusLobby.getInstance().getConfig().getString("maintenance.kick_message", "&cDer Server ist nun im Wartungsmodus!"));
|
||||||
|
|
||||||
|
for (Player all : Bukkit.getOnlinePlayers()) {
|
||||||
|
// Kicke alle, die kein OP sind UND keine spezielle Permission haben
|
||||||
|
if (!all.isOp() && !all.hasPermission("nexuslobby.join.maintenance")) {
|
||||||
|
all.kickPlayer(kickMsg);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
sender.sendMessage("§aWartungsmodus §7deaktiviert.");
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
90
src/main/java/de/nexuslobby/commands/NexusLobbyCommand.java
Normal file
90
src/main/java/de/nexuslobby/commands/NexusLobbyCommand.java
Normal file
@@ -0,0 +1,90 @@
|
|||||||
|
package de.nexuslobby.commands;
|
||||||
|
|
||||||
|
import de.nexuslobby.NexusLobby;
|
||||||
|
import de.nexuslobby.modules.ScoreboardModule;
|
||||||
|
import org.bukkit.command.Command;
|
||||||
|
import org.bukkit.command.CommandExecutor;
|
||||||
|
import org.bukkit.command.CommandSender;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
|
public class NexusLobbyCommand implements CommandExecutor {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
|
||||||
|
|
||||||
|
// Sub-Befehl: /nexus sb <on|off|admin|spieler>
|
||||||
|
if (args.length >= 2 && args[0].equalsIgnoreCase("sb")) {
|
||||||
|
if (!(sender instanceof Player)) {
|
||||||
|
sender.sendMessage("§cDieser Befehl ist nur für Spieler!");
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
Player player = (Player) sender;
|
||||||
|
ScoreboardModule sbModule = (ScoreboardModule) NexusLobby.getInstance().getModuleManager().getModule(ScoreboardModule.class);
|
||||||
|
|
||||||
|
if (sbModule == null) {
|
||||||
|
player.sendMessage("§cDas Scoreboard-Modul ist aktuell deaktiviert.");
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
String sub = args[1].toLowerCase();
|
||||||
|
switch (sub) {
|
||||||
|
case "on":
|
||||||
|
sbModule.setVisibility(player, true);
|
||||||
|
break;
|
||||||
|
case "off":
|
||||||
|
sbModule.setVisibility(player, false);
|
||||||
|
break;
|
||||||
|
case "admin":
|
||||||
|
if (!player.hasPermission("nexuslobby.scoreboard.admin")) {
|
||||||
|
player.sendMessage("§cKeine Rechte für den Admin-Modus.");
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
sbModule.setAdminMode(player, true);
|
||||||
|
break;
|
||||||
|
case "spieler":
|
||||||
|
if (!player.hasPermission("nexuslobby.scoreboard.admin")) {
|
||||||
|
player.sendMessage("§cKeine Rechte für den Admin-Modus.");
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
sbModule.setAdminMode(player, false);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
player.sendMessage("§cBenutzung: /nexus sb <on|off|admin|spieler>");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Sub-Befehl: /nexus reload
|
||||||
|
if (args.length == 1 && args[0].equalsIgnoreCase("reload")) {
|
||||||
|
if (!sender.hasPermission("nexuslobby.admin")) {
|
||||||
|
sender.sendMessage("§cDu hast keine Berechtigung für diesen Befehl.");
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
sender.sendMessage("§7[§6NexusLobby§7] §eKonfigurationen und Module werden neu geladen...");
|
||||||
|
NexusLobby.getInstance().reloadPlugin();
|
||||||
|
sender.sendMessage("§7[§6NexusLobby§7] §aDas Plugin wurde erfolgreich neu geladen!");
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Standard-Info
|
||||||
|
String version = NexusLobby.getInstance().getDescription().getVersion();
|
||||||
|
sender.sendMessage("§8§m--------------------------------------");
|
||||||
|
sender.sendMessage("§6§lNexusLobby §7- Informationen");
|
||||||
|
sender.sendMessage("");
|
||||||
|
sender.sendMessage("§ePlugin Name: §fNexusLobby");
|
||||||
|
sender.sendMessage("§eVersion: §f" + version);
|
||||||
|
sender.sendMessage("§eAutor: §fM_Viper");
|
||||||
|
sender.sendMessage("");
|
||||||
|
sender.sendMessage("§6Befehle:");
|
||||||
|
sender.sendMessage("§f/nexus reload §7- Plugin neu laden");
|
||||||
|
sender.sendMessage("§f/nexus sb <on|off> §7- Scoreboard schalten");
|
||||||
|
if (sender.hasPermission("nexuslobby.scoreboard.admin")) {
|
||||||
|
sender.sendMessage("§f/nexus sb <admin|spieler> §7- Modus wechseln");
|
||||||
|
}
|
||||||
|
sender.sendMessage("§8§m--------------------------------------");
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user