SteamWar/BauSystem
Archiviert
13
0

Small Überarbeitungen + FireSpread Bugfix

Dieser Commit ist enthalten in:
Lixfel 2019-04-20 19:39:15 +02:00
Ursprung 758153f5b9
Commit 4f2425c8c2
10 geänderte Dateien mit 334 neuen und 497 gelöschten Zeilen

Datei anzeigen

@ -117,7 +117,7 @@ public class CommandFramework implements CommandExecutor {
public void setNoPermMessage(String message){ public void setNoPermMessage(String message){
this.noPermMessage = message; this.noPermMessage = message;
} }
public String getNoPermMessage(){ public String getNoPermMessage(){
return this.noPermMessage; return this.noPermMessage;
} }
@ -180,7 +180,6 @@ public class CommandFramework implements CommandExecutor {
private void registerCommand(Command command, String label, Method m, Object obj) { private void registerCommand(Command command, String label, Method m, Object obj) {
commandMap.put(label.toLowerCase(), new AbstractMap.SimpleEntry<>(m, obj)); commandMap.put(label.toLowerCase(), new AbstractMap.SimpleEntry<>(m, obj));
commandMap.put(this.plugin.getName() + ':' + label.toLowerCase(), new AbstractMap.SimpleEntry<>(m, obj));
String cmdLabel = label.replace(".", ",").split(",")[0].toLowerCase(); String cmdLabel = label.replace(".", ",").split(",")[0].toLowerCase();
if (map.getCommand(cmdLabel) == null) { if (map.getCommand(cmdLabel) == null) {
org.bukkit.command.Command cmd = new BukkitCommand(cmdLabel, this, plugin); org.bukkit.command.Command cmd = new BukkitCommand(cmdLabel, this, plugin);

Datei anzeigen

@ -9,6 +9,7 @@ import de.warking.bausystem.commands.*;
import de.warking.bausystem.config.Config; import de.warking.bausystem.config.Config;
import de.warking.bausystem.world.LagDetectorRunnable; import de.warking.bausystem.world.LagDetectorRunnable;
import de.warking.bausystem.world.RegionListener; import de.warking.bausystem.world.RegionListener;
import de.warking.hunjy.MySQL.Bauwelt;
import de.warking.hunjy.MySQL.WarkingUser; import de.warking.hunjy.MySQL.WarkingUser;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.command.Command; import org.bukkit.command.Command;
@ -82,16 +83,15 @@ public class BauSystem extends JavaPlugin implements Listener {
saveRegionData(); saveRegionData();
} }
// Time to replace the vanillacommands with BauSystem's own versions
try { try {
CommandRemover.removeCommand("tp"); CommandRemover.removeCommand("tp");
CommandInjector.injectCommand(new CommandTeleport()); CommandInjector.injectCommand(new CommandTeleport());
CommandRemover.removeCommand("gamemode"); CommandRemover.removeCommand("gamemode");
CommandInjector.injectCommand(new CommandGamemode()); CommandInjector.injectCommand(new CommandGamemode());
} catch (Exception e1) { } catch (Exception e1) {
e1.printStackTrace(); e1.printStackTrace();
} }
new File("plugins/BauSystem/worlds/").mkdirs(); new File("plugins/BauSystem/worlds/").mkdirs();
config = new Config(); config = new Config();
config.initConfig(); config.initConfig();
@ -149,9 +149,11 @@ public class BauSystem extends JavaPlugin implements Listener {
plugin = this; plugin = this;
Bukkit.getScheduler().runTaskTimer(BauSystem.getInstance(), new LagDetectorRunnable(), 20, 20); Bukkit.getScheduler().runTaskTimer(BauSystem.getInstance(), new LagDetectorRunnable(), 20, 20);
} }
public static BauSystem getPlugin() { public static BauSystem getPlugin() {
return plugin; return plugin;
} }
public static WorldEditPlugin getWorldEdit() { public static WorldEditPlugin getWorldEdit() {
return (WorldEditPlugin) Bukkit.getPluginManager().getPlugin("WorldEdit"); return (WorldEditPlugin) Bukkit.getPluginManager().getPlugin("WorldEdit");
} }
@ -159,6 +161,7 @@ public class BauSystem extends JavaPlugin implements Listener {
public static WorldGuardPlugin getWorldGuard() { public static WorldGuardPlugin getWorldGuard() {
return (WorldGuardPlugin) Bukkit.getPluginManager().getPlugin("WorldGuard"); return (WorldGuardPlugin) Bukkit.getPluginManager().getPlugin("WorldGuard");
} }
@Override @Override
public void onDisable() { public void onDisable() {
} }
@ -167,7 +170,7 @@ public class BauSystem extends JavaPlugin implements Listener {
return JavaPlugin.getPlugin(BauSystem.class); return JavaPlugin.getPlugin(BauSystem.class);
} }
@Completer(name = "bau") @Completer(name = "bau", aliases = "gs")
public List<String> completeCommands(CommandArgs args) { public List<String> completeCommands(CommandArgs args) {
List<String> ret = new ArrayList<>(); List<String> ret = new ArrayList<>();
StringBuilder label = new StringBuilder(args.getCommand().getLabel()); StringBuilder label = new StringBuilder(args.getCommand().getLabel());
@ -176,31 +179,6 @@ public class BauSystem extends JavaPlugin implements Listener {
} }
for (String currentLabel : this.cmdFramework.getCommandLabels()) { for (String currentLabel : this.cmdFramework.getCommandLabels()) {
String current = currentLabel.replace('.', ' '); String current = currentLabel.replace('.', ' ');
if (currentLabel.contains("BauFactory"))
continue;
if (current.contains(label.toString())) {
current = current.substring(label.toString().lastIndexOf(' ')).trim();
current = current.substring(0, current.indexOf(' ') != -1 ? current.indexOf(' ') : current.length())
.trim();
if (!ret.contains(current)) {
ret.add(current);
}
}
}
return ret;
}
@Completer(name = "gs")
public List<String> completeCommands1(CommandArgs args) {
List<String> ret = new ArrayList<>();
StringBuilder label = new StringBuilder(args.getCommand().getLabel());
for (String arg : args.getArgs()) {
label.append(" ").append(arg);
}
for (String currentLabel : this.cmdFramework.getCommandLabels()) {
String current = currentLabel.replace('.', ' ');
if (currentLabel.contains("BauFactory"))
continue;
if (current.contains(label.toString())) { if (current.contains(label.toString())) {
current = current.substring(label.toString().lastIndexOf(' ')).trim(); current = current.substring(label.toString().lastIndexOf(' ')).trim();
current = current.substring(0, current.indexOf(' ') != -1 ? current.indexOf(' ') : current.length()) current = current.substring(0, current.indexOf(' ') != -1 ? current.indexOf(' ') : current.length())
@ -226,7 +204,7 @@ public class BauSystem extends JavaPlugin implements Listener {
Field f1 = serverClass.getDeclaredField("commandMap"); Field f1 = serverClass.getDeclaredField("commandMap");
f1.setAccessible(true); f1.setAccessible(true);
SimpleCommandMap commandMap = (SimpleCommandMap) f1.get(Bukkit.getServer()); SimpleCommandMap commandMap = (SimpleCommandMap) f1.get(Bukkit.getServer());
commandMap.register("baufactory", cmd); commandMap.register("BauSystem", cmd);
} }
} }
@ -238,8 +216,10 @@ public class BauSystem extends JavaPlugin implements Listener {
@EventHandler @EventHandler
public void onRespawn(PlayerRespawnEvent e) { public void onRespawn(PlayerRespawnEvent e) {
Player p = e.getPlayer(); Player p = e.getPlayer();
if (Bukkit.getWorld(p.getUniqueId()) != null) { if (Bauwelt.getBauwelt(p.getUniqueId()) == null) {
e.setRespawnLocation(Bukkit.getWorld(p.getUniqueId()).getSpawnLocation()); e.setRespawnLocation(config.spawn);
}else{
e.setRespawnLocation(Bukkit.getWorld(p.getUniqueId().toString()).getSpawnLocation());
} }
} }
@ -270,7 +250,7 @@ public class BauSystem extends JavaPlugin implements Listener {
} }
if (e.getCause() == TeleportCause.SPECTATE) { if (e.getCause() == TeleportCause.SPECTATE) {
e.setCancelled(true); e.setCancelled(true);
e.getPlayer().sendMessage(BauSystem.PREFIX + "§cDu darfst die GM3 Teleportfunktion nicht benutzen!"); e.getPlayer().sendMessage(BauSystem.PREFIX + "§cDu darfst die Zuschauer-Teleportfunktion nicht benutzen!");
} }
} }

Datei anzeigen

@ -12,6 +12,7 @@ import de.pro_crafting.commandframework.Command;
import de.pro_crafting.commandframework.CommandArgs; import de.pro_crafting.commandframework.CommandArgs;
import de.warking.bausystem.BauSystem; import de.warking.bausystem.BauSystem;
import de.warking.bausystem.world.BauWorld; import de.warking.bausystem.world.BauWorld;
import de.warking.bausystem.world.Permission;
import de.warking.hunjy.MySQL.Bauwelt; import de.warking.hunjy.MySQL.Bauwelt;
import de.warking.hunjy.MySQL.BauweltMember; import de.warking.hunjy.MySQL.BauweltMember;
import de.warking.hunjy.MySQL.WarkingUser; import de.warking.hunjy.MySQL.WarkingUser;
@ -30,54 +31,45 @@ import java.util.UUID;
public class CommandBau { public class CommandBau {
@Command(name = "bau", aliases = "gs", inGameOnly = true) @Command(name = "bau", aliases = {"bau.help", "gs", "gs.help"}, inGameOnly = true)
public void onBau(CommandArgs args) {
onHelp(args);
}
@Command(name = "bau.help", aliases = "gs.help", inGameOnly = true)
public void onHelp(CommandArgs args) { public void onHelp(CommandArgs args) {
Player p = args.getPlayer(); Player p = args.getPlayer();
p.sendMessage(BauSystem.PREFIX + "Hilfeseite 1 von 2:"); p.sendMessage(BauSystem.PREFIX + "Hilfeseite 1 von 2:");
p.sendMessage("§6/bau help §7- Zeigt dir diese Hilfe"); p.sendMessage("§6/bau help §7- Zeigt dir diese Hilfe");
p.sendMessage("§6/bau help 2 §7- Zeigt dir Seite 2 der Hilfe"); p.sendMessage("§6/bau help 2 §7- Zeigt dir die Hilfe zum Member-System");
p.sendMessage("§6/bau home §7- Teleportiert dich auf deine Welt"); p.sendMessage("§6/home §7- Teleportiert dich auf deine Welt");
p.sendMessage("§6/bau addmember §7- Fügt zu deiner Welt einen Spieler hinzu"); p.sendMessage("§6/tnt §7- (de)aktiviert Explosionsschaden");
p.sendMessage("§6/bau delmember §7- Entfernt einen Spieler von deiner Welt"); p.sendMessage("§6/fire §7- (de)aktiviert Feuerschaden");
p.sendMessage("§6/bau tntdmg §7- Erlaubt / verbietet Explosionen"); p.sendMessage("§6/testblock §7- Erneuert den nächsten Testblock");
p.sendMessage("§6/bau firedmg §7- Erlaubt / verbietet Feuerschaden"); p.sendMessage("§6/reset §7- Setzt die derzeitige Region zurück");
p.sendMessage("§6/bau testblock §7- Erneuert den nächsten Testblock");
p.sendMessage("§6/bau reset §7- Setzt die derzeitige Region zurück");
p.sendMessage("§6/bau resetall §7- Setzt deine Welt zurück"); p.sendMessage("§6/bau resetall §7- Setzt deine Welt zurück");
p.sendMessage("§6/bau replace §7- Ersetzt in einer Region Obsidian zu TNT und Grundgestein zu Schleim"); p.sendMessage("§6/bau replace §7- Ersetzt in einer Region Obsidian zu TNT und Grundgestein zu Schleim");
p.sendMessage("§6/bau speed §7- Ändert deine Fluggeschwindigkeit");
p.sendMessage("§6/bau tp §7- Teleportiert dich auf eine Welt"); p.sendMessage("§6/bau tp §7- Teleportiert dich auf eine Welt");
p.sendMessage("§6/bau info §7- Informationen über die aktuelle Welt"); p.sendMessage("§6/bau info §7- Informationen über die aktuelle Welt");
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"); //p.sendMessage("§6/bau gui §7- Öffnet eine GUI");
} }
@Command(name = "bau.help.2", aliases = "gs.help.2", inGameOnly = true) @Command(name = "bau.help.2", aliases = {"gs.help.2", "bau.2", "gs.2"}, inGameOnly = true)
public void onHelp2(CommandArgs args) { public void onHelp2(CommandArgs args) {
Player p = args.getPlayer(); Player p = args.getPlayer();
p.sendMessage(BauSystem.PREFIX + "Hilfeseite 2 von 2:"); p.sendMessage(BauSystem.PREFIX + "Hilfeseite 2 von 2:");
p.sendMessage("§6/bau togglewe §7- Darf ein Spieler WorldEdit verwenden"); p.sendMessage("§6/bau addmember §7- Fügt zu deiner Welt einen Spieler hinzu");
p.sendMessage("§6/bau togglebuild §7- Darf ein Spieler bauen"); p.sendMessage("§6/bau delmember §7- Entfernt einen Spieler von deiner Welt");
p.sendMessage("§6/bau toggletp §7- Darf ein Spieler sich teleportieren"); p.sendMessage("§6/bau togglebuild §7- Berechtigung zum Bauen, Spielmodus wechseln, /tp");
p.sendMessage("§6/bau toggletestblock §7- Darf ein Spieler einen TestBlock erneuern"); p.sendMessage("§6/bau togglewe §7- Berechtigung für: WorldEdit, /bau replace, /bau testblock");
p.sendMessage("§6/bau togglereset §7- Darf ein Spieler eine Region erneuern"); p.sendMessage("§6/bau toggleworld §7- Berechtigung für: /bau reset, /trace, /fire, /tnt");
p.sendMessage("§6/bau togglereplace §7- Darf ein Spieler in einer Region replacen");
p.sendMessage("§6/bau togglechgm §7- Darf ein Spieler seinen Spielmodus ändern");
p.sendMessage("§6/nv §7- Aktiviert/Deaktiviert Nachtsicht");
p.sendMessage("§6/trace §7- Gibt einen Überblick über die Funktionen des TNT-Tracers");
} }
@Command(name = "bau.home", aliases = "gs.home", inGameOnly = true) @Command(name = "bau.home", aliases = {"gs.home", "home"}, inGameOnly = true)
public void onHome(CommandArgs args) { public void onHome(CommandArgs args) {
Player p = args.getPlayer(); Player p = args.getPlayer();
if (Bauwelt.getBauwelt(p.getUniqueId()) == null) { if (Bauwelt.getBauwelt(p.getUniqueId()) == null) {
new Bauwelt(p.getUniqueId(), false, false); new Bauwelt(p.getUniqueId(), false, false);
} }
if (Bukkit.getWorld(p.getUniqueId()) == null){ if (Bukkit.getWorld(p.getUniqueId().toString()) == null){
p.sendMessage(BauSystem.PREFIX + "§aEinen Moment bitte... Deine Welt wird vorbereitet"); p.sendMessage(BauSystem.PREFIX + "§aEinen Moment bitte... Deine Welt wird vorbereitet");
try { try {
BauWorld.loadWorld(p.getUniqueId()); BauWorld.loadWorld(p.getUniqueId());
@ -87,15 +79,44 @@ public class CommandBau {
return; return;
} }
} }
p.teleport(Bukkit.getWorld(p.getUniqueId().toString()).getSpawnLocation()); p.teleport(Bukkit.getWorld(p.getUniqueId().toString()).getSpawnLocation());
Bukkit.getScheduler().scheduleSyncDelayedTask(BauSystem.getInstance(), () -> p.setGameMode(GameMode.CREATIVE),20L); 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 (!BauWorld.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 {
BauWorld.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) @Command(name = "bau.addmember", aliases = "gs.addmember", inGameOnly = true)
public void onAdd(CommandArgs args) { public void onAdd(CommandArgs args) {
Player p = args.getPlayer(); Player p = args.getPlayer();
if (Bauwelt.getBauwelt(p.getUniqueId()).getUUID() == null) { if (!hasWorld(p)){
p.sendMessage(BauSystem.PREFIX + "§cDu hast noch keine Welt");
return; return;
}else if (args.length() == 0) { }else if (args.length() == 0) {
p.sendMessage(BauSystem.PREFIX + "/bau addmember <Spieler>"); p.sendMessage(BauSystem.PREFIX + "/bau addmember <Spieler>");
@ -113,6 +134,7 @@ public class CommandBau {
new BauweltMember(p.getUniqueId(), id, true, false, false, false, false); new BauweltMember(p.getUniqueId(), id, true, false, false, false, false);
p.sendMessage(BauSystem.PREFIX + "§aDer Spieler wurde zu deiner Welt hinzugefügt"); p.sendMessage(BauSystem.PREFIX + "§aDer Spieler wurde zu deiner Welt hinzugefügt");
Player z = Bukkit.getPlayer(id); Player z = Bukkit.getPlayer(id);
if(z != null) if(z != null)
z.sendMessage(BauSystem.PREFIX + "§aDu wurdest zu der Welt von §6" + p.getName() + " §ahinzugefügt"); z.sendMessage(BauSystem.PREFIX + "§aDu wurdest zu der Welt von §6" + p.getName() + " §ahinzugefügt");
@ -121,71 +143,18 @@ public class CommandBau {
@Command(name = "bau.delmember", aliases = "gs.delmember", inGameOnly = true) @Command(name = "bau.delmember", aliases = "gs.delmember", inGameOnly = true)
public void onDel(CommandArgs args) { public void onDel(CommandArgs args) {
Player p = args.getPlayer(); Player p = args.getPlayer();
if (Bauwelt.getBauwelt(p.getUniqueId()).getUUID() == null) { if (args.length() == 0) {
p.sendMessage(BauSystem.PREFIX + "§cDu hast noch keine Welt");
return;
}else if (args.length() == 0) {
p.sendMessage(BauSystem.PREFIX + "/bau delmember <Spieler>"); p.sendMessage(BauSystem.PREFIX + "/bau delmember <Spieler>");
return; return;
} }
UUID id = WarkingUser.get(args.getArgs(0)).getUUID(); UUID id = WarkingUser.get(args.getArgs(0)).getUUID();
BauWorld.removePlayer(p, id); if(!toggleCheck(args, p, id)){
}
@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 id = WarkingUser.get(args.getArgs(0)).getUUID();
if (id == null) {
p.sendMessage(BauSystem.PREFIX + "§cUnbekannter Spieler");
return;
}else if (BauweltMember.getBauMember(id, p.getUniqueId()) == null && !p.hasPermission("bau.team")) {
p.sendMessage(BauSystem.PREFIX + "§cDu bist kein Mitglied dieser Welt");
return; return;
} }
if (Bukkit.getWorld(p.getUniqueId()) == null){ BauweltMember target = BauweltMember.getBauMember(p.getUniqueId(), id);
p.sendMessage(BauSystem.PREFIX + "§aEinen Moment bitte... Deine Welt wird vorbereitet"); BauWorld.removePlayer(p, target);
try {
BauWorld.loadWorld(id);
} catch (IOException e) {
p.sendMessage(BauSystem.PREFIX + "§cBeim Laden der Welt ist ein Fehler aufgetreten");
e.printStackTrace();
return;
}
}
p.teleport(Bukkit.getWorld(id.toString()).getSpawnLocation());
Bukkit.getScheduler().scheduleSyncDelayedTask(BauSystem.getInstance(), () -> p.setGameMode(GameMode.CREATIVE), 20);
}
@Command(name = "bau.speed", aliases = "gs.speed", inGameOnly = true)
public void onSpeed(CommandArgs args){
final Player player = args.getPlayer();
if (args.length() == 0){
player.sendMessage(BauSystem.PREFIX + "/bau speed [Geschwindigkeit]");
return;
}
float speed;
try{
speed = Float.valueOf(args.getArgs(0));
}catch(NumberFormatException e){
player.sendMessage(BauSystem.PREFIX + "§cBitte gib eine Zahl zwischen 0 und 10 an");
return;
}
if (speed < 0 || speed > 10) {
player.sendMessage(BauSystem.PREFIX + "§cBitte gib eine Zahl zwischen 0 und 10 an");
return;
}
player.setFlySpeed(speed / 10);
player.setWalkSpeed(speed / 10);
player.sendMessage("§aGeschwindigkeit wurde auf §6" + speed + " §agesetzt");
} }
/*@Command(name = "bau.gui", aliases = "gs.gui", inGameOnly = true) /*@Command(name = "bau.gui", aliases = "gs.gui", inGameOnly = true)
@ -195,201 +164,67 @@ public class CommandBau {
return true; return true;
}*/ }*/
@Command(name = "bau.togglewe", aliases = "gs.togglewe", inGameOnly = true)
public void onToggleWE(CommandArgs args) {
Player p = args.getPlayer();
if (Bauwelt.getBauwelt(p.getUniqueId()).getUUID() == null) {
p.sendMessage(BauSystem.PREFIX + "§cDu hast keine Welt");
return;
}else if (args.length() == 0) {
p.sendMessage(BauSystem.PREFIX + "/bau togglewe <Spieler>");
return;
}
UUID id = WarkingUser.get(args.getArgs(0)).getUUID();
if (id == null) {
p.sendMessage(BauSystem.PREFIX + "§cUnbekannter Spieler");
return;
}
BauweltMember target = BauweltMember.getBauMember(p.getUniqueId(), id);
if (target == null) {
p.sendMessage(BauSystem.PREFIX + "§cDer Spieler ist kein Mitglied deiner Welt");
return;
}
BauWorld.toggleWE(p, target);
}
@Command(name = "bau.toggletp", aliases = "gs.toggletp", inGameOnly = true)
public void onToggleTP(CommandArgs args) {
Player p = args.getPlayer();
if (Bauwelt.getBauwelt(p.getUniqueId()).getUUID() == null) {
p.sendMessage(BauSystem.PREFIX + "§cDu hast keine Welt");
return;
}else if (args.length() == 0) {
p.sendMessage(BauSystem.PREFIX + "/bau toggletp <Spieler>");
return;
}
UUID id = WarkingUser.get(args.getArgs(0)).getUUID();
if (id == null) {
p.sendMessage(BauSystem.PREFIX + "§cUnbekannter Spieler");
return;
}
BauweltMember target = BauweltMember.getBauMember(p.getUniqueId(), id);
if (target == null) {
p.sendMessage(BauSystem.PREFIX + "§cDer Spieler ist kein Mitglied deiner Welt");
return;
}
BauWorld.toggleTP(p, target);
}
@Command(name = "bau.togglebuild", aliases = "gs.togglebuild", inGameOnly = true) @Command(name = "bau.togglebuild", aliases = "gs.togglebuild", inGameOnly = true)
public void onToggleBD(CommandArgs args) { public void onToggleBD(CommandArgs args) {
Player p = args.getPlayer(); Player p = args.getPlayer();
if (Bauwelt.getBauwelt(p.getUniqueId()).getUUID() == null) { if (args.length() == 0) {
p.sendMessage(BauSystem.PREFIX + "§cDu hast keine Welt");
return;
}else if (args.length() == 0) {
p.sendMessage(BauSystem.PREFIX + "/bau togglebuild <Spieler>"); p.sendMessage(BauSystem.PREFIX + "/bau togglebuild <Spieler>");
return; return;
} }
UUID id = WarkingUser.get(args.getArgs(0)).getUUID(); UUID id = WarkingUser.get(args.getArgs(0)).getUUID();
if (id == null) { if(!toggleCheck(args, p, id)){
p.sendMessage(BauSystem.PREFIX + "§cUnbekannter Spieler");
return; return;
} }
BauweltMember target = BauweltMember.getBauMember(p.getUniqueId(), id); BauweltMember target = BauweltMember.getBauMember(p.getUniqueId(), id);
if (target == null) {
p.sendMessage(BauSystem.PREFIX + "§cDer Spieler ist kein Mitglied deiner Welt");
return;
}
BauWorld.toggleBuild(p, target); BauWorld.toggleBuild(p, target);
} }
@Command(name = "bau.togglechgm", aliases = "gs.togglechgm", inGameOnly = true) @Command(name = "bau.togglewe", aliases = "gs.togglewe", inGameOnly = true)
public void onToggleCHG(CommandArgs args) { public void onToggleWE(CommandArgs args) {
Player p = args.getPlayer(); Player p = args.getPlayer();
if (Bauwelt.getBauwelt(p.getUniqueId()).getUUID() == null) { if (args.length() == 0) {
p.sendMessage(BauSystem.PREFIX + "§cDu hast keine Welt"); p.sendMessage(BauSystem.PREFIX + "/bau togglewe <Spieler>");
return;
}else if (args.length() == 0) {
p.sendMessage(BauSystem.PREFIX + "/bau togglechgm <Spieler>");
return; return;
} }
UUID id = WarkingUser.get(args.getArgs(0)).getUUID(); UUID id = WarkingUser.get(args.getArgs(0)).getUUID();
if (id == null) { if(!toggleCheck(args, p, id)){
p.sendMessage(BauSystem.PREFIX + "§cUnbekannter Spieler");
return; return;
} }
BauweltMember target = BauweltMember.getBauMember(p.getUniqueId(), id); BauweltMember target = BauweltMember.getBauMember(p.getUniqueId(), id);
if (target == null) { BauWorld.toggleWE(p, target);
p.sendMessage(BauSystem.PREFIX + "§cDer Spieler ist kein Mitglied deiner Welt");
return;
}
BauWorld.toggleGM(p, target);
} }
@Command(name = "bau.toggletestblock", aliases = "gs.toggletestblock", inGameOnly = true) @Command(name = "bau.toggleworld", aliases = "gs.toggleworld", inGameOnly = true)
public void onToggleTestblock(CommandArgs args) { public void onToggleTestblock(CommandArgs args) {
Player p = args.getPlayer(); Player p = args.getPlayer();
if (Bauwelt.getBauwelt(p.getUniqueId()).getUUID() == null) { if (args.length() == 0) {
p.sendMessage(BauSystem.PREFIX + "§cDu hast keine Welt"); p.sendMessage(BauSystem.PREFIX + "/bau toggleworld <Spieler>");
return;
}else if (args.length() == 0) {
p.sendMessage(BauSystem.PREFIX + "/bau toggletestblock <Spieler>");
return; return;
} }
UUID id = WarkingUser.get(args.getArgs(0)).getUUID(); UUID id = WarkingUser.get(args.getArgs(0)).getUUID();
if (id == null) { if(!toggleCheck(args, p, id)){
p.sendMessage(BauSystem.PREFIX + "§cUnbekannter Spieler");
return; return;
} }
BauweltMember target = BauweltMember.getBauMember(p.getUniqueId(), id); BauweltMember target = BauweltMember.getBauMember(p.getUniqueId(), id);
if (target == null) {
p.sendMessage(BauSystem.PREFIX + "§cDer Spieler ist kein Mitglied deiner Welt");
return;
}
BauWorld.toggleTestblock(p, target); BauWorld.toggleTestblock(p, target);
} }
@Command(name = "bau.togglereset", aliases = "gs.togglereset", inGameOnly = true) @Command(name = "bau.testblock", aliases = {"gs.testblock", "testblock"}, inGameOnly = true)
public void onTogglereset(CommandArgs args) {
Player p = args.getPlayer();
if (Bauwelt.getBauwelt(p.getUniqueId()).getUUID() == null) {
p.sendMessage(BauSystem.PREFIX + "§cDu hast keine Welt");
return;
}else if (args.length() == 0) {
p.sendMessage(BauSystem.PREFIX + "/bau togglereset <Spieler>");
return;
}
UUID id = WarkingUser.get(args.getArgs(0)).getUUID();
if (id == null) {
p.sendMessage(BauSystem.PREFIX + "§cUnbekannter Spieler");
return;
}
BauweltMember target = BauweltMember.getBauMember(p.getUniqueId(), id);
if (target == null) {
p.sendMessage(BauSystem.PREFIX + "§cDer Spieler ist kein Mitglied deiner Welt");
return;
}
BauWorld.toggleTestblock(p, target);
}
@Command(name = "bau.togglereplace", aliases = "gs.togglereplace", inGameOnly = true)
public void onToggleReplace(CommandArgs args) {
Player p = args.getPlayer();
if (Bauwelt.getBauwelt(p.getUniqueId()).getUUID() == null) {
p.sendMessage(BauSystem.PREFIX + "§cDu hast keine Welt");
return;
}else if (args.length() == 0) {
p.sendMessage(BauSystem.PREFIX + "/bau togglereplace <Spieler>");
return;
}
UUID id = WarkingUser.get(args.getArgs(0)).getUUID();
if (id == null) {
p.sendMessage(BauSystem.PREFIX + "§cUnbekannter Spieler");
return;
}
BauweltMember target = BauweltMember.getBauMember(p.getUniqueId(), id);
if (target == null) {
p.sendMessage(BauSystem.PREFIX + "§cDer Spieler ist kein Mitglied deiner Welt");
return;
}
BauWorld.toggleTestblock(p, target);
}
@Command(name = "bau.testblock", aliases = "gs.testblock", inGameOnly = true)
public void onTestblock(CommandArgs args) { public void onTestblock(CommandArgs args) {
final Player p = args.getPlayer(); final Player p = args.getPlayer();
UUID worldOwner;
try{ UUID worldOwner = BauWorld.getWorldUUID(p.getWorld());
worldOwner = UUID.fromString(p.getWorld().getName()); if (!BauWorld.hasPermission(worldOwner, p, Permission.worldedit)){
}catch(IllegalArgumentException E){ p.sendMessage(BauSystem.PREFIX + "§cDu darfst hier nicht den Testblock erneuern");
p.sendMessage(BauSystem.PREFIX + "§cDu bist auf keiner Bauwelt");
return; return;
} }
if(!p.getUniqueId().equals(worldOwner)){
BauweltMember member = BauweltMember.getBauMember(worldOwner, p.getUniqueId());
if(member == null || !member.isTestblock()){
p.sendMessage(BauSystem.PREFIX + "§cDu darfst den Testblock nicht erneuern");
return;
}
}
Location playerLocation = p.getLocation(); Location playerLocation = p.getLocation();
World playerWorld = p.getWorld(); World playerWorld = p.getWorld();
@ -408,25 +243,16 @@ public class CommandBau {
} }
} }
@Command(name = "bau.reset", aliases = "gs.reset", inGameOnly = true) @Command(name = "bau.reset", aliases = {"gs.reset", "reset"}, inGameOnly = true)
public void onReset(CommandArgs args) { public void onReset(CommandArgs args) {
final Player p = args.getPlayer(); final Player p = args.getPlayer();
UUID worldOwner;
try{ UUID worldOwner = BauWorld.getWorldUUID(p.getWorld());
worldOwner = UUID.fromString(p.getWorld().getName()); if (!BauWorld.hasPermission(worldOwner, p, Permission.world)){
}catch(IllegalArgumentException E){ p.sendMessage(BauSystem.PREFIX + "§cDu darfst hier keine Regionen erneuern");
p.sendMessage(BauSystem.PREFIX + "§cDu bist auf keiner Bauwelt");
return; return;
} }
if(!p.getUniqueId().equals(worldOwner)){
BauweltMember member = BauweltMember.getBauMember(worldOwner, p.getUniqueId());
if(member == null || !member.isTestblock()){
p.sendMessage(BauSystem.PREFIX + "§cDu darfst keine Regionen erneuern");
return;
}
}
Location playerLocation = p.getLocation(); Location playerLocation = p.getLocation();
World playerWorld = p.getWorld(); World playerWorld = p.getWorld();
@ -459,22 +285,12 @@ public class CommandBau {
@Command(name = "bau.replace", aliases = "gs.replace", inGameOnly = true) @Command(name = "bau.replace", aliases = "gs.replace", inGameOnly = true)
public void onReplace(CommandArgs args) { public void onReplace(CommandArgs args) {
final Player p = args.getPlayer(); final Player p = args.getPlayer();
UUID worldOwner; UUID worldOwner = BauWorld.getWorldUUID(p.getWorld());
if (!BauWorld.hasPermission(worldOwner, p, Permission.worldedit)){
try{ p.sendMessage(BauSystem.PREFIX + "§cDu darfst hier nicht Obsidian und Grundgestein ersetzen");
worldOwner = UUID.fromString(p.getWorld().getName());
}catch(IllegalArgumentException E){
p.sendMessage(BauSystem.PREFIX + "§cDu bist auf keiner Bauwelt");
return; return;
} }
if(!p.getUniqueId().equals(worldOwner)){
BauweltMember member = BauweltMember.getBauMember(worldOwner, p.getUniqueId());
if(member == null || !member.isTestblock()){
p.sendMessage(BauSystem.PREFIX + "§cDu darfst nicht Obsidian & Grundgestein ersetzen");
return;
}
}
World world = p.getWorld(); World world = p.getWorld();
for(ProtectedRegion rg : BauSystem.getWorldGuard().getRegionManager(world).getApplicableRegions(p.getLocation())) { for(ProtectedRegion rg : BauSystem.getWorldGuard().getRegionManager(world).getApplicableRegions(p.getLocation())) {
String rgID = rg.getId(); String rgID = rg.getId();
@ -495,7 +311,7 @@ public class CommandBau {
int slime = editSession.replaceBlocks(selection.getRegionSelector().getRegion(), targetBedrock, new BaseBlock(165)); int slime = editSession.replaceBlocks(selection.getRegionSelector().getRegion(), targetBedrock, new BaseBlock(165));
editSession.flushQueue(); editSession.flushQueue();
p.sendMessage(BauSystem.PREFIX + "§aIn Region " + rgID + " wurden " + tnt + " Blöcke Obsidian zu TNT und " + slime + " Blöcke Grundgestein zu Schleim ersetzt"); p.sendMessage(BauSystem.PREFIX + "§aEs wurden " + (tnt + slime) + " Obsidian und Grundgestein ersetzt");
} catch(Exception ex) { ex.printStackTrace(); } } catch(Exception ex) { ex.printStackTrace(); }
} }
@ -504,53 +320,109 @@ public class CommandBau {
@Command(name = "bau.info", aliases = "gs.info", inGameOnly = true) @Command(name = "bau.info", aliases = "gs.info", inGameOnly = true)
public void onInfo(CommandArgs args) { public void onInfo(CommandArgs args) {
final Player p = args.getPlayer(); final Player p = args.getPlayer();
UUID worldOwner; UUID worldOwner = BauWorld.getWorldUUID(p.getWorld());
try{ if(worldOwner == null){
worldOwner = UUID.fromString(p.getWorld().getName());
}catch(IllegalArgumentException E){
p.sendMessage(BauSystem.PREFIX + "§cDu bist auf keiner Bauwelt"); p.sendMessage(BauSystem.PREFIX + "§cDu bist auf keiner Bauwelt");
return; return;
} }
Bukkit.getScheduler().runTaskAsynchronously(BauSystem.getInstance(), () -> { Bukkit.getScheduler().runTaskAsynchronously(BauSystem.getInstance(), () -> {
Bauwelt welt = Bauwelt.getBauwelt(worldOwner); Bauwelt welt = Bauwelt.getBauwelt(worldOwner);
p.sendMessage("§6Besitzer§8: §6" + WarkingUser.get(welt.getUserID()).getUserName());
p.sendMessage(BauSystem.PREFIX + "ID§8: §6" + welt.getUserID());
p.sendMessage(BauSystem.PREFIX + "Besitzer§8: §6" + WarkingUser.get(welt.getUserID()).getUserName());
if(welt.isTNTDmg()) if(welt.isTNTDmg())
p.sendMessage(BauSystem.PREFIX + "TNT-Schaden§8: §aerlaubt"); p.sendMessage("§6TNT-Schaden§8: §aerlaubt");
else else
p.sendMessage(BauSystem.PREFIX + "TNT-Schaden§8: §cverboten"); p.sendMessage("§6TNT-Schaden§8: §cverboten");
if(welt.isFireDmg()) if(welt.isFireDmg())
p.sendMessage(BauSystem.PREFIX + "Feuer-Schaden§8: §aerlaubt"); p.sendMessage("§6Feuer-Schaden§8: §aerlaubt");
else else
p.sendMessage(BauSystem.PREFIX + "Feuer-Schaden§8: §cverboten"); p.sendMessage("§6Feuer-Schaden§8: §cverboten");
List<BauweltMember> memberList = BauweltMember.getMembers(worldOwner); List<BauweltMember> memberList = BauweltMember.getMembers(worldOwner);
StringBuilder members = new StringBuilder(); if(!memberList.isEmpty()){
members.append(BauSystem.PREFIX); StringBuilder members = new StringBuilder();
members.append("Mitglieder§8: "); members.append("Mitglieder§8: ");
for(BauweltMember member : memberList){
members.append("§6"); for(BauweltMember member : memberList){
members.append(WarkingUser.get(member.getMemberID()).getUserName()); members.append("§6");
members.append("§8, "); members.append(WarkingUser.get(member.getMemberID()).getUserName());
members.append("§8, ");
}
p.sendMessage(members.toString());
} }
p.sendMessage(members.toString());
}); });
} }
@Command(name = "bau.tntdmg", aliases = "gs.tntdmg", inGameOnly = true) @Command(name = "bau.tntdmg", aliases = {"gs.tntdmg", "bau.tnt", "gs.tnt", "tnt"}, inGameOnly = true)
public void onTntdmg(CommandArgs args){ public void onTntdmg(CommandArgs args){
BauWorld.switchTNT(args.getPlayer()); BauWorld.switchTNT(args.getPlayer());
} }
@Command(name = "bau.firedmg", aliases = "gs.firedmg", inGameOnly = true) @Command(name = "bau.firedmg", aliases = {"gs.firedmg", "bau.fire", "gs.fire", "fire"}, inGameOnly = true)
public void onFiredmg(CommandArgs args) { public void onFiredmg(CommandArgs args) {
BauWorld.switchFire(args.getPlayer()); BauWorld.switchFire(args.getPlayer());
} }
@Command(name = "bau.speed", aliases = {"gs.speed", "speed"}, inGameOnly = true)
public void onSpeed(CommandArgs args){
final Player player = args.getPlayer();
if (args.length() == 0){
player.sendMessage(BauSystem.PREFIX + "/speed [Geschwindigkeit]");
return;
}
float speed;
try{
speed = Float.valueOf(args.getArgs(0));
}catch(NumberFormatException e){
player.sendMessage(BauSystem.PREFIX + "§cBitte gib eine Zahl zwischen 0 und 10 an");
return;
}
if (speed < 0 || speed > 10) {
player.sendMessage(BauSystem.PREFIX + "§cBitte gib eine Zahl zwischen 0 und 10 an");
return;
}
player.sendMessage("§aGeschwindigkeit wurde auf §6" + speed + " §agesetzt");
if(speed == 1.0f){
speed = 1.25f;
}
player.setFlySpeed(speed / 10);
player.setWalkSpeed(speed / 10);
}
@Command(name = "bau.time", inGameOnly = true)
public void onTime(CommandArgs args){
Player p = args.getPlayer();
if(args.length() == 0){
p.sendMessage(BauSystem.PREFIX + "/time <Zeit 0=Morgen, 6000=Mittag, 18000=Mitternacht>");
return;
}
UUID worldOwner = BauWorld.getWorldUUID(p.getWorld());
if (!BauWorld.hasPermission(worldOwner, p, Permission.world)){
p.sendMessage(BauSystem.PREFIX + "§cDu darfst hier nicht die Zeit ändern");
return;
}
int time;
try{
time = Integer.valueOf(args.getArgs(0));
}catch(NumberFormatException e){
p.sendMessage(BauSystem.PREFIX + "§cBitte gib eine Zahl zwischen 0 und 24000 an");
return;
}
if (time < 0 || time > 24000) {
p.sendMessage(BauSystem.PREFIX + "§cBitte gib eine Zahl zwischen 0 und 24000 an");
return;
}
p.getWorld().setTime(time);
}
private void pasteSchematic(Player player, File schematic, Vector position) { private void pasteSchematic(Player player, File schematic, Vector position) {
int count = 0; int count = 0;
@ -588,4 +460,31 @@ public class CommandBau {
dir.delete(); 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(CommandArgs args, Player p, UUID id){
if (!hasWorld(p)) {
//p.sendMessage(BauSystem.PREFIX + "§cDu hast noch keine Bauwelt");
return false;
}
if (id == null) {
p.sendMessage(BauSystem.PREFIX + "§cUnbekannter Spieler");
return false;
}
BauweltMember target = BauweltMember.getBauMember(p.getUniqueId(), id);
if (target == null) {
p.sendMessage(BauSystem.PREFIX + "§cDer Spieler ist kein Mitglied deiner Welt");
return false;
}
return true;
}
} }

Datei anzeigen

@ -66,7 +66,7 @@ public class CommandGamemode extends BukkitCommand {
} }
return true; return true;
}else if(args.length > 1){ }else if(args.length > 1){
p.sendMessage(BauSystem.PREFIX + "§cDu darfst nicht den Spielmodus anderer Spieler ändern."); p.sendMessage(BauSystem.PREFIX + "§cDu darfst den Spielmodus anderer Spieler nicht ändern");
return false; return false;
}else{ }else{
UUID worldOwner; UUID worldOwner;
@ -74,14 +74,14 @@ public class CommandGamemode extends BukkitCommand {
try{ try{
worldOwner = UUID.fromString(p.getWorld().getName()); worldOwner = UUID.fromString(p.getWorld().getName());
}catch(IllegalArgumentException E){ }catch(IllegalArgumentException E){
p.sendMessage(BauSystem.PREFIX + "§cDu befindest dich auf keiner Bauwelt!"); p.sendMessage(BauSystem.PREFIX + "§cDu befindest dich auf keiner Bauwelt");
return false; return false;
} }
if(!p.getUniqueId().equals(worldOwner)){ if(!p.getUniqueId().equals(worldOwner)){
BauweltMember member = BauweltMember.getBauMember(worldOwner, p.getUniqueId()); BauweltMember member = BauweltMember.getBauMember(worldOwner, p.getUniqueId());
if(member == null || !member.isChangeGM()){ if(member == null || !member.isBuild()){
p.sendMessage(BauSystem.PREFIX + "§cDu darfst hier deinen Spielmodus nicht ändern."); p.sendMessage(BauSystem.PREFIX + "§cDu darfst hier deinen Spielmodus nicht ändern");
return false; return false;
} }
} }
@ -90,7 +90,7 @@ public class CommandGamemode extends BukkitCommand {
GameMode mode = createMode(args[0]); GameMode mode = createMode(args[0]);
if(mode == null){ if(mode == null){
p.sendMessage(BauSystem.PREFIX + "§cUnbekannter Spielmodus."); p.sendMessage(BauSystem.PREFIX + "§cUnbekannter Spielmodus");
return false; return false;
} }

Datei anzeigen

@ -74,7 +74,7 @@ public class CommandTeleport extends BukkitCommand {
if(!worldOwner.equals(p.getUniqueId())){ if(!worldOwner.equals(p.getUniqueId())){
BauweltMember member = BauweltMember.getBauMember(worldOwner, p.getUniqueId()); BauweltMember member = BauweltMember.getBauMember(worldOwner, p.getUniqueId());
if(member == null || !member.isTeleport()){ if(member == null || !member.isBuild()){
p.sendMessage(BauSystem.PREFIX + "§cDu darfst dich auf dieser Welt nicht teleportieren!"); p.sendMessage(BauSystem.PREFIX + "§cDu darfst dich auf dieser Welt nicht teleportieren!");
return false; return false;
} }

Datei anzeigen

@ -3,8 +3,9 @@ package de.warking.bausystem.commands;
import de.pro_crafting.commandframework.Command; import de.pro_crafting.commandframework.Command;
import de.pro_crafting.commandframework.CommandArgs; import de.pro_crafting.commandframework.CommandArgs;
import de.warking.bausystem.BauSystem; import de.warking.bausystem.BauSystem;
import de.warking.bausystem.world.BauWorld;
import de.warking.bausystem.world.Permission;
import de.warking.bausystem.world.TNTTracer; import de.warking.bausystem.world.TNTTracer;
import de.warking.hunjy.MySQL.BauweltMember;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import java.util.UUID; import java.util.UUID;
@ -23,73 +24,70 @@ public class CommandTrace {
@Command(name = "trace.start", inGameOnly = true) @Command(name = "trace.start", inGameOnly = true)
public void onStart(CommandArgs args){ public void onStart(CommandArgs args){
Player p = args.getPlayer(); Player p = args.getPlayer();
if(checkPerm(p)){ UUID id = BauWorld.getWorldUUID(p.getWorld());
TNTTracer.newTracer(p.getWorld()); if(!BauWorld.hasPermission(id, p, Permission.world)){
p.sendMessage(BauSystem.PREFIX + "§aAufnahme gestartet"); p.sendMessage(BauSystem.PREFIX + "§cDu darfst hier nicht den TNT-Tracer nutzen");
return;
} }
TNTTracer.newTracer(p.getWorld());
p.sendMessage(BauSystem.PREFIX + "§aAufnahme gestartet");
} }
@Command(name = "trace.stop", inGameOnly = true) @Command(name = "trace.stop", inGameOnly = true)
public void onStop(CommandArgs args){ public void onStop(CommandArgs args){
Player p = args.getPlayer(); Player p = args.getPlayer();
if(checkPerm(p)){ UUID id = BauWorld.getWorldUUID(p.getWorld());
TNTTracer t = TNTTracer.get(p.getWorld()); if(!BauWorld.hasPermission(id, p, Permission.world)){
if(t == null){ p.sendMessage(BauSystem.PREFIX + "§cDu darfst hier nicht den TNT-Tracer nutzen");
p.sendMessage(BauSystem.PREFIX + "§cKein laufender TNT-Tracer"); return;
return;
}
t.end();
p.sendMessage(BauSystem.PREFIX + "§aAufnahme abgebrochen");
} }
TNTTracer t = TNTTracer.get(p.getWorld());
if(t == null){
p.sendMessage(BauSystem.PREFIX + "§cKein laufender TNT-Tracer");
return;
}
t.end();
p.sendMessage(BauSystem.PREFIX + "§aAufnahme abgebrochen");
} }
@Command(name = "trace.show", inGameOnly = true) @Command(name = "trace.show", inGameOnly = true)
public void onShow(CommandArgs args){ public void onShow(CommandArgs args){
Player p = args.getPlayer(); Player p = args.getPlayer();
if(checkPerm(p)){ UUID id = BauWorld.getWorldUUID(p.getWorld());
TNTTracer t = TNTTracer.get(p.getWorld()); if(!BauWorld.hasPermission(id, p, Permission.world)){
if(t == null){ p.sendMessage(BauSystem.PREFIX + "§cDu darfst hier nicht den TNT-Tracer nutzen");
p.sendMessage(BauSystem.PREFIX + "§cKein laufender TNT-Tracer"); return;
return;
}
t.show();
p.sendMessage(BauSystem.PREFIX + "§aTNT-Positionen angezeigt");
} }
TNTTracer t = TNTTracer.get(p.getWorld());
if(t == null){
p.sendMessage(BauSystem.PREFIX + "§cKein laufender TNT-Tracer");
return;
}
t.show();
p.sendMessage(BauSystem.PREFIX + "§aTNT-Positionen angezeigt");
} }
@Command(name = "trace.hide", inGameOnly = true) @Command(name = "trace.hide", inGameOnly = true)
public void onHide(CommandArgs args){ public void onHide(CommandArgs args){
Player p = args.getPlayer(); Player p = args.getPlayer();
if(checkPerm(p)){ UUID id = BauWorld.getWorldUUID(p.getWorld());
TNTTracer t = TNTTracer.get(p.getWorld()); if(!BauWorld.hasPermission(id, p, Permission.world)){
if(t == null){ p.sendMessage(BauSystem.PREFIX + "§cDu darfst hier nicht den TNT-Tracer nutzen");
p.sendMessage(BauSystem.PREFIX + "§cKein laufender TNT-Tracer"); return;
return;
}
t.hide();
p.sendMessage(BauSystem.PREFIX + "§aTNT-Positionen versteckt");
}
}
public boolean checkPerm(Player p){
UUID id;
try{
id = UUID.fromString(p.getWorld().getName());
}catch(IllegalArgumentException E){
p.sendMessage(BauSystem.PREFIX + "§cDu bist auf keiner Bauwelt");
return false;
} }
if(p.getUniqueId().equals(id)){ TNTTracer t = TNTTracer.get(p.getWorld());
return true; if(t == null){
}else{ p.sendMessage(BauSystem.PREFIX + "§cKein laufender TNT-Tracer");
BauweltMember member = BauweltMember.getBauMember(id, p.getUniqueId()); return;
if(member == null || member.isTestblock()) {
p.sendMessage(BauSystem.PREFIX + "§cDu darfst hier nicht den TNT-Tracer nutzen");
return false;
}else{
return true;
}
} }
t.hide();
p.sendMessage(BauSystem.PREFIX + "§aTNT-Positionen versteckt");
} }
} }

Datei anzeigen

@ -45,6 +45,7 @@ public class BauWorld {
if(!Bukkit.unloadWorld(world, true)) if(!Bukkit.unloadWorld(world, true))
System.out.println("Unloading world failed!"); System.out.println("Unloading world failed!");
System.gc();
} }
} }
@ -58,30 +59,67 @@ public class BauWorld {
return Bukkit.getWorld(owner.toString()); return Bukkit.getWorld(owner.toString());
} }
public static boolean hasPermission(UUID owner, Player member, Permission perm){
if(owner == null)
return false;
if(member.hasPermission("bau.team") || member.getUniqueId().equals(owner))
return true;
BauweltMember member1 = BauweltMember.getBauMember(owner, member.getUniqueId());
if(member1 == null)
return false;
switch(perm){
case build:
return member1.isBuild();
case worldedit:
return member1.isWorldEdit();
case world:
return member1.isTestblock();
case member:
return true;
case owner:
return false;
}
return false;
}
public static UUID getWorldUUID(World w){
try{
return UUID.fromString(w.getName());
}catch(IllegalArgumentException E){
return null;
}
}
public static void switchTNT(Player p){ public static void switchTNT(Player p){
Bauwelt welt = Bauwelt.getBauwelt(p.getUniqueId()); UUID worldOwner = getWorldUUID(p.getWorld());
if (welt.getUUID() == null) { if (!hasPermission(worldOwner, p, Permission.world)){
p.sendMessage(BauSystem.PREFIX + "§cDu hast noch keine Welt"); p.sendMessage(BauSystem.PREFIX + "§cDu darfst hier nicht TNT-Schaden (de)aktivieren");
return; return;
} }
Bauwelt welt = Bauwelt.getBauwelt(worldOwner);
welt.setTNTDmg(!welt.isTNTDmg()); welt.setTNTDmg(!welt.isTNTDmg());
if (welt.isTNTDmg()) if (welt.isTNTDmg())
p.sendMessage(BauSystem.PREFIX + "§aTNT-Schaden erlaubt"); broadcast(worldOwner, BauSystem.PREFIX + "§aTNT-Schaden erlaubt");
else else
p.sendMessage(BauSystem.PREFIX + "§cTNT-Schaden verboten"); broadcast(worldOwner, BauSystem.PREFIX + "§cTNT-Schaden verboten");
} }
public static void switchFire(Player p){ public static void switchFire(Player p){
Bauwelt welt = Bauwelt.getBauwelt(p.getUniqueId()); UUID worldOwner = getWorldUUID(p.getWorld());
if (welt.getUUID() == null) { if (!hasPermission(worldOwner, p, Permission.world)){
p.sendMessage(BauSystem.PREFIX + "§cDu hast noch keine Welt"); p.sendMessage(BauSystem.PREFIX + "§cDu darfst hier nicht Feuerschaden (de)aktivieren");
return; return;
} }
Bauwelt welt = Bauwelt.getBauwelt(worldOwner);
welt.setFireDmg(!welt.isFireDmg()); welt.setFireDmg(!welt.isFireDmg());
if (welt.isFireDmg()) if (welt.isFireDmg())
p.sendMessage(BauSystem.PREFIX + "§aFeuer-Schaden erlaubt"); broadcast(worldOwner, BauSystem.PREFIX + "§aFeuer-Schaden erlaubt");
else else
p.sendMessage(BauSystem.PREFIX + "§cFeuer-Schaden verboten"); broadcast(worldOwner, BauSystem.PREFIX + "§cFeuer-Schaden verboten");
} }
public static void toggleBuild(Player p, BauweltMember target){ public static void toggleBuild(Player p, BauweltMember target){
@ -118,74 +156,33 @@ public class BauWorld {
} }
} }
public static void toggleTP(Player p, BauweltMember target){
target.setTeleport(!target.isTeleport());
Player z = Bukkit.getPlayer(WarkingUser.get(target.getMemberID()).getUUID());
if (z != null) {
if (target.isTeleport()) {
z.sendMessage(BauSystem.PREFIX + "§aDu kannst dich nun auf der Welt von §6" + p.getName() + "§a teleportieren");
}else {
z.sendMessage(BauSystem.PREFIX + "§cDu kannst dich nun nicht mehr auf der Welt von §6" + p.getName() + "§c teleportieren");
}
}
if (target.isTeleport()) {
p.sendMessage(BauSystem.PREFIX + "§aDer Spieler darf sich nun teleportieren");
} else {
p.sendMessage(BauSystem.PREFIX + "§cDer Spieler darf sich nun nicht mehr teleportieren");
}
}
public static void toggleGM(Player p, BauweltMember target){
target.setChangeGM(!target.isChangeGM());
Player z = Bukkit.getPlayer(WarkingUser.get(target.getMemberID()).getUUID());
if (z != null) {
if (target.isChangeGM()) {
z.sendMessage(BauSystem.PREFIX + "§aDu kannst nun auf der Welt von §6" + p.getName() + "§a den Spielmodus wechseln");
}else {
z.sendMessage(BauSystem.PREFIX + "§cDu kannst nun nicht mehr auf der Welt von §6" + p.getName() + "§c den Spielmodus wechseln");
}
}
if (target.isChangeGM()) {
p.sendMessage(BauSystem.PREFIX + "§aDer Spieler darf nun den Spielmodus wechseln");
} else {
p.sendMessage(BauSystem.PREFIX + "§cDer Spieler darf nun nicht mehr den Spielmodus wechseln");
}
}
public static void toggleTestblock(Player p, BauweltMember target){ public static void toggleTestblock(Player p, BauweltMember target){
target.setTestblock(!target.isTestblock()); target.setTestblock(!target.isTestblock());
Player z = Bukkit.getPlayer(WarkingUser.get(target.getMemberID()).getUUID()); Player z = Bukkit.getPlayer(WarkingUser.get(target.getMemberID()).getUUID());
if (z != null) { if (z != null) {
if (target.isTestblock()) { if (target.isTestblock()) {
z.sendMessage(BauSystem.PREFIX + "§aDu kannst nun auf der Welt von §6" + p.getName() + "§a den Testblock zurücksetzen"); z.sendMessage(BauSystem.PREFIX + "§aDu kannst nun auf der Welt von §6" + p.getName() + "§a Einstellungen vornehmen");
}else { }else {
z.sendMessage(BauSystem.PREFIX + "§cDu kannst nun nicht mehr auf der Welt von §6" + p.getName() + "§c den Testblock zurücksetzen"); z.sendMessage(BauSystem.PREFIX + "§cDu kannst nun nicht mehr auf der Welt von §6" + p.getName() + "§c Einstellungen vornehmen");
} }
} }
if (target.isTestblock()) { if (target.isTestblock()) {
p.sendMessage(BauSystem.PREFIX + "§aDer Spieler darf nun den Testblock zurücksetzen"); p.sendMessage(BauSystem.PREFIX + "§aDer Spieler darf nun Einstellungen vornehmen");
} else { } else {
p.sendMessage(BauSystem.PREFIX + "§cDer Spieler darf nun nicht mehr den Testblock zurücksetzen"); p.sendMessage(BauSystem.PREFIX + "§cDer Spieler darf nun nicht mehr Einstellungen vornehmen");
} }
} }
public static void removePlayer(Player p, UUID id){ public static void removePlayer(Player p, BauweltMember target){
if (id == null) { target.remove();
p.sendMessage(BauSystem.PREFIX + "§cUnbekannter Spieler"); Player z = Bukkit.getPlayer(WarkingUser.get(target.getMemberID()).getUUID());
return;
}else if (BauweltMember.getBauMember(p.getUniqueId(), id) == null) {
p.sendMessage(BauSystem.PREFIX + "§cDieser Spieler ist kein Mitglied auf deiner Welt");
return;
}
BauweltMember.getBauMember(p.getUniqueId(), id).remove();
p.sendMessage(BauSystem.PREFIX + "§cDer Spieler wurde entfernt");
Player z = Bukkit.getPlayer(id);
if(z != null){ if(z != null){
z.sendMessage(BauSystem.PREFIX + "§cDu wurdest von der Welt von §6" + p.getName() + " §centfernt"); z.sendMessage(BauSystem.PREFIX + "§cDu wurdest von der Welt von §6" + p.getName() + " §centfernt");
if (z.getWorld().getName().equals(p.getUniqueId().toString())) { if (z.getWorld().getName().equals(p.getUniqueId().toString())) {
z.teleport(BauSystem.getInstance().config.spawn); z.teleport(BauSystem.getInstance().config.spawn);
z.setGameMode(GameMode.ADVENTURE);
} }
} }
p.sendMessage(BauSystem.PREFIX + "§cDer Spieler wurde entfernt");
} }
} }

Datei anzeigen

@ -0,0 +1,9 @@
package de.warking.bausystem.world;
public enum Permission {
world,
worldedit,
build,
member,
owner
}

Datei anzeigen

@ -4,7 +4,6 @@ package de.warking.bausystem.world;
import com.sk89q.worldedit.bukkit.WorldEditPlugin; import com.sk89q.worldedit.bukkit.WorldEditPlugin;
import de.warking.bausystem.BauSystem; import de.warking.bausystem.BauSystem;
import de.warking.hunjy.MySQL.Bauwelt; import de.warking.hunjy.MySQL.Bauwelt;
import de.warking.hunjy.MySQL.BauweltMember;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler; import org.bukkit.event.EventHandler;
@ -13,6 +12,7 @@ import org.bukkit.event.Listener;
import org.bukkit.event.block.BlockBreakEvent; import org.bukkit.event.block.BlockBreakEvent;
import org.bukkit.event.block.BlockBurnEvent; import org.bukkit.event.block.BlockBurnEvent;
import org.bukkit.event.block.BlockPlaceEvent; import org.bukkit.event.block.BlockPlaceEvent;
import org.bukkit.event.block.BlockSpreadEvent;
import org.bukkit.event.entity.EntityExplodeEvent; import org.bukkit.event.entity.EntityExplodeEvent;
import org.bukkit.event.player.PlayerCommandPreprocessEvent; import org.bukkit.event.player.PlayerCommandPreprocessEvent;
import org.bukkit.plugin.java.JavaPlugin; import org.bukkit.plugin.java.JavaPlugin;
@ -31,23 +31,10 @@ public class RegionListener implements Listener {
return; return;
Player p = e.getPlayer(); Player p = e.getPlayer();
UUID worldOwner;
try{ UUID worldOwner = BauWorld.getWorldUUID(p.getWorld());
worldOwner = UUID.fromString(e.getPlayer().getWorld().getName()); if (!BauWorld.hasPermission(worldOwner, p, Permission.worldedit)){
}catch(IllegalArgumentException E){ p.sendMessage(BauSystem.PREFIX + "§cDu darfst hier kein WorldEdit benutzen");
p.sendMessage(BauSystem.PREFIX + "§cDu darfst hier kein Worldedit benutzen.");
e.setCancelled(true);
return;
}
if (p.hasPermission("bau.team") || p.getUniqueId().equals(worldOwner))
return;
BauweltMember member = BauweltMember.getBauMember(worldOwner, p.getUniqueId());
if(member == null || !member.isWorldEdit()){
p.sendMessage(BauSystem.PREFIX + "§cDu darfst hier kein Worldedit benutzen.");
e.setCancelled(true); e.setCancelled(true);
} }
} }
@ -55,22 +42,9 @@ public class RegionListener implements Listener {
@EventHandler(priority = EventPriority.LOWEST, ignoreCancelled = true) @EventHandler(priority = EventPriority.LOWEST, ignoreCancelled = true)
public void onBlockBreak(BlockBreakEvent e) { public void onBlockBreak(BlockBreakEvent e) {
Player p = e.getPlayer(); Player p = e.getPlayer();
UUID worldOwner; UUID worldOwner = BauWorld.getWorldUUID(p.getWorld());
if (!BauWorld.hasPermission(worldOwner, p, Permission.build)){
try{ p.sendMessage(BauSystem.PREFIX + "§cDu darfst hier keine Blöcke abbauen");
worldOwner = UUID.fromString(e.getPlayer().getWorld().getName());
}catch(IllegalArgumentException E){
e.setCancelled(true);
return;
}
if (p.hasPermission("bau.team") || p.getUniqueId().equals(worldOwner))
return;
BauweltMember member = BauweltMember.getBauMember(worldOwner, p.getUniqueId());
if (member == null || !member.isBuild()) {
p.sendMessage(BauSystem.PREFIX + "§cDu darfst hier nicht bauen.");
e.setCancelled(true); e.setCancelled(true);
} }
} }
@ -78,22 +52,9 @@ public class RegionListener implements Listener {
@EventHandler(priority = EventPriority.LOWEST, ignoreCancelled = true) @EventHandler(priority = EventPriority.LOWEST, ignoreCancelled = true)
public void onBlockPlace(BlockPlaceEvent e) { public void onBlockPlace(BlockPlaceEvent e) {
Player p = e.getPlayer(); Player p = e.getPlayer();
UUID worldOwner; UUID worldOwner = BauWorld.getWorldUUID(p.getWorld());
if (!BauWorld.hasPermission(worldOwner, p, Permission.build)){
try{ p.sendMessage(BauSystem.PREFIX + "§cDu darfst hier keine Blöcke platzieren");
worldOwner = UUID.fromString(e.getPlayer().getWorld().getName());
}catch(IllegalArgumentException E){
e.setCancelled(true);
return;
}
if (p.hasPermission("bau.team") || p.getUniqueId().equals(worldOwner))
return;
BauweltMember member = BauweltMember.getBauMember(worldOwner, p.getUniqueId());
if(member == null || !member.isBuild()){
p.sendMessage(BauSystem.PREFIX + "§cDu darfst hier nicht bauen.");
e.setCancelled(true); e.setCancelled(true);
} }
} }
@ -109,14 +70,7 @@ public class RegionListener implements Listener {
@EventHandler @EventHandler
public void onExplode(EntityExplodeEvent e) { public void onExplode(EntityExplodeEvent e) {
UUID worldOwner; UUID worldOwner = BauWorld.getWorldUUID(e.getLocation().getWorld());
try{
worldOwner = UUID.fromString(e.getLocation().getWorld().getName());
}catch(IllegalArgumentException E){
e.setCancelled(true);
return;
}
if(worldOwner == null || !Bauwelt.getBauwelt(worldOwner).isTNTDmg()) if(worldOwner == null || !Bauwelt.getBauwelt(worldOwner).isTNTDmg())
e.setCancelled(true); e.setCancelled(true);
@ -124,17 +78,17 @@ public class RegionListener implements Listener {
@EventHandler @EventHandler
public void onFireDamage(BlockBurnEvent e) { public void onFireDamage(BlockBurnEvent e) {
UUID worldOwner; UUID worldOwner = BauWorld.getWorldUUID(e.getBlock().getWorld());
try{
worldOwner = UUID.fromString(e.getBlock().getWorld().getName());
}catch(IllegalArgumentException E){
e.setCancelled(true);
return;
}
if(worldOwner == null || !Bauwelt.getBauwelt(worldOwner).isFireDmg()) if(worldOwner == null || !Bauwelt.getBauwelt(worldOwner).isFireDmg())
e.setCancelled(true); e.setCancelled(true);
} }
@EventHandler
public void onFireSpread(BlockSpreadEvent e){
UUID worldOwner = BauWorld.getWorldUUID(e.getBlock().getWorld());
if(worldOwner == null || Bauwelt.getBauwelt(worldOwner) == null || !Bauwelt.getBauwelt(worldOwner).isFireDmg())
e.setCancelled(true);
}
} }

Datei anzeigen

@ -83,6 +83,7 @@ public class TNTTracer implements Listener, Runnable {
@EventHandler @EventHandler
public void onUnloadWorld(WorldUnloadEvent e){ public void onUnloadWorld(WorldUnloadEvent e){
if(e.getWorld().equals(world)){ if(e.getWorld().equals(world)){
printed = false;
end(); end();
} }
} }