Open Syntaxvgm opened 1 year ago
Hi @Syntaxvgm thanks for the info. I'll investigate this :)
Initial research suggests this may be some sort of thing coming from one of your plugins. I'm also not able to test stuff today, though, so I'm relying on feedback from folks I trust who know about these things.
Hello if this is still an issue I think it may be of value to use something like https://github.com/wisp-forest/gadget to check the contents of one of these player info update packets. For context, this warn is triggered on the client when player info update is received, but the client has not previously received a player info update packet with an add player. For context, here's the decompiled function that sends this (yarn mappings):
throws on client from:
@Override
public void onPlayerList(PlayerListS2CPacket packet) {
PlayerListEntry lv2;
NetworkThreadUtils.forceMainThread(packet, this, this.client);
for (PlayerListS2CPacket.Entry lv : packet.getPlayerAdditionEntries()) {
lv2 = new PlayerListEntry(lv.profile(), this.isSecureChatEnforced());
if (this.playerListEntries.putIfAbsent(lv.profileId(), lv2) != null) continue;
this.client.getSocialInteractionsManager().setPlayerOnline(lv2);
}
for (PlayerListS2CPacket.Entry lv : packet.getEntries()) {
lv2 = this.playerListEntries.get(lv.profileId());
if (lv2 == null) {
LOGGER.warn("Ignoring player info update for unknown player {}", (Object)lv.profileId());
continue;
}
for (PlayerListS2CPacket.Action lv3 : packet.getActions()) {
this.handlePlayerListAction(lv3, lv, lv2);
}
}
}
from packet class:
public List<Entry> getPlayerAdditionEntries() {
return this.actions.contains((Object)Action.ADD_PLAYER) ? this.entries : List.of();
}
So I assume what is happening is VNP is probably stopping the initial packet that would add the player to the tab list, but some plugin likely using NMS is directly sending packets that update info for your player.
You could probably figure out what plugin is causing this by removing half your plugins except VNP, and seeing if the spam occurs. If it does, then continue to use half of that group. Otherwise use the other half. Continue to narrow down by half until you find the plugin responsible.
Also here's the general structure of this packet: https://wiki.vg/Protocol#Player_Info_Update
Since updating to 1.19.3, I've been getting log spam and I didn't think much of it at first, assumed it was a client side mod and I'd fix it later. I later realized while yes it was my uuid, it was showing in the log window for my alt. I always have an OP account logged in to be able to tab over and solve an issue, and the second account is survival with no permissions. I've tested this using a vanilla second account sandboxed using multimc. Somehow Vanish no packet is indeed sending some kind of packet to every other client on the server, as how else would it show the UUID of everyone vanished. This is sent to everyone BUT the person in vanish, so you may need 2 accounts to reproduce.
Multiple people in vanish just makes it spam faster. The issue for me isn't that it's showing whos online in the console, it's just that I'm sending about 5 logs a second to players. Players on my server all report the issue when I asked about it as well.
I don't have the time right now to mess with this on a cleaner server and see if any plugins are the cause, but I will check back if I find something out this week. I am running Paper version 442 and the latest version of VanishNoPacket
Permissions for players in vanish are as follows- vanish.effects.bats false vanish.effects.explode false vanish.effects.flames false vanish.effects.smoke false vanish.effects.lightning false vanish.silentjoin true vanish.silentquit false All else true under * true rule.