NEZNAMY / TAB

"That" TAB plugin.
Apache License 2.0
904 stars 246 forks source link

Placeholders are parsed incorrectly #1318

Closed RealKomander closed 5 months ago

RealKomander commented 5 months ago

Server version

purpur 1.20.4

TAB version

4.1.6

Plugin list

image

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

1) select any placeholder that depends on player's permissions 2) put this placeholder in 1st player's prefix 3) remove this permission from the 2nd player 4) 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

NEZNAMY commented 5 months ago

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.

RealKomander commented 5 months ago

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!