From 232d9700041426014d3552950439ced22e4a0877 Mon Sep 17 00:00:00 2001 From: pepepepito0147 <112137590+pepepepito0147@users.noreply.github.com> Date: Sat, 10 Sep 2022 09:35:08 -0400 Subject: [PATCH 1/6] Update admin.sma --- plugins/admin.sma | 41 ++++++++++++++++++++++------------------- 1 file changed, 22 insertions(+), 19 deletions(-) diff --git a/plugins/admin.sma b/plugins/admin.sma index 56a6862c7..0f4dbc6ad 100755 --- a/plugins/admin.sma +++ b/plugins/admin.sma @@ -26,11 +26,13 @@ new AdminCount; new PLUGINNAME[] = "AMX Mod X" +new g_users_ini[] = "users.ini" + #define ADMIN_LOOKUP (1<<0) #define ADMIN_NORMAL (1<<1) -#define ADMIN_STEAM (1<<2) +#define ADMIN_STEAM (1<<2) #define ADMIN_IPADDR (1<<3) -#define ADMIN_NAME (1<<4) +#define ADMIN_NAME (1<<4) new bool:g_CaseSensitiveName[MAX_PLAYERS + 1]; @@ -92,7 +94,7 @@ public plugin_init() #if defined USING_SQL server_cmd("amx_sqladmins") #else - format(configsDir, 63, "%s/users.ini", configsDir) + formatex(configsDir, charsmax(configsDir), "%s/%s", configsDir, g_users_ini) loadSettings(configsDir) // Load admins accounts #endif } @@ -127,7 +129,7 @@ public addadminfn(id, level, cid) if (equali(t_arg, "name")) idtype |= ADMIN_LOOKUP } else { - console_print(id, "[%s] Unknown id type ^"%s^", use one of: steamid, ip, name", PLUGINNAME, t_arg) + engclient_print(id, engprint_console, "[%s] Unknown id type ^"%s^", use one of: steamid, ip, name", PLUGINNAME, t_arg) return PLUGIN_HANDLED } } @@ -203,7 +205,8 @@ public addadminfn(id, level, cid) if (idtype & ADMIN_LOOKUP && !player) { - console_print(id, "%L", id, "CL_NOT_FOUND") + engclient_print(id, engprint_console, "%L", id, "CL_NOT_FOUND") + return PLUGIN_HANDLED } @@ -277,11 +280,11 @@ AddAdmin(id, auth[], accessflags[], password[], flags[], comment[]="") // Make sure that the users.ini file exists. new configsDir[64] get_configsdir(configsDir, charsmax(configsDir)) - format(configsDir, charsmax(configsDir), "%s/users.ini", configsDir) + formatex(configsDir, charsmax(configsDir), "%s/%s", configsDir, g_users_ini) if (!file_exists(configsDir)) { - console_print(id, "[%s] File ^"%s^" doesn't exist.", PLUGINNAME, configsDir) + engclient_print(id, engprint_console, "[%s] File ^"%s^" doesn't exist.", PLUGINNAME, configsDir) return } @@ -303,7 +306,7 @@ AddAdmin(id, auth[], accessflags[], password[], flags[], comment[]="") if (containi(line_flags, flags) != -1 && equal(line_steamid, auth)) { - console_print(id, "[%s] %s already exists!", PLUGINNAME, auth) + engclient_print(id, engprint_console, "[%s] %s already exists!", PLUGINNAME, auth) return } } @@ -319,10 +322,10 @@ AddAdmin(id, auth[], accessflags[], password[], flags[], comment[]="") { formatex(linetoadd, charsmax(linetoadd), "^r^n^"%s^" ^"%s^" ^"%s^" ^"%s^" ; %s", auth, password, accessflags, flags, comment) } - console_print(id, "Adding:^n%s", linetoadd) + engclient_print(id, engprint_console, "Adding:^n%s", linetoadd) if (!write_file(configsDir, linetoadd)) - console_print(id, "[%s] Failed writing to %s!", PLUGINNAME, configsDir) + engclient_print(id, engprint_console, "[%s] Failed writing to %s!", PLUGINNAME, configsDir) #if defined USING_SQL } @@ -336,11 +339,11 @@ AddAdmin(id, auth[], accessflags[], password[], flags[], comment[]="") { SQL_QueryError(query, error, charsmax(error)) server_print("[AMXX] %L", LANG_SERVER, "SQL_CANT_LOAD_ADMINS", error) - console_print(id, "[AMXX] %L", LANG_SERVER, "SQL_CANT_LOAD_ADMINS", error) + engclient_print(id, engprint_console, "[AMXX] %L", LANG_SERVER, "SQL_CANT_LOAD_ADMINS", error) } else if (SQL_NumResults(query)) { - console_print(id, "[%s] %s already exists!", PLUGINNAME, auth) + engclient_print(id, engprint_console, "[%s] %s already exists!", PLUGINNAME, auth) } else { - console_print(id, "Adding to database:^n^"%s^" ^"%s^" ^"%s^" ^"%s^"", auth, password, accessflags, flags) + engclient_print(id, engprint_console, "Adding to database:^n^"%s^" ^"%s^" ^"%s^" ^"%s^"", auth, password, accessflags, flags) SQL_QueryAndIgnore(sql, "REPLACE INTO `%s` (`auth`, `password`, `access`, `flags`) VALUES ('%s', '%s', '%s', '%s')", table, auth, password, accessflags, flags) } @@ -425,7 +428,7 @@ public adminSql() new configsDir[64] get_configsdir(configsDir, charsmax(configsDir)) - format(configsDir, charsmax(configsDir), "%s/users.ini", configsDir) + formatex(configsDir, charsmax(configsDir), "%s/%s", configsDir, g_users_ini) loadSettings(configsDir) // Load admins accounts return PLUGIN_HANDLED @@ -512,7 +515,7 @@ public cmdReload(id, level, cid) new filename[128] get_configsdir(filename, charsmax(filename)) - format(filename, charsmax(filename), "%s/users.ini", filename) + formatex(filename, charsmax(filename), "%s/%s", filename, g_users_ini) AdminCount = 0; loadSettings(filename); // Re-Load admins accounts @@ -521,11 +524,11 @@ public cmdReload(id, level, cid) { if (AdminCount == 1) { - console_print(id, "[AMXX] %L", LANG_SERVER, "LOADED_ADMIN"); + engclient_print(id, engprint_console, "[AMXX] %L", LANG_SERVER, "LOADED_ADMIN"); } else { - console_print(id, "[AMXX] %L", LANG_SERVER, "LOADED_ADMINS", AdminCount); + engclient_print(id, engprint_console, "[AMXX] %L", LANG_SERVER, "LOADED_ADMINS", AdminCount); } } #else @@ -535,9 +538,9 @@ public cmdReload(id, level, cid) if (id != 0) { if (AdminCount == 1) - console_print(id, "[AMXX] %L", LANG_SERVER, "SQL_LOADED_ADMIN") + engclient_print(id, engprint_console, "[AMXX] %L", LANG_SERVER, "SQL_LOADED_ADMIN") else - console_print(id, "[AMXX] %L", LANG_SERVER, "SQL_LOADED_ADMINS", AdminCount) + engclient_print(id, engprint_console, "[AMXX] %L", LANG_SERVER, "SQL_LOADED_ADMINS", AdminCount) } #endif From 2aecc23239bcffe195ad31752059faaa1c77624b Mon Sep 17 00:00:00 2001 From: pepepepito0147 <112137590+pepepepito0147@users.noreply.github.com> Date: Fri, 16 Sep 2022 11:31:45 -0400 Subject: [PATCH 2/6] Update admin.sma --- plugins/admin.sma | 31 +++++++++++++++---------------- 1 file changed, 15 insertions(+), 16 deletions(-) diff --git a/plugins/admin.sma b/plugins/admin.sma index 0f4dbc6ad..5d6c8fbdb 100755 --- a/plugins/admin.sma +++ b/plugins/admin.sma @@ -26,7 +26,7 @@ new AdminCount; new PLUGINNAME[] = "AMX Mod X" -new g_users_ini[] = "users.ini" +static const g_users_ini[] = "users.ini" #define ADMIN_LOOKUP (1<<0) #define ADMIN_NORMAL (1<<1) @@ -145,7 +145,7 @@ public addadminfn(id, level, cid) idtype |= ADMIN_LOOKUP player = cmd_target(id, arg, CMDTARGET_ALLOW_SELF | CMDTARGET_NO_BOTS) } else { - new _steamid[44] + static _steamid[44] static _players[MAX_PLAYERS], _num, _pv get_players(_players, _num) for (new _i=0; _i<_num; _i++) @@ -206,7 +206,6 @@ public addadminfn(id, level, cid) if (idtype & ADMIN_LOOKUP && !player) { engclient_print(id, engprint_console, "%L", id, "CL_NOT_FOUND") - return PLUGIN_HANDLED } @@ -218,8 +217,8 @@ public addadminfn(id, level, cid) read_argv(3, password, charsmax(password)) } - new auth[33] - new Comment[MAX_NAME_LENGTH]; // name of player to pass to comment field + static auth[33] + static Comment[MAX_NAME_LENGTH]; // name of player to pass to comment field if (idtype & ADMIN_LOOKUP) { get_user_name(player, Comment, charsmax(Comment)) @@ -242,21 +241,21 @@ public addadminfn(id, level, cid) new type[16], len if (idtype & ADMIN_STEAM) - len += format(type[len], charsmax(type) - len, "c") + len += formatex(type[len], charsmax(type) - len, "c") else if (idtype & ADMIN_IPADDR) - len += format(type[len], charsmax(type) - len, "d") + len += formatex(type[len], charsmax(type) - len, "d") if (strlen(password) > 0) - len += format(type[len], charsmax(type) - len, "a") + len += formatex(type[len], charsmax(type) - len, "a") else - len += format(type[len], charsmax(type) - len, "e") + len += formatex(type[len], charsmax(type) - len, "e") AddAdmin(id, auth, flags, password, type, Comment) cmdReload(id, ADMIN_CFG, 0) if (player > 0) { - new name[MAX_NAME_LENGTH] + static name[MAX_NAME_LENGTH] get_user_info(player, "name", name, charsmax(name)) accessUser(player, name) } @@ -544,8 +543,8 @@ public cmdReload(id, level, cid) } #endif - new players[MAX_PLAYERS], num, pv - new name[MAX_NAME_LENGTH] + static players[MAX_PLAYERS], num, pv + static name[MAX_NAME_LENGTH] get_players(players, num) for (new i=0; i<%s><>^" became an admin (account ^"%s^") (access ^"%s^") (address ^"%s^")", name, get_user_userid(id), authid, AuthData, sflags, ip) @@ -713,7 +712,7 @@ accessUser(id, name[] = "") { remove_user_flags(id) - new userip[32], userauthid[32], password[32], passfield[32], username[MAX_NAME_LENGTH] + static userip[32], userauthid[32], password[32], passfield[32], username[MAX_NAME_LENGTH] get_user_ip(id, userip, charsmax(userip), 1) get_user_authid(id, userauthid, charsmax(userauthid)) @@ -763,7 +762,7 @@ public client_infochanged(id) return PLUGIN_CONTINUE } - new newname[MAX_NAME_LENGTH], oldname[MAX_NAME_LENGTH] + static newname[MAX_NAME_LENGTH], oldname[MAX_NAME_LENGTH] get_user_name(id, oldname, charsmax(oldname)) get_user_info(id, "name", newname, charsmax(newname)) From 2f776e1749459f5c68de189601de2e0869b42e19 Mon Sep 17 00:00:00 2001 From: pepepepito0147 <112137590+pepepepito0147@users.noreply.github.com> Date: Tue, 4 Jul 2023 20:35:23 -0400 Subject: [PATCH 3/6] Update admin.sma new variables already defined passed to static --- plugins/admin.sma | 54 +++++++++++++++++++++++------------------------ 1 file changed, 27 insertions(+), 27 deletions(-) diff --git a/plugins/admin.sma b/plugins/admin.sma index 5d6c8fbdb..9df45d445 100755 --- a/plugins/admin.sma +++ b/plugins/admin.sma @@ -26,7 +26,7 @@ new AdminCount; new PLUGINNAME[] = "AMX Mod X" -static const g_users_ini[] = "users.ini" +new const g_users_ini[] = "users.ini" #define ADMIN_LOOKUP (1<<0) #define ADMIN_NORMAL (1<<1) @@ -111,7 +111,7 @@ public addadminfn(id, level, cid) if (read_argc() >= 5) { - new t_arg[16] + static t_arg[16] read_argv(4, t_arg, charsmax(t_arg)) if (equali(t_arg, "steam") || equali(t_arg, "steamid") || equali(t_arg, "auth")) @@ -134,7 +134,7 @@ public addadminfn(id, level, cid) } } - new arg[33] + static arg[33] read_argv(1, arg, charsmax(arg)) new player = -1 @@ -178,7 +178,7 @@ public addadminfn(id, level, cid) else if (idtype & ADMIN_IPADDR) { new len = strlen(arg) - new dots, chars + static dots, chars for (new i = 0; i < len; i++) { @@ -209,10 +209,10 @@ public addadminfn(id, level, cid) return PLUGIN_HANDLED } - new flags[64] + static flags[64] read_argv(2, flags, charsmax(flags)) - new password[64] + static password[64] if (read_argc() >= 4) { read_argv(3, password, charsmax(password)) } @@ -238,7 +238,7 @@ public addadminfn(id, level, cid) copy(auth, charsmax(auth), arg) } - new type[16], len + static type[16], len if (idtype & ADMIN_STEAM) len += formatex(type[len], charsmax(type) - len, "c") @@ -266,7 +266,7 @@ public addadminfn(id, level, cid) AddAdmin(id, auth[], accessflags[], password[], flags[], comment[]="") { #if defined USING_SQL - new error[128], errno + static error[128], errno new Handle:info = SQL_MakeStdTuple() new Handle:sql = SQL_Connect(info, errno, error, charsmax(error)) @@ -277,7 +277,7 @@ AddAdmin(id, auth[], accessflags[], password[], flags[], comment[]="") //backup to users.ini #endif // Make sure that the users.ini file exists. - new configsDir[64] + static configsDir[64] get_configsdir(configsDir, charsmax(configsDir)) formatex(configsDir, charsmax(configsDir), "%s/%s", configsDir, g_users_ini) @@ -288,9 +288,9 @@ AddAdmin(id, auth[], accessflags[], password[], flags[], comment[]="") } // Make sure steamid isn't already in file. - new line = 0, textline[256], len + static line = 0, textline[256], len const SIZE = 63 - new line_steamid[SIZE + 1], line_password[SIZE + 1], line_accessflags[SIZE + 1], line_flags[SIZE + 1], parsedParams + static line_steamid[SIZE + 1], line_password[SIZE + 1], line_accessflags[SIZE + 1], line_flags[SIZE + 1], parsedParams // while ((line = read_file(configsDir, line, textline, charsmax(textline), len))) @@ -311,7 +311,7 @@ AddAdmin(id, auth[], accessflags[], password[], flags[], comment[]="") } // If we came here, steamid doesn't exist in users.ini. Add it. - new linetoadd[512] + static linetoadd[512] if (comment[0]==0) { @@ -328,7 +328,7 @@ AddAdmin(id, auth[], accessflags[], password[], flags[], comment[]="") #if defined USING_SQL } - new table[32] + static table[32] get_cvar_string("amx_sql_table", table, charsmax(table)) @@ -356,15 +356,15 @@ AddAdmin(id, auth[], accessflags[], password[], flags[], comment[]="") loadSettings(szFilename[]) { - new File=fopen(szFilename,"r"); + static File; File=fopen(szFilename,"r"); if (File) { - new Text[512]; - new Flags[32]; - new Access[32] - new AuthData[44]; - new Password[32]; + static Text[512]; + static Flags[32]; + static Access[32] + static AuthData[44]; + static Password[32]; while (fgets(File, Text, charsmax(Text))) { @@ -410,7 +410,7 @@ loadSettings(szFilename[]) #if defined USING_SQL public adminSql() { - new table[32], error[128], type[12], errno + static table[32], error[128], type[12], errno new Handle:info = SQL_MakeStdTuple() new Handle:sql = SQL_Connect(info, errno, error, charsmax(error)) @@ -424,7 +424,7 @@ public adminSql() server_print("[AMXX] %L", LANG_SERVER, "SQL_CANT_CON", error) //backup to users.ini - new configsDir[64] + static configsDir[64] get_configsdir(configsDir, charsmax(configsDir)) formatex(configsDir, charsmax(configsDir), "%s/%s", configsDir, g_users_ini) @@ -464,10 +464,10 @@ public adminSql() new qcolAccess = SQL_FieldNameToNum(query, "access") new qcolFlags = SQL_FieldNameToNum(query, "flags") - new AuthData[44]; - new Password[44]; - new Access[32]; - new Flags[32]; + static AuthData[44]; + static Password[44]; + static Access[32]; + static Flags[32]; while (SQL_MoreResults(query)) { @@ -511,7 +511,7 @@ public cmdReload(id, level, cid) admins_flush(); #if !defined USING_SQL - new filename[128] + static filename[128] get_configsdir(filename, charsmax(filename)) formatex(filename, charsmax(filename), "%s/%s", filename, g_users_ini) @@ -687,7 +687,7 @@ getAccess(id, name[], authid[], ip[], password[]) } else { - new defaccess[32] + static defaccess[32] get_pcvar_string(amx_default_access, defaccess, charsmax(defaccess)) From c3f2fd8b31cde0d4e680b3cc0e42b5b6b17d9cdf Mon Sep 17 00:00:00 2001 From: pepepepito0147 <112137590+pepepepito0147@users.noreply.github.com> Date: Tue, 4 Jul 2023 22:34:59 -0400 Subject: [PATCH 4/6] Update appveyor.yml fix macOS compiler --- appveyor.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/appveyor.yml b/appveyor.yml index f48948881..c0270731a 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -98,6 +98,8 @@ for: mkdir -p amxmodx ../support/checkout-deps.sh + + brew install ca-certificates brew install nasm From b84fe70b61ddc5496186bfe854a91a3714540a0b Mon Sep 17 00:00:00 2001 From: pepepepito0147 <112137590+pepepepito0147@users.noreply.github.com> Date: Wed, 5 Jul 2023 16:20:23 -0400 Subject: [PATCH 5/6] Update admin.sma use max size according to amxconst --- plugins/admin.sma | 68 +++++++++++++++++++++++------------------------ 1 file changed, 34 insertions(+), 34 deletions(-) diff --git a/plugins/admin.sma b/plugins/admin.sma index 9df45d445..457aa5120 100755 --- a/plugins/admin.sma +++ b/plugins/admin.sma @@ -82,7 +82,7 @@ public plugin_init() remove_user_flags(0, read_flags("z")) // Remove 'user' flag from server rights - new configsDir[64] + new configsDir[MAX_RESOURCE_PATH_LENGTH] get_configsdir(configsDir, charsmax(configsDir)) server_cmd("exec %s/sql.cfg", configsDir) @@ -111,7 +111,7 @@ public addadminfn(id, level, cid) if (read_argc() >= 5) { - static t_arg[16] + static t_arg[MAX_PLAYERS] read_argv(4, t_arg, charsmax(t_arg)) if (equali(t_arg, "steam") || equali(t_arg, "steamid") || equali(t_arg, "auth")) @@ -134,7 +134,7 @@ public addadminfn(id, level, cid) } } - static arg[33] + static arg[MAX_PLAYERS] read_argv(1, arg, charsmax(arg)) new player = -1 @@ -145,7 +145,7 @@ public addadminfn(id, level, cid) idtype |= ADMIN_LOOKUP player = cmd_target(id, arg, CMDTARGET_ALLOW_SELF | CMDTARGET_NO_BOTS) } else { - static _steamid[44] + static _steamid[MAX_AUTHID_LENGTH] static _players[MAX_PLAYERS], _num, _pv get_players(_players, _num) for (new _i=0; _i<_num; _i++) @@ -209,15 +209,15 @@ public addadminfn(id, level, cid) return PLUGIN_HANDLED } - static flags[64] + static flags[MAX_PLAYERS] read_argv(2, flags, charsmax(flags)) - static password[64] + static password[MAX_PLAYERS] if (read_argc() >= 4) { read_argv(3, password, charsmax(password)) } - static auth[33] + static auth[MAX_AUTHID_LENGTH] static Comment[MAX_NAME_LENGTH]; // name of player to pass to comment field if (idtype & ADMIN_LOOKUP) { @@ -238,7 +238,7 @@ public addadminfn(id, level, cid) copy(auth, charsmax(auth), arg) } - static type[16], len + static type[MAX_PLAYERS / 2], len if (idtype & ADMIN_STEAM) len += formatex(type[len], charsmax(type) - len, "c") @@ -266,7 +266,7 @@ public addadminfn(id, level, cid) AddAdmin(id, auth[], accessflags[], password[], flags[], comment[]="") { #if defined USING_SQL - static error[128], errno + static error[MAX_RESOURCE_PATH_LENGTH * 2], errno new Handle:info = SQL_MakeStdTuple() new Handle:sql = SQL_Connect(info, errno, error, charsmax(error)) @@ -277,7 +277,7 @@ AddAdmin(id, auth[], accessflags[], password[], flags[], comment[]="") //backup to users.ini #endif // Make sure that the users.ini file exists. - static configsDir[64] + static configsDir[MAX_RESOURCE_PATH_LENGTH] get_configsdir(configsDir, charsmax(configsDir)) formatex(configsDir, charsmax(configsDir), "%s/%s", configsDir, g_users_ini) @@ -288,9 +288,9 @@ AddAdmin(id, auth[], accessflags[], password[], flags[], comment[]="") } // Make sure steamid isn't already in file. - static line = 0, textline[256], len - const SIZE = 63 - static line_steamid[SIZE + 1], line_password[SIZE + 1], line_accessflags[SIZE + 1], line_flags[SIZE + 1], parsedParams + static line = 0, textline[MAX_USER_INFO_LENGTH], len + + static line_steamid[MAX_RESOURCE_PATH_LENGTH], line_password[MAX_RESOURCE_PATH_LENGTH], line_accessflags[MAX_RESOURCE_PATH_LENGTH], line_flags[MAX_RESOURCE_PATH_LENGTH], parsedParams // while ((line = read_file(configsDir, line, textline, charsmax(textline), len))) @@ -298,7 +298,7 @@ AddAdmin(id, auth[], accessflags[], password[], flags[], comment[]="") if (len == 0 || equal(textline, ";", 1)) continue // comment line - parsedParams = parse(textline, line_steamid, SIZE, line_password, SIZE, line_accessflags, SIZE, line_flags, SIZE) + parsedParams = parse(textline, line_steamid, charsmax(line_steamid), line_password, charsmax(line_password), line_accessflags, charsmax(line_accessflags), line_flags, charsmax(line_flags)) if (parsedParams != 4) continue // Send warning/error? @@ -311,7 +311,7 @@ AddAdmin(id, auth[], accessflags[], password[], flags[], comment[]="") } // If we came here, steamid doesn't exist in users.ini. Add it. - static linetoadd[512] + static linetoadd[MAX_MENU_LENGTH] if (comment[0]==0) { @@ -328,7 +328,7 @@ AddAdmin(id, auth[], accessflags[], password[], flags[], comment[]="") #if defined USING_SQL } - static table[32] + static table[MAX_PLAYERS] get_cvar_string("amx_sql_table", table, charsmax(table)) @@ -360,11 +360,11 @@ loadSettings(szFilename[]) if (File) { - static Text[512]; - static Flags[32]; - static Access[32] - static AuthData[44]; - static Password[32]; + static Text[MAX_MENU_LENGTH]; + static Flags[MAX_PLAYERS]; + static Access[MAX_PLAYERS] + static AuthData[MAX_AUTHID_LENGTH]; + static Password[MAX_PLAYERS]; while (fgets(File, Text, charsmax(Text))) { @@ -410,7 +410,7 @@ loadSettings(szFilename[]) #if defined USING_SQL public adminSql() { - static table[32], error[128], type[12], errno + static table[MAX_PLAYERS], error[MAX_RESOURCE_PATH_LENGTH * 2], type[12], errno new Handle:info = SQL_MakeStdTuple() new Handle:sql = SQL_Connect(info, errno, error, charsmax(error)) @@ -424,7 +424,7 @@ public adminSql() server_print("[AMXX] %L", LANG_SERVER, "SQL_CANT_CON", error) //backup to users.ini - static configsDir[64] + static configsDir[MAX_RESOURCE_PATH_LENGTH] get_configsdir(configsDir, charsmax(configsDir)) formatex(configsDir, charsmax(configsDir), "%s/%s", configsDir, g_users_ini) @@ -464,10 +464,10 @@ public adminSql() new qcolAccess = SQL_FieldNameToNum(query, "access") new qcolFlags = SQL_FieldNameToNum(query, "flags") - static AuthData[44]; - static Password[44]; - static Access[32]; - static Flags[32]; + static AuthData[MAX_AUTHID_LENGTH]; + static Password[MAX_PLAYERS]; + static Access[MAX_PLAYERS]; + static Flags[MAX_PLAYERS]; while (SQL_MoreResults(query)) { @@ -511,7 +511,7 @@ public cmdReload(id, level, cid) admins_flush(); #if !defined USING_SQL - static filename[128] + static filename[MAX_RESOURCE_PATH_LENGTH * 2] get_configsdir(filename, charsmax(filename)) formatex(filename, charsmax(filename), "%s/%s", filename, g_users_ini) @@ -564,8 +564,8 @@ getAccess(id, name[], authid[], ip[], password[]) static Count; static Flags; static Access; - static AuthData[44]; - static Password[32]; + static AuthData[MAX_AUTHID_LENGTH]; + static Password[MAX_PLAYERS]; g_CaseSensitiveName[id] = false; @@ -647,7 +647,7 @@ getAccess(id, name[], authid[], ip[], password[]) if (Flags & FLAG_NOPASS) { result |= 8 - static sflags[32] + static sflags[MAX_PLAYERS] get_flags(Access, sflags, charsmax(sflags)) set_user_flags(id, Access) @@ -664,7 +664,7 @@ getAccess(id, name[], authid[], ip[], password[]) result |= 12 set_user_flags(id, Access) - static sflags[32] + static sflags[MAX_PLAYERS] get_flags(Access, sflags, charsmax(sflags)) log_amx("Login: ^"%s<%d><%s><>^" became an admin (account ^"%s^") (access ^"%s^") (address ^"%s^")", name, get_user_userid(id), authid, AuthData, sflags, ip) @@ -687,7 +687,7 @@ getAccess(id, name[], authid[], ip[], password[]) } else { - static defaccess[32] + static defaccess[MAX_PLAYERS] get_pcvar_string(amx_default_access, defaccess, charsmax(defaccess)) @@ -712,7 +712,7 @@ accessUser(id, name[] = "") { remove_user_flags(id) - static userip[32], userauthid[32], password[32], passfield[32], username[MAX_NAME_LENGTH] + static userip[MAX_IP_LENGTH], userauthid[MAX_AUTHID_LENGTH], password[MAX_PLAYERS], passfield[MAX_PLAYERS], username[MAX_NAME_LENGTH] get_user_ip(id, userip, charsmax(userip), 1) get_user_authid(id, userauthid, charsmax(userauthid)) From edf2e7ba2a23baf83c3acf3dfecfb69d97554ace Mon Sep 17 00:00:00 2001 From: pepepepito0147 <112137590+pepepepito0147@users.noreply.github.com> Date: Thu, 6 Jul 2023 08:29:44 -0400 Subject: [PATCH 6/6] Update admin.sma we free, memory ;) --- plugins/admin.sma | 470 +++++++++++++++++++++++++++------------------- 1 file changed, 279 insertions(+), 191 deletions(-) diff --git a/plugins/admin.sma b/plugins/admin.sma index 457aa5120..9a47ec33b 100755 --- a/plugins/admin.sma +++ b/plugins/admin.sma @@ -20,9 +20,9 @@ #include #endif -//new Vector:AdminList; +//new Vector:AdminList -new AdminCount; +new AdminCount new PLUGINNAME[] = "AMX Mod X" @@ -34,12 +34,12 @@ new const g_users_ini[] = "users.ini" #define ADMIN_IPADDR (1<<3) #define ADMIN_NAME (1<<4) -new bool:g_CaseSensitiveName[MAX_PLAYERS + 1]; +new bool:g_CaseSensitiveName[MAX_PLAYERS + 1] // pcvars -new amx_mode; -new amx_password_field; -new amx_default_access; +new amx_mode +new amx_password_field +new amx_default_access public plugin_init() { @@ -50,9 +50,10 @@ public plugin_init() #endif register_dictionary("admin.txt") register_dictionary("common.txt") - amx_mode=register_cvar("amx_mode", "1", FCVAR_PROTECTED) - amx_password_field=register_cvar("amx_password_field", "_pw", FCVAR_PROTECTED) - amx_default_access=register_cvar("amx_default_access", "", FCVAR_PROTECTED) + + amx_mode = register_cvar("amx_mode", "1", FCVAR_PROTECTED) + amx_password_field = register_cvar("amx_password_field", "_pw", FCVAR_PROTECTED) + amx_default_access = register_cvar("amx_default_access", "", FCVAR_PROTECTED) register_cvar("amx_vote_ratio", "0.02") register_cvar("amx_vote_time", "10") @@ -80,268 +81,316 @@ public plugin_init() register_concmd("amx_reloadadmins", "cmdReload", ADMIN_CFG) register_concmd("amx_addadmin", "addadminfn", ADMIN_RCON, " [password] [authtype] - add specified player as an admin to users.ini") - remove_user_flags(0, read_flags("z")) // Remove 'user' flag from server rights - + remove_user_flags(0, read_flags("z")) // Remove 'user' flag from server rights + new configsDir[MAX_RESOURCE_PATH_LENGTH] + get_configsdir(configsDir, charsmax(configsDir)) server_cmd("exec %s/sql.cfg", configsDir) // Create a vector of 5 cells to store the info. - //AdminList=vector_create(5); - + //AdminList=vector_create(5) #if defined USING_SQL server_cmd("amx_sqladmins") #else formatex(configsDir, charsmax(configsDir), "%s/%s", configsDir, g_users_ini) - loadSettings(configsDir) // Load admins accounts + + loadSettings(configsDir) // Load admins accounts #endif } + public client_connect(id) { - g_CaseSensitiveName[id] = false; + g_CaseSensitiveName[id] = false } + public addadminfn(id, level, cid) { - if (!cmd_access(id, level, cid, 3)) + if( !cmd_access(id, level, cid, 3) ) return PLUGIN_HANDLED new idtype = ADMIN_STEAM | ADMIN_LOOKUP - if (read_argc() >= 5) + if(read_argc() >= 5) { - static t_arg[MAX_PLAYERS] + new t_arg[MAX_PLAYERS] + read_argv(4, t_arg, charsmax(t_arg)) - if (equali(t_arg, "steam") || equali(t_arg, "steamid") || equali(t_arg, "auth")) + if(equali(t_arg, "steam") || equali(t_arg, "steamid") || equali(t_arg, "auth")) { idtype = ADMIN_STEAM } - else if (equali(t_arg, "ip")) + else if(equali(t_arg, "ip")) { idtype = ADMIN_IPADDR } - else if (equali(t_arg, "name") || equali(t_arg, "nick")) + else if(equali(t_arg, "name") || equali(t_arg, "nick")) { idtype = ADMIN_NAME - if (equali(t_arg, "name")) + if(equali(t_arg, "name")) idtype |= ADMIN_LOOKUP - } else { + } + else + { engclient_print(id, engprint_console, "[%s] Unknown id type ^"%s^", use one of: steamid, ip, name", PLUGINNAME, t_arg) + return PLUGIN_HANDLED } } - static arg[MAX_PLAYERS] + new arg[MAX_PLAYERS] + read_argv(1, arg, charsmax(arg)) + new player = -1 - if (idtype & ADMIN_STEAM) + if(idtype & ADMIN_STEAM) { - if (containi(arg, "STEAM_0:") == -1) + if(containi(arg, "STEAM_0:") == -1) { idtype |= ADMIN_LOOKUP + player = cmd_target(id, arg, CMDTARGET_ALLOW_SELF | CMDTARGET_NO_BOTS) - } else { - static _steamid[MAX_AUTHID_LENGTH] + } + else + { static _players[MAX_PLAYERS], _num, _pv + + new _steamid[MAX_AUTHID_LENGTH] + get_players(_players, _num) - for (new _i=0; _i<_num; _i++) + + for(new _i = 0; _i < _num; _i++) { _pv = _players[_i] + get_user_authid(_pv, _steamid, charsmax(_steamid)) - if (!_steamid[0]) + + if( !_steamid[0] ) continue - if (equal(_steamid, arg)) + + if(equal(_steamid, arg)) { player = _pv + break } } - if (player < 1) + + if(player < 1) { idtype &= ~ADMIN_LOOKUP } } } - else if (idtype & ADMIN_NAME) + else if(idtype & ADMIN_NAME) { player = cmd_target(id, arg, CMDTARGET_ALLOW_SELF | CMDTARGET_NO_BOTS) - if (player) + if(player) idtype |= ADMIN_LOOKUP else idtype &= ~ADMIN_LOOKUP } - else if (idtype & ADMIN_IPADDR) + else if(idtype & ADMIN_IPADDR) { new len = strlen(arg) - static dots, chars - for (new i = 0; i < len; i++) + new dots, chars + + for(new i = 0; i < len; i++) { - if (arg[i] == '.') + if(arg[i] == '.') { - if (!chars || chars > 3) + if( !chars || chars > 3 ) break - if (++dots > 3) + if(++dots > 3) break chars = 0 - } else { + } + else + { chars++ } - if (dots != 3 || !chars || chars > 3) + if(dots != 3 || !chars || chars > 3) { idtype |= ADMIN_LOOKUP + player = find_player("dh", arg) } } } - if (idtype & ADMIN_LOOKUP && !player) + if(idtype & ADMIN_LOOKUP && !player) { engclient_print(id, engprint_console, "%L", id, "CL_NOT_FOUND") + return PLUGIN_HANDLED } - static flags[MAX_PLAYERS] + new flags[MAX_PLAYERS] + read_argv(2, flags, charsmax(flags)) - static password[MAX_PLAYERS] - if (read_argc() >= 4) { + new password[MAX_PLAYERS] + + if(read_argc() >= 4) + { read_argv(3, password, charsmax(password)) } - static auth[MAX_AUTHID_LENGTH] - static Comment[MAX_NAME_LENGTH]; // name of player to pass to comment field - if (idtype & ADMIN_LOOKUP) + new auth[MAX_AUTHID_LENGTH] + + new Comment[MAX_NAME_LENGTH] // name of player to pass to comment field + + if(idtype & ADMIN_LOOKUP) { get_user_name(player, Comment, charsmax(Comment)) - if (idtype & ADMIN_STEAM) + + if(idtype & ADMIN_STEAM) { get_user_authid(player, auth, charsmax(auth)) } - else if (idtype & ADMIN_IPADDR) + else if(idtype & ADMIN_IPADDR) { get_user_ip(player, auth, charsmax(auth), 1) } - else if (idtype & ADMIN_NAME) + else if(idtype & ADMIN_NAME) { get_user_name(player, auth, charsmax(auth)) } - } else { + } + else + { copy(auth, charsmax(auth), arg) } - static type[MAX_PLAYERS / 2], len + new type[MAX_PLAYERS / 2], len - if (idtype & ADMIN_STEAM) + if(idtype & ADMIN_STEAM) len += formatex(type[len], charsmax(type) - len, "c") - else if (idtype & ADMIN_IPADDR) + else if(idtype & ADMIN_IPADDR) len += formatex(type[len], charsmax(type) - len, "d") - if (strlen(password) > 0) + if(strlen(password) > 0) len += formatex(type[len], charsmax(type) - len, "a") else len += formatex(type[len], charsmax(type) - len, "e") AddAdmin(id, auth, flags, password, type, Comment) + cmdReload(id, ADMIN_CFG, 0) - if (player > 0) + if(player > 0) { - static name[MAX_NAME_LENGTH] + new name[MAX_NAME_LENGTH] + get_user_info(player, "name", name, charsmax(name)) + accessUser(player, name) } - + return PLUGIN_HANDLED } AddAdmin(id, auth[], accessflags[], password[], flags[], comment[]="") { #if defined USING_SQL - static error[MAX_RESOURCE_PATH_LENGTH * 2], errno + new error[MAX_RESOURCE_PATH_LENGTH * 2], errno new Handle:info = SQL_MakeStdTuple() + new Handle:sql = SQL_Connect(info, errno, error, charsmax(error)) - if (sql == Empty_Handle) + if(sql == Empty_Handle) { server_print("[AMXX] %L", LANG_SERVER, "SQL_CANT_CON", error) //backup to users.ini #endif // Make sure that the users.ini file exists. - static configsDir[MAX_RESOURCE_PATH_LENGTH] + new configsDir[MAX_RESOURCE_PATH_LENGTH] + get_configsdir(configsDir, charsmax(configsDir)) + formatex(configsDir, charsmax(configsDir), "%s/%s", configsDir, g_users_ini) - if (!file_exists(configsDir)) + if( !file_exists(configsDir) ) { engclient_print(id, engprint_console, "[%s] File ^"%s^" doesn't exist.", PLUGINNAME, configsDir) + return } // Make sure steamid isn't already in file. - static line = 0, textline[MAX_USER_INFO_LENGTH], len + new line = 0, textline[MAX_USER_INFO_LENGTH], len - static line_steamid[MAX_RESOURCE_PATH_LENGTH], line_password[MAX_RESOURCE_PATH_LENGTH], line_accessflags[MAX_RESOURCE_PATH_LENGTH], line_flags[MAX_RESOURCE_PATH_LENGTH], parsedParams + new line_steamid[MAX_RESOURCE_PATH_LENGTH], line_password[MAX_RESOURCE_PATH_LENGTH], line_accessflags[MAX_RESOURCE_PATH_LENGTH], line_flags[MAX_RESOURCE_PATH_LENGTH], parsedParams // - while ((line = read_file(configsDir, line, textline, charsmax(textline), len))) + while((line = read_file(configsDir, line, textline, charsmax(textline), len))) { - if (len == 0 || equal(textline, ";", 1)) + if(len == 0 || equal(textline, ";", 1)) continue // comment line parsedParams = parse(textline, line_steamid, charsmax(line_steamid), line_password, charsmax(line_password), line_accessflags, charsmax(line_accessflags), line_flags, charsmax(line_flags)) - if (parsedParams != 4) + if(parsedParams != 4) continue // Send warning/error? - if (containi(line_flags, flags) != -1 && equal(line_steamid, auth)) + if(containi(line_flags, flags) != -1 && equal(line_steamid, auth)) { engclient_print(id, engprint_console, "[%s] %s already exists!", PLUGINNAME, auth) + return } } // If we came here, steamid doesn't exist in users.ini. Add it. - static linetoadd[MAX_MENU_LENGTH] + new linetoadd[MAX_MENU_LENGTH] - if (comment[0]==0) + if(comment[0] == 0) { formatex(linetoadd, charsmax(linetoadd), "^r^n^"%s^" ^"%s^" ^"%s^" ^"%s^"", auth, password, accessflags, flags) } - else + else { - formatex(linetoadd, charsmax(linetoadd), "^r^n^"%s^" ^"%s^" ^"%s^" ^"%s^" ; %s", auth, password, accessflags, flags, comment) + formatex(linetoadd, charsmax(linetoadd), "^r^n^"%s^" ^"%s^" ^"%s^" ^"%s^" %s", auth, password, accessflags, flags, comment) } + engclient_print(id, engprint_console, "Adding:^n%s", linetoadd) - if (!write_file(configsDir, linetoadd)) + if( !write_file(configsDir, linetoadd) ) engclient_print(id, engprint_console, "[%s] Failed writing to %s!", PLUGINNAME, configsDir) #if defined USING_SQL } - static table[MAX_PLAYERS] + new table[MAX_PLAYERS] get_cvar_string("amx_sql_table", table, charsmax(table)) new Handle:query = SQL_PrepareQuery(sql, "SELECT * FROM `%s` WHERE (`auth` = '%s')", table, auth) - if (!SQL_Execute(query)) + if( !SQL_Execute(query) ) { SQL_QueryError(query, error, charsmax(error)) + server_print("[AMXX] %L", LANG_SERVER, "SQL_CANT_LOAD_ADMINS", error) + engclient_print(id, engprint_console, "[AMXX] %L", LANG_SERVER, "SQL_CANT_LOAD_ADMINS", error) - } else if (SQL_NumResults(query)) { + } + else if(SQL_NumResults(query)) + { engclient_print(id, engprint_console, "[%s] %s already exists!", PLUGINNAME, auth) - } else { + } + else + { engclient_print(id, engprint_console, "Adding to database:^n^"%s^" ^"%s^" ^"%s^" ^"%s^"", auth, password, accessflags, flags) SQL_QueryAndIgnore(sql, "REPLACE INTO `%s` (`auth`, `password`, `access`, `flags`) VALUES ('%s', '%s', '%s', '%s')", table, auth, password, accessflags, flags) @@ -356,78 +405,81 @@ AddAdmin(id, auth[], accessflags[], password[], flags[], comment[]="") loadSettings(szFilename[]) { - static File; File=fopen(szFilename,"r"); + new File = fopen(szFilename, "r") - if (File) + if(File) { - static Text[MAX_MENU_LENGTH]; - static Flags[MAX_PLAYERS]; - static Access[MAX_PLAYERS] - static AuthData[MAX_AUTHID_LENGTH]; - static Password[MAX_PLAYERS]; + new Text[MAX_MENU_LENGTH] + new Flags[MAX_PLAYERS] + new Access[MAX_PLAYERS] + new AuthData[MAX_AUTHID_LENGTH] + new Password[MAX_PLAYERS] - while (fgets(File, Text, charsmax(Text))) + while(fgets(File, Text, charsmax(Text))) { - trim(Text); + trim(Text) // comment - if (Text[0]==';') + if(Text[0] == ';') { - continue; + continue } - Flags[0]=0; - Access[0]=0; - AuthData[0]=0; - Password[0]=0; + Flags[0] = 0 + Access[0] = 0 + AuthData[0] = 0 + Password[0] = 0 // not enough parameters - if (parse(Text,AuthData,charsmax(AuthData),Password,charsmax(Password),Access,charsmax(Access),Flags,charsmax(Flags)) < 2) + if(parse(Text, AuthData, charsmax(AuthData), Password, charsmax(Password), Access, charsmax(Access), Flags, charsmax(Flags)) < 2) { - continue; + continue } - admins_push(AuthData,Password,read_flags(Access),read_flags(Flags)); - - AdminCount++; + admins_push(AuthData, Password, read_flags(Access), read_flags(Flags)) + + AdminCount++ } - fclose(File); + fclose(File) } - if (AdminCount == 1) + if(AdminCount == 1) { - server_print("[AMXX] %L", LANG_SERVER, "LOADED_ADMIN"); + server_print("[AMXX] %L", LANG_SERVER, "LOADED_ADMIN") } else { - server_print("[AMXX] %L", LANG_SERVER, "LOADED_ADMINS", AdminCount); + server_print("[AMXX] %L", LANG_SERVER, "LOADED_ADMINS", AdminCount) } - return 1; + return 1 } #if defined USING_SQL public adminSql() { - static table[MAX_PLAYERS], error[MAX_RESOURCE_PATH_LENGTH * 2], type[12], errno + new table[MAX_PLAYERS], error[MAX_RESOURCE_PATH_LENGTH * 2], type[12], errno new Handle:info = SQL_MakeStdTuple() + new Handle:sql = SQL_Connect(info, errno, error, charsmax(error)) get_cvar_string("amx_sql_table", table, charsmax(table)) SQL_GetAffinity(type, charsmax(type)) - if (sql == Empty_Handle) + if(sql == Empty_Handle) { server_print("[AMXX] %L", LANG_SERVER, "SQL_CANT_CON", error) //backup to users.ini - static configsDir[MAX_RESOURCE_PATH_LENGTH] + new configsDir[MAX_RESOURCE_PATH_LENGTH] get_configsdir(configsDir, charsmax(configsDir)) + formatex(configsDir, charsmax(configsDir), "%s/%s", configsDir, g_users_ini) + loadSettings(configsDir) // Load admins accounts return PLUGIN_HANDLED @@ -435,27 +487,34 @@ public adminSql() new Handle:query - if (equali(type, "sqlite")) + if(equali(type, "sqlite")) { - if (!sqlite_TableExists(sql, table)) + if( !sqlite_TableExists(sql, table) ) { SQL_QueryAndIgnore(sql, "CREATE TABLE %s ( auth TEXT NOT NULL DEFAULT '', password TEXT NOT NULL DEFAULT '', access TEXT NOT NULL DEFAULT '', flags TEXT NOT NULL DEFAULT '' )", table) } query = SQL_PrepareQuery(sql, "SELECT auth, password, access, flags FROM %s", table) - } else { + } + else + { SQL_QueryAndIgnore(sql, "CREATE TABLE IF NOT EXISTS `%s` ( `auth` VARCHAR( 32 ) NOT NULL, `password` VARCHAR( 32 ) NOT NULL, `access` VARCHAR( 32 ) NOT NULL, `flags` VARCHAR( 32 ) NOT NULL ) COMMENT = 'AMX Mod X Admins'", table) + query = SQL_PrepareQuery(sql,"SELECT `auth`,`password`,`access`,`flags` FROM `%s`", table) } - if (!SQL_Execute(query)) + if( !SQL_Execute(query) ) { SQL_QueryError(query, error, charsmax(error)) + server_print("[AMXX] %L", LANG_SERVER, "SQL_CANT_LOAD_ADMINS", error) - } else if (!SQL_NumResults(query)) { + } + else if( !SQL_NumResults(query) ) + { server_print("[AMXX] %L", LANG_SERVER, "NO_ADMINS") - } else { - + } + else + { AdminCount = 0 /** do this incase people change the query order and forget to modify below */ @@ -464,25 +523,26 @@ public adminSql() new qcolAccess = SQL_FieldNameToNum(query, "access") new qcolFlags = SQL_FieldNameToNum(query, "flags") - static AuthData[MAX_AUTHID_LENGTH]; - static Password[MAX_PLAYERS]; - static Access[MAX_PLAYERS]; - static Flags[MAX_PLAYERS]; + new AuthData[MAX_AUTHID_LENGTH] + new Password[MAX_PLAYERS] + new Access[MAX_PLAYERS] + new Flags[MAX_PLAYERS] - while (SQL_MoreResults(query)) + while(SQL_MoreResults(query)) { - SQL_ReadResult(query, qcolAuth, AuthData, charsmax(AuthData)); - SQL_ReadResult(query, qcolPass, Password, charsmax(Password)); - SQL_ReadResult(query, qcolAccess, Access, charsmax(Access)); - SQL_ReadResult(query, qcolFlags, Flags, charsmax(Flags)); + SQL_ReadResult(query, qcolAuth, AuthData, charsmax(AuthData)) + SQL_ReadResult(query, qcolPass, Password, charsmax(Password)) + SQL_ReadResult(query, qcolAccess, Access, charsmax(Access)) + SQL_ReadResult(query, qcolFlags, Flags, charsmax(Flags)) - admins_push(AuthData,Password,read_flags(Access),read_flags(Flags)); + admins_push(AuthData, Password, read_flags(Access), read_flags(Flags)) - ++AdminCount; + ++AdminCount + SQL_NextRow(query) } - if (AdminCount == 1) + if(AdminCount == 1) { server_print("[AMXX] %L", LANG_SERVER, "SQL_LOADED_ADMIN") } @@ -502,41 +562,44 @@ public adminSql() public cmdReload(id, level, cid) { - if (!cmd_access(id, level, cid, 1)) + if( !cmd_access(id, level, cid, 1) ) return PLUGIN_HANDLED //strip original flags (patch submitted by mrhunt) remove_user_flags(0, read_flags("z")) - admins_flush(); + admins_flush() #if !defined USING_SQL - static filename[MAX_RESOURCE_PATH_LENGTH * 2] + new configsDir[MAX_RESOURCE_PATH_LENGTH] - get_configsdir(filename, charsmax(filename)) - formatex(filename, charsmax(filename), "%s/%s", filename, g_users_ini) - - AdminCount = 0; - loadSettings(filename); // Re-Load admins accounts + get_configsdir(configsDir, charsmax(configsDir)) + + formatex(configsDir, charsmax(configsDir), "%s/%s", configsDir, g_users_ini) + + AdminCount = 0 + + loadSettings(configsDir) // Re-Load admins accounts - if (id != 0) + if(id != 0) { - if (AdminCount == 1) + if(AdminCount == 1) { - engclient_print(id, engprint_console, "[AMXX] %L", LANG_SERVER, "LOADED_ADMIN"); + engclient_print(id, engprint_console, "[AMXX] %L", LANG_SERVER, "LOADED_ADMIN") } else { - engclient_print(id, engprint_console, "[AMXX] %L", LANG_SERVER, "LOADED_ADMINS", AdminCount); + engclient_print(id, engprint_console, "[AMXX] %L", LANG_SERVER, "LOADED_ADMINS", AdminCount) } } #else AdminCount = 0 + adminSql() - if (id != 0) + if(id != 0) { - if (AdminCount == 1) + if(AdminCount == 1) engclient_print(id, engprint_console, "[AMXX] %L", LANG_SERVER, "SQL_LOADED_ADMIN") else engclient_print(id, engprint_console, "[AMXX] %L", LANG_SERVER, "SQL_LOADED_ADMINS", AdminCount) @@ -544,12 +607,17 @@ public cmdReload(id, level, cid) #endif static players[MAX_PLAYERS], num, pv - static name[MAX_NAME_LENGTH] + + new name[MAX_NAME_LENGTH] + get_players(players, num) - for (new i=0; i<%s><>^" became an admin (account ^"%s^") (access ^"%s^") (address ^"%s^")", name, get_user_userid(id), authid, AuthData, sflags, ip) } else { - - admins_lookup(index,AdminProp_Password,Password,charsmax(Password)); + admins_lookup(index, AdminProp_Password, Password, charsmax(Password)) - if (equal(password, Password)) + if(equal(password, Password)) { result |= 12 + set_user_flags(id, Access) - static sflags[MAX_PLAYERS] + new sflags[MAX_PLAYERS] + get_flags(Access, sflags, charsmax(sflags)) log_amx("Login: ^"%s<%d><%s><>^" became an admin (account ^"%s^") (access ^"%s^") (address ^"%s^")", name, get_user_userid(id), authid, AuthData, sflags, ip) @@ -673,34 +755,36 @@ getAccess(id, name[], authid[], ip[], password[]) { result |= 1 - if (Flags & FLAG_KICK) + if(Flags & FLAG_KICK) { result |= 2 + log_amx("Login: ^"%s<%d><%s><>^" kicked due to invalid password (account ^"%s^") (address ^"%s^")", name, get_user_userid(id), authid, AuthData, ip) } } } } - else if (get_pcvar_float(amx_mode) == 2.0) + else if(get_pcvar_float(amx_mode) == 2.0) { result |= 2 } else { - static defaccess[MAX_PLAYERS] + new defaccess[MAX_PLAYERS] get_pcvar_string(amx_default_access, defaccess, charsmax(defaccess)) - if (!strlen(defaccess)) + if( !strlen(defaccess) ) { copy(defaccess, charsmax(defaccess), "z") } new idefaccess = read_flags(defaccess) - if (idefaccess) + if(idefaccess) { result |= 8 + set_user_flags(id, idefaccess) } } @@ -712,12 +796,13 @@ accessUser(id, name[] = "") { remove_user_flags(id) - static userip[MAX_IP_LENGTH], userauthid[MAX_AUTHID_LENGTH], password[MAX_PLAYERS], passfield[MAX_PLAYERS], username[MAX_NAME_LENGTH] + new userip[MAX_IP_LENGTH], userauthid[MAX_AUTHID_LENGTH], password[MAX_PLAYERS], passfield[MAX_PLAYERS], username[MAX_NAME_LENGTH] get_user_ip(id, userip, charsmax(userip), 1) + get_user_authid(id, userauthid, charsmax(userauthid)) - if (name[0]) + if(name[0]) { copy(username, charsmax(username), name) } @@ -727,27 +812,29 @@ accessUser(id, name[] = "") } get_pcvar_string(amx_password_field, passfield, charsmax(passfield)) + get_user_info(id, passfield, password, charsmax(password)) new result = getAccess(id, username, userauthid, userip, password) - if (result & 1) + if(result & 1) { engclient_print(id, engprint_console, "* %L", id, "INV_PAS") } - if (result & 2) + if(result & 2) { server_cmd("kick #%d ^"%L^"", get_user_userid(id), id, "NO_ENTRY") + return PLUGIN_HANDLED } - if (result & 4) + if(result & 4) { engclient_print(id, engprint_console, "* %L", id, "PAS_ACC") } - if (result & 8) + if(result & 8) { engclient_print(id, engprint_console, "* %L", id, "PRIV_SET") } @@ -757,30 +844,31 @@ accessUser(id, name[] = "") public client_infochanged(id) { - if (!is_user_connected(id) || !get_pcvar_num(amx_mode)) + if( !is_user_connected(id) || !get_pcvar_num(amx_mode) ) { return PLUGIN_CONTINUE } - static newname[MAX_NAME_LENGTH], oldname[MAX_NAME_LENGTH] + new newname[MAX_NAME_LENGTH], oldname[MAX_NAME_LENGTH] get_user_name(id, oldname, charsmax(oldname)) get_user_info(id, "name", newname, charsmax(newname)) - if (g_CaseSensitiveName[id]) + if(g_CaseSensitiveName[id]) { - if (!equal(newname, oldname)) + if( !equal(newname, oldname) ) { accessUser(id, newname) } } else { - if (!equali(newname, oldname)) + if( !equali(newname, oldname) ) { accessUser(id, newname) } } + return PLUGIN_CONTINUE } @@ -789,7 +877,7 @@ public client_authorized(id) public client_putinserver(id) { - if (!is_dedicated_server() && id == 1) + if( !is_dedicated_server() && id == 1 ) return get_pcvar_num(amx_mode) ? accessUser(id) : PLUGIN_CONTINUE return PLUGIN_CONTINUE