package de.warking.bausystem.commands; import com.sk89q.worldedit.CuboidClipboard; import com.sk89q.worldedit.EditSession; import com.sk89q.worldedit.Vector; import com.sk89q.worldedit.blocks.BaseBlock; import com.sk89q.worldedit.bukkit.BukkitWorld; import com.sk89q.worldedit.bukkit.selections.CuboidSelection; import com.sk89q.worldedit.schematic.MCEditSchematicFormat; import com.sk89q.worldguard.protection.regions.ProtectedRegion; import de.pro_crafting.commandframework.Command; import de.pro_crafting.commandframework.CommandArgs; import de.warking.bausystem.BauSystem; import de.warking.bausystem.world.BauWorld; import de.warking.hunjy.MySQL.Bauwelt; import de.warking.hunjy.MySQL.BauweltMember; import de.warking.hunjy.MySQL.WarkingUser; import org.bukkit.*; import org.bukkit.entity.Player; import org.bukkit.inventory.Inventory; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.meta.ItemMeta; import java.io.File; import java.io.IOException; import java.util.HashSet; import java.util.List; import java.util.Set; import java.util.UUID; public class CommandBau { @Command(name = "bau", aliases = "gs") public void onBau(CommandArgs args) { onHelp(args); } @Command(name = "bau.help", aliases = "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 Seite 2 der Hilfe"); p.sendMessage("§6/bau home §7- Teleportiert dich auf deine Welt"); 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 tntdmg §7- Erlaubt / verbietet Explosionen"); p.sendMessage("§6/bau firedmg §7- Erlaubt / verbietet Feuerschaden"); 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 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 info §7- Informationen über die aktuelle Welt"); p.sendMessage("§6/bau gui §7- Öffnet eine GUI"); } @Command(name = "bau.help.2", aliases = "gs.help.2", inGameOnly = true) public void onHelp2(CommandArgs args) { Player p = args.getPlayer(); p.sendMessage(BauSystem.PREFIX + "Hilfeseite 2 von 2:"); p.sendMessage("§6/bau togglewe §7- Darf ein Spieler WorldEdit verwenden"); p.sendMessage("§6/bau togglebuild §7- Darf ein Spieler bauen"); p.sendMessage("§6/bau toggletp §7- Darf ein Spieler sich teleportieren"); p.sendMessage("§6/bau toggletestblock §7- Darf ein Spieler einen TestBlock erneuern"); p.sendMessage("§6/bau togglereset §7- Darf ein Spieler eine Region erneuern"); 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"); } @Command(name = "bau.home", aliases = "gs.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()) == null){ p.sendMessage(BauSystem.PREFIX + "§aEinen Moment bitte... Deine Welt wird vorbereitet"); try { BauWorld.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.addmember", aliases = "gs.addmember", inGameOnly = true) public void onAdd(CommandArgs args) { Player p = args.getPlayer(); if (Bauwelt.getBauwelt(p.getUniqueId()).getUUID() == null) { p.sendMessage(BauSystem.PREFIX + "§cDu hast noch keine Welt"); 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"); } @Command(name = "bau.delmember", aliases = "gs.delmember", inGameOnly = true) public void onDel(CommandArgs args) { Player p = args.getPlayer(); if (Bauwelt.getBauwelt(p.getUniqueId()).getUUID() == null) { p.sendMessage(BauSystem.PREFIX + "§cDu hast noch keine Welt"); return; }else if (args.length() == 0) { p.sendMessage(BauSystem.PREFIX + "/bau delmember "); return; } UUID id = WarkingUser.get(args.getArgs(0)).getUUID(); BauWorld.removePlayer(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 "); return; } UUID id = WarkingUser.get(args.getArgs(0)).getUUID(); if (id == null) { p.sendMessage(BauSystem.PREFIX + "§cUnbekannter Spieler"); return; }else if (Bauwelt.getBauwelt(id) == null) { p.sendMessage(BauSystem.PREFIX + "§cDu bist kein Mitglied dieser Welt"); return; } if (!p.hasPermission("bau.team")) { if(BauweltMember.getBauMember(id, p.getUniqueId()) == null){ p.sendMessage(BauSystem.PREFIX + "§cDu bist kein Mitglied dieser Welt"); return; } } if (Bukkit.getWorld(p.getUniqueId()) == null){ p.sendMessage(BauSystem.PREFIX + "§aEinen Moment bitte... Deine Welt wird vorbereitet"); 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); player.setWalkSpeed(speed); player.sendMessage("§aGeschwindigkeit wurde auf §6" + speed + " §agesetzt"); } @Command(name = "bau.gui", aliases = "gs.gui", inGameOnly = true) public boolean ongui(CommandArgs args) { final Player p = args.getPlayer(); Inventory inv = Bukkit.createInventory(null, 9, "§aBauoptionen"); ItemStack bau = new ItemStack(Material.COMPASS); ItemMeta meta = bau.getItemMeta(); meta.setDisplayName(ChatColor.RED + "§7Grundstücksregionen"); bau.setItemMeta(meta); inv.addItem(bau); ItemStack optionen = new ItemStack(Material.ENCHANTED_BOOK); meta = optionen.getItemMeta(); meta.setDisplayName(ChatColor.RED + "§7Weltoptionen"); optionen.setItemMeta(meta); inv.setItem(8, optionen); ItemStack spieler = new ItemStack(Material.REDSTONE_BLOCK); meta = spieler.getItemMeta(); meta.setDisplayName(ChatColor.RED + "§7Spieleroptionen"); spieler.setItemMeta(meta); inv.setItem(4, spieler); p.openInventory(inv); 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 "); 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 "); 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) public void onToggleBD(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 togglebuild "); 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.toggleBuild(p, target); } @Command(name = "bau.togglechgm", aliases = "gs.togglechgm", inGameOnly = true) public void onToggleCHG(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 togglechgm "); 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.toggleGM(p, target); } @Command(name = "bau.toggletestblock", aliases = "gs.toggletestblock", inGameOnly = true) public void onToggleTestblock(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 toggletestblock "); 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.togglereset", aliases = "gs.togglereset", 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 "); 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 "); 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) { final Player p = args.getPlayer(); UUID worldOwner; try{ worldOwner = UUID.fromString(p.getWorld().getName()); }catch(IllegalArgumentException E){ p.sendMessage(BauSystem.PREFIX + "§cDu bist auf keiner Bauwelt"); 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(); World playerWorld = p.getWorld(); for (ProtectedRegion rg : BauSystem.getWorldGuard().getRegionManager(playerWorld).getApplicableRegions(playerLocation)) { String rgID = rg.getId(); if(rgID.equalsIgnoreCase("resetall")) continue; Vector position = new Vector(Integer.parseInt(BauSystem.getPlugin().getRegionData.getString("regions." + rgID + ".position.X")), Integer.parseInt(BauSystem.getPlugin().getRegionData.getString("regions." + rgID + ".position.Y")), Integer.parseInt(BauSystem.getPlugin().getRegionData.getString("regions." + rgID + ".position.Z"))); File file = new File(BauSystem.getPlugin().getRegionData.getString("regions." + rgID + ".schematic.testblock")); pasteSchematic(p, file, position); p.sendMessage(BauSystem.PREFIX + "§aTestblock erneuert"); } } @Command(name = "bau.reset", aliases = "gs.reset", inGameOnly = true) public void onReset(CommandArgs args) { final Player p = args.getPlayer(); UUID worldOwner; try{ worldOwner = UUID.fromString(p.getWorld().getName()); }catch(IllegalArgumentException E){ p.sendMessage(BauSystem.PREFIX + "§cDu bist auf keiner Bauwelt"); 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(); World playerWorld = p.getWorld(); for (ProtectedRegion rg : BauSystem.getWorldGuard().getRegionManager(playerWorld).getApplicableRegions(playerLocation)) { String rgID = rg.getId(); if(rgID.equalsIgnoreCase("resetall")) continue; Vector position = new Vector(Integer.parseInt(BauSystem.getPlugin().getRegionData.getString("regions." + rgID + ".position.X")), Integer.parseInt(BauSystem.getPlugin().getRegionData.getString("regions." + rgID + ".position.Y")), Integer.parseInt(BauSystem.getPlugin().getRegionData.getString("regions." + rgID + ".position.Z"))); File file = new File(BauSystem.getPlugin().getRegionData.getString("regions." + rgID + ".schematic.reset")); pasteSchematic(p, file, position); p.sendMessage(BauSystem.PREFIX + "§aRegion " + rgID + " wurde erneuert"); } } @Command(name = "bau.resetall", aliases = "gs.resetall", inGameOnly = true) public void onResetAll(CommandArgs args) { final Player p = args.getPlayer(); p.sendMessage(BauSystem.PREFIX + "§aDeine Welt wird zurückgesetzt. Einen Moment bitte"); BauWorld.unloadWorld(p.getUniqueId()); File directory = new File(p.getUniqueId().toString()); del(directory); File directory1 = new File("plugins/WorldGuard/worlds/" + p.getUniqueId().toString()); del(directory1); onHome(args); } @Command(name = "bau.replace", aliases = "gs.replace", inGameOnly = true) public void onReplace(CommandArgs args) { final Player p = args.getPlayer(); UUID worldOwner; try{ worldOwner = UUID.fromString(p.getWorld().getName()); }catch(IllegalArgumentException E){ p.sendMessage(BauSystem.PREFIX + "§cDu bist auf keiner Bauwelt"); 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(); for(ProtectedRegion rg : BauSystem.getWorldGuard().getRegionManager(world).getApplicableRegions(p.getLocation())) { String rgID = rg.getId(); if(rgID.equalsIgnoreCase("resetall")) continue; EditSession editSession = BauSystem.getWorldEdit().getWorldEdit().getEditSessionFactory().getEditSession(new BukkitWorld(p.getWorld()), Integer.MAX_VALUE); CuboidSelection selection = new CuboidSelection(p.getWorld(), new Location(p.getWorld(), rg.getMinimumPoint().getBlockX(), rg.getMinimumPoint().getBlockY(), rg.getMinimumPoint().getBlockZ()), new Location(p.getWorld(), rg.getMaximumPoint().getBlockX(), rg.getMaximumPoint().getBlockY(), rg.getMaximumPoint().getBlockZ())); Set targetObsidian = new HashSet<>(); targetObsidian.add(new BaseBlock(49)); Set targetBedrock = new HashSet<>(); targetBedrock.add(new BaseBlock(7)); try { int tnt = editSession.replaceBlocks(selection.getRegionSelector().getRegion(), targetObsidian, new BaseBlock(46)); int slime = editSession.replaceBlocks(selection.getRegionSelector().getRegion(), targetBedrock, new BaseBlock(165)); editSession.flushQueue(); p.sendMessage(BauSystem.PREFIX + "§aIn Region " + rgID + " wurden " + tnt + " Blöcke Obsidian zu TNT und " + slime + " Blöcke Grundgestein zu Schleim ersetzt"); } catch(Exception ex) { ex.printStackTrace(); } } } @Command(name = "bau.info", aliases = "gs.info", inGameOnly = true) public void onInfo(CommandArgs args) { final Player p = args.getPlayer(); UUID worldOwner; try{ worldOwner = UUID.fromString(p.getWorld().getName()); }catch(IllegalArgumentException E){ p.sendMessage(BauSystem.PREFIX + "§cDu bist auf keiner Bauwelt"); return; } Bukkit.getScheduler().runTaskAsynchronously(BauSystem.getInstance(), () -> { Bauwelt welt = Bauwelt.getBauwelt(worldOwner); p.sendMessage(BauSystem.PREFIX + "ID§8: §6" + welt.getUserID()); p.sendMessage(BauSystem.PREFIX + "Besitzer§8: §6" + WarkingUser.get(welt.getUserID()).getUserName()); if(welt.isTNTDmg()) p.sendMessage("TNT-Schaden§8: §aerlaubt"); else p.sendMessage("TNT-Schaden§8: §cverboten"); if(welt.isFireDmg()) p.sendMessage("Feuer-Schaden§8: §aerlaubt"); else p.sendMessage("Feuer-Schaden§8: §cverboten"); List memberList = BauweltMember.getMembers(worldOwner); StringBuilder members = new StringBuilder(); members.append(BauSystem.PREFIX); members.append("Mitglieder§8: "); for(BauweltMember member : memberList){ members.append("§6"); members.append(WarkingUser.get(member.getMemberID()).getUserName()); members.append("§8, "); } p.sendMessage(members.toString()); }); } @Command(name = "bau.tntdmg", aliases = "gs.tntdmg", inGameOnly = true) public void onTntdmg(CommandArgs args){ BauWorld.switchTNT(args.getPlayer()); } @Command(name = "bau.firedmg", aliases = "gs.firedmg", inGameOnly = true) public void onFiredmg(CommandArgs args) { BauWorld.switchFire(args.getPlayer()); } private void pasteSchematic(Player player, File schematic, Vector position) { int count = 0; World world = player.getWorld(); for(ProtectedRegion rg: BauSystem.getWorldGuard().getRegionManager(world).getApplicableRegions(player.getLocation())) { count++; if(count != 0) { EditSession session = BauSystem.getWorldEdit().getWorldEdit().getEditSessionFactory().getEditSession(new BukkitWorld(world), Integer.MAX_VALUE); try { CuboidClipboard format = MCEditSchematicFormat.getFormat(schematic).load(schematic); format.paste(session, position, false); } catch (Exception ex) { player.sendMessage(ex.getMessage()); ex.printStackTrace(); } } } } 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(); } } }