TAB icon indicating copy to clipboard operation
TAB copied to clipboard

some usernames appear as white/unformatted

Open quiquelhappy opened this issue 5 months ago • 2 comments

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 image

Expected behavior

use fallback __DEFAULT__ formatting.

Steps to reproduce

  1. 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

quiquelhappy avatar Sep 05 '24 13:09 quiquelhappy