SpongePowered / Sponge

The SpongeAPI implementation targeting vanilla Minecraft and 3rd party platforms.
MIT License
374 stars 210 forks source link

WorldEdit mod malfunctions with SpongeForge present #3811

Open Inscrutable opened 1 year ago

Inscrutable commented 1 year ago

Affected Product(s)

SpongeForge

Version

spongeforge-1.16.5-36.2.5-8.1.0-RC1256-universal

Operating System

Win10

Java Version

1.8.0_351 (Oracle)

Plugins/Mods

spongeforge-1.16.5-36.2.5-8.1.0-RC1256-universal
forge-1.16.5-36.2.39
And I tested:
worldedit-mod-7.2.5
worldedit-mod-7.2.6-SNAPSHOT-dist
worldedit-sponge-api8.1.0-7.2.11

Describe the bug

After editing the mods.toml in the WorldEdit jar file to remove the Sponge mod dependency data, the plugin loaded but did not function properly. Results were the same for WE versions 7.2.5 and 7.2.6. Several issues were found:

(1) The right-click event for the wand tool does not fire. Left click works OK. (2) The majority of the commands don't work. e.g. //pos1, //pos2, //set, /jumpto, ... There's lots of Root command /unknown:replacenear does not have an associated plugin! and similar in the log. (3) I could get a few commands to work but the results were very broken. //extinguish fires but won't put out fires, and the brush tool activates but no changes occur, Instead, the phase tracker says Illegal Direct Chunk Access. This happens only with SpongeForge installed. (4) The Sponge Version of WorldEdit (worldedit-sponge-api8.1.0-7.2.11) won't load in Forge at all, it just gives [com.sk89q.worldedit.world.registry.LegacyMapper/]: Failed to load the built-in legacy id registry java.lang.NoClassDefFoundError: net/minecraft/world/level/block/state/BlockState

Enginehub folks would vastly prefer that the Sponge version of WorldEdit worked on both SpongeVanilla and SpongeForge, The ideal situation would be that SpongeVanilla used the same obfuscation environment as SpongeForge, or at least allowed a way for plugins to work with Forge obfuscation mappings applied - this would allow the Sponge WorldEdit plugin to work on SpongeForge too.

Here's the server log from trying the brush tool, with WE version 7.2.5: 2023-01-10-1.log

Link to logs

No response

Inscrutable commented 1 year ago

For reference, PR #3711 is where 1-3 of this went to roost.

Yeregorix commented 1 year ago

(1) Fixed in #3844

Yeregorix commented 1 year ago

(2) Fixed in #3847

Yeregorix commented 1 year ago

(3) Fixed in #3855

worldedit-forge is now working properly.

mods.toml must still be edited to remove the broken dependency declaration. This has been fixed a while ago by https://github.com/EngineHub/WorldEdit/commit/770350b83133949cd909b07754d1cf5bf20755ed but no official build has been published since.

Yeregorix commented 1 year ago

Here is a ready-to-use version, compiled from official sources without modifications: https://github.com/Yeregorix/WorldEdit/releases/tag/7.2.6-spongeforge

Inscrutable commented 1 year ago

If (4) is unlikely to be resolved, we can close this issue. At least we have WE working on both SpongeAPI8 platforms, even if they happen to be different versions.