SteamWar/BauSystem
Archiviert
13
0
Dieses Repository wurde am 2024-08-04 archiviert. Du kannst Dateien ansehen und es klonen, aber nicht pushen oder Issues/Pull-Requests öffnen.
BauSystem/src/de/steamwar/bausystem/commands/CommandBau.java

249 Zeilen
9.3 KiB
Java

package de.steamwar.bausystem.commands;
2019-03-27 13:27:05 +01: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
//TODO: Move to BungeeCore
/*@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");
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");
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
}
@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:");
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
}
@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);
}
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 {
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-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;
}
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");
2019-03-27 13:27:05 +01:00
return;
}
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 {
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;
}
}
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);
}
@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();
if (!hasWorld(p)){
2019-03-27 13:27:05 +01:00
return;
}else if (args.length() == 0) {
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;
}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;
}
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-03-27 13:27:05 +01:00
private void onDel(Player p, String arg) {
/*if (args.length() == 0) {
p.sendMessage(BauSystem.PREFIX + "/bau delmember <Spieler>");
2019-03-27 13:27:05 +01:00
return;
}*/
2019-03-27 13:27:05 +01:00
UUID id = WarkingUser.get(arg).getUUID();
if(!toggleCheck(p, id)){
2019-03-27 13:27:05 +01:00
return;
}
BauweltMember target = BauweltMember.getBauMember(id);
Welt.removePlayer(p, target);
2019-03-27 13:27:05 +01: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-03-27 13:27:05 +01:00
UUID id = WarkingUser.get(arg).getUUID();
if(!toggleCheck(p, id)){
2019-03-27 13:27:05 +01:00
return;
}
BauweltMember target = BauweltMember.getBauMember(id);
Welt.toggleBuild(p, target);
2019-03-27 13:27:05 +01:00
}
private void onToggleWE(Player p, String arg) {
/*if (args.length() == 0) {
p.sendMessage(BauSystem.PREFIX + "/bau togglewe <Spieler>");
2019-03-27 13:27:05 +01:00
return;
}*/
2019-03-27 13:27:05 +01:00
UUID id = WarkingUser.get(arg).getUUID();
if(!toggleCheck(p, id)){
2019-03-27 13:27:05 +01:00
return;
}
BauweltMember target = BauweltMember.getBauMember(id);
Welt.toggleWE(p, target);
2019-03-27 13:27:05 +01:00
}
private void onToggleWorld(Player p, String arg) {
/*if (args.length() == 0) {
p.sendMessage(BauSystem.PREFIX + "/bau toggleworld <Spieler>");
2019-03-27 13:27:05 +01:00
return;
}*/
2019-03-27 13:27:05 +01:00
UUID id = WarkingUser.get(arg).getUUID();
if(!toggleCheck(p, id)){
2019-03-27 13:27:05 +01:00
return;
}
BauweltMember target = BauweltMember.getBauMember(id);
Welt.toggleTestblock(p, target);
2019-03-27 13:27:05 +01: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");
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();
}
}
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;
}
2019-03-27 13:27:05 +01:00
}