Paper
Paper copied to clipboard
Can't create world with key path that matches an existing level name even if namespace is different
Expected behavior
Should be able to create a world with key key for which Bukkit.getWorld(key) returns null.
Observed/Actual behavior
Some keys fail as a world with that level name already exist.
[09:52:35 ERROR]: Error occurred while enabling Paper-Test-Plugin v1.0.0-SNAPSHOT (Is it up to date?)
java.lang.IllegalArgumentException: Cannot create a world with key plugin:world and name world one (or both) already match a world that exists
at org.bukkit.craftbukkit.CraftServer.createWorld(CraftServer.java:1152) ~[main/:?]
at org.bukkit.Bukkit.createWorld(Bukkit.java:767) ~[paper-api-1.18.2-R0.1-SNAPSHOT.jar:?]
at io.papermc.paper.testplugin.TestPlugin.onEnable(TestPlugin.java:17) ~[test-plugin-1.0.0-SNAPSHOT.jar:?]
at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:264) ~[paper-api-1.18.2-R0.1-SNAPSHOT.jar:?]
at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:370) ~[paper-api-1.18.2-R0.1-SNAPSHOT.jar:?]
at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:541) ~[paper-api-1.18.2-R0.1-SNAPSHOT.jar:?]
at org.bukkit.craftbukkit.CraftServer.enablePlugin(CraftServer.java:560) ~[main/:?]
at org.bukkit.craftbukkit.CraftServer.enablePlugins(CraftServer.java:474) ~[main/:?]
at net.minecraft.server.MinecraftServer.loadWorld0(MinecraftServer.java:664) ~[main/:?]
at net.minecraft.server.MinecraftServer.loadLevel(MinecraftServer.java:431) ~[main/:?]
at net.minecraft.server.dedicated.DedicatedServer.initServer(DedicatedServer.java:316) ~[main/:?]
at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:1163) ~[main/:?]
at net.minecraft.server.MinecraftServer.lambda$spin$0(MinecraftServer.java:315) ~[main/:?]
at java.lang.Thread.run(Thread.java:833) ~[?:?]
Steps/models to reproduce
In a plugin onEnable, just run
final NamespacedKey worldKey = new NamespacedKey("plugin", "world");
if (Bukkit.getWorld(worldKey) == null) {
WorldCreator creator = new WorldCreator(worldKey);
Bukkit.createWorld(creator);
}
Plugin and Datapack List
none
Paper version
f210f67c4ad1560685e4354dfa242c120e42efe3
Other
No response
i had this issue, but reverted to the build before this one https://github.com/PaperMC/Paper/commit/182a609b85b8a711b04cae45ea03bad19367ea21
it works with build 352
Well the fix is not going to be to undo that commit. That commit fixes a bigger issue. I'm guessing your issue is actually not the same as this. Can you post the stack trace to your issue @alekso56?
After deleting the end i got this with that commit.
[Server thread/WARN]: java.lang.IllegalArgumentException: Cannot create a world with key minecraft:world_the_end and name world_the_end one (or both) already match a world that exists
[19:28:08] [Server thread/WARN]: at org.bukkit.craftbukkit.v1_18_R2.CraftServer.createWorld(CraftServer.java:1152)
[19:28:08] [Server thread/WARN]: at org.bukkit.Bukkit.createWorld(Bukkit.java:767)
[19:28:08] [Server thread/WARN]: at org.bukkit.WorldCreator.createWorld(WorldCreator.java:461)
[19:28:08] [Server thread/WARN]: at Multiverse-Core-4.3.2-SNAPSHOT.jar//com.onarandombox.MultiverseCore.utils.WorldManager.doLoad(WorldManager.java:486)
[19:28:08] [Server thread/WARN]: at Multiverse-Core-4.3.2-SNAPSHOT.jar//com.onarandombox.MultiverseCore.utils.WorldManager.doLoad(WorldManager.java:467)
[19:28:08] [Server thread/WARN]: at Multiverse-Core-4.3.2-SNAPSHOT.jar//com.onarandombox.MultiverseCore.utils.WorldManager.doLoad(WorldManager.java:442)
[19:28:08] [Server thread/WARN]: at Multiverse-Core-4.3.2-SNAPSHOT.jar//com.onarandombox.MultiverseCore.utils.WorldManager.loadWorlds(WorldManager.java:770)
[19:28:08] [Server thread/WARN]: at Multiverse-Core-4.3.2-SNAPSHOT.jar//com.onarandombox.MultiverseCore.MultiverseCore.onEnable(MultiverseCore.java:313)
[19:28:08] [Server thread/WARN]: at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:264)
[19:28:08] [Server thread/WARN]: at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:370)
[19:28:08] [Server thread/WARN]: at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:541)
[19:28:08] [Server thread/WARN]: at org.bukkit.craftbukkit.v1_18_R2.CraftServer.enablePlugin(CraftServer.java:560)
[19:28:08] [Server thread/WARN]: at org.bukkit.craftbukkit.v1_18_R2.CraftServer.enablePlugins(CraftServer.java:474)
[19:28:08] [Server thread/WARN]: at net.minecraft.server.MinecraftServer.loadWorld0(MinecraftServer.java:664)
[19:28:08] [Server thread/WARN]: at net.minecraft.server.MinecraftServer.loadLevel(MinecraftServer.java:431)
[19:28:08] [Server thread/WARN]: at net.minecraft.server.dedicated.DedicatedServer.e(DedicatedServer.java:316)
[19:28:08] [Server thread/WARN]: at net.minecraft.server.MinecraftServer.w(MinecraftServer.java:1163)
[19:28:08] [Server thread/WARN]: at net.minecraft.server.MinecraftServer.lambda$spin$0(MinecraftServer.java:315)
[19:28:08] [Server thread/WARN]: at java.base/java.lang.Thread.run(Thread.java:833)
I think that there is some potential inconsistency with what MV is seeing, that needs looking into; But, the restriction which you're hitting elsewhere is 100% intended, otherwise you end up with issues like worlds which won't save properly, etc
My current world contains capital letters and causes this with bentobox since paper build 348
[12:12:14] [Server thread/INFO]: [BentoBox] Enabling BSkyBlock (1.15.2-SNAPSHOT-b718)... [12:12:14] [Server thread/ERROR]: [BentoBox] Skipping BSkyBlock due to an unhandled exception... [12:12:14] [Server thread/ERROR]: [BentoBox] java.lang.IllegalArgumentException: Cannot create a world with key minecraft:skyblock and name skyblock one (or both) already match a world that exists at org.bukkit.craftbukkit.v1_18_R2.CraftServer.createWorld(CraftServer.java:1152) at org.bukkit.Bukkit.createWorld(Bukkit.java:767) at org.bukkit.WorldCreator.createWorld(WorldCreator.java:461) at world.bentobox.bskyblock.BSkyBlock.getWorld(BSkyBlock.java:130) at world.bentobox.bskyblock.BSkyBlock.createWorlds(BSkyBlock.java:101) at BentoBox-1.21.0-SNAPSHOT-b2277.jar//world.bentobox.bentobox.managers.AddonsManager.enableAddon(AddonsManager.java:304) at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183) at java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:179) at java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:179) at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1625) at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509) at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499) at java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:150) at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:173) at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) at java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:596) at BentoBox-1.21.0-SNAPSHOT-b2277.jar//world.bentobox.bentobox.managers.AddonsManager.enableAddons(AddonsManager.java:250) at BentoBox-1.21.0-SNAPSHOT-b2277.jar//world.bentobox.bentobox.BentoBox.completeSetup(BentoBox.java:188) at BentoBox-1.21.0-SNAPSHOT-b2277.jar//world.bentobox.bentobox.BentoBox.lambda$onEnable$0(BentoBox.java:171) at org.bukkit.craftbukkit.v1_18_R2.scheduler.CraftTask.run(CraftTask.java:101) at org.bukkit.craftbukkit.v1_18_R2.scheduler.CraftScheduler.mainThreadHeartbeat(CraftScheduler.java:483) at net.minecraft.server.MinecraftServer.w(MinecraftServer.java:1172) at net.minecraft.server.MinecraftServer.lambda$spin$0(MinecraftServer.java:315) at java.base/java.lang.Thread.run(Thread.java:833)