diff --git a/TShockAPI/ConfigFile.cs b/TShockAPI/ConfigFile.cs index 5d0ae8ff..6f66607e 100755 --- a/TShockAPI/ConfigFile.cs +++ b/TShockAPI/ConfigFile.cs @@ -274,6 +274,8 @@ namespace TShockAPI [Description("Number of bytes in the packet buffer before we disconnect the player.")] public int MaxBytesInBuffer = 5242880; + [Description("Forces your world to be in Halloween mode regardless of the data.")] public bool ForceHalloween = false; + /// /// Reads a configuration file from a given path /// diff --git a/TShockAPI/GetDataHandlers.cs b/TShockAPI/GetDataHandlers.cs index 49d796f2..84ffef70 100755 --- a/TShockAPI/GetDataHandlers.cs +++ b/TShockAPI/GetDataHandlers.cs @@ -3204,6 +3204,7 @@ namespace TShockAPI case -1: case -2: case -3: + case -4: invasion = true; break; case 4: @@ -3242,6 +3243,9 @@ namespace TShockAPI string boss; switch (Type) { + case -4: + boss = "a pumpkin invasion"; + break; case -3: boss = "the pirates"; break; diff --git a/TShockAPI/TShock.cs b/TShockAPI/TShock.cs index 1b6901b5..4cfc376f 100755 --- a/TShockAPI/TShock.cs +++ b/TShockAPI/TShock.cs @@ -251,6 +251,7 @@ namespace TShockAPI ServerApi.Hooks.WorldStartHardMode.Register(this, OnStartHardMode); ServerApi.Hooks.WorldSave.Register(this, SaveManager.Instance.OnSaveWorld); ServerApi.Hooks.WorldChristmasCheck.Register(this, OnXmasCheck); + ServerApi.Hooks.WorldHalloweenCheck.Register(this, OnHalloweenCheck); ServerApi.Hooks.NetNameCollision.Register(this, NetHooks_NameCollision); TShockAPI.Hooks.PlayerHooks.PlayerPreLogin += OnPlayerPreLogin; TShockAPI.Hooks.PlayerHooks.PlayerPostLogin += OnPlayerLogin; @@ -328,6 +329,7 @@ namespace TShockAPI ServerApi.Hooks.WorldStartHardMode.Deregister(this, OnStartHardMode); ServerApi.Hooks.WorldSave.Deregister(this, SaveManager.Instance.OnSaveWorld); ServerApi.Hooks.WorldChristmasCheck.Deregister(this, OnXmasCheck); + ServerApi.Hooks.WorldHalloweenCheck.Deregister(this, OnHalloweenCheck); ServerApi.Hooks.NetNameCollision.Deregister(this, NetHooks_NameCollision); TShockAPI.Hooks.PlayerHooks.PlayerPostLogin -= OnPlayerLogin; @@ -414,6 +416,18 @@ namespace TShockAPI args.Handled = true; } } + + private void OnHalloweenCheck(HalloweenCheckEventArgs args) + { + if (args.Handled) + return; + + if (Config.ForceHalloween) + { + args.Halloween = true; + args.Handled = true; + } + } /// /// Handles exceptions that we didn't catch or that Red fucked up /// diff --git a/TerrariaServerBins/TerrariaServer.exe b/TerrariaServerBins/TerrariaServer.exe index c582c996..0127042c 100644 Binary files a/TerrariaServerBins/TerrariaServer.exe and b/TerrariaServerBins/TerrariaServer.exe differ