diff --git a/Programs/examples/TestClient/ClientManager.cs b/Programs/examples/TestClient/ClientManager.cs index 1ba8d9af..b7833cab 100644 --- a/Programs/examples/TestClient/ClientManager.cs +++ b/Programs/examples/TestClient/ClientManager.cs @@ -162,7 +162,19 @@ namespace OpenMetaverse.TestClient account.Password = args[2]; if (args.Length > 3) - account.StartLocation = NetworkManager.StartLocation(args[3], 128, 128, 40); + { + // If it looks like a full starting position was specified, parse it + if( args[3].IndexOf('/') >= 0 ) + { + char sep = '/'; + string[] startbits = args[3].Split(sep); + account.StartLocation = NetworkManager.StartLocation(startbits[0], Int32.Parse(startbits[1]), + Int32.Parse(startbits[2]), Int32.Parse(startbits[3])); + } + // Otherwise, use the center of the named region + else + account.StartLocation = NetworkManager.StartLocation(args[3], 128, 128, 40); + } if (args.Length > 4) if(args[4].StartsWith("http://")) @@ -224,6 +236,10 @@ namespace OpenMetaverse.TestClient if (String.IsNullOrEmpty(firstToken)) return; + // Allow for comments when cmdline begins with ';' or '#' + if (firstToken[0] == ';' || firstToken[0] == '#') + return; + string[] args = new string[tokens.Length - 1]; if (args.Length > 0) Array.Copy(tokens, 1, args, 0, args.Length); diff --git a/Programs/examples/TestClient/Commands/Communication/SayCommand.cs b/Programs/examples/TestClient/Commands/Communication/SayCommand.cs index 5d070226..e8d21767 100644 --- a/Programs/examples/TestClient/Commands/Communication/SayCommand.cs +++ b/Programs/examples/TestClient/Commands/Communication/SayCommand.cs @@ -8,17 +8,17 @@ namespace OpenMetaverse.TestClient public class SayCommand: Command { public SayCommand(TestClient testClient) - { - Name = "say"; - Description = "Say something. (usage: say (optional channel) whatever)"; + { + Name = "say"; + Description = "Say something. (usage: say (optional channel) whatever)"; Category = CommandCategory.Communication; - } + } public override string Execute(string[] args, UUID fromAgentID) - { + { int channel = 0; int startIndex = 0; - + if (args.Length < 1) { return "usage: say (optional channel) whatever"; @@ -26,20 +26,22 @@ namespace OpenMetaverse.TestClient else if (args.Length > 1) { if (Int32.TryParse(args[0], out channel)) - startIndex = 1; + startIndex = 1; } - StringBuilder message = new StringBuilder(); + String message = String.Empty; - for (int i = startIndex; i < args.Length; i++) + for (int i = startIndex; i < args.Length; i++) { - message.Append(args[i]); - if (i != args.Length - 1) message.Append(" "); + // Append a space before the next arg + if( i > 0 ) + message += " "; + message += args[i]; } - Client.Self.Chat(message.ToString(), channel, ChatType.Normal); + Client.Self.Chat(message, channel, ChatType.Normal); return "Said " + message.ToString(); - } + } } } diff --git a/Programs/examples/TestClient/Commands/Communication/ShoutCommand.cs b/Programs/examples/TestClient/Commands/Communication/ShoutCommand.cs index 10d08da4..c1c9cf75 100644 --- a/Programs/examples/TestClient/Commands/Communication/ShoutCommand.cs +++ b/Programs/examples/TestClient/Commands/Communication/ShoutCommand.cs @@ -39,7 +39,10 @@ namespace OpenMetaverse.TestClient for (int i = startIndex; i < args.Length; i++) { - message += args[i] + " "; + // Append a space before the next arg + if( i > 0 ) + message += " "; + message += args[i]; } Client.Self.Chat(message, channel, ChatType.Shout); diff --git a/Programs/examples/TestClient/Commands/Communication/WhisperCommand.cs b/Programs/examples/TestClient/Commands/Communication/WhisperCommand.cs index b83aaccd..0a56489a 100644 --- a/Programs/examples/TestClient/Commands/Communication/WhisperCommand.cs +++ b/Programs/examples/TestClient/Commands/Communication/WhisperCommand.cs @@ -39,7 +39,10 @@ namespace OpenMetaverse.TestClient for (int i = startIndex; i < args.Length; i++) { - message += args[i] + " "; + // Append a space before the next arg + if( i > 0 ) + message += " "; + message += args[i]; } Client.Self.Chat(message, channel, ChatType.Whisper);