Code wasn't completely cleaned, and after moving things around, caused issues. Now resovled.
UserinGroupOffline (if a user is offline)
PermissionsTestOffline (likewise)
Developed to work with PermissionsCore too, Freeze stops a user midair and holds them there. This is the first of the Flight Data Packet editing functions.
If many people leave the server at once, the logoff script crashes. I've added a try/except for when that happens, so if a message fails to send, then the program shrugs it off as "they left" because, well, they did.
getsockname -> getpeername
Using the \r and comma-at-end-of-print trick, the console now prints to one line when doing countdown timers.
If a console logs in, it doesn't affect the user list. Console has the permissions override.
Console will be intended to be used by the GUI side of the program once built.
If a port cannot be binded to, the server closes with a message stating why rather then a crash.
An option to lock the server, so a password needs to be typed on the host pc before launching.
Rest of the modules to come.
Simple commands like UserExists() in the user defining class to avoid birdsnests or errors.
Commands such as PermissionsComparison(Compare power between users), PermissionsTest(see if a user has a base power to do something), TestInfo(see if a users info flag is set or unset), AdminOverride(if the username is defined as a console op),
When connecting to the YSFHQ database, it shows the old message that orb used to use, but now has been updated to show the new 'Orb YSFHQ Login' instead of 'YSPS/YSFHQ' etc.
Currently, Many users can have the maximum level of power, but not change each others settings unless so granted the permission, etc.
The beginings of a console level account and password protection have been added, soon to be fused with a new permission check module, that allows any user logged in as console, to override ALL permissions. (Add to group without being in that group, etc.)
As with the other bug.
Using self.closing checks for every step in the data receive to ensure no errors are met when a socket closes half way through. By doing this, the data receive script will know that the socket is closed, and it should just stop doing things, and let the script close.