jonesdevelopment / sonar

Sonar is a lightweight, effective and easy-to-use anti-bot plugin for Velocity, BungeeCord, and Bukkit.
https://docs.jonesdev.xyz
GNU General Public License v3.0
126 stars 11 forks source link

Bug Report: Geyser players are unable to connect #172

Closed jonesdevelopment closed 8 months ago

jonesdevelopment commented 8 months ago

General information

People have been reporting issues with Geyser (floodgate). I've tested Geyser before, but only on Velocity and it seemed to work "just fine".

Steps to reproduce

  1. Join the proxy with a bedrock client

Sonar dump

/

Additional information

I need to collect more information on this issue. More information and related classes:

FallenCrystal commented 8 months ago

Failed on BungeeCord:

[Geyser-BungeeCord]: Cannot reply to ClientboundHelloPacket without profile and access token.

sonar seems to have succeeded exempting geyser. but due to certain factors. client can't join. (test with #174)

jonesdevelopment commented 8 months ago

@FallenCrystal BungeeCord is having some issues at the moment. We need to try to figure out what's causing the issues in https://github.com/jonesdevelopment/sonar/pull/174 before we can investigate this.

FallenCrystal commented 8 months ago

@FallenCrystal BungeeCord is having some issues at the moment. We need to try to figure out what's causing the issues in #174 before we can investigate this.

It doesn't actually have anything to do with #174. installing sonar will have the problem (i mean: https://github.com/jonesdevelopment/sonar/issues/172#issuecomment-1906476644). even if it doesn't replace the HandlerBoss

FallenCrystal commented 8 months ago

image

@jonesdevelopment (for geyser on bungeecord) have u ever thought about using original channel initializer? this is probably the easiest solution i know of at the moment. but if you want to figure out why exactly it doesn't work. this may not be applicable.

https://github.com/FallenCrystal/Sonar/tree/original-initializer-for-geyser

jonesdevelopment commented 8 months ago

What does BaseInjectionHelper#handleOriginal(channel) do?

jonesdevelopment commented 8 months ago

btw i post it here because im blocked by discord auto-mod

You cannot @ me because I was getting annoyed by a lot of people spam pinging me.

jonesdevelopment commented 8 months ago

@FallenCrystal I don't have Bedrock so I cannot test Geyser/floodgate. Can you please test if Bedrock works on Velocity?

jonesdevelopment commented 8 months ago

have u ever thought about using original channel initializer

What about TCPShield? If the player joins through a reverse proxy, their port won't be 0 and we'd have to use a different method of checking for Geyser...

FallenCrystal commented 8 months ago

have u ever thought about using original channel initializer

What about TCPShield? If the player joins through a reverse proxy, their port won't be 0 and we'd have to use a different method of checking for Geyser...

i haven't tried tcpshield. u mean at least handle HAProxyMessage or other thing?

jonesdevelopment commented 8 months ago

i haven't tried tcpshield. u mean at least handle HAProxyMessage or other thing?

Yeah, if the connection goes though TCPShield is must have a different IP and port at first, right?

micartey commented 8 months ago

@FallenCrystal I don't have Bedrock so I cannot test Geyser/floodgate. Can you please test if Bedrock works on Velocity?

Tested it on Spigot (I know that this is not a proxy) but it works perfectly there. Therefore, I believe this is either vendor-specific or a proxy thing (although the first thing is more likely)

@jonesdevelopment we can test it on your velocity installation if you like.

jonesdevelopment commented 8 months ago

Tested it on Spigot (I know that this is not a proxy) but it works perfectly there.

Sonar doesn't support bukkit yet.

jonesdevelopment commented 8 months ago

@jonesdevelopment we can test it on your velocity installation if you like.

That would be a huge help! I'll let you know when I'm available.

micartey commented 8 months ago

Sonar doesn't support bukkit yet.

Wdym? It loads 😂 Is there just no functionality yet?

FallenCrystal commented 8 months ago

Therefore, I believe this is either vendor-specific or a proxy thing (although the first thing is more likely)

https://discord.com/channels/923308209769426994/1116406180332445746/1200155903542968350

Wdym? It loads 😂 Is there just no functionality yet?

as far as i know. sonar on bukkit does not implement any antibot modules. (ATM)

jonesdevelopment commented 8 months ago

Is there just no functionality yet?

Yeah. All shared modules are loading but there's no anti-bot component yet because of NMS and the injection bs...

micartey commented 8 months ago

We should move this to another thread/issue and discuss this further. There surely are better ways to do that

179

jonesdevelopment commented 8 months ago

2.0.16 seems to fix some issues regarding Geyser... probably because of the new plugin loading structure implemented in #182?

jonesdevelopment commented 8 months ago

The Geyser standalone proxy seems to have some issues (https://discord.com/channels/923308209769426994/1116406180332445746/1201691926965788772)

Belceebuh commented 8 months ago

i have the same problem with latest version on Sonar, i'm using Geyser Standalone but all geyser players have this error: Screenshot_2024-02-04-09-55-52-26

is it possible to add a geyser ignore to sonar? this would help to directly remove the possibility of geyser users going through the antibot.

jonesdevelopment commented 8 months ago

is it possible to add a geyser ignore to sonar? this would help to directly remove the possibility of geyser users going through the antibot.

That's what it's supposed to do. The problem lies in detecting Geyser standalone players. I don't have much time at the moment, so I cannot really look into it that much. I've done some research, but I don't have an ETA yet, but I'm sure I'll figure this out in a bit.

jonesdevelopment commented 8 months ago

This commit may be helpful in solving this problem.