TorchAPI.com is powered by Qonzer! Check them out for the ultimate game server hosting experience.
AdvancedBans
Author: sam44
Latest Version: v1.1.1
Cumulative Downloads: 648
AdvancedBans
The ban hammer is in your hands. Tempban users, permaban users with a reason, and more!
This plugin is still in development!
Have a bug / suggestion? Go to the Support Server!
About
AdvancedBans is essentially a remake on how admins can ban other players. It is a fully customizable ban management system. Before, if there was a troublesome player, you would usually ban the person forever potentially loosing on a potential player, or forget to unban a player after a certain amount of time. Now with AdvancedBans, you can temp-ban players, with a reason!
Required Software
As the plugin requires a PostgresSQL Database, a PostgresSQL server is required.
- PostgresSQL (Required)
- pgAdmin4 (Recommended)
How it works
AdvancedBans works by storing all bans in a PostgresSQL database. This is useful if a server operator is running multiple servers, or running a cluster of servers and wants to share their ban list amongst other servers / clusters by referencing the database.
Every time a player joins the server, it will check if their Steam / UserID is on the database. If it detects that their ban exists, and is still active, it will then display a webpage that either the server is running, or redirects to an existing web server, on which the ban reason is displayed, then removes the user.
Due to how bans are stored, it is also possible to get the history of a certain player by doing !ab history <name | steamid>.
Case ID System
The Case ID system serves as a unique 10 character long code which allows the user to view their ban again. For instance, if you go to localhost:8080/<caseID> it will display the user’s ban information. The Case ID also is used to unban the player, you can also unban a user with their SteamID as well. The Case ID is displayed to the administrator once the user is banned.
This means that if you are banned, the player might be shown a ban screen and their unique Case ID of xEoqPww23a, and why they have been banned. A administrator can then simply do !ab unban xEoqPww23a to unban the player, or !ab unban
Commands
!ab help - Help (WIP)
!ab ban <name | steamid> "<reason>" - Permanently bans a user from a server, with a reason. Returns a Case ID.
!ab tempban <name | steamid> "<time:m:h:d>" "<reason>" - Temperarly bans a user from the server until the given date. Returns a Case ID
!ab unban <case Id | steamid > - Unbans a user with their given case Id.
!ab history <name | steamid> - Outputs all the times the user has been banned, if their ban is expired, when their ban will expire, and if their ban is permanent.
AdvancedBans v1.1.0
This is by far the biggest update to AdvancedBans. This introduces many new features requested, as well as multiple breaking changes such as migrating to a new database. You will have to re-create the database and use Postgres instead of MySQL if you were using the old version.
Database Improvements
- Migration to PostgresSQL Database System
- Revamp of the banning system.
- The "Ban Number" has been removed in favor of utilizing Case IDs and establishing a history system for bans.
- Cross-server banning now fully works. It is also possible to reference the database on another server from another IP address or location to sync bans over.
Webserver improvements
- Implemented a basic rate-limit system to prevent the webserver from getting flooded with requests.
- Added more tags to display ban details These tags are: {{SteamID}}, {{CaseID}}, {{BannedDate}}, {{ExpireDate}}, {{Reason}}, {{IsPermanent}} ,{{IsExpired}}, {{RemainingTime}
- To navigate to a user's ban page, go to [WebServerAddress]:[WebServerPort]/
New & Updated commands
!ab history <name | steamId> - Displays ban history for a specific player and their current status.
!ab ban <name | steamId> <reason> - Ban a player with a reason. If enabled, it will open a webpage displaying their ban. Returns a caseId.
!ab tempban <name | steamId> <time in h | m | d> <reason> - Bans a player for a set amount of time. If enabled, it will open a webpage displaying their ban. Returns a caseId.
!ab unban <caseId | steamId> - Unbans a player based on their Case ID they have retrieved, or their Steam ID.
Other improvements
-
Removed many unnecessary logging. To see verbose logs, enable Debug mode.
-
Fixed many edge cases which might break the plugin
-
Added some minor UI changes.
Wiki progress & plugin future
Right now its still a work in progress. I am currently out of town so once I am back, I will make some actual documentation for AdvancedBans
I am also planning on adding a warning system into AdvancedBans. Something like !ab warn sam "Being annoying" with features to control what to do once you hit x amount of warnings. Given the time I have though and going into college this may take a while.
Any questions?
If you have any questions, bug reports, comments or concerns, please join my discord at https://discord.com/invite/HDs9QRAmEE Feel free to message me anytime @sam44 on Discord. My DMs are always open.
Patreon
Github