From a2bfc8f5b146c8886ddc923a07adbe97df4df6d0 Mon Sep 17 00:00:00 2001 From: White Date: Tue, 2 Feb 2016 11:23:44 +1030 Subject: [PATCH] Modified the /rain command to take an optional parameter of "slime" to allow starting/stopping of slime rain. --- TShockAPI/Commands.cs | 42 ++++++++++++++++++++++++++++++++++-------- 1 file changed, 34 insertions(+), 8 deletions(-) diff --git a/TShockAPI/Commands.cs b/TShockAPI/Commands.cs index 5934dd16..3f483269 100755 --- a/TShockAPI/Commands.cs +++ b/TShockAPI/Commands.cs @@ -3798,24 +3798,50 @@ namespace TShockAPI private static void Rain(CommandArgs args) { - if (args.Parameters.Count != 1) + if (args.Parameters.Count < 1 || args.Parameters.Count > 2) { - args.Player.SendErrorMessage("Invalid syntax! Proper syntax: {0}rain ", Specifier); + args.Player.SendErrorMessage("Invalid syntax! Proper syntax: {0}rain [slime] ", Specifier); return; } - switch (args.Parameters[0].ToLower()) + int switchIndex = 0; + if (args.Parameters.Count == 2 && args.Parameters[0].ToLowerInvariant() == "slime") + { + switchIndex = 1; + } + + switch (args.Parameters[switchIndex].ToLower()) { case "start": - Main.StartRain(); - TSPlayer.All.SendInfoMessage("{0} caused it to rain.", args.Player.Name); + if (switchIndex == 1) + { + Main.StartSlimeRain(false); + TSPlayer.All.SendData(PacketTypes.WorldInfo); + TSPlayer.All.SendInfoMessage("{0} caused it to rain slime.", args.Player.Name); + } + else + { + Main.StartRain(); + TSPlayer.All.SendData(PacketTypes.WorldInfo); + TSPlayer.All.SendInfoMessage("{0} caused it to rain.", args.Player.Name); + } break; case "stop": - Main.StopRain(); - TSPlayer.All.SendInfoMessage("{0} ended the downpour.", args.Player.Name); + if (switchIndex == 1) + { + Main.StopSlimeRain(false); + TSPlayer.All.SendData(PacketTypes.WorldInfo); + TSPlayer.All.SendInfoMessage("{0} ended the slimey downpour.", args.Player.Name); + } + else + { + Main.StopRain(); + TSPlayer.All.SendData(PacketTypes.WorldInfo); + TSPlayer.All.SendInfoMessage("{0} ended the downpour.", args.Player.Name); + } break; default: - args.Player.SendErrorMessage("Invalid syntax! Proper syntax: {0}rain ", Specifier); + args.Player.SendErrorMessage("Invalid syntax! Proper syntax: {0}rain [slime] ", Specifier); break; }