diff --git a/BauSystem_Main/src/de/steamwar/bausystem/BauSystem.java b/BauSystem_Main/src/de/steamwar/bausystem/BauSystem.java index ded4172..5446e42 100644 --- a/BauSystem_Main/src/de/steamwar/bausystem/BauSystem.java +++ b/BauSystem_Main/src/de/steamwar/bausystem/BauSystem.java @@ -83,7 +83,7 @@ public class BauSystem extends JavaPlugin implements Listener { new CommandTNT(); getCommand("fire").setExecutor(new CommandFire()); getCommand("freeze").setExecutor(new CommandFreeze()); - getCommand("testblock").setExecutor(new CommandTestblock()); + new CommandTestblock(); getCommand("bauinfo").setExecutor(new CommandInfo()); getCommand("protect").setExecutor(new CommandProtect()); getCommand("skull").setExecutor(new CommandSkull()); diff --git a/BauSystem_Main/src/de/steamwar/bausystem/commands/CommandTestblock.java b/BauSystem_Main/src/de/steamwar/bausystem/commands/CommandTestblock.java index ce431a7..60b9a48 100644 --- a/BauSystem_Main/src/de/steamwar/bausystem/commands/CommandTestblock.java +++ b/BauSystem_Main/src/de/steamwar/bausystem/commands/CommandTestblock.java @@ -23,48 +23,67 @@ import de.steamwar.bausystem.BauSystem; import de.steamwar.bausystem.Permission; import de.steamwar.bausystem.world.Region; import de.steamwar.bausystem.world.Welt; +import de.steamwar.command.SWCommand; import de.steamwar.sql.Schematic; import org.bukkit.Bukkit; -import org.bukkit.command.Command; -import org.bukkit.command.CommandExecutor; -import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; +import java.io.IOException; import java.util.logging.Level; -public class CommandTestblock implements CommandExecutor { +public class CommandTestblock extends SWCommand { - @Override - public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { - if (!(sender instanceof Player)) - return false; - Player player = (Player) sender; + public CommandTestblock() { + super("testblock", "tb"); + } + @Register + public void genericTestblockCommand(Player p) { + if (!permissionCheck(p)) return; + Region region = regionCheck(p); + if (region == null) return; + try { + region.resetTestblock(null); + p.sendMessage(BauSystem.PREFIX + "§7Testblock zurückgesetzt"); + } catch (IOException e) { + p.sendMessage(BauSystem.PREFIX + "§cFehler beim Zurücksetzen des Testblocks"); + Bukkit.getLogger().log(Level.WARNING, "Failed testblock", e); + } + } + + @Register + public void schematicTestblockCommand(Player p, String s) { + if (!permissionCheck(p)) return; + Region region = regionCheck(p); + if (region == null) return; + Schematic schem = Schematic.getSchemFromDB(s, p.getUniqueId()); + if (schem == null) { + p.sendMessage(BauSystem.PREFIX + "§cSchematic nicht gefunden"); + return; + } + try { + region.resetTestblock(null); + p.sendMessage(BauSystem.PREFIX + "§7Testblock zurückgesetzt"); + } catch (IOException e) { + p.sendMessage(BauSystem.PREFIX + "§cFehler beim Zurücksetzen des Testblocks"); + Bukkit.getLogger().log(Level.WARNING, "Failed testblock", e); + } + } + + private boolean permissionCheck(Player player) { if (Welt.noPermission(player, Permission.worldedit)) { player.sendMessage(BauSystem.PREFIX + "§cDu darfst hier nicht den Testblock zurücksetzen"); return false; } + return true; + } + private Region regionCheck(Player player) { Region region = Region.getRegion(player.getLocation()); if (!region.hasTestblock()) { player.sendMessage(BauSystem.PREFIX + "§cDu befindest dich derzeit in keiner Region"); - return false; + return region; } - try { - Schematic schem = null; - if (args.length > 0) { - schem = Schematic.getSchemFromDB(args[0], player.getUniqueId()); - if (schem == null) { - player.sendMessage(BauSystem.PREFIX + "§cSchematic nicht gefunden"); - return false; - } - } - region.resetTestblock(schem); - player.sendMessage(BauSystem.PREFIX + "§7Testblock zurückgesetzt"); - } catch (Exception e) { - player.sendMessage(BauSystem.PREFIX + "§cFehler beim Zurücksetzen des Testblocks"); - Bukkit.getLogger().log(Level.WARNING, "Failed testblock", e); - } - return false; + return null; } } diff --git a/BauSystem_Main/src/plugin.yml b/BauSystem_Main/src/plugin.yml index 86bf85e..4d25ab9 100644 --- a/BauSystem_Main/src/plugin.yml +++ b/BauSystem_Main/src/plugin.yml @@ -11,8 +11,6 @@ description: "So unseriös wie wir sind: BauSystem nur besser." commands: debugstick: fire: - testblock: - aliases: tb reset: protect: bauinfo: