-
-
Notifications
You must be signed in to change notification settings - Fork 440
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add new event onPlayerChangesWorldSpecialProperty #3873
Conversation
What if the cheater wont send the packet to the server? |
This is not something we can do anything with, clearly it's not completely foolproof like any other protection, but it provides full protection against cheats executed from Lua |
It's better then using addDebugHook imo |
it doesn't make any sense because the world properties can be overridden in the same way that lua injection works |
It can be bypassed like any other protection as I mentioned, and this one in particular, but I don't think that means it's unnecessary or pointless, because additional knowledge is needed to avoid sending the packet or to change the called function, and let's face it, most cheaters don't have any knowledge of coding in general, because they use free, downloaded cheats from the internet, most of the time not even fully functional ones. |
Thanks for the PR, please create the wiki page. |
the server should periodically check the state of special world properties to ensure that they are not activated inappropriately. This can be done with a function that sends back the expected states and compares the return |
Done |
This is very weak protection. Cheaters have their own communities and share cheats/code. They will use setElementPosition function to fly instead. addDebugHook covers this case, imho |
What if player enables a world property while is not connected to a server? Is that even possible? |
I don't think that's possible. |
Description
This pull request adds a new event called
onPlayerChangesWorldSpecialProperty
, which has aproperty
andenabled
parameter, and is designed to track the use of thesetWorldSpecialPropertyEnabled
function, which is also perfect for detecting cheats.Implementation
The implementation required the creation of a new packet, the identifier of which is
PACKET_ID_PLAYER_WORLD_SPECIAL_PROPERTY
, and for backward compatibility, a new BitStream version was added, which is calledWorldSpecialPropertyEvent
Example