Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

Jak usunąć świat?


Gość animekkk

Rekomendowane odpowiedzi

Gość animekkk
Opublikowano

Cześć, wiecie może jak usunąć świat?

Gdy robię tak:

    public static void deleteWorld(String world){
        World w = Bukkit.getWorld(world);
        File f = w.getWorldFolder();
        if(!f.exists()){
            System.out.println(w.getName() + " folder isnt exist!");
            return;
        }
        f.delete();
    }
    

No i oczywiście w onEnable mam deleteWorld("uhc");

to wyskakuje błąd:

https://pastebin.com/T5Xw8TQY

Jeżeli byłby potrzebny cały main:

https://pastebin.com/8QYEgTCi

 

Wiecie może jak to naprawić?

Gość animekkk
Opublikowano

@MarcinWieczorek

Debugowałem i zobaczyłem, że gdy nie ma pliku wszystko się wyświetla, że nie ma pliku. Ale gdy jest ten plik to teraz nic się nie dzieje. Tak jakby plugin nie mógł go usunąć.

	    public static void deleteWorld(String world){
        World w = Bukkit.getWorld(world);
        File f = new File(Bukkit.getWorldContainer() + "/" + world);
        if(!f.exists()){
            System.out.println("[ERROR] File doesn't exist!");
            return;
        }
        f.delete();
        for(Player p : w.getPlayers()){
            p.kickPlayer("RESTARTOWANIE!");
        }
        for(Chunk c : w.getLoadedChunks()){
            c.unload();
        }
        boolean unload = Bukkit.unloadWorld(w, true);
    }

Gość animekkk
Opublikowano

@MarcinWieczorek

Po dalszym debugowaniu, wszystko się wykonuje, oprócz f.delete();

Drugie [WORLD REMOVED], się nie wykonuję więc to raczej przez f.delete();

	    public static boolean deleteWorld(String world){
        World w = Bukkit.getWorld(world);
        if(world !=null){
            File f = new File(Bukkit.getWorldContainer() + "/" + world);
            if(f.exists()){
                Bukkit.getServer().unloadWorld(w, true);
                System.out.println(world + " [WORLD REMOVED]");
                f.delete();
                System.out.println(world + " [WORLD REMOVED]");
                return true;
            }
            System.out.println(world + " folder doesnt exist!");    
            return true;
        }
        return true;
    }

Gość animekkk
Opublikowano

@MarcinWieczorek

Wyskakuje mi:

"not empty"

Opublikowano

No widzisz jak pięknie się debuguje? Teraz jeszcze szczypta rekurencji oraz internetu i będziesz w stanie usunąć folder. Wiesz dlaczego nie możesz go usunąć? Nie jest pusty. Usuń najpierw wszystkie pliki.

Dodaj mój nick do posta jeśli potrzebujesz pomocy | Piszę pluginy na zlecenie | Pomagam z Linuxem

newlogo.png

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...