Placeholders are parsed incorrectly
RealKomander opened this issue · 2 comments
Server version
purpur 1.20.4
TAB version
4.1.6
Plugin list
Describe the bug
My plugin initializes %dc_% placeholders that return assigned value only if player has a certain permission. This works fine everywhere except for TAB, because TAB parses placeholders depending on a player they're assigned to - not the player that sees them
(this part was too complicated, I think steps to reproduce the problem describe it clearly enough)
Steps to reproduce
- select any placeholder that depends on player's permissions
- put this placeholder in 1st player's prefix
- remove this permission from the 2nd player
- 2nd player still sees the prefix of the 1st player, because 1st player has this permission and TAB parses it based on the player from the list, not the receiver
Additional info
I couldn't find a feature to change this behaviour. I hope that it exists
Checklist
- I am running latest version of the plugin
- I have read the wiki to make sure it's not an issue with configuration
- I ticked all of the boxes without actually reading them
- I have read the Compatibility wiki page and am not trying to run the plugin on an unsupported server version / platform
- I am willing to cooperate to get this issue resolved faster, including providing any additional information requested or testing new builds
Placeholders are parsed for player they are displayed on. If you want to see different prefix of a player based on whether you have a permission or not, you are looking for relational placeholders. This is not a bug, placeholder parsing works in the only logical way it can work.
I managed to get it working with relational placeholders. I still believe that functionality of relational and normal placeholders should be reversed, but that's the silent complaint to PAPI
Anyways, thanks for leading me into the right direction!