Raised This Month: $ Target: $400
 0% 

[REQ/HELP] Unbanmenu with Unban All


Post New Thread Reply   
 
Thread Tools Display Modes
Author Message
0reax
Junior Member
Join Date: Sep 2016
Location: Anywhere
Old 09-26-2016 , 10:23   [REQ/HELP] Unbanmenu with Unban All
Reply With Quote #1

Hi,
I want a unban menu plugin which unban all included. My unban menu is here, i want to Unban All section. When i choose it, it ll be clear listip.cfg and banned.cfg
And this plugin can only read IPs from listip.cfg, but if the ban isn't premanent, the writeip doesnt write anything to listip.cfg is that possible to read other bans like 99999min ban

Thanks

Code:
/* Plugin generated by AMXX-Studio */

#include <amxmodx>
#include <amxmisc>



new g_menuPosition[33]
new g_menuSelect[33][64]
new g_menuUnBanType[33]
new g_menuUnBanLine[33][2]
new g_menuUnBanText[33][8][32]
new g_bannedCfgFile[2][] = {"banned.cfg","listip.cfg"}
new g_coloredMenus



public plugin_init() {
	register_plugin("UnBanmenu", "1", "AMX Team")
	
	register_clcmd("amx_unbanmenu","cmdUnBanMenu", ADMIN_BAN, "- displays unban menu")
	
	register_menucmd(register_menuid("UnBan STEAMID or IP?"),(1<<0|1<<1|1<<9),"actionUnBanMenuType")
	register_menucmd(register_menuid("UnBan  Menu"),1023,"actionUnBanMenu")
	
	g_coloredMenus = colored_menus()
}
public actionUnBanMenu(id,key) {
	
	switch(key) {
	case 8: {
		displayUnBanMenu(id, ++g_menuPosition[id])
	}
	case 9: {
		g_menuUnBanLine[id][0] = g_menuUnBanLine[id][0] - (8 + g_menuUnBanLine[id][1])
		if(g_menuUnBanLine[id][0] < 0) g_menuUnBanLine[id][0] = 0
		displayUnBanMenu(id, --g_menuPosition[id])
	}
	default: {
		
		new name[32], authid[32], ipaddress[24]
		get_user_authid(id, authid, 31)
		get_user_name(id, name, 31)
		get_user_ip(id, ipaddress, 23, 1)

		log_amx("UnBan: ^"%s<%d><%s><%s>^" unban ^"%s^"", name,get_user_userid(id),authid,ipaddress,g_menuUnBanText[id][key])

		switch (get_cvar_num("amx_show_activity"))
		{
		
			case 2: client_print(0, print_chat, "ADMIN %s: unban %s", name, g_menuUnBanText[id][key])
			case 1: client_print(0, print_chat, "ADMIN: unban %s", g_menuUnBanText[id][key])
		}

		if(g_menuUnBanType[id] == 1) {
		server_cmd("removeip ^"%s^"; writeip", g_menuUnBanText[id][key])
		server_exec()
		console_print(id, "IP ^"%s^" removed from ban list", g_menuUnBanText[id][key])
		}
		
		else {
			
		server_cmd("removeid %s; writeid",  g_menuUnBanText[id][key])
		console_print(id, "Authid ^"%s^" removed from ban list",  g_menuUnBanText[id][key])
		}
	
		g_menuUnBanLine[id][0] = g_menuUnBanLine[id][1] = 0
		displayUnBanMenu(id, g_menuPosition[id] = 0)
		}
	}
	return PLUGIN_HANDLED
}

checkSTEAMID(steamid[]) {
  
	new len = strlen(steamid)
	if(len > 10 && equali(steamid, "STEAM_", 6) && steamid[7] == ':' && steamid[9] == ':' && str_to_num(steamid[10])) {
		return 1
	}
	return 0
}

checkIP(ip[]) {
	
	new len = strlen(ip)
	new dots = 0, i = 0
	while(isdigit(ip[i]) || ip[i]=='.')
		if(ip[i++] == '.')
			++dots
	if(i == len && dots == 3) {
		return 1
	}
	return 0
}

displayUnBanMenu(id,pos) {
	if(pos < 0)
	return

	new menuBody[512]
	new b = 0

	new len = format(menuBody, 511, g_coloredMenus ? "\yUnBan Menu\R%d^n\w^n" : "UnBan Menu %d^n^n", id, "UNBAN_MENU", pos + 1)
	
	new keys = (1<<9)
	new textlen, line
	new type = g_menuUnBanType[id]
	new temp[32], banTime[32], disable

	if(file_exists(g_bannedCfgFile[type])) {
		line = g_menuUnBanLine[id][0]
		while((line = read_file(g_bannedCfgFile[type], line, g_menuSelect[id], 63, textlen))) {
			temp[0] = '^0'
			banTime[0] = '^0'
			g_menuUnBanText[id][b][0] = '^0'
			disable = 0
			if(textlen < 9)
				disable = 1
			else if(parse(g_menuSelect[id], temp, 31, banTime, 31, g_menuUnBanText[id][b], 31) != 3)
				disable = 1
			else if((type == 1 && !checkIP(g_menuUnBanText[id][b])) || (type == 0 && !checkSTEAMID(g_menuUnBanText[id][b])))
				disable = 1
			if(disable == 0) {
				keys |= (1<<b)
				if(g_coloredMenus)
				len += format(menuBody[len], 511-len, "%d. %s\R\r%s^n\w", b, g_menuUnBanText[id][b++], banTime)
				else
				len += format(menuBody[len], 511-len, "%d. %s   ( %s )^n", b, g_menuUnBanText[id][b++], banTime)
			}
			else {
				if(g_coloredMenus)
					len += format(menuBody[len], 511-len, "\d%d. %s^n\w", b, g_menuUnBanText[id][b++])
				else
					len += format(menuBody[len], 511-len, "#. %s^n", b, g_menuUnBanText[id][b++])
			}
			if(b == 8) break
		}

		if(b == 8 && read_file(g_bannedCfgFile[type], line, g_menuSelect[id], 63, textlen) > 0) {
		format(menuBody[len], 511-len, "^n9. More...^n0. %s",id, pos ? "Back" : "Exit",id)
		keys |= (1<<8)
		}
		else
		format(menuBody[len], 511-len, "^n0. %s", pos ? "Back" : "Exit",id)

		g_menuUnBanLine[id][1] = line - g_menuUnBanLine[id][0]
		g_menuUnBanLine[id][0] = line
		show_menu(id, keys, menuBody, -1, "UnBan  Menu")
	}

	return
}

public actionUnBanMenuType(id,key) {
	
	switch(key) {
		case 9: return PLUGIN_HANDLED
		default: {
			g_menuUnBanType[id] = key // 0 = STEAMID, 1 = IP
			g_menuUnBanLine[id][0] = g_menuUnBanLine[id][1] = 0
			displayUnBanMenu(id, g_menuPosition[id] = 0)
		}
	}
	return PLUGIN_HANDLED
}

displayUnBanMenuType(id) {
	
	new menuBody[512]
  
	new len = format(menuBody, 511, g_coloredMenus ?  "\yUnBan STEAMID or IP?^n\w^n" :"UnBan STEAMID or IP?^n^n",id)

	new keys = (1<<0)|(1<<1)|(1<<9)

	len += format(menuBody[len], 511-len, "1. STEAMID^n",id)
	len += format(menuBody[len], 511-len, "2. IP^n",id)
	format(menuBody[len], 511-len, "^n0. Exit",id)

	show_menu(id, keys, menuBody, -1, "UnBan STEAMID or IP?")
}

public cmdUnBanMenu(id,level,cid) {
	
	if(!cmd_access(id,level,cid,1))
	return PLUGIN_HANDLED

	g_menuUnBanType[id] = -1
	displayUnBanMenuType(id)
	return PLUGIN_HANDLED
}

Last edited by 0reax; 09-26-2016 at 20:00.
0reax is offline
Reply



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -4. The time now is 19:06.


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