inital commit
This commit is contained in:
75
update_notifier.sp
Normal file
75
update_notifier.sp
Normal file
@@ -0,0 +1,75 @@
|
||||
/* 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);
|
||||
}
|
||||
|
Reference in New Issue
Block a user