From cbf492109ccda213971c09d1048e9d26d09d9b37 Mon Sep 17 00:00:00 2001 From: gareth Date: Tue, 8 May 2007 09:56:20 +0000 Subject: Fixed nant build files Added ExportBot code (ZOMG! IMPORTED THE EXPORT BOT!) Fixed ExportBot's build --- ExportBot/ClientManager.cs | 12 ++++ ExportBot/Commands/CloneProfileCommand.cs | 25 ++++--- ExportBot/Commands/Communication/TtsCommand.cs | 51 -------------- ExportBot/ExportBot.build | 67 ++++++++++++++++++ ExportBot/ExportBot.exe.build | 98 ++++++++++++++++++++++++++ ExportBot/Program.cs | 28 ++++++-- ExportBot/TestClient.cs | 12 ++-- 7 files changed, 216 insertions(+), 77 deletions(-) delete mode 100644 ExportBot/Commands/Communication/TtsCommand.cs create mode 100644 ExportBot/ExportBot.build create mode 100644 ExportBot/ExportBot.exe.build (limited to 'ExportBot') diff --git a/ExportBot/ClientManager.cs b/ExportBot/ClientManager.cs index 0e43142..65c01ee 100644 --- a/ExportBot/ClientManager.cs +++ b/ExportBot/ClientManager.cs @@ -70,6 +70,18 @@ namespace libsecondlife.TestClient Login(account); } } + + public string ExportAvatarRestMethod( string request, string path, string param ) + { + Console.WriteLine("Got a request to export an avatar!"); + Console.WriteLine("Executing cloneprofile " + param); + DoCommandAll("cloneprofile " + param, null, null); + DoCommandAll("say copied avatar, preparing to upload to remote server...", null, null); + return "OK"; + + } + + /// /// /// diff --git a/ExportBot/Commands/CloneProfileCommand.cs b/ExportBot/Commands/CloneProfileCommand.cs index d7fb5fc..d608318 100644 --- a/ExportBot/Commands/CloneProfileCommand.cs +++ b/ExportBot/Commands/CloneProfileCommand.cs @@ -10,6 +10,7 @@ namespace libsecondlife.TestClient { Avatar.AvatarProperties Properties; Avatar.Interests Interests; + private Dictionary Avatars = new Dictionary(); List Groups = new List(); bool ReceivedProperties = false; bool ReceivedInterests = false; @@ -23,12 +24,22 @@ namespace libsecondlife.TestClient testClient.Avatars.OnAvatarGroups += new AvatarManager.AvatarGroupsCallback(Avatars_OnAvatarGroups); testClient.Self.OnJoinGroup += new MainAvatar.JoinGroupCallback(Self_OnJoinGroup); + testClient.Self.Objects.OnNewAvatar += new ObjectManager.NewAvatarCallback(AvatarSeen); + Name = "cloneprofile"; Description = "Clones another avatars profile as closely as possible. WARNING: This command will " + "destroy your existing profile! Usage: cloneprofile [targetuuid]"; } - public override string Execute(string[] args, LLUUID fromAgentID) + void AvatarSeen(Simulator simulator, Avatar avatar, ulong regionHandle, ushort timeDilation) + { + lock (Avatars) + { + Avatars.Add(avatar.UUID,avatar.LocalID); + } + } + + public override string Execute(string[] args, LLUUID fromAgentID) { if (args.Length != 1) return Description; @@ -58,20 +69,8 @@ namespace libsecondlife.TestClient if (!ReceivedInterests || !ReceivedProperties || !ReceivedGroups) return "Failed to retrieve a complete profile for that UUID"; - // Synchronize our profile - Client.Self.ProfileInterests = Interests; - Client.Self.ProfileProperties = Properties; Client.Self.SetAvatarInformation(); - // TODO: Leave all the groups we're currently a member of? This could - // break TestClient connectivity that might be relying on group authentication - - // Attempt to join all the groups - foreach (LLUUID groupID in Groups) - { - Client.Self.RequestJoinGroup(groupID); - } - return "Synchronized our profile to the profile of " + targetID.ToStringHyphenated(); } diff --git a/ExportBot/Commands/Communication/TtsCommand.cs b/ExportBot/Commands/Communication/TtsCommand.cs deleted file mode 100644 index e8bd122..0000000 --- a/ExportBot/Commands/Communication/TtsCommand.cs +++ /dev/null @@ -1,51 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; -using System.Speech.Synthesis; -using libsecondlife; -using libsecondlife.Packets; -using libsecondlife.AssetSystem; - - -// Since this requires .Net 3.0 I've left it out of the project by default. -// To use this: include it in the project and add a reference to the System.Speech.dll - -namespace libsecondlife.TestClient -{ - public class TtsCommand : Command - { - SpeechSynthesizer _speechSynthesizer; - - public TtsCommand(TestClient testClient) - { - Name = "tts"; - Description = "Text To Speech. When activated, client will echo all recieved chat messages out thru the computer's speakers."; - } - - public override string Execute(string[] args, LLUUID fromAgentID) - { - if (!Active) - { - if (_speechSynthesizer == null) - _speechSynthesizer = new SpeechSynthesizer(); - Active = true; - Client.Self.OnChat += new MainAvatar.ChatCallback(Self_OnChat); - return "TTS is now on."; - } - else - { - Active = false; - Client.Self.OnChat -= new MainAvatar.ChatCallback(Self_OnChat); - return "TTS is now off."; - } - } - - void Self_OnChat(string message, byte audible, byte type, byte sourcetype, string fromName, LLUUID id, LLUUID ownerid, LLVector3 position) - { - if (message.Length > 0) - { - _speechSynthesizer.SpeakAsync(message); - } - } - } -} \ No newline at end of file diff --git a/ExportBot/ExportBot.build b/ExportBot/ExportBot.build new file mode 100644 index 0000000..033a149 --- /dev/null +++ b/ExportBot/ExportBot.build @@ -0,0 +1,67 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ExportBot/ExportBot.exe.build b/ExportBot/ExportBot.exe.build new file mode 100644 index 0000000..9181aa4 --- /dev/null +++ b/ExportBot/ExportBot.exe.build @@ -0,0 +1,98 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ExportBot/Program.cs b/ExportBot/Program.cs index 705cf90..8855be1 100644 --- a/ExportBot/Program.cs +++ b/ExportBot/Program.cs @@ -1,21 +1,28 @@ using System; using System.Collections.Generic; using System.IO; +using System.Threading; using CommandLine.Utility; +using OpenSim.Framework; +using OpenSim.Framework.Console; +using OpenSim.Servers; namespace libsecondlife.TestClient { - public class Program + public class Program : conscmd_callback { private static void Usage() { - Console.WriteLine("Usage: " + Environment.NewLine + - "TestClient.exe --first firstname --last lastname --pass password --contact \"youremail\" [--startpos \"sim/x/y/z\"] [--master \"master name\"] [--masterkey \"master uuid\"]" + - Environment.NewLine + "TestClient.exe --file filename --contact \"youremail\" [--master \"master name\"] [--masterkey \"master uuid\"]"); } + public void RunCmd(string cmd, string[] cmdparams) {} + public void Show(string ShowWhat) {} + static void Main(string[] args) { + ConsoleBase m_console = new ConsoleBase("exportbot-console.log", "ExportBot", new Program() , false); + MainConsole.Instance = m_console; + Arguments arguments = new Arguments(args); ClientManager manager; @@ -115,13 +122,20 @@ namespace libsecondlife.TestClient } // Login the accounts and run the input loop - if ( arguments["start"] != null ) { + manager = new ClientManager(accounts, contact, "Theta/16/229/25"); +/* if ( arguments["start"] != null ) { manager = new ClientManager(accounts, contact, arguments["start"]); } else { manager = new ClientManager(accounts, contact); - } + }*/ + + Console.WriteLine("Starting the HTTP listener"); + BaseHttpServer httpServer = new BaseHttpServer(12035); + httpServer.AddRestHandler("GET", "/exportaccount/", manager.ExportAvatarRestMethod); + httpServer.Start(); + manager.Run(); - + } } } diff --git a/ExportBot/TestClient.cs b/ExportBot/TestClient.cs index cf8783e..f939aa0 100644 --- a/ExportBot/TestClient.cs +++ b/ExportBot/TestClient.cs @@ -18,12 +18,12 @@ namespace libsecondlife.TestClient public LLUUID GroupID = LLUUID.Zero; public Dictionary GroupMembers; public Dictionary AvatarList = new Dictionary(); - public Dictionary Appearances = new Dictionary(); - public Dictionary Commands = new Dictionary(); - public bool Running = true; + public Dictionary Appearances = new Dictionary(); + public Dictionary Commands = new Dictionary(); + public bool Running = true; public string MasterName = String.Empty; public LLUUID MasterKey = LLUUID.Zero; - public ClientManager ClientManager; + public ClientManager ClientManager; public int regionX; public int regionY; @@ -41,7 +41,7 @@ namespace libsecondlife.TestClient /// public TestClient(ClientManager manager) { - ClientManager = manager; + ClientManager = manager; updateTimer = new System.Timers.Timer(1000); updateTimer.Elapsed += new System.Timers.ElapsedEventHandler(updateTimer_Elapsed); @@ -57,7 +57,7 @@ namespace libsecondlife.TestClient Objects.OnNewPrim += new ObjectManager.NewPrimCallback(Objects_OnNewPrim); Objects.OnObjectUpdated += new ObjectManager.ObjectUpdatedCallback(Objects_OnObjectUpdated); Objects.OnObjectKilled += new ObjectManager.KillObjectCallback(Objects_OnObjectKilled); - Objects.OnNewAvatar += new ObjectManager.NewAvatarCallback(Objects_OnNewAvatar); + Objects.OnNewAvatar += new ObjectManager.NewAvatarCallback(Objects_OnNewAvatar); Self.OnInstantMessage += new MainAvatar.InstantMessageCallback(Self_OnInstantMessage); Groups.OnGroupMembers += new GroupManager.GroupMembersCallback(GroupMembersHandler); this.OnLogMessage += new LogCallback(TestClient_OnLogMessage); -- cgit v1.1