WorldEdit

WorldEdit

42M Downloads

Exception while undo

dwknippers opened this issue ยท 8 comments

commented

Platform

  • Minecraft 1.15.2 (fabric-loader-0.8.2+build.194-1.15.2/fabric/Fabric)
  • Fabric-Official(7.1.0;8e55131)

Description (Reproduce)

Worldedit throws class cast exception when attempting to undo a pasted schematic in a single player world using the fabric platform.

Exception stack trace

Full stack trace available here: https://paste.enginehub.org/gidVa9g-V

[21:03:33] [Server thread/ERROR]: Could not dispatch event: com.sk89q.worldedit.event.platform.CommandEvent@528089bf to handler EventHandler{priority=NORMAL}
java.lang.reflect.InvocationTargetException: null
	at com.sk89q.worldedit.util.eventbus.EventHandler.handleEvent(EventHandler.java:75) ~[worldedit-fabric-mc1.15.2-7.1.0.jar:?]
	at com.sk89q.worldedit.util.eventbus.EventBus.dispatch(EventBus.java:193) [worldedit-fabric-mc1.15.2-7.1.0.jar:?]
	at com.sk89q.worldedit.util.eventbus.EventBus.post(EventBus.java:181) [worldedit-fabric-mc1.15.2-7.1.0.jar:?]
	at com.sk89q.worldedit.fabric.CommandWrapper.lambda$register$0(CommandWrapper.java:65) [worldedit-fabric-mc1.15.2-7.1.0.jar:?]
	at com.sk89q.worldedit.fabric.CommandWrapper$$Lambda$3584/1140203729.run(Unknown Source) [worldedit-fabric-mc1.15.2-7.1.0.jar:?]
	at com.mojang.brigadier.CommandDispatcher.execute(CommandDispatcher.java:262) [brigadier-1.0.17.jar:?]
	at com.mojang.brigadier.CommandDispatcher.execute(CommandDispatcher.java:176) [brigadier-1.0.17.jar:?]
	at net.minecraft.class_2170.method_9249(class_2170.java:235) [intermediary-fabric-loader-0.8.2+build.194-1.15.2.jar:?]
	at net.minecraft.class_3244.method_14370(class_3244.java:1083) [intermediary-fabric-loader-0.8.2+build.194-1.15.2.jar:?]
	at net.minecraft.class_3244.method_12048(class_3244.java:1070) [intermediary-fabric-loader-0.8.2+build.194-1.15.2.jar:?]
	at net.minecraft.class_2797.method_12115(class_2797.java:36) [intermediary-fabric-loader-0.8.2+build.194-1.15.2.jar:?]
	at net.minecraft.class_2797.method_11054(class_2797.java:9) [intermediary-fabric-loader-0.8.2+build.194-1.15.2.jar:?]
	at net.minecraft.class_2600.method_11072(class_2600.java:21) [intermediary-fabric-loader-0.8.2+build.194-1.15.2.jar:?]
	at net.minecraft.class_2600$$Lambda$3830/230720802.run(Unknown Source) [intermediary-fabric-loader-0.8.2+build.194-1.15.2.jar:?]
	at net.minecraft.class_3738.run(class_3738.java:18) [intermediary-fabric-loader-0.8.2+build.194-1.15.2.jar:?]
	at net.minecraft.class_1255.method_18859(class_1255.java:144) [intermediary-fabric-loader-0.8.2+build.194-1.15.2.jar:?]
	at net.minecraft.class_4093.method_18859(class_4093.java:23) [intermediary-fabric-loader-0.8.2+build.194-1.15.2.jar:?]
	at net.minecraft.server.MinecraftServer.method_24306(MinecraftServer.java:743) [intermediary-fabric-loader-0.8.2+build.194-1.15.2.jar:?]
	at net.minecraft.server.MinecraftServer.method_18859(MinecraftServer.java:138) [intermediary-fabric-loader-0.8.2+build.194-1.15.2.jar:?]
	at net.minecraft.class_1255.method_16075(class_1255.java:118) [intermediary-fabric-loader-0.8.2+build.194-1.15.2.jar:?]
	at net.minecraft.server.MinecraftServer.method_20415(MinecraftServer.java:725) [intermediary-fabric-loader-0.8.2+build.194-1.15.2.jar:?]
	at net.minecraft.server.MinecraftServer.method_16075(MinecraftServer.java:719) [intermediary-fabric-loader-0.8.2+build.194-1.15.2.jar:?]
	at net.minecraft.class_1255.method_18857(class_1255.java:127) [intermediary-fabric-loader-0.8.2+build.194-1.15.2.jar:?]
	at net.minecraft.server.MinecraftServer.method_16208(MinecraftServer.java:704) [intermediary-fabric-loader-0.8.2+build.194-1.15.2.jar:?]
	at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:659) [intermediary-fabric-loader-0.8.2+build.194-1.15.2.jar:?]
	at java.lang.Thread.run(Thread.java:745) [?:1.8.0_51]
Caused by: java.lang.reflect.InvocationTargetException
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_51]
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_51]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_51]
	at java.lang.reflect.Method.invoke(Method.java:497) ~[?:1.8.0_51]
	at com.sk89q.worldedit.util.eventbus.MethodEventHandler.dispatch(MethodEventHandler.java:58) ~[worldedit-fabric-mc1.15.2-7.1.0.jar:?]
	at com.sk89q.worldedit.util.eventbus.EventHandler.handleEvent(EventHandler.java:73) ~[worldedit-fabric-mc1.15.2-7.1.0.jar:?]
	... 25 more
Caused by: java.lang.ClassCastException: net.minecraft.class_2248 cannot be cast to net.minecraft.class_2185
	at net.minecraft.class_2573.method_11014(class_2573.java:111) ~[intermediary-fabric-loader-0.8.2+build.194-1.15.2.jar:?]
	at com.sk89q.worldedit.fabric.FabricWorld.setBlock(FabricWorld.java:196) ~[worldedit-fabric-mc1.15.2-7.1.0.jar:?]
	at com.sk89q.worldedit.extent.world.FastModeExtent.setBlock(FastModeExtent.java:112) ~[worldedit-fabric-mc1.15.2-7.1.0.jar:?]
	at com.sk89q.worldedit.extent.AbstractDelegateExtent.setBlock(AbstractDelegateExtent.java:80) ~[worldedit-fabric-mc1.15.2-7.1.0.jar:?]
	at com.sk89q.worldedit.extent.world.SurvivalModeExtent.setBlock(SurvivalModeExtent.java:100) ~[worldedit-fabric-mc1.15.2-7.1.0.jar:?]
	at com.sk89q.worldedit.extent.AbstractDelegateExtent.setBlock(AbstractDelegateExtent.java:80) ~[worldedit-fabric-mc1.15.2-7.1.0.jar:?]
	at com.sk89q.worldedit.extent.world.BlockQuirkExtent.setBlock(BlockQuirkExtent.java:63) ~[worldedit-fabric-mc1.15.2-7.1.0.jar:?]
	at com.sk89q.worldedit.extent.AbstractDelegateExtent.setBlock(AbstractDelegateExtent.java:80) ~[worldedit-fabric-mc1.15.2-7.1.0.jar:?]
	at com.sk89q.worldedit.extent.world.ChunkLoadingExtent.setBlock(ChunkLoadingExtent.java:70) ~[worldedit-fabric-mc1.15.2-7.1.0.jar:?]
	at com.sk89q.worldedit.extent.AbstractDelegateExtent.setBlock(AbstractDelegateExtent.java:80) ~[worldedit-fabric-mc1.15.2-7.1.0.jar:?]
	at com.sk89q.worldedit.extent.cache.LastAccessExtentCache.setBlock(LastAccessExtentCache.java:74) ~[worldedit-fabric-mc1.15.2-7.1.0.jar:?]
	at com.sk89q.worldedit.extent.AbstractDelegateExtent.setBlock(AbstractDelegateExtent.java:80) ~[worldedit-fabric-mc1.15.2-7.1.0.jar:?]
	at com.sk89q.worldedit.extent.inventory.BlockBagExtent.setBlock(BlockBagExtent.java:114) ~[worldedit-fabric-mc1.15.2-7.1.0.jar:?]
	at com.sk89q.worldedit.function.operation.SetBlockMap.resume(SetBlockMap.java:47) ~[worldedit-fabric-mc1.15.2-7.1.0.jar:?]
	at com.sk89q.worldedit.extent.reorder.MultiStageReorder$1.resume(MultiStageReorder.java:268) ~[worldedit-fabric-mc1.15.2-7.1.0.jar:?]
	at com.sk89q.worldedit.function.operation.OperationQueue.resume(OperationQueue.java:92) ~[worldedit-fabric-mc1.15.2-7.1.0.jar:?]
	at com.sk89q.worldedit.function.operation.OperationQueue.resume(OperationQueue.java:92) ~[worldedit-fabric-mc1.15.2-7.1.0.jar:?]
	at com.sk89q.worldedit.function.operation.Operations.completeBlindly(Operations.java:74) ~[worldedit-fabric-mc1.15.2-7.1.0.jar:?]
	at com.sk89q.worldedit.EditSession.flushSession(EditSession.java:808) ~[worldedit-fabric-mc1.15.2-7.1.0.jar:?]
	at com.sk89q.worldedit.extension.platform.PlatformCommandManager.handleCommand(PlatformCommandManager.java:532) ~[worldedit-fabric-mc1.15.2-7.1.0.jar:?]
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_51]
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_51]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_51]
	at java.lang.reflect.Method.invoke(Method.java:497) ~[?:1.8.0_51]
	at com.sk89q.worldedit.util.eventbus.MethodEventHandler.dispatch(MethodEventHandler.java:58) ~[worldedit-fabric-mc1.15.2-7.1.0.jar:?]
	at com.sk89q.worldedit.util.eventbus.EventHandler.handleEvent(EventHandler.java:73) ~[worldedit-fabric-mc1.15.2-7.1.0.jar:?]
	... 25 more
[21:04:49] [main/INFO]: [CHAT] Please report this error: [See console]
[21:04:49] [main/INFO]: [CHAT] java.lang.ClassCastException: net.minecraft.class_2248 cannot be cast to net.minecraft.class_2185
[21:04:49] [Server thread/ERROR]: An unexpected error while handling a WorldEdit command
java.lang.ClassCastException: net.minecraft.class_2248 cannot be cast to net.minecraft.class_2185
	at net.minecraft.class_2573.method_11014(class_2573.java:111) ~[intermediary-fabric-loader-0.8.2+build.194-1.15.2.jar:?]
	at com.sk89q.worldedit.fabric.FabricWorld.setBlock(FabricWorld.java:196) ~[worldedit-fabric-mc1.15.2-7.1.0.jar:?]
	at com.sk89q.worldedit.extent.world.FastModeExtent.setBlock(FastModeExtent.java:112) ~[worldedit-fabric-mc1.15.2-7.1.0.jar:?]
	at com.sk89q.worldedit.extent.AbstractDelegateExtent.setBlock(AbstractDelegateExtent.java:80) ~[worldedit-fabric-mc1.15.2-7.1.0.jar:?]
	at com.sk89q.worldedit.extent.world.SurvivalModeExtent.setBlock(SurvivalModeExtent.java:100) ~[worldedit-fabric-mc1.15.2-7.1.0.jar:?]
	at com.sk89q.worldedit.extent.AbstractDelegateExtent.setBlock(AbstractDelegateExtent.java:80) ~[worldedit-fabric-mc1.15.2-7.1.0.jar:?]
	at com.sk89q.worldedit.extent.world.BlockQuirkExtent.setBlock(BlockQuirkExtent.java:63) ~[worldedit-fabric-mc1.15.2-7.1.0.jar:?]
	at com.sk89q.worldedit.extent.AbstractDelegateExtent.setBlock(AbstractDelegateExtent.java:80) ~[worldedit-fabric-mc1.15.2-7.1.0.jar:?]
	at com.sk89q.worldedit.extent.world.ChunkLoadingExtent.setBlock(ChunkLoadingExtent.java:70) ~[worldedit-fabric-mc1.15.2-7.1.0.jar:?]
	at com.sk89q.worldedit.extent.AbstractDelegateExtent.setBlock(AbstractDelegateExtent.java:80) ~[worldedit-fabric-mc1.15.2-7.1.0.jar:?]
	at com.sk89q.worldedit.extent.cache.LastAccessExtentCache.setBlock(LastAccessExtentCache.java:74) ~[worldedit-fabric-mc1.15.2-7.1.0.jar:?]
	at com.sk89q.worldedit.extent.AbstractDelegateExtent.setBlock(AbstractDelegateExtent.java:80) ~[worldedit-fabric-mc1.15.2-7.1.0.jar:?]
	at com.sk89q.worldedit.extent.inventory.BlockBagExtent.setBlock(BlockBagExtent.java:114) ~[worldedit-fabric-mc1.15.2-7.1.0.jar:?]
	at com.sk89q.worldedit.function.operation.SetBlockMap.resume(SetBlockMap.java:47) ~[worldedit-fabric-mc1.15.2-7.1.0.jar:?]
	at com.sk89q.worldedit.extent.reorder.MultiStageReorder$1.resume(MultiStageReorder.java:268) ~[worldedit-fabric-mc1.15.2-7.1.0.jar:?]
	at com.sk89q.worldedit.function.operation.OperationQueue.resume(OperationQueue.java:92) ~[worldedit-fabric-mc1.15.2-7.1.0.jar:?]
	at com.sk89q.worldedit.function.operation.OperationQueue.resume(OperationQueue.java:92) ~[worldedit-fabric-mc1.15.2-7.1.0.jar:?]
	at com.sk89q.worldedit.function.operation.Operations.completeBlindly(Operations.java:74) ~[worldedit-fabric-mc1.15.2-7.1.0.jar:?]
	at com.sk89q.worldedit.EditSession.flushSession(EditSession.java:808) ~[worldedit-fabric-mc1.15.2-7.1.0.jar:?]
	at com.sk89q.worldedit.EditSession.setReorderMode(EditSession.java:319) ~[worldedit-fabric-mc1.15.2-7.1.0.jar:?]
	at com.sk89q.worldedit.LocalSession.prepareEditingExtents(LocalSession.java:999) ~[worldedit-fabric-mc1.15.2-7.1.0.jar:?]
	at com.sk89q.worldedit.LocalSession.undo(LocalSession.java:246) ~[worldedit-fabric-mc1.15.2-7.1.0.jar:?]
	at com.sk89q.worldedit.command.HistoryCommands.undo(HistoryCommands.java:79) ~[worldedit-fabric-mc1.15.2-7.1.0.jar:?]
	at com.sk89q.worldedit.command.HistoryCommandsRegistration.cmd$undo(HistoryCommandsRegistration.java:136) ~[worldedit-fabric-mc1.15.2-7.1.0.jar:?]
	at com.sk89q.worldedit.command.HistoryCommandsRegistration$$Lambda$3383/610991747.run(Unknown Source) ~[?:?]
	at org.enginehub.piston.CommandManager.execute(CommandManager.java:158) ~[worldedit-fabric-mc1.15.2-7.1.0.jar:?]
	at com.sk89q.worldedit.extension.platform.PlatformCommandManager.handleCommand(PlatformCommandManager.java:486) [worldedit-fabric-mc1.15.2-7.1.0.jar:?]
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_51]
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_51]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_51]
	at java.lang.reflect.Method.invoke(Method.java:497) ~[?:1.8.0_51]
	at com.sk89q.worldedit.util.eventbus.MethodEventHandler.dispatch(MethodEventHandler.java:58) [worldedit-fabric-mc1.15.2-7.1.0.jar:?]
	at com.sk89q.worldedit.util.eventbus.EventHandler.handleEvent(EventHandler.java:73) [worldedit-fabric-mc1.15.2-7.1.0.jar:?]
	at com.sk89q.worldedit.util.eventbus.EventBus.dispatch(EventBus.java:193) [worldedit-fabric-mc1.15.2-7.1.0.jar:?]
	at com.sk89q.worldedit.util.eventbus.EventBus.post(EventBus.java:181) [worldedit-fabric-mc1.15.2-7.1.0.jar:?]
	at com.sk89q.worldedit.fabric.CommandWrapper.lambda$register$0(CommandWrapper.java:65) [worldedit-fabric-mc1.15.2-7.1.0.jar:?]
	at com.sk89q.worldedit.fabric.CommandWrapper$$Lambda$3584/1140203729.run(Unknown Source) [worldedit-fabric-mc1.15.2-7.1.0.jar:?]
	at com.mojang.brigadier.CommandDispatcher.execute(CommandDispatcher.java:262) [brigadier-1.0.17.jar:?]
	at com.mojang.brigadier.CommandDispatcher.execute(CommandDispatcher.java:176) [brigadier-1.0.17.jar:?]
	at net.minecraft.class_2170.method_9249(class_2170.java:235) [intermediary-fabric-loader-0.8.2+build.194-1.15.2.jar:?]
	at net.minecraft.class_3244.method_14370(class_3244.java:1083) [intermediary-fabric-loader-0.8.2+build.194-1.15.2.jar:?]
	at net.minecraft.class_3244.method_12048(class_3244.java:1070) [intermediary-fabric-loader-0.8.2+build.194-1.15.2.jar:?]
	at net.minecraft.class_2797.method_12115(class_2797.java:36) [intermediary-fabric-loader-0.8.2+build.194-1.15.2.jar:?]
	at net.minecraft.class_2797.method_11054(class_2797.java:9) [intermediary-fabric-loader-0.8.2+build.194-1.15.2.jar:?]
	at net.minecraft.class_2600.method_11072(class_2600.java:21) [intermediary-fabric-loader-0.8.2+build.194-1.15.2.jar:?]
	at net.minecraft.class_2600$$Lambda$3830/230720802.run(Unknown Source) [intermediary-fabric-loader-0.8.2+build.194-1.15.2.jar:?]
	at net.minecraft.class_3738.run(class_3738.java:18) [intermediary-fabric-loader-0.8.2+build.194-1.15.2.jar:?]
	at net.minecraft.class_1255.method_18859(class_1255.java:144) [intermediary-fabric-loader-0.8.2+build.194-1.15.2.jar:?]
	at net.minecraft.class_4093.method_18859(class_4093.java:23) [intermediary-fabric-loader-0.8.2+build.194-1.15.2.jar:?]
	at net.minecraft.server.MinecraftServer.method_24306(MinecraftServer.java:743) [intermediary-fabric-loader-0.8.2+build.194-1.15.2.jar:?]
	at net.minecraft.server.MinecraftServer.method_18859(MinecraftServer.java:138) [intermediary-fabric-loader-0.8.2+build.194-1.15.2.jar:?]
	at net.minecraft.class_1255.method_16075(class_1255.java:118) [intermediary-fabric-loader-0.8.2+build.194-1.15.2.jar:?]
	at net.minecraft.server.MinecraftServer.method_20415(MinecraftServer.java:725) [intermediary-fabric-loader-0.8.2+build.194-1.15.2.jar:?]
	at net.minecraft.server.MinecraftServer.method_16075(MinecraftServer.java:719) [intermediary-fabric-loader-0.8.2+build.194-1.15.2.jar:?]
	at net.minecraft.class_1255.method_18857(class_1255.java:127) [intermediary-fabric-loader-0.8.2+build.194-1.15.2.jar:?]
	at net.minecraft.server.MinecraftServer.method_16208(MinecraftServer.java:704) [intermediary-fabric-loader-0.8.2+build.194-1.15.2.jar:?]
	at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:659) [intermediary-fabric-loader-0.8.2+build.194-1.15.2.jar:?]
	at java.lang.Thread.run(Thread.java:745) [?:1.8.0_51]
commented

This might be an issue with upstream fabric instead, or with interaction between worldedit and fabric. Posted here for completeness and further analysis.

commented

How does Paper come into this?

Can you post your full log on https://paste.enginehub.org/ and put the link here?

commented

paper and fabric are incompatible platforms. which is it? also the stacktrace is in MC code, not WE code. unsure what those classes map to though...maybe TE issues?

commented

Ah I've missed another exception, full log here: https://paste.enginehub.org/gidVa9g-V.

Edit: Mixed paper and fabric names, excuse me for that.

commented

Root Cause

I've narrowed down the problem, after extensive testing I've found the cause of the problem.

Unfortunately it seems to not be exclusive to my previously created schematic. It seems as if any
created schematic with a banner, will be unable to be undone after pasting.

The following images are added for illustration:

Pasted schematic

Imgur

Manually broken

Once manually broken however it seems as if the banner item does drop, although it is invisible in-game once pasted.

Imgur

Schematic

I've included the created schematic below for testing purposes:

https://send.firefox.com/download/d6e35d855177c03a/#5TiXBcV3Bincg5OwaoAJ5A

commented

Just confirmed that this seems to be occurring in the single-player version mod only (fabric) so far. Bukkit plugins seems to handle it just fine. Feel free to adjust priority accordingly.

commented

can you test this with a dev build from builds.enginehub.org

commented

Confirmed fixed as of Fabric-Official(7.2.0-SNAPSHOT+5011-a2c541b)
Excuse me for the inconvenience.