From 8e2e4c47d95728ba25694a85454488074360445e Mon Sep 17 00:00:00 2001 From: Justin Clark-Casey (justincc) Date: Tue, 1 Nov 2011 22:09:21 +0000 Subject: Add "show status" command to pCambot --- OpenSim/Tools/pCampBot/BotManager.cs | 30 ++++++++++++++++++++++++----- OpenSim/Tools/pCampBot/PhysicsBot.cs | 37 +++++++++++++++++++----------------- 2 files changed, 45 insertions(+), 22 deletions(-) (limited to 'OpenSim') diff --git a/OpenSim/Tools/pCampBot/BotManager.cs b/OpenSim/Tools/pCampBot/BotManager.cs index d2b7ded..b05bd6d 100644 --- a/OpenSim/Tools/pCampBot/BotManager.cs +++ b/OpenSim/Tools/pCampBot/BotManager.cs @@ -93,6 +93,11 @@ namespace pCampBot "Shutdown bots and exit", HandleShutdown); + m_console.Commands.AddCommand("bot", false, "show status", + "show status", + "Shows the status of all bots", + HandleShowStatus); + // m_console.Commands.AddCommand("bot", false, "add bots", // "add bots ", // "Add more bots", HandleAddBots); @@ -157,7 +162,8 @@ namespace pCampBot pb.OnConnected += handlebotEvent; pb.OnDisconnected += handlebotEvent; - m_lBot.Add(pb); + lock (m_lBot) + m_lBot.Add(pb); Thread pbThread = new Thread(pb.startup); pbThread.Name = pb.Name; @@ -194,10 +200,9 @@ namespace pCampBot /// public void doBotShutdown() { - foreach (PhysicsBot pb in m_lBot) - { - pb.shutdown(); - } + lock (m_lBot) + foreach (PhysicsBot pb in m_lBot) + pb.shutdown(); } /// @@ -215,6 +220,21 @@ namespace pCampBot doBotShutdown(); } + private void HandleShowStatus(string module, string[] cmd) + { + string outputFormat = "{0,-30} {1,-14}"; + MainConsole.Instance.OutputFormat(outputFormat, "Name", "Status"); + + lock (m_lBot) + { + foreach (PhysicsBot pb in m_lBot) + { + MainConsole.Instance.OutputFormat( + outputFormat, pb.Name, (pb.IsConnected ? "Connected" : "Disconnected")); + } + } + } + /* private void HandleQuit(string module, string[] cmd) { diff --git a/OpenSim/Tools/pCampBot/PhysicsBot.cs b/OpenSim/Tools/pCampBot/PhysicsBot.cs index 5bcd35d..14e9cca 100644 --- a/OpenSim/Tools/pCampBot/PhysicsBot.cs +++ b/OpenSim/Tools/pCampBot/PhysicsBot.cs @@ -51,6 +51,11 @@ namespace pCampBot public BotManager BotManager { get; private set; } private IConfig startupConfig; // bot config, passed from BotManager + /// + /// Is this bot connected to the grid? + /// + public bool IsConnected { get; private set; } + public string FirstName { get; private set; } public string LastName { get; private set; } public string Name { get; private set; } @@ -181,24 +186,23 @@ namespace pCampBot if (client.Network.Login(FirstName, LastName, Password, "pCampBot", "Your name")) { - if (OnConnected != null) - { - Thread.Sleep(somthing.Next(1000, 10000)); - m_actionThread = new Thread(Action); - m_actionThread.Start(); + IsConnected = true; + + Thread.Sleep(somthing.Next(1000, 10000)); + m_actionThread = new Thread(Action); + m_actionThread.Start(); // OnConnected(this, EventType.CONNECTED); - if (wear == "save") - { - client.Appearance.SetPreviousAppearance(); - SaveDefaultAppearance(); - } - else if (wear != "no") - { - MakeDefaultAppearance(wear); - } - client.Self.Jump(true); + if (wear == "save") + { + client.Appearance.SetPreviousAppearance(); + SaveDefaultAppearance(); } + else if (wear != "no") + { + MakeDefaultAppearance(wear); + } + client.Self.Jump(true); } else { @@ -392,8 +396,6 @@ namespace pCampBot { // m_log.ErrorFormat("Fired Network_OnDisconnected"); - // Only pass on the disconnect message when we receive a SimShutdown type shutdown. We have to ignore - // the earlier ClientInitiated shutdown callback. // if ( // (args.Reason == NetworkManager.DisconnectType.SimShutdown // || args.Reason == NetworkManager.DisconnectType.NetworkTimeout) @@ -406,6 +408,7 @@ namespace pCampBot && OnDisconnected != null) // if (OnDisconnected != null) { + IsConnected = false; OnDisconnected(this, EventType.DISCONNECTED); } } -- cgit v1.1