if (!this.level.getBlockState(this.worldPosition.below((int)Math.ceil((double)newOffset))).canBeReplaced()) {
In this code, even though canBeReplaced returns true, the original obtained through @ModifyExpressionValue is also true
Not only that.
return original&&canThrough
canThrough is false, which should theoretically return false, but is actually true
I'm not exactly sure what you mean but i sincerely doubt it's a bug. Export the target class and play around with the debugger and join the discord if you're confused by something.
if (!this.level.getBlockState(this.worldPosition.below((int)Math.ceil((double)newOffset))).canBeReplaced()) {
In this code, even though canBeReplaced returns true, the original obtained through @ModifyExpressionValue is also true Not only that.return original&&canThrough
canThrough is false, which should theoretically return false, but is actually true