Is there some kind of plugin that exists that compares the code of the client side jar files to the server side ones.
This is because a severe cheat that can be done by changing the stats of weapons (guns etc) on the client side meaning that players can change the stats of their weapons to have (for example) instant reloading, faster fire rate and infinite ammo - things that seem to be performed on the client side only (for example changing gun damage works in singleplayer but doesn’t on multiplayer)
Is there any possible way of solving this?
Any insight and help will be appreciated.
Because to compare jars, the request to download would need to be client side, modders would be able to make the server download and compare a completely unmodified version of the jar. This is why anti-cheat is so difficult to pull off.
However due to the fact minecrafts network architecture is client-server with absolutely no peer to peer on vanilla, any request to modify anything that will affect another client must go through the server, be processed by the server and then distributed to the clients.
This means assuming the mod your using doesnt do any peer to peer, you can create a plugin/mod that prevents something from happening. In your case you can put a scheduler on the server side for every time a client fires a weapon, then if that scheduler is still running while the client fires again, you would cancel the interaction.
This sadly needs to be tailored to whatever mod your using (unless sponge does its magic with mods and puts a fire bullet event in the fire projectile event … Dont thing sponges magic works on projectiles though)
To put it more succinctly: The server can only communicate with the client over network packets. Therefore, 100% of information can be faked. The Forge guidelines explicitly say to make all gameplay logic go through network requests, so if a mod handles anything client-side that’s its own fault.