[SPIGOT-6690] BlockTripwire ignores cancellation of BlockPhysicsEvent event Created: 03/Aug/21 Updated: 06/Aug/21 |
|
| Status: | Open |
| Project: | Spigot |
| Component/s: | None |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Type: | Bug | Priority: | Minor |
| Reporter: | LoneDev | Assignee: | Unassigned |
| Resolution: | Unresolved | Votes: | 0 |
| Labels: | 1.17.1 | ||
| Version: | This server is running CraftBukkit version 3208-Spigot-18c71bf-97f629b (MC: 1.17.1) (Implementing API version 1.17.1-R0.1-SNAPSHOT) |
| Plugin: | A simple test plugin that implements BlockPhysicsEvent and cancels it. |
| Guidelines Read: | Yes |
| Description |
|
Seems that the BlockTripwire class doesn't trigger BlockPhysicsEvent at all, I think it's triggered elsewhere, probably in the World class in the notifyAndUpdatePhysics function. The problem is that this limitation makes impossible to cancel powered attribute change when a player stands on the Tripwire or a Tripwire Hook is attached.
You can notice that in the `private void a(World world, BlockPosition blockposition)` method of `BlockTripwire.java` file. No BlockPhysicsEvent triggered, so the blockstate is changed to powered: true/false without any check even if the event is catched and cancelled. |
| Comments |
| Comment by md_5 [ 06/Aug/21 ] |
|
Why physics event? Isn't a redstone or even interact event more appropriate |