-
Notifications
You must be signed in to change notification settings - Fork 289
Player duplicates on tab when using redis for cross-server global playerlist #1630
Description
Server version
1.21.10
TAB version
5.5.0
Plugin list
Just TAB, I have tested it on clean servers and the issue is still there.
Describe the bug
I have connected 3 servers together using REDIS method, redis is connected successfully on all 3, without TAB bridge. When players are switching servers, there is sometimes a bug which causes duplication issues on tablist.
What I tried:
- I have tried to switching on and off different config lines, including use-online-uuid-in-tablist, scoreboard-teams, and tablist-name-formatting. Nothing really helps.
- I'm sure I don't get any errors in errors.log, anti-override.log, or placeholder-errors.log.
- I have correctly set server-name in each subserver config to a different value, I tested it with %tab_placeholder_server% to make sure they are different on each.
- No I cannot use proxy mode, as I'm using proxy-as-a-service, so it's not velocity nor bungee. Shouldn't matter as REDIS method is independent from proxy.
Expected behavior
Well, players shouldn't duplicate on tablist. Everything else works pretty well on this config, maybe there are some minor issues with sorting but nothing too crazy.
Steps to reproduce
- Have 3 separate servers connected with REDIS method, let's say s-1 s-2 and s-3 servers.
- start with 2 players connected to s-1
- First player is just sitting on s-1
- Second player switches server from s-1 to s-2
- tablist is still working fine for both players
- now, second player switches server from s-2 to s-3.
- tablist is correct for second player, but the first (who is sitting on s-1) has duplicate name of second player on tablist. Like he didin't get info that second player disconnected from s-2, but get info that he connected to s-3. /tab reload is not fixing it. First player must change server to fix duplication on its tablist. But it will happen again.
- When second player switches server back to s-1, one of the entries will change, but the duplicated one persists.
Additional info
Here is some visual explanation after doing reproduce steps from above. Tablist for player "Dagrond" who was switching servers - correct view. (don't mind the lunar client logo, it is client-side)
Tablist for player "Dnorgad" which was sitting all the time on s-1 server:
Now, let "Dagrond" switch server back from s-3 to s-1. One of the entries will get updated, but the second one is still there for "Dnorgad":
Note that I've added tabsuffix for debug purposes, with server names. It is happening without it aswell.
I have empty groups.yml.
My config.yml (same on all 3 servers except the first line):
server-name: 's-1'
header-footer:
enabled: true
designs:
default:
header:
- '<gradient:#FFFFFF:#09FF00:#FFFFFF><st><b> '
- 'WIP'
- 'will do soon'
- ''
footer:
- ''
- 'just a footer example'
- '<gradient:#FFFFFF:#09FF00:#FFFFFF><st><b> '
tablist-name-formatting:
enabled: true
disable-condition: ''
scoreboard-teams:
enabled: true
enable-collision: true
invisible-nametags: false
sorting-types:
- GROUPS:owner,admin,vip,default
case-sensitive-sorting: true
can-see-friendly-invisibles: false
disable-condition: ''
playerlist-objective:
enabled: false
value: '%ping%'
fancy-value: '&7Ping: %ping%'
title: TAB
render-type: INTEGER
disable-condition: '%world%=disabledworld'
belowname-objective:
enabled: false
value: '%health%'
title: '&cHealth'
fancy-value: '&c%health%'
fancy-value-default: NPC
disable-condition: '%world%=disabledworld'
prevent-spectator-effect:
enabled: true
bossbar:
enabled: true
toggle-command: /bossbar
remember-toggle-choice: false
hidden-by-default: false
bars:
vanish:
style: PROGRESS
color: WHITE
progress: '100'
text: '&f&lW ukryciu'
display-condition: '%sayanvanish_vanished%=true'
scoreboard:
enabled: false
toggle-command: /sb
remember-toggle-choice: false
hidden-by-default: false
delay-on-join-milliseconds: 0
scoreboards:
scoreboard-1.20.3+:
title: <#E0B11E>MyServer</#FF0000>
display-condition: '%player-version-id%>=765;%bedrock%=false'
lines:
- '&7%date%'
- '%animation:MyAnimation1%'
- '&6Online:'
- '* &eOnline&7:||%online%'
- '* &eCurrent World&7:||%worldonline%'
- '* &eStaff&7:||%staffonline%'
- ''
- '&6Personal Info:'
- '* &bRank&7:||%group%'
- '* &bPing&7:||%ping%&8ms'
- '* &bWorld&7:||%world%'
- '%animation:MyAnimation1%'
scoreboard:
title: <#E0B11E>MyServer</#FF0000>
lines:
- '&7%date%'
- '%animation:MyAnimation1%'
- '&6Online:'
- '* &eOnline&7: &f%online%'
- '* &eCurrent World&7: &f%worldonline%'
- '* &eStaff&7: &f%staffonline%'
- ''
- '&6Personal Info:'
- '* &bRank&7: &f%group%'
- '* &bPing&7: &f%ping%&8ms'
- '* &bWorld&7: &f%world%'
- '%animation:MyAnimation1%'
layout:
enabled: false
direction: COLUMNS
default-skin: mineskin:37e93c8e12cd426cb28fce31969e0674
enable-remaining-players-text: true
remaining-players-text: '... and %s more'
empty-slot-ping-value: 1000
layouts:
default:
fixed-slots:
- '1|&3Website&f:'
- 2|&bmyserver.net
- '3|&8&m '
- '4|&3Name&f:'
- 5|&b%player%
- '7|&3Rank&f:'
- '8|Rank: %group%'
- '10|&3World&f:'
- 11|&b%world%
- '13|&3Time&f:'
- 14|&b%time%
- '21|&3Teamspeak&f:'
- 22|&bts.myserver.net
- '23|&8&m '
- '41|&3Store&f:'
- 42|&bshop.myserver.net
- '43|&8&m '
groups:
staff:
slots:
- 24-40
display-condition: permission:tab.staff
players:
slots:
- 44-80
ping-spoof:
enabled: false
value: 0
global-playerlist:
enabled: true
display-others-as-spectators: true
display-vanished-players-as-spectators: true
isolate-unlisted-servers: false
update-latency: false
spy-servers: []
server-groups:
main: []
placeholders:
date-format: dd.MM.yyyy
time-format: '[HH:mm:ss / h:mm a]'
time-offset: 10
register-tab-expansion: true
placeholder-output-replacements:
conditions:
placeholder-refresh-intervals:
default-refresh-interval: 1500
'%server_uptime%': 1000
'%server_tps_1_colored%': 1000
'%server_unique_joins%': 5000
'%player_health%': 200
'%player_ping%': 1000
'%vault_prefix%': 1000
'%rel_factionsuuid_relation_color%': 1000
assign-groups-by-permissions: false
primary-group-finding-list:
- Owner
- Admin
- Mod
- Helper
- default
permission-refresh-interval: 3000
debug: false
mysql:
enabled: false
host: 127.0.0.1
port: 3306
database: tab
username: user
password: password
useSSL: true
proxy-support:
enabled: true
type: REDIS
plugin:
name: RedisBungee
redis:
url: redis://:my_redis_pass@my_server_ip:6379/0
rabbitmq:
exchange: plugin
url: amqp://guest:guest@localhost:5672/%2F
channel-name-suffix: TAB
components:
minimessage-support: true
disable-shadow-for-heads: true
config-version: 5
per-world-playerlist:
enabled: false
allow-bypass-permission: false
ignore-effect-in-worlds:
- ignoredworld
- build
shared-playerlist-world-groups:
lobby:
- lobby1
- lobby2
minigames:
- paintball
- bedwars
compensate-for-packetevents-bug: false
use-bukkit-permissions-manager: false
use-online-uuid-in-tablist: true
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