Welt-Ordner löschen (Minecraft plugin bukkit)?

2 Antworten

Hey,

zuerst musst du die Welt unloaden, danach kannst du den Welten-Ordner einfach löschen. Hier ein Beispiel:

public class DeleteWorldCommand implements CommandExecutor {
    @Override
    public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
        if (args.length != 1) {
            // falsche Syntax
            return true;
        }

        World world = Bukkit.getWorld(args[0]);
        if (world == null) {
            // welt existiert nicht
            return true;
        }

        Bukkit.unloadWorld(world, true);
        deleteFolder(world.getWorldFolder().toPath());
        Bukkit.getConsoleSender().sendMessage("Deleted world " + world.getName());
        return true;
    }

    private void deleteFolder(Path path) {
        try {
            Files.walk(path)
                    .sorted(Comparator.reverseOrder())
                    .map(Path::toFile)
                    .forEach(File::delete);
        } catch (IOException ex) {
            ex.printStackTrace();
        }
    }
}

Mfg Jannick (L1nd)

Woher ich das weiß:Hobby
Marcus496 
Fragesteller
 20.08.2021, 19:44

Jup, dass hat funktioniert, dankeschön^^

0

Eine geladene Welt kann nicht gelöscht werden.

Die drei Standardwelten (world, world_nether, world_the_end) können (soweit ich weiß) nicht entladen werden.

Zum Rest:

World world = Bukkit.getWorld("IrgendeineWelt"); //Welche Welt soll entladen werden?
boolean save = true; //Soll die Welt beim Entladen gespeichert werden?
Bukkit.getServer().unloadWorld(world, save); //Entlade eine Welt

Danach benötigst du eine Methode, um einen vollen Ordner rekursiv zu löschen.

Leider bin ich gerade am Handy und habe keine Lust so eine Methode am Handy zu schreiben.

Werde sie dir also gerne morgen schreiben sobald ich am PC bin

Marcus496 
Fragesteller
 18.08.2021, 22:50

Okay, das hatte ich bis jetzt auch aber wenn du mir des dann morgen schreiben könntest währe es sehr nett dankeschön^^

0