-
-
Notifications
You must be signed in to change notification settings - Fork 154
Description
The way that open.mp handles disconnections when banning players is erratic because it relies on RakServer notifying the disconnection rather than having the Ban functions themselves somehow signal it. When a Kick is done, and the server signals the disconnection, the player also signals the disconnection back to the server after getting kicked, which leads to, in practice, almost instantaneous kicking.
It would appear that when banning, this can't happen because the server will block information from Kicked players, and as such, some kind of acknowledging won't happen immediately, and instead, the disconnect will only happen after it eventually timeouts from not responding anymore (because the ban filters out his packets).
The original SA-MP logic shows that, when Kicking/Banning players, the function in charge of doing so from the SA-MP server code merely tells RakNet to kick the player, and does not rely on RakNet to signal the disconnection back, but rather it proactively deletes the player from the player pool itself right after that function call via a direct function call with the reason being 2 (kicked/banned).