Chisels & Bits - For Fabric

Chisels & Bits - For Fabric

2M Downloads

NoSuchMethodError on server join

Forecaster opened this issue ยท 10 comments

commented

The Railcraft Patreon server crashes when I join after I randomly clicked the ground while running along the surface.

Stacktrace:

java.lang.NoSuchMethodError: mod.chiselsandbits.chiseledblock.TileEntityBlockChiseled.isSideOpaque(Lnet/minecraft/util/EnumFacing;)Z
	at mod.chiselsandbits.chiseledblock.BlockChiseled.doesSideBlockRendering(BlockChiseled.java:204)
	at li.cil.tis3d.api.prefab.module.AbstractModule.isVisible(AbstractModule.java:155)
	at li.cil.tis3d.common.module.ModuleExecution.sendPartialState(ModuleExecution.java:326)
	at li.cil.tis3d.common.module.ModuleExecution.step(ModuleExecution.java:112)
	at li.cil.tis3d.common.machine.CasingImpl.stepModules(CasingImpl.java:119)
	at li.cil.tis3d.common.tileentity.TileEntityCasing.stepModules(TileEntityCasing.java:208)
	at java.util.ArrayList.forEach(ArrayList.java:1249)
	at li.cil.tis3d.common.tileentity.TileEntityController.step(TileEntityController.java:520)
	at li.cil.tis3d.common.tileentity.TileEntityController.func_73660_a(TileEntityController.java:358)
	at net.minecraft.world.World.func_72939_s(World.java:1804)
	at net.minecraft.world.WorldServer.func_72939_s(WorldServer.java:620)
	at net.minecraft.server.MinecraftServer.func_71190_q(MinecraftServer.java:709)
	at net.minecraft.server.dedicated.DedicatedServer.func_71190_q(DedicatedServer.java:387)
	at net.minecraft.server.MinecraftServer.func_71217_p(MinecraftServer.java:613)
	at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:471)
	at java.lang.Thread.run(Thread.java:745)

No clue why TIS-3D is involved in this. We've been using both mods for months with no issues. After this happened I tried updating C&B from 12.12 to 12.16 but it didn't change anything.

For any bug reports please provide the following,

  • MC Version: 1.10.2
  • C&B Version: 12.16
  • Do You have Optifine: No
commented

It's very strange then. I was running about in the middle of nowhere, I have no TIS controllers in the area, the crash happened just as I clicked the ground, which is why it felt relevant.

I'd guess either someone has hidden a controller in the area near my base, which I'm not sure why anyone would do, or one is chunkloaded somewhere, but then it probably would've crashed earlier.

commented

TIS-3D is responsible for the call to doesSideBlockRendering, the method isn't necessarily client side only...

Its happening during an updateEntities check. So your running and clicking really has nothing to do with the issue at hand, but rather just that there is a TIS-3D Controller next to a C&B Block.

@fnuecke Whats your take on this? I'm no necessarily opposed to a patch that would make doesSideBlockRendering return false on the server, but I am curious if you've seen any other issues with other mods. But I guess that method is probably sparsely implemented.

I feel a little silly for making it server side since I was the one that wrote doesSideBlockRendering in the first place...

commented

Please try https://www.dropbox.com/s/68ycsiw5bmuudnd/chiselsandbits-14.0.jar?dl=1 and see if that resolves the issue.

commented

Oh.. sorry that's a 1.12 build... I'll have to backport it..

commented

Hey, sorry for the slow reaction. Haven't had reports of this before, but TIS-3D is quite the niche mod. I'm using this on the server side to check if I actually have to send a packet to the client; this method looked like exactly what I needed, but I understand why it might actually be considered client only (given it says 'rendering' in the name). If you know of a better way to make that check with, please do let me know!
(In more detail: TIS-3D generates particles when data is transmitted over an edge, this check can reduce the number of notifications for these events having to be sent to clients a lot -- depending on the way the TIS-3D computer is build ofc.)

commented

Yeah, I don't know of any better way. Since that is the only method that defines that behavior specifically. Even though its my fault for not making it a client side method, since its not client side only; It makes sense that it works on the server.

Which is why I've gone ahead and tried to fix the crash. I can see how that behavior could be useful on the server as your using it, but since that method is only called from forge on the client it could come up again.

I don't know of anyone other then myself that implements it however, but I guess only time will tell.

commented

Well, it broke Extra Bit Manipulation apparently, which now says it needs Chisel & Bits 12.11 or above to run.

commented

Try this, https://www.dropbox.com/s/pgy11cvyvqu1cj5/chiselsandbits-12.13.jar?dl=1 I adjusted the build number so it shouldn't complain anymore...

commented

Looks like it's working now, I can join the server now without it crashing!