Add query modifier for checking acting player info #751
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Let's say you wanted to prevent a player from opening chests unless they're in a specific region (the wool room maybe).
The current way of filtering location on a
block-break
oruse
event target the location of the physical block (which is always in the wool room). In this instance, I want to query the location of the actor (player) rather than the block in question.For this, I have created a
PlayerBlockQueryModifier
which sets focus on the player in the event vs the block. This also slightly modifies the newly created baseQueryModifier
class allowing for unmodified queries to abstain by returning null. In this case, the player within thePlayerQuery
can be null (when offline) so a fallback was required.See the example below where the player can only use items within the yellow wool room if they too are in that region.
Open to suggestions if this can be completed an alternative way (existing XML or improved implementation).
Discussed with Pablo and Simon in Discord so ty for help.