0b0a0a278a
Part 2 will be the simlink creations when i figure that out.
290 lines
6.9 KiB
SourcePawn
290 lines
6.9 KiB
SourcePawn
/** Include guard */
|
|
#if defined _calladmin_included
|
|
#endinput
|
|
#endif
|
|
#define _calladmin_included
|
|
|
|
|
|
|
|
|
|
/** Global calladmin version, do not change */
|
|
#define CALLADMIN_VERSION "0.1.5"
|
|
|
|
|
|
|
|
/** Pass this as a clientindex to the ReportPlayer native if you don't have a client, eg report from server automatically */
|
|
#define REPORTER_CONSOLE 0
|
|
|
|
|
|
/** Maximum size a reason string can be in length */
|
|
#define REASON_MAX_LENGTH 128
|
|
|
|
|
|
|
|
/**
|
|
* Called when the main CallAdmin client selection menu is about to be drawn for a client.
|
|
*
|
|
* @param client Client index of the caller.
|
|
* @return Plugin_Continue to allow, Plugin_Handled otherwise.
|
|
*/
|
|
forward Action CallAdmin_OnDrawMenu(int client);
|
|
|
|
|
|
|
|
|
|
/**
|
|
* Called when the own reason selection is enabled and the select item for it is about to be drawn for a client.
|
|
*
|
|
* @param client Client index of the caller.
|
|
* @return Plugin_Continue to allow, Plugin_Handled otherwise.
|
|
*/
|
|
forward Action CallAdmin_OnDrawOwnReason(int client);
|
|
|
|
|
|
|
|
|
|
/**
|
|
* Called when a target is about to be drawn to the target selection menu for a client.
|
|
* Note: Called *n-1 times for the client selection menu where n is the amount of valid targets including the caller.
|
|
*
|
|
* @param client Client index of the caller.
|
|
* @param target Client index of the target about to be drawed.
|
|
* @return Plugin_Continue to allow the target to be drawn, Plugin_Handled otherwise.
|
|
*/
|
|
forward Action CallAdmin_OnDrawTarget(int client, int target);
|
|
|
|
|
|
|
|
|
|
/**
|
|
* Called when the trackercount was changed.
|
|
*
|
|
* @param oldVal Trackercount before update.
|
|
* @param newVal Trackercount after update.
|
|
* @noreturn
|
|
*/
|
|
forward void CallAdmin_OnTrackerCountChanged(int oldVal, int newVal);
|
|
|
|
|
|
|
|
|
|
/**
|
|
* Called before a client (or module) has reported another client.
|
|
*
|
|
* @param client Client index of the caller.
|
|
* @param target Client index of the target.
|
|
* @param reason Reason selected by the client for the report.
|
|
* @return Plugin_Continue to allow, Plugin_Handled otherwise.
|
|
*/
|
|
forward Action CallAdmin_OnReportPre(int client, int target, const char[] reason);
|
|
|
|
|
|
|
|
|
|
/**
|
|
* Called after a client (or module) has reported another client.
|
|
* Be sure to check that client != REPORTER_CONSOLE if you expect a valid client index.
|
|
*
|
|
* @param client Client index of the caller.
|
|
* @param target Client index of the target.
|
|
* @param reason Reason selected by the client for the report.
|
|
* @noreturn
|
|
*/
|
|
forward void CallAdmin_OnReportPost(int client, int target, const char[] reason);
|
|
|
|
|
|
|
|
|
|
/**
|
|
* Initiates an report call.
|
|
* If you report automatically (via a module for example) set the clientindex to REPORTER_CONSOLE.
|
|
*
|
|
* @param client Client index of the caller.
|
|
* @param target Client index of the target.
|
|
* @param reason Reason for the report.
|
|
* @return True if target could be reported, false otherwise.
|
|
*/
|
|
native bool CallAdmin_ReportClient(int client, int target, const char[] reason);
|
|
|
|
|
|
|
|
|
|
/**
|
|
* Called when an admin is about to be added to the in-game admin count.
|
|
*
|
|
* @param client Client index of the admin.
|
|
* @return Plugin_Continue to allow, Plugin_Handled otherwise.
|
|
*/
|
|
forward Action CallAdmin_OnAddToAdminCount(int client);
|
|
|
|
|
|
|
|
|
|
/**
|
|
* Returns the cached count of current trackers.
|
|
*
|
|
* @return Count of current trackers.
|
|
*/
|
|
native int CallAdmin_GetTrackersCount();
|
|
|
|
|
|
|
|
|
|
/**
|
|
* Requests a forced refresh of the trackers count.
|
|
* Note that most modules work asynchronous and only return their own cached count.
|
|
*
|
|
* @noreturn
|
|
*/
|
|
native void CallAdmin_RequestTrackersCountRefresh();
|
|
|
|
|
|
|
|
|
|
/**
|
|
* Called when the trackercount of a module is requested.
|
|
* This is either called periodically via the base calladmin, or when RequestTrackersCountRefresh is invoked.
|
|
*
|
|
* @param trackers By ref value of your trackers.
|
|
* @noreturn
|
|
*/
|
|
forward void CallAdmin_OnRequestTrackersCountRefresh(int &trackers);
|
|
|
|
|
|
|
|
|
|
enum ServerData
|
|
{
|
|
ServerData_HostName, /**< This is the hostname of the server, gathered from the `hostname` convar */
|
|
ServerData_HostIP, /**< This is the hostip of the server, gathered and converted from the `hostip` convar */
|
|
ServerData_HostPort /**< This is the hostport of the server, gathered from the `hostport` convar */
|
|
};
|
|
|
|
|
|
|
|
|
|
/**
|
|
* Called when the serverdata data is changed.
|
|
*
|
|
* @param convar Handle to the convar which was changed.
|
|
* @param type Type of data which was changed.
|
|
* @param oldVal Value of data before change.
|
|
* @param newVal Value of data after change.
|
|
* @noreturn
|
|
*/
|
|
forward void CallAdmin_OnServerDataChanged(ConVar convar, ServerData type, const char[] oldVal, const char[] newVal);
|
|
|
|
|
|
|
|
|
|
/**
|
|
* Returns the server's hostname.
|
|
*
|
|
* @param buffer String to copy hostname to.
|
|
* @param max_size Maximum size of buffer.
|
|
* @noreturn
|
|
*/
|
|
native void CallAdmin_GetHostName(char[] buffer, int max_size);
|
|
|
|
|
|
|
|
|
|
/**
|
|
* Returns the server's IP String.
|
|
*
|
|
* @param buffer String to copy hostip to.
|
|
* @param max_size Maximum size of buffer.
|
|
* @noreturn
|
|
*/
|
|
native void CallAdmin_GetHostIP(char[] buffer, int max_size);
|
|
|
|
|
|
|
|
|
|
/**
|
|
* Returns the server's HostPort.
|
|
*
|
|
* @return Hostport.
|
|
*/
|
|
native int CallAdmin_GetHostPort();
|
|
|
|
|
|
|
|
|
|
/**
|
|
* Logs a message to the calladmin logfile.
|
|
* The message has this format "[Pluginname] Message", where the plugin name is detected automatically.
|
|
*
|
|
* @param format Formatting rules.
|
|
* @param ... Variable number of format parameters.
|
|
* @noreturn
|
|
*/
|
|
native void CallAdmin_LogMessage(const char[] format, any ...);
|
|
|
|
|
|
|
|
|
|
/**
|
|
* Called when a message was logged to the calladmin logfile.
|
|
*
|
|
* @param plugin Handle to the plugin which logged a message.
|
|
* @param message Message which was logged.
|
|
* @noreturn
|
|
*/
|
|
forward void CallAdmin_OnLogMessage(Handle plugin, const char[] message);
|
|
|
|
|
|
|
|
|
|
/**
|
|
* Returns the server's current report id.
|
|
* This is a temporary value and is increased with each report.
|
|
*
|
|
* @return Current report id of the server.
|
|
*/
|
|
native int CallAdmin_GetReportID();
|
|
|
|
|
|
|
|
|
|
/**
|
|
* Called when a report was handled.
|
|
*
|
|
* @param client Admin who handled the report.
|
|
* @param id ID of the handled report.
|
|
* @noreturn
|
|
*/
|
|
forward void CallAdmin_OnReportHandled(int client, int id);
|
|
|
|
|
|
|
|
|
|
/* Do not edit below this line */
|
|
public SharedPlugin __pl_calladmin =
|
|
{
|
|
name = "calladmin",
|
|
file = "calladmin.smx",
|
|
#if defined REQUIRE_PLUGIN
|
|
required = 1,
|
|
#else
|
|
required = 0,
|
|
#endif
|
|
};
|
|
|
|
|
|
|
|
|
|
#if !defined REQUIRE_PLUGIN
|
|
public __pl_calladmin_SetNTVOptional()
|
|
{
|
|
MarkNativeAsOptional("CallAdmin_GetTrackersCount");
|
|
MarkNativeAsOptional("CallAdmin_RequestTrackersCountRefresh");
|
|
MarkNativeAsOptional("CallAdmin_GetHostName");
|
|
MarkNativeAsOptional("CallAdmin_GetHostIP");
|
|
MarkNativeAsOptional("CallAdmin_GetHostPort");
|
|
MarkNativeAsOptional("CallAdmin_ReportClient");
|
|
MarkNativeAsOptional("CallAdmin_LogMessage");
|
|
MarkNativeAsOptional("CallAdmin_GetReportID");
|
|
}
|
|
#endif
|