WorldEdit for Bukkit

WorldEdit for Bukkit

21M Downloads

worldedit cannot modify custom biomes.

XXY233 opened this issue ยท 4 comments

commented

WorldEdit Version

7.3.0

Platform Version

git-Paper-461 (1.20.4)

Confirmations

  • I am using the most recent Minecraft release.
  • I am using a version of WorldEdit compatible with my Minecraft version.
  • I am using the latest or recommended version of my platform software.
  • I am NOT using a hybrid server, e.g. a server that combines Bukkit and Forge. Examples include Arclight, Mohist, and Cardboard.
  • I am NOT using a fork of WorldEdit, such as FastAsyncWorldEdit (FAWE) or AsyncWorldEdit (AWE)

Bug Description

The original biome was the cherry grove generated by TerraformGenerator.
image

I get an exception when I try to set the biome to "plains".

[22:16:47 INFO]: TheLittle_Yang issued server command: //setbiome plains
[22:16:47 ERROR]: An unexpected error while handling a WorldEdit command
java.lang.NullPointerException: null
        at com.google.common.base.Preconditions.checkNotNull(Preconditions.java:903) ~[guava-32.1.2-jre.jar:?]
        at com.sk89q.worldedit.history.change.BiomeChange3D.<init>(BiomeChange3D.java:49) ~[worldedit-bukkit-7.3.0.jar:?]
        at com.sk89q.worldedit.extent.ChangeSetExtent.setBiome(ChangeSetExtent.java:107) ~[worldedit-bukkit-7.3.0.jar:?]
        at com.sk89q.worldedit.extent.AbstractDelegateExtent.setBiome(AbstractDelegateExtent.java:109) ~[worldedit-bukkit-7.3.0.jar:?]
        at com.sk89q.worldedit.extent.AbstractDelegateExtent.setBiome(AbstractDelegateExtent.java:109) ~[worldedit-bukkit-7.3.0.jar:?]
        at com.sk89q.worldedit.extent.AbstractDelegateExtent.setBiome(AbstractDelegateExtent.java:109) ~[worldedit-bukkit-7.3.0.jar:?]
        at com.sk89q.worldedit.extent.validation.DataValidatorExtent.setBiome(DataValidatorExtent.java:88) ~[worldedit-bukkit-7.3.0.jar:?]
        at com.sk89q.worldedit.EditSession.setBiome(EditSession.java:700) ~[worldedit-bukkit-7.3.0.jar:?]
        at com.sk89q.worldedit.function.biome.BiomeReplace.apply(BiomeReplace.java:66) ~[worldedit-bukkit-7.3.0.jar:?]
        at com.sk89q.worldedit.function.visitor.RegionVisitor.resume(RegionVisitor.java:60) ~[worldedit-bukkit-7.3.0.jar:?]
        at com.sk89q.worldedit.function.operation.Operations.completeLegacy(Operations.java:55) ~[worldedit-bukkit-7.3.0.jar:?]
        at com.sk89q.worldedit.command.BiomeCommands.setBiome(BiomeCommands.java:195) ~[worldedit-bukkit-7.3.0.jar:?]
        at com.sk89q.worldedit.command.BiomeCommandsRegistration.cmd$_setbiome(BiomeCommandsRegistration.java:171) ~[worldedit-bukkit-7.3.0.jar:?]
        at org.enginehub.piston.CommandManager.execute(CommandManager.java:157) ~[worldedit-bukkit-7.3.0.jar:?]
        at com.sk89q.worldedit.extension.platform.PlatformCommandManager.handleCommand(PlatformCommandManager.java:506) ~[worldedit-bukkit-7.3.0.jar:?]
        at com.sk89q.worldedit.util.eventbus.MethodHandleEventHandler.dispatch(MethodHandleEventHandler.java:51) ~[worldedit-bukkit-7.3.0.jar:?]
        at com.sk89q.worldedit.util.eventbus.EventHandler.handleEvent(EventHandler.java:73) ~[worldedit-bukkit-7.3.0.jar:?]
        at com.sk89q.worldedit.util.eventbus.EventBus.dispatch(EventBus.java:193) ~[worldedit-bukkit-7.3.0.jar:?]
        at com.sk89q.worldedit.util.eventbus.EventBus.post(EventBus.java:181) ~[worldedit-bukkit-7.3.0.jar:?]
        at com.sk89q.worldedit.bukkit.WorldEditPlugin.onCommand(WorldEditPlugin.java:386) ~[worldedit-bukkit-7.3.0.jar:?]
        at com.sk89q.bukkit.util.DynamicPluginCommand.execute(DynamicPluginCommand.java:55) ~[worldedit-bukkit-7.3.0.jar:?]
        at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:155) ~[paper-api-1.20.4-R0.1-SNAPSHOT.jar:?]
        at org.bukkit.craftbukkit.v1_20_R3.CraftServer.dispatchCommand(CraftServer.java:999) ~[paper-1.20.4.jar:git-Paper-461]
        at org.bukkit.craftbukkit.v1_20_R3.command.BukkitCommandWrapper.run(BukkitCommandWrapper.java:64) ~[paper-1.20.4.jar:git-Paper-461]
        at com.mojang.brigadier.context.ContextChain.runExecutable(ContextChain.java:73) ~[brigadier-1.2.9.jar:?]
        at net.minecraft.commands.execution.tasks.ExecuteCommand.execute(ExecuteCommand.java:32) ~[paper-1.20.4.jar:git-Paper-461]
        at net.minecraft.commands.execution.tasks.ExecuteCommand.execute(ExecuteCommand.java:19) ~[paper-1.20.4.jar:git-Paper-461]
        at net.minecraft.commands.execution.UnboundEntryAction.lambda$bind$0(UnboundEntryAction.java:8) ~[paper-1.20.4.jar:git-Paper-461]
        at net.minecraft.commands.execution.CommandQueueEntry.a(CommandQueueEntry.java:5) ~[paper-1.20.4.jar:git-Paper-461]
        at net.minecraft.commands.execution.ExecutionContext.runCommandQueue(ExecutionContext.java:101) ~[paper-1.20.4.jar:git-Paper-461]
        at net.minecraft.commands.Commands.executeCommandInContext(Commands.java:434) ~[?:?]
        at net.minecraft.commands.Commands.performCommand(Commands.java:336) ~[?:?]
        at net.minecraft.commands.Commands.performCommand(Commands.java:323) ~[?:?]
        at net.minecraft.server.network.ServerGamePacketListenerImpl.performChatCommand(ServerGamePacketListenerImpl.java:2230) ~[?:?]
        at net.minecraft.server.network.ServerGamePacketListenerImpl.lambda$handleChatCommand$14(ServerGamePacketListenerImpl.java:2190) ~[?:?]
        at net.minecraft.util.thread.BlockableEventLoop.lambda$submitAsync$0(BlockableEventLoop.java:59) ~[?:?]
        at java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1768) ~[?:?]
        at net.minecraft.server.TickTask.run(TickTask.java:18) ~[paper-1.20.4.jar:git-Paper-461]
        at net.minecraft.util.thread.BlockableEventLoop.doRunTask(BlockableEventLoop.java:153) ~[?:?]
        at net.minecraft.util.thread.ReentrantBlockableEventLoop.doRunTask(ReentrantBlockableEventLoop.java:24) ~[?:?]
        at net.minecraft.server.MinecraftServer.doRunTask(MinecraftServer.java:1465) ~[paper-1.20.4.jar:git-Paper-461]
        at net.minecraft.server.MinecraftServer.d(MinecraftServer.java:194) ~[paper-1.20.4.jar:git-Paper-461]
        at net.minecraft.util.thread.BlockableEventLoop.pollTask(BlockableEventLoop.java:126) ~[?:?]
        at net.minecraft.server.MinecraftServer.pollTaskInternal(MinecraftServer.java:1442) ~[paper-1.20.4.jar:git-Paper-461]
        at net.minecraft.server.MinecraftServer.pollTask(MinecraftServer.java:1365) ~[paper-1.20.4.jar:git-Paper-461]
        at net.minecraft.util.thread.BlockableEventLoop.managedBlock(BlockableEventLoop.java:136) ~[?:?]
        at net.minecraft.server.MinecraftServer.waitUntilNextTick(MinecraftServer.java:1343) ~[paper-1.20.4.jar:git-Paper-461]
        at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:1232) ~[paper-1.20.4.jar:git-Paper-461]
        at net.minecraft.server.MinecraftServer.lambda$spin$0(MinecraftServer.java:319) ~[paper-1.20.4.jar:git-Paper-461]
        at java.lang.Thread.run(Thread.java:840) ~[?:?]

Expected Behavior

No exceptions will occur and the biome is correctly set to "plains".

Reproduction Steps

  1. Select the custom biome block
  2. Enter the command: //setbiome plains

Anything Else?

No response

commented

Bukkit API doesn't report custom biomes, so we can't support them.

commented

So is there no way to change the biome then with world edit?
I'm experiencing the exact issue - however I used Terra to generate my world instead of TerraformGen.

commented

No, because Bukkit doesn't let us know about them.

commented

dupe #1538