Player & entity nametags no longer appearing after plugin reload
Rattle189 opened this issue ยท 11 comments
Type of bug
Other
TabList version
5.6.3
Software version
git-paper-386
Relevant plugins
- AdvancedNMotd
- AngelChest
- ChestSort
- Chunky
- ColoredAnvils
- ColoredSigns
- DiscordSRV
- EssentialsX
- EssentialsXProtect
- floodgate
- Geyser-Spigot
- InvUnload
- LuckPerms
- PartyChat
- PlaceholderAPI
- ProtocolLib
- SpigotPing
- TabList
- Vault
Console error (if applicable)
No response
TabList configuration files
`hook:
# Hook to PlaceholderAPI to use custom placeholders.
placeholderapi: true
# Fake players that can be added to the player list.
fake-players:
enabled: false
# Do we count the added fake players to the %online-players% placeholder?
count-fake-players-to-online-players: false
# If enabled, the gray color will not appear to other players when the player's game mode is spectator.
# The gray color will only show for the spectator player.
# Requires ProtocolLib!
remove-gray-color-from-tab-in-spectator: false
# true - does not count vanished players in %online-players% placeholder.
# Requires Essentials, SuperVanish, PremiumVanish or CMI plugin!
ignore-vanished-players-in-online-players: false
# true - count vanished staff in %staff-online% placeholder,
# but they need to have "tablist.onlinestaff" permission set.
# false - does not count vanished staff in the %staff-online% placeholder
# Requires Essentials, SuperVanish, PremiumVanish or CMI plugin!
count-vanished-staffs: true
# Hide player from player list when a player is AFK?
# Requires Essentials or CMI plugin!
hide-player-from-tab-when-afk: false
# Hide all players from the player list?
# This removes all players from the player list, but the player that has the
# group set is retained as it is not changed during removal, so your group
# will be restored if this option is disabled.
# Requires ProtocolLib to fix view distance issue! (https://github.com/montlikadani/TabList/issues/147)
hide-players-from-tablist: false
# Different player list in different world.
per-world-player-list:
enabled: false
# You can specify worlds, which will share the same list of players
world-groups:
# The key name, can be anything
example1:
- exampleWorld
- exampleAnotherWorld
exampleGroup2:
- exampleWorld2
- exampleAnotherWorld2
# Placeholders formatting
placeholder-format:
# When the player changes the AFK status, change his tablist name format?
afk-status:
enable: false
# Should the AFK format display in right or left side?
# true - displays in right side
# false - displays in left side
show-in-right-or-left-side: true
# Show player's group if the player is AFK?
show-player-group: true
# Format when the player is AFK.
format-yes: '&7 [AFK]&r '
# Format when the player is not AFK.
format-no: ''
# Sort AFK players to the bottom of the player list?
sort-last: false
time:
# Time zones: https://www.mkyong.com/java/java-display-list-of-timezone-with-gmt/
# Or google it: "what is my time zone"
time-zone: GMT0
# Use system default time zone instead of searching for that?
use-system-zone: false
# Formats/examples: https://docs.oracle.com/javase/8/docs/api/java/text/SimpleDateFormat.html
# Format of %server-time% placeholder.
time-format: mm:HH
# Format of %date% placeholder.
date-format: dd/MM/yyyy
# Ping color format for %ping% placeholder.
ping:
enable: true
# https://github.com/montlikadani/TabList/wiki/Ping-or-tps-formatting
formats:
- '&a%ping% <= 200'
- '&6%ping% >= 200'
- '&c%ping% > 500'
# TPS color format for %tps% placeholder.
tps:
enable: true
# https://github.com/montlikadani/TabList/wiki/Ping-or-tps-formatting
formats:
- '&a%tps% > 18.0'
- '&6%tps% == 16.0'
- '&c%tps% < 16.0'
# How many numbers do you want to display after "." in %tps% placeholder?
# The number should be higher than 0.
# Example: 3 = 19.14
size: 2
# Memory bar settings for %memory_bar% variable
memory-bar:
char: '|'
size: 80
colors:
used: '&c'
free: '&a'
# When the server memory less than 80
allocation: '&e'
# When the server memory is on critical level (less than 40) and some resource need memory to run.
released: '&6'
# Enable changing of prefix & suffix in player list?
change-prefix-suffix-in-tablist:
enable: true
# Refresh interval in server ticks.
# Set to 0 if you don't want to refresh the groups.
# If 0, then you will need to execute the /tl reload command to refresh the groups.
refresh-interval: 4
# Disable groups in these worlds.
disabled-worlds:
# Use the list as whitelist?
use-as-whitelist: false
list:
- myWorldWithUpper
# Automatically add groups from another plugins to the tablist groups.yml on every reload?
# If a plugin does not support Vault, it will not be added.
sync-plugins-groups-with-tablist: true
# Hide player's group in player list when the player is vanished?
# Requires Essentials, SuperVanish, PremiumVanish or CMI plugin!
hide-group-when-player-vanished: false
# Do you want to assign global group to normal groups?
# true - "globalGroupPrefix + normalGroupPrefix"
# false - "normalGroupPrefix"
assign-global-group-to-normal: false
# Prefer player's primary Vault group when assigning tablist group from groups.yml?
# true - player will be assigned their primary vault group where possible
# false - applies the group that has the higher priority in the permission plugin
prefer-primary-vault-group: true
# Tablist objective types
# Shows your current health (with life indicator), your current ping or any NUMBER placeholder
# after the player's name (before the ping indicator).
tablist-object-type:
# Types:
# none - disables tablist objects
# ping - player's ping
# health - player's health
# custom - custom placeholder
type: ping
# Interval for objects refreshing in seconds.
refresh-interval: 3
# In these worlds the objects will not be displayed
disabled-worlds:
- testingWorld
# Objective settings
object-settings:
# The player's health - displayed after the player's name.
health:
# For these players the health will not be displayed
restricted-players:
- exampleplayer
- players
# Custom placeholder - accepts only number-ending placeholders, like %level%
custom:
value: '%level%'
# Check for updates?
check-update: true
# Download new releases to "releases" folder?
# This only works if the "check-update" is true.
download-updates: false
# Log plugin messages to console?
logconsole: true
Bug description
An issue that has been plaguing my Paper 1.18.2 server in these past few days is that player and entity nametags have disappeared, even if a server restart is done. I have disabled the plugins 1-by-1 and reset all the .yml
files in the server's root directory. I discovered the problem was caused by TabList itself when I went to disable the plugin, and then deleted all its configuration files and have it generate new ones. Once the server restarted with the default configuration files, I did /tl reload
and the issue returned.
I haven't touched the scoreboard feature ever since it was released in Minecraft. By any chance this scoreboard team is caused/created by the plugin?
Hi, I'm sorry for the late reply because my friends were still doing something so I couldn't forcibly restart the server.
Output from scoreboard objectives list
:
Output from scoreboard players list
:
This error was printed in the console:
[00:33:42 ERROR]: Packet encoding of packet ID 15 threw (skippable? true) io.netty.handler.codec.EncoderException: String too big (was 10047652 bytes encoded, max 262144) at net.minecraft.network.FriendlyByteBuf.writeUtf(FriendlyByteBuf.java:577) ~[?:?] at net.minecraft.network.FriendlyByteBuf.writeComponent(FriendlyByteBuf.java:368) ~[?:?] at net.minecraft.network.protocol.game.ClientboundChatPacket.write(ClientboundChatPacket.java:49) ~[?:?] at net.minecraft.network.PacketEncoder.encode(PacketEncoder.java:41) ~[paper-1.18.2.jar:git-Paper-386] at net.minecraft.network.PacketEncoder.encode(PacketEncoder.java:14) ~[paper-1.18.2.jar:git-Paper-386] at jdk.internal.reflect.GeneratedMethodAccessor43.invoke(Unknown Source) ~[?:?] at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:?] at java.lang.reflect.Method.invoke(Unknown Source) ~[?:?] at com.viaversion.viaversion.util.PipelineUtil.callEncode(PipelineUtil.java:93) ~[ViaVersion-4.3.2-SNAPSHOT.jar:?] at com.viaversion.viaversion.bukkit.handlers.BukkitEncodeHandler.encode(BukkitEncodeHandler.java:71) ~[ViaVersion-4.3.2-SNAPSHOT.jar:?] at io.netty.handler.codec.MessageToByteEncoder.write(MessageToByteEncoder.java:107) ~[netty-all-4.1.68.Final.jar:4.1.68.Final] at io.netty.channel.AbstractChannelHandlerContext.invokeWrite0(AbstractChannelHandlerContext.java:717) ~[netty-all-4.1.68.Final.jar:4.1.68.Final] at io.netty.channel.AbstractChannelHandlerContext.invokeWrite(AbstractChannelHandlerContext.java:709) ~[netty-all-4.1.68.Final.jar:4.1.68.Final] at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:792) ~[netty-all-4.1.68.Final.jar:4.1.68.Final] at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:702) ~[netty-all-4.1.68.Final.jar:4.1.68.Final] at io.netty.handler.codec.MessageToByteEncoder.write(MessageToByteEncoder.java:120) ~[netty-all-4.1.68.Final.jar:4.1.68.Final] at io.netty.channel.AbstractChannelHandlerContext.invokeWrite0(AbstractChannelHandlerContext.java:717) ~[netty-all-4.1.68.Final.jar:4.1.68.Final] at io.netty.channel.AbstractChannelHandlerContext.invokeWriteAndFlush(AbstractChannelHandlerContext.java:764) ~[netty-all-4.1.68.Final.jar:4.1.68.Final] at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:790) ~[netty-all-4.1.68.Final.jar:4.1.68.Final] at io.netty.channel.AbstractChannelHandlerContext.writeAndFlush(AbstractChannelHandlerContext.java:758) ~[netty-all-4.1.68.Final.jar:4.1.68.Final] at io.netty.channel.DefaultChannelPipeline.writeAndFlush(DefaultChannelPipeline.java:1020) ~[netty-all-4.1.68.Final.jar:4.1.68.Final] at io.netty.channel.AbstractChannel.writeAndFlush(AbstractChannel.java:311) ~[netty-all-4.1.68.Final.jar:4.1.68.Final] at com.comphenix.protocol.injector.netty.channel.NettyChannelProxy.writeAndFlush(NettyChannelProxy.java:227) ~[ProtocolLib.jar:?] at com.comphenix.protocol.injector.netty.channel.NettyChannelProxy.writeAndFlush(NettyChannelProxy.java:233) ~[ProtocolLib.jar:?] at net.minecraft.network.Connection.doSendPacket(Connection.java:462) ~[?:?] at net.minecraft.network.Connection.lambda$writePacket$11(Connection.java:436) ~[?:?] at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:164) ~[netty-all-4.1.68.Final.jar:4.1.68.Final] at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:469) ~[netty-all-4.1.68.Final.jar:4.1.68.Final] at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:500) ~[netty-all-4.1.68.Final.jar:4.1.68.Final] at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:986) ~[netty-all-4.1.68.Final.jar:4.1.68.Final] at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) ~[netty-all-4.1.68.Final.jar:4.1.68.Final] at java.lang.Thread.run(Unknown Source) ~[?:?]
Here are the datapacks we use for the server (all just world generation):
https://www.planetminecraft.com/data-pack/terralith-overworld-evolved-100-biomes-caves-and-more/
https://www.planetminecraft.com/data-pack/better-mineshafts/
https://www.planetminecraft.com/data-pack/better-underwater-ruins-underwater-cities-and-cave-structures/
https://www.planetminecraft.com/data-pack/nullscape/
https://www.planetminecraft.com/data-pack/incendium-nether-expansion/
You probably have a scoreboard team created which has visibility hidden option.
The objectives are mostly from the datapacks as they include custom world generation, like it creates dungeons and stuff in the nether with custom bosses and enemies. The PKWAST
entries are from the PK Waystones datapack (https://www.planetminecraft.com/data-pack/waystones-a-fast-way-to-travel-in-your-world-with-waypoints/)
The above error is coming from ViaVersion through ProtocolLib, the only datapack that uses aboveName is waystones
, but this probably not have any visibility set, so I guess. Can you run team list
command and send the output here?
The only solution that could solve this issue is to create a new option to determine if the groups should display the player's name tag or follow the visibility setting that has been set. This allows the user to choose whether or not the name tags in the tablist group follow the set visibility. So there is currently no way for you to resolve this.
That is unfortunate, I will see if I can do some kind of workaround the problem. I noticed however that Bedrock clients connected to the server (via Geyser) can still see entity nametags. I'll let you know if I find some kind of fix for this, thank you for your time!
In the above attached commit there will be a new option added to config to control if the name tags above player will be always visible or not if there is any team with visibility hidden. You can install the newest build from Actions page, select first one and find Artifacts.