Using SpongeForge makes moveable objects vanish
TheRealDadbeard opened this issue ยท 14 comments
https://hastebin.com/okunalotep.rb
spongeforge-1.12.2-2838-7.1.7-RC3817
forge-1.12.2-14.23.5.2838-universal
CreativeCore_v1.9.45_mc1.12.2
LittleTiles_v1.5.0-pre135_mc1.12.2
After using a door it moves but then just completely vanishes like you can walk through it
Of course here ya go
latest.log
debug.log
hmm so i have one mod that needs forge 2826 but there is none sponge for that exact forge version wth can I do now??
and another one need 2831 ......
I don't know looks like spongeforge changed something about their api. I will look into it and try to fix it, but I can't release a new version at the moment (will probably take a few more days).
it's fine i will run through some versions and see if something changes if not live with it for now as it's not a big of a concern right now i just want to open that one to the public inside of my community thats only why I even use sponge
Sponge is undergoing an overall Mixin cleanup, along with a majority of the interfaces used and how they're applied and one of the earlier changes that started the whole kickoff effectively moved/renamed/refactored several of the IMixinFoo
interfaces.
Please note that the bridge interfaces are not meant to serve as API or as versioned API.
It is likely the last version of SpongeForge that will be compatible with CreativeCore is SpongeForge 1.12.2-2838-7.1.7-RC3785 based on this commit fixing world uuid and naming.
For the developer:
If you want to rely on SpongeCommon, we do have distributable dev jars available on our maven:
https://repo.spongepowered.org/maven
and the dependency: org.spongepowered:spongecommon:1.12.2-7.1.6
(or 1.12.2-7.1.7-SNAPSHOT
if you want the latest and greatest, that can change with binary breakages as you've seen, because again, it's implementation, not meant to be used as an API, you can see what versions are available here)
I had to use this IMixinWorld interface otherwise sponge would crash due to my fake worlds. I will look at the new code and figure out how to fix it.
possible, how old are we talking? couple nightlies or major jump? gonna try out some older nightlies
like 7.16? oof gonna have a look but maybe some of my mods have higher forge version requirements i think
otherwise sponge would crash due to my fake worlds
How else more do you want Sponge to detect a fake world? If the WorldInfo is fake, or there's some other identifiable way short of saying "It's exactly like a WorldServer, but it has a different method override than a normal WorldServer" like whether your fake worlds are registrered with the DimensionManager, or something, we need to know... Using the interfaces as you are is just silly because it doesn't expose any of the information for Sponge or other developers or server owners to know beforehand that those interfaces are being used/depended on as a pseudo api.
There's the right way to do things and I hate to be the person to say that this isn't one of them. At the very least, versioning the dependency for sanity checks and maybe logging a warning would've been prudent.
Those fakeworlds are used for my doors. Every door creates a fakeworld, basically they are subworlds and no dimensions. I was very surprised spongeforge did even crash, because I use this world for placing blocks only setBlock, getBlock, etc. (everything else is handled externally).
Nonetheless sponge crashed because it expected the interface IMixinWorldServer
to be implemented, so I added it for the world on sever side (source). The world for the server does not even extend WorldServer because that would cause lots of issues.
It's very messy code, but necessary to perform the stuff I want to do. I didn't know this interface is considered a pseudo api (how should I even know that). I haven't looked at the new code yet, but if there is a better way to do so just let me know.
I don't want to annoy anyone of you, I just wanted make my mod support sponge.