TokenGroups: Remove, redundant now.
Use AdminGroups instead.
This commit is contained in:
		
							parent
							
								
									e71dbfbda2
								
							
						
					
					
						commit
						9342356b8b
					
				@ -1,244 +0,0 @@
 | 
				
			|||||||
#pragma newdecls required
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#include <sourcemod>
 | 
					 | 
				
			||||||
#include <tokengroups>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#define MaxTokens 9
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/* BOOLEANS */
 | 
					 | 
				
			||||||
bool g_bHasToken[MAXPLAYERS+1][MaxTokens];
 | 
					 | 
				
			||||||
bool g_bPostFilter[MAXPLAYERS+1];
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
//----------------------------------------------------------------------------------------------------
 | 
					 | 
				
			||||||
// Purpose:
 | 
					 | 
				
			||||||
//----------------------------------------------------------------------------------------------------
 | 
					 | 
				
			||||||
public Plugin myinfo =
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
	name         = "TokenGroups",
 | 
					 | 
				
			||||||
	author       = "zaCade",
 | 
					 | 
				
			||||||
	description  = "Grant sourcemod groups",
 | 
					 | 
				
			||||||
	version      = "1.0"
 | 
					 | 
				
			||||||
};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
//----------------------------------------------------------------------------------------------------
 | 
					 | 
				
			||||||
// Purpose:
 | 
					 | 
				
			||||||
//----------------------------------------------------------------------------------------------------
 | 
					 | 
				
			||||||
public APLRes AskPluginLoad2(Handle myself, bool late, char[] error, int errorSize)
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
	CreateNative("CheckTokens", Native_CheckTokens);
 | 
					 | 
				
			||||||
	CreateNative("GrantTokens", Native_GrantTokens);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	RegPluginLibrary("TokenGroups");
 | 
					 | 
				
			||||||
	return APLRes_Success;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
//----------------------------------------------------------------------------------------------------
 | 
					 | 
				
			||||||
// Purpose:
 | 
					 | 
				
			||||||
//----------------------------------------------------------------------------------------------------
 | 
					 | 
				
			||||||
public void OnRebuildAdminCache(AdminCachePart part)
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
	if (part == AdminCache_Overrides)
 | 
					 | 
				
			||||||
		return;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	if (part == AdminCache_Groups)
 | 
					 | 
				
			||||||
	{
 | 
					 | 
				
			||||||
		CreateAdminGroup("Token-1");
 | 
					 | 
				
			||||||
		CreateAdminGroup("Token-1-VIP");
 | 
					 | 
				
			||||||
		CreateAdminGroup("Token-2");
 | 
					 | 
				
			||||||
		CreateAdminGroup("Token-2-VIP");
 | 
					 | 
				
			||||||
		CreateAdminGroup("Token-3");
 | 
					 | 
				
			||||||
		CreateAdminGroup("Token-3-VIP");
 | 
					 | 
				
			||||||
		CreateAdminGroup("Token-4");
 | 
					 | 
				
			||||||
		CreateAdminGroup("Token-4-VIP");
 | 
					 | 
				
			||||||
		CreateAdminGroup("Token-5");
 | 
					 | 
				
			||||||
		CreateAdminGroup("Token-5-VIP");
 | 
					 | 
				
			||||||
		CreateAdminGroup("Token-6");
 | 
					 | 
				
			||||||
		CreateAdminGroup("Token-6-VIP");
 | 
					 | 
				
			||||||
		CreateAdminGroup("Token-7");
 | 
					 | 
				
			||||||
		CreateAdminGroup("Token-7-VIP");
 | 
					 | 
				
			||||||
		CreateAdminGroup("Token-8");
 | 
					 | 
				
			||||||
		CreateAdminGroup("Token-8-VIP");
 | 
					 | 
				
			||||||
		CreateAdminGroup("Token-9");
 | 
					 | 
				
			||||||
		CreateAdminGroup("Token-9-VIP");
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	CreateTimer(1.0, OnRebuildAdminCachePost, INVALID_HANDLE, TIMER_FLAG_NO_MAPCHANGE);
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
//----------------------------------------------------------------------------------------------------
 | 
					 | 
				
			||||||
// Purpose:
 | 
					 | 
				
			||||||
//----------------------------------------------------------------------------------------------------
 | 
					 | 
				
			||||||
public Action OnRebuildAdminCachePost(Handle hTimer)
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
	for (int client = 1; client <= MaxClients; client++)
 | 
					 | 
				
			||||||
		CheckClientTokens(client);
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
//----------------------------------------------------------------------------------------------------
 | 
					 | 
				
			||||||
// Purpose:
 | 
					 | 
				
			||||||
//----------------------------------------------------------------------------------------------------
 | 
					 | 
				
			||||||
public void OnClientConnected(int client)
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
	ResetClient(client);
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
//----------------------------------------------------------------------------------------------------
 | 
					 | 
				
			||||||
// Purpose:
 | 
					 | 
				
			||||||
//----------------------------------------------------------------------------------------------------
 | 
					 | 
				
			||||||
public void OnClientDisconnect(int client)
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
	ResetClient(client);
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
//----------------------------------------------------------------------------------------------------
 | 
					 | 
				
			||||||
// Purpose:
 | 
					 | 
				
			||||||
//----------------------------------------------------------------------------------------------------
 | 
					 | 
				
			||||||
public void OnClientPostAdminFilter(int client)
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
	g_bPostFilter[client] = true;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	CheckClientTokens(client);
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
//----------------------------------------------------------------------------------------------------
 | 
					 | 
				
			||||||
// Purpose:
 | 
					 | 
				
			||||||
//----------------------------------------------------------------------------------------------------
 | 
					 | 
				
			||||||
stock void ResetClient(int client)
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
	for (int token = 0; token < MaxTokens; token++)
 | 
					 | 
				
			||||||
		g_bHasToken[client][token] = false;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	g_bPostFilter[client] = false;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
//----------------------------------------------------------------------------------------------------
 | 
					 | 
				
			||||||
// Purpose:
 | 
					 | 
				
			||||||
//----------------------------------------------------------------------------------------------------
 | 
					 | 
				
			||||||
stock void CheckClientTokens(int client)
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
	if (!g_bPostFilter[client])
 | 
					 | 
				
			||||||
		return;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	if (CheckCommandAccess(client, "sm_tokens_vip", ADMFLAG_CUSTOM1))
 | 
					 | 
				
			||||||
	{
 | 
					 | 
				
			||||||
		if (g_bHasToken[client][0]) ApplyAdminGroup(client, "Token-1-VIP");
 | 
					 | 
				
			||||||
		if (g_bHasToken[client][1]) ApplyAdminGroup(client, "Token-2-VIP");
 | 
					 | 
				
			||||||
		if (g_bHasToken[client][2]) ApplyAdminGroup(client, "Token-3-VIP");
 | 
					 | 
				
			||||||
		if (g_bHasToken[client][3]) ApplyAdminGroup(client, "Token-4-VIP");
 | 
					 | 
				
			||||||
		if (g_bHasToken[client][4]) ApplyAdminGroup(client, "Token-5-VIP");
 | 
					 | 
				
			||||||
		if (g_bHasToken[client][5]) ApplyAdminGroup(client, "Token-6-VIP");
 | 
					 | 
				
			||||||
		if (g_bHasToken[client][6]) ApplyAdminGroup(client, "Token-7-VIP");
 | 
					 | 
				
			||||||
		if (g_bHasToken[client][7]) ApplyAdminGroup(client, "Token-8-VIP");
 | 
					 | 
				
			||||||
		if (g_bHasToken[client][8]) ApplyAdminGroup(client, "Token-9-VIP");
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	else
 | 
					 | 
				
			||||||
	{
 | 
					 | 
				
			||||||
		if (g_bHasToken[client][0]) ApplyAdminGroup(client, "Token-1");
 | 
					 | 
				
			||||||
		if (g_bHasToken[client][1]) ApplyAdminGroup(client, "Token-2");
 | 
					 | 
				
			||||||
		if (g_bHasToken[client][2]) ApplyAdminGroup(client, "Token-3");
 | 
					 | 
				
			||||||
		if (g_bHasToken[client][3]) ApplyAdminGroup(client, "Token-4");
 | 
					 | 
				
			||||||
		if (g_bHasToken[client][4]) ApplyAdminGroup(client, "Token-5");
 | 
					 | 
				
			||||||
		if (g_bHasToken[client][5]) ApplyAdminGroup(client, "Token-6");
 | 
					 | 
				
			||||||
		if (g_bHasToken[client][6]) ApplyAdminGroup(client, "Token-7");
 | 
					 | 
				
			||||||
		if (g_bHasToken[client][7]) ApplyAdminGroup(client, "Token-8");
 | 
					 | 
				
			||||||
		if (g_bHasToken[client][8]) ApplyAdminGroup(client, "Token-9");
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
//----------------------------------------------------------------------------------------------------
 | 
					 | 
				
			||||||
// Purpose:
 | 
					 | 
				
			||||||
//----------------------------------------------------------------------------------------------------
 | 
					 | 
				
			||||||
stock void CreateAdminGroup(const char[] group)
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
	GroupId GrpID;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	if ((GrpID = FindAdmGroup(group)) == INVALID_GROUP_ID)
 | 
					 | 
				
			||||||
	{
 | 
					 | 
				
			||||||
		LogMessage("Creating new admin group %s", group);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		GrpID = CreateAdmGroup(group);
 | 
					 | 
				
			||||||
		GrpID.ImmunityLevel = 0;
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
//----------------------------------------------------------------------------------------------------
 | 
					 | 
				
			||||||
// Purpose:
 | 
					 | 
				
			||||||
//----------------------------------------------------------------------------------------------------
 | 
					 | 
				
			||||||
stock void ApplyAdminGroup(int client, const char[] group)
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
	AdminId AdmID;
 | 
					 | 
				
			||||||
	GroupId GrpID;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	if ((AdmID = GetUserAdmin(client)) == INVALID_ADMIN_ID)
 | 
					 | 
				
			||||||
	{
 | 
					 | 
				
			||||||
		LogMessage("Creating new admin for %L", client);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		AdmID = CreateAdmin();
 | 
					 | 
				
			||||||
		SetUserAdmin(client, AdmID, true);
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	if ((GrpID = FindAdmGroup(group)) != INVALID_GROUP_ID)
 | 
					 | 
				
			||||||
	{
 | 
					 | 
				
			||||||
		if (AdminInheritGroup(AdmID, GrpID))
 | 
					 | 
				
			||||||
		{
 | 
					 | 
				
			||||||
			LogMessage("%L added to group %s", client, group);
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	else
 | 
					 | 
				
			||||||
	{
 | 
					 | 
				
			||||||
		LogMessage("%L group not found %s", client, group);
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
//----------------------------------------------------------------------------------------------------
 | 
					 | 
				
			||||||
// Purpose:
 | 
					 | 
				
			||||||
//----------------------------------------------------------------------------------------------------
 | 
					 | 
				
			||||||
public int Native_CheckTokens(Handle hPlugin, int numParams)
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
	int client = GetNativeCell(1);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	if (client < 1 || client > MaxClients)
 | 
					 | 
				
			||||||
	{
 | 
					 | 
				
			||||||
		ThrowNativeError(SP_ERROR_NATIVE, "Invalid client index. (%d)", client);
 | 
					 | 
				
			||||||
		return;
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	if (!IsClientConnected(client))
 | 
					 | 
				
			||||||
	{
 | 
					 | 
				
			||||||
		ThrowNativeError(SP_ERROR_NATIVE, "Client (%d) is not connected.", client);
 | 
					 | 
				
			||||||
		return;
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	CheckClientTokens(client);
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
//----------------------------------------------------------------------------------------------------
 | 
					 | 
				
			||||||
// Purpose:
 | 
					 | 
				
			||||||
//----------------------------------------------------------------------------------------------------
 | 
					 | 
				
			||||||
public int Native_GrantTokens(Handle hPlugin, int numParams)
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
	int client = GetNativeCell(1);
 | 
					 | 
				
			||||||
	int token  = GetNativeCell(2);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	if (client < 1 || client > MaxClients)
 | 
					 | 
				
			||||||
	{
 | 
					 | 
				
			||||||
		ThrowNativeError(SP_ERROR_NATIVE, "Invalid client index. (%d)", client);
 | 
					 | 
				
			||||||
		return;
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	if (token < 1 || token > MaxTokens)
 | 
					 | 
				
			||||||
	{
 | 
					 | 
				
			||||||
		ThrowNativeError(SP_ERROR_NATIVE, "Invalid token index. (%d)", token);
 | 
					 | 
				
			||||||
		return;
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	if (!IsClientConnected(client))
 | 
					 | 
				
			||||||
	{
 | 
					 | 
				
			||||||
		ThrowNativeError(SP_ERROR_NATIVE, "Client (%d) is not connected.", client);
 | 
					 | 
				
			||||||
		return;
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	g_bHasToken[client][token -= 1] = true;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	CheckClientTokens(client);
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
@ -1,19 +0,0 @@
 | 
				
			|||||||
#if defined _tokengroups_included_
 | 
					 | 
				
			||||||
  #endinput
 | 
					 | 
				
			||||||
#endif
 | 
					 | 
				
			||||||
#define _tokengroups_included_
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/**
 | 
					 | 
				
			||||||
 * Check tokens
 | 
					 | 
				
			||||||
 *
 | 
					 | 
				
			||||||
 * @param client    Client index
 | 
					 | 
				
			||||||
 */
 | 
					 | 
				
			||||||
native void CheckTokens(int client);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/**
 | 
					 | 
				
			||||||
 * Grant a token
 | 
					 | 
				
			||||||
 *
 | 
					 | 
				
			||||||
 * @param client    Client index
 | 
					 | 
				
			||||||
 * @param token     Token index
 | 
					 | 
				
			||||||
 */
 | 
					 | 
				
			||||||
native void GrantTokens(int client, int token);
 | 
					 | 
				
			||||||
		Loading…
	
		Reference in New Issue
	
	Block a user