Fabric Tree Chopper

Fabric Tree Chopper

1M Downloads

Compatibility with 1.16.1 Fabric

NSq1 opened this issue ยท 2 comments

commented

Are you planning to update to 1.16.1?

Currently trying to run on configuration (based on fabric-installer-0.6.1.45) crashes server whenever a tree is cut.

Mods:

  • fabric-api-0.14.0+build.371-1.16.jar
  • fabric-tree-chopper-0.4.1.jar
  • lithium-fabric-mc1.16.1-0.5.0-rc1.jar

stacktrace:

[22:26:08] [Server thread/ERROR]: Encountered an unexpected exception
java.lang.NoSuchMethodError: net.minecraft.class_2680.method_11614()Lnet/minecraft/class_2248;
at com.skaggsm.treechoppermod.LogBlockUtilsKt.tryLogBreak(LogBlockUtilsKt.java:130) ~[fabric-tree-chopper-0.4.1.jar:?]
at net.minecraft.class_1743.method_7879(class_1743.java:530) ~[intermediary-server.jar:?]
at net.minecraft.class_1799.method_7952(class_1799.java:339) ~[intermediary-server.jar:?]
at net.minecraft.class_3225.method_14266(class_3225.java:266) ~[intermediary-server.jar:?]
at net.minecraft.class_3225.method_21717(class_3225.java:222) ~[intermediary-server.jar:?]
at net.minecraft.class_3225.method_14263(class_3225.java:197) ~[intermediary-server.jar:?]
at net.minecraft.class_3244.method_12066(class_3244.java:944) ~[intermediary-server.jar:?]
at net.minecraft.class_2846.method_12361(class_2846.java:40) ~[intermediary-server.jar:?]
at net.minecraft.class_2846.method_11054(class_2846.java:10) ~[intermediary-server.jar:?]
at net.minecraft.class_2600.method_11072(class_2600.java:21) ~[intermediary-server.jar:?]
at net.minecraft.class_3738.run(class_3738.java:18) ~[intermediary-server.jar:?]
at net.minecraft.class_1255.method_18859(class_1255.java:144) ~[intermediary-server.jar:?]
at net.minecraft.class_4093.method_18859(class_4093.java:23) ~[intermediary-server.jar:?]
at net.minecraft.server.MinecraftServer.method_24306(MinecraftServer.java:763) ~[intermediary-server.jar:?]
at net.minecraft.server.MinecraftServer.method_18859(MinecraftServer.java:154) ~[intermediary-server.jar:?]
at net.minecraft.class_1255.method_16075(class_1255.java:118) ~[intermediary-server.jar:?]
at net.minecraft.server.MinecraftServer.method_20415(MinecraftServer.java:745) ~[intermediary-server.jar:?]
at net.minecraft.server.MinecraftServer.method_16075(MinecraftServer.java:739) ~[intermediary-server.jar:?]
at net.minecraft.class_1255.method_5383(class_1255.java:103) ~[intermediary-server.jar:?]
at net.minecraft.server.MinecraftServer.method_16208(MinecraftServer.java:723) ~[intermediary-server.jar:?]
at net.minecraft.server.MinecraftServer.method_29741(MinecraftServer.java:676) ~[intermediary-server.jar:?]
at net.minecraft.server.MinecraftServer.method_29739(MinecraftServer.java:256) ~[intermediary-server.jar:?]
at java.lang.Thread.run(Unknown Source) [?:1.8.0_251]

commented

I dived into code for a bit (first attempt at touching Minecraft mod) and from what I see they (fabric) removed LogBlock around March. Not sure what's a reason for that since the commit that removed it is pretty big and there is no 'newbie' friendly description.

I case you feel like it feel free to cherry-pick my aa6ba70
Another commit on same branch (716869a) contains my attempt at KISS solution to nether 'tree' chopping.
Tested on my server, running smoothly.

Known issues for nether tree chopping:

  • netherwart blocks (tree leaves) are not cut
  • netherwart blocks are interchangeable between stem types when searching for leaves
  • player generated structures are also cut - I don't know how to check if they are naturally generated ATM.
commented

Thanks for giving me a nudge and looking into the new Nether trees! I just released a version for 1.16.1 that mostly works with Nether "logs".

Addressing your known issues:

  • I think I'm going to consider netherwart blocks not being cut as working as intended because the blocks don't decay in Vanilla either.
  • "Leaf" blocks being interchangeable is known even for overworld trees. I don't have a log-to-leaf mapping right now, but it could be an improvement.
  • A lot of discussion about that already happened in #25, which led to the checking of adjacent leaf blocks. If you have a non-invasive solution that works better, I'm open to implementing it!