TAB
TAB copied to clipboard
some usernames appear as white/unformatted
Server version
BungeeCord-Bootstrap:1.21-R0.1-SNAPSHOT:84ac7ab:1864
TAB version
4.1.8
Plugin list
not needed for this bug report.
Describe the bug
fallback __DEFAULT__
formatting.
we use redisbungee, and redisbungee can sometimes have issues syncronizing players, or underlying services might have issues pulling data from syncronized players (such as luckperms fetching permission data from players on other proxies).
if the permission data or player data can't be pulled, they should at least be using the __DEFAULT__
formatting.
this has been an issue for pretty much an entire year now
Expected behavior
use fallback __DEFAULT__
formatting.
Steps to reproduce
- load players into the server that result in errors while pulling permission data or other player-specific data (easily done with either redisbungee + luckperms try and error, or causing some sort of I/O exception reading player permissions, or fake players pushing mock player data to the proxy)
Additional info
this has been an issue for long now, and it has been happening in all released versions for about a year, probably before that too.
I see this error every now and then on my console, I don't know if its caused by TAB using RedisBungee, or just RedisBungee itself freaking out when this happens - still, a simple try/catch or null result should fallback to __DEFAULT__
and likely show a warning in console for clarification.
Task BungeeTask(sched=net.md_5.bungee.scheduler.BungeeScheduler@38f116f6, id=42983, owner=com.imaginarycode.minecraft.redisbungee.RedisBungee@74c23525, task=com.imaginarycode.minecraft.redisbungee.RedisBungeeListener$$Lambda/0x00000098018da9d8@5507405f, delay=0, period=0, running=true) encountered an exception
java.lang.RuntimeException: java.lang.NullPointerException: null key in entry: null=ce05a8b3-a17f-366b-b494-21fedd26256f
at com.imaginarycode.minecraft.redisbungee.api.PlayerDataManager.serversToPlayersBuilder(PlayerDataManager.java:270)
at com.imaginarycode.minecraft.redisbungee.internal.caffeine.cache.LocalLoadingCache.lambda$newMappingFunction$3(LocalLoadingCache.java:183)
at com.imaginarycode.minecraft.redisbungee.internal.caffeine.cache.BoundedLocalCache.lambda$doComputeIfAbsent$14(BoundedLocalCache.java:2688)
at java.base/java.util.concurrent.ConcurrentHashMap.compute(Unknown Source)
at com.imaginarycode.minecraft.redisbungee.internal.caffeine.cache.BoundedLocalCache.doComputeIfAbsent(BoundedLocalCache.java:2686)
at com.imaginarycode.minecraft.redisbungee.internal.caffeine.cache.BoundedLocalCache.computeIfAbsent(BoundedLocalCache.java:2669)
at com.imaginarycode.minecraft.redisbungee.internal.caffeine.cache.LocalCache.computeIfAbsent(LocalCache.java:112)
at com.imaginarycode.minecraft.redisbungee.internal.caffeine.cache.LocalLoadingCache.get(LocalLoadingCache.java:58)
at com.imaginarycode.minecraft.redisbungee.api.PlayerDataManager.serversToPlayers(PlayerDataManager.java:238)
at com.imaginarycode.minecraft.redisbungee.AbstractRedisBungeeAPI.getServerToPlayers(AbstractRedisBungeeAPI.java:116)
at com.imaginarycode.minecraft.redisbungee.AbstractRedisBungeeAPI.getPlayersOnServer(AbstractRedisBungeeAPI.java:126)
at com.imaginarycode.minecraft.redisbungee.RedisBungeeListener.lambda$onPluginMessage$0(RedisBungeeListener.java:97)
at net.md_5.bungee.scheduler.BungeeTask.run(BungeeTask.java:63)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
at java.base/java.util.concurrent.FutureTask.run(Unknown Source)
at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Unknown Source)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.base/java.lang.Thread.run(Unknown Source)
Caused by: java.lang.NullPointerException: null key in entry: null=ce05a8b3-a17f-366b-b494-21fedd26256f
at com.imaginarycode.minecraft.redisbungee.internal.com.google.common.collect.CollectPreconditions.checkEntryNotNull(CollectPreconditions.java:31)
at com.imaginarycode.minecraft.redisbungee.internal.com.google.common.collect.ImmutableMultimap$Builder.put(ImmutableMultimap.java:171)
at com.imaginarycode.minecraft.redisbungee.api.PlayerDataManager$1.lambda$doPooledPipeline$0(PlayerDataManager.java:254)
at java.base/java.util.HashMap.forEach(Unknown Source)
at com.imaginarycode.minecraft.redisbungee.api.PlayerDataManager$1.doPooledPipeline(PlayerDataManager.java:254)
at com.imaginarycode.minecraft.redisbungee.api.PlayerDataManager$1.doPooledPipeline(PlayerDataManager.java:243)
at com.imaginarycode.minecraft.redisbungee.api.tasks.RedisPipelineTask.unifiedJedisTask(RedisPipelineTask.java:33)
at com.imaginarycode.minecraft.redisbungee.api.tasks.RedisTask.execute(RedisTask.java:59)
at com.imaginarycode.minecraft.redisbungee.api.tasks.RedisTask.call(RedisTask.java:35)
at com.imaginarycode.minecraft.redisbungee.api.PlayerDataManager.serversToPlayersBuilder(PlayerDataManager.java:268)
... 18 more
Checklist
- [X] I am running latest version of the plugin
- [X] 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
- [X] I have read the Compatibility wiki page and am not trying to run the plugin on an unsupported server version / platform
- [X] I am willing to cooperate to get this issue resolved faster, including providing any additional information requested or testing new builds