#define PLUGINNAME	"No IP hirdetes"
#define VERSION		"2.0"
#define AUTHOR		"Alfaaaa, JGHG"
/*
 
 
Don't say IPs
=============
Ez a plugin arra jo hogy ha valaki beir egy ip-t akkor mast ir ki helyette vagy bannolja az illetot! 
pl. 87.229.100.20:27000 helyett Ez a szerver Kiraly!
 
CVAR:
ip_banviolators -> Bannoljon E Ha Valaki Reklamoz -> (ip_banviolators 1)
ip_banminutes  -> Bannolasi Ido -> (pl. ip_banminutes 5)
 
 
 
VERSIONS
========
050204	1.0	Hungary Version
 
 
CREDITS
=======
*/
 
#include <amxmodx>
#include <regex>
 
#define PATTERN				"(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)" // \b
#define REASON				"IP advertising"
#define CVAR_BANMINUTES		"ip_banminutes"
#define CVAR_BANVIOLATORS	"ip_banviolators"
 
// Globals below
new Regex:g_result
new g_returnvalue
new g_error[64]
new g_allArgs[1024]
// Globals above
 
public plugin_modules() {
	require_module("regex")
}
 
public hook_say(id, level, cid) {
	read_args(g_allArgs, 1023)
	g_result = regex_match(g_allArgs, PATTERN, g_returnvalue, g_error, 63)
	switch (g_result) {
		case REGEX_MATCH_FAIL: {
			log_amx("REGEX_MATCH_FAIL! %s", g_error)
			return PLUGIN_CONTINUE
		}
		case REGEX_PATTERN_FAIL: {
			log_amx("REGEX_PATTERN_FAIL! %s", g_error)
			return PLUGIN_CONTINUE
		}
		case REGEX_NO_MATCH: {
			return PLUGIN_CONTINUE
		}
		default: {
			if (get_cvar_num(CVAR_BANVIOLATORS)) {
				new userid = get_user_userid(id)
				new minutesString[10]
				get_cvar_string(CVAR_BANMINUTES, minutesString, 9)
				new temp[64], banned[16], minutes = get_cvar_num(CVAR_BANMINUTES)
 
				if (minutes)
					format(temp, 63, "%L", id, "FOR_MIN", minutesString)
				else
					format(temp, 63, "%L", id, "PERM")
 
				format(banned, 15, "%L", id, "BANNED")
 
				new authid[32]
				get_user_authid(id, authid, 31)
 
				new name[32]
				get_user_name(id, name, 31)
				log_amx("%s (%s), %s %s because of advertising an IP address. This was written: ^"%s^"", name, authid, banned, temp, g_allArgs)
 
				server_cmd("kick #%d ^"%s (%s %s)^";wait;banid ^"%d^" ^"%s^";wait;writeid", userid, REASON, banned, temp, minutes, authid)				
			}
			else {
				client_cmd(id, "say ^"Ez a Szerver Nagyon Meno!^"")
			}
			regex_free(g_result)
			return PLUGIN_HANDLED // block msg
		}
	}
 
	return PLUGIN_CONTINUE
}
 
 
 
public plugin_init() {
	register_plugin(PLUGINNAME, VERSION, AUTHOR)
 
	register_clcmd("say", "hook_say")
	register_cvar(CVAR_BANVIOLATORS, "0")
	register_cvar(CVAR_BANMINUTES, "5")
 
	register_dictionary("admincmd.txt")
}