diff options
Diffstat (limited to 'OpenSim')
-rw-r--r-- | OpenSim/Tools/pCampBot/Bot.cs | 39 | ||||
-rw-r--r-- | OpenSim/Tools/pCampBot/BotManager.cs | 42 |
2 files changed, 81 insertions, 0 deletions
diff --git a/OpenSim/Tools/pCampBot/Bot.cs b/OpenSim/Tools/pCampBot/Bot.cs index 45a6682..4f28733 100644 --- a/OpenSim/Tools/pCampBot/Bot.cs +++ b/OpenSim/Tools/pCampBot/Bot.cs | |||
@@ -35,6 +35,7 @@ using System.Timers; | |||
35 | using log4net; | 35 | using log4net; |
36 | using OpenMetaverse; | 36 | using OpenMetaverse; |
37 | using OpenMetaverse.Assets; | 37 | using OpenMetaverse.Assets; |
38 | using OpenMetaverse.Packets; | ||
38 | using Nini.Config; | 39 | using Nini.Config; |
39 | using OpenSim.Framework; | 40 | using OpenSim.Framework; |
40 | using OpenSim.Framework.Console; | 41 | using OpenSim.Framework.Console; |
@@ -56,6 +57,27 @@ namespace pCampBot | |||
56 | { | 57 | { |
57 | private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); | 58 | private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); |
58 | 59 | ||
60 | public int PacketDebugLevel | ||
61 | { | ||
62 | get { return m_packetDebugLevel; } | ||
63 | set | ||
64 | { | ||
65 | if (value == m_packetDebugLevel) | ||
66 | return; | ||
67 | |||
68 | m_packetDebugLevel = value; | ||
69 | |||
70 | if (Client != null) | ||
71 | { | ||
72 | if (m_packetDebugLevel <= 0) | ||
73 | Client.Network.UnregisterCallback(PacketType.Default, PacketReceivedDebugHandler); | ||
74 | else | ||
75 | Client.Network.RegisterCallback(PacketType.Default, PacketReceivedDebugHandler, false); | ||
76 | } | ||
77 | } | ||
78 | } | ||
79 | private int m_packetDebugLevel; | ||
80 | |||
59 | public delegate void AnEvent(Bot callbot, EventType someevent); // event delegate for bot events | 81 | public delegate void AnEvent(Bot callbot, EventType someevent); // event delegate for bot events |
60 | 82 | ||
61 | /// <summary> | 83 | /// <summary> |
@@ -231,6 +253,9 @@ namespace pCampBot | |||
231 | 253 | ||
232 | if (Client != null) | 254 | if (Client != null) |
233 | { | 255 | { |
256 | // Remove any registered debug handlers | ||
257 | Client.Network.UnregisterCallback(PacketType.Default, PacketReceivedDebugHandler); | ||
258 | |||
234 | newClient.Settings.LOGIN_SERVER = Client.Settings.LOGIN_SERVER; | 259 | newClient.Settings.LOGIN_SERVER = Client.Settings.LOGIN_SERVER; |
235 | newClient.Settings.ALWAYS_DECODE_OBJECTS = Client.Settings.ALWAYS_DECODE_OBJECTS; | 260 | newClient.Settings.ALWAYS_DECODE_OBJECTS = Client.Settings.ALWAYS_DECODE_OBJECTS; |
236 | newClient.Settings.AVATAR_TRACKING = Client.Settings.AVATAR_TRACKING; | 261 | newClient.Settings.AVATAR_TRACKING = Client.Settings.AVATAR_TRACKING; |
@@ -273,6 +298,9 @@ namespace pCampBot | |||
273 | newClient.Network.Disconnected += Network_OnDisconnected; | 298 | newClient.Network.Disconnected += Network_OnDisconnected; |
274 | newClient.Objects.ObjectUpdate += Objects_NewPrim; | 299 | newClient.Objects.ObjectUpdate += Objects_NewPrim; |
275 | 300 | ||
301 | if (m_packetDebugLevel > 0) | ||
302 | newClient.Network.RegisterCallback(PacketType.Default, PacketReceivedDebugHandler); | ||
303 | |||
276 | Client = newClient; | 304 | Client = newClient; |
277 | } | 305 | } |
278 | 306 | ||
@@ -705,5 +733,16 @@ namespace pCampBot | |||
705 | // SaveAsset((AssetWearable) asset); | 733 | // SaveAsset((AssetWearable) asset); |
706 | // } | 734 | // } |
707 | } | 735 | } |
736 | |||
737 | private void PacketReceivedDebugHandler(object o, PacketReceivedEventArgs args) | ||
738 | { | ||
739 | Packet p = args.Packet; | ||
740 | Header h = p.Header; | ||
741 | Simulator s = args.Simulator; | ||
742 | |||
743 | m_log.DebugFormat( | ||
744 | "[BOT]: Bot {0} received from {1} packet {2} #{3}, rel {4}, res {5}", | ||
745 | Name, s.Name, p.Type, h.Sequence, h.Reliable, h.Resent); | ||
746 | } | ||
708 | } | 747 | } |
709 | } | 748 | } |
diff --git a/OpenSim/Tools/pCampBot/BotManager.cs b/OpenSim/Tools/pCampBot/BotManager.cs index c7d8f05..46094d6 100644 --- a/OpenSim/Tools/pCampBot/BotManager.cs +++ b/OpenSim/Tools/pCampBot/BotManager.cs | |||
@@ -254,6 +254,16 @@ namespace pCampBot | |||
254 | "Shows the detailed status and settings of a particular bot.", HandleShowBotStatus); | 254 | "Shows the detailed status and settings of a particular bot.", HandleShowBotStatus); |
255 | 255 | ||
256 | m_console.Commands.AddCommand( | 256 | m_console.Commands.AddCommand( |
257 | "Debug", | ||
258 | false, | ||
259 | "debug lludp packet", | ||
260 | "debug lludp packet <level> <avatar-first-name> <avatar-last-name>", | ||
261 | "Turn on received packet logging.", | ||
262 | "If level > 0 then all received packets that are not duplicates are logged.\n" | ||
263 | + "If level <= 0 then no received packets are logged.", | ||
264 | HandleDebugLludpPacketCommand); | ||
265 | |||
266 | m_console.Commands.AddCommand( | ||
257 | "Bots", false, "show status", "show status", "Shows pCampbot status.", HandleShowStatus); | 267 | "Bots", false, "show status", "show status", "Shows pCampbot status.", HandleShowStatus); |
258 | 268 | ||
259 | m_bots = new List<Bot>(); | 269 | m_bots = new List<Bot>(); |
@@ -784,6 +794,38 @@ namespace pCampBot | |||
784 | } | 794 | } |
785 | } | 795 | } |
786 | 796 | ||
797 | private void HandleDebugLludpPacketCommand(string module, string[] args) | ||
798 | { | ||
799 | if (args.Length != 6) | ||
800 | { | ||
801 | MainConsole.Instance.OutputFormat("Usage: debug lludp packet <level> <bot-first-name> <bot-last-name>"); | ||
802 | return; | ||
803 | } | ||
804 | |||
805 | int level; | ||
806 | |||
807 | if (!ConsoleUtil.TryParseConsoleInt(MainConsole.Instance, args[3], out level)) | ||
808 | return; | ||
809 | |||
810 | string botFirstName = args[4]; | ||
811 | string botLastName = args[5]; | ||
812 | |||
813 | Bot bot; | ||
814 | |||
815 | lock (m_bots) | ||
816 | bot = m_bots.FirstOrDefault(b => b.FirstName == botFirstName && b.LastName == botLastName); | ||
817 | |||
818 | if (bot == null) | ||
819 | { | ||
820 | MainConsole.Instance.OutputFormat("No bot named {0} {1}", botFirstName, botLastName); | ||
821 | return; | ||
822 | } | ||
823 | |||
824 | bot.PacketDebugLevel = level; | ||
825 | |||
826 | MainConsole.Instance.OutputFormat("Set debug level of {0} to {1}", bot.Name, bot.PacketDebugLevel); | ||
827 | } | ||
828 | |||
787 | private void HandleShowRegions(string module, string[] cmd) | 829 | private void HandleShowRegions(string module, string[] cmd) |
788 | { | 830 | { |
789 | string outputFormat = "{0,-30} {1, -20} {2, -5} {3, -5}"; | 831 | string outputFormat = "{0,-30} {1, -20} {2, -5} {3, -5}"; |