EngineHub / WorldGuard

🛡️ Protect your Minecraft server and lets players claim areas
https://enginehub.org/worldguard/
Other
833 stars 546 forks source link

Wrong logic when a minecart is hooked by a fishing rod #2152

Closed melvuze closed 2 weeks ago

melvuze commented 1 month ago

WorldEdit Version

7.3.6

WorldGuard Version

7.0.9

Platform Version

git-Paper-497 (MC: 1.20.4)

Confirmations

Bug Description

If you try to hook a minecart in a region with a opening chests flag (CHEST_ACCESS), you will not be able to do this and will receive the message in response: “Sorry, but you cant. open that here.”

Expected Behavior

Instead, it should be possible to hook a minecart and the ban on hooking should be implemented as a new flag. The message should be something like "Sorry, but you can't move that" or something like that.

Reproduction Steps

  1. Create a region with default flags
  2. Remove yourself from it
  3. Try hook a minecart

Optional WorldGuard-Report

No response

Anything Else?

While reviewing the source code, I identified a problem. Apparently, any interaction if the entity is considered a building and is a minecart is considered opening inventory. However, this is not true. The fishing rod hook also execute this code. (RegionProtectionListener line 422) I think it's also worth adding a flag for fishing rod situations. If there are other ways to allow just hooking, please let me know.

wizjany commented 2 weeks ago

this is theoretically fixed (or at least, back to previous behavior). might need a separate vehicle-damage flag in the future to make behavior consistent across different vehicle types (as this issue is unique to chest minecarts, but e.g. #2137 is the same root cause)