Multiverse-Core

Multiverse-Core

6M Downloads

Multiverse-Core not deleting folder when deleting world

PapiCapi opened this issue ยท 17 comments

commented

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

commented

Multiverse doesn't support modded servers. Only spigot/paper.

commented

This is still happening on a build of Magma 1.20.1, folder is not deleted at all (not even the contents)

commented

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

commented

Provide tested working reproduction instructions using Paper and I can re-open this issue

commented

Provide tested working reproduction instructions using Paper and I can re-open this issue

Will try next week. Thanks for replying so quickly! :)

commented

So just delete the folder?

commented

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

commented

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.

commented

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.

commented

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
sssss

Unless there is a specific step I am missing to reproduce the issue?

commented

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

commented

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.
commented

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

commented

I can confirm this bug. only tested it with nether worlds.
its deffenitely an MV bug on 1.16.1 (nether update)

commented

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?

commented

It is not, thanks !

commented

Awesome! Thanks for reporting.