From d890359551bffb4e5fe7b8238e7d4d6998faa38e Mon Sep 17 00:00:00 2001 From: Lucas Nicodemus Date: Tue, 29 May 2012 18:06:18 -0600 Subject: [PATCH] SendWarp is now wrapped into Warp Removed old functions that are no longer relevant. Changed help to be a little more helpful in Warp. Wrapped the Warp command into regions. --- TShockAPI/Commands.cs | 106 +++++++++++++++++++++++------------------- 1 file changed, 59 insertions(+), 47 deletions(-) diff --git a/TShockAPI/Commands.cs b/TShockAPI/Commands.cs index 6519b3e1..e4068e5a 100644 --- a/TShockAPI/Commands.cs +++ b/TShockAPI/Commands.cs @@ -148,12 +148,8 @@ namespace TShockAPI add(Permissions.tp, Spawn, "spawn"); add(Permissions.tp, TP, "tp"); add(Permissions.tphere, TPHere, "tphere"); - add(Permissions.tphere, SendWarp, "sendwarp", "sw"); add(Permissions.tpallow, TPAllow, "tpallow"); - add(Permissions.warp, UseWarp, "warp"); - //add(Permissions.managewarp, SetWarp, "setwarp"); - //add(Permissions.managewarp, DeleteWarp, "delwarp"); - //add(Permissions.managewarp, HideWarp, "hidewarp"); + add(Permissions.warp, Warp, "warp", "setwarp", "delwarp", "sendwarp", "sw"); add(Permissions.managegroup, AddGroup, "addgroup"); add(Permissions.managegroup, DeleteGroup, "delgroup"); add(Permissions.managegroup, ModifyGroup, "modgroup"); @@ -1735,43 +1731,7 @@ namespace TShockAPI args.Player.TPAllow = !args.Player.TPAllow; } - private static void SendWarp(CommandArgs args) - { - if (args.Parameters.Count < 2) - { - args.Player.SendMessage("Invalid syntax! Proper syntax: /sendwarp [player] [warpname]", Color.Red); - return; - } - - var foundplr = TShock.Utils.FindPlayer(args.Parameters[0]); - if (foundplr.Count == 0) - { - args.Player.SendMessage("Invalid player!", Color.Red); - return; - } - else if (foundplr.Count > 1) - { - args.Player.SendMessage(string.Format("More than one ({0}) player matched!", args.Parameters.Count), Color.Red); - return; - } - string warpName = String.Join(" ", args.Parameters[1]); - var warp = TShock.Warps.FindWarp(warpName); - var plr = foundplr[0]; - if (warp.WarpPos != Vector2.Zero) - { - if (plr.Teleport((int) warp.WarpPos.X, (int) warp.WarpPos.Y + 3)) - { - plr.SendMessage(string.Format("{0} Warped you to {1}", args.Player.Name, warpName), Color.Yellow); - args.Player.SendMessage(string.Format("You warped {0} to {1}.", plr.Name, warpName), Color.Yellow); - } - } - else - { - args.Player.SendMessage("Specified warp not found", Color.Red); - } - } - - private static void UseWarp(CommandArgs args) + private static void Warp(CommandArgs args) { bool hasManageWarpPermission = args.Player.Group.HasPermission(Permissions.managewarp); if (args.Parameters.Count < 1) @@ -1779,22 +1739,27 @@ namespace TShockAPI if (hasManageWarpPermission) { args.Player.SendMessage("All warp commands were merged into one in TShock 4.0.", Color.Yellow); + args.Player.SendMessage("Previous warps with spaces should be wrapped in single quotes.", Color.Red); args.Player.SendMessage("Invalid syntax. Syntax: /warp [command] [arguments]", Color.Green); - args.Player.SendMessage("Commands: add, del, hide, list, [warpname]", Color.Green); - args.Player.SendMessage("Arguments: add [warp name], del [warp name], hide [warp name] [Enable(true/false)], list [page]", Color.Green); + args.Player.SendMessage("Commands: add, del, hide, list, send, [warpname]", Color.Green); + args.Player.SendMessage("Arguments: add [warp name], del [warp name], list [page]", Color.Green); + args.Player.SendMessage("Arguments: send [player] [warp name], hide [warp name] [Enable(true/false)]", Color.Green); args.Player.SendMessage("Examples: /warp add foobar, /warp hide foobar true, /warp foobar", Color.Green); return; } else { args.Player.SendMessage("Invalid syntax. Syntax: /warp [name] or /warp list ", Color.Red); + args.Player.SendMessage("Previous warps with spaces should be wrapped in single quotes.", Color.Red); + return; } } if (args.Parameters[0].Equals("list")) - { - //How many warps per page + { + #region + //How many warps per page const int pagelimit = 15; //How many warps per line const int perline = 5; @@ -1842,10 +1807,12 @@ namespace TShockAPI if (page < pagecount) { args.Player.SendMessage(string.Format("Type /warp list {0} for more warps.", (page + 2)), Color.Yellow); - } + } + #endregion } else if (args.Parameters[0].ToLower() == "add" && hasManageWarpPermission) { + #region Add warp if (args.Parameters.Count == 2) { string warpName = args.Parameters[1]; @@ -1864,9 +1831,12 @@ namespace TShockAPI } else args.Player.SendMessage("Invalid syntax! Proper syntax: /warp add [name]", Color.Red); + #endregion + } else if (args.Parameters[0].ToLower() == "del" && hasManageWarpPermission) { + #region Del warp if (args.Parameters.Count == 2) { string warpName = args.Parameters[1]; @@ -1877,9 +1847,12 @@ namespace TShockAPI } else args.Player.SendMessage("Invalid syntax! Proper syntax: /warp del [name]", Color.Red); + #endregion + } else if (args.Parameters[0].ToLower() == "hide" && hasManageWarpPermission) { + #region Hide warp if (args.Parameters.Count == 3) { string warpName = args.Parameters[1]; @@ -1901,6 +1874,45 @@ namespace TShockAPI } else args.Player.SendMessage("Invalid syntax! Proper syntax: /warp hide [name] ", Color.Red); + #endregion + } + else if (args.Parameters[0].ToLower() == "send" && args.Player.Group.HasPermission(Permissions.tphere)) + { + #region Warp send + if (args.Parameters.Count < 3) + { + args.Player.SendMessage("Invalid syntax! Proper syntax: /warp send [player] [warpname]", Color.Red); + return; + } + + var foundplr = TShock.Utils.FindPlayer(args.Parameters[1]); + if (foundplr.Count == 0) + { + args.Player.SendMessage("Invalid player!", Color.Red); + return; + } + else if (foundplr.Count > 1) + { + args.Player.SendMessage(string.Format("More than one ({0}) player matched!", args.Parameters.Count), Color.Red); + return; + } + string warpName = args.Parameters[2]; + var warp = TShock.Warps.FindWarp(warpName); + var plr = foundplr[0]; + if (warp.WarpPos != Vector2.Zero) + { + if (plr.Teleport((int)warp.WarpPos.X, (int)warp.WarpPos.Y + 3)) + { + plr.SendMessage(string.Format("{0} Warped you to {1}", args.Player.Name, warpName), Color.Yellow); + args.Player.SendMessage(string.Format("You warped {0} to {1}.", plr.Name, warpName), Color.Yellow); + } + } + else + { + args.Player.SendMessage("Specified warp not found.", Color.Red); + } + #endregion + } else {