Skip to content

Rewrite Hurricane as a multiplatform per-player collision fix - #42

Open
darkcupid412 wants to merge 5 commits into
GeyserMC:masterfrom
darkcupid412:rewrite
Open

Rewrite Hurricane as a multiplatform per-player collision fix#42
darkcupid412 wants to merge 5 commits into
GeyserMC:masterfrom
darkcupid412:rewrite

Conversation

@darkcupid412

@darkcupid412 darkcupid412 commented Jul 19, 2026

Copy link
Copy Markdown

This PR unifies Hurricane and Hurricane-Modded into a single project and replaces the reflection-based collision hack with a per-player fix.

Instead of reflectively zeroing bamboo and pointed dripstone's shared collision shapes (which also affected Java players and mobs), each Bedrock player uses the collision box rendered by their client, calculated from Bedrock's position offset. Java players and mobs retain vanilla collision.

  • On Fabric and NeoForge, mixins alter collision handling in BambooStalkBlock and PointedDripstoneBlock, returning the translated Bedrock collision box when the collision context belongs to a Bedrock player.
  • On Paper and Folia, block collision shapes cannot be changed per player. PlayerFailMoveEvent therefore allows movement rejected only by the vanilla collision box, while a PlayerMoveEvent guard prevents movement through the translated Bedrock collision boxes.

This rewrite raises the minimum supported Paper version from 1.14 to 1.20.5. Fabric and NeoForge currently target only 26.2.
Tested on Paper 1.20.5, 1.21.10, and 26.2; Folia 26.1.2; Fabric 26.2; and NeoForge 26.2.

Note: AI assistant was used while working on this PR, but the final reviews are done by me. ;p

Replaces the reflection-based global shape mutation with per-player Bedrock
collision for bamboo and pointed dripstone across Paper, Folia, Fabric, and
NeoForge. Java players and mobs keep vanilla collision. Bedrock detection via
local Geyser or backend Floodgate.

@onebeastchris onebeastchris left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hello! Thanks for the PR. Not entirely done reviewing, it is a bit larger in scope; but should be a good start

Comment thread .github/workflows/build-workflow.yml
Comment thread .github/workflows/build-workflow.yml Outdated
Comment thread buildSrc/build.gradle.kts
Comment on lines +13 to +19
dependencies {
implementation(files(libs.javaClass.superclass.protectionDomain.codeSource.location))
implementation(libs.architectury.plugin.library)
implementation(libs.architectury.loom.plugin)
implementation(libs.shadow.plugin)
implementation(libs.minotaur)
}

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Odd formatting?

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What's looking off exactly?

Comment thread platform-fabric/src/main/resources/fabric.mod.json Outdated
Comment thread platform-modded-common/src/main/resources/hurricane.mixins.json Outdated
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants