Add/Delete warp handles name with spaces if not wrapped in quotes.
Added warp list <num> which shows 15 warps at a time Disallowed addition of warp with name list
This commit is contained in:
parent
db1edd3f98
commit
6b1310ba4c
1 changed files with 60 additions and 24 deletions
|
|
@ -763,26 +763,34 @@ namespace TShockAPI
|
|||
|
||||
private static void SetWarp(CommandArgs args)
|
||||
{
|
||||
if (args.Parameters.Count > 0)
|
||||
if (WarpsManager.AddWarp(args.Player.TileX, args.Player.TileY, args.Parameters[0], Main.worldName))
|
||||
if (args.Parameters.Count > 1)
|
||||
{
|
||||
string warpName = String.Join(" ", args.Parameters);
|
||||
if (warpName.Equals("list"))
|
||||
{
|
||||
args.Player.SendMessage("Set warp " + args.Parameters[0], Color.Yellow);
|
||||
args.Player.SendMessage("Name reserved, use a different name", Color.Red);
|
||||
}
|
||||
else if (WarpsManager.AddWarp(args.Player.TileX, args.Player.TileY, warpName, Main.worldName))
|
||||
{
|
||||
args.Player.SendMessage("Set warp " + warpName, Color.Yellow);
|
||||
WarpsManager.WriteSettings();
|
||||
}
|
||||
else
|
||||
{
|
||||
args.Player.SendMessage("Warp " + args.Parameters[0] + " already exists", Color.Red);
|
||||
args.Player.SendMessage("Warp " + warpName + " already exists", Color.Red);
|
||||
}
|
||||
}
|
||||
else
|
||||
args.Player.SendMessage("Invalid syntax! Proper syntax: /setwarp [name]", Color.Red);
|
||||
}
|
||||
|
||||
private static void DeleteWarp(CommandArgs args)
|
||||
{
|
||||
if (args.Parameters.Count > 0)
|
||||
if (args.Parameters.Count > 1)
|
||||
{
|
||||
if (WarpsManager.DeleteWarp(args.Parameters[0]))
|
||||
args.Player.SendMessage("Deleted warp " + args.Parameters[0], Color.Yellow);
|
||||
string warpName = String.Join(" ", args.Parameters);
|
||||
if (WarpsManager.DeleteWarp(warpName))
|
||||
args.Player.SendMessage("Deleted warp " + warpName, Color.Yellow);
|
||||
else
|
||||
args.Player.SendMessage("Could not find specified warp", Color.Red);
|
||||
}
|
||||
|
|
@ -790,31 +798,59 @@ namespace TShockAPI
|
|||
|
||||
private static void UseWarp(CommandArgs args)
|
||||
{
|
||||
if (args.Parameters.Count > 0)
|
||||
if (args.Parameters.Count > 1)
|
||||
{
|
||||
if (WarpsManager.FindWarp(args.Parameters[0]) != Vector2.Zero)
|
||||
if (args.Parameters[0].Equals("list"))
|
||||
{
|
||||
if (args.Player.Teleport((int)WarpsManager.FindWarp(args.Parameters[0]).X, (int)WarpsManager.FindWarp(args.Parameters[0]).Y))
|
||||
args.Player.SendMessage("Warped to " + args.Parameters[0], Color.Yellow);
|
||||
else
|
||||
args.Player.SendMessage("Warp unavailable custom spawnpoint set (to unset sucide atleast once after bed is destroyed).", Color.Red);
|
||||
|
||||
args.Player.SendMessage("Current Warps:", Color.Green);
|
||||
int page = 1;
|
||||
if (args.Parameters.Count > 1)
|
||||
int.TryParse(args.Parameters[1], out page);
|
||||
var sb = new StringBuilder();
|
||||
if (WarpsManager.Warps.Count > (15 * (page - 1)))
|
||||
{
|
||||
for (int j = (15 * (page - 1)); j < (15 * page); j++)
|
||||
{
|
||||
if (sb.Length != 0)
|
||||
sb.Append(", ");
|
||||
sb.Append("/").Append(WarpsManager.Warps[j].WarpName);
|
||||
if (j == WarpsManager.Warps.Count - 1)
|
||||
{
|
||||
args.Player.SendMessage(sb.ToString(), Color.Yellow);
|
||||
break;
|
||||
}
|
||||
if ((j + 1) % 5 == 0)
|
||||
{
|
||||
args.Player.SendMessage(sb.ToString(), Color.Yellow);
|
||||
sb.Clear();
|
||||
}
|
||||
}
|
||||
}
|
||||
if (WarpsManager.Warps.Count > (15 * page))
|
||||
{
|
||||
args.Player.SendMessage(string.Format("Type /warp list {0} for more warps.", (page + 1)), Color.Yellow);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
args.Player.SendMessage("Specified warp not found", Color.Red);
|
||||
string warpName = String.Join(" ", args.Parameters);
|
||||
var warp = WarpsManager.FindWarp(warpName);
|
||||
if (warp != Vector2.Zero)
|
||||
{
|
||||
if (args.Player.Teleport((int)warp.X, (int)warp.Y))
|
||||
args.Player.SendMessage("Warped to " + warpName, Color.Yellow);
|
||||
else
|
||||
args.Player.SendMessage("Warp unavailable custom spawnpoint set (to unset sucide atleast once after bed is destroyed).", Color.Red);
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
args.Player.SendMessage("Specified warp not found", Color.Red);
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
args.Player.SendMessage("Current Warps:", Color.Green);
|
||||
|
||||
//Someone needs to make it list
|
||||
for (int i = 0; i < (WarpsManager.Warps.Count); i++)
|
||||
{
|
||||
args.Player.SendMessage(WarpsManager.Warps[i].WarpName, Color.Yellow);
|
||||
}
|
||||
}
|
||||
args.Player.SendMessage("Invalid syntax! Proper syntax: /warp [name] or warp list", Color.Red);
|
||||
}
|
||||
|
||||
#endregion Teleport Commands
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue