package de.steamwar.bausystem.commands; import de.steamwar.bausystem.BauSystem; import de.steamwar.bausystem.sql.BauweltMember; import de.steamwar.bausystem.world.Welt; import de.warking.hunjy.MySQL.WarkingUser; import org.bukkit.command.Command; import org.bukkit.command.CommandExecutor; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import java.util.UUID; public class CommandBau implements CommandExecutor { //TODO: Move to BungeeCore /*@Command(name = "bau", aliases = {"bau.help", "gs", "gs.help"}, inGameOnly = true) public void onHelp(CommandArgs args) { Player p = args.getPlayer(); p.sendMessage(BauSystem.PREFIX + "Hilfeseite 1 von 2:"); p.sendMessage("§6/bau help §7- Zeigt dir diese Hilfe"); p.sendMessage("§6/bau help 2 §7- Zeigt dir die Hilfe zum Member-System"); p.sendMessage("§6/home §7- Teleportiert dich auf deine Welt"); p.sendMessage("§6/tnt §7- (de)aktiviert Explosionsschaden"); p.sendMessage("§6/fire §7- (de)aktiviert Feuerschaden"); p.sendMessage("§6/testblock §7- Erneuert den nächsten Testblock"); p.sendMessage("§6/reset §7- Setzt die derzeitige Region zurück"); p.sendMessage("§6/bau resetall §7- Setzt deine Welt zurück"); p.sendMessage("§6/speed §7- Ändert deine Fluggeschwindigkeit"); p.sendMessage("§6/nv §7- (de)aktiviert Nachtsicht"); p.sendMessage("§6/trace §7- Gibt einen Überblick über den TNT-Tracer"); //p.sendMessage("§6/bau gui §7- Öffnet eine GUI"); } @Command(name = "bau.help.2", aliases = {"gs.help.2", "bau.2", "gs.2"}, inGameOnly = true) public void onHelp2(CommandArgs args) { Player p = args.getPlayer(); p.sendMessage(BauSystem.PREFIX + "Hilfeseite 2 von 2:"); p.sendMessage("§6/bau addmember §7- Fügt zu deiner Welt einen Spieler hinzu"); p.sendMessage("§6/bau delmember §7- Entfernt einen Spieler von deiner Welt"); p.sendMessage("§6/bau togglebuild §7- Berechtigung zum Bauen, Spielmodus wechseln, /tp"); p.sendMessage("§6/bau togglewe §7- Berechtigung für: WorldEdit, /bau replace, /bau testblock"); p.sendMessage("§6/bau toggleworld §7- Berechtigung für: /bau reset, /trace, /fire, /tnt"); } @Command(name = "bau.home", aliases = {"gs.home", "home"}, inGameOnly = true) public void onHome(CommandArgs args) { Player p = args.getPlayer(); if (Bauwelt.getBauwelt(p.getUniqueId()) == null) { new Bauwelt(p.getUniqueId(), false, false); } if (Bukkit.getWorld(p.getUniqueId().toString()) == null){ p.sendMessage(BauSystem.PREFIX + "§aEinen Moment bitte... Deine Welt wird vorbereitet"); try { Welt.loadWorld(p.getUniqueId()); } catch (IOException e) { p.sendMessage(BauSystem.PREFIX + "§cBeim Laden der Welt ist ein Fehler aufgetreten"); e.printStackTrace(); return; } } p.teleport(Bukkit.getWorld(p.getUniqueId().toString()).getSpawnLocation()); Bukkit.getScheduler().scheduleSyncDelayedTask(BauSystem.getInstance(), () -> p.setGameMode(GameMode.CREATIVE),20L); } @Command(name = "bau.tp", aliases = "gs.tp", inGameOnly = true) public void onTp(CommandArgs args) { Player p = args.getPlayer(); if (args.length() == 0) { p.sendMessage(BauSystem.PREFIX + "/bau tp "); return; } UUID worldOwner = WarkingUser.get(args.getArgs(0)).getUUID(); if (!Welt.hasPermission(worldOwner, p, Permission.member)){ p.sendMessage(BauSystem.PREFIX + "§cDu darfst dich nicht auf diese Welt teleportieren"); return; } if (Bukkit.getWorld(worldOwner.toString()) == null){ p.sendMessage(BauSystem.PREFIX + "§aEinen Moment bitte... Die Welt wird vorbereitet"); try { Welt.loadWorld(worldOwner); } catch (IOException e) { p.sendMessage(BauSystem.PREFIX + "§cBeim Laden der Welt ist ein Fehler aufgetreten"); e.printStackTrace(); return; } } p.teleport(Bukkit.getWorld(worldOwner.toString()).getSpawnLocation()); Bukkit.getScheduler().scheduleSyncDelayedTask(BauSystem.getInstance(), () -> p.setGameMode(GameMode.CREATIVE), 20); } @Command(name = "bau.addmember", aliases = "gs.addmember", inGameOnly = true) public void onAdd(CommandArgs args) { Player p = args.getPlayer(); if (!hasWorld(p)){ return; }else if (args.length() == 0) { p.sendMessage(BauSystem.PREFIX + "/bau addmember "); return; } UUID id = WarkingUser.get(args.getArgs(0)).getUUID(); if (id == null) { p.sendMessage(BauSystem.PREFIX + "§cUnbekannter Spieler"); return; }else if (BauweltMember.getBauMember(p.getUniqueId(), id) != null) { p.sendMessage(BauSystem.PREFIX + "§cDieser Spieler ist bereits Mitglied auf deiner Welt"); return; } new BauweltMember(p.getUniqueId(), id, true, false, false, false, false); p.sendMessage(BauSystem.PREFIX + "§aDer Spieler wurde zu deiner Welt hinzugefügt"); Player z = Bukkit.getPlayer(id); if(z != null) z.sendMessage(BauSystem.PREFIX + "§aDu wurdest zu der Welt von §6" + p.getName() + " §ahinzugefügt"); }*/ private void onDel(Player p, String arg) { /*if (args.length() == 0) { p.sendMessage(BauSystem.PREFIX + "/bau delmember "); return; }*/ UUID id = WarkingUser.get(arg).getUUID(); if(!toggleCheck(p, id)){ return; } BauweltMember target = BauweltMember.getBauMember(id); Welt.removePlayer(p, target); } private void onToggleBD(Player p, String arg) { /*if (args.length() == 0) { p.sendMessage(BauSystem.PREFIX + "/bau togglebuild "); return; }*/ UUID id = WarkingUser.get(arg).getUUID(); if(!toggleCheck(p, id)){ return; } BauweltMember target = BauweltMember.getBauMember(id); Welt.toggleBuild(p, target); } private void onToggleWE(Player p, String arg) { /*if (args.length() == 0) { p.sendMessage(BauSystem.PREFIX + "/bau togglewe "); return; }*/ UUID id = WarkingUser.get(arg).getUUID(); if(!toggleCheck(p, id)){ return; } BauweltMember target = BauweltMember.getBauMember(id); Welt.toggleWE(p, target); } private void onToggleWorld(Player p, String arg) { /*if (args.length() == 0) { p.sendMessage(BauSystem.PREFIX + "/bau toggleworld "); return; }*/ UUID id = WarkingUser.get(arg).getUUID(); if(!toggleCheck(p, id)){ return; } BauweltMember target = BauweltMember.getBauMember(id); Welt.toggleTestblock(p, target); } /*public void onResetAll(CommandArgs args) { final Player p = args.getPlayer(); p.sendMessage(BauSystem.PREFIX + "§aDeine Welt wird zurückgesetzt. Einen Moment bitte"); Welt.unloadWorld(p.getUniqueId()); File directory = new File("plugins/BauSystem/worlds/" + p.getUniqueId().toString()); del(directory); File directory1 = new File("plugins/WorldGuard/worlds/" + p.getUniqueId().toString()); del(directory1); Bukkit.getScheduler().scheduleSyncDelayedTask(BauSystem.getInstance(), () -> onHome(args),20L); } private void del(File dir){ if (dir.isDirectory()){ String[] entries = dir.list(); for (String entry : entries) { File aktFile = new File(dir.getPath(), entry); del(aktFile); } dir.delete(); } else{ dir.delete(); } } private boolean hasWorld(Player p){ if (Bauwelt.getBauwelt(p.getUniqueId()).getUUID() == null) { p.sendMessage(BauSystem.PREFIX + "§cDu hast keine Bauwelt"); return false; } return true; }*/ private boolean toggleCheck(Player p, UUID id){ if (id == null) { p.sendMessage(BauSystem.PREFIX + "§cUnbekannter Spieler"); return false; } BauweltMember target = BauweltMember.getBauMember(id); if (target == null) { p.sendMessage(BauSystem.PREFIX + "§cDer Spieler ist kein Mitglied deiner Welt!"); return false; } return true; } @Override public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { if(!(sender instanceof Player)) return false; Player player = (Player) sender; if(args[0].equalsIgnoreCase("delmember")){ onDel(player, args[1]); }else if(args[0].equalsIgnoreCase("togglebuild")){ onToggleBD(player, args[1]); }else if(args[0].equalsIgnoreCase("togglewe")){ onToggleWE(player, args[1]); }else if(args[0].equalsIgnoreCase("toggleworld")){ onToggleWorld(player, args[1]); } return false; } }