diff --git a/core/smn_admin.cpp b/core/smn_admin.cpp index d7fec06b..b15ebcc7 100644 --- a/core/smn_admin.cpp +++ b/core/smn_admin.cpp @@ -505,6 +505,22 @@ static cell_t FindFlagByChar(IPluginContext *pContext, const cell_t *params) return 1; } +static cell_t FindFlagChar(IPluginContext *pContext, const cell_t *params) +{ + cell_t *addr; + pContext->LocalToPhysAddr(params[2], &addr); + + char flagchar; + if (!g_Admins.FindFlagChar((AdminFlag)params[1], &flagchar)) + { + return 0; + } + + *addr = (cell_t)flagchar; + + return 1; +} + static cell_t ReadFlagString(IPluginContext *pContext, const cell_t *params) { char *flag; @@ -561,6 +577,7 @@ REGISTER_NATIVES(adminNatives) {"CreateAuthMethod", CreateAuthMethod}, {"FindFlagByName", FindFlagByName}, {"FindFlagByChar", FindFlagByChar}, + {"FindFlagChar", FindFlagChar}, {"ReadFlagString", ReadFlagString}, {"GetAdmGroupImmunityLevel",GetAdmGroupImmunityLevel}, {"SetAdmGroupImmunityLevel",SetAdmGroupImmunityLevel}, diff --git a/plugins/include/admin.inc b/plugins/include/admin.inc index 20ba921a..6afd5ba1 100644 --- a/plugins/include/admin.inc +++ b/plugins/include/admin.inc @@ -516,6 +516,15 @@ native bool:FindFlagByName(const String:name[], &AdminFlag:flag); */ native bool:FindFlagByChar(c, &AdminFlag:flag); +/** + * Finds a flag char by a gived admin flag. + * + * @param flag Flag to look up. + * @param c Variable to store flag char. + * @return True on success, false if not found. + */ +native bool:FindFlagChar(AdminFlag:flag, &c); + /** * Converts a string of flag characters to a bit string. *