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