A simple plugin that records and applies timed mute punishments by Steam account, storing it in a database.
When the player has been authenticated by Steam, a threaded query is performed to see if there are any mutes for the account in effect, then mutes the player once they are in the server if so.
This plugin only stores account, end time (0 for a permanent mute), reason, and the account that performed the ban (or 0 for server).
- sm_muteid <time> <steamid> [reason]: Applies a mute on a Steam ID for the specified time in minutes. Accepts Steam2 and Steam3 formats. Command syntax matches that of sm_addban. This does not mute the player if they are currently in the server; it just adds an entry to the database to mute them in the future (they will be muted on map change or reconnect if the ban hasn't expired).
Just depends on BaseComms and Regex, both of which are available in the default SourceMod installation.
When used with multiple servers, it also depends on them having synchronized clocks (UNIX timestamp), as GetTime()
- Run the init script located at configs/sql-init-scripts/mute_account.sql. I think it should be fine with SQLite, but it is built and tested with SQL in mind.
- Add a muted_accounts entry to your configs/databases.cfg file with the appropriate information.
- Install the plugin.