This commit changes /login to no longer take command arguments. Instead, upon sending /login, you will enter an interactive "prompt", where your next OOC message will be interpreted as your login attempt (and will not be shown to other users). This prevents a typo from accidentally broadcasting your credentials to the entire area.
- Changes /login to take no command arguments, /login now sets a client state "is_logging_in".
- pktOocChat will now intercept a client's OOC message if they have this client state, and will interpret that as a moderator login.
- Adds the helper function loginAttempt() for handling moderator logins.
This is the worst code I have ever contributed to this project. This commit is the result of several days of attempting to decipher Qt's documentation. This is the best I can write. Qt has broken me. God help us all.
- Allows sending modcalls to a discord webhook, containing the name of the sender, the area, and the reason.
- Adds configurable options to config.ini for enabling/disabling webhooks and specifying the webhook url.
Set a hard limit on 30KB that the server is willing to read, over two sequential reads. If the client sends more than 30KB combined, the server will disconnect the client.
- Limits packets to under 16KB
- Adds a configurable option to config.ini for setting the maximum amount of characters in an IC/OOC message
- Limits the size of OOC names to 30 chars
- The client already limits this, but this is an added precaution.
- Limits the length of shownames to 30 chars
- Implements shownames_allowed for areas, for toggling whether shownames are allowed for messages in that area
- Adds /togglemusic to toggle whether music can be played in an area. CM's can still play music.
- Add toggle_music option to area.ini to set the default value in an area. Default value is set to true.
- Also fixes a missing period in the documentation for force_immediate. Because I noticed it.
- Fixes an issue with the testimony recorder checking for >[statement], where due to AO encoding, special characters would improperly match the regex. For example, "%[statement]" would become "<percent>[statement]", thus matching against >[statement]. This commit decodes those characters first.
- Adds AOClient::decodeMessage() for decoding a QString.