#include <amxmodx>
#include <amxmisc>
#define PLUGIN "Ban Name"
#define VERSION "1.0"
#define AUTHOR "i dont know who"
#define FILE "names_banned.ini"
new Array:a_ban_names,
array_size,
look_file,
g_cfg[64];
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR);
register_concmd("amx_ban_name", "fnBanName", ADMIN_BAN, "<#userid, AuthID or nick>");
register_concmd("amx_addnick", "fnBanName", ADMIN_BAN, "<nick>");
set_task(1.5, "load_names");
}
public load_names() {
get_configsdir(g_cfg, charsmax(g_cfg));
formatex(g_cfg, charsmax(g_cfg), "%s/%s", g_cfg, FILE);
if(a_ban_names) ArrayDestroy(a_ban_names);
a_ban_names = ArrayCreate(48, 16);
new File = fopen(g_cfg, "rt");
if(File) {
new Name[48];
while(!feof(File)) {
fgets(File, Name, charsmax(Name));
trim(Name);
if(!Name[0])
continue;
ArrayPushString(a_ban_names, Name);
}
array_size = ArraySize(a_ban_names);
fclose(File);
look_file = 1;
}
else {
look_file = 2;
log_amx("Brak '%s' na serwerze", g_cfg);
}
}
public fnBanName(id, level, cid) {
if(!cmd_access(id, level, cid, 2) || look_file == 0)
return PLUGIN_HANDLED;
new param[48], target;
read_argv(0, param, charsmax(param));
new bool:isBan = equali(param, "amx_ban_name") ? true : false;
read_argv(1, param, charsmax(param));
if(isBan) {
target = cmd_target(id, param);
if(!target)
return PLUGIN_HANDLED;
get_user_name(target, param, charsmax(param));
}
if(checkName(param)) {
console_print(id, "Neved miatt kitiltva!");
return PLUGIN_HANDLED;
}
write_file(g_cfg, param);
console_print(id, "Zbanowano!");
ArrayPushString(a_ban_names, param);
array_size = ArraySize(a_ban_names);
if(isBan)
server_cmd("amx_kick #%d ^"Valtoztatsd meg a neved!^"", get_user_userid(target));
return PLUGIN_HANDLED;
}
bool:checkName(name[]) {
new szName[48], bool:check, i;
for(i=0; i<array_size; i++) {
ArrayGetString(a_ban_names, i, szName, charsmax(szName));
if(equali(name, szName)) {
check = true;
break;
}
}
return check;
}
public client_putinserver(id) {
if(is_user_bot(id))
return PLUGIN_CONTINUE;
if(array_size) {
new name[48];
get_user_name(id, name, charsmax(name));
if(checkName(name))
server_cmd("amx_kick #%d ^"Valtoztatsd meg a neved!^"", get_user_userid(id));
}
else if(look_file != 2)
set_task(2.0, "client_putinserver", id);
return PLUGIN_CONTINUE;
}
public client_infochanged(id) {
if(is_user_bot(id))
return PLUGIN_CONTINUE;
new newName[48], oldName[48];
get_user_info(id, "name", newName, charsmax(newName));
get_user_name(id, oldName, charsmax(oldName));
if(!equali(newName, oldName) && checkName(newName))
server_cmd("amx_kick #%d ^"Valtoztatsd meg a neved!^"", get_user_userid(id));
return PLUGIN_CONTINUE;
}