AlliedModders

AlliedModders (https://forums.alliedmods.net/index.php)
-   Plugins (https://forums.alliedmods.net/forumdisplay.php?f=108)
-   -   [ANY] Threaded Mysql Bans (https://forums.alliedmods.net/showthread.php?t=191283)

senseit 07-28-2012 11:38

[ANY] Threaded Mysql Bans
 
1 Attachment(s)
Credits:
Originally coded by MoggieX - Stripped and rebuilt to be threaded

Target Audience
This plugin is aimed at server operators that require to have a single point of reference for all thier game server bans.

What does it do?
Writes bans to the MySQL database and kicks any users with matching bans as they attempt to join. For timed bans, the ban will automatically delete itself from the database on the next connection attempt after the ban expires. Each player is checked on connect, if they are a BOT they are ignored. Now times this over 4 or more servers and happy days!

Compatibility:
This will work on any sourcemod game.

Requirements:
These are out of scope for the install of this plugin, but must be performed for it to work...

1. A working MySQL Database
2. A correctly set up 'default' connection to the db in '<mod-dir>/addons/sourcemod/configs/databases.cfg' (see here for more info http://wiki.alliedmods.net/SQL_Admin...#Configuration)

Commands:
You can use any normal ban command (E.x. sm_ban, sm_unban, ban, unban). This plugin will catch these commands and overwrite them. So you don't need to tell your admins to use a new command, or unload/modify any base plugins. Plug, and Play.

How to Install:
1. Put the mysql_bans.smx file in your plugins directory
2. On first load the plugin will automatically create a table to store bans in your 'default' connection in databases.cfg. The table columns can be found below.

Current Version & Changelog
1 Feb 13 - V1.3
-Added SQL input validation on fields
-Now storing player_name in database

10 Sept 12 - V1.2
-Fixed bug that caused perm ban users to get unbanned after 2 reconnection attempts

07 Aug 12 - V1.1
-Created OnBanClient OnRemoveBan forward calls to redirect normal ban functionality
-Added console logging

06 Aug 12 - V1.03
-Minor change to SQL

30 July 12 - V1.02
-Fixed a bug in the code

28 July 12 - V1.01
-Fixed a bug in the code


Code:

CREATE TABLE IF NOT EXISTS `my_bans` (
    `id` int(11) NOT NULL auto_increment,
    `steam_id` varchar(32) NOT NULL,
    `player_name` varchar(65) NOT NULL,
    `ban_length` int(1) NOT NULL default '0',
    `ban_reason` varchar(100) NOT NULL,
    `banned_by` varchar(100) NOT NULL,
    `timestamp` timestamp NOT NULL default '0000-00-00 00:00:00' on update CURRENT_TIMESTAMP,
    PRIMARY KEY  (`id`),
    UNIQUE KEY `steam_id` (`steam_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;


Jim E. Rustler 07-28-2012 14:43

Re: [ANY] Threaded Mysql Bans
 
Very good. Now if only there was a webpage of sorts to view and play with the data.

senseit 07-28-2012 16:53

Re: [ANY] Threaded Mysql Bans
 
There was a bug in the code. Will error out if the banner's name is shorter than the banee's name. Was a typo with the string lengths. Updated to 1.01

Jim E. Rustler 07-28-2012 19:03

Re: [ANY] Threaded Mysql Bans
 
Is it possible to use this along side of sourcebans? I'd like to test it out a little more before committing to any of the two.

Nolongerinthegame 07-28-2012 19:39

Re: [ANY] Threaded Mysql Bans
 
Quote:

Originally Posted by Jim E. Rustler (Post 1760178)
Is it possible to use this along side of sourcebans? I'd like to test it out a little more before committing to any of the two.

But why? These are two similar banning systems using MySQL.

Jim E. Rustler 07-28-2012 20:56

Re: [ANY] Threaded Mysql Bans
 
Quote:

Originally Posted by nelioneil (Post 1760186)
But why? These are two similar banning systems using MySQL.

Quote:

Originally Posted by Jim E. Rustler
I'd like to test it out a little more before committing to any of the two.

Isn't it obvious?

Sreaper 07-28-2012 23:02

Re: [ANY] Threaded Mysql Bans
 
Quote:

Originally Posted by Jim E. Rustler (Post 1760226)
Isn't it obvious?

No it's not obvious. Why would you need to have two banning systems running at the same time?

senseit 07-28-2012 23:46

Re: [ANY] Threaded Mysql Bans
 
Quote:

Originally Posted by Jim E. Rustler (Post 1760178)
Is it possible to use this along side of sourcebans? I'd like to test it out a little more before committing to any of the two.

Yes. This plugin just creates 2 new commands. It will not interfere with any existing commands or plugins.

Jim E. Rustler 07-29-2012 06:29

Re: [ANY] Threaded Mysql Bans
 
Quote:

Originally Posted by senseit (Post 1760287)
Yes. This plugin just creates 2 new commands. It will not interfere with any existing commands or plugins.

Thanks for answering the question. I'll give this a honest try and see which is better for me. Do you plan on doing up a small webpage to shot bans and ban reasons by chance?

senseit 07-29-2012 06:34

Re: [ANY] Threaded Mysql Bans
 
Quote:

Originally Posted by Jim E. Rustler (Post 1760457)
Thanks for answering the question. I'll give this a honest try and see which is better for me. Do you plan on doing up a small webpage to shot bans and ban reasons by chance?

No, then it would just be the same thing as source bans. I just needed a way to keep local mysql bans on my own server network without wanting to import other people's bans, have a web interface, or any of that stuff. The idea here is just to keep it simple.


All times are GMT -4. The time now is 22:40.

Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.