Skip to content

Conversation

@AnnotationVisitor
Copy link

No description provided.

@booky10
Copy link
Collaborator

booky10 commented Oct 24, 2025

Minecraft itself doesn't see them as solid, is there are any reason for marking them as solid?
In the case of collisions, hanging signs are also not marked as solid and still have collisions

@AnnotationVisitor
Copy link
Author

Minecraft itself doesn't see them as solid, is there are any reason for marking them as solid? In the case of collisions, hanging signs are also not marked as solid and still have collisions

Solid because that's what makes sense, it has almost the same collision box as happy ghast, which is marked solid, not to mention solid=true is what works with grim

@booky10
Copy link
Collaborator

booky10 commented Oct 26, 2025

No, it doesn't make sense, these flags are copied from vanilla

Why is this required for grim? The solid state isn't really used client-side as far as I know
I hope Grim isn't using this to determine whether a block has collisions or not, because thats a separate flag in vanilla (which is not copied by packetevents and is also different for e.g. hanging signs)

@AnnotationVisitor
Copy link
Author

AnnotationVisitor commented Oct 26, 2025

No, it doesn't make sense, these flags are copied from vanilla

Why is this required for grim? The solid state isn't really used client-side as far as I know I hope Grim isn't using this to determine whether a block has collisions or not, because thats a separate flag in vanilla (which is not copied by packetevents and is also different for e.g. hanging signs)

https://github.com/GrimAnticheat/Grim/blob/1b47e31776cd4c4386fd7667f72701d00f4a1156/common/src/main/java/ac/grim/grimac/utils/collisions/CollisionData.java#L1149 seems like issolid is what grim uses to determine whether a given material has collision

@AnnotationVisitor
Copy link
Author

AnnotationVisitor commented Oct 26, 2025

@ManInMyVan thoughts?

@ManInMyVan
Copy link
Contributor

@ManInMyVan thoughts?

add an override

@AnnotationVisitor
Copy link
Author

AnnotationVisitor commented Oct 26, 2025

@ManInMyVan thoughts?

add an override

maybe not better to use isBlocking() or something instead of another if statement? IsSolid iirc is used by minecraft to determine whether a given block can be built on, not if it has collisions

@AnnotationVisitor
Copy link
Author

AnnotationVisitor commented Oct 26, 2025

@booky10 how are these block thingies generated? because for hanging signs in NMS they have .noCollision(), but no flag seems in packet events:

public static final Block BAMBOO_WALL_HANGING_SIGN = register(
		"bamboo_wall_hanging_sign",
		properties -> new WallHangingSignBlock(WoodType.BAMBOO, properties),
		wallVariant(BAMBOO_HANGING_SIGN, true)
			.mapColor(MapColor.COLOR_YELLOW)
			.forceSolidOn()
			.instrument(NoteBlockInstrument.BASS)
			.noCollision()
			.strength(1.0F)
			.ignitedByLava()
	);

if this flag were exposed in packetevents it'd make things easier

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.

4 participants