Added xmas hook such that when the server checks to see if it should do xmas related things, it will check all plugins first.

This commit is contained in:
Zack Piispanen 2012-11-10 22:43:39 -05:00
parent b9099757fb
commit 38ae8e9ce6
5 changed files with 50 additions and 0 deletions

View file

@ -209,6 +209,7 @@ namespace TShockAPI
add(Permissions.cfg, WorldInfo, "world"); add(Permissions.cfg, WorldInfo, "world");
add(Permissions.savessi, SaveSSI, "savessi"); add(Permissions.savessi, SaveSSI, "savessi");
add(Permissions.savessi, OverrideSSI, "overridessi", "ossi"); add(Permissions.savessi, OverrideSSI, "overridessi", "ossi");
add(Permissions.xmas, ForceXmas, "forcexmas");
//add(null, TestCallbackCommand, "test"); //add(null, TestCallbackCommand, "test");
} }
@ -1140,6 +1141,38 @@ namespace TShockAPI
} }
} }
private static void ForceXmas(CommandArgs args)
{
if(args.Parameters.Count == 0)
{
args.Player.SendErrorMessage("Usage: /forcexmas [true/false]");
args.Player.SendInfoMessage(
String.Format("The server is currently {0} force Christmas mode.",
(TShock.Config.ForceXmas ? "in" : "not in")));
return;
}
if(args.Parameters[0].ToLower() == "true")
{
TShock.Config.ForceXmas = true;
Main.checkXMas();
}
else if(args.Parameters[0].ToLower() == "false")
{
TShock.Config.ForceXmas = false;
Main.checkXMas();
}
else
{
args.Player.SendErrorMessage("Usage: /forcexmas [true/false]");
return;
}
args.Player.SendInfoMessage(
String.Format("The server is currently {0} force Christmas mode.",
(TShock.Config.ForceXmas ? "in" : "not in")));
}
#endregion Player Management Commands #endregion Player Management Commands
#region Server Maintenence Commands #region Server Maintenence Commands

View file

@ -243,6 +243,8 @@ namespace TShockAPI
[Description("Hide stat tracker console messages.")] public bool HideStatTrackerDebugMessages = true; [Description("Hide stat tracker console messages.")] public bool HideStatTrackerDebugMessages = true;
[Description("Force Christmas only events to occur all year.")] public bool ForceXmas = false;
/// <summary> /// <summary>
/// Reads a configuration file from a given path /// Reads a configuration file from a given path
/// </summary> /// </summary>

View file

@ -169,6 +169,8 @@ namespace TShockAPI
[Description("User can use rest api calls.")] [Description("User can use rest api calls.")]
public static readonly string restapi; public static readonly string restapi;
[Description("User can force the server to Christmas mode.")] public static readonly string xmas;
static Permissions() static Permissions()
{ {
foreach (var field in typeof (Permissions).GetFields()) foreach (var field in typeof (Permissions).GetFields())

View file

@ -223,6 +223,7 @@ namespace TShockAPI
ProjectileHooks.SetDefaults += OnProjectileSetDefaults; ProjectileHooks.SetDefaults += OnProjectileSetDefaults;
WorldHooks.StartHardMode += OnStartHardMode; WorldHooks.StartHardMode += OnStartHardMode;
WorldHooks.SaveWorld += SaveManager.Instance.OnSaveWorld; WorldHooks.SaveWorld += SaveManager.Instance.OnSaveWorld;
WorldHooks.ChristmasCheck += OnXmasCheck;
NetHooks.NameCollision += NetHooks_NameCollision; NetHooks.NameCollision += NetHooks_NameCollision;
GetDataHandlers.InitGetDataHandler(); GetDataHandlers.InitGetDataHandler();
@ -323,6 +324,7 @@ namespace TShockAPI
ProjectileHooks.SetDefaults -= OnProjectileSetDefaults; ProjectileHooks.SetDefaults -= OnProjectileSetDefaults;
WorldHooks.StartHardMode -= OnStartHardMode; WorldHooks.StartHardMode -= OnStartHardMode;
WorldHooks.SaveWorld -= SaveManager.Instance.OnSaveWorld; WorldHooks.SaveWorld -= SaveManager.Instance.OnSaveWorld;
WorldHooks.ChristmasCheck -= OnXmasCheck;
NetHooks.NameCollision -= NetHooks_NameCollision; NetHooks.NameCollision -= NetHooks_NameCollision;
if (File.Exists(Path.Combine(SavePath, "tshock.pid"))) if (File.Exists(Path.Combine(SavePath, "tshock.pid")))
@ -367,6 +369,17 @@ namespace TShockAPI
return; return;
} }
void OnXmasCheck(ChristmasCheckEventArgs args)
{
if (args.Handled)
return;
if(Config.ForceXmas)
{
args.Xmas = true;
args.Handled = true;
}
}
/// <summary> /// <summary>
/// Handles exceptions that we didn't catch or that Red fucked up /// Handles exceptions that we didn't catch or that Red fucked up
/// </summary> /// </summary>