Photon-GitHub / AntiCheatAddition

An anticheat with nieche checks to cover cheats usually not covered by anticheats.
GNU General Public License v3.0
154 stars 43 forks source link

🔴 | ESP /command +tab not return player name which was hidden #652

Open Regomy opened 3 months ago

Regomy commented 3 months ago

Esp check hide a player, for example Rejomy, when i try to use /msg re +tab, i can't get Rejomy's name

Photon-GitHub commented 3 months ago

This is expected due to how spigot's hidePlayer functions. Not sure if I will try to fix that.

Regomy commented 3 months ago

This is expected due to how spigot's hidePlayer functions. Not sure if I will try to fix that.

Have you thought about intercepting Server.PACKET_TAB and adding hidden players nickname to it as needed?

Photon-GitHub commented 3 months ago

The tablist is already modified by sending a custom tablist packet. However, the tabcompletion of minecraft is vastly different across different versions, especially 1.8.8. Even if I implemented it, it would likely only be available for newer versions.

Chevels commented 3 months ago

This is expected due to how spigot's hidePlayer functions. Not sure if I will try to fix that.

Hello, Same problem here, but this affects all commands requiring a player to be connected. The names of the players are therefore not proposed in commands, UNLESS the player is visible. Even if we write the player's nickname ourselves the command does not work. For example, players can no longer send each other PMs, mods can no longer kick or mute players because they are considered not connected. This did not happen under protocolllib, since ACA uses packetevents, the ESP has become too efficient and breaks all the commands + the tablist so suffice to say that the ESP has become useless and unusable on a server in production :/

Without correction no one will really be able to use ESP anymore, yet it is one of the most interesting functions of ACA (for my server at least).

One of my mods made this video to illustrate the commands + tablist problem: https://github.com/Photon-GitHub/AntiCheatAddition/assets/8831222/7edc93dc-bb8f-4dcf-8c43-664d60a42703

The scale of the problem is also visible here. Client stats shows 0 unique players connected during the day, except there were dozens of players connected): image

Photon-GitHub commented 3 months ago

This is expected due to how spigot's hidePlayer functions. Not sure if I will try to fix that.

Hello, Same problem here, but this affects all commands requiring a player to be connected. The names of the players are therefore not proposed in commands, UNLESS the player is visible. Even if we write the player's nickname ourselves the command does not work. For example, players can no longer send each other PMs, mods can no longer kick or mute players because they are considered not connected. This did not happen under protocolllib, since ACA uses packetevents, the ESP has become too efficient and breaks all the commands + the tablist so suffice to say that the ESP has become useless and unusable on a server in production :/

Without correction no one will really be able to use ESP anymore, yet it is one of the most interesting functions of ACA (for my server at least).

One of my mods made this video to illustrate the commands + tablist problem: https://github.com/Photon-GitHub/AntiCheatAddition/assets/8831222/7edc93dc-bb8f-4dcf-8c43-664d60a42703

The scale of the problem is also visible here. Client stats shows 0 unique players connected during the day, except there were dozens of players connected): image

This has nothing to do with PacketEvents / ProtocolLib. ACA now uses the hidePlayer() function of Spigot because this allows for API stability, as in, ESP no longer needs lots of changes when a new Minecraft version is released. I could maybe change the tab events, but that might cause incompatibilities with vanish or rename plugins, as me adding the player name to the tablist might counteract the removal from such plugins.

I have submitted a proposal for a new API in Spigot to cover that, but it has not been added yet, even after 1 year has passed. The issue: https://hub.spigotmc.org/jira/browse/SPIGOT-7272

Chevels commented 3 months ago

This is expected due to how spigot's hidePlayer functions. Not sure if I will try to fix that.

Hello, Same problem here, but this affects all commands requiring a player to be connected. The names of the players are therefore not proposed in commands, UNLESS the player is visible. Even if we write the player's nickname ourselves the command does not work. For example, players can no longer send each other PMs, mods can no longer kick or mute players because they are considered not connected. This did not happen under protocolllib, since ACA uses packetevents, the ESP has become too efficient and breaks all the commands + the tablist so suffice to say that the ESP has become useless and unusable on a server in production :/ Without correction no one will really be able to use ESP anymore, yet it is one of the most interesting functions of ACA (for my server at least). One of my mods made this video to illustrate the commands + tablist problem: https://github.com/Photon-GitHub/AntiCheatAddition/assets/8831222/7edc93dc-bb8f-4dcf-8c43-664d60a42703 The scale of the problem is also visible here. Client stats shows 0 unique players connected during the day, except there were dozens of players connected): image

This has nothing to do with PacketEvents / ProtocolLib. ACA now uses the hidePlayer() function of Spigot because this allows for API stability, as in, ESP no longer needs lots of changes when a new Minecraft version is released. I could maybe change the tab events, but that might cause incompatibilities with vanish or rename plugins, as me adding the player name to the tablist might counteract the removal from such plugins.

I have submitted a proposal for a new API in Spigot to cover that, but it has not been added yet, even after 1 year has passed. The issue: https://hub.spigotmc.org/jira/browse/SPIGOT-7272

It's a shame that they don't do anything about it because as it stands, with this method the ESP is useless and breaks too many things to be able to be used :/ I hope a solution will be found.

If you think it might be useful, I can sign up at hub.spigotmc.org and leave a comment (?). if others do it too it could perhaps bring this problem to the fore.

Chevels commented 1 month ago

Hello ! Any news or hope to see ESP feature repaired ? :/

Photon-GitHub commented 1 month ago

The issue has seen no updates so far. https://hub.spigotmc.org/jira/browse/SPIGOT-7272?filter=-2 I could replicate the old system again, but only with very high maintenance and adjustments for every new minecraft version. Therefore, I don’t want to implement it without a proper Spigot API.

Chevels commented 1 month ago

The issue has seen no updates so far. https://hub.spigotmc.org/jira/browse/SPIGOT-7272?filter=-2 I could replicate the old system again, but only with very high maintenance and adjustments for every new minecraft version. Therefore, I don’t want to implement it without a proper Spigot API.

:/ And Paper didn't get around this problem?

Photon-GitHub commented 1 month ago

Not that I know of. However, even if it did, I could not really use it given that my plugin is hosted on spigotmc.org. I don't think you can upload plugins that only work on a fork.

Not to mention the guaranteed support nightmare of telling people that they have to switch to a fork with paper API support.