Skip to content

Commit

Permalink
Fix wrong ActionResult on FabricDoorClaimPermission
Browse files Browse the repository at this point in the history
`ActionResult.SUCCESS` is used to indicate to FabricAPI that *all processing is done*, since it "cancels further processing".

Although it might seem that this is what you want to convey, unfortunately since it cancels ALL further processing, the first callback to get that event from the queue consumes it, and all the logic that should follow that is blocked from ever existing.

The most common (and visible) side effect is the complete inability to place any blocks in the world, even though this permission should only ever check for block interactions not new blocks being placed.

Placing blocks is another permission entirely, and since this is a clear overreach of `FabricDoorClaimPermission`, which should only "Allow the player to open and close doors in the claim."
  • Loading branch information
alikindsys committed Jan 2, 2024
1 parent 0180333 commit 6777110
Showing 1 changed file with 1 addition and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ class FabricDoorClaimPermission: ClaimPermission(
val block = blockState.block

if (block !is DoorBlock && block !is TrapdoorBlock) {
return ActionResult.SUCCESS
return ActionResult.PASS
}

val claim = MineCity.claims[world, clickPos] ?: return ActionResult.PASS
Expand Down

0 comments on commit 6777110

Please sign in to comment.