T145 / all-the-creepers

Here comes the BOOM!
https://minecraft.curseforge.com/projects/elemental-creepers-redux
Apache License 2.0
7 stars 6 forks source link

[1.12.2/Sponge] Crash on Block-Placing Creeper explosion #13

Open SilverDash opened 6 years ago

SilverDash commented 6 years ago

Expected Behavior

Update:Seems to be specific creepers.

So far Stone and cake creeper cause crashes.

Actual Behavior

Causes server crash.

Steps to Reproduce (including precondition)

spongeapi-7.0.0-shaded spongeforge-1.12.2-2611-7.1.0-BETA-2990

Place any block placing creeper and have him explode

Screenshot of this Problem

Crash report: https://pastebin.com/1KKgP3Ci Full mod list in the link.

Your Environment

T145 commented 6 years ago

This error is caused b/c Sponge hasn’t implemented ‘setPos’ in its version of ‘MutableBlockPos’, which is actually hilarious. I’ll look into what can be done on my end w/out compromising the mod’s current efficiency.

SilverDash commented 6 years ago

Alrighty. I was really confused when I saw that sponge was crashing to this. This is honestly funny. I might want to post a thread in regards to this not existing at the moment. I'll try to look into that too.

For now I'll have to disable the mod but I do hope you can find a workaround. I enjoy the silliness of it.

Thanks.

LuminaSapphira commented 6 years ago

I'm actually also experiencing this issue on a standard Forge (2675) server. Admittedly there are a lot of mods so there might be some ASM tomfoolery. I will do further research and post my findings.

Update Edit: This definitely occurs on its own in a vanilla Forge 2675 server. Crash report found here: https://gist.github.com/CerulanLumina/2ecd08b13b406e7175724144f0c1e949.

More Updates: From some digging I've discovered that in vanilla Minecraft servers, MutableBlockPos doesn't have a setPos overload for an Entity, despite existing on the client. Decompiled Vanilla client: https://i.imgur.com/iawtElY.png Decompiled Vanilla server: https://i.imgur.com/huYQ8G9.png Notch names for classes / methods in question: et - BlockPos et$a - MutableBlockPos et$a/a - setPos vg - Entity

Note the lack of a(vg) on the server. From what I can tell this is a Vanilla anomaly.

Even more updates: For SOME reason this method is set as SideOnly(Side.CLIENT) in the Forge sources. I can only guess why, but it looks like you'll have to forgo using setPos(Entity). It's just a helper method anyway.

            @SideOnly(Side.CLIENT)
            public BlockPos.MutableBlockPos setPos(Entity entityIn)
            {
                return this.setPos(entityIn.posX, entityIn.posY, entityIn.posZ);
            }
T145 commented 6 years ago

Hm quite strange. Thank you for the research @CerulanLumina! I'll look into the problem when graduation and finals hype has settled down.