SpongePowered / Sponge

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

Compatibility Issue with Bountiful and Kotlin #3642

Closed uwuscutely closed 2 years ago

uwuscutely commented 2 years ago

Affected Product(s)

SpongeForge

Version

1.16.5-36.2.5-8.0.0-RC1081

Operating System

Linux

Java Version

Java 11

Plugins/Mods

https://bin.bloom.host/raw/kuvadolehu

Describe the bug

Server crashes on startup and mod fails to load correct with Sponge loaded.

Link to logs

https://bin.bloom.host/dexeremiwa.rb

gabizou commented 2 years ago

Unable to be fixed. KotlinForForge explicitly casts an interface to a concrete expected type here and SpongeForge utilizes it's own implementation of an IEventBus (that doesn't extend EventBus).

There is a possible workaround but it's not clean or something I'd like to support/maintain moving forward. The whole point of Forge exposing the interface is to... expose the interface. A mod depending on the implementation of an interface to be the same isn't a smart thing to do (and this is why this issue arises).

The harder part is that the mod already made the necessary changes in 1.17+ versions of the mod, so it's not likely to get any fixes for 1.16 :/

uwuscutely commented 2 years ago

Issue opened on Kotlin repo. Fix for 1.16 might be coming, not 100% sure

thedarkcolour commented 2 years ago

If I manage to get it working the fix will also work all the way back until 1.14.