75 lines
2.4 KiB
SourcePawn
75 lines
2.4 KiB
SourcePawn
/* Plugin Template generated by Pawn Studio */
|
|
|
|
#include <sourcemod>
|
|
#include <steamtools>
|
|
|
|
#define UN_VERSION "1.4"
|
|
|
|
new Handle:cv_enabled, Handle:cv_text, Handle:cv_restart,
|
|
Handle:cv_restarttime, Handle:cv_warningintervall, Handle:cv_waringtext;
|
|
new Float:remtime;
|
|
|
|
public Plugin:myinfo =
|
|
{
|
|
name = "UpdateNotifier",
|
|
author = "Chefe",
|
|
description = "Plugin that notifiy clients about updates",
|
|
version = UN_VERSION,
|
|
url = "https://forums.alliedmods.net/showthread.php?t=163122"
|
|
}
|
|
|
|
public OnPluginStart()
|
|
{
|
|
cv_enabled = CreateConVar("sm_un_enabled", "1", "Enable/disable UpdateNotifier");
|
|
cv_text = CreateConVar("sm_un_text", "WARNING! Gameupdate has been released, server will restart for updating!", "Set text (MAX 200) that will be displayed when server needs restart for updating");
|
|
cv_restart = CreateConVar("sm_un_restart", "0", "Set restart handling: 0 = No restart caused by the plugin, restart is done by autoupdate on mapchange; 1 = restart server if no players are online; 2 = restart server even if there are players online");
|
|
cv_restarttime = CreateConVar("sm_un_restartdelay", "30.0", "Set the time (in sec) between the Warning and the restart if is set", _, true, 5.0);
|
|
cv_warningintervall = CreateConVar("sm_un_warnintervall", "5.0", "Set the intervall warnings should appear", _, true, 5.0)
|
|
cv_waringtext = CreateConVar("sm_un_warntext", "Server restart in %i seconds");
|
|
CreateConVar("sm_un_version", UN_VERSION, "Shows current plugin version.", FCVAR_PLUGIN|FCVAR_SPONLY|FCVAR_REPLICATED|FCVAR_NOTIFY|FCVAR_DONTRECORD);
|
|
AutoExecConfig(true);
|
|
}
|
|
|
|
public Action:Steam_RestartRequested()
|
|
{
|
|
if (GetConVarBool(cv_enabled))
|
|
{
|
|
new String:text[200];
|
|
GetConVarString(cv_text, text, sizeof(text));
|
|
PrintToChatAll("\x04%s", text);
|
|
PrintHintTextToAll("%s", text);
|
|
|
|
if (GetConVarInt(cv_restart) == 1)
|
|
{
|
|
if (GetClientCount(false) == 0)
|
|
{
|
|
ServerCommand("quit");
|
|
}
|
|
}
|
|
else if (GetConVarInt(cv_restart) == 2)
|
|
{
|
|
CreateTimer(GetConVarFloat(cv_restarttime), Timer_Restart);
|
|
remtime = Float:GetConVarFloat(cv_restarttime);
|
|
}
|
|
}
|
|
|
|
return Plugin_Continue;
|
|
}
|
|
|
|
public Action:Timer_Restart(Handle:timer)
|
|
{
|
|
remtime -= Float:GetConVarFloat(cv_warningintervall);
|
|
|
|
if (remtime <= 0.0)
|
|
{
|
|
ServerCommand("quit");
|
|
return;
|
|
}
|
|
|
|
new String:warntext[200];
|
|
GetConVarString(cv_waringtext, warntext, sizeof(warntext));
|
|
|
|
PrintToChatAll("\x04%s", warntext, remtime);
|
|
PrintHintTextToAll("%s", warntext, remtime);
|
|
}
|
|
|