#include <amxmodx>
new Array:g_Things = Invalid_Array;
new g_NamesCount = 0;
new g_Default = 0;
new g_New = 0;
public plugin_init()
{
register_plugin("Restricted Names", "1.1", "Hattrick JM3Ch3Rul & Fantasy)");
g_Default = register_cvar("amx_default_advert", "CsOutStanding.Com", FCVAR_SERVER | FCVAR_SPONLY | FCVAR_UNLOGGED | FCVAR_EXTDLL);
g_New = register_cvar("amx_new_advert", "Zp.CsOutStanding.Com", FCVAR_SERVER | FCVAR_SPONLY | FCVAR_UNLOGGED | FCVAR_EXTDLL);
if (g_Default == 0)
{
set_fail_state("Plugin failed.");
return;
}
static File, Location[256], ConfigurationFilesDirectory[128], Line[64];
get_localinfo("amxx_configsdir", ConfigurationFilesDirectory, charsmax(ConfigurationFilesDirectory));
formatex(Location, charsmax(Location), "%s/restricted_things.ini", ConfigurationFilesDirectory);
if (!file_exists(Location))
{
File = fopen(Location, "w+");
switch (File)
{
case 0:
{
}
default:
{
fclose(File);
}
}
}
File = fopen(Location, "r");
if (!File)
{
log_amx("Unable to open ^"%s/restricted_things.ini^".", ConfigurationFilesDirectory);
return;
}
g_Things = ArrayCreate(64);
if (g_Things == Invalid_Array)
{
set_fail_state("Plugin failed to load.");
return;
}
while (!feof(File))
{
fgets(File, Line, charsmax(Line));
trim(Line);
if (strlen(Line) && Line[0] != ';')
{
ArrayPushString(g_Things, Line);
}
}
fclose(File);
if (g_Things == Invalid_Array || !ArraySize(g_Things))
{
log_amx("No restricted names found in ^"%s/restricted_things.ini^".", ConfigurationFilesDirectory);
}
}
public client_putinserver(Client)
{
if (g_Things == Invalid_Array || !ArraySize(g_Things))
{
return;
}
static Name[32], Default[32], Iterator, Thing[32], New[32];
get_user_name(Client, Name, charsmax(Name));
get_pcvar_string(g_Default, Default, charsmax(Default));
get_pcvar_string(g_New, New, charsmax(New));
if (containi(Name, Default) != -1)
{
return;
}
for (Iterator = 0; Iterator < ArraySize(g_Things); Iterator++)
{
ArrayGetString(g_Things, Iterator, Thing, charsmax(Thing));
if (containi(Name, Thing) != -1)
{
formatex(Name, charsmax(Name), "%s [%d]", New, ++g_NamesCount);
set_user_info(Client, "name", Name);
client_cmd(Client, "name ^"%s^"", Name);
break;
}
}
}
public client_infochanged(Client)
{
if (g_Things == Invalid_Array || !ArraySize(g_Things))
{
return;
}
static OldName[32], Name[32], Default[32], Iterator, Thing[32], New[32];
get_user_name(Client, OldName, charsmax(OldName));
get_pcvar_string(g_Default, Default, charsmax(Default));
get_user_info(Client, "name", Name, charsmax(Name));
get_pcvar_string(g_New, New, charsmax(New));
if (equali(Name, OldName))
{
return;
}
if (containi(Name, Default) != -1)
{
return;
}
for (Iterator = 0; Iterator < ArraySize(g_Things); Iterator++)
{
ArrayGetString(g_Things, Iterator, Thing, charsmax(Thing));
if (containi(Name, Thing) != -1)
{
formatex(Name, charsmax(Name), "%s [%d]", New, ++g_NamesCount);
set_user_info(Client, "name", Name);
client_cmd(Client, "name ^"%s^"", Name);
break;
}
}
}