diff --git a/ExportBot/ClientManager.cs b/ExportBot/ClientManager.cs index 0e431427f8..65c01ee007 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 d7fb5fcd30..d608318ec2 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 e8bd1227f0..0000000000 --- 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 0000000000..033a14924d --- /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 0000000000..9181aa4495 --- /dev/null +++ b/ExportBot/ExportBot.exe.build @@ -0,0 +1,98 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ExportBot/Program.cs b/ExportBot/Program.cs index 705cf90b1a..8855be1e37 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 cf8783e098..f939aa0f7a 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); diff --git a/OpenGrid.Framework.Data.DB4o/OpenGrid.Framework.Data.DB4o.dll.build b/OpenGrid.Framework.Data.DB4o/OpenGrid.Framework.Data.DB4o.dll.build new file mode 100644 index 0000000000..f6ee64225f --- /dev/null +++ b/OpenGrid.Framework.Data.DB4o/OpenGrid.Framework.Data.DB4o.dll.build @@ -0,0 +1,47 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/OpenGrid.Framework.Data.MSSQL/OpenGrid.Framework.Data.MSSQL.dll.build b/OpenGrid.Framework.Data.MSSQL/OpenGrid.Framework.Data.MSSQL.dll.build new file mode 100644 index 0000000000..3b5c9d3e82 --- /dev/null +++ b/OpenGrid.Framework.Data.MSSQL/OpenGrid.Framework.Data.MSSQL.dll.build @@ -0,0 +1,45 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/OpenGrid.Framework.Data.MySQL/OpenGrid.Framework.Data.MySQL.dll.build b/OpenGrid.Framework.Data.MySQL/OpenGrid.Framework.Data.MySQL.dll.build new file mode 100644 index 0000000000..947cd215ad --- /dev/null +++ b/OpenGrid.Framework.Data.MySQL/OpenGrid.Framework.Data.MySQL.dll.build @@ -0,0 +1,46 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/OpenGrid.Framework.Data.SQLite/OpenGrid.Framework.Data.SQLite.dll.build b/OpenGrid.Framework.Data.SQLite/OpenGrid.Framework.Data.SQLite.dll.build new file mode 100644 index 0000000000..786bb46142 --- /dev/null +++ b/OpenGrid.Framework.Data.SQLite/OpenGrid.Framework.Data.SQLite.dll.build @@ -0,0 +1,46 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/OpenGrid.Framework.Data/OpenGrid.Framework.Data.dll.build b/OpenGrid.Framework.Data/OpenGrid.Framework.Data.dll.build new file mode 100644 index 0000000000..b47b22b351 --- /dev/null +++ b/OpenGrid.Framework.Data/OpenGrid.Framework.Data.dll.build @@ -0,0 +1,46 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/bin/libsecondlife.dll b/bin/libsecondlife.dll index 530fbd0aa9..efdf85bede 100644 Binary files a/bin/libsecondlife.dll and b/bin/libsecondlife.dll differ diff --git a/prebuild.xml b/prebuild.xml index 6dfed939a8..63be23eee1 100644 --- a/prebuild.xml +++ b/prebuild.xml @@ -121,8 +121,8 @@ - - + + @@ -198,7 +198,7 @@ - + @@ -734,9 +734,70 @@ + + + + + TRACE;DEBUG + false + false + false + 4 + false + + bin + true + true + false + + + + + TRACE + true + false + false + 4 + false + + bin + false + true + false + + + - - + + + + ../bin/ + + + + + ../bin/ + + + + ../bin/ + + + + + + + + + + + + + + + + +