Skip to content

Commit de9ade8

Browse files
committed
Fix bamboo collision for 1.20.5
1 parent 99a5f77 commit de9ade8

File tree

1 file changed

+4
-1
lines changed

1 file changed

+4
-1
lines changed

spigot/src/main/java/org/geysermc/hurricane/CollisionFix.java

+4-1
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
import org.jetbrains.annotations.Contract;
1313

1414
import java.lang.reflect.*;
15+
import java.util.Arrays;
1516

1617
public final class CollisionFix implements Listener {
1718
private final boolean bambooEnabled;
@@ -33,7 +34,9 @@ public CollisionFix(Plugin plugin, boolean bambooEnabled, boolean pointedDripsto
3334
if (bambooEnabled) {
3435
try {
3536
final Class<?> bambooBlockClass = NMSReflection.getNMSClass("world.level.block", "BlockBamboo");
36-
final Field bambooBoundingBox = ReflectionAPI.getFieldAccessible(bambooBlockClass, NMSReflection.mojmap ? "f" : "c"); // Bounding box for "no leaves", according to Yarn.
37+
// Codec field being first bumps all fields - as of 1.20.5
38+
boolean hasCodec = Arrays.stream(bambooBlockClass.getFields()).anyMatch(field -> field.getType().getSimpleName().equals("MapCodec"));
39+
final Field bambooBoundingBox = ReflectionAPI.getFieldAccessible(bambooBlockClass, hasCodec ? "g" : NMSReflection.mojmap ? "f" : "c"); // Bounding box for "no leaves", according to Yarn.
3740
applyNoBoundingBox(bambooBoundingBox);
3841
plugin.getLogger().info("Bamboo collision hack enabled.");
3942
} catch (Exception e) {

0 commit comments

Comments
 (0)