Deleting a World.

Discussion in 'Plugin Development' started by MCForger, Jan 29, 2013.

Thread Status:
Not open for further replies.
  1. Offline

    MCForger

    Just seeing if anyone knows why this wouldn't work if I am missing something obvious:
    Code:
        public boolean deleteWorld(String s)
        {
            World w = Bukkit.getServer().getWorld(s);
            if (w == null)
            {
                _log.logInfo(" Error Occured Trying to Delete World: " + s);
                return false;
            }
            String worldName = w.getName();
            if (!w.getPlayers().isEmpty())
            {
                for (Player p : w.getPlayers())
                {
                    p.teleport(Bukkit.getServer().getWorld("world").getSpawnLocation());
                    p.sendMessage(_log.getPluginPrefix() + " The world " + ChatColor.WHITE + w.getName() + ChatColor.GRAY + " is being deleted!");
                }
            }
            File deletingWorld = getDataFolderForWorld(worldName);
            Bukkit.getServer().unloadWorld(w, true);
            _log.logInfo(" World " + worldName + " has been deleted!");
            return deletingWorld.delete();
        }
    Thank you!
     
  2. Offline

    Hoot215

    Folders can only be deleted if they're empty. You probably want to create your own method that deletes folders recursively.
     
  3. Here is a method I wrote that I use very often when deleting any folders.

    Code:java
    1.  
    2. private void deleteMap(File dir) {
    3. File[] files = dir.listFiles();
    4. for(File d : files){
    5. if(d.isDirectory()){
    6. deleteMap(d);
    7. }
    8. d.delete();
    9. }
    10. }
    11.  
     
  4. Offline

    xXSilentYoshiXx

    MCForger

    Use this:

    Code:java
    1. public boolean onCommand(CommandSender s, Command cmd, String cl, String[] args) {
    2. Player p = (Player) s;
    3.  
    4. if (cl.equalsIgnoreCase("delworld")) {
    5. if (args.length == 0) {
    6. p.sendMessage(ChatColor.RED + "Not enough args!");
    7. } else if (args.length == 1) {
    8. if (args[0] != null) {
    9. Bukkit.getWorlds().remove(args[0]);
    10. }
    11. } else {
    12. p.sendMessage(ChatColor.RED + "Too many args!");
    13. }
    14. }
    15.  
    16.  


    ^_^
     
Thread Status:
Not open for further replies.

Share This Page