GeyserMC / Geyser

A bridge/proxy allowing you to connect to Minecraft: Java Edition servers with Minecraft: Bedrock Edition.
https://geysermc.org
MIT License
4.75k stars 686 forks source link

Invisibility Plugins For Java Players Not Hiding Them From Bedrock Players #2209

Open KantoKairyu opened 3 years ago

KantoKairyu commented 3 years ago

Describe the bug

I'm using PremiumVanish on a spigot server, my players can appear invisible in the tablist but not in-game, recently bedrock players have pointed out that they can see these players in the bedrock playerlist even when they are meant to be invisible.

To Reproduce

Use 'PremiumVanish'

Set it so players can appear invisible in all aspects except in direct eyeline visibility

Check playerllist on java by pressing tab - They will not show

Check playerlist on Bedrock, they will appear there on the sidebar

Expected behaviour

I was hoping they would appear offline for bedrock players much the same way they do for Java

Screenshots / Videos

No response

Server Version and Plugins

Spigot

Geyser Dump

No response

Geyser Version

.2.1-SNAPSHOT (git-master-7dc9c03)

Minecraft: Bedrock Edition Version

Bedrock: 1.16.100/1.16.101 - 1.16.220

Additional Context

The problem isn't too difficult, I have also had reports of anvils not working right for my bedrock players but I can't be too sure as I haven't had time to check myself, but yeah, amazing amazing plugin, it would be great though if hidden players from the Java tablist were also hidden to Bedrock players.

Camotoy commented 3 years ago

Unfortunately, as PremiumVanish is... well... premium, we can't test this locally to fix it. If you find a free alternative that exhibits the same issue, please post it here.

KantoKairyu commented 3 years ago

Darn, thank you for the quick reply time. there is a non-premium version but it also lacks the ability to hide the player in tab so I don't suppose that would be good for testing but in case it is: https://www.spigotmc.org/resources/supervanish-be-invisible.1331/

Is there an invis plugin you know works with geyser for tablist?

Also serious thanks for this plugin, my YT community is able to all play together thanks to the bedrock Java gap being bridged :)

Camotoy commented 3 years ago

We use that plugin on our public "testing" server. The Spigot description says it hides invisible players in the player list?

KantoKairyu commented 3 years ago

True but it's the tab list that is hidden in the premium I believe, I think supervanish only greys out their names?

Camotoy commented 3 years ago

That I am not sure of.

KantoKairyu commented 3 years ago

Hmm, it's 10 euros, if you'd like I can buy it for you, it seems to be a popular invis plugin and I know it's not a traditional donation but if it helps you guys make geyser even better then I'd be happy to do so.

SupremeMortal commented 3 years ago

@S0M0G Thanks for helping us but you are breaking the terms of service for the plugin by redistributing it so I have removed the message.

S0M0G commented 3 years ago

But i bought it for you guys, and I'm not planning on using it, so can I somehow send it privately?

KantoKairyu commented 3 years ago

It's really nice of you but I think purchasing it sorta locks you into legally agreeing it's for your own use and not for sharing :( Thanks bunch though man, the gesture was really kind :)

KantoKairyu commented 3 years ago

Also update: On my alt I can play on bedrock and see what happens when I toggle invis on and off, I disappear from one of the playerlist menus and stay on the other. It's hard to describe but you know the way there's one player list with profile pictures and another with a standard logo? Well my invis players do indeed vansh from the list with their profile pics but they stay on the other playerlist...

NFLD99 commented 3 years ago

if @LeonMangler cant/wont provide a copy for testing i can see if i cant buy a copy for you @Camotoy or just paypal you the $ for it so we can get this fixed

Camotoy commented 3 years ago

Well my invis players do indeed vansh from the list with their profile pics but they stay on the other playerlist...

This just stuck out to me. I think the issue doesn't lie in the player list but something with our scoreboard system instead.

LeonMangler commented 3 years ago

Hey, I'll give free PV access to anyone who works on geyser, please just provide your Spigot names. I've just given access to Camotoy.

According to Camotoy in #2340 the issue with vanished players appearing in the bedrock serverlist playercount can be fixed with Geyser's legacy-ping-passthrough option.

As for the in-game tablist, with the default config PV strips players from PlayerInfo packets with ProtocolLib and uses Spigot's hidePlayer() mechanism. It doesn't remove them from ScoreboardTeam packets by default, since that caused issues with nametag plugins and vanished players not having nametags in the past. It can be enabled in the config though (By removing "ScoreboardTeam" from "DisabledInvisibilityModules"). PV doesn't have any packet listeners bungee-sided.

If we can get it to work with SuperVanish, which is free, open-source and does hide vanished players in the tablist to everyone who doesn't have the right permissions, it should also work with PV. SV also uses Spigot's hidePlayer() mechanism and removes vanished players from Player Info packets spigot-sided with ProtocolLib.

Camotoy commented 3 years ago

It doesn't remove them from ScoreboardTeam packets by default, since that caused issues with nametag plugins and vanished players not having nametags in the past. It can be enabled in the config though (By removing "ScoreboardTeam" from "DisabledInvisibilityModules").

Interesting - so I wonder if the behavior is intentional to a degree (at least in the way we handle scoreboard team packets)? I'd ask anyone affected if they could try the steps LeonMangler proposes and see if it fixes the "tab list" issue for them. Thanks for the plugin access. I'll try to look into the issue soon.

NFLD99 commented 3 years ago

Hey, I'll give free PV access to anyone who works on geyser, please just provide your Spigot names. I've just given access to Camotoy.

According to Camotoy in #2340 the issue with vanished players appearing in the bedrock serverlist playercount can be fixed with Geyser's legacy-ping-passthrough option.

As for the in-game tablist, with the default config PV strips players from PlayerInfo packets with ProtocolLib and uses Spigot's hidePlayer() mechanism. It doesn't remove them from ScoreboardTeam packets by default, since that caused issues with nametag plugins and vanished players not having nametags in the past. It can be enabled in the config though (By removing "ScoreboardTeam" from "DisabledInvisibilityModules"). PV doesn't have any packet listeners bungee-sided.

If we can get it to work with SuperVanish, which is free, open-source and does hide vanished players in the tablist to everyone who doesn't have the right permissions, it should also work with PV. SV also uses Spigot's hidePlayer() mechanism and removes vanished players from Player Info packets spigot-sided with ProtocolLib.

It doesn't remove them from ScoreboardTeam packets by default, since that caused issues with nametag plugins and vanished players not having nametags in the past. It can be enabled in the config though (By removing "ScoreboardTeam" from "DisabledInvisibilityModules").

Interesting - so I wonder if the behavior is intentional to a degree (at least in the way we handle scoreboard team packets)? I'd ask anyone affected if they could try the steps LeonMangler proposes and see if it fixes the "tab list" issue for them. Thanks for the plugin access. I'll try to look into the issue soon.

Great News! using those setting it fixed it! [havnt noticed any side effects so far either ]

Camotoy commented 2 years ago

NEZNAMY reached out to me after https://github.com/NEZNAMY/TAB/issues/454 - the good news is that this behavior should be the same when a player disconnects normally. In that way, it is indeed like the player vanished. But, we should still not be showing these tab entries if the player isn't logged on.

Tim203 commented 1 month ago

Does this still happen with the latest build (685)?