在Spigot/Bukkit的我的Minecraft服務器插件中,我試圖刪除一個世界的數據目錄,但卸載了這個世界及其塊後,仍然無法刪除某些文件和目錄。如何刪除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(文件)利用Apache的FileUtils.deleteQuietly(文件),並適用於其他的功能,但無法在數據目錄中刪除一些文件最近卸載的世界,很可能是因爲服務器仍在使用某些文件。
我的主要問題:我如何確保世界數據目錄不再使用,因此它可以被刪除?
確保瞬移是可能在這個世界了所有玩家。另外我不認爲卸載每個塊是必要的,因爲這是通過'unloadWorld()完成的' – Squiddie
嘗試使用'FileUtils.deleteDirectory(directory)'。如果它不起作用,請告訴我們日誌。 'FileUtils.deleteQuietly'沒有拋出任何異常,所以我們不知道是什麼問題。 – SocketByte
@Squiddie:所有玩家都會被踢,但即使沒有玩家在整個服務器上線,它也會失敗。我還在下面創建錯誤日誌之前刪除了塊卸載。 – Gentle153