jbredwards / Fluidlogged-API

A mod for Minecraft that adds basic fluidlogging to 1.12, and serves a base or optional api for other mod devs to use in their own projects.
25 stars 10 forks source link

Sponge incompatibility: An Unexpected Journey (Pt4) #130

Closed Druwan-ctrl closed 1 year ago

Druwan-ctrl commented 1 year ago

Maybe we should keep this open and, now that the code runs, just send me a file to test?

After the events of part 3, the sponge console still returns this debug log

jbredwards commented 1 year ago

Maybe we should keep this open and, now that the code runs, just send me a file to test?

Good idea lol, does this work?

Druwan-ctrl commented 1 year ago

It did something

jbredwards commented 1 year ago

did you load it with the file I attached? It's not the same as the release on curse, the file I attached removes the mixin transform causing the crash with BlockStaticLiquid. If you did load it with the file attached, can you send a log with the "debugASMPlugins" option set to true in this mod's config?

jbredwards commented 1 year ago

just learned that I can install the spongeforge mod without setting up a server, so now I'm gonna do that, I'll send you the mod to test when I don't get any crashes. Why does spongeforge need to have so many mixin conflicts lol?

jbredwards commented 1 year ago

does this work?

Druwan-ctrl commented 1 year ago

Just loaded it on the server and it runs! But there is a problem. I can log in, then the chunks begin to load, and then the server crashes:

Description: Exception ticking world

java.lang.NoSuchMethodError: git.jbredwards.fluidlogged_api.mod.asm.plugins.modded.PluginBiomesOPlenty$Hooks.getBOPFluidOrAir(Lnet/minecraft/world/World;Lnet/minecraft/util/math/BlockPos;Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/block/state/IBlockState; at biomesoplenty.common.fluids.blocks.BlockQuicksandFluid.checkForMixing(BlockQuicksandFluid.java:73) at biomesoplenty.common.fluids.blocks.BlockQuicksandFluid.func_176213_c(BlockQuicksandFluid.java:55) at org.spongepowered.common.event.tracking.context.BlockTransaction$ChangeBlock.process(BlockTransaction.java:464) at org.spongepowered.common.event.tracking.context.MultiBlockCaptureSupplier.processTransactions(MultiBlockCaptureSupplier.java:729) at org.spongepowered.common.event.tracking.TrackingUtil.performBlockAdditions(TrackingUtil.java:594) at org.spongepowered.common.event.tracking.TrackingUtil.processBlockCaptures(TrackingUtil.java:463) at org.spongepowered.common.event.tracking.TrackingUtil.processBlockCaptures(TrackingUtil.java:392) at org.spongepowered.common.event.tracking.phase.tick.BlockTickPhaseState.unwind(BlockTickPhaseState.java:141) at org.spongepowered.common.event.tracking.phase.tick.BlockTickPhaseState.unwind(BlockTickPhaseState.java:61) at org.spongepowered.common.event.tracking.PhaseTracker.completePhase(PhaseTracker.java:319) at org.spongepowered.common.event.tracking.PhaseContext.close(PhaseContext.java:618) at org.spongepowered.common.event.tracking.TrackingUtil.randomTickBlock(TrackingUtil.java:311) at net.minecraft.world.WorldServer.func_147456_g(WorldServer.java:3815) at net.minecraft.world.WorldServer.func_72835_b(WorldServer.java:225) at net.minecraft.server.MinecraftServer.func_71190_q(MinecraftServer.java:756) at net.minecraft.server.dedicated.DedicatedServer.func_71190_q(DedicatedServer.java:397) at net.minecraft.server.MinecraftServer.func_71217_p(MinecraftServer.java:668) at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:526) at java.lang.Thread.run(Thread.java:748)

It restarts, I log in anc can explore more but a lot of chunks seem to trigger this error, maybe all. From the look of it, since i can see more chunks every time, it looks like it "fixes" itself, but I have a veeery large world and can't count how many restarts this would be

Druwan-ctrl commented 1 year ago

The good thing is this doesn't look like a sponge error anymore. Before the crash in the debug I see a LOT of this:

[11:19:34] [Server thread/WARN] [net.minecraft.tileentity.TileEntity]: Skipping BlockEntity with id fluidlogged_api:te

EDIT: upon further testing I can tell it doesn't "fix" itself, I just loaded different chunks without noticing. In some chunks the error causes and instant crash

EDIT2: I thought that maybe some chunks didn't have any waterlogged block, so I created one with a slab and I could visually see the slab entering the water like vanilla and before it could get waterlogged the server crashed

jbredwards commented 1 year ago

Implemented spongeforge fix in v1.9.0.2, also fixed the new crash. The server warning indicates that this mod's datafixer is not being applied, can you send your full log? The datafixer is responsible for converting old legacy fluidlogged_te fluid blocks (from v1.6.2) to FluidStates (added in v1.7).

Druwan-ctrl commented 1 year ago

Tested and everything works, now the only thing that remains are the legacy blocks giving problems. I logged in and explored (after such a long time it was amazing) and noticed that most of the legacy blocks are invisible. If I try to replace them i get this strange bug:

2022-11-29_11 45 38

The opaque block you see was already replaced, but I can't put normal water on it and, even stranger, if I remove the block that I placed to cover the water, the old water is still there and begins to flow. I can send you the full log but it contains sensible information, where can I send it in private?

embeddedt commented 1 year ago

Odd. I hope Sponge supports datafixers, otherwise it sounds like a good reason not to use Sponge.

Druwan-ctrl commented 1 year ago

Ok, it seems it was just my protection plugin! I disabled it and run a dynmap fullrender to update all the worlds, so I don't have to figure out what identifier the datafixer uses. I think you can close this! I just have a visual bug but I will investigate it further and open another issue