Multiverse-Core not deleting folder when deleting world
PapiCapi opened this issue ยท 17 comments
Multiverse is not deleting folder when i'm deleting the world.
The folder is empty but still exists so if i want to recreate a world with the same name, it says that there is already a folder with this name and so can"t create it.
I'm using Paper 90 ( 1.16.1 ) and Multiverse-Core 4.1.0
This is still happening on a build of Magma 1.20.1, folder is not deleted at all (not even the contents)
Magma is a Paper-like minecraft server with mod support. Also, the bug occurs regardless of whether there are any mods installed, so I don't think it's unreasonable to think this is a bug in MultiVerse, considering how many similar issues have popped up over the years
Provide tested working reproduction instructions using Paper and I can re-open this issue
Provide tested working reproduction instructions using Paper and I can re-open this issue
Will try next week. Thanks for replying so quickly! :)
Before 1.16.1, the plugin was deleting the folder so that's why i'm reporting this.
I actually think this is an issue because for exemple, players who doesn't have the FTP or SSH access can't just recreate a world
Confirmed on my server as well. Can reproduce by using /mv delete
to delete the world. This causes an exception (though I don't have the stack trace handy, sorry).
@benwoo1110 I agree with @PapiCapi on this. While deleting the folder is a working temporary fix for making a new world, the root is that the folder isn't being deleted as it should be, which is a perfectly valid issue. Let's not put a band-aid over this bullet hole.
I just deleted a world in my server, but I wasn't able to get the stack trace like I had seen last time. Nonetheless the folder still wasn't deleted.
I was unable to reproduce the issue using the latest mv dev build. https://ci.onarandombox.com/view/Multiverse/job/Multiverse-Core/785/
https://bytebin.lucko.me/iQCgbZlyAg
Unless there is a specific step I am missing to reproduce the issue?
Using the build you sent me, i still have the same issue. Here is what i did :
- /mv create test normal -t flat
- /mv tp test
- /spawn
- /mv delete test & /mv confirm
- /mv create test normal -t flat -> can't because a world / folder with the same name exists ( http://prntscr.com/tlxjdk )
My plugins :
AsyncWorldEdit, BedWars, ChatLink, CompteGroupe*, CoreProtect, CrazyCrates, EffectLib*, Essentials, EssentialsChat, EssentialsSpawn, EventPeche, Fe*, HolographicDisplays, KillEffects, KitPvP, LuckPerms, ModReq*, Multiverse-Core, OnTime*, PlugMan, ProtocolLib, ProtocolSupport, Shopkeepers, SkQuery, Skript, TAB, TokenManager, TradePlus, Vault, VoidGenerator, VoxelSniper*, WorldEdit, WorldGuard, WorldGuardExtraFlags
I also couldn't confirm this issue. Maybe it's an incompatibility with another plugin?
On a side note, I got an error when deleting the world I was on (although everything went fine):
[17:35:18] [Server thread/INFO]: nicegamer7 issued server command: /mv delete test
[17:35:21] [Server thread/INFO]: nicegamer7 issued server command: /mvconfirm
[17:35:22] [Server thread/ERROR]: Could not pass event PlayerChangedWorldEvent to Multiverse-Inventories v4.0.0-SNAPSHOT-bUNKNOWN
org.bukkit.event.EventException: null
at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:319) ~[spigot-1.16.1.jar:git-Spigot-0509002-6b95d59]
at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:70) ~[spigot-1.16.1.jar:git-Spigot-0509002-6b95d59]
at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:589) ~[spigot-1.16.1.jar:git-Spigot-0509002-6b95d59]
at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:576) ~[spigot-1.16.1.jar:git-Spigot-0509002-6b95d59]
at net.minecraft.server.v1_16_R1.PlayerList.moveToWorld(PlayerList.java:740) ~[spigot-1.16.1.jar:git-Spigot-0509002-6b95d59]
at org.bukkit.craftbukkit.v1_16_R1.entity.CraftPlayer.teleport(CraftPlayer.java:676) ~[spigot-1.16.1.jar:git-Spigot-0509002-6b95d59]
at org.bukkit.craftbukkit.v1_16_R1.entity.CraftEntity.teleport(CraftEntity.java:462) ~[spigot-1.16.1.jar:git-Spigot-0509002-6b95d59]
at com.onarandombox.MultiverseCore.utils.SimpleSafeTTeleporter.safelyTeleport(SimpleSafeTTeleporter.java:236) ~[?:?]
at com.onarandombox.MultiverseCore.utils.WorldManager.removePlayersFromWorld(WorldManager.java:576) ~[?:?]
at com.onarandombox.MultiverseCore.utils.WorldManager.unloadWorldFromBukkit(WorldManager.java:560) ~[?:?]
at com.onarandombox.MultiverseCore.utils.WorldManager.unloadWorld(WorldManager.java:369) ~[?:?]
at com.onarandombox.MultiverseCore.utils.WorldManager.unloadWorld(WorldManager.java:359) ~[?:?]
at com.onarandombox.MultiverseCore.utils.WorldManager.removeWorldFromConfig(WorldManager.java:308) ~[?:?]
at com.onarandombox.MultiverseCore.utils.WorldManager.deleteWorld(WorldManager.java:505) ~[?:?]
at com.onarandombox.MultiverseCore.utils.WorldManager.deleteWorld(WorldManager.java:541) ~[?:?]
at com.onarandombox.MultiverseCore.utils.WorldManager.deleteWorld(WorldManager.java:549) ~[?:?]
at com.onarandombox.MultiverseCore.MultiverseCore.deleteWorld(MultiverseCore.java:1084) ~[?:?]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_241]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_241]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_241]
at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_241]
at com.onarandombox.commandhandler.QueuedCommand.execute(QueuedCommand.java:49) ~[?:?]
at com.onarandombox.commandhandler.CommandHandler.confirmQueuedCommand(CommandHandler.java:218) ~[?:?]
at com.onarandombox.MultiverseCore.commands.ConfirmCommand.runCommand(ConfirmCommand.java:36) ~[?:?]
at com.onarandombox.commandhandler.CommandHandler.checkAndRunCommand(CommandHandler.java:296) ~[?:?]
at com.onarandombox.commandhandler.CommandHandler.processFoundCommands(CommandHandler.java:143) ~[?:?]
at com.onarandombox.commandhandler.CommandHandler.locateAndRunCommand(CommandHandler.java:93) ~[?:?]
at com.onarandombox.MultiverseCore.MultiverseCore.onCommand(MultiverseCore.java:820) ~[?:?]
at org.bukkit.command.PluginCommand.execute(PluginCommand.java:45) ~[spigot-1.16.1.jar:git-Spigot-0509002-6b95d59]
at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:149) ~[spigot-1.16.1.jar:git-Spigot-0509002-6b95d59]
at org.bukkit.craftbukkit.v1_16_R1.CraftServer.dispatchCommand(CraftServer.java:757) ~[spigot-1.16.1.jar:git-Spigot-0509002-6b95d59]
at net.minecraft.server.v1_16_R1.PlayerConnection.handleCommand(PlayerConnection.java:1703) ~[spigot-1.16.1.jar:git-Spigot-0509002-6b95d59]
at net.minecraft.server.v1_16_R1.PlayerConnection.a(PlayerConnection.java:1546) ~[spigot-1.16.1.jar:git-Spigot-0509002-6b95d59]
at net.minecraft.server.v1_16_R1.PacketPlayInChat.a(PacketPlayInChat.java:47) ~[spigot-1.16.1.jar:git-Spigot-0509002-6b95d59]
at net.minecraft.server.v1_16_R1.PacketPlayInChat.a(PacketPlayInChat.java:1) ~[spigot-1.16.1.jar:git-Spigot-0509002-6b95d59]
at net.minecraft.server.v1_16_R1.PlayerConnectionUtils.lambda$0(PlayerConnectionUtils.java:19) ~[spigot-1.16.1.jar:git-Spigot-0509002-6b95d59]
at net.minecraft.server.v1_16_R1.TickTask.run(SourceFile:18) ~[spigot-1.16.1.jar:git-Spigot-0509002-6b95d59]
at net.minecraft.server.v1_16_R1.IAsyncTaskHandler.executeTask(SourceFile:144) ~[spigot-1.16.1.jar:git-Spigot-0509002-6b95d59]
at net.minecraft.server.v1_16_R1.IAsyncTaskHandlerReentrant.executeTask(SourceFile:23) ~[spigot-1.16.1.jar:git-Spigot-0509002-6b95d59]
at net.minecraft.server.v1_16_R1.IAsyncTaskHandler.executeNext(SourceFile:118) ~[spigot-1.16.1.jar:git-Spigot-0509002-6b95d59]
at net.minecraft.server.v1_16_R1.MinecraftServer.aZ(MinecraftServer.java:943) ~[spigot-1.16.1.jar:git-Spigot-0509002-6b95d59]
at net.minecraft.server.v1_16_R1.MinecraftServer.executeNext(MinecraftServer.java:936) ~[spigot-1.16.1.jar:git-Spigot-0509002-6b95d59]
at net.minecraft.server.v1_16_R1.IAsyncTaskHandler.awaitTasks(SourceFile:127) ~[spigot-1.16.1.jar:git-Spigot-0509002-6b95d59]
at net.minecraft.server.v1_16_R1.MinecraftServer.sleepForTick(MinecraftServer.java:920) ~[spigot-1.16.1.jar:git-Spigot-0509002-6b95d59]
at net.minecraft.server.v1_16_R1.MinecraftServer.v(MinecraftServer.java:852) ~[spigot-1.16.1.jar:git-Spigot-0509002-6b95d59]
at net.minecraft.server.v1_16_R1.MinecraftServer.lambda$0(MinecraftServer.java:164) ~[spigot-1.16.1.jar:git-Spigot-0509002-6b95d59]
at java.lang.Thread.run(Thread.java:748) [?:1.8.0_241]
Caused by: java.lang.NullPointerException
at org.bukkit.craftbukkit.v1_16_R1.entity.CraftPlayer.getBedSpawnLocation(CraftPlayer.java:730) ~[spigot-1.16.1.jar:git-Spigot-0509002-6b95d59]
at com.onarandombox.multiverseinventories.share.Sharables$16.updateProfile(Sharables.java:484) ~[?:?]
at com.onarandombox.multiverseinventories.ShareHandler.updateProfile(ShareHandler.java:113) ~[?:?]
at com.onarandombox.multiverseinventories.ShareHandler.completeSharing(ShareHandler.java:85) ~[?:?]
at com.onarandombox.multiverseinventories.ShareHandler.handleSharing(ShareHandler.java:59) ~[?:?]
at com.onarandombox.multiverseinventories.InventoriesListener.playerChangedWorld(InventoriesListener.java:209) ~[?:?]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_241]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_241]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_241]
at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_241]
at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:315) ~[spigot-1.16.1.jar:git-Spigot-0509002-6b95d59]
... 46 more
[17:35:22] [Server thread/INFO]: [Multiverse-Core] World 'test' was unloaded from memory.
[17:35:23] [Server thread/INFO]: ThreadedAnvilChunkStorage (test): All chunks are saved
[17:35:23] [Server thread/INFO]: [Multiverse-Core] World 'test' was unloaded from memory.
[17:35:23] [Server thread/INFO]: [Multiverse-Core] World 'test' was removed from config.yml
[17:35:23] [Server thread/INFO]: [Multiverse-Core] World 'test' was DELETED.
I really don't understand : i just enabled the debug messages and saw this output
[10:42:13 INFO]: [Multiverse-Core] World 'test' was unloaded from memory.
[10:42:13 INFO]: ThreadedAnvilChunkStorage (test): All chunks are saved
[10:42:13 INFO]: [Multiverse-Core] World 'test' was unloaded from memory.
[10:42:13 INFO]: [Multiverse-Core] World 'test' was removed from config.yml
[10:42:13 INFO]: [Multiverse-Core-Debug] deleteWorld(): worldFile: /home/server/staff1.15/./test/.
[10:42:13 INFO]: [Multiverse-Core] World 'test' was DELETED.
Actually, the folder still exists but is again empty. Does it needs to have some special rights ? Because i tried a "rm -r /home/server/staff1.15/./test/" and it worked.
Maybe you have to remove the point at the end and change "/home/server/staff1.15/./test/." to "/home/server/staff1.15/./test/" ?
I also tried to remove all plugins except Multiverse and Luckperms and the issue is still here so for me, it's clearly a bug from MV
I can confirm this bug. only tested it with nether worlds.
its deffenitely an MV bug on 1.16.1 (nether update)
Can someone who is experiencing this issue try Paper Build 122 (or later) or build Spigot with BuildTools and confirm whether this is still happening?