GrimAnticheat / Grim

Fully async, multithreaded, predictive, open source, 3.01 reach, 1.005 timer, 0.01% speed, 99.99% antikb, "bypassable" 1.8-1.20 anticheat.
GNU General Public License v3.0
1.07k stars 313 forks source link

Non Bukkit server support #1471

Closed MelonHell closed 4 months ago

MelonHell commented 5 months ago

Feature description

I took a quick look at the sources and see that BukkitAPI is almost never used. Our server is written in Minestom and we would really like to use this anti-cheat. As I understand it, anti-cheat works as an intermediary between packets, and in this case it would be convenient to install anti-cheat on Velocity

SamB440 commented 5 months ago

This isn't going to happen without a significant rewrite. Bukkit is still fundamentally used in the plugin. I myself am working on a multiplatform ac but it is not publicly available yet.

I imagine if someone were to attempt this it would be better to wait for Grim 3.0

However, you are talking about minestom, and unfortunately, Minestom is not supported by packetevents at this time, so that would need to be done too. Also proxy wouldn't work, Grim uses some server events like piston pushing.

vytskalt commented 4 months ago

I imagine if someone were to attempt this it would be better to wait for Grim 3.0

AFAIK 3.0 isn't going to be open source

AoElite commented 4 months ago

No plans are to be made to support minestorm

MelonHell commented 4 months ago

No plans are to be made to support minestorm

This is not about supporting Minestom, but about separating from Bukkit so that third-party developers can write platform implementations

MelonHell commented 4 months ago

It seems to me that it would be an excellent solution to transfer grim to a proxy, this will allow it to support any platforms

AoElite commented 4 months ago

There's issues running it solely on proxies. Like not being able to retrieve the server's state.

MelonHell commented 4 months ago

In any case, the server sends all information in packets. Using a proxy will allow you to connect anti-cheat to any servers, even those not written in java

MelonHell commented 4 months ago

Personally, I would generally make anti-cheat as a separate service. For example, the connection will look like this: Velocity/Bungee -> AntiCheat -> Minestom/Bukkit/Fabric/Sponge/Vanilla

AoElite commented 4 months ago

Feel free to fork if you desire.

MelonHell commented 4 months ago

Maybe I'll try it when I have free time

Danieljunek17 commented 1 month ago

is there any progress made on this since I would like to use it on minestom and I was thinking about forking it but if you think you can make your concept work without significantly adding ping or performance penalties @MelonHell I Whould really like to see something like that.