如何删除 Bukkit 服务器上的世界数据目录?

How to to delete a world's data directory on a Bukkit server?

在我的 Minecraft 服务器插件中 Spigot/Bukkit 我试图删除一个世界的数据目录,但是在卸载世界及其区块后,一些文件和目录仍然无法删除。

这是我的代码的重要部分:

Server server = Backup.getPlugin(Backup.class).getServer();
World world = server.getWorld("world");
File active = world.getWorldFolder();

// Unload the world.
server.unloadWorld(world, false);
// Unload the chunks.
Chunk[] chunks = world.getLoadedChunks();
for (Chunk chunk : chunks) {
    chunk.unload(false);
}
ServerManager.deleteDirectory(active);

ServerManager.deleteDirectory(File) 利用 Apache 的 FileUtils.deleteQuietly(File) 并适用于其他功能,但无法删除最近卸载世界的数据目录中的某些文件,很可能是因为某些文件仍然存在服务器使用。

我的主要问题:如何确保不再使用世界数据目录以便将其删除?

默认的 3 个世界:普通世界、下界和末路世界无法即时删除,但是您可以删除额外添加的世界。

要了解具体如何操作,您可以查看 MultiverseCore 插件源代码:https://github.com/Multiverse/Multiverse-Core