68 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			SourcePawn
		
	
	
	
	
	
			
		
		
	
	
			68 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			SourcePawn
		
	
	
	
	
	
#include <sourcemod>
 | 
						|
#include <calladmin>
 | 
						|
#include <basecomm>
 | 
						|
#include <AFKManager>
 | 
						|
#include <multicolors>
 | 
						|
 | 
						|
#pragma semicolon 1
 | 
						|
#pragma newdecls required
 | 
						|
 | 
						|
int g_iAdminAFKTime;
 | 
						|
ConVar g_cvAdminAFKTime;
 | 
						|
 | 
						|
public Plugin myinfo =
 | 
						|
{
 | 
						|
	name        = "CallAdmin Restrictions",
 | 
						|
	author      = "Neon + Dogan",
 | 
						|
	description = "",
 | 
						|
	version     = "2.0",
 | 
						|
	url         = "https://steamcommunity.com/id/n3ontm"
 | 
						|
};
 | 
						|
 | 
						|
//----------------------------------------------------------------------------------------------------
 | 
						|
// Purpose:
 | 
						|
//----------------------------------------------------------------------------------------------------
 | 
						|
public void OnAllPluginsLoaded()
 | 
						|
{
 | 
						|
	if((g_cvAdminAFKTime = FindConVar("sm_admin_afk_time")) == INVALID_HANDLE)
 | 
						|
		SetFailState("Failed to find sm_admin_afk_time cvar.");
 | 
						|
	else
 | 
						|
		g_iAdminAFKTime = g_cvAdminAFKTime.IntValue;
 | 
						|
 | 
						|
	HookConVarChange(g_cvAdminAFKTime, OnAdminAFKTimeChanged);
 | 
						|
}
 | 
						|
 | 
						|
//----------------------------------------------------------------------------------------------------
 | 
						|
// Purpose:
 | 
						|
//----------------------------------------------------------------------------------------------------
 | 
						|
public void OnAdminAFKTimeChanged(ConVar convar, const char[] oldValue, const char[] newValue)
 | 
						|
{
 | 
						|
	g_iAdminAFKTime = g_cvAdminAFKTime.IntValue;
 | 
						|
}
 | 
						|
 | 
						|
//----------------------------------------------------------------------------------------------------
 | 
						|
// Purpose:
 | 
						|
//----------------------------------------------------------------------------------------------------
 | 
						|
public Action CallAdmin_OnDrawTarget(int client, int target)
 | 
						|
{
 | 
						|
	if (CheckCommandAccess(target, "", ADMFLAG_GENERIC, true))
 | 
						|
		return Plugin_Handled;
 | 
						|
	else
 | 
						|
		return Plugin_Continue;
 | 
						|
}
 | 
						|
 | 
						|
//----------------------------------------------------------------------------------------------------
 | 
						|
// Purpose:
 | 
						|
//----------------------------------------------------------------------------------------------------
 | 
						|
public Action CallAdmin_OnReportPre(int client, int target, const char[] reason)
 | 
						|
{
 | 
						|
	int iLastReportID = CallAdmin_GetReportID();
 | 
						|
 | 
						|
	for (int i = 1; i <= MaxClients; i++)
 | 
						|
	{
 | 
						|
		if (IsClientInGame(i) && (CheckCommandAccess(i, "", ADMFLAG_GENERIC, true)) && GetClientIdleTime(i) < g_iAdminAFKTime)
 | 
						|
			CPrintToChat(i, "{green}[CALLADMIN] {lightgreen}%N reported %N for %s. Type {red}/calladmin_handle %d{lightgreen} in chat to handle this report.", client, target, reason, iLastReportID + 1);
 | 
						|
	}
 | 
						|
 | 
						|
	return Plugin_Continue;
 | 
						|
} |