mbax / VanishNoPacket

Invisibility for sexy people.
http://dev.bukkit.org/projects/vanish/
GNU General Public License v3.0
135 stars 113 forks source link

1.19.3- Being in vanish causes every other player's log in the server to be constantly spammed. #725

Open Syntaxvgm opened 1 year ago

Syntaxvgm commented 1 year ago

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.

[11:26:29] [Render thread/WARN]: Ignoring player info update for unknown player d3a50cce-de3d-4d1d-b29f-ff08a5e0a581
[11:26:30] [Render thread/WARN]: Ignoring player info update for unknown player d3a50cce-de3d-4d1d-b29f-ff08a5e0a581
[11:26:30] [Render thread/WARN]: Ignoring player info update for unknown player d3a50cce-de3d-4d1d-b29f-ff08a5e0a581
[11:26:30] [Render thread/WARN]: Ignoring player info update for unknown player d3a50cce-de3d-4d1d-b29f-ff08a5e0a581
[11:26:30] [Render thread/WARN]: Ignoring player info update for unknown player d3a50cce-de3d-4d1d-b29f-ff08a5e0a581
[11:26:30] [Render thread/WARN]: Ignoring player info update for unknown player d3a50cce-de3d-4d1d-b29f-ff08a5e0a581
[11:26:31] [Render thread/WARN]: Ignoring player info update for unknown player d3a50cce-de3d-4d1d-b29f-ff08a5e0a581
[11:26:31] [Render thread/WARN]: Ignoring player info update for unknown player d3a50cce-de3d-4d1d-b29f-ff08a5e0a581
[11:26:31] [Render thread/WARN]: Ignoring player info update for unknown player d3a50cce-de3d-4d1d-b29f-ff08a5e0a581
[11:26:31] [Render thread/WARN]: Ignoring player info update for unknown player d3a50cce-de3d-4d1d-b29f-ff08a5e0a581
[11:26:31] [Render thread/WARN]: Ignoring player info update for unknown player d3a50cce-de3d-4d1d-b29f-ff08a5e0a581
[11:26:32] [Render thread/WARN]: Ignoring player info update for unknown player d3a50cce-de3d-4d1d-b29f-ff08a5e0a581
[11:26:32] [Render thread/WARN]: Ignoring player info update for unknown player d3a50cce-de3d-4d1d-b29f-ff08a5e0a581
[11:26:32] [Render thread/WARN]: Ignoring player info update for unknown player d3a50cce-de3d-4d1d-b29f-ff08a5e0a581
[11:26:32] [Render thread/WARN]: Ignoring player info update for unknown player d3a50cce-de3d-4d1d-b29f-ff08a5e0a581
[11:26:32] [Render thread/WARN]: Ignoring player info update for unknown player d3a50cce-de3d-4d1d-b29f-ff08a5e0a581
[11:26:33] [Render thread/WARN]: Ignoring player info update for unknown player d3a50cce-de3d-4d1d-b29f-ff08a5e0a581
[11:26:33] [Render thread/WARN]: Ignoring player info update for unknown player d3a50cce-de3d-4d1d-b29f-ff08a5e0a581
[11:26:33] [Render thread/WARN]: Ignoring player info update for unknown player d3a50cce-de3d-4d1d-b29f-ff08a5e0a581
[11:26:33] [Render thread/WARN]: Ignoring player info update for unknown player d3a50cce-de3d-4d1d-b29f-ff08a5e0a581
[11:26:34] [Render thread/WARN]: Ignoring player info update for unknown player d3a50cce-de3d-4d1d-b29f-ff08a5e0a581
[11:26:34] [Render thread/WARN]: Ignoring player info update for unknown player d3a50cce-de3d-4d1d-b29f-ff08a5e0a581
[11:26:34] [Render thread/WARN]: Ignoring player info update for unknown player d3a50cce-de3d-4d1d-b29f-ff08a5e0a581
[11:26:34] [Render thread/WARN]: Ignoring player info update for unknown player d3a50cce-de3d-4d1d-b29f-ff08a5e0a581
[11:26:34] [Render thread/WARN]: Ignoring player info update for unknown player d3a50cce-de3d-4d1d-b29f-ff08a5e0a581
[11:26:34] [Render thread/WARN]: Ignoring player info update for unknown player d3a50cce-de3d-4d1d-b29f-ff08a5e0a581
[11:26:35] [Render thread/WARN]: Ignoring player info update for unknown player d3a50cce-de3d-4d1d-b29f-ff08a5e0a581
[11:26:35] [Render thread/WARN]: Ignoring player info update for unknown player d3a50cce-de3d-4d1d-b29f-ff08a5e0a581
[11:26:35] [Render thread/WARN]: Ignoring player info update for unknown player d3a50cce-de3d-4d1d-b29f-ff08a5e0a581
[11:26:35] [Render thread/WARN]: Ignoring player info update for unknown player d3a50cce-de3d-4d1d-b29f-ff08a5e0a581
[11:26:35] [Render thread/WARN]: Ignoring player info update for unknown player d3a50cce-de3d-4d1d-b29f-ff08a5e0a581
[11:26:36] [Render thread/WARN]: Ignoring player info update for unknown player d3a50cce-de3d-4d1d-b29f-ff08a5e0a581
[11:26:36] [Render thread/WARN]: Ignoring player info update for unknown player d3a50cce-de3d-4d1d-b29f-ff08a5e0a581
[11:26:36] [Render thread/WARN]: Ignoring player info update for unknown player d3a50cce-de3d-4d1d-b29f-ff08a5e0a581

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.

mbax commented 1 year ago

Hi @Syntaxvgm thanks for the info. I'll investigate this :)

mbax commented 1 year ago

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.

Kas-tle commented 1 year ago

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