#include <amxmodx>
#include <amxmisc>
 
#define PLUGIN "Ban with proof"
#define VERSION "1.0.4"
#define AUTHOR "[lego]F34R and re-scripted by kuddo"
 
static const banurl[] = ""
 
new Bantype
 
public plugin_init() {
	register_plugin(PLUGIN, VERSION, AUTHOR)
	register_concmd("amx_banshot","banwithproof",ADMIN_BAN,"<name> <time> <reason>")
	register_cvar("amx_banurl",banurl)
	Bantype = register_cvar("amx_banshot_type", "2")	
}
 
 
public banwithproof(id,level,cid){
	if(!cmd_access(id,level,cid,2))
		return PLUGIN_HANDLED;
 
	new authid[32], ipadd[32], name[32], admin_name[32], reason[32], CurrentTime[9], hostname[64] ,banurl[64]
	new arg[32], arg2[32], temp[2]
 
	read_argv(1,arg,31)
	read_argv(2,arg2,31)
 
	new target = cmd_target(id,arg,1)
 
	if (!target) return PLUGIN_HANDLED
 
	get_user_ip(target,ipadd,31)
	get_cvar_string("hostname",hostname,63) 
	get_user_name(target,name,31)
	get_user_authid(target,authid,31)
	get_cvar_string("amx_banurl", banurl,63)
	get_user_name(id, admin_name, 31)
	read_argv(3, reason, 31)
 
	log_to_file("BannedwithSS.txt","    %s | IP: %s | STEAMid: %s | ADMIN: %s | REASON: %s^n",name,ipadd,authid,admin_name,reason)
 
	client_print(target,print_chat, "[Server] %s",hostname)
	client_print(target,print_chat, "[Name] %s [STEAMid] %s [IP] %s",name,authid,ipadd) 
	client_print(target,print_chat, "[Admin] %s [Reason] %s",admin_name,reason)
	get_time("%m/%d/%Y - %H:%M:%S",CurrentTime,31)
 
	client_print(target,print_chat, "[Date/Hour] %s",CurrentTime)
	client_print(target,print_chat, "[Website] Visit %s to be unbanned",banurl)
 
	console_print(target,"[Server] %s",hostname)
	console_print(target,"[Name] %s [STEAMid] %s [IP] %s",name,authid,ipadd)
	console_print(target,"[Admin] %s [Reason] %s",admin_name,reason) 
	console_print(target,"[Date/Hour] %s",CurrentTime)
	console_print(target,"[Website] Visit %s to be unbanned",banurl)
 
	client_cmd(target,"wait;wait;snapshot;wait;snapshot")
 
	temp[0] = target
	temp[1] = str_to_num(arg2)
 
	set_task(0.5,"persontoban", target, temp, 2)
 
	return PLUGIN_HANDLED
}
 
public persontoban(arg[]){
	new name2[32]
 
	new target = arg[0]
	new bantime = arg[1]
 
	get_user_name(target,name2,31)
 
	switch (get_pcvar_num(Bantype)){
		case 1:{
			server_cmd("amx_ban %s %d",name2,bantime)
		}
		case 2:{
			server_cmd("amx_banip %s %d",name2,bantime)
		}
		case 3:{
			server_cmd("amx_ban %d %s",bantime,name2)
		}
		case 4:{
			server_cmd("amx_say Visit %s",banurl)
		}
	}
 
}