如何删除 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
在我的 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