TerraformersMC / Campanion

A camping companion mod that adds items and utilities to improve your life away from home
GNU Lesser General Public License v3.0
81 stars 31 forks source link

placing tent crashes game and caused server to become impossible to join, singleplayer world crashes and will no longer launch and keeps crashing after placing tent #107

Closed SweepSwap closed 3 years ago

SweepSwap commented 3 years ago

every time i join the server it says timed out now, the error code i got before was: The game crashed whilst tent rendering block entity Error: java.lang.NoSuchFieldError: field_20954 Exit Code: -1

SweepSwap commented 3 years ago

the mods i am using are Terrestria, Biome Makeover, Better Nether, Campanion, Traverse, Fabric Tool Attribute API (v1), BYG, Cinderscapes, Better End, phosphor, lithium, and immersive portals. We are also using hwyla, mod menu, optifabric, first person model, and dynamic sound filters on the client-side, and lithium is not on the client-side due to an incompatibility with optifabric on the client side

Prospector commented 3 years ago

OptiFine is most likely the issue here, but it might also be you're using the wrong version for whatever Minecraft version you're running

ejektaflex commented 3 years ago

This is definitely OptiFabric. I have the same issue.

Full error:

java.lang.NoSuchFieldError: field_20954
    at com.terraformersmc.campanion.client.util.TentPreviewImmediate.method_22994(TentPreviewImmediate.java:32)
    at net.minecraft.class_4597$class_4598.getBuffer(class_4597.java:77)
    at com.terraformersmc.campanion.client.renderer.item.BuiltTentItemRenderer.renderFakeBlock(BuiltTentItemRenderer.java:48)
    at com.terraformersmc.campanion.client.renderer.item.BuiltTentItemRenderer.lambda$render$1(BuiltTentItemRenderer.java:40)
    at java.util.HashMap.forEach(Unknown Source)
    at com.terraformersmc.campanion.client.renderer.item.BuiltTentItemRenderer.render(BuiltTentItemRenderer.java:37)
    at net.minecraft.class_761.handler$zhd000$render(class_761.java:4142)
    at net.minecraft.class_761.method_22710(class_761.java:1637)
    at net.minecraft.class_757.method_3188(class_757.java:1022)
    at net.minecraft.class_757.method_3192(class_757.java:693)
    at net.minecraft.class_310.method_1523(class_310.java:1048)
    at net.minecraft.class_310.method_1514(class_310.java:681)
    at net.minecraft.client.main.Main.main(Main.java:215)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at net.fabricmc.loader.game.MinecraftGameProvider.launch(MinecraftGameProvider.java:226)
    at net.fabricmc.loader.launch.knot.Knot.init(Knot.java:139)
    at net.fabricmc.loader.launch.knot.KnotClient.main(KnotClient.java:27)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.multimc.onesix.OneSixLauncher.launchWithMainClass(OneSixLauncher.java:196)
    at org.multimc.onesix.OneSixLauncher.launch(OneSixLauncher.java:231)
    at org.multimc.EntryPoint.listen(EntryPoint.java:143)
    at org.multimc.EntryPoint.main(EntryPoint.java:34)

Using the Canvas Renderer, the issue goes away (but in Canvas, the tent is not transparent).

This is with Campanion 1.3.3 and Minecraft 1.16.5.

Note: It only crashes clientside when it tries to render the preview. The server is fine, OptiFabric users simply can't use OptiFabric when placing tents. Somebody else has to be the tent placer / breaker.

A good solution (well, besides fixing the issue, but that might be difficult given how Optifine works) would to be to have an option for whether or not to render previews, as well as maybe a floating green checkmark by the cursor when the placement is valid. Then, even OptiFabric users could still use Campanion.

Prospector commented 3 years ago

Nothing we can do about OptiFine unfortunately

ejektaflex commented 3 years ago

Okay, how about the solutions that were presented? They would be nice quality of life features, even for those not using OptiFine.

Prospector commented 3 years ago

Can you open a separate issue for adding a config to disable the tent placement preview?