2019-06-11 07:05:05 +02:00
|
|
|
package de.steamwar.bausystem.commands;
|
2019-03-27 13:27:05 +01:00
|
|
|
|
2019-06-13 10:22:07 +02:00
|
|
|
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 {
|
2019-03-27 13:27:05 +01:00
|
|
|
|
2019-06-11 07:05:05 +02:00
|
|
|
//TODO: Move to BungeeCore
|
|
|
|
|
2019-06-13 10:22:07 +02:00
|
|
|
/*@Command(name = "bau", aliases = {"bau.help", "gs", "gs.help"}, inGameOnly = true)
|
2019-03-27 13:27:05 +01:00
|
|
|
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");
|
2019-04-20 19:39:15 +02:00
|
|
|
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");
|
2019-03-27 13:27:05 +01:00
|
|
|
p.sendMessage("§6/bau resetall §7- Setzt deine Welt zurück");
|
2019-04-20 19:39:15 +02:00
|
|
|
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");
|
2019-03-27 18:19:32 +01:00
|
|
|
//p.sendMessage("§6/bau gui §7- Öffnet eine GUI");
|
2019-03-27 13:27:05 +01:00
|
|
|
}
|
|
|
|
|
2019-04-20 19:39:15 +02:00
|
|
|
@Command(name = "bau.help.2", aliases = {"gs.help.2", "bau.2", "gs.2"}, inGameOnly = true)
|
2019-03-27 13:27:05 +01:00
|
|
|
public void onHelp2(CommandArgs args) {
|
|
|
|
Player p = args.getPlayer();
|
|
|
|
p.sendMessage(BauSystem.PREFIX + "Hilfeseite 2 von 2:");
|
2019-04-20 19:39:15 +02:00
|
|
|
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");
|
2019-03-27 13:27:05 +01:00
|
|
|
}
|
|
|
|
|
2019-04-20 19:39:15 +02:00
|
|
|
@Command(name = "bau.home", aliases = {"gs.home", "home"}, inGameOnly = true)
|
2019-03-27 13:27:05 +01:00
|
|
|
public void onHome(CommandArgs args) {
|
|
|
|
Player p = args.getPlayer();
|
|
|
|
if (Bauwelt.getBauwelt(p.getUniqueId()) == null) {
|
|
|
|
new Bauwelt(p.getUniqueId(), false, false);
|
|
|
|
}
|
2019-04-20 19:39:15 +02:00
|
|
|
if (Bukkit.getWorld(p.getUniqueId().toString()) == null){
|
2019-03-27 13:27:05 +01:00
|
|
|
p.sendMessage(BauSystem.PREFIX + "§aEinen Moment bitte... Deine Welt wird vorbereitet");
|
|
|
|
try {
|
2019-06-13 10:22:07 +02:00
|
|
|
Welt.loadWorld(p.getUniqueId());
|
2019-03-27 13:27:05 +01:00
|
|
|
} catch (IOException e) {
|
|
|
|
p.sendMessage(BauSystem.PREFIX + "§cBeim Laden der Welt ist ein Fehler aufgetreten");
|
|
|
|
e.printStackTrace();
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
}
|
2019-04-20 19:39:15 +02:00
|
|
|
|
2019-03-27 13:27:05 +01:00
|
|
|
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 <Spieler>");
|
|
|
|
return;
|
|
|
|
}
|
2019-04-20 19:39:15 +02:00
|
|
|
|
|
|
|
UUID worldOwner = WarkingUser.get(args.getArgs(0)).getUUID();
|
2019-06-13 10:22:07 +02:00
|
|
|
if (!Welt.hasPermission(worldOwner, p, Permission.member)){
|
2019-04-20 19:39:15 +02:00
|
|
|
p.sendMessage(BauSystem.PREFIX + "§cDu darfst dich nicht auf diese Welt teleportieren");
|
2019-03-27 13:27:05 +01:00
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
2019-04-20 19:39:15 +02:00
|
|
|
if (Bukkit.getWorld(worldOwner.toString()) == null){
|
|
|
|
p.sendMessage(BauSystem.PREFIX + "§aEinen Moment bitte... Die Welt wird vorbereitet");
|
2019-03-27 13:27:05 +01:00
|
|
|
try {
|
2019-06-13 10:22:07 +02:00
|
|
|
Welt.loadWorld(worldOwner);
|
2019-03-27 13:27:05 +01:00
|
|
|
} catch (IOException e) {
|
|
|
|
p.sendMessage(BauSystem.PREFIX + "§cBeim Laden der Welt ist ein Fehler aufgetreten");
|
|
|
|
e.printStackTrace();
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2019-04-20 19:39:15 +02:00
|
|
|
p.teleport(Bukkit.getWorld(worldOwner.toString()).getSpawnLocation());
|
2019-03-27 13:27:05 +01:00
|
|
|
Bukkit.getScheduler().scheduleSyncDelayedTask(BauSystem.getInstance(), () -> p.setGameMode(GameMode.CREATIVE), 20);
|
|
|
|
}
|
|
|
|
|
2019-04-20 19:39:15 +02:00
|
|
|
@Command(name = "bau.addmember", aliases = "gs.addmember", inGameOnly = true)
|
|
|
|
public void onAdd(CommandArgs args) {
|
2019-03-27 13:27:05 +01:00
|
|
|
Player p = args.getPlayer();
|
2019-04-20 19:39:15 +02:00
|
|
|
if (!hasWorld(p)){
|
2019-03-27 13:27:05 +01:00
|
|
|
return;
|
|
|
|
}else if (args.length() == 0) {
|
2019-04-20 19:39:15 +02:00
|
|
|
p.sendMessage(BauSystem.PREFIX + "/bau addmember <Spieler>");
|
2019-03-27 13:27:05 +01:00
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
UUID id = WarkingUser.get(args.getArgs(0)).getUUID();
|
|
|
|
if (id == null) {
|
|
|
|
p.sendMessage(BauSystem.PREFIX + "§cUnbekannter Spieler");
|
|
|
|
return;
|
2019-04-20 19:39:15 +02:00
|
|
|
}else if (BauweltMember.getBauMember(p.getUniqueId(), id) != null) {
|
|
|
|
p.sendMessage(BauSystem.PREFIX + "§cDieser Spieler ist bereits Mitglied auf deiner Welt");
|
2019-03-27 13:27:05 +01:00
|
|
|
return;
|
|
|
|
}
|
2019-04-20 19:39:15 +02:00
|
|
|
|
|
|
|
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");
|
2019-06-13 10:22:07 +02:00
|
|
|
}*/
|
2019-03-27 13:27:05 +01:00
|
|
|
|
2019-06-13 10:22:07 +02:00
|
|
|
private void onDel(Player p, String arg) {
|
|
|
|
/*if (args.length() == 0) {
|
2019-04-20 19:39:15 +02:00
|
|
|
p.sendMessage(BauSystem.PREFIX + "/bau delmember <Spieler>");
|
2019-03-27 13:27:05 +01:00
|
|
|
return;
|
2019-06-13 10:22:07 +02:00
|
|
|
}*/
|
2019-03-27 13:27:05 +01:00
|
|
|
|
2019-06-13 10:22:07 +02:00
|
|
|
UUID id = WarkingUser.get(arg).getUUID();
|
|
|
|
if(!toggleCheck(p, id)){
|
2019-03-27 13:27:05 +01:00
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
2019-06-13 10:22:07 +02:00
|
|
|
BauweltMember target = BauweltMember.getBauMember(id);
|
|
|
|
Welt.removePlayer(p, target);
|
2019-03-27 13:27:05 +01:00
|
|
|
}
|
|
|
|
|
2019-06-13 10:22:07 +02:00
|
|
|
private void onToggleBD(Player p, String arg) {
|
|
|
|
/*if (args.length() == 0) {
|
2019-03-27 13:27:05 +01:00
|
|
|
p.sendMessage(BauSystem.PREFIX + "/bau togglebuild <Spieler>");
|
|
|
|
return;
|
2019-06-13 10:22:07 +02:00
|
|
|
}*/
|
2019-03-27 13:27:05 +01:00
|
|
|
|
2019-06-13 10:22:07 +02:00
|
|
|
UUID id = WarkingUser.get(arg).getUUID();
|
|
|
|
if(!toggleCheck(p, id)){
|
2019-03-27 13:27:05 +01:00
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
2019-06-13 10:22:07 +02:00
|
|
|
BauweltMember target = BauweltMember.getBauMember(id);
|
|
|
|
Welt.toggleBuild(p, target);
|
2019-03-27 13:27:05 +01:00
|
|
|
}
|
|
|
|
|
2019-06-13 10:22:07 +02:00
|
|
|
private void onToggleWE(Player p, String arg) {
|
|
|
|
/*if (args.length() == 0) {
|
2019-04-20 19:39:15 +02:00
|
|
|
p.sendMessage(BauSystem.PREFIX + "/bau togglewe <Spieler>");
|
2019-03-27 13:27:05 +01:00
|
|
|
return;
|
2019-06-13 10:22:07 +02:00
|
|
|
}*/
|
2019-03-27 13:27:05 +01:00
|
|
|
|
2019-06-13 10:22:07 +02:00
|
|
|
UUID id = WarkingUser.get(arg).getUUID();
|
|
|
|
if(!toggleCheck(p, id)){
|
2019-03-27 13:27:05 +01:00
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
2019-06-13 10:22:07 +02:00
|
|
|
BauweltMember target = BauweltMember.getBauMember(id);
|
|
|
|
Welt.toggleWE(p, target);
|
2019-03-27 13:27:05 +01:00
|
|
|
}
|
|
|
|
|
2019-06-13 10:22:07 +02:00
|
|
|
private void onToggleWorld(Player p, String arg) {
|
|
|
|
/*if (args.length() == 0) {
|
2019-04-20 19:39:15 +02:00
|
|
|
p.sendMessage(BauSystem.PREFIX + "/bau toggleworld <Spieler>");
|
2019-03-27 13:27:05 +01:00
|
|
|
return;
|
2019-06-13 10:22:07 +02:00
|
|
|
}*/
|
2019-03-27 13:27:05 +01:00
|
|
|
|
2019-06-13 10:22:07 +02:00
|
|
|
UUID id = WarkingUser.get(arg).getUUID();
|
|
|
|
if(!toggleCheck(p, id)){
|
2019-03-27 13:27:05 +01:00
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
2019-06-13 10:22:07 +02:00
|
|
|
BauweltMember target = BauweltMember.getBauMember(id);
|
|
|
|
Welt.toggleTestblock(p, target);
|
2019-03-27 13:27:05 +01:00
|
|
|
}
|
|
|
|
|
2019-06-13 10:22:07 +02:00
|
|
|
/*public void onResetAll(CommandArgs args) {
|
2019-03-27 13:27:05 +01:00
|
|
|
final Player p = args.getPlayer();
|
|
|
|
p.sendMessage(BauSystem.PREFIX + "§aDeine Welt wird zurückgesetzt. Einen Moment bitte");
|
2019-06-13 10:22:07 +02:00
|
|
|
Welt.unloadWorld(p.getUniqueId());
|
2019-03-27 18:19:32 +01:00
|
|
|
File directory = new File("plugins/BauSystem/worlds/" + p.getUniqueId().toString());
|
2019-03-27 13:27:05 +01:00
|
|
|
del(directory);
|
|
|
|
File directory1 = new File("plugins/WorldGuard/worlds/" + p.getUniqueId().toString());
|
|
|
|
del(directory1);
|
2019-03-27 18:19:32 +01:00
|
|
|
Bukkit.getScheduler().scheduleSyncDelayedTask(BauSystem.getInstance(), () -> onHome(args),20L);
|
2019-03-27 13:27:05 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
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();
|
|
|
|
}
|
|
|
|
}
|
2019-04-20 19:39:15 +02:00
|
|
|
|
|
|
|
private boolean hasWorld(Player p){
|
|
|
|
if (Bauwelt.getBauwelt(p.getUniqueId()).getUUID() == null) {
|
|
|
|
p.sendMessage(BauSystem.PREFIX + "§cDu hast keine Bauwelt");
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
return true;
|
2019-06-13 10:22:07 +02:00
|
|
|
}*/
|
2019-04-20 19:39:15 +02:00
|
|
|
|
2019-06-13 10:22:07 +02:00
|
|
|
private boolean toggleCheck(Player p, UUID id){
|
2019-04-20 19:39:15 +02:00
|
|
|
if (id == null) {
|
|
|
|
p.sendMessage(BauSystem.PREFIX + "§cUnbekannter Spieler");
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
|
2019-06-13 10:22:07 +02:00
|
|
|
BauweltMember target = BauweltMember.getBauMember(id);
|
2019-04-20 19:39:15 +02:00
|
|
|
if (target == null) {
|
2019-06-13 10:22:07 +02:00
|
|
|
p.sendMessage(BauSystem.PREFIX + "§cDer Spieler ist kein Mitglied deiner Welt!");
|
2019-04-20 19:39:15 +02:00
|
|
|
return false;
|
|
|
|
}
|
|
|
|
return true;
|
2019-06-13 10:22:07 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
@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;
|
|
|
|
}
|
2019-03-27 13:27:05 +01:00
|
|
|
}
|