From 36343dd8e74499ca954af9d648bb998c08a89585 Mon Sep 17 00:00:00 2001 From: White Date: Thu, 22 Sep 2016 19:12:59 +0930 Subject: [PATCH] Add a sandstorm command --- CHANGELOG.md | 1 + TShockAPI/Commands.cs | 28 ++++++++++++++++++++++++++++ TShockAPI/Permissions.cs | 3 +++ 3 files changed, 32 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index adb6bab4..6b0eec62 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -26,6 +26,7 @@ This is the rolling changelog for TShock for Terraria. Use past tense when addin * Players can no longer bypass tile checks by using the Tile packet (@ProfessorXZ) * Fixed a bug where players couldn't hammer a Junction Box without "allowclientsideworldedit" permission (@Patrikkk) * Fixed the client's UI not being draw when setting wind speed to abnormal values (@ProfessorXZ) +* Added a command to start and stop sandstorms (@WhiteXZ) ## TShock 4.3.17 diff --git a/TShockAPI/Commands.cs b/TShockAPI/Commands.cs index 53e0bc64..aea00b09 100755 --- a/TShockAPI/Commands.cs +++ b/TShockAPI/Commands.cs @@ -499,6 +499,10 @@ namespace TShockAPI { HelpText = "Toggles spawn protection." }); + add(new Command(Permissions.sandstorm, Sandstorm, "sandstorm") + { + HelpText = "Toggles sandstorms." + }); add(new Command(Permissions.rain, Rain, "rain") { HelpText = "Toggles the rain." @@ -3816,6 +3820,30 @@ namespace TShockAPI } } + private static void Sandstorm(CommandArgs args) + { + if (args.Parameters.Count < 1) + { + args.Player.SendErrorMessage("Invalid syntax! Proper syntax: {0}sandstorm ", Specifier); + return; + } + + switch (args.Parameters[0].ToLowerInvariant()) + { + case "start": + Terraria.GameContent.Events.Sandstorm.StartSandstorm(); + TSPlayer.All.SendInfoMessage("{0} started a sandstorm.", args.Player.Name); + break; + case "stop": + Terraria.GameContent.Events.Sandstorm.StopSandstorm(); + TSPlayer.All.SendInfoMessage("{0} stopped the sandstorm.", args.Player.Name); + break; + default: + args.Player.SendErrorMessage("Invalid syntax! Proper syntax: {0}sandstorm ", Specifier); + break; + } + } + private static void Rain(CommandArgs args) { if (args.Parameters.Count < 1 || args.Parameters.Count > 2) diff --git a/TShockAPI/Permissions.cs b/TShockAPI/Permissions.cs index 76e2286c..e8c7d18d 100644 --- a/TShockAPI/Permissions.cs +++ b/TShockAPI/Permissions.cs @@ -326,6 +326,9 @@ namespace TShockAPI [Description("User can paint tiles.")] public static readonly string canpaint = "tshock.world.paint"; + [Description("User can turn on or off sandstorms.")] + public static readonly string sandstorm = "tshock.world.sandstorm"; + [Description("User can turn on or off the rain.")] public static readonly string rain = "tshock.world.rain";