I had a similar system with Neznamy's tablist named TAB-BukkitBridge
the problem with a system that uses plugin messages to request placeholders is a huge traffic on the player channel.
For example: a player entry needs 4 placeholders. those placeholders are updated every 0.5 seconds.
assuming that you have 400 players (which isn't that many), you'll have 4*2*400=3200 requests per second and plugin messages will occupy a large portion of the traffic.
i am proposing a different approach:
since the requested placeholder identifiers are always the same 4 for every player, you only need to notify bukkit a single time to "subscribe" the placeholder value. if the placeholder value changes, the "bukkit bridge" will provide the updated value
I had a similar system with Neznamy's tablist named TAB-BukkitBridge the problem with a system that uses plugin messages to request placeholders is a huge traffic on the player channel. For example: a player entry needs 4 placeholders. those placeholders are updated every 0.5 seconds. assuming that you have 400 players (which isn't that many), you'll have
4*2*400=3200
requests per second and plugin messages will occupy a large portion of the traffic. i am proposing a different approach: since the requested placeholder identifiers are always the same 4 for every player, you only need to notify bukkit a single time to "subscribe" the placeholder value. if the placeholder value changes, the "bukkit bridge" will provide the updated value