From fa32c268679c4b688c41c3b80f5c1d58dafbd891 Mon Sep 17 00:00:00 2001 From: Adam Frisby Date: Sun, 29 Jul 2007 06:19:17 +0000 Subject: * Added Babblefrog's SL launcher (thanks!) --- .../LaunchSLClient/Form1.Designer.cs | 83 +++++++++ .../Tools/LaunchSLClient/LaunchSLClient/Form1.cs | 194 +++++++++++++++++++++ .../Tools/LaunchSLClient/LaunchSLClient/Form1.resx | 120 +++++++++++++ .../LaunchSLClient/LaunchSLClient.csproj | 79 +++++++++ .../LaunchSLClient/LauncherException.cs | 53 ++++++ .../Tools/LaunchSLClient/LaunchSLClient/Program.cs | 57 ++++++ .../LaunchSLClient/Properties/AssemblyInfo.cs | 33 ++++ .../Properties/Resources.Designer.cs | 71 ++++++++ .../LaunchSLClient/Properties/Resources.resx | 117 +++++++++++++ .../LaunchSLClient/Properties/Settings.Designer.cs | 30 ++++ .../LaunchSLClient/Properties/Settings.settings | 7 + 11 files changed, 844 insertions(+) create mode 100644 OpenSim/Tools/LaunchSLClient/LaunchSLClient/Form1.Designer.cs create mode 100644 OpenSim/Tools/LaunchSLClient/LaunchSLClient/Form1.cs create mode 100644 OpenSim/Tools/LaunchSLClient/LaunchSLClient/Form1.resx create mode 100644 OpenSim/Tools/LaunchSLClient/LaunchSLClient/LaunchSLClient.csproj create mode 100644 OpenSim/Tools/LaunchSLClient/LaunchSLClient/LauncherException.cs create mode 100644 OpenSim/Tools/LaunchSLClient/LaunchSLClient/Program.cs create mode 100644 OpenSim/Tools/LaunchSLClient/LaunchSLClient/Properties/AssemblyInfo.cs create mode 100644 OpenSim/Tools/LaunchSLClient/LaunchSLClient/Properties/Resources.Designer.cs create mode 100644 OpenSim/Tools/LaunchSLClient/LaunchSLClient/Properties/Resources.resx create mode 100644 OpenSim/Tools/LaunchSLClient/LaunchSLClient/Properties/Settings.Designer.cs create mode 100644 OpenSim/Tools/LaunchSLClient/LaunchSLClient/Properties/Settings.settings (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Form1.Designer.cs b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Form1.Designer.cs new file mode 100644 index 0000000..f6e52cf --- /dev/null +++ b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Form1.Designer.cs @@ -0,0 +1,83 @@ +namespace LaunchSLClient +{ + partial class Form1 + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.comboBox1 = new System.Windows.Forms.ComboBox(); + this.textBox1 = new System.Windows.Forms.TextBox(); + this.SuspendLayout(); + // + // comboBox1 + // + this.comboBox1.FormattingEnabled = true; + this.comboBox1.Items.AddRange(new object[] { + "Local Sandbox", + "Local Grid Server", + "DeepGrid - www.deepgrid.com", + "OSGrid - www.osgrid.org", + "Linden Labs - www.secondlife.com"}); + this.comboBox1.Location = new System.Drawing.Point(37, 83); + this.comboBox1.Name = "comboBox1"; + this.comboBox1.Size = new System.Drawing.Size(348, 21); + this.comboBox1.TabIndex = 0; + this.comboBox1.Text = "Choose from list"; + this.comboBox1.SelectedIndexChanged += new System.EventHandler(this.comboBox1_SelectedIndexChanged); + // + // textBox1 + // + this.textBox1.BorderStyle = System.Windows.Forms.BorderStyle.None; + this.textBox1.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.textBox1.Location = new System.Drawing.Point(37, 32); + this.textBox1.Name = "textBox1"; + this.textBox1.ReadOnly = true; + this.textBox1.Size = new System.Drawing.Size(292, 19); + this.textBox1.TabIndex = 1; + this.textBox1.Text = "Choose from one of the following:"; + // + // Form1 + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(501, 339); + this.Controls.Add(this.textBox1); + this.Controls.Add(this.comboBox1); + this.Name = "Form1"; + this.Text = "OpenSim Client Launcher"; + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.ComboBox comboBox1; + private System.Windows.Forms.TextBox textBox1; + + } +} + diff --git a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Form1.cs b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Form1.cs new file mode 100644 index 0000000..497661d --- /dev/null +++ b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Form1.cs @@ -0,0 +1,194 @@ +/* +* Copyright (c) Contributors, http://www.openmetaverse.org/ +* See CONTRIBUTORS.TXT for a full list of copyright holders. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenSim Project nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +*/ +using System; +using System.IO; +using System.Collections; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Diagnostics; +using System.Drawing; +using System.Text; +using System.Text.RegularExpressions; +using System.Windows.Forms; +using Microsoft.Win32; + +namespace LaunchSLClient +{ + public partial class Form1 : Form + { + string gridUrl = ""; + string sandboxUrl = ""; + string deepGridUrl = "http://user.deepgrid.com:8002/"; + string osGridUrl = "http://www.osgrid.org:8002/"; + string runUrl = ""; + string runLine = ""; + Object exeFlags; + Object exePath; + + + public Form1() + { + InitializeComponent(); + ArrayList menuItems=new ArrayList(); + menuItems.Add("Please select one:"); + string sandboxHostName = ""; + string sandboxPort = ""; + Object simPath = null; + FileInfo defaultFile; + StreamReader stream; + + + // get executable path from registry + // + RegistryKey regKey; + RegistryKey exeKey; + regKey = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Linden Research, Inc.\SecondLife"); + if (regKey == null) + { + throw new LauncherException("Can't find Second Life. Are you sure it is installed?", "LauncherException.Form1"); + } + Object exe = regKey.GetValue("Exe"); + exeFlags = regKey.GetValue("Flags"); + exePath = regKey.GetValue(""); + runLine = exePath.ToString() + "\\" + exe.ToString(); + Registry.LocalMachine.Flush(); + Registry.LocalMachine.Close(); + + // find opensim directory + // + exeKey = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\OpenSim\OpenSim"); + if (exeKey != null) + { + + simPath = exeKey.GetValue("Path"); + + // build sandbox URL from Regions\default.xml + // this is highly dependant on a standard default.xml + // + Directory.SetCurrentDirectory(simPath.ToString()); //this should be set to wherever we decide to put the binaries + string text; + Regex myRegex = new Regex(".*internal_ip_port=\\\"(?.*?)\\\".*external_host_name=\\\"(?.*?)\\\".*"); + if (File.Exists(@"Regions\default.xml")) + { + defaultFile = new FileInfo(@"Regions\default.xml"); + stream = defaultFile.OpenText(); + do + { + text = stream.ReadLine(); + if (text == null) + { + break; + } + MatchCollection theMatches = myRegex.Matches(text); + foreach (Match theMatch in theMatches) + { + if (theMatch.Length != 0) + { + sandboxHostName = theMatch.Groups["name"].ToString(); + sandboxPort = theMatch.Groups["port"].ToString(); + } + } + } while (text != null); + stream.Close(); + sandboxUrl = "http:\\" + sandboxHostName + ":" + sandboxPort; + menuItems.Add("Local Sandbox"); + } + else + { + MessageBox.Show("No OpenSim config files found. Please run OpenSim and finish configuration to run a local sim. Showing public grids only", "No OpenSim"); + } + + + //build local grid URL from network_servers_information.xml + // this is highly dependant on a standard default.xml + // + myRegex = new Regex(".*UserServerURL=\\\"(?.*?)\\\".*"); + if (File.Exists(@"network_servers_information.xml")) + { + defaultFile = new FileInfo(@"network_servers_information.xml"); + + + stream = defaultFile.OpenText(); + do + { + text = stream.ReadLine(); + if (text == null) + { + break; + } + MatchCollection theMatches = myRegex.Matches(text); + foreach (Match theMatch in theMatches) + { + if (theMatch.Length != 0) + { + gridUrl = theMatch.Groups["url"].ToString(); + } + } + } while (text != null); + stream.Close(); + if (gridUrl != null) + { + menuItems.Add("Local Grid Server"); + } + } + } + else + { + MessageBox.Show("No OpenSim installed. Showing public grids only", "No OpenSim"); + } + menuItems.Add("DeepGrid - www.deepgrid.com"); + menuItems.Add("OSGrid - www.osgrid.org"); + menuItems.Add("Linden Labs - www.secondlife.com"); + comboBox1.DataSource=menuItems; + } + + private void radioButton1_CheckedChanged(object sender, EventArgs e) + { + + } + + private void comboBox1_SelectedIndexChanged(object sender, EventArgs e) + { + if (comboBox1.Text == "Please select one:") { return; } + if (comboBox1.Text == "Local Sandbox") { runUrl=" - loginuri " + sandboxUrl;} + if (comboBox1.Text == "Local Grid Server") { runUrl = " - loginuri " + gridUrl; } + if (comboBox1.Text == "DeepGrid - www.deepgrid.com") { runUrl = " - loginuri " + deepGridUrl; } + if (comboBox1.Text == "OSGrid - www.osgrid.org") { runUrl = " - loginuri " + osGridUrl; } + if (comboBox1.Text == "Linden Labs - www.secondlife.com") { runUrl = ""; } + System.Diagnostics.Process proc = new System.Diagnostics.Process(); + proc.StartInfo.FileName = runLine; + proc.StartInfo.Arguments = exeFlags.ToString() + " " + runUrl; + proc.StartInfo.UseShellExecute = false; + proc.StartInfo.RedirectStandardOutput = false; + proc.StartInfo.WorkingDirectory = exePath.ToString(); + proc.Start(); + proc.WaitForExit(); + } + } +} \ No newline at end of file diff --git a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Form1.resx b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Form1.resx new file mode 100644 index 0000000..ff31a6d --- /dev/null +++ b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Form1.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/LaunchSLClient.csproj b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/LaunchSLClient.csproj new file mode 100644 index 0000000..bc70f11 --- /dev/null +++ b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/LaunchSLClient.csproj @@ -0,0 +1,79 @@ + + + Debug + AnyCPU + 8.0.50727 + 2.0 + {50FD2DCD-2E2D-413C-8260-D9CD22405895} + WinExe + Properties + LaunchSLClient + LaunchSLClient + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + Form + + + Form1.cs + + + + + + Designer + Form1.cs + + + ResXFileCodeGenerator + Resources.Designer.cs + Designer + + + True + Resources.resx + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + True + Settings.settings + True + + + + + \ No newline at end of file diff --git a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/LauncherException.cs b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/LauncherException.cs new file mode 100644 index 0000000..7a2e861 --- /dev/null +++ b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/LauncherException.cs @@ -0,0 +1,53 @@ +/* +* Copyright (c) Contributors, http://www.openmetaverse.org/ +* See CONTRIBUTORS.TXT for a full list of copyright holders. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenSim Project nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +*/ +using System; +using System.Collections.Generic; +using System.Text; + +namespace LaunchSLClient +{ + class LauncherException : ApplicationException + { + + private const string CUSTOMMESSAGE = "The SL Client Launcher has failed with the following error: "; + + private LauncherException() { } + + public LauncherException(string errorMesssage, string source) + : base (CUSTOMMESSAGE + errorMesssage) + { + base.Source = source; + } + + public LauncherException(string errorMessage, string source, Exception innerException) + : base(CUSTOMMESSAGE + errorMessage, innerException) + { + base.Source = source; + } + } +} diff --git a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Program.cs b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Program.cs new file mode 100644 index 0000000..ba652a9 --- /dev/null +++ b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Program.cs @@ -0,0 +1,57 @@ +/* +* Copyright (c) Contributors, http://www.openmetaverse.org/ +* See CONTRIBUTORS.TXT for a full list of copyright holders. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenSim Project nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +*/ +using System; +using System.Collections.Generic; +using System.Windows.Forms; + + +namespace LaunchSLClient +{ + static class Program + { + /// + /// The main entry point for the application. + /// + [STAThread] + static void Main() + { + + try + { + Application.EnableVisualStyles(); + Application.SetCompatibleTextRenderingDefault(false); + Application.Run(new Form1()); + } + catch (Exception ex) + { + // Handles all unhandled errors + MessageBox.Show(ex.Message,"Unhandled Error"); + } + } + } +} \ No newline at end of file diff --git a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Properties/AssemblyInfo.cs b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..4bd2cea --- /dev/null +++ b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Properties/AssemblyInfo.cs @@ -0,0 +1,33 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("LaunchSLClient")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("Home")] +[assembly: AssemblyProduct("LaunchSLClient")] +[assembly: AssemblyCopyright("Copyright © Home 2007")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("b08c6904-e6cc-4d9c-8d24-feb0464b1648")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Properties/Resources.Designer.cs b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Properties/Resources.Designer.cs new file mode 100644 index 0000000..f9dfcc0 --- /dev/null +++ b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Properties/Resources.Designer.cs @@ -0,0 +1,71 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.50727.832 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace LaunchSLClient.Properties +{ + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "2.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources + { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() + { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager + { + get + { + if ((resourceMan == null)) + { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("LaunchSLClient.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture + { + get + { + return resourceCulture; + } + set + { + resourceCulture = value; + } + } + } +} diff --git a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Properties/Resources.resx b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Properties/Resources.resx new file mode 100644 index 0000000..ffecec8 --- /dev/null +++ b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Properties/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Properties/Settings.Designer.cs b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Properties/Settings.Designer.cs new file mode 100644 index 0000000..72c3ced --- /dev/null +++ b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Properties/Settings.Designer.cs @@ -0,0 +1,30 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.50727.832 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace LaunchSLClient.Properties +{ + + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "8.0.0.0")] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase + { + + private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); + + public static Settings Default + { + get + { + return defaultInstance; + } + } + } +} diff --git a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Properties/Settings.settings b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Properties/Settings.settings new file mode 100644 index 0000000..abf36c5 --- /dev/null +++ b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + -- cgit v1.1 From 74bb5282a09ec095a7ff810c62f79cc64e187686 Mon Sep 17 00:00:00 2001 From: Sean Dague Date: Mon, 30 Jul 2007 20:11:40 +0000 Subject: mass update of files to have native line endings --- .../LaunchSLClient/Form1.Designer.cs | 166 ++++----- .../Tools/LaunchSLClient/LaunchSLClient/Form1.cs | 386 ++++++++++----------- .../Tools/LaunchSLClient/LaunchSLClient/Form1.resx | 238 ++++++------- .../LaunchSLClient/LaunchSLClient.csproj | 156 ++++----- .../LaunchSLClient/LauncherException.cs | 106 +++--- .../Tools/LaunchSLClient/LaunchSLClient/Program.cs | 112 +++--- .../LaunchSLClient/Properties/AssemblyInfo.cs | 66 ++-- .../Properties/Resources.Designer.cs | 142 ++++---- .../LaunchSLClient/Properties/Resources.resx | 232 ++++++------- .../LaunchSLClient/Properties/Settings.Designer.cs | 60 ++-- .../LaunchSLClient/Properties/Settings.settings | 14 +- 11 files changed, 839 insertions(+), 839 deletions(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Form1.Designer.cs b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Form1.Designer.cs index f6e52cf..0601e51 100644 --- a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Form1.Designer.cs +++ b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Form1.Designer.cs @@ -1,83 +1,83 @@ -namespace LaunchSLClient -{ - partial class Form1 - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.comboBox1 = new System.Windows.Forms.ComboBox(); - this.textBox1 = new System.Windows.Forms.TextBox(); - this.SuspendLayout(); - // - // comboBox1 - // - this.comboBox1.FormattingEnabled = true; - this.comboBox1.Items.AddRange(new object[] { - "Local Sandbox", - "Local Grid Server", - "DeepGrid - www.deepgrid.com", - "OSGrid - www.osgrid.org", - "Linden Labs - www.secondlife.com"}); - this.comboBox1.Location = new System.Drawing.Point(37, 83); - this.comboBox1.Name = "comboBox1"; - this.comboBox1.Size = new System.Drawing.Size(348, 21); - this.comboBox1.TabIndex = 0; - this.comboBox1.Text = "Choose from list"; - this.comboBox1.SelectedIndexChanged += new System.EventHandler(this.comboBox1_SelectedIndexChanged); - // - // textBox1 - // - this.textBox1.BorderStyle = System.Windows.Forms.BorderStyle.None; - this.textBox1.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.textBox1.Location = new System.Drawing.Point(37, 32); - this.textBox1.Name = "textBox1"; - this.textBox1.ReadOnly = true; - this.textBox1.Size = new System.Drawing.Size(292, 19); - this.textBox1.TabIndex = 1; - this.textBox1.Text = "Choose from one of the following:"; - // - // Form1 - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(501, 339); - this.Controls.Add(this.textBox1); - this.Controls.Add(this.comboBox1); - this.Name = "Form1"; - this.Text = "OpenSim Client Launcher"; - this.ResumeLayout(false); - this.PerformLayout(); - - } - - #endregion - - private System.Windows.Forms.ComboBox comboBox1; - private System.Windows.Forms.TextBox textBox1; - - } -} - +namespace LaunchSLClient +{ + partial class Form1 + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.comboBox1 = new System.Windows.Forms.ComboBox(); + this.textBox1 = new System.Windows.Forms.TextBox(); + this.SuspendLayout(); + // + // comboBox1 + // + this.comboBox1.FormattingEnabled = true; + this.comboBox1.Items.AddRange(new object[] { + "Local Sandbox", + "Local Grid Server", + "DeepGrid - www.deepgrid.com", + "OSGrid - www.osgrid.org", + "Linden Labs - www.secondlife.com"}); + this.comboBox1.Location = new System.Drawing.Point(37, 83); + this.comboBox1.Name = "comboBox1"; + this.comboBox1.Size = new System.Drawing.Size(348, 21); + this.comboBox1.TabIndex = 0; + this.comboBox1.Text = "Choose from list"; + this.comboBox1.SelectedIndexChanged += new System.EventHandler(this.comboBox1_SelectedIndexChanged); + // + // textBox1 + // + this.textBox1.BorderStyle = System.Windows.Forms.BorderStyle.None; + this.textBox1.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.textBox1.Location = new System.Drawing.Point(37, 32); + this.textBox1.Name = "textBox1"; + this.textBox1.ReadOnly = true; + this.textBox1.Size = new System.Drawing.Size(292, 19); + this.textBox1.TabIndex = 1; + this.textBox1.Text = "Choose from one of the following:"; + // + // Form1 + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(501, 339); + this.Controls.Add(this.textBox1); + this.Controls.Add(this.comboBox1); + this.Name = "Form1"; + this.Text = "OpenSim Client Launcher"; + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.ComboBox comboBox1; + private System.Windows.Forms.TextBox textBox1; + + } +} + diff --git a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Form1.cs b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Form1.cs index 497661d..8fd9b27 100644 --- a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Form1.cs +++ b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Form1.cs @@ -1,194 +1,194 @@ -/* -* Copyright (c) Contributors, http://www.openmetaverse.org/ -* See CONTRIBUTORS.TXT for a full list of copyright holders. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions are met: -* * Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* * Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in the -* documentation and/or other materials provided with the distribution. -* * Neither the name of the OpenSim Project nor the -* names of its contributors may be used to endorse or promote products -* derived from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY -* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY -* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -* -*/ -using System; -using System.IO; -using System.Collections; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Diagnostics; -using System.Drawing; -using System.Text; -using System.Text.RegularExpressions; -using System.Windows.Forms; -using Microsoft.Win32; - -namespace LaunchSLClient -{ - public partial class Form1 : Form - { - string gridUrl = ""; - string sandboxUrl = ""; - string deepGridUrl = "http://user.deepgrid.com:8002/"; - string osGridUrl = "http://www.osgrid.org:8002/"; - string runUrl = ""; - string runLine = ""; - Object exeFlags; - Object exePath; - - - public Form1() - { - InitializeComponent(); - ArrayList menuItems=new ArrayList(); - menuItems.Add("Please select one:"); - string sandboxHostName = ""; - string sandboxPort = ""; - Object simPath = null; - FileInfo defaultFile; - StreamReader stream; - - - // get executable path from registry - // - RegistryKey regKey; - RegistryKey exeKey; - regKey = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Linden Research, Inc.\SecondLife"); - if (regKey == null) - { - throw new LauncherException("Can't find Second Life. Are you sure it is installed?", "LauncherException.Form1"); - } - Object exe = regKey.GetValue("Exe"); - exeFlags = regKey.GetValue("Flags"); - exePath = regKey.GetValue(""); - runLine = exePath.ToString() + "\\" + exe.ToString(); - Registry.LocalMachine.Flush(); - Registry.LocalMachine.Close(); - - // find opensim directory - // - exeKey = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\OpenSim\OpenSim"); - if (exeKey != null) - { - - simPath = exeKey.GetValue("Path"); - - // build sandbox URL from Regions\default.xml - // this is highly dependant on a standard default.xml - // - Directory.SetCurrentDirectory(simPath.ToString()); //this should be set to wherever we decide to put the binaries - string text; - Regex myRegex = new Regex(".*internal_ip_port=\\\"(?.*?)\\\".*external_host_name=\\\"(?.*?)\\\".*"); - if (File.Exists(@"Regions\default.xml")) - { - defaultFile = new FileInfo(@"Regions\default.xml"); - stream = defaultFile.OpenText(); - do - { - text = stream.ReadLine(); - if (text == null) - { - break; - } - MatchCollection theMatches = myRegex.Matches(text); - foreach (Match theMatch in theMatches) - { - if (theMatch.Length != 0) - { - sandboxHostName = theMatch.Groups["name"].ToString(); - sandboxPort = theMatch.Groups["port"].ToString(); - } - } - } while (text != null); - stream.Close(); - sandboxUrl = "http:\\" + sandboxHostName + ":" + sandboxPort; - menuItems.Add("Local Sandbox"); - } - else - { - MessageBox.Show("No OpenSim config files found. Please run OpenSim and finish configuration to run a local sim. Showing public grids only", "No OpenSim"); - } - - - //build local grid URL from network_servers_information.xml - // this is highly dependant on a standard default.xml - // - myRegex = new Regex(".*UserServerURL=\\\"(?.*?)\\\".*"); - if (File.Exists(@"network_servers_information.xml")) - { - defaultFile = new FileInfo(@"network_servers_information.xml"); - - - stream = defaultFile.OpenText(); - do - { - text = stream.ReadLine(); - if (text == null) - { - break; - } - MatchCollection theMatches = myRegex.Matches(text); - foreach (Match theMatch in theMatches) - { - if (theMatch.Length != 0) - { - gridUrl = theMatch.Groups["url"].ToString(); - } - } - } while (text != null); - stream.Close(); - if (gridUrl != null) - { - menuItems.Add("Local Grid Server"); - } - } - } - else - { - MessageBox.Show("No OpenSim installed. Showing public grids only", "No OpenSim"); - } - menuItems.Add("DeepGrid - www.deepgrid.com"); - menuItems.Add("OSGrid - www.osgrid.org"); - menuItems.Add("Linden Labs - www.secondlife.com"); - comboBox1.DataSource=menuItems; - } - - private void radioButton1_CheckedChanged(object sender, EventArgs e) - { - - } - - private void comboBox1_SelectedIndexChanged(object sender, EventArgs e) - { - if (comboBox1.Text == "Please select one:") { return; } - if (comboBox1.Text == "Local Sandbox") { runUrl=" - loginuri " + sandboxUrl;} - if (comboBox1.Text == "Local Grid Server") { runUrl = " - loginuri " + gridUrl; } - if (comboBox1.Text == "DeepGrid - www.deepgrid.com") { runUrl = " - loginuri " + deepGridUrl; } - if (comboBox1.Text == "OSGrid - www.osgrid.org") { runUrl = " - loginuri " + osGridUrl; } - if (comboBox1.Text == "Linden Labs - www.secondlife.com") { runUrl = ""; } - System.Diagnostics.Process proc = new System.Diagnostics.Process(); - proc.StartInfo.FileName = runLine; - proc.StartInfo.Arguments = exeFlags.ToString() + " " + runUrl; - proc.StartInfo.UseShellExecute = false; - proc.StartInfo.RedirectStandardOutput = false; - proc.StartInfo.WorkingDirectory = exePath.ToString(); - proc.Start(); - proc.WaitForExit(); - } - } +/* +* Copyright (c) Contributors, http://www.openmetaverse.org/ +* See CONTRIBUTORS.TXT for a full list of copyright holders. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenSim Project nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +*/ +using System; +using System.IO; +using System.Collections; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Diagnostics; +using System.Drawing; +using System.Text; +using System.Text.RegularExpressions; +using System.Windows.Forms; +using Microsoft.Win32; + +namespace LaunchSLClient +{ + public partial class Form1 : Form + { + string gridUrl = ""; + string sandboxUrl = ""; + string deepGridUrl = "http://user.deepgrid.com:8002/"; + string osGridUrl = "http://www.osgrid.org:8002/"; + string runUrl = ""; + string runLine = ""; + Object exeFlags; + Object exePath; + + + public Form1() + { + InitializeComponent(); + ArrayList menuItems=new ArrayList(); + menuItems.Add("Please select one:"); + string sandboxHostName = ""; + string sandboxPort = ""; + Object simPath = null; + FileInfo defaultFile; + StreamReader stream; + + + // get executable path from registry + // + RegistryKey regKey; + RegistryKey exeKey; + regKey = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Linden Research, Inc.\SecondLife"); + if (regKey == null) + { + throw new LauncherException("Can't find Second Life. Are you sure it is installed?", "LauncherException.Form1"); + } + Object exe = regKey.GetValue("Exe"); + exeFlags = regKey.GetValue("Flags"); + exePath = regKey.GetValue(""); + runLine = exePath.ToString() + "\\" + exe.ToString(); + Registry.LocalMachine.Flush(); + Registry.LocalMachine.Close(); + + // find opensim directory + // + exeKey = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\OpenSim\OpenSim"); + if (exeKey != null) + { + + simPath = exeKey.GetValue("Path"); + + // build sandbox URL from Regions\default.xml + // this is highly dependant on a standard default.xml + // + Directory.SetCurrentDirectory(simPath.ToString()); //this should be set to wherever we decide to put the binaries + string text; + Regex myRegex = new Regex(".*internal_ip_port=\\\"(?.*?)\\\".*external_host_name=\\\"(?.*?)\\\".*"); + if (File.Exists(@"Regions\default.xml")) + { + defaultFile = new FileInfo(@"Regions\default.xml"); + stream = defaultFile.OpenText(); + do + { + text = stream.ReadLine(); + if (text == null) + { + break; + } + MatchCollection theMatches = myRegex.Matches(text); + foreach (Match theMatch in theMatches) + { + if (theMatch.Length != 0) + { + sandboxHostName = theMatch.Groups["name"].ToString(); + sandboxPort = theMatch.Groups["port"].ToString(); + } + } + } while (text != null); + stream.Close(); + sandboxUrl = "http:\\" + sandboxHostName + ":" + sandboxPort; + menuItems.Add("Local Sandbox"); + } + else + { + MessageBox.Show("No OpenSim config files found. Please run OpenSim and finish configuration to run a local sim. Showing public grids only", "No OpenSim"); + } + + + //build local grid URL from network_servers_information.xml + // this is highly dependant on a standard default.xml + // + myRegex = new Regex(".*UserServerURL=\\\"(?.*?)\\\".*"); + if (File.Exists(@"network_servers_information.xml")) + { + defaultFile = new FileInfo(@"network_servers_information.xml"); + + + stream = defaultFile.OpenText(); + do + { + text = stream.ReadLine(); + if (text == null) + { + break; + } + MatchCollection theMatches = myRegex.Matches(text); + foreach (Match theMatch in theMatches) + { + if (theMatch.Length != 0) + { + gridUrl = theMatch.Groups["url"].ToString(); + } + } + } while (text != null); + stream.Close(); + if (gridUrl != null) + { + menuItems.Add("Local Grid Server"); + } + } + } + else + { + MessageBox.Show("No OpenSim installed. Showing public grids only", "No OpenSim"); + } + menuItems.Add("DeepGrid - www.deepgrid.com"); + menuItems.Add("OSGrid - www.osgrid.org"); + menuItems.Add("Linden Labs - www.secondlife.com"); + comboBox1.DataSource=menuItems; + } + + private void radioButton1_CheckedChanged(object sender, EventArgs e) + { + + } + + private void comboBox1_SelectedIndexChanged(object sender, EventArgs e) + { + if (comboBox1.Text == "Please select one:") { return; } + if (comboBox1.Text == "Local Sandbox") { runUrl=" - loginuri " + sandboxUrl;} + if (comboBox1.Text == "Local Grid Server") { runUrl = " - loginuri " + gridUrl; } + if (comboBox1.Text == "DeepGrid - www.deepgrid.com") { runUrl = " - loginuri " + deepGridUrl; } + if (comboBox1.Text == "OSGrid - www.osgrid.org") { runUrl = " - loginuri " + osGridUrl; } + if (comboBox1.Text == "Linden Labs - www.secondlife.com") { runUrl = ""; } + System.Diagnostics.Process proc = new System.Diagnostics.Process(); + proc.StartInfo.FileName = runLine; + proc.StartInfo.Arguments = exeFlags.ToString() + " " + runUrl; + proc.StartInfo.UseShellExecute = false; + proc.StartInfo.RedirectStandardOutput = false; + proc.StartInfo.WorkingDirectory = exePath.ToString(); + proc.Start(); + proc.WaitForExit(); + } + } } \ No newline at end of file diff --git a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Form1.resx b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Form1.resx index ff31a6d..19dc0dd 100644 --- a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Form1.resx +++ b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Form1.resx @@ -1,120 +1,120 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + \ No newline at end of file diff --git a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/LaunchSLClient.csproj b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/LaunchSLClient.csproj index bc70f11..2589ec7 100644 --- a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/LaunchSLClient.csproj +++ b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/LaunchSLClient.csproj @@ -1,79 +1,79 @@ - - - Debug - AnyCPU - 8.0.50727 - 2.0 - {50FD2DCD-2E2D-413C-8260-D9CD22405895} - WinExe - Properties - LaunchSLClient - LaunchSLClient - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - - - - - - - - - - Form - - - Form1.cs - - - - - - Designer - Form1.cs - - - ResXFileCodeGenerator - Resources.Designer.cs - Designer - - - True - Resources.resx - - - SettingsSingleFileGenerator - Settings.Designer.cs - - - True - Settings.settings - True - - - - + + + Debug + AnyCPU + 8.0.50727 + 2.0 + {50FD2DCD-2E2D-413C-8260-D9CD22405895} + WinExe + Properties + LaunchSLClient + LaunchSLClient + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + Form + + + Form1.cs + + + + + + Designer + Form1.cs + + + ResXFileCodeGenerator + Resources.Designer.cs + Designer + + + True + Resources.resx + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + True + Settings.settings + True + + + + \ No newline at end of file diff --git a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/LauncherException.cs b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/LauncherException.cs index 7a2e861..a0b4612 100644 --- a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/LauncherException.cs +++ b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/LauncherException.cs @@ -1,53 +1,53 @@ -/* -* Copyright (c) Contributors, http://www.openmetaverse.org/ -* See CONTRIBUTORS.TXT for a full list of copyright holders. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions are met: -* * Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* * Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in the -* documentation and/or other materials provided with the distribution. -* * Neither the name of the OpenSim Project nor the -* names of its contributors may be used to endorse or promote products -* derived from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY -* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY -* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -* -*/ -using System; -using System.Collections.Generic; -using System.Text; - -namespace LaunchSLClient -{ - class LauncherException : ApplicationException - { - - private const string CUSTOMMESSAGE = "The SL Client Launcher has failed with the following error: "; - - private LauncherException() { } - - public LauncherException(string errorMesssage, string source) - : base (CUSTOMMESSAGE + errorMesssage) - { - base.Source = source; - } - - public LauncherException(string errorMessage, string source, Exception innerException) - : base(CUSTOMMESSAGE + errorMessage, innerException) - { - base.Source = source; - } - } -} +/* +* Copyright (c) Contributors, http://www.openmetaverse.org/ +* See CONTRIBUTORS.TXT for a full list of copyright holders. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenSim Project nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +*/ +using System; +using System.Collections.Generic; +using System.Text; + +namespace LaunchSLClient +{ + class LauncherException : ApplicationException + { + + private const string CUSTOMMESSAGE = "The SL Client Launcher has failed with the following error: "; + + private LauncherException() { } + + public LauncherException(string errorMesssage, string source) + : base (CUSTOMMESSAGE + errorMesssage) + { + base.Source = source; + } + + public LauncherException(string errorMessage, string source, Exception innerException) + : base(CUSTOMMESSAGE + errorMessage, innerException) + { + base.Source = source; + } + } +} diff --git a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Program.cs b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Program.cs index ba652a9..efcfd46 100644 --- a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Program.cs +++ b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Program.cs @@ -1,57 +1,57 @@ -/* -* Copyright (c) Contributors, http://www.openmetaverse.org/ -* See CONTRIBUTORS.TXT for a full list of copyright holders. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions are met: -* * Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* * Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in the -* documentation and/or other materials provided with the distribution. -* * Neither the name of the OpenSim Project nor the -* names of its contributors may be used to endorse or promote products -* derived from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY -* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY -* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -* -*/ -using System; -using System.Collections.Generic; -using System.Windows.Forms; - - -namespace LaunchSLClient -{ - static class Program - { - /// - /// The main entry point for the application. - /// - [STAThread] - static void Main() - { - - try - { - Application.EnableVisualStyles(); - Application.SetCompatibleTextRenderingDefault(false); - Application.Run(new Form1()); - } - catch (Exception ex) - { - // Handles all unhandled errors - MessageBox.Show(ex.Message,"Unhandled Error"); - } - } - } +/* +* Copyright (c) Contributors, http://www.openmetaverse.org/ +* See CONTRIBUTORS.TXT for a full list of copyright holders. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenSim Project nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +*/ +using System; +using System.Collections.Generic; +using System.Windows.Forms; + + +namespace LaunchSLClient +{ + static class Program + { + /// + /// The main entry point for the application. + /// + [STAThread] + static void Main() + { + + try + { + Application.EnableVisualStyles(); + Application.SetCompatibleTextRenderingDefault(false); + Application.Run(new Form1()); + } + catch (Exception ex) + { + // Handles all unhandled errors + MessageBox.Show(ex.Message,"Unhandled Error"); + } + } + } } \ No newline at end of file diff --git a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Properties/AssemblyInfo.cs b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Properties/AssemblyInfo.cs index 4bd2cea..0c3e72e 100644 --- a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Properties/AssemblyInfo.cs +++ b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Properties/AssemblyInfo.cs @@ -1,33 +1,33 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("LaunchSLClient")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("Home")] -[assembly: AssemblyProduct("LaunchSLClient")] -[assembly: AssemblyCopyright("Copyright © Home 2007")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("b08c6904-e6cc-4d9c-8d24-feb0464b1648")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("LaunchSLClient")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("Home")] +[assembly: AssemblyProduct("LaunchSLClient")] +[assembly: AssemblyCopyright("Copyright © Home 2007")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("b08c6904-e6cc-4d9c-8d24-feb0464b1648")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Properties/Resources.Designer.cs b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Properties/Resources.Designer.cs index f9dfcc0..4e9188d 100644 --- a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Properties/Resources.Designer.cs +++ b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Properties/Resources.Designer.cs @@ -1,71 +1,71 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:2.0.50727.832 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace LaunchSLClient.Properties -{ - - - /// - /// A strongly-typed resource class, for looking up localized strings, etc. - /// - // This class was auto-generated by the StronglyTypedResourceBuilder - // class via a tool like ResGen or Visual Studio. - // To add or remove a member, edit your .ResX file then rerun ResGen - // with the /str option, or rebuild your VS project. - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "2.0.0.0")] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - internal class Resources - { - - private static global::System.Resources.ResourceManager resourceMan; - - private static global::System.Globalization.CultureInfo resourceCulture; - - [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] - internal Resources() - { - } - - /// - /// Returns the cached ResourceManager instance used by this class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Resources.ResourceManager ResourceManager - { - get - { - if ((resourceMan == null)) - { - global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("LaunchSLClient.Properties.Resources", typeof(Resources).Assembly); - resourceMan = temp; - } - return resourceMan; - } - } - - /// - /// Overrides the current thread's CurrentUICulture property for all - /// resource lookups using this strongly typed resource class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Globalization.CultureInfo Culture - { - get - { - return resourceCulture; - } - set - { - resourceCulture = value; - } - } - } -} +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.50727.832 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace LaunchSLClient.Properties +{ + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "2.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources + { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() + { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager + { + get + { + if ((resourceMan == null)) + { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("LaunchSLClient.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture + { + get + { + return resourceCulture; + } + set + { + resourceCulture = value; + } + } + } +} diff --git a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Properties/Resources.resx b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Properties/Resources.resx index ffecec8..af7dbeb 100644 --- a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Properties/Resources.resx +++ b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Properties/Resources.resx @@ -1,117 +1,117 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + \ No newline at end of file diff --git a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Properties/Settings.Designer.cs b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Properties/Settings.Designer.cs index 72c3ced..3dcc200 100644 --- a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Properties/Settings.Designer.cs +++ b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Properties/Settings.Designer.cs @@ -1,30 +1,30 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:2.0.50727.832 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace LaunchSLClient.Properties -{ - - - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "8.0.0.0")] - internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase - { - - private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); - - public static Settings Default - { - get - { - return defaultInstance; - } - } - } -} +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.50727.832 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace LaunchSLClient.Properties +{ + + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "8.0.0.0")] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase + { + + private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); + + public static Settings Default + { + get + { + return defaultInstance; + } + } + } +} diff --git a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Properties/Settings.settings b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Properties/Settings.settings index abf36c5..3964565 100644 --- a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Properties/Settings.settings +++ b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Properties/Settings.settings @@ -1,7 +1,7 @@ - - - - - - - + + + + + + + -- cgit v1.1 From ffe9c9374a9b220b2046940a4dec7eb47e5c958b Mon Sep 17 00:00:00 2001 From: Sean Dague Date: Mon, 10 Sep 2007 08:14:38 +0000 Subject: mass update of urls in source code to new website --- OpenSim/Tools/LaunchSLClient/LaunchSLClient/Form1.cs | 2 +- OpenSim/Tools/LaunchSLClient/LaunchSLClient/LauncherException.cs | 2 +- OpenSim/Tools/LaunchSLClient/LaunchSLClient/Program.cs | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Form1.cs b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Form1.cs index 8fd9b27..619f6de 100644 --- a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Form1.cs +++ b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Form1.cs @@ -1,5 +1,5 @@ /* -* Copyright (c) Contributors, http://www.openmetaverse.org/ +* Copyright (c) Contributors, http://opensimulator.org/ * See CONTRIBUTORS.TXT for a full list of copyright holders. * * Redistribution and use in source and binary forms, with or without diff --git a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/LauncherException.cs b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/LauncherException.cs index a0b4612..edf079f 100644 --- a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/LauncherException.cs +++ b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/LauncherException.cs @@ -1,5 +1,5 @@ /* -* Copyright (c) Contributors, http://www.openmetaverse.org/ +* Copyright (c) Contributors, http://opensimulator.org/ * See CONTRIBUTORS.TXT for a full list of copyright holders. * * Redistribution and use in source and binary forms, with or without diff --git a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Program.cs b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Program.cs index efcfd46..d3e56f9 100644 --- a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Program.cs +++ b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Program.cs @@ -1,5 +1,5 @@ /* -* Copyright (c) Contributors, http://www.openmetaverse.org/ +* Copyright (c) Contributors, http://opensimulator.org/ * See CONTRIBUTORS.TXT for a full list of copyright holders. * * Redistribution and use in source and binary forms, with or without -- cgit v1.1 From dcaab9103ce1b7475872ee3224ccf58c1266f95e Mon Sep 17 00:00:00 2001 From: Tedd Hansen Date: Wed, 12 Sep 2007 13:03:21 +0000 Subject: Early alpha version of a GUI tool to configure and start OpenSim. Currently can start an already configured Grid server. --- OpenSim/Tools/OpenSim.GUI/InputTextBoxControl.cs | 88 ++++++ OpenSim/Tools/OpenSim.GUI/Main.Designer.cs | 348 +++++++++++++++++++++ OpenSim/Tools/OpenSim.GUI/Main.cs | 187 +++++++++++ OpenSim/Tools/OpenSim.GUI/Main.resx | 120 +++++++ OpenSim/Tools/OpenSim.GUI/OpenSim.GUI.csproj | 84 +++++ OpenSim/Tools/OpenSim.GUI/ProcessManager.cs | 71 +++++ OpenSim/Tools/OpenSim.GUI/Program.cs | 20 ++ .../Tools/OpenSim.GUI/Properties/AssemblyInfo.cs | 33 ++ .../OpenSim.GUI/Properties/Resources.Designer.cs | 71 +++++ .../Tools/OpenSim.GUI/Properties/Resources.resx | 117 +++++++ .../OpenSim.GUI/Properties/Settings.Designer.cs | 30 ++ .../Tools/OpenSim.GUI/Properties/Settings.settings | 7 + 12 files changed, 1176 insertions(+) create mode 100644 OpenSim/Tools/OpenSim.GUI/InputTextBoxControl.cs create mode 100644 OpenSim/Tools/OpenSim.GUI/Main.Designer.cs create mode 100644 OpenSim/Tools/OpenSim.GUI/Main.cs create mode 100644 OpenSim/Tools/OpenSim.GUI/Main.resx create mode 100644 OpenSim/Tools/OpenSim.GUI/OpenSim.GUI.csproj create mode 100644 OpenSim/Tools/OpenSim.GUI/ProcessManager.cs create mode 100644 OpenSim/Tools/OpenSim.GUI/Program.cs create mode 100644 OpenSim/Tools/OpenSim.GUI/Properties/AssemblyInfo.cs create mode 100644 OpenSim/Tools/OpenSim.GUI/Properties/Resources.Designer.cs create mode 100644 OpenSim/Tools/OpenSim.GUI/Properties/Resources.resx create mode 100644 OpenSim/Tools/OpenSim.GUI/Properties/Settings.Designer.cs create mode 100644 OpenSim/Tools/OpenSim.GUI/Properties/Settings.settings (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/OpenSim.GUI/InputTextBoxControl.cs b/OpenSim/Tools/OpenSim.GUI/InputTextBoxControl.cs new file mode 100644 index 0000000..91b3f60 --- /dev/null +++ b/OpenSim/Tools/OpenSim.GUI/InputTextBoxControl.cs @@ -0,0 +1,88 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Windows.Forms; + +namespace OpenSim.GUI +{ + class InputTextBoxControl:System.Windows.Forms.TextBox + { + public InputTextBoxControl() + { + this.KeyDown += new System.Windows.Forms.KeyEventHandler(TextInputControl_KeyDown); + } + + + private List CommandHistory = new List(); + private bool InHistory = false; + private int HistoryPosition = -1; + + void TextInputControl_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e) + { + + + if (e.KeyCode == Keys.Enter && InHistory == false) + { + CommandHistory.Add(this.Text); + } + + + if (e.KeyCode == Keys.Up || e.KeyCode == Keys.Down) + { + // if not inside buffer, enter + // InBuffer = true + //Console.WriteLine("History: Check"); + if (InHistory == false) + { + if (this.Text != "") + { + //Console.WriteLine("History: Add"); + CommandHistory.Add(this.Text); + HistoryPosition = CommandHistory.Count; + } + else + { + //HistoryPosition = CommandHistory.Count + 1; + } + //Console.WriteLine("History: InHistory"); + InHistory = true; + } + + if (e.KeyCode == Keys.Up) + HistoryPosition -= 1; + if (e.KeyCode == Keys.Down) + HistoryPosition += 1; + + if (HistoryPosition > CommandHistory.Count - 1) + HistoryPosition = -1; + if (HistoryPosition < -1) + HistoryPosition = CommandHistory.Count - 1; + + //Console.WriteLine("History: Pos: " + HistoryPosition); + //Console.WriteLine("History: HaveInHistCount: " + CommandHistory.Count); + if (CommandHistory.Count != 0) + { + if (HistoryPosition != -1) + { + //Console.WriteLine("History: Getting"); + //this.Text = CommandHistory.Item(HistoryPosition); + this.Text = CommandHistory[HistoryPosition]; + this.SelectionStart = this.Text.Length; + this.SelectionLength = 0; + } + else + { + //Console.WriteLine("History: Nothing"); + this.Text = ""; + } + } + e.Handled = true; + } else { + InHistory = false; + HistoryPosition = -1; + } + } + + + } +} diff --git a/OpenSim/Tools/OpenSim.GUI/Main.Designer.cs b/OpenSim/Tools/OpenSim.GUI/Main.Designer.cs new file mode 100644 index 0000000..b1ed5a4 --- /dev/null +++ b/OpenSim/Tools/OpenSim.GUI/Main.Designer.cs @@ -0,0 +1,348 @@ +namespace OpenSim.GUI +{ + partial class Main + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.tabLogs = new System.Windows.Forms.TabControl(); + this.tabMainLog = new System.Windows.Forms.TabPage(); + this.txtMainLog = new System.Windows.Forms.TextBox(); + this.tabRegionServer = new System.Windows.Forms.TabPage(); + this.label1 = new System.Windows.Forms.Label(); + this.txtInputRegionServer = new OpenSim.GUI.InputTextBoxControl(); + this.txtOpenSim = new System.Windows.Forms.TextBox(); + this.tabUserServer = new System.Windows.Forms.TabPage(); + this.label2 = new System.Windows.Forms.Label(); + this.txtInputUserServer = new OpenSim.GUI.InputTextBoxControl(); + this.txtUserServer = new System.Windows.Forms.TextBox(); + this.tabAssetServer = new System.Windows.Forms.TabPage(); + this.label3 = new System.Windows.Forms.Label(); + this.txtInputAssetServer = new OpenSim.GUI.InputTextBoxControl(); + this.txtAssetServer = new System.Windows.Forms.TextBox(); + this.tabGridServer = new System.Windows.Forms.TabPage(); + this.label4 = new System.Windows.Forms.Label(); + this.txtInputGridServer = new OpenSim.GUI.InputTextBoxControl(); + this.txtGridServer = new System.Windows.Forms.TextBox(); + this.gbLog = new System.Windows.Forms.GroupBox(); + this.btnStart = new System.Windows.Forms.Button(); + this.btnStop = new System.Windows.Forms.Button(); + this.tabLogs.SuspendLayout(); + this.tabMainLog.SuspendLayout(); + this.tabRegionServer.SuspendLayout(); + this.tabUserServer.SuspendLayout(); + this.tabAssetServer.SuspendLayout(); + this.tabGridServer.SuspendLayout(); + this.gbLog.SuspendLayout(); + this.SuspendLayout(); + // + // tabLogs + // + this.tabLogs.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.tabLogs.Controls.Add(this.tabMainLog); + this.tabLogs.Controls.Add(this.tabRegionServer); + this.tabLogs.Controls.Add(this.tabUserServer); + this.tabLogs.Controls.Add(this.tabAssetServer); + this.tabLogs.Controls.Add(this.tabGridServer); + this.tabLogs.Location = new System.Drawing.Point(6, 19); + this.tabLogs.Name = "tabLogs"; + this.tabLogs.SelectedIndex = 0; + this.tabLogs.Size = new System.Drawing.Size(562, 230); + this.tabLogs.TabIndex = 0; + // + // tabMainLog + // + this.tabMainLog.Controls.Add(this.txtMainLog); + this.tabMainLog.Location = new System.Drawing.Point(4, 22); + this.tabMainLog.Name = "tabMainLog"; + this.tabMainLog.Size = new System.Drawing.Size(554, 204); + this.tabMainLog.TabIndex = 4; + this.tabMainLog.Text = "Main log"; + this.tabMainLog.UseVisualStyleBackColor = true; + // + // txtMainLog + // + this.txtMainLog.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.txtMainLog.Location = new System.Drawing.Point(6, 5); + this.txtMainLog.Multiline = true; + this.txtMainLog.Name = "txtMainLog"; + this.txtMainLog.ScrollBars = System.Windows.Forms.ScrollBars.Vertical; + this.txtMainLog.Size = new System.Drawing.Size(542, 195); + this.txtMainLog.TabIndex = 1; + // + // tabRegionServer + // + this.tabRegionServer.Controls.Add(this.label1); + this.tabRegionServer.Controls.Add(this.txtInputRegionServer); + this.tabRegionServer.Controls.Add(this.txtOpenSim); + this.tabRegionServer.Location = new System.Drawing.Point(4, 22); + this.tabRegionServer.Name = "tabRegionServer"; + this.tabRegionServer.Padding = new System.Windows.Forms.Padding(3); + this.tabRegionServer.Size = new System.Drawing.Size(554, 204); + this.tabRegionServer.TabIndex = 0; + this.tabRegionServer.Text = "Region server"; + this.tabRegionServer.UseVisualStyleBackColor = true; + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Location = new System.Drawing.Point(6, 183); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(57, 13); + this.label1.TabIndex = 4; + this.label1.Text = "Command:"; + // + // txtInputRegionServer + // + this.txtInputRegionServer.Location = new System.Drawing.Point(69, 180); + this.txtInputRegionServer.Name = "txtInputRegionServer"; + this.txtInputRegionServer.Size = new System.Drawing.Size(479, 20); + this.txtInputRegionServer.TabIndex = 0; + // + // txtOpenSim + // + this.txtOpenSim.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.txtOpenSim.Location = new System.Drawing.Point(6, 6); + this.txtOpenSim.Multiline = true; + this.txtOpenSim.Name = "txtOpenSim"; + this.txtOpenSim.ScrollBars = System.Windows.Forms.ScrollBars.Vertical; + this.txtOpenSim.Size = new System.Drawing.Size(542, 168); + this.txtOpenSim.TabIndex = 0; + // + // tabUserServer + // + this.tabUserServer.Controls.Add(this.label2); + this.tabUserServer.Controls.Add(this.txtInputUserServer); + this.tabUserServer.Controls.Add(this.txtUserServer); + this.tabUserServer.Location = new System.Drawing.Point(4, 22); + this.tabUserServer.Name = "tabUserServer"; + this.tabUserServer.Padding = new System.Windows.Forms.Padding(3); + this.tabUserServer.Size = new System.Drawing.Size(554, 204); + this.tabUserServer.TabIndex = 1; + this.tabUserServer.Text = "User server"; + this.tabUserServer.UseVisualStyleBackColor = true; + // + // label2 + // + this.label2.AutoSize = true; + this.label2.Location = new System.Drawing.Point(6, 181); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(57, 13); + this.label2.TabIndex = 6; + this.label2.Text = "Command:"; + // + // txtInputUserServer + // + this.txtInputUserServer.Location = new System.Drawing.Point(69, 178); + this.txtInputUserServer.Name = "txtInputUserServer"; + this.txtInputUserServer.Size = new System.Drawing.Size(479, 20); + this.txtInputUserServer.TabIndex = 5; + // + // txtUserServer + // + this.txtUserServer.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.txtUserServer.Location = new System.Drawing.Point(6, 5); + this.txtUserServer.Multiline = true; + this.txtUserServer.Name = "txtUserServer"; + this.txtUserServer.ScrollBars = System.Windows.Forms.ScrollBars.Vertical; + this.txtUserServer.Size = new System.Drawing.Size(542, 168); + this.txtUserServer.TabIndex = 1; + // + // tabAssetServer + // + this.tabAssetServer.Controls.Add(this.label3); + this.tabAssetServer.Controls.Add(this.txtInputAssetServer); + this.tabAssetServer.Controls.Add(this.txtAssetServer); + this.tabAssetServer.Location = new System.Drawing.Point(4, 22); + this.tabAssetServer.Name = "tabAssetServer"; + this.tabAssetServer.Size = new System.Drawing.Size(554, 204); + this.tabAssetServer.TabIndex = 2; + this.tabAssetServer.Text = "Asset server"; + this.tabAssetServer.UseVisualStyleBackColor = true; + // + // label3 + // + this.label3.AutoSize = true; + this.label3.Location = new System.Drawing.Point(6, 182); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size(57, 13); + this.label3.TabIndex = 6; + this.label3.Text = "Command:"; + // + // txtInputAssetServer + // + this.txtInputAssetServer.Location = new System.Drawing.Point(69, 179); + this.txtInputAssetServer.Name = "txtInputAssetServer"; + this.txtInputAssetServer.Size = new System.Drawing.Size(479, 20); + this.txtInputAssetServer.TabIndex = 5; + // + // txtAssetServer + // + this.txtAssetServer.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.txtAssetServer.Location = new System.Drawing.Point(6, 5); + this.txtAssetServer.Multiline = true; + this.txtAssetServer.Name = "txtAssetServer"; + this.txtAssetServer.ScrollBars = System.Windows.Forms.ScrollBars.Vertical; + this.txtAssetServer.Size = new System.Drawing.Size(542, 168); + this.txtAssetServer.TabIndex = 1; + // + // tabGridServer + // + this.tabGridServer.Controls.Add(this.label4); + this.tabGridServer.Controls.Add(this.txtInputGridServer); + this.tabGridServer.Controls.Add(this.txtGridServer); + this.tabGridServer.Location = new System.Drawing.Point(4, 22); + this.tabGridServer.Name = "tabGridServer"; + this.tabGridServer.Size = new System.Drawing.Size(554, 204); + this.tabGridServer.TabIndex = 3; + this.tabGridServer.Text = "Grid server"; + this.tabGridServer.UseVisualStyleBackColor = true; + // + // label4 + // + this.label4.AutoSize = true; + this.label4.Location = new System.Drawing.Point(6, 182); + this.label4.Name = "label4"; + this.label4.Size = new System.Drawing.Size(57, 13); + this.label4.TabIndex = 6; + this.label4.Text = "Command:"; + // + // txtInputGridServer + // + this.txtInputGridServer.Location = new System.Drawing.Point(69, 179); + this.txtInputGridServer.Name = "txtInputGridServer"; + this.txtInputGridServer.Size = new System.Drawing.Size(479, 20); + this.txtInputGridServer.TabIndex = 5; + // + // txtGridServer + // + this.txtGridServer.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.txtGridServer.Location = new System.Drawing.Point(6, 5); + this.txtGridServer.Multiline = true; + this.txtGridServer.Name = "txtGridServer"; + this.txtGridServer.ScrollBars = System.Windows.Forms.ScrollBars.Vertical; + this.txtGridServer.Size = new System.Drawing.Size(542, 168); + this.txtGridServer.TabIndex = 1; + // + // gbLog + // + this.gbLog.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.gbLog.Controls.Add(this.tabLogs); + this.gbLog.Location = new System.Drawing.Point(2, 41); + this.gbLog.Name = "gbLog"; + this.gbLog.Size = new System.Drawing.Size(574, 255); + this.gbLog.TabIndex = 1; + this.gbLog.TabStop = false; + this.gbLog.Text = "Logs"; + // + // btnStart + // + this.btnStart.Location = new System.Drawing.Point(8, 12); + this.btnStart.Name = "btnStart"; + this.btnStart.Size = new System.Drawing.Size(75, 23); + this.btnStart.TabIndex = 2; + this.btnStart.Text = "Start"; + this.btnStart.UseVisualStyleBackColor = true; + this.btnStart.Click += new System.EventHandler(this.btnStart_Click); + // + // btnStop + // + this.btnStop.Location = new System.Drawing.Point(89, 12); + this.btnStop.Name = "btnStop"; + this.btnStop.Size = new System.Drawing.Size(75, 23); + this.btnStop.TabIndex = 3; + this.btnStop.Text = "Stop"; + this.btnStop.UseVisualStyleBackColor = true; + this.btnStop.Click += new System.EventHandler(this.btnStop_Click); + // + // Main + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(583, 299); + this.Controls.Add(this.btnStop); + this.Controls.Add(this.btnStart); + this.Controls.Add(this.gbLog); + this.Name = "Main"; + this.Text = "OpenSim"; + this.Load += new System.EventHandler(this.Main_Load); + this.tabLogs.ResumeLayout(false); + this.tabMainLog.ResumeLayout(false); + this.tabMainLog.PerformLayout(); + this.tabRegionServer.ResumeLayout(false); + this.tabRegionServer.PerformLayout(); + this.tabUserServer.ResumeLayout(false); + this.tabUserServer.PerformLayout(); + this.tabAssetServer.ResumeLayout(false); + this.tabAssetServer.PerformLayout(); + this.tabGridServer.ResumeLayout(false); + this.tabGridServer.PerformLayout(); + this.gbLog.ResumeLayout(false); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.TabControl tabLogs; + private System.Windows.Forms.TabPage tabRegionServer; + private System.Windows.Forms.TabPage tabUserServer; + private System.Windows.Forms.GroupBox gbLog; + private System.Windows.Forms.TextBox txtOpenSim; + private System.Windows.Forms.TextBox txtUserServer; + private System.Windows.Forms.TabPage tabAssetServer; + private System.Windows.Forms.TextBox txtAssetServer; + private System.Windows.Forms.TabPage tabGridServer; + private System.Windows.Forms.TextBox txtGridServer; + private System.Windows.Forms.TabPage tabMainLog; + private System.Windows.Forms.Button btnStart; + private System.Windows.Forms.Button btnStop; + private System.Windows.Forms.TextBox txtMainLog; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.Label label3; + private System.Windows.Forms.Label label4; + private InputTextBoxControl txtInputRegionServer; + private InputTextBoxControl txtInputUserServer; + private InputTextBoxControl txtInputAssetServer; + private InputTextBoxControl txtInputGridServer; + } +} + diff --git a/OpenSim/Tools/OpenSim.GUI/Main.cs b/OpenSim/Tools/OpenSim.GUI/Main.cs new file mode 100644 index 0000000..b9ea209 --- /dev/null +++ b/OpenSim/Tools/OpenSim.GUI/Main.cs @@ -0,0 +1,187 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Text; +using System.Windows.Forms; + +namespace OpenSim.GUI +{ + public partial class Main : Form + { + + public ProcessManager proc_OpenSim; + public ProcessManager proc_UserServer; + public ProcessManager proc_GridServer; + public ProcessManager proc_AssetServer; + + public Main() + { + InitializeComponent(); + } + + private void Main_Load(object sender, EventArgs e) + { + txtInputUserServer.KeyPress += new KeyPressEventHandler(txtInputUserServer_KeyPress); + txtInputGridServer.KeyPress += new KeyPressEventHandler(txtInputGridServer_KeyPress); + txtInputAssetServer.KeyPress += new KeyPressEventHandler(txtInputAssetServer_KeyPress); + txtInputRegionServer.KeyPress += new KeyPressEventHandler(txtInputRegionServer_KeyPress); + + tabLogs.Selected += new TabControlEventHandler(tabLogs_Selected); + } + + void tabLogs_Selected(object sender, TabControlEventArgs e) + { + if (e.TabPage == tabUserServer) + txtInputUserServer.Focus(); + if (e.TabPage == tabGridServer) + txtInputGridServer.Focus(); + if (e.TabPage == tabAssetServer) + txtInputAssetServer.Focus(); + if (e.TabPage == tabRegionServer) + txtInputRegionServer.Focus(); + } + + void txtInputUserServer_KeyPress(object sender, KeyPressEventArgs e) + { + + if (e.KeyChar == 13) + { + // We got a command + e.Handled = true; + proc_UserServer.StandardInput.WriteLine(txtInputUserServer.Text + "\r\n"); + txtInputUserServer.Text = ""; + } + } + + void txtInputGridServer_KeyPress(object sender, KeyPressEventArgs e) + { + if (e.KeyChar == 13) + { + // We got a command + e.Handled = true; + proc_GridServer.StandardInput.WriteLine(txtInputGridServer.Text + "\r\n"); + txtInputGridServer.Text = ""; + } + } + + void txtInputAssetServer_KeyPress(object sender, KeyPressEventArgs e) + { + if (e.KeyChar == 13) + { + // We got a command + e.Handled = true; + proc_AssetServer.StandardInput.WriteLine(txtInputAssetServer.Text + "\r\n"); + txtInputAssetServer.Text = ""; + } + } + + void txtInputRegionServer_KeyPress(object sender, KeyPressEventArgs e) + { + if (e.KeyChar == 13) + { + // We got a command + e.Handled = true; + proc_OpenSim.StandardInput.WriteLine(txtInputRegionServer.Text + "\r\n"); + txtInputRegionServer.Text = ""; + } + } + + private void btnStart_Click(object sender, EventArgs e) + { + btnStart.Enabled = false; + btnStop.Enabled = false; + + // Start UserServer + proc_UserServer = new ProcessManager("OpenSim.Grid.UserServer.exe", ""); + txtMainLog.AppendText("Starting: UserServer"); + proc_UserServer.OutputDataReceived += new System.Diagnostics.DataReceivedEventHandler(proc_UserServer_DataReceived); + proc_UserServer.ErrorDataReceived += new System.Diagnostics.DataReceivedEventHandler(proc_UserServer_DataReceived); + proc_UserServer.StartProcess(); + System.Threading.Thread.Sleep(2000); + + // Start GridServer + proc_GridServer = new ProcessManager("OpenSim.Grid.GridServer.exe", ""); + txtMainLog.AppendText("Starting: GridServer"); + proc_GridServer.OutputDataReceived += new System.Diagnostics.DataReceivedEventHandler(proc_GridServer_DataReceived); + proc_GridServer.ErrorDataReceived += new System.Diagnostics.DataReceivedEventHandler(proc_GridServer_DataReceived); + proc_GridServer.StartProcess(); + System.Threading.Thread.Sleep(2000); + + // Start AssetServer + proc_AssetServer = new ProcessManager("OpenSim.Grid.AssetServer.exe", ""); + txtMainLog.AppendText("Starting: AssetServer"); + proc_AssetServer.OutputDataReceived += new System.Diagnostics.DataReceivedEventHandler(proc_AssetServer_DataReceived); + proc_AssetServer.ErrorDataReceived += new System.Diagnostics.DataReceivedEventHandler(proc_AssetServer_DataReceived); + proc_AssetServer.StartProcess(); + System.Threading.Thread.Sleep(2000); + + // Start OpenSim + proc_OpenSim = new ProcessManager("OpenSim.EXE", "-gridmode=true"); + txtMainLog.AppendText("Starting: OpenSim"); + proc_OpenSim.OutputDataReceived += new System.Diagnostics.DataReceivedEventHandler(proc_OpenSim_DataReceived); + proc_OpenSim.ErrorDataReceived += new System.Diagnostics.DataReceivedEventHandler(proc_OpenSim_DataReceived); + proc_OpenSim.StartProcess(); + + btnStart.Enabled = false; + btnStop.Enabled = true; + + } + public delegate void AppendText(string Text); + void proc_UserServer_DataReceived(object sender, System.Diagnostics.DataReceivedEventArgs e) + { + this.Invoke(new AppendText(txtUserServer.AppendText), new object[] { e.Data + "\r\n" }); + this.Invoke(new AppendText(txtMainLog.AppendText), new object[] { "UserServer: " + e.Data + "\r\n" }); + } + void proc_GridServer_DataReceived(object sender, System.Diagnostics.DataReceivedEventArgs e) + { + this.Invoke(new AppendText(txtGridServer.AppendText), new object[] { e.Data + "\r\n" }); + this.Invoke(new AppendText(txtMainLog.AppendText), new object[] { "GridServer: " + e.Data + "\r\n" }); + } + void proc_AssetServer_DataReceived(object sender, System.Diagnostics.DataReceivedEventArgs e) + { + this.Invoke(new AppendText(txtAssetServer.AppendText), new object[] { e.Data + "\r\n" }); + this.Invoke(new AppendText(txtMainLog.AppendText), new object[] { "AssetServer: " + e.Data + "\r\n" }); + } + void proc_OpenSim_DataReceived(object sender, System.Diagnostics.DataReceivedEventArgs e) + { + this.Invoke(new AppendText(txtOpenSim.AppendText), new object[] { e.Data + "\r\n" }); + this.Invoke(new AppendText(txtMainLog.AppendText), new object[] { "OpenSim: " + e.Data + "\r\n" }); + } + + private void btnStop_Click(object sender, EventArgs e) + { + btnStart.Enabled = false; + btnStop.Enabled = false; + + if (proc_UserServer != null) + { + txtMainLog.AppendText("Shutting down UserServer. CPU time used: " + proc_UserServer.TotalProcessorTime); + proc_UserServer.StopProcess(); + } + if (proc_GridServer != null) + { + txtMainLog.AppendText("Shutting down GridServer. CPU time used: " + proc_GridServer.TotalProcessorTime); + proc_GridServer.StopProcess(); + } + if (proc_AssetServer != null) + { + txtMainLog.AppendText("Shutting down AssetServer. CPU time used: " + proc_AssetServer.TotalProcessorTime); + proc_AssetServer.StopProcess(); + } + if (proc_OpenSim != null) + { + txtMainLog.AppendText("Shutting down OpenSim. CPU time used: " + proc_OpenSim.TotalProcessorTime); + proc_OpenSim.StopProcess(); + } + + btnStart.Enabled = true; + btnStop.Enabled = false; + + + } + + + } +} \ No newline at end of file diff --git a/OpenSim/Tools/OpenSim.GUI/Main.resx b/OpenSim/Tools/OpenSim.GUI/Main.resx new file mode 100644 index 0000000..ff31a6d --- /dev/null +++ b/OpenSim/Tools/OpenSim.GUI/Main.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/OpenSim/Tools/OpenSim.GUI/OpenSim.GUI.csproj b/OpenSim/Tools/OpenSim.GUI/OpenSim.GUI.csproj new file mode 100644 index 0000000..5228b2b --- /dev/null +++ b/OpenSim/Tools/OpenSim.GUI/OpenSim.GUI.csproj @@ -0,0 +1,84 @@ + + + Debug + AnyCPU + 8.0.50727 + 2.0 + {78AEEDD5-4DA8-4E05-8D53-F3C5476A0B97} + WinExe + Properties + OpenSim.GUI + OpenSim.GUI + + + true + full + false + ..\..\..\bin\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + Component + + + Form + + + Main.cs + + + Component + + + + + Designer + Main.cs + + + ResXFileCodeGenerator + Resources.Designer.cs + Designer + + + True + Resources.resx + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + True + Settings.settings + True + + + + + \ No newline at end of file diff --git a/OpenSim/Tools/OpenSim.GUI/ProcessManager.cs b/OpenSim/Tools/OpenSim.GUI/ProcessManager.cs new file mode 100644 index 0000000..0ab074e --- /dev/null +++ b/OpenSim/Tools/OpenSim.GUI/ProcessManager.cs @@ -0,0 +1,71 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Diagnostics; + +namespace OpenSim.GUI +{ + public class ProcessManager : Process + { + private string m_FileName; + private string m_Arguments; + public ProcessManager(string FileName,string Arguments) + { + m_FileName = FileName; + m_Arguments = Arguments; + +// MyProc = new Process(); + StartInfo.WorkingDirectory = AppDomain.CurrentDomain.BaseDirectory; + Console.WriteLine("WorkingDirectory: " + StartInfo.WorkingDirectory); + StartInfo.FileName = m_FileName; + + //p.StartInfo.Arguments = ""; + StartInfo.UseShellExecute = false; + StartInfo.RedirectStandardError = true; + StartInfo.RedirectStandardInput = true; + StartInfo.RedirectStandardOutput = true; + StartInfo.CreateNoWindow = true; + + + + } + + public void StartProcess() + { + try + { + Start(); + BeginOutputReadLine(); + BeginErrorReadLine(); + } + catch (Exception ex) + { + Console.WriteLine("Exception Occurred :{0},{1}", + ex.Message, ex.StackTrace.ToString()); + } + } + public void StopProcess() + { + try + { + CancelErrorRead(); + CancelErrorRead(); + if (!HasExited) + { + StandardInput.WriteLine("quit"); + StandardInput.WriteLine("shutdown"); + System.Threading.Thread.Sleep(500); + if (!HasExited) + { + Kill(); + } + } + } + catch (Exception ex) + { + Console.WriteLine("Exception Occurred :{0},{1}", + ex.Message, ex.StackTrace.ToString()); + } + } + } +} diff --git a/OpenSim/Tools/OpenSim.GUI/Program.cs b/OpenSim/Tools/OpenSim.GUI/Program.cs new file mode 100644 index 0000000..a849b1b --- /dev/null +++ b/OpenSim/Tools/OpenSim.GUI/Program.cs @@ -0,0 +1,20 @@ +using System; +using System.Collections.Generic; +using System.Windows.Forms; + +namespace OpenSim.GUI +{ + static class Program + { + /// + /// The main entry point for the application. + /// + [STAThread] + static void Main() + { + Application.EnableVisualStyles(); + Application.SetCompatibleTextRenderingDefault(false); + Application.Run(new Main()); + } + } +} \ No newline at end of file diff --git a/OpenSim/Tools/OpenSim.GUI/Properties/AssemblyInfo.cs b/OpenSim/Tools/OpenSim.GUI/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..3e86b1c --- /dev/null +++ b/OpenSim/Tools/OpenSim.GUI/Properties/AssemblyInfo.cs @@ -0,0 +1,33 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("OpenSim.GUI")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("OpenSim.GUI")] +[assembly: AssemblyCopyright("Copyright © 2007")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("c8dbda49-66bd-476b-93b3-71774870b73e")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/OpenSim/Tools/OpenSim.GUI/Properties/Resources.Designer.cs b/OpenSim/Tools/OpenSim.GUI/Properties/Resources.Designer.cs new file mode 100644 index 0000000..f7de4f0 --- /dev/null +++ b/OpenSim/Tools/OpenSim.GUI/Properties/Resources.Designer.cs @@ -0,0 +1,71 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.50727.312 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace OpenSim.GUI.Properties +{ + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "2.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources + { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() + { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager + { + get + { + if ((resourceMan == null)) + { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("OpenSim.GUI.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture + { + get + { + return resourceCulture; + } + set + { + resourceCulture = value; + } + } + } +} diff --git a/OpenSim/Tools/OpenSim.GUI/Properties/Resources.resx b/OpenSim/Tools/OpenSim.GUI/Properties/Resources.resx new file mode 100644 index 0000000..ffecec8 --- /dev/null +++ b/OpenSim/Tools/OpenSim.GUI/Properties/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/OpenSim/Tools/OpenSim.GUI/Properties/Settings.Designer.cs b/OpenSim/Tools/OpenSim.GUI/Properties/Settings.Designer.cs new file mode 100644 index 0000000..e23862a --- /dev/null +++ b/OpenSim/Tools/OpenSim.GUI/Properties/Settings.Designer.cs @@ -0,0 +1,30 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.50727.312 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace OpenSim.GUI.Properties +{ + + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "8.0.0.0")] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase + { + + private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); + + public static Settings Default + { + get + { + return defaultInstance; + } + } + } +} diff --git a/OpenSim/Tools/OpenSim.GUI/Properties/Settings.settings b/OpenSim/Tools/OpenSim.GUI/Properties/Settings.settings new file mode 100644 index 0000000..abf36c5 --- /dev/null +++ b/OpenSim/Tools/OpenSim.GUI/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + -- cgit v1.1 From b12bfb63153f310d3f6bd016648397e003c1ccca Mon Sep 17 00:00:00 2001 From: Tedd Hansen Date: Wed, 12 Sep 2007 13:16:08 +0000 Subject: GUI also contains option for Stand Alone mode. --- OpenSim/Tools/OpenSim.GUI/Main.Designer.cs | 45 ++++++++++++ OpenSim/Tools/OpenSim.GUI/Main.cs | 106 +++++++++++++++++++++-------- 2 files changed, 122 insertions(+), 29 deletions(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/OpenSim.GUI/Main.Designer.cs b/OpenSim/Tools/OpenSim.GUI/Main.Designer.cs index b1ed5a4..6350c57 100644 --- a/OpenSim/Tools/OpenSim.GUI/Main.Designer.cs +++ b/OpenSim/Tools/OpenSim.GUI/Main.Designer.cs @@ -50,6 +50,9 @@ namespace OpenSim.GUI this.gbLog = new System.Windows.Forms.GroupBox(); this.btnStart = new System.Windows.Forms.Button(); this.btnStop = new System.Windows.Forms.Button(); + this.rbGridRegionMode = new System.Windows.Forms.RadioButton(); + this.rbStandAloneMode = new System.Windows.Forms.RadioButton(); + this.rbGridServer = new System.Windows.Forms.RadioButton(); this.tabLogs.SuspendLayout(); this.tabMainLog.SuspendLayout(); this.tabRegionServer.SuspendLayout(); @@ -292,11 +295,49 @@ namespace OpenSim.GUI this.btnStop.UseVisualStyleBackColor = true; this.btnStop.Click += new System.EventHandler(this.btnStop_Click); // + // rbGridRegionMode + // + this.rbGridRegionMode.AutoSize = true; + this.rbGridRegionMode.Location = new System.Drawing.Point(407, 18); + this.rbGridRegionMode.Name = "rbGridRegionMode"; + this.rbGridRegionMode.Size = new System.Drawing.Size(76, 17); + this.rbGridRegionMode.TabIndex = 4; + this.rbGridRegionMode.Text = "Grid region"; + this.rbGridRegionMode.UseVisualStyleBackColor = true; + this.rbGridRegionMode.CheckedChanged += new System.EventHandler(this.rbGridRegionMode_CheckedChanged); + // + // rbStandAloneMode + // + this.rbStandAloneMode.AutoSize = true; + this.rbStandAloneMode.Checked = true; + this.rbStandAloneMode.Location = new System.Drawing.Point(319, 18); + this.rbStandAloneMode.Name = "rbStandAloneMode"; + this.rbStandAloneMode.Size = new System.Drawing.Size(82, 17); + this.rbStandAloneMode.TabIndex = 5; + this.rbStandAloneMode.TabStop = true; + this.rbStandAloneMode.Text = "Stand alone"; + this.rbStandAloneMode.UseVisualStyleBackColor = true; + this.rbStandAloneMode.CheckedChanged += new System.EventHandler(this.rbStandAloneMode_CheckedChanged); + // + // rbGridServer + // + this.rbGridServer.AutoSize = true; + this.rbGridServer.Location = new System.Drawing.Point(484, 18); + this.rbGridServer.Name = "rbGridServer"; + this.rbGridServer.Size = new System.Drawing.Size(76, 17); + this.rbGridServer.TabIndex = 6; + this.rbGridServer.Text = "Grid server"; + this.rbGridServer.UseVisualStyleBackColor = true; + this.rbGridServer.CheckedChanged += new System.EventHandler(this.rbGridServer_CheckedChanged); + // // Main // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.ClientSize = new System.Drawing.Size(583, 299); + this.Controls.Add(this.rbGridServer); + this.Controls.Add(this.rbStandAloneMode); + this.Controls.Add(this.rbGridRegionMode); this.Controls.Add(this.btnStop); this.Controls.Add(this.btnStart); this.Controls.Add(this.gbLog); @@ -316,6 +357,7 @@ namespace OpenSim.GUI this.tabGridServer.PerformLayout(); this.gbLog.ResumeLayout(false); this.ResumeLayout(false); + this.PerformLayout(); } @@ -343,6 +385,9 @@ namespace OpenSim.GUI private InputTextBoxControl txtInputUserServer; private InputTextBoxControl txtInputAssetServer; private InputTextBoxControl txtInputGridServer; + private System.Windows.Forms.RadioButton rbGridRegionMode; + private System.Windows.Forms.RadioButton rbStandAloneMode; + private System.Windows.Forms.RadioButton rbGridServer; } } diff --git a/OpenSim/Tools/OpenSim.GUI/Main.cs b/OpenSim/Tools/OpenSim.GUI/Main.cs index b9ea209..fb2cdae 100644 --- a/OpenSim/Tools/OpenSim.GUI/Main.cs +++ b/OpenSim/Tools/OpenSim.GUI/Main.cs @@ -29,6 +29,8 @@ namespace OpenSim.GUI txtInputRegionServer.KeyPress += new KeyPressEventHandler(txtInputRegionServer_KeyPress); tabLogs.Selected += new TabControlEventHandler(tabLogs_Selected); + + UpdateTabVisibility(); } void tabLogs_Selected(object sender, TabControlEventArgs e) @@ -93,33 +95,42 @@ namespace OpenSim.GUI btnStart.Enabled = false; btnStop.Enabled = false; - // Start UserServer - proc_UserServer = new ProcessManager("OpenSim.Grid.UserServer.exe", ""); - txtMainLog.AppendText("Starting: UserServer"); - proc_UserServer.OutputDataReceived += new System.Diagnostics.DataReceivedEventHandler(proc_UserServer_DataReceived); - proc_UserServer.ErrorDataReceived += new System.Diagnostics.DataReceivedEventHandler(proc_UserServer_DataReceived); - proc_UserServer.StartProcess(); - System.Threading.Thread.Sleep(2000); - - // Start GridServer - proc_GridServer = new ProcessManager("OpenSim.Grid.GridServer.exe", ""); - txtMainLog.AppendText("Starting: GridServer"); - proc_GridServer.OutputDataReceived += new System.Diagnostics.DataReceivedEventHandler(proc_GridServer_DataReceived); - proc_GridServer.ErrorDataReceived += new System.Diagnostics.DataReceivedEventHandler(proc_GridServer_DataReceived); - proc_GridServer.StartProcess(); - System.Threading.Thread.Sleep(2000); - - // Start AssetServer - proc_AssetServer = new ProcessManager("OpenSim.Grid.AssetServer.exe", ""); - txtMainLog.AppendText("Starting: AssetServer"); - proc_AssetServer.OutputDataReceived += new System.Diagnostics.DataReceivedEventHandler(proc_AssetServer_DataReceived); - proc_AssetServer.ErrorDataReceived += new System.Diagnostics.DataReceivedEventHandler(proc_AssetServer_DataReceived); - proc_AssetServer.StartProcess(); - System.Threading.Thread.Sleep(2000); + + + if (rbGridServer.Checked) + { + // Start UserServer + proc_UserServer = new ProcessManager("OpenSim.Grid.UserServer.exe", ""); + txtMainLog.AppendText("Starting: User server" + "\r\n"); + proc_UserServer.OutputDataReceived += new System.Diagnostics.DataReceivedEventHandler(proc_UserServer_DataReceived); + proc_UserServer.ErrorDataReceived += new System.Diagnostics.DataReceivedEventHandler(proc_UserServer_DataReceived); + proc_UserServer.StartProcess(); + System.Threading.Thread.Sleep(2000); + + // Start GridServer + proc_GridServer = new ProcessManager("OpenSim.Grid.GridServer.exe", ""); + txtMainLog.AppendText("Starting: Grid server" + "\r\n"); + proc_GridServer.OutputDataReceived += new System.Diagnostics.DataReceivedEventHandler(proc_GridServer_DataReceived); + proc_GridServer.ErrorDataReceived += new System.Diagnostics.DataReceivedEventHandler(proc_GridServer_DataReceived); + proc_GridServer.StartProcess(); + System.Threading.Thread.Sleep(2000); + + // Start AssetServer + proc_AssetServer = new ProcessManager("OpenSim.Grid.AssetServer.exe", ""); + txtMainLog.AppendText("Starting: Asset server" + "\r\n"); + proc_AssetServer.OutputDataReceived += new System.Diagnostics.DataReceivedEventHandler(proc_AssetServer_DataReceived); + proc_AssetServer.ErrorDataReceived += new System.Diagnostics.DataReceivedEventHandler(proc_AssetServer_DataReceived); + proc_AssetServer.StartProcess(); + System.Threading.Thread.Sleep(2000); + } // Start OpenSim - proc_OpenSim = new ProcessManager("OpenSim.EXE", "-gridmode=true"); - txtMainLog.AppendText("Starting: OpenSim"); + string p = ""; + if (rbGridServer.Checked) + p = "-gridmode=true"; + + proc_OpenSim = new ProcessManager("OpenSim.EXE", p); + txtMainLog.AppendText("Starting: OpenSim (Region server)" + "\r\n"); proc_OpenSim.OutputDataReceived += new System.Diagnostics.DataReceivedEventHandler(proc_OpenSim_DataReceived); proc_OpenSim.ErrorDataReceived += new System.Diagnostics.DataReceivedEventHandler(proc_OpenSim_DataReceived); proc_OpenSim.StartProcess(); @@ -157,22 +168,22 @@ namespace OpenSim.GUI if (proc_UserServer != null) { - txtMainLog.AppendText("Shutting down UserServer. CPU time used: " + proc_UserServer.TotalProcessorTime); + txtMainLog.AppendText("Shutting down UserServer. CPU time used: " + proc_UserServer.TotalProcessorTime.ToString() + "\r\n"); proc_UserServer.StopProcess(); } if (proc_GridServer != null) { - txtMainLog.AppendText("Shutting down GridServer. CPU time used: " + proc_GridServer.TotalProcessorTime); + txtMainLog.AppendText("Shutting down GridServer. CPU time used: " + proc_GridServer.TotalProcessorTime.ToString() + "\r\n"); proc_GridServer.StopProcess(); } if (proc_AssetServer != null) { - txtMainLog.AppendText("Shutting down AssetServer. CPU time used: " + proc_AssetServer.TotalProcessorTime); + txtMainLog.AppendText("Shutting down AssetServer. CPU time used: " + proc_AssetServer.TotalProcessorTime.ToString() + "\r\n"); proc_AssetServer.StopProcess(); } if (proc_OpenSim != null) { - txtMainLog.AppendText("Shutting down OpenSim. CPU time used: " + proc_OpenSim.TotalProcessorTime); + txtMainLog.AppendText("Shutting down OpenSim. CPU time used: " + proc_OpenSim.TotalProcessorTime.ToString() + "\r\n"); proc_OpenSim.StopProcess(); } @@ -182,6 +193,43 @@ namespace OpenSim.GUI } + private void UpdateTabVisibility() + { + if (rbStandAloneMode.Checked) + { + if (tabLogs.TabPages.Contains(tabUserServer)) + tabLogs.TabPages.Remove(tabUserServer); + if (tabLogs.TabPages.Contains(tabGridServer)) + tabLogs.TabPages.Remove(tabGridServer); + if (tabLogs.TabPages.Contains(tabAssetServer)) + tabLogs.TabPages.Remove(tabAssetServer); + } + else + { + if (!tabLogs.TabPages.Contains(tabUserServer)) + tabLogs.TabPages.Add(tabUserServer); + if (!tabLogs.TabPages.Contains(tabGridServer)) + tabLogs.TabPages.Add(tabGridServer); + if (!tabLogs.TabPages.Contains(tabAssetServer)) + tabLogs.TabPages.Add(tabAssetServer); + } + + } + + private void rbStandAloneMode_CheckedChanged(object sender, EventArgs e) + { + UpdateTabVisibility(); + } + + private void rbGridRegionMode_CheckedChanged(object sender, EventArgs e) + { + UpdateTabVisibility(); + } + + private void rbGridServer_CheckedChanged(object sender, EventArgs e) + { + UpdateTabVisibility(); + } } } \ No newline at end of file -- cgit v1.1 From a5aedc089671fa326285c590a7bdd6414d2ec5f3 Mon Sep 17 00:00:00 2001 From: Tedd Hansen Date: Wed, 12 Sep 2007 13:27:04 +0000 Subject: GUI: Added placeholders + info on what to be done --- OpenSim/Tools/OpenSim.GUI/Main.cs | 7 ++ OpenSim/Tools/OpenSim.GUI/OpenSim.GUI.csproj | 10 ++ .../Tools/OpenSim.GUI/frmConfiguration.Designer.cs | 61 ++++++++++ OpenSim/Tools/OpenSim.GUI/frmConfiguration.cs | 18 +++ OpenSim/Tools/OpenSim.GUI/frmConfiguration.resx | 129 +++++++++++++++++++++ 5 files changed, 225 insertions(+) create mode 100644 OpenSim/Tools/OpenSim.GUI/frmConfiguration.Designer.cs create mode 100644 OpenSim/Tools/OpenSim.GUI/frmConfiguration.cs create mode 100644 OpenSim/Tools/OpenSim.GUI/frmConfiguration.resx (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/OpenSim.GUI/Main.cs b/OpenSim/Tools/OpenSim.GUI/Main.cs index fb2cdae..611ddd9 100644 --- a/OpenSim/Tools/OpenSim.GUI/Main.cs +++ b/OpenSim/Tools/OpenSim.GUI/Main.cs @@ -92,6 +92,13 @@ namespace OpenSim.GUI private void btnStart_Click(object sender, EventArgs e) { + + // + // THIS PART NEEDS TO BE MOVED TO A SEPARATE THREAD OR A TIMER OF SOME SORT + // should not block on wait + // ALSO - IF SOME SERVICES ARE NOT CONFIGURED, POP UP CONFIGURATION BOX FOR THAT SERVICE! + // + btnStart.Enabled = false; btnStop.Enabled = false; diff --git a/OpenSim/Tools/OpenSim.GUI/OpenSim.GUI.csproj b/OpenSim/Tools/OpenSim.GUI/OpenSim.GUI.csproj index 5228b2b..7ac4290 100644 --- a/OpenSim/Tools/OpenSim.GUI/OpenSim.GUI.csproj +++ b/OpenSim/Tools/OpenSim.GUI/OpenSim.GUI.csproj @@ -36,6 +36,12 @@ + + Form + + + frmConfiguration.cs + Component @@ -50,6 +56,10 @@ + + Designer + frmConfiguration.cs + Designer Main.cs diff --git a/OpenSim/Tools/OpenSim.GUI/frmConfiguration.Designer.cs b/OpenSim/Tools/OpenSim.GUI/frmConfiguration.Designer.cs new file mode 100644 index 0000000..1777fbc --- /dev/null +++ b/OpenSim/Tools/OpenSim.GUI/frmConfiguration.Designer.cs @@ -0,0 +1,61 @@ +namespace OpenSim.GUI +{ + partial class frmConfiguration + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(frmConfiguration)); + this.textBox1 = new System.Windows.Forms.TextBox(); + this.SuspendLayout(); + // + // textBox1 + // + this.textBox1.Location = new System.Drawing.Point(12, 12); + this.textBox1.Multiline = true; + this.textBox1.Name = "textBox1"; + this.textBox1.Size = new System.Drawing.Size(570, 190); + this.textBox1.TabIndex = 0; + this.textBox1.Text = resources.GetString("textBox1.Text"); + // + // frmConfiguration + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(664, 413); + this.Controls.Add(this.textBox1); + this.Name = "frmConfiguration"; + this.Text = "Configuration"; + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.TextBox textBox1; + } +} \ No newline at end of file diff --git a/OpenSim/Tools/OpenSim.GUI/frmConfiguration.cs b/OpenSim/Tools/OpenSim.GUI/frmConfiguration.cs new file mode 100644 index 0000000..9acf305 --- /dev/null +++ b/OpenSim/Tools/OpenSim.GUI/frmConfiguration.cs @@ -0,0 +1,18 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Text; +using System.Windows.Forms; + +namespace OpenSim.GUI +{ + public partial class frmConfiguration : Form + { + public frmConfiguration() + { + InitializeComponent(); + } + } +} \ No newline at end of file diff --git a/OpenSim/Tools/OpenSim.GUI/frmConfiguration.resx b/OpenSim/Tools/OpenSim.GUI/frmConfiguration.resx new file mode 100644 index 0000000..2002e68 --- /dev/null +++ b/OpenSim/Tools/OpenSim.GUI/frmConfiguration.resx @@ -0,0 +1,129 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + What I want here: +* Region configuration add/disable/modify) +* OpenSim config: what physics/sql/scriptengine modules +* Configuration for each of the servers +* An option of what parts the server will run: "Stand Alone, Grid region, Grid Server, Custom" +Custom = you can enable/disable one or more services, for example if you only run AssetServer on this machine. +* User manager (add/remove/lockout/modify) -- maybe a separate form for this? + + \ No newline at end of file -- cgit v1.1 From cef8c5e9d7ce49cc47e7ef1816465064d889d6d5 Mon Sep 17 00:00:00 2001 From: Tedd Hansen Date: Thu, 13 Sep 2007 11:11:08 +0000 Subject: Hiding evidence that I once was a VB coder (thanks to refactoring). Renamed member names to smallcapsy. --- OpenSim/Tools/OpenSim.GUI/Main.cs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/OpenSim.GUI/Main.cs b/OpenSim/Tools/OpenSim.GUI/Main.cs index 611ddd9..0b5af28 100644 --- a/OpenSim/Tools/OpenSim.GUI/Main.cs +++ b/OpenSim/Tools/OpenSim.GUI/Main.cs @@ -112,7 +112,7 @@ namespace OpenSim.GUI proc_UserServer.OutputDataReceived += new System.Diagnostics.DataReceivedEventHandler(proc_UserServer_DataReceived); proc_UserServer.ErrorDataReceived += new System.Diagnostics.DataReceivedEventHandler(proc_UserServer_DataReceived); proc_UserServer.StartProcess(); - System.Threading.Thread.Sleep(2000); + System.Threading.Thread.Sleep(3000); // Start GridServer proc_GridServer = new ProcessManager("OpenSim.Grid.GridServer.exe", ""); @@ -120,7 +120,7 @@ namespace OpenSim.GUI proc_GridServer.OutputDataReceived += new System.Diagnostics.DataReceivedEventHandler(proc_GridServer_DataReceived); proc_GridServer.ErrorDataReceived += new System.Diagnostics.DataReceivedEventHandler(proc_GridServer_DataReceived); proc_GridServer.StartProcess(); - System.Threading.Thread.Sleep(2000); + System.Threading.Thread.Sleep(3000); // Start AssetServer proc_AssetServer = new ProcessManager("OpenSim.Grid.AssetServer.exe", ""); @@ -128,7 +128,7 @@ namespace OpenSim.GUI proc_AssetServer.OutputDataReceived += new System.Diagnostics.DataReceivedEventHandler(proc_AssetServer_DataReceived); proc_AssetServer.ErrorDataReceived += new System.Diagnostics.DataReceivedEventHandler(proc_AssetServer_DataReceived); proc_AssetServer.StartProcess(); - System.Threading.Thread.Sleep(2000); + System.Threading.Thread.Sleep(3000); } // Start OpenSim -- cgit v1.1 From b8d9737a47696952bedec33dface8f18df47341f Mon Sep 17 00:00:00 2001 From: Sean Dague Date: Mon, 17 Sep 2007 12:52:03 +0000 Subject: fixing me some line endings --- OpenSim/Tools/OpenSim.GUI/InputTextBoxControl.cs | 176 ++--- OpenSim/Tools/OpenSim.GUI/Main.Designer.cs | 786 ++++++++++----------- OpenSim/Tools/OpenSim.GUI/Main.cs | 482 ++++++------- OpenSim/Tools/OpenSim.GUI/ProcessManager.cs | 142 ++-- OpenSim/Tools/OpenSim.GUI/Program.cs | 38 +- .../Tools/OpenSim.GUI/Properties/AssemblyInfo.cs | 66 +- .../OpenSim.GUI/Properties/Resources.Designer.cs | 142 ++-- .../OpenSim.GUI/Properties/Settings.Designer.cs | 60 +- .../Tools/OpenSim.GUI/frmConfiguration.Designer.cs | 120 ++-- OpenSim/Tools/OpenSim.GUI/frmConfiguration.cs | 34 +- 10 files changed, 1023 insertions(+), 1023 deletions(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/OpenSim.GUI/InputTextBoxControl.cs b/OpenSim/Tools/OpenSim.GUI/InputTextBoxControl.cs index 91b3f60..47ff65a 100644 --- a/OpenSim/Tools/OpenSim.GUI/InputTextBoxControl.cs +++ b/OpenSim/Tools/OpenSim.GUI/InputTextBoxControl.cs @@ -1,88 +1,88 @@ -using System; -using System.Collections.Generic; -using System.Text; -using System.Windows.Forms; - -namespace OpenSim.GUI -{ - class InputTextBoxControl:System.Windows.Forms.TextBox - { - public InputTextBoxControl() - { - this.KeyDown += new System.Windows.Forms.KeyEventHandler(TextInputControl_KeyDown); - } - - - private List CommandHistory = new List(); - private bool InHistory = false; - private int HistoryPosition = -1; - - void TextInputControl_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e) - { - - - if (e.KeyCode == Keys.Enter && InHistory == false) - { - CommandHistory.Add(this.Text); - } - - - if (e.KeyCode == Keys.Up || e.KeyCode == Keys.Down) - { - // if not inside buffer, enter - // InBuffer = true - //Console.WriteLine("History: Check"); - if (InHistory == false) - { - if (this.Text != "") - { - //Console.WriteLine("History: Add"); - CommandHistory.Add(this.Text); - HistoryPosition = CommandHistory.Count; - } - else - { - //HistoryPosition = CommandHistory.Count + 1; - } - //Console.WriteLine("History: InHistory"); - InHistory = true; - } - - if (e.KeyCode == Keys.Up) - HistoryPosition -= 1; - if (e.KeyCode == Keys.Down) - HistoryPosition += 1; - - if (HistoryPosition > CommandHistory.Count - 1) - HistoryPosition = -1; - if (HistoryPosition < -1) - HistoryPosition = CommandHistory.Count - 1; - - //Console.WriteLine("History: Pos: " + HistoryPosition); - //Console.WriteLine("History: HaveInHistCount: " + CommandHistory.Count); - if (CommandHistory.Count != 0) - { - if (HistoryPosition != -1) - { - //Console.WriteLine("History: Getting"); - //this.Text = CommandHistory.Item(HistoryPosition); - this.Text = CommandHistory[HistoryPosition]; - this.SelectionStart = this.Text.Length; - this.SelectionLength = 0; - } - else - { - //Console.WriteLine("History: Nothing"); - this.Text = ""; - } - } - e.Handled = true; - } else { - InHistory = false; - HistoryPosition = -1; - } - } - - - } -} +using System; +using System.Collections.Generic; +using System.Text; +using System.Windows.Forms; + +namespace OpenSim.GUI +{ + class InputTextBoxControl:System.Windows.Forms.TextBox + { + public InputTextBoxControl() + { + this.KeyDown += new System.Windows.Forms.KeyEventHandler(TextInputControl_KeyDown); + } + + + private List CommandHistory = new List(); + private bool InHistory = false; + private int HistoryPosition = -1; + + void TextInputControl_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e) + { + + + if (e.KeyCode == Keys.Enter && InHistory == false) + { + CommandHistory.Add(this.Text); + } + + + if (e.KeyCode == Keys.Up || e.KeyCode == Keys.Down) + { + // if not inside buffer, enter + // InBuffer = true + //Console.WriteLine("History: Check"); + if (InHistory == false) + { + if (this.Text != "") + { + //Console.WriteLine("History: Add"); + CommandHistory.Add(this.Text); + HistoryPosition = CommandHistory.Count; + } + else + { + //HistoryPosition = CommandHistory.Count + 1; + } + //Console.WriteLine("History: InHistory"); + InHistory = true; + } + + if (e.KeyCode == Keys.Up) + HistoryPosition -= 1; + if (e.KeyCode == Keys.Down) + HistoryPosition += 1; + + if (HistoryPosition > CommandHistory.Count - 1) + HistoryPosition = -1; + if (HistoryPosition < -1) + HistoryPosition = CommandHistory.Count - 1; + + //Console.WriteLine("History: Pos: " + HistoryPosition); + //Console.WriteLine("History: HaveInHistCount: " + CommandHistory.Count); + if (CommandHistory.Count != 0) + { + if (HistoryPosition != -1) + { + //Console.WriteLine("History: Getting"); + //this.Text = CommandHistory.Item(HistoryPosition); + this.Text = CommandHistory[HistoryPosition]; + this.SelectionStart = this.Text.Length; + this.SelectionLength = 0; + } + else + { + //Console.WriteLine("History: Nothing"); + this.Text = ""; + } + } + e.Handled = true; + } else { + InHistory = false; + HistoryPosition = -1; + } + } + + + } +} diff --git a/OpenSim/Tools/OpenSim.GUI/Main.Designer.cs b/OpenSim/Tools/OpenSim.GUI/Main.Designer.cs index 6350c57..c08f26d 100644 --- a/OpenSim/Tools/OpenSim.GUI/Main.Designer.cs +++ b/OpenSim/Tools/OpenSim.GUI/Main.Designer.cs @@ -1,393 +1,393 @@ -namespace OpenSim.GUI -{ - partial class Main - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.tabLogs = new System.Windows.Forms.TabControl(); - this.tabMainLog = new System.Windows.Forms.TabPage(); - this.txtMainLog = new System.Windows.Forms.TextBox(); - this.tabRegionServer = new System.Windows.Forms.TabPage(); - this.label1 = new System.Windows.Forms.Label(); - this.txtInputRegionServer = new OpenSim.GUI.InputTextBoxControl(); - this.txtOpenSim = new System.Windows.Forms.TextBox(); - this.tabUserServer = new System.Windows.Forms.TabPage(); - this.label2 = new System.Windows.Forms.Label(); - this.txtInputUserServer = new OpenSim.GUI.InputTextBoxControl(); - this.txtUserServer = new System.Windows.Forms.TextBox(); - this.tabAssetServer = new System.Windows.Forms.TabPage(); - this.label3 = new System.Windows.Forms.Label(); - this.txtInputAssetServer = new OpenSim.GUI.InputTextBoxControl(); - this.txtAssetServer = new System.Windows.Forms.TextBox(); - this.tabGridServer = new System.Windows.Forms.TabPage(); - this.label4 = new System.Windows.Forms.Label(); - this.txtInputGridServer = new OpenSim.GUI.InputTextBoxControl(); - this.txtGridServer = new System.Windows.Forms.TextBox(); - this.gbLog = new System.Windows.Forms.GroupBox(); - this.btnStart = new System.Windows.Forms.Button(); - this.btnStop = new System.Windows.Forms.Button(); - this.rbGridRegionMode = new System.Windows.Forms.RadioButton(); - this.rbStandAloneMode = new System.Windows.Forms.RadioButton(); - this.rbGridServer = new System.Windows.Forms.RadioButton(); - this.tabLogs.SuspendLayout(); - this.tabMainLog.SuspendLayout(); - this.tabRegionServer.SuspendLayout(); - this.tabUserServer.SuspendLayout(); - this.tabAssetServer.SuspendLayout(); - this.tabGridServer.SuspendLayout(); - this.gbLog.SuspendLayout(); - this.SuspendLayout(); - // - // tabLogs - // - this.tabLogs.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.tabLogs.Controls.Add(this.tabMainLog); - this.tabLogs.Controls.Add(this.tabRegionServer); - this.tabLogs.Controls.Add(this.tabUserServer); - this.tabLogs.Controls.Add(this.tabAssetServer); - this.tabLogs.Controls.Add(this.tabGridServer); - this.tabLogs.Location = new System.Drawing.Point(6, 19); - this.tabLogs.Name = "tabLogs"; - this.tabLogs.SelectedIndex = 0; - this.tabLogs.Size = new System.Drawing.Size(562, 230); - this.tabLogs.TabIndex = 0; - // - // tabMainLog - // - this.tabMainLog.Controls.Add(this.txtMainLog); - this.tabMainLog.Location = new System.Drawing.Point(4, 22); - this.tabMainLog.Name = "tabMainLog"; - this.tabMainLog.Size = new System.Drawing.Size(554, 204); - this.tabMainLog.TabIndex = 4; - this.tabMainLog.Text = "Main log"; - this.tabMainLog.UseVisualStyleBackColor = true; - // - // txtMainLog - // - this.txtMainLog.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.txtMainLog.Location = new System.Drawing.Point(6, 5); - this.txtMainLog.Multiline = true; - this.txtMainLog.Name = "txtMainLog"; - this.txtMainLog.ScrollBars = System.Windows.Forms.ScrollBars.Vertical; - this.txtMainLog.Size = new System.Drawing.Size(542, 195); - this.txtMainLog.TabIndex = 1; - // - // tabRegionServer - // - this.tabRegionServer.Controls.Add(this.label1); - this.tabRegionServer.Controls.Add(this.txtInputRegionServer); - this.tabRegionServer.Controls.Add(this.txtOpenSim); - this.tabRegionServer.Location = new System.Drawing.Point(4, 22); - this.tabRegionServer.Name = "tabRegionServer"; - this.tabRegionServer.Padding = new System.Windows.Forms.Padding(3); - this.tabRegionServer.Size = new System.Drawing.Size(554, 204); - this.tabRegionServer.TabIndex = 0; - this.tabRegionServer.Text = "Region server"; - this.tabRegionServer.UseVisualStyleBackColor = true; - // - // label1 - // - this.label1.AutoSize = true; - this.label1.Location = new System.Drawing.Point(6, 183); - this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size(57, 13); - this.label1.TabIndex = 4; - this.label1.Text = "Command:"; - // - // txtInputRegionServer - // - this.txtInputRegionServer.Location = new System.Drawing.Point(69, 180); - this.txtInputRegionServer.Name = "txtInputRegionServer"; - this.txtInputRegionServer.Size = new System.Drawing.Size(479, 20); - this.txtInputRegionServer.TabIndex = 0; - // - // txtOpenSim - // - this.txtOpenSim.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.txtOpenSim.Location = new System.Drawing.Point(6, 6); - this.txtOpenSim.Multiline = true; - this.txtOpenSim.Name = "txtOpenSim"; - this.txtOpenSim.ScrollBars = System.Windows.Forms.ScrollBars.Vertical; - this.txtOpenSim.Size = new System.Drawing.Size(542, 168); - this.txtOpenSim.TabIndex = 0; - // - // tabUserServer - // - this.tabUserServer.Controls.Add(this.label2); - this.tabUserServer.Controls.Add(this.txtInputUserServer); - this.tabUserServer.Controls.Add(this.txtUserServer); - this.tabUserServer.Location = new System.Drawing.Point(4, 22); - this.tabUserServer.Name = "tabUserServer"; - this.tabUserServer.Padding = new System.Windows.Forms.Padding(3); - this.tabUserServer.Size = new System.Drawing.Size(554, 204); - this.tabUserServer.TabIndex = 1; - this.tabUserServer.Text = "User server"; - this.tabUserServer.UseVisualStyleBackColor = true; - // - // label2 - // - this.label2.AutoSize = true; - this.label2.Location = new System.Drawing.Point(6, 181); - this.label2.Name = "label2"; - this.label2.Size = new System.Drawing.Size(57, 13); - this.label2.TabIndex = 6; - this.label2.Text = "Command:"; - // - // txtInputUserServer - // - this.txtInputUserServer.Location = new System.Drawing.Point(69, 178); - this.txtInputUserServer.Name = "txtInputUserServer"; - this.txtInputUserServer.Size = new System.Drawing.Size(479, 20); - this.txtInputUserServer.TabIndex = 5; - // - // txtUserServer - // - this.txtUserServer.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.txtUserServer.Location = new System.Drawing.Point(6, 5); - this.txtUserServer.Multiline = true; - this.txtUserServer.Name = "txtUserServer"; - this.txtUserServer.ScrollBars = System.Windows.Forms.ScrollBars.Vertical; - this.txtUserServer.Size = new System.Drawing.Size(542, 168); - this.txtUserServer.TabIndex = 1; - // - // tabAssetServer - // - this.tabAssetServer.Controls.Add(this.label3); - this.tabAssetServer.Controls.Add(this.txtInputAssetServer); - this.tabAssetServer.Controls.Add(this.txtAssetServer); - this.tabAssetServer.Location = new System.Drawing.Point(4, 22); - this.tabAssetServer.Name = "tabAssetServer"; - this.tabAssetServer.Size = new System.Drawing.Size(554, 204); - this.tabAssetServer.TabIndex = 2; - this.tabAssetServer.Text = "Asset server"; - this.tabAssetServer.UseVisualStyleBackColor = true; - // - // label3 - // - this.label3.AutoSize = true; - this.label3.Location = new System.Drawing.Point(6, 182); - this.label3.Name = "label3"; - this.label3.Size = new System.Drawing.Size(57, 13); - this.label3.TabIndex = 6; - this.label3.Text = "Command:"; - // - // txtInputAssetServer - // - this.txtInputAssetServer.Location = new System.Drawing.Point(69, 179); - this.txtInputAssetServer.Name = "txtInputAssetServer"; - this.txtInputAssetServer.Size = new System.Drawing.Size(479, 20); - this.txtInputAssetServer.TabIndex = 5; - // - // txtAssetServer - // - this.txtAssetServer.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.txtAssetServer.Location = new System.Drawing.Point(6, 5); - this.txtAssetServer.Multiline = true; - this.txtAssetServer.Name = "txtAssetServer"; - this.txtAssetServer.ScrollBars = System.Windows.Forms.ScrollBars.Vertical; - this.txtAssetServer.Size = new System.Drawing.Size(542, 168); - this.txtAssetServer.TabIndex = 1; - // - // tabGridServer - // - this.tabGridServer.Controls.Add(this.label4); - this.tabGridServer.Controls.Add(this.txtInputGridServer); - this.tabGridServer.Controls.Add(this.txtGridServer); - this.tabGridServer.Location = new System.Drawing.Point(4, 22); - this.tabGridServer.Name = "tabGridServer"; - this.tabGridServer.Size = new System.Drawing.Size(554, 204); - this.tabGridServer.TabIndex = 3; - this.tabGridServer.Text = "Grid server"; - this.tabGridServer.UseVisualStyleBackColor = true; - // - // label4 - // - this.label4.AutoSize = true; - this.label4.Location = new System.Drawing.Point(6, 182); - this.label4.Name = "label4"; - this.label4.Size = new System.Drawing.Size(57, 13); - this.label4.TabIndex = 6; - this.label4.Text = "Command:"; - // - // txtInputGridServer - // - this.txtInputGridServer.Location = new System.Drawing.Point(69, 179); - this.txtInputGridServer.Name = "txtInputGridServer"; - this.txtInputGridServer.Size = new System.Drawing.Size(479, 20); - this.txtInputGridServer.TabIndex = 5; - // - // txtGridServer - // - this.txtGridServer.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.txtGridServer.Location = new System.Drawing.Point(6, 5); - this.txtGridServer.Multiline = true; - this.txtGridServer.Name = "txtGridServer"; - this.txtGridServer.ScrollBars = System.Windows.Forms.ScrollBars.Vertical; - this.txtGridServer.Size = new System.Drawing.Size(542, 168); - this.txtGridServer.TabIndex = 1; - // - // gbLog - // - this.gbLog.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.gbLog.Controls.Add(this.tabLogs); - this.gbLog.Location = new System.Drawing.Point(2, 41); - this.gbLog.Name = "gbLog"; - this.gbLog.Size = new System.Drawing.Size(574, 255); - this.gbLog.TabIndex = 1; - this.gbLog.TabStop = false; - this.gbLog.Text = "Logs"; - // - // btnStart - // - this.btnStart.Location = new System.Drawing.Point(8, 12); - this.btnStart.Name = "btnStart"; - this.btnStart.Size = new System.Drawing.Size(75, 23); - this.btnStart.TabIndex = 2; - this.btnStart.Text = "Start"; - this.btnStart.UseVisualStyleBackColor = true; - this.btnStart.Click += new System.EventHandler(this.btnStart_Click); - // - // btnStop - // - this.btnStop.Location = new System.Drawing.Point(89, 12); - this.btnStop.Name = "btnStop"; - this.btnStop.Size = new System.Drawing.Size(75, 23); - this.btnStop.TabIndex = 3; - this.btnStop.Text = "Stop"; - this.btnStop.UseVisualStyleBackColor = true; - this.btnStop.Click += new System.EventHandler(this.btnStop_Click); - // - // rbGridRegionMode - // - this.rbGridRegionMode.AutoSize = true; - this.rbGridRegionMode.Location = new System.Drawing.Point(407, 18); - this.rbGridRegionMode.Name = "rbGridRegionMode"; - this.rbGridRegionMode.Size = new System.Drawing.Size(76, 17); - this.rbGridRegionMode.TabIndex = 4; - this.rbGridRegionMode.Text = "Grid region"; - this.rbGridRegionMode.UseVisualStyleBackColor = true; - this.rbGridRegionMode.CheckedChanged += new System.EventHandler(this.rbGridRegionMode_CheckedChanged); - // - // rbStandAloneMode - // - this.rbStandAloneMode.AutoSize = true; - this.rbStandAloneMode.Checked = true; - this.rbStandAloneMode.Location = new System.Drawing.Point(319, 18); - this.rbStandAloneMode.Name = "rbStandAloneMode"; - this.rbStandAloneMode.Size = new System.Drawing.Size(82, 17); - this.rbStandAloneMode.TabIndex = 5; - this.rbStandAloneMode.TabStop = true; - this.rbStandAloneMode.Text = "Stand alone"; - this.rbStandAloneMode.UseVisualStyleBackColor = true; - this.rbStandAloneMode.CheckedChanged += new System.EventHandler(this.rbStandAloneMode_CheckedChanged); - // - // rbGridServer - // - this.rbGridServer.AutoSize = true; - this.rbGridServer.Location = new System.Drawing.Point(484, 18); - this.rbGridServer.Name = "rbGridServer"; - this.rbGridServer.Size = new System.Drawing.Size(76, 17); - this.rbGridServer.TabIndex = 6; - this.rbGridServer.Text = "Grid server"; - this.rbGridServer.UseVisualStyleBackColor = true; - this.rbGridServer.CheckedChanged += new System.EventHandler(this.rbGridServer_CheckedChanged); - // - // Main - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(583, 299); - this.Controls.Add(this.rbGridServer); - this.Controls.Add(this.rbStandAloneMode); - this.Controls.Add(this.rbGridRegionMode); - this.Controls.Add(this.btnStop); - this.Controls.Add(this.btnStart); - this.Controls.Add(this.gbLog); - this.Name = "Main"; - this.Text = "OpenSim"; - this.Load += new System.EventHandler(this.Main_Load); - this.tabLogs.ResumeLayout(false); - this.tabMainLog.ResumeLayout(false); - this.tabMainLog.PerformLayout(); - this.tabRegionServer.ResumeLayout(false); - this.tabRegionServer.PerformLayout(); - this.tabUserServer.ResumeLayout(false); - this.tabUserServer.PerformLayout(); - this.tabAssetServer.ResumeLayout(false); - this.tabAssetServer.PerformLayout(); - this.tabGridServer.ResumeLayout(false); - this.tabGridServer.PerformLayout(); - this.gbLog.ResumeLayout(false); - this.ResumeLayout(false); - this.PerformLayout(); - - } - - #endregion - - private System.Windows.Forms.TabControl tabLogs; - private System.Windows.Forms.TabPage tabRegionServer; - private System.Windows.Forms.TabPage tabUserServer; - private System.Windows.Forms.GroupBox gbLog; - private System.Windows.Forms.TextBox txtOpenSim; - private System.Windows.Forms.TextBox txtUserServer; - private System.Windows.Forms.TabPage tabAssetServer; - private System.Windows.Forms.TextBox txtAssetServer; - private System.Windows.Forms.TabPage tabGridServer; - private System.Windows.Forms.TextBox txtGridServer; - private System.Windows.Forms.TabPage tabMainLog; - private System.Windows.Forms.Button btnStart; - private System.Windows.Forms.Button btnStop; - private System.Windows.Forms.TextBox txtMainLog; - private System.Windows.Forms.Label label1; - private System.Windows.Forms.Label label2; - private System.Windows.Forms.Label label3; - private System.Windows.Forms.Label label4; - private InputTextBoxControl txtInputRegionServer; - private InputTextBoxControl txtInputUserServer; - private InputTextBoxControl txtInputAssetServer; - private InputTextBoxControl txtInputGridServer; - private System.Windows.Forms.RadioButton rbGridRegionMode; - private System.Windows.Forms.RadioButton rbStandAloneMode; - private System.Windows.Forms.RadioButton rbGridServer; - } -} - +namespace OpenSim.GUI +{ + partial class Main + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.tabLogs = new System.Windows.Forms.TabControl(); + this.tabMainLog = new System.Windows.Forms.TabPage(); + this.txtMainLog = new System.Windows.Forms.TextBox(); + this.tabRegionServer = new System.Windows.Forms.TabPage(); + this.label1 = new System.Windows.Forms.Label(); + this.txtInputRegionServer = new OpenSim.GUI.InputTextBoxControl(); + this.txtOpenSim = new System.Windows.Forms.TextBox(); + this.tabUserServer = new System.Windows.Forms.TabPage(); + this.label2 = new System.Windows.Forms.Label(); + this.txtInputUserServer = new OpenSim.GUI.InputTextBoxControl(); + this.txtUserServer = new System.Windows.Forms.TextBox(); + this.tabAssetServer = new System.Windows.Forms.TabPage(); + this.label3 = new System.Windows.Forms.Label(); + this.txtInputAssetServer = new OpenSim.GUI.InputTextBoxControl(); + this.txtAssetServer = new System.Windows.Forms.TextBox(); + this.tabGridServer = new System.Windows.Forms.TabPage(); + this.label4 = new System.Windows.Forms.Label(); + this.txtInputGridServer = new OpenSim.GUI.InputTextBoxControl(); + this.txtGridServer = new System.Windows.Forms.TextBox(); + this.gbLog = new System.Windows.Forms.GroupBox(); + this.btnStart = new System.Windows.Forms.Button(); + this.btnStop = new System.Windows.Forms.Button(); + this.rbGridRegionMode = new System.Windows.Forms.RadioButton(); + this.rbStandAloneMode = new System.Windows.Forms.RadioButton(); + this.rbGridServer = new System.Windows.Forms.RadioButton(); + this.tabLogs.SuspendLayout(); + this.tabMainLog.SuspendLayout(); + this.tabRegionServer.SuspendLayout(); + this.tabUserServer.SuspendLayout(); + this.tabAssetServer.SuspendLayout(); + this.tabGridServer.SuspendLayout(); + this.gbLog.SuspendLayout(); + this.SuspendLayout(); + // + // tabLogs + // + this.tabLogs.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.tabLogs.Controls.Add(this.tabMainLog); + this.tabLogs.Controls.Add(this.tabRegionServer); + this.tabLogs.Controls.Add(this.tabUserServer); + this.tabLogs.Controls.Add(this.tabAssetServer); + this.tabLogs.Controls.Add(this.tabGridServer); + this.tabLogs.Location = new System.Drawing.Point(6, 19); + this.tabLogs.Name = "tabLogs"; + this.tabLogs.SelectedIndex = 0; + this.tabLogs.Size = new System.Drawing.Size(562, 230); + this.tabLogs.TabIndex = 0; + // + // tabMainLog + // + this.tabMainLog.Controls.Add(this.txtMainLog); + this.tabMainLog.Location = new System.Drawing.Point(4, 22); + this.tabMainLog.Name = "tabMainLog"; + this.tabMainLog.Size = new System.Drawing.Size(554, 204); + this.tabMainLog.TabIndex = 4; + this.tabMainLog.Text = "Main log"; + this.tabMainLog.UseVisualStyleBackColor = true; + // + // txtMainLog + // + this.txtMainLog.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.txtMainLog.Location = new System.Drawing.Point(6, 5); + this.txtMainLog.Multiline = true; + this.txtMainLog.Name = "txtMainLog"; + this.txtMainLog.ScrollBars = System.Windows.Forms.ScrollBars.Vertical; + this.txtMainLog.Size = new System.Drawing.Size(542, 195); + this.txtMainLog.TabIndex = 1; + // + // tabRegionServer + // + this.tabRegionServer.Controls.Add(this.label1); + this.tabRegionServer.Controls.Add(this.txtInputRegionServer); + this.tabRegionServer.Controls.Add(this.txtOpenSim); + this.tabRegionServer.Location = new System.Drawing.Point(4, 22); + this.tabRegionServer.Name = "tabRegionServer"; + this.tabRegionServer.Padding = new System.Windows.Forms.Padding(3); + this.tabRegionServer.Size = new System.Drawing.Size(554, 204); + this.tabRegionServer.TabIndex = 0; + this.tabRegionServer.Text = "Region server"; + this.tabRegionServer.UseVisualStyleBackColor = true; + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Location = new System.Drawing.Point(6, 183); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(57, 13); + this.label1.TabIndex = 4; + this.label1.Text = "Command:"; + // + // txtInputRegionServer + // + this.txtInputRegionServer.Location = new System.Drawing.Point(69, 180); + this.txtInputRegionServer.Name = "txtInputRegionServer"; + this.txtInputRegionServer.Size = new System.Drawing.Size(479, 20); + this.txtInputRegionServer.TabIndex = 0; + // + // txtOpenSim + // + this.txtOpenSim.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.txtOpenSim.Location = new System.Drawing.Point(6, 6); + this.txtOpenSim.Multiline = true; + this.txtOpenSim.Name = "txtOpenSim"; + this.txtOpenSim.ScrollBars = System.Windows.Forms.ScrollBars.Vertical; + this.txtOpenSim.Size = new System.Drawing.Size(542, 168); + this.txtOpenSim.TabIndex = 0; + // + // tabUserServer + // + this.tabUserServer.Controls.Add(this.label2); + this.tabUserServer.Controls.Add(this.txtInputUserServer); + this.tabUserServer.Controls.Add(this.txtUserServer); + this.tabUserServer.Location = new System.Drawing.Point(4, 22); + this.tabUserServer.Name = "tabUserServer"; + this.tabUserServer.Padding = new System.Windows.Forms.Padding(3); + this.tabUserServer.Size = new System.Drawing.Size(554, 204); + this.tabUserServer.TabIndex = 1; + this.tabUserServer.Text = "User server"; + this.tabUserServer.UseVisualStyleBackColor = true; + // + // label2 + // + this.label2.AutoSize = true; + this.label2.Location = new System.Drawing.Point(6, 181); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(57, 13); + this.label2.TabIndex = 6; + this.label2.Text = "Command:"; + // + // txtInputUserServer + // + this.txtInputUserServer.Location = new System.Drawing.Point(69, 178); + this.txtInputUserServer.Name = "txtInputUserServer"; + this.txtInputUserServer.Size = new System.Drawing.Size(479, 20); + this.txtInputUserServer.TabIndex = 5; + // + // txtUserServer + // + this.txtUserServer.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.txtUserServer.Location = new System.Drawing.Point(6, 5); + this.txtUserServer.Multiline = true; + this.txtUserServer.Name = "txtUserServer"; + this.txtUserServer.ScrollBars = System.Windows.Forms.ScrollBars.Vertical; + this.txtUserServer.Size = new System.Drawing.Size(542, 168); + this.txtUserServer.TabIndex = 1; + // + // tabAssetServer + // + this.tabAssetServer.Controls.Add(this.label3); + this.tabAssetServer.Controls.Add(this.txtInputAssetServer); + this.tabAssetServer.Controls.Add(this.txtAssetServer); + this.tabAssetServer.Location = new System.Drawing.Point(4, 22); + this.tabAssetServer.Name = "tabAssetServer"; + this.tabAssetServer.Size = new System.Drawing.Size(554, 204); + this.tabAssetServer.TabIndex = 2; + this.tabAssetServer.Text = "Asset server"; + this.tabAssetServer.UseVisualStyleBackColor = true; + // + // label3 + // + this.label3.AutoSize = true; + this.label3.Location = new System.Drawing.Point(6, 182); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size(57, 13); + this.label3.TabIndex = 6; + this.label3.Text = "Command:"; + // + // txtInputAssetServer + // + this.txtInputAssetServer.Location = new System.Drawing.Point(69, 179); + this.txtInputAssetServer.Name = "txtInputAssetServer"; + this.txtInputAssetServer.Size = new System.Drawing.Size(479, 20); + this.txtInputAssetServer.TabIndex = 5; + // + // txtAssetServer + // + this.txtAssetServer.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.txtAssetServer.Location = new System.Drawing.Point(6, 5); + this.txtAssetServer.Multiline = true; + this.txtAssetServer.Name = "txtAssetServer"; + this.txtAssetServer.ScrollBars = System.Windows.Forms.ScrollBars.Vertical; + this.txtAssetServer.Size = new System.Drawing.Size(542, 168); + this.txtAssetServer.TabIndex = 1; + // + // tabGridServer + // + this.tabGridServer.Controls.Add(this.label4); + this.tabGridServer.Controls.Add(this.txtInputGridServer); + this.tabGridServer.Controls.Add(this.txtGridServer); + this.tabGridServer.Location = new System.Drawing.Point(4, 22); + this.tabGridServer.Name = "tabGridServer"; + this.tabGridServer.Size = new System.Drawing.Size(554, 204); + this.tabGridServer.TabIndex = 3; + this.tabGridServer.Text = "Grid server"; + this.tabGridServer.UseVisualStyleBackColor = true; + // + // label4 + // + this.label4.AutoSize = true; + this.label4.Location = new System.Drawing.Point(6, 182); + this.label4.Name = "label4"; + this.label4.Size = new System.Drawing.Size(57, 13); + this.label4.TabIndex = 6; + this.label4.Text = "Command:"; + // + // txtInputGridServer + // + this.txtInputGridServer.Location = new System.Drawing.Point(69, 179); + this.txtInputGridServer.Name = "txtInputGridServer"; + this.txtInputGridServer.Size = new System.Drawing.Size(479, 20); + this.txtInputGridServer.TabIndex = 5; + // + // txtGridServer + // + this.txtGridServer.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.txtGridServer.Location = new System.Drawing.Point(6, 5); + this.txtGridServer.Multiline = true; + this.txtGridServer.Name = "txtGridServer"; + this.txtGridServer.ScrollBars = System.Windows.Forms.ScrollBars.Vertical; + this.txtGridServer.Size = new System.Drawing.Size(542, 168); + this.txtGridServer.TabIndex = 1; + // + // gbLog + // + this.gbLog.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.gbLog.Controls.Add(this.tabLogs); + this.gbLog.Location = new System.Drawing.Point(2, 41); + this.gbLog.Name = "gbLog"; + this.gbLog.Size = new System.Drawing.Size(574, 255); + this.gbLog.TabIndex = 1; + this.gbLog.TabStop = false; + this.gbLog.Text = "Logs"; + // + // btnStart + // + this.btnStart.Location = new System.Drawing.Point(8, 12); + this.btnStart.Name = "btnStart"; + this.btnStart.Size = new System.Drawing.Size(75, 23); + this.btnStart.TabIndex = 2; + this.btnStart.Text = "Start"; + this.btnStart.UseVisualStyleBackColor = true; + this.btnStart.Click += new System.EventHandler(this.btnStart_Click); + // + // btnStop + // + this.btnStop.Location = new System.Drawing.Point(89, 12); + this.btnStop.Name = "btnStop"; + this.btnStop.Size = new System.Drawing.Size(75, 23); + this.btnStop.TabIndex = 3; + this.btnStop.Text = "Stop"; + this.btnStop.UseVisualStyleBackColor = true; + this.btnStop.Click += new System.EventHandler(this.btnStop_Click); + // + // rbGridRegionMode + // + this.rbGridRegionMode.AutoSize = true; + this.rbGridRegionMode.Location = new System.Drawing.Point(407, 18); + this.rbGridRegionMode.Name = "rbGridRegionMode"; + this.rbGridRegionMode.Size = new System.Drawing.Size(76, 17); + this.rbGridRegionMode.TabIndex = 4; + this.rbGridRegionMode.Text = "Grid region"; + this.rbGridRegionMode.UseVisualStyleBackColor = true; + this.rbGridRegionMode.CheckedChanged += new System.EventHandler(this.rbGridRegionMode_CheckedChanged); + // + // rbStandAloneMode + // + this.rbStandAloneMode.AutoSize = true; + this.rbStandAloneMode.Checked = true; + this.rbStandAloneMode.Location = new System.Drawing.Point(319, 18); + this.rbStandAloneMode.Name = "rbStandAloneMode"; + this.rbStandAloneMode.Size = new System.Drawing.Size(82, 17); + this.rbStandAloneMode.TabIndex = 5; + this.rbStandAloneMode.TabStop = true; + this.rbStandAloneMode.Text = "Stand alone"; + this.rbStandAloneMode.UseVisualStyleBackColor = true; + this.rbStandAloneMode.CheckedChanged += new System.EventHandler(this.rbStandAloneMode_CheckedChanged); + // + // rbGridServer + // + this.rbGridServer.AutoSize = true; + this.rbGridServer.Location = new System.Drawing.Point(484, 18); + this.rbGridServer.Name = "rbGridServer"; + this.rbGridServer.Size = new System.Drawing.Size(76, 17); + this.rbGridServer.TabIndex = 6; + this.rbGridServer.Text = "Grid server"; + this.rbGridServer.UseVisualStyleBackColor = true; + this.rbGridServer.CheckedChanged += new System.EventHandler(this.rbGridServer_CheckedChanged); + // + // Main + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(583, 299); + this.Controls.Add(this.rbGridServer); + this.Controls.Add(this.rbStandAloneMode); + this.Controls.Add(this.rbGridRegionMode); + this.Controls.Add(this.btnStop); + this.Controls.Add(this.btnStart); + this.Controls.Add(this.gbLog); + this.Name = "Main"; + this.Text = "OpenSim"; + this.Load += new System.EventHandler(this.Main_Load); + this.tabLogs.ResumeLayout(false); + this.tabMainLog.ResumeLayout(false); + this.tabMainLog.PerformLayout(); + this.tabRegionServer.ResumeLayout(false); + this.tabRegionServer.PerformLayout(); + this.tabUserServer.ResumeLayout(false); + this.tabUserServer.PerformLayout(); + this.tabAssetServer.ResumeLayout(false); + this.tabAssetServer.PerformLayout(); + this.tabGridServer.ResumeLayout(false); + this.tabGridServer.PerformLayout(); + this.gbLog.ResumeLayout(false); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.TabControl tabLogs; + private System.Windows.Forms.TabPage tabRegionServer; + private System.Windows.Forms.TabPage tabUserServer; + private System.Windows.Forms.GroupBox gbLog; + private System.Windows.Forms.TextBox txtOpenSim; + private System.Windows.Forms.TextBox txtUserServer; + private System.Windows.Forms.TabPage tabAssetServer; + private System.Windows.Forms.TextBox txtAssetServer; + private System.Windows.Forms.TabPage tabGridServer; + private System.Windows.Forms.TextBox txtGridServer; + private System.Windows.Forms.TabPage tabMainLog; + private System.Windows.Forms.Button btnStart; + private System.Windows.Forms.Button btnStop; + private System.Windows.Forms.TextBox txtMainLog; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.Label label3; + private System.Windows.Forms.Label label4; + private InputTextBoxControl txtInputRegionServer; + private InputTextBoxControl txtInputUserServer; + private InputTextBoxControl txtInputAssetServer; + private InputTextBoxControl txtInputGridServer; + private System.Windows.Forms.RadioButton rbGridRegionMode; + private System.Windows.Forms.RadioButton rbStandAloneMode; + private System.Windows.Forms.RadioButton rbGridServer; + } +} + diff --git a/OpenSim/Tools/OpenSim.GUI/Main.cs b/OpenSim/Tools/OpenSim.GUI/Main.cs index 0b5af28..5de4af4 100644 --- a/OpenSim/Tools/OpenSim.GUI/Main.cs +++ b/OpenSim/Tools/OpenSim.GUI/Main.cs @@ -1,242 +1,242 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Text; -using System.Windows.Forms; - -namespace OpenSim.GUI -{ - public partial class Main : Form - { - - public ProcessManager proc_OpenSim; - public ProcessManager proc_UserServer; - public ProcessManager proc_GridServer; - public ProcessManager proc_AssetServer; - - public Main() - { - InitializeComponent(); - } - - private void Main_Load(object sender, EventArgs e) - { - txtInputUserServer.KeyPress += new KeyPressEventHandler(txtInputUserServer_KeyPress); - txtInputGridServer.KeyPress += new KeyPressEventHandler(txtInputGridServer_KeyPress); - txtInputAssetServer.KeyPress += new KeyPressEventHandler(txtInputAssetServer_KeyPress); - txtInputRegionServer.KeyPress += new KeyPressEventHandler(txtInputRegionServer_KeyPress); - - tabLogs.Selected += new TabControlEventHandler(tabLogs_Selected); - - UpdateTabVisibility(); - } - - void tabLogs_Selected(object sender, TabControlEventArgs e) - { - if (e.TabPage == tabUserServer) - txtInputUserServer.Focus(); - if (e.TabPage == tabGridServer) - txtInputGridServer.Focus(); - if (e.TabPage == tabAssetServer) - txtInputAssetServer.Focus(); - if (e.TabPage == tabRegionServer) - txtInputRegionServer.Focus(); - } - - void txtInputUserServer_KeyPress(object sender, KeyPressEventArgs e) - { - - if (e.KeyChar == 13) - { - // We got a command - e.Handled = true; - proc_UserServer.StandardInput.WriteLine(txtInputUserServer.Text + "\r\n"); - txtInputUserServer.Text = ""; - } - } - - void txtInputGridServer_KeyPress(object sender, KeyPressEventArgs e) - { - if (e.KeyChar == 13) - { - // We got a command - e.Handled = true; - proc_GridServer.StandardInput.WriteLine(txtInputGridServer.Text + "\r\n"); - txtInputGridServer.Text = ""; - } - } - - void txtInputAssetServer_KeyPress(object sender, KeyPressEventArgs e) - { - if (e.KeyChar == 13) - { - // We got a command - e.Handled = true; - proc_AssetServer.StandardInput.WriteLine(txtInputAssetServer.Text + "\r\n"); - txtInputAssetServer.Text = ""; - } - } - - void txtInputRegionServer_KeyPress(object sender, KeyPressEventArgs e) - { - if (e.KeyChar == 13) - { - // We got a command - e.Handled = true; - proc_OpenSim.StandardInput.WriteLine(txtInputRegionServer.Text + "\r\n"); - txtInputRegionServer.Text = ""; - } - } - - private void btnStart_Click(object sender, EventArgs e) - { - - // - // THIS PART NEEDS TO BE MOVED TO A SEPARATE THREAD OR A TIMER OF SOME SORT - // should not block on wait - // ALSO - IF SOME SERVICES ARE NOT CONFIGURED, POP UP CONFIGURATION BOX FOR THAT SERVICE! - // - - btnStart.Enabled = false; - btnStop.Enabled = false; - - - - if (rbGridServer.Checked) - { - // Start UserServer - proc_UserServer = new ProcessManager("OpenSim.Grid.UserServer.exe", ""); - txtMainLog.AppendText("Starting: User server" + "\r\n"); - proc_UserServer.OutputDataReceived += new System.Diagnostics.DataReceivedEventHandler(proc_UserServer_DataReceived); - proc_UserServer.ErrorDataReceived += new System.Diagnostics.DataReceivedEventHandler(proc_UserServer_DataReceived); - proc_UserServer.StartProcess(); - System.Threading.Thread.Sleep(3000); - - // Start GridServer - proc_GridServer = new ProcessManager("OpenSim.Grid.GridServer.exe", ""); - txtMainLog.AppendText("Starting: Grid server" + "\r\n"); - proc_GridServer.OutputDataReceived += new System.Diagnostics.DataReceivedEventHandler(proc_GridServer_DataReceived); - proc_GridServer.ErrorDataReceived += new System.Diagnostics.DataReceivedEventHandler(proc_GridServer_DataReceived); - proc_GridServer.StartProcess(); - System.Threading.Thread.Sleep(3000); - - // Start AssetServer - proc_AssetServer = new ProcessManager("OpenSim.Grid.AssetServer.exe", ""); - txtMainLog.AppendText("Starting: Asset server" + "\r\n"); - proc_AssetServer.OutputDataReceived += new System.Diagnostics.DataReceivedEventHandler(proc_AssetServer_DataReceived); - proc_AssetServer.ErrorDataReceived += new System.Diagnostics.DataReceivedEventHandler(proc_AssetServer_DataReceived); - proc_AssetServer.StartProcess(); - System.Threading.Thread.Sleep(3000); - } - - // Start OpenSim - string p = ""; - if (rbGridServer.Checked) - p = "-gridmode=true"; - - proc_OpenSim = new ProcessManager("OpenSim.EXE", p); - txtMainLog.AppendText("Starting: OpenSim (Region server)" + "\r\n"); - proc_OpenSim.OutputDataReceived += new System.Diagnostics.DataReceivedEventHandler(proc_OpenSim_DataReceived); - proc_OpenSim.ErrorDataReceived += new System.Diagnostics.DataReceivedEventHandler(proc_OpenSim_DataReceived); - proc_OpenSim.StartProcess(); - - btnStart.Enabled = false; - btnStop.Enabled = true; - - } - public delegate void AppendText(string Text); - void proc_UserServer_DataReceived(object sender, System.Diagnostics.DataReceivedEventArgs e) - { - this.Invoke(new AppendText(txtUserServer.AppendText), new object[] { e.Data + "\r\n" }); - this.Invoke(new AppendText(txtMainLog.AppendText), new object[] { "UserServer: " + e.Data + "\r\n" }); - } - void proc_GridServer_DataReceived(object sender, System.Diagnostics.DataReceivedEventArgs e) - { - this.Invoke(new AppendText(txtGridServer.AppendText), new object[] { e.Data + "\r\n" }); - this.Invoke(new AppendText(txtMainLog.AppendText), new object[] { "GridServer: " + e.Data + "\r\n" }); - } - void proc_AssetServer_DataReceived(object sender, System.Diagnostics.DataReceivedEventArgs e) - { - this.Invoke(new AppendText(txtAssetServer.AppendText), new object[] { e.Data + "\r\n" }); - this.Invoke(new AppendText(txtMainLog.AppendText), new object[] { "AssetServer: " + e.Data + "\r\n" }); - } - void proc_OpenSim_DataReceived(object sender, System.Diagnostics.DataReceivedEventArgs e) - { - this.Invoke(new AppendText(txtOpenSim.AppendText), new object[] { e.Data + "\r\n" }); - this.Invoke(new AppendText(txtMainLog.AppendText), new object[] { "OpenSim: " + e.Data + "\r\n" }); - } - - private void btnStop_Click(object sender, EventArgs e) - { - btnStart.Enabled = false; - btnStop.Enabled = false; - - if (proc_UserServer != null) - { - txtMainLog.AppendText("Shutting down UserServer. CPU time used: " + proc_UserServer.TotalProcessorTime.ToString() + "\r\n"); - proc_UserServer.StopProcess(); - } - if (proc_GridServer != null) - { - txtMainLog.AppendText("Shutting down GridServer. CPU time used: " + proc_GridServer.TotalProcessorTime.ToString() + "\r\n"); - proc_GridServer.StopProcess(); - } - if (proc_AssetServer != null) - { - txtMainLog.AppendText("Shutting down AssetServer. CPU time used: " + proc_AssetServer.TotalProcessorTime.ToString() + "\r\n"); - proc_AssetServer.StopProcess(); - } - if (proc_OpenSim != null) - { - txtMainLog.AppendText("Shutting down OpenSim. CPU time used: " + proc_OpenSim.TotalProcessorTime.ToString() + "\r\n"); - proc_OpenSim.StopProcess(); - } - - btnStart.Enabled = true; - btnStop.Enabled = false; - - - } - - private void UpdateTabVisibility() - { - if (rbStandAloneMode.Checked) - { - if (tabLogs.TabPages.Contains(tabUserServer)) - tabLogs.TabPages.Remove(tabUserServer); - if (tabLogs.TabPages.Contains(tabGridServer)) - tabLogs.TabPages.Remove(tabGridServer); - if (tabLogs.TabPages.Contains(tabAssetServer)) - tabLogs.TabPages.Remove(tabAssetServer); - } - else - { - if (!tabLogs.TabPages.Contains(tabUserServer)) - tabLogs.TabPages.Add(tabUserServer); - if (!tabLogs.TabPages.Contains(tabGridServer)) - tabLogs.TabPages.Add(tabGridServer); - if (!tabLogs.TabPages.Contains(tabAssetServer)) - tabLogs.TabPages.Add(tabAssetServer); - } - - } - - private void rbStandAloneMode_CheckedChanged(object sender, EventArgs e) - { - UpdateTabVisibility(); - } - - private void rbGridRegionMode_CheckedChanged(object sender, EventArgs e) - { - UpdateTabVisibility(); - } - - private void rbGridServer_CheckedChanged(object sender, EventArgs e) - { - UpdateTabVisibility(); - } - - } +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Text; +using System.Windows.Forms; + +namespace OpenSim.GUI +{ + public partial class Main : Form + { + + public ProcessManager proc_OpenSim; + public ProcessManager proc_UserServer; + public ProcessManager proc_GridServer; + public ProcessManager proc_AssetServer; + + public Main() + { + InitializeComponent(); + } + + private void Main_Load(object sender, EventArgs e) + { + txtInputUserServer.KeyPress += new KeyPressEventHandler(txtInputUserServer_KeyPress); + txtInputGridServer.KeyPress += new KeyPressEventHandler(txtInputGridServer_KeyPress); + txtInputAssetServer.KeyPress += new KeyPressEventHandler(txtInputAssetServer_KeyPress); + txtInputRegionServer.KeyPress += new KeyPressEventHandler(txtInputRegionServer_KeyPress); + + tabLogs.Selected += new TabControlEventHandler(tabLogs_Selected); + + UpdateTabVisibility(); + } + + void tabLogs_Selected(object sender, TabControlEventArgs e) + { + if (e.TabPage == tabUserServer) + txtInputUserServer.Focus(); + if (e.TabPage == tabGridServer) + txtInputGridServer.Focus(); + if (e.TabPage == tabAssetServer) + txtInputAssetServer.Focus(); + if (e.TabPage == tabRegionServer) + txtInputRegionServer.Focus(); + } + + void txtInputUserServer_KeyPress(object sender, KeyPressEventArgs e) + { + + if (e.KeyChar == 13) + { + // We got a command + e.Handled = true; + proc_UserServer.StandardInput.WriteLine(txtInputUserServer.Text + "\r\n"); + txtInputUserServer.Text = ""; + } + } + + void txtInputGridServer_KeyPress(object sender, KeyPressEventArgs e) + { + if (e.KeyChar == 13) + { + // We got a command + e.Handled = true; + proc_GridServer.StandardInput.WriteLine(txtInputGridServer.Text + "\r\n"); + txtInputGridServer.Text = ""; + } + } + + void txtInputAssetServer_KeyPress(object sender, KeyPressEventArgs e) + { + if (e.KeyChar == 13) + { + // We got a command + e.Handled = true; + proc_AssetServer.StandardInput.WriteLine(txtInputAssetServer.Text + "\r\n"); + txtInputAssetServer.Text = ""; + } + } + + void txtInputRegionServer_KeyPress(object sender, KeyPressEventArgs e) + { + if (e.KeyChar == 13) + { + // We got a command + e.Handled = true; + proc_OpenSim.StandardInput.WriteLine(txtInputRegionServer.Text + "\r\n"); + txtInputRegionServer.Text = ""; + } + } + + private void btnStart_Click(object sender, EventArgs e) + { + + // + // THIS PART NEEDS TO BE MOVED TO A SEPARATE THREAD OR A TIMER OF SOME SORT + // should not block on wait + // ALSO - IF SOME SERVICES ARE NOT CONFIGURED, POP UP CONFIGURATION BOX FOR THAT SERVICE! + // + + btnStart.Enabled = false; + btnStop.Enabled = false; + + + + if (rbGridServer.Checked) + { + // Start UserServer + proc_UserServer = new ProcessManager("OpenSim.Grid.UserServer.exe", ""); + txtMainLog.AppendText("Starting: User server" + "\r\n"); + proc_UserServer.OutputDataReceived += new System.Diagnostics.DataReceivedEventHandler(proc_UserServer_DataReceived); + proc_UserServer.ErrorDataReceived += new System.Diagnostics.DataReceivedEventHandler(proc_UserServer_DataReceived); + proc_UserServer.StartProcess(); + System.Threading.Thread.Sleep(3000); + + // Start GridServer + proc_GridServer = new ProcessManager("OpenSim.Grid.GridServer.exe", ""); + txtMainLog.AppendText("Starting: Grid server" + "\r\n"); + proc_GridServer.OutputDataReceived += new System.Diagnostics.DataReceivedEventHandler(proc_GridServer_DataReceived); + proc_GridServer.ErrorDataReceived += new System.Diagnostics.DataReceivedEventHandler(proc_GridServer_DataReceived); + proc_GridServer.StartProcess(); + System.Threading.Thread.Sleep(3000); + + // Start AssetServer + proc_AssetServer = new ProcessManager("OpenSim.Grid.AssetServer.exe", ""); + txtMainLog.AppendText("Starting: Asset server" + "\r\n"); + proc_AssetServer.OutputDataReceived += new System.Diagnostics.DataReceivedEventHandler(proc_AssetServer_DataReceived); + proc_AssetServer.ErrorDataReceived += new System.Diagnostics.DataReceivedEventHandler(proc_AssetServer_DataReceived); + proc_AssetServer.StartProcess(); + System.Threading.Thread.Sleep(3000); + } + + // Start OpenSim + string p = ""; + if (rbGridServer.Checked) + p = "-gridmode=true"; + + proc_OpenSim = new ProcessManager("OpenSim.EXE", p); + txtMainLog.AppendText("Starting: OpenSim (Region server)" + "\r\n"); + proc_OpenSim.OutputDataReceived += new System.Diagnostics.DataReceivedEventHandler(proc_OpenSim_DataReceived); + proc_OpenSim.ErrorDataReceived += new System.Diagnostics.DataReceivedEventHandler(proc_OpenSim_DataReceived); + proc_OpenSim.StartProcess(); + + btnStart.Enabled = false; + btnStop.Enabled = true; + + } + public delegate void AppendText(string Text); + void proc_UserServer_DataReceived(object sender, System.Diagnostics.DataReceivedEventArgs e) + { + this.Invoke(new AppendText(txtUserServer.AppendText), new object[] { e.Data + "\r\n" }); + this.Invoke(new AppendText(txtMainLog.AppendText), new object[] { "UserServer: " + e.Data + "\r\n" }); + } + void proc_GridServer_DataReceived(object sender, System.Diagnostics.DataReceivedEventArgs e) + { + this.Invoke(new AppendText(txtGridServer.AppendText), new object[] { e.Data + "\r\n" }); + this.Invoke(new AppendText(txtMainLog.AppendText), new object[] { "GridServer: " + e.Data + "\r\n" }); + } + void proc_AssetServer_DataReceived(object sender, System.Diagnostics.DataReceivedEventArgs e) + { + this.Invoke(new AppendText(txtAssetServer.AppendText), new object[] { e.Data + "\r\n" }); + this.Invoke(new AppendText(txtMainLog.AppendText), new object[] { "AssetServer: " + e.Data + "\r\n" }); + } + void proc_OpenSim_DataReceived(object sender, System.Diagnostics.DataReceivedEventArgs e) + { + this.Invoke(new AppendText(txtOpenSim.AppendText), new object[] { e.Data + "\r\n" }); + this.Invoke(new AppendText(txtMainLog.AppendText), new object[] { "OpenSim: " + e.Data + "\r\n" }); + } + + private void btnStop_Click(object sender, EventArgs e) + { + btnStart.Enabled = false; + btnStop.Enabled = false; + + if (proc_UserServer != null) + { + txtMainLog.AppendText("Shutting down UserServer. CPU time used: " + proc_UserServer.TotalProcessorTime.ToString() + "\r\n"); + proc_UserServer.StopProcess(); + } + if (proc_GridServer != null) + { + txtMainLog.AppendText("Shutting down GridServer. CPU time used: " + proc_GridServer.TotalProcessorTime.ToString() + "\r\n"); + proc_GridServer.StopProcess(); + } + if (proc_AssetServer != null) + { + txtMainLog.AppendText("Shutting down AssetServer. CPU time used: " + proc_AssetServer.TotalProcessorTime.ToString() + "\r\n"); + proc_AssetServer.StopProcess(); + } + if (proc_OpenSim != null) + { + txtMainLog.AppendText("Shutting down OpenSim. CPU time used: " + proc_OpenSim.TotalProcessorTime.ToString() + "\r\n"); + proc_OpenSim.StopProcess(); + } + + btnStart.Enabled = true; + btnStop.Enabled = false; + + + } + + private void UpdateTabVisibility() + { + if (rbStandAloneMode.Checked) + { + if (tabLogs.TabPages.Contains(tabUserServer)) + tabLogs.TabPages.Remove(tabUserServer); + if (tabLogs.TabPages.Contains(tabGridServer)) + tabLogs.TabPages.Remove(tabGridServer); + if (tabLogs.TabPages.Contains(tabAssetServer)) + tabLogs.TabPages.Remove(tabAssetServer); + } + else + { + if (!tabLogs.TabPages.Contains(tabUserServer)) + tabLogs.TabPages.Add(tabUserServer); + if (!tabLogs.TabPages.Contains(tabGridServer)) + tabLogs.TabPages.Add(tabGridServer); + if (!tabLogs.TabPages.Contains(tabAssetServer)) + tabLogs.TabPages.Add(tabAssetServer); + } + + } + + private void rbStandAloneMode_CheckedChanged(object sender, EventArgs e) + { + UpdateTabVisibility(); + } + + private void rbGridRegionMode_CheckedChanged(object sender, EventArgs e) + { + UpdateTabVisibility(); + } + + private void rbGridServer_CheckedChanged(object sender, EventArgs e) + { + UpdateTabVisibility(); + } + + } } \ No newline at end of file diff --git a/OpenSim/Tools/OpenSim.GUI/ProcessManager.cs b/OpenSim/Tools/OpenSim.GUI/ProcessManager.cs index 0ab074e..8c019fb 100644 --- a/OpenSim/Tools/OpenSim.GUI/ProcessManager.cs +++ b/OpenSim/Tools/OpenSim.GUI/ProcessManager.cs @@ -1,71 +1,71 @@ -using System; -using System.Collections.Generic; -using System.Text; -using System.Diagnostics; - -namespace OpenSim.GUI -{ - public class ProcessManager : Process - { - private string m_FileName; - private string m_Arguments; - public ProcessManager(string FileName,string Arguments) - { - m_FileName = FileName; - m_Arguments = Arguments; - -// MyProc = new Process(); - StartInfo.WorkingDirectory = AppDomain.CurrentDomain.BaseDirectory; - Console.WriteLine("WorkingDirectory: " + StartInfo.WorkingDirectory); - StartInfo.FileName = m_FileName; - - //p.StartInfo.Arguments = ""; - StartInfo.UseShellExecute = false; - StartInfo.RedirectStandardError = true; - StartInfo.RedirectStandardInput = true; - StartInfo.RedirectStandardOutput = true; - StartInfo.CreateNoWindow = true; - - - - } - - public void StartProcess() - { - try - { - Start(); - BeginOutputReadLine(); - BeginErrorReadLine(); - } - catch (Exception ex) - { - Console.WriteLine("Exception Occurred :{0},{1}", - ex.Message, ex.StackTrace.ToString()); - } - } - public void StopProcess() - { - try - { - CancelErrorRead(); - CancelErrorRead(); - if (!HasExited) - { - StandardInput.WriteLine("quit"); - StandardInput.WriteLine("shutdown"); - System.Threading.Thread.Sleep(500); - if (!HasExited) - { - Kill(); - } - } - } - catch (Exception ex) - { - Console.WriteLine("Exception Occurred :{0},{1}", - ex.Message, ex.StackTrace.ToString()); - } - } - } -} +using System; +using System.Collections.Generic; +using System.Text; +using System.Diagnostics; + +namespace OpenSim.GUI +{ + public class ProcessManager : Process + { + private string m_FileName; + private string m_Arguments; + public ProcessManager(string FileName,string Arguments) + { + m_FileName = FileName; + m_Arguments = Arguments; + +// MyProc = new Process(); + StartInfo.WorkingDirectory = AppDomain.CurrentDomain.BaseDirectory; + Console.WriteLine("WorkingDirectory: " + StartInfo.WorkingDirectory); + StartInfo.FileName = m_FileName; + + //p.StartInfo.Arguments = ""; + StartInfo.UseShellExecute = false; + StartInfo.RedirectStandardError = true; + StartInfo.RedirectStandardInput = true; + StartInfo.RedirectStandardOutput = true; + StartInfo.CreateNoWindow = true; + + + + } + + public void StartProcess() + { + try + { + Start(); + BeginOutputReadLine(); + BeginErrorReadLine(); + } + catch (Exception ex) + { + Console.WriteLine("Exception Occurred :{0},{1}", + ex.Message, ex.StackTrace.ToString()); + } + } + public void StopProcess() + { + try + { + CancelErrorRead(); + CancelErrorRead(); + if (!HasExited) + { + StandardInput.WriteLine("quit"); + StandardInput.WriteLine("shutdown"); + System.Threading.Thread.Sleep(500); + if (!HasExited) + { + Kill(); + } + } + } + catch (Exception ex) + { + Console.WriteLine("Exception Occurred :{0},{1}", + ex.Message, ex.StackTrace.ToString()); + } + } + } +} diff --git a/OpenSim/Tools/OpenSim.GUI/Program.cs b/OpenSim/Tools/OpenSim.GUI/Program.cs index a849b1b..3766ee6 100644 --- a/OpenSim/Tools/OpenSim.GUI/Program.cs +++ b/OpenSim/Tools/OpenSim.GUI/Program.cs @@ -1,20 +1,20 @@ -using System; -using System.Collections.Generic; -using System.Windows.Forms; - -namespace OpenSim.GUI -{ - static class Program - { - /// - /// The main entry point for the application. - /// - [STAThread] - static void Main() - { - Application.EnableVisualStyles(); - Application.SetCompatibleTextRenderingDefault(false); - Application.Run(new Main()); - } - } +using System; +using System.Collections.Generic; +using System.Windows.Forms; + +namespace OpenSim.GUI +{ + static class Program + { + /// + /// The main entry point for the application. + /// + [STAThread] + static void Main() + { + Application.EnableVisualStyles(); + Application.SetCompatibleTextRenderingDefault(false); + Application.Run(new Main()); + } + } } \ No newline at end of file diff --git a/OpenSim/Tools/OpenSim.GUI/Properties/AssemblyInfo.cs b/OpenSim/Tools/OpenSim.GUI/Properties/AssemblyInfo.cs index 3e86b1c..adc2285 100644 --- a/OpenSim/Tools/OpenSim.GUI/Properties/AssemblyInfo.cs +++ b/OpenSim/Tools/OpenSim.GUI/Properties/AssemblyInfo.cs @@ -1,33 +1,33 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("OpenSim.GUI")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("OpenSim.GUI")] -[assembly: AssemblyCopyright("Copyright © 2007")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("c8dbda49-66bd-476b-93b3-71774870b73e")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("OpenSim.GUI")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("OpenSim.GUI")] +[assembly: AssemblyCopyright("Copyright © 2007")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("c8dbda49-66bd-476b-93b3-71774870b73e")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/OpenSim/Tools/OpenSim.GUI/Properties/Resources.Designer.cs b/OpenSim/Tools/OpenSim.GUI/Properties/Resources.Designer.cs index f7de4f0..33e67d4 100644 --- a/OpenSim/Tools/OpenSim.GUI/Properties/Resources.Designer.cs +++ b/OpenSim/Tools/OpenSim.GUI/Properties/Resources.Designer.cs @@ -1,71 +1,71 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:2.0.50727.312 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace OpenSim.GUI.Properties -{ - - - /// - /// A strongly-typed resource class, for looking up localized strings, etc. - /// - // This class was auto-generated by the StronglyTypedResourceBuilder - // class via a tool like ResGen or Visual Studio. - // To add or remove a member, edit your .ResX file then rerun ResGen - // with the /str option, or rebuild your VS project. - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "2.0.0.0")] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - internal class Resources - { - - private static global::System.Resources.ResourceManager resourceMan; - - private static global::System.Globalization.CultureInfo resourceCulture; - - [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] - internal Resources() - { - } - - /// - /// Returns the cached ResourceManager instance used by this class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Resources.ResourceManager ResourceManager - { - get - { - if ((resourceMan == null)) - { - global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("OpenSim.GUI.Properties.Resources", typeof(Resources).Assembly); - resourceMan = temp; - } - return resourceMan; - } - } - - /// - /// Overrides the current thread's CurrentUICulture property for all - /// resource lookups using this strongly typed resource class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Globalization.CultureInfo Culture - { - get - { - return resourceCulture; - } - set - { - resourceCulture = value; - } - } - } -} +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.50727.312 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace OpenSim.GUI.Properties +{ + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "2.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources + { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() + { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager + { + get + { + if ((resourceMan == null)) + { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("OpenSim.GUI.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture + { + get + { + return resourceCulture; + } + set + { + resourceCulture = value; + } + } + } +} diff --git a/OpenSim/Tools/OpenSim.GUI/Properties/Settings.Designer.cs b/OpenSim/Tools/OpenSim.GUI/Properties/Settings.Designer.cs index e23862a..dd1db86 100644 --- a/OpenSim/Tools/OpenSim.GUI/Properties/Settings.Designer.cs +++ b/OpenSim/Tools/OpenSim.GUI/Properties/Settings.Designer.cs @@ -1,30 +1,30 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:2.0.50727.312 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace OpenSim.GUI.Properties -{ - - - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "8.0.0.0")] - internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase - { - - private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); - - public static Settings Default - { - get - { - return defaultInstance; - } - } - } -} +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.50727.312 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace OpenSim.GUI.Properties +{ + + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "8.0.0.0")] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase + { + + private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); + + public static Settings Default + { + get + { + return defaultInstance; + } + } + } +} diff --git a/OpenSim/Tools/OpenSim.GUI/frmConfiguration.Designer.cs b/OpenSim/Tools/OpenSim.GUI/frmConfiguration.Designer.cs index 1777fbc..bba9361 100644 --- a/OpenSim/Tools/OpenSim.GUI/frmConfiguration.Designer.cs +++ b/OpenSim/Tools/OpenSim.GUI/frmConfiguration.Designer.cs @@ -1,61 +1,61 @@ -namespace OpenSim.GUI -{ - partial class frmConfiguration - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(frmConfiguration)); - this.textBox1 = new System.Windows.Forms.TextBox(); - this.SuspendLayout(); - // - // textBox1 - // - this.textBox1.Location = new System.Drawing.Point(12, 12); - this.textBox1.Multiline = true; - this.textBox1.Name = "textBox1"; - this.textBox1.Size = new System.Drawing.Size(570, 190); - this.textBox1.TabIndex = 0; - this.textBox1.Text = resources.GetString("textBox1.Text"); - // - // frmConfiguration - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(664, 413); - this.Controls.Add(this.textBox1); - this.Name = "frmConfiguration"; - this.Text = "Configuration"; - this.ResumeLayout(false); - this.PerformLayout(); - - } - - #endregion - - private System.Windows.Forms.TextBox textBox1; - } +namespace OpenSim.GUI +{ + partial class frmConfiguration + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(frmConfiguration)); + this.textBox1 = new System.Windows.Forms.TextBox(); + this.SuspendLayout(); + // + // textBox1 + // + this.textBox1.Location = new System.Drawing.Point(12, 12); + this.textBox1.Multiline = true; + this.textBox1.Name = "textBox1"; + this.textBox1.Size = new System.Drawing.Size(570, 190); + this.textBox1.TabIndex = 0; + this.textBox1.Text = resources.GetString("textBox1.Text"); + // + // frmConfiguration + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(664, 413); + this.Controls.Add(this.textBox1); + this.Name = "frmConfiguration"; + this.Text = "Configuration"; + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.TextBox textBox1; + } } \ No newline at end of file diff --git a/OpenSim/Tools/OpenSim.GUI/frmConfiguration.cs b/OpenSim/Tools/OpenSim.GUI/frmConfiguration.cs index 9acf305..c305657 100644 --- a/OpenSim/Tools/OpenSim.GUI/frmConfiguration.cs +++ b/OpenSim/Tools/OpenSim.GUI/frmConfiguration.cs @@ -1,18 +1,18 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Text; -using System.Windows.Forms; - -namespace OpenSim.GUI -{ - public partial class frmConfiguration : Form - { - public frmConfiguration() - { - InitializeComponent(); - } - } +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Text; +using System.Windows.Forms; + +namespace OpenSim.GUI +{ + public partial class frmConfiguration : Form + { + public frmConfiguration() + { + InitializeComponent(); + } + } } \ No newline at end of file -- cgit v1.1 From 849eaffbe5fc59015adb7795e76b0b039e2c5cb0 Mon Sep 17 00:00:00 2001 From: lbsa71 Date: Mon, 15 Oct 2007 07:10:21 +0000 Subject: * Applied patch #418 : copyright-r2012.patch - some errors, but got most thru --- .../LaunchSLClient/Form1.Designer.cs | 29 +++++++++++++++++++++ OpenSim/Tools/OpenSim.GUI/InputTextBoxControl.cs | 28 ++++++++++++++++++++ OpenSim/Tools/OpenSim.GUI/Main.Designer.cs | 29 +++++++++++++++++++++ OpenSim/Tools/OpenSim.GUI/Main.cs | 30 +++++++++++++++++++++- OpenSim/Tools/OpenSim.GUI/ProcessManager.cs | 28 ++++++++++++++++++++ OpenSim/Tools/OpenSim.GUI/Program.cs | 30 +++++++++++++++++++++- .../Tools/OpenSim.GUI/frmConfiguration.Designer.cs | 30 +++++++++++++++++++++- OpenSim/Tools/OpenSim.GUI/frmConfiguration.cs | 30 +++++++++++++++++++++- 8 files changed, 230 insertions(+), 4 deletions(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Form1.Designer.cs b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Form1.Designer.cs index 0601e51..40dee17 100644 --- a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Form1.Designer.cs +++ b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Form1.Designer.cs @@ -1,3 +1,31 @@ +/* +* Copyright (c) Contributors, http://opensimulator.org/ +* See CONTRIBUTORS.TXT for a full list of copyright holders. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenSim Project nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS AS IS AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +*/ + namespace LaunchSLClient { partial class Form1 @@ -81,3 +109,4 @@ namespace LaunchSLClient } } + diff --git a/OpenSim/Tools/OpenSim.GUI/InputTextBoxControl.cs b/OpenSim/Tools/OpenSim.GUI/InputTextBoxControl.cs index 47ff65a..467942e 100644 --- a/OpenSim/Tools/OpenSim.GUI/InputTextBoxControl.cs +++ b/OpenSim/Tools/OpenSim.GUI/InputTextBoxControl.cs @@ -1,3 +1,31 @@ +/* +* Copyright (c) Contributors, http://opensimulator.org/ +* See CONTRIBUTORS.TXT for a full list of copyright holders. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenSim Project nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS AS IS AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +*/ + using System; using System.Collections.Generic; using System.Text; diff --git a/OpenSim/Tools/OpenSim.GUI/Main.Designer.cs b/OpenSim/Tools/OpenSim.GUI/Main.Designer.cs index c08f26d..798c6a3 100644 --- a/OpenSim/Tools/OpenSim.GUI/Main.Designer.cs +++ b/OpenSim/Tools/OpenSim.GUI/Main.Designer.cs @@ -1,3 +1,31 @@ +/* +* Copyright (c) Contributors, http://opensimulator.org/ +* See CONTRIBUTORS.TXT for a full list of copyright holders. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenSim Project nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS AS IS AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +*/ + namespace OpenSim.GUI { partial class Main @@ -391,3 +419,4 @@ namespace OpenSim.GUI } } + diff --git a/OpenSim/Tools/OpenSim.GUI/Main.cs b/OpenSim/Tools/OpenSim.GUI/Main.cs index 5de4af4..7f76f54 100644 --- a/OpenSim/Tools/OpenSim.GUI/Main.cs +++ b/OpenSim/Tools/OpenSim.GUI/Main.cs @@ -1,3 +1,31 @@ +/* +* Copyright (c) Contributors, http://opensimulator.org/ +* See CONTRIBUTORS.TXT for a full list of copyright holders. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenSim Project nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS AS IS AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +*/ + using System; using System.Collections.Generic; using System.ComponentModel; @@ -239,4 +267,4 @@ namespace OpenSim.GUI } } -} \ No newline at end of file +} diff --git a/OpenSim/Tools/OpenSim.GUI/ProcessManager.cs b/OpenSim/Tools/OpenSim.GUI/ProcessManager.cs index 8c019fb..8421f0e 100644 --- a/OpenSim/Tools/OpenSim.GUI/ProcessManager.cs +++ b/OpenSim/Tools/OpenSim.GUI/ProcessManager.cs @@ -1,3 +1,31 @@ +/* +* Copyright (c) Contributors, http://opensimulator.org/ +* See CONTRIBUTORS.TXT for a full list of copyright holders. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenSim Project nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS AS IS AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +*/ + using System; using System.Collections.Generic; using System.Text; diff --git a/OpenSim/Tools/OpenSim.GUI/Program.cs b/OpenSim/Tools/OpenSim.GUI/Program.cs index 3766ee6..e646b9c 100644 --- a/OpenSim/Tools/OpenSim.GUI/Program.cs +++ b/OpenSim/Tools/OpenSim.GUI/Program.cs @@ -1,3 +1,31 @@ +/* +* Copyright (c) Contributors, http://opensimulator.org/ +* See CONTRIBUTORS.TXT for a full list of copyright holders. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenSim Project nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS AS IS AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +*/ + using System; using System.Collections.Generic; using System.Windows.Forms; @@ -17,4 +45,4 @@ namespace OpenSim.GUI Application.Run(new Main()); } } -} \ No newline at end of file +} diff --git a/OpenSim/Tools/OpenSim.GUI/frmConfiguration.Designer.cs b/OpenSim/Tools/OpenSim.GUI/frmConfiguration.Designer.cs index bba9361..6da9bc1 100644 --- a/OpenSim/Tools/OpenSim.GUI/frmConfiguration.Designer.cs +++ b/OpenSim/Tools/OpenSim.GUI/frmConfiguration.Designer.cs @@ -1,3 +1,31 @@ +/* +* Copyright (c) Contributors, http://opensimulator.org/ +* See CONTRIBUTORS.TXT for a full list of copyright holders. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenSim Project nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS AS IS AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +*/ + namespace OpenSim.GUI { partial class frmConfiguration @@ -58,4 +86,4 @@ namespace OpenSim.GUI private System.Windows.Forms.TextBox textBox1; } -} \ No newline at end of file +} diff --git a/OpenSim/Tools/OpenSim.GUI/frmConfiguration.cs b/OpenSim/Tools/OpenSim.GUI/frmConfiguration.cs index c305657..2c9b97a 100644 --- a/OpenSim/Tools/OpenSim.GUI/frmConfiguration.cs +++ b/OpenSim/Tools/OpenSim.GUI/frmConfiguration.cs @@ -1,3 +1,31 @@ +/* +* Copyright (c) Contributors, http://opensimulator.org/ +* See CONTRIBUTORS.TXT for a full list of copyright holders. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenSim Project nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS AS IS AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +*/ + using System; using System.Collections.Generic; using System.ComponentModel; @@ -15,4 +43,4 @@ namespace OpenSim.GUI InitializeComponent(); } } -} \ No newline at end of file +} -- cgit v1.1 From 58ef357cbf74216629aa3baa470889104eff0de8 Mon Sep 17 00:00:00 2001 From: Tleiades Hax Date: Tue, 16 Oct 2007 05:20:45 +0000 Subject: Added support for 64 bit windows --- OpenSim/Tools/LaunchSLClient/LaunchSLClient/Form1.cs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Form1.cs b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Form1.cs index 619f6de..38c5435 100644 --- a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Form1.cs +++ b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Form1.cs @@ -71,7 +71,11 @@ namespace LaunchSLClient regKey = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Linden Research, Inc.\SecondLife"); if (regKey == null) { - throw new LauncherException("Can't find Second Life. Are you sure it is installed?", "LauncherException.Form1"); + regKey = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Wow6432Node\Linden Research, Inc.\SecondLife"); + if (regKey == null) + { + throw new LauncherException("Can't find Second Life. Are you sure it is installed?", "LauncherException.Form1"); + } } Object exe = regKey.GetValue("Exe"); exeFlags = regKey.GetValue("Flags"); -- cgit v1.1 From 6865f5cbd4d0aa9918df9aae531d8a6b336df8a9 Mon Sep 17 00:00:00 2001 From: lbsa71 Date: Tue, 30 Oct 2007 16:55:24 +0000 Subject: * Now the launcher actually WORKS. Yay. --- OpenSim/Tools/LaunchSLClient/LaunchSLClient/Form1.cs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Form1.cs b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Form1.cs index 38c5435..5f4d55d 100644 --- a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Form1.cs +++ b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Form1.cs @@ -180,10 +180,10 @@ namespace LaunchSLClient private void comboBox1_SelectedIndexChanged(object sender, EventArgs e) { if (comboBox1.Text == "Please select one:") { return; } - if (comboBox1.Text == "Local Sandbox") { runUrl=" - loginuri " + sandboxUrl;} - if (comboBox1.Text == "Local Grid Server") { runUrl = " - loginuri " + gridUrl; } - if (comboBox1.Text == "DeepGrid - www.deepgrid.com") { runUrl = " - loginuri " + deepGridUrl; } - if (comboBox1.Text == "OSGrid - www.osgrid.org") { runUrl = " - loginuri " + osGridUrl; } + if (comboBox1.Text == "Local Sandbox") { runUrl=" -loginuri " + sandboxUrl;} + if (comboBox1.Text == "Local Grid Server") { runUrl = " -loginuri " + gridUrl; } + if (comboBox1.Text == "DeepGrid - www.deepgrid.com") { runUrl = " -loginuri " + deepGridUrl; } + if (comboBox1.Text == "OSGrid - www.osgrid.org") { runUrl = " -loginuri " + osGridUrl; } if (comboBox1.Text == "Linden Labs - www.secondlife.com") { runUrl = ""; } System.Diagnostics.Process proc = new System.Diagnostics.Process(); proc.StartInfo.FileName = runLine; -- cgit v1.1 From 90e7c59c11fdc0d0300441818470baa3c80fd7f1 Mon Sep 17 00:00:00 2001 From: lbsa71 Date: Tue, 30 Oct 2007 17:13:30 +0000 Subject: * Added OpenLifeGrid to Launcher --- OpenSim/Tools/LaunchSLClient/LaunchSLClient/Form1.cs | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Form1.cs b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Form1.cs index 5f4d55d..35fd58a 100644 --- a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Form1.cs +++ b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Form1.cs @@ -166,9 +166,13 @@ namespace LaunchSLClient { MessageBox.Show("No OpenSim installed. Showing public grids only", "No OpenSim"); } - menuItems.Add("DeepGrid - www.deepgrid.com"); + menuItems.Add("OSGrid - www.osgrid.org"); - menuItems.Add("Linden Labs - www.secondlife.com"); + menuItems.Add("DeepGrid - www.deepgrid.com"); + menuItems.Add("OpenlifeGrid - www.openlifegrid.com") + + // We don't have a proper login uri for SL grid + // menuItems.Add("Linden Labs - www.secondlife.com"); comboBox1.DataSource=menuItems; } @@ -185,6 +189,8 @@ namespace LaunchSLClient if (comboBox1.Text == "DeepGrid - www.deepgrid.com") { runUrl = " -loginuri " + deepGridUrl; } if (comboBox1.Text == "OSGrid - www.osgrid.org") { runUrl = " -loginuri " + osGridUrl; } if (comboBox1.Text == "Linden Labs - www.secondlife.com") { runUrl = ""; } + if (comboBox1.Text == "OpenlifeGrid - www.openlifegrid.com") { runUrl = "http://logingrid.net:8002"; } + System.Diagnostics.Process proc = new System.Diagnostics.Process(); proc.StartInfo.FileName = runLine; proc.StartInfo.Arguments = exeFlags.ToString() + " " + runUrl; -- cgit v1.1 From 9e34f04cbbdfc28c95eb0cc84f4445407729e87b Mon Sep 17 00:00:00 2001 From: lbsa71 Date: Tue, 30 Oct 2007 17:19:34 +0000 Subject: * doh --- OpenSim/Tools/LaunchSLClient/LaunchSLClient/Form1.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Form1.cs b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Form1.cs index 35fd58a..1a79d82 100644 --- a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Form1.cs +++ b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Form1.cs @@ -189,7 +189,7 @@ namespace LaunchSLClient if (comboBox1.Text == "DeepGrid - www.deepgrid.com") { runUrl = " -loginuri " + deepGridUrl; } if (comboBox1.Text == "OSGrid - www.osgrid.org") { runUrl = " -loginuri " + osGridUrl; } if (comboBox1.Text == "Linden Labs - www.secondlife.com") { runUrl = ""; } - if (comboBox1.Text == "OpenlifeGrid - www.openlifegrid.com") { runUrl = "http://logingrid.net:8002"; } + if (comboBox1.Text == "OpenlifeGrid - www.openlifegrid.com") { runUrl = " -loginuri http://logingrid.net:8002"; } System.Diagnostics.Process proc = new System.Diagnostics.Process(); proc.StartInfo.FileName = runLine; -- cgit v1.1 From a8c42a5829f7b33ce6e47aa1c7ef191fffa9e90c Mon Sep 17 00:00:00 2001 From: lbsa71 Date: Tue, 30 Oct 2007 17:28:41 +0000 Subject: * doh II --- OpenSim/Tools/LaunchSLClient/LaunchSLClient/Form1.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Form1.cs b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Form1.cs index 1a79d82..f4d4ed1 100644 --- a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Form1.cs +++ b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Form1.cs @@ -169,7 +169,7 @@ namespace LaunchSLClient menuItems.Add("OSGrid - www.osgrid.org"); menuItems.Add("DeepGrid - www.deepgrid.com"); - menuItems.Add("OpenlifeGrid - www.openlifegrid.com") + menuItems.Add("OpenlifeGrid - www.openlifegrid.com"); // We don't have a proper login uri for SL grid // menuItems.Add("Linden Labs - www.secondlife.com"); -- cgit v1.1 From 61b301cbcdd7e4eab38993f25942a715f69dc966 Mon Sep 17 00:00:00 2001 From: lbsa71 Date: Wed, 14 Nov 2007 11:22:01 +0000 Subject: * moved outer tool dir into inner tool dir --- OpenSim/Tools/Windows/Installer/LICENSE.txt | 25 +++++ OpenSim/Tools/Windows/Installer/OpenSim.nsi | 151 ++++++++++++++++++++++++++++ OpenSim/Tools/classaudit.pl | 133 ++++++++++++++++++++++++ 3 files changed, 309 insertions(+) create mode 100644 OpenSim/Tools/Windows/Installer/LICENSE.txt create mode 100644 OpenSim/Tools/Windows/Installer/OpenSim.nsi create mode 100755 OpenSim/Tools/classaudit.pl (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/Windows/Installer/LICENSE.txt b/OpenSim/Tools/Windows/Installer/LICENSE.txt new file mode 100644 index 0000000..6ad7705 --- /dev/null +++ b/OpenSim/Tools/Windows/Installer/LICENSE.txt @@ -0,0 +1,25 @@ +Copyright (c) Contributors, http://opensimulator.org/ +See CONTRIBUTORS.TXT for a full list of copyright holders. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + * Neither the name of the OpenSim Project nor the + names of its contributors may be used to endorse or promote products + derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY EXPRESS OR +IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY +DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE +GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR +OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/OpenSim/Tools/Windows/Installer/OpenSim.nsi b/OpenSim/Tools/Windows/Installer/OpenSim.nsi new file mode 100644 index 0000000..d1df7ba --- /dev/null +++ b/OpenSim/Tools/Windows/Installer/OpenSim.nsi @@ -0,0 +1,151 @@ +!include "MUI.nsh" + +Name "OpenSim" +OutFile "OpenSim Setup 0.4.exe" + +CRCCheck On + +InstallDir "$PROGRAMFILES\OpenSim" +InstallDirRegKey HKCU "Software\OpenSim" "" + +;Vista redirects $SMPROGRAMS to all users without this +RequestExecutionLevel admin + +Var MUI_TEMP +Var STARTMENU_FOLDER + +!define MUI_LANGDLL_REGISTRY_ROOT "HKCU" +!define MUI_LANGDLL_REGISTRY_KEY "Software\OpenSim" +!define MUI_LANGDLL_REGISTRY_VALUENAME "Installer Language" + +!define MUI_ABORTWARNING + +!insertmacro MUI_PAGE_WELCOME +!insertmacro MUI_PAGE_LICENSE "LICENSE.txt" +!insertmacro MUI_PAGE_DIRECTORY + +!define MUI_STARTMENUPAGE_REGISTRY_ROOT "HKCU" +!define MUI_STARTMENUPAGE_REGISTRY_KEY "Software\OpenSim" +!define MUI_STARTMENUPAGE_REGISTRY_VALUENAME "Start Menu Folder" + +!insertmacro MUI_PAGE_STARTMENU Application $STARTMENU_FOLDER + +!insertmacro MUI_PAGE_INSTFILES +!insertmacro MUI_PAGE_FINISH + +!insertmacro MUI_UNPAGE_WELCOME +!insertmacro MUI_UNPAGE_CONFIRM +!insertmacro MUI_UNPAGE_INSTFILES +!insertmacro MUI_UNPAGE_FINISH + +!insertmacro MUI_LANGUAGE "English" +!insertmacro MUI_LANGUAGE "French" +!insertmacro MUI_LANGUAGE "German" +!insertmacro MUI_LANGUAGE "Spanish" +!insertmacro MUI_LANGUAGE "SpanishInternational" +!insertmacro MUI_LANGUAGE "SimpChinese" +!insertmacro MUI_LANGUAGE "TradChinese" +!insertmacro MUI_LANGUAGE "Japanese" +!insertmacro MUI_LANGUAGE "Korean" +!insertmacro MUI_LANGUAGE "Italian" +!insertmacro MUI_LANGUAGE "Dutch" +!insertmacro MUI_LANGUAGE "Danish" +!insertmacro MUI_LANGUAGE "Swedish" +!insertmacro MUI_LANGUAGE "Norwegian" +!insertmacro MUI_LANGUAGE "NorwegianNynorsk" +!insertmacro MUI_LANGUAGE "Finnish" +!insertmacro MUI_LANGUAGE "Greek" +!insertmacro MUI_LANGUAGE "Russian" +!insertmacro MUI_LANGUAGE "Portuguese" +!insertmacro MUI_LANGUAGE "PortugueseBR" +!insertmacro MUI_LANGUAGE "Polish" +!insertmacro MUI_LANGUAGE "Ukrainian" +!insertmacro MUI_LANGUAGE "Czech" +!insertmacro MUI_LANGUAGE "Slovak" +!insertmacro MUI_LANGUAGE "Croatian" +!insertmacro MUI_LANGUAGE "Bulgarian" +!insertmacro MUI_LANGUAGE "Hungarian" +!insertmacro MUI_LANGUAGE "Thai" +!insertmacro MUI_LANGUAGE "Romanian" +!insertmacro MUI_LANGUAGE "Latvian" +!insertmacro MUI_LANGUAGE "Macedonian" +!insertmacro MUI_LANGUAGE "Estonian" +!insertmacro MUI_LANGUAGE "Turkish" +!insertmacro MUI_LANGUAGE "Lithuanian" +!insertmacro MUI_LANGUAGE "Slovenian" +!insertmacro MUI_LANGUAGE "Serbian" +!insertmacro MUI_LANGUAGE "SerbianLatin" +!insertmacro MUI_LANGUAGE "Arabic" +!insertmacro MUI_LANGUAGE "Farsi" +!insertmacro MUI_LANGUAGE "Hebrew" +!insertmacro MUI_LANGUAGE "Indonesian" +!insertmacro MUI_LANGUAGE "Mongolian" +!insertmacro MUI_LANGUAGE "Luxembourgish" +!insertmacro MUI_LANGUAGE "Albanian" +!insertmacro MUI_LANGUAGE "Breton" +!insertmacro MUI_LANGUAGE "Belarusian" +!insertmacro MUI_LANGUAGE "Icelandic" +!insertmacro MUI_LANGUAGE "Malay" +!insertmacro MUI_LANGUAGE "Bosnian" +!insertmacro MUI_LANGUAGE "Kurdish" +!insertmacro MUI_LANGUAGE "Irish" +!insertmacro MUI_LANGUAGE "Uzbek" +!insertmacro MUI_LANGUAGE "Galician" +!insertmacro MUI_LANGUAGE "Afrikaans" +!insertmacro MUI_LANGUAGE "Catalan" + +!insertmacro MUI_RESERVEFILE_LANGDLL + +Section "Install" + SetOutPath "$INSTDIR" + + SetCompress Auto + SetOverwrite IfNewer + File /r "bin\*.*" + + WriteRegStr HKCU "Software\OpenSim" "" $INSTDIR + WriteUninstaller "$INSTDIR\Uninstall.exe" + + !insertmacro MUI_STARTMENU_WRITE_BEGIN Application + CreateDirectory "$SMPROGRAMS\$STARTMENU_FOLDER" + CreateShortCut "$SMPROGRAMS\$STARTMENU_FOLDER\OpenSim.lnk" "$INSTDIR\OpenSim.exe" + CreateShortCut "$SMPROGRAMS\$STARTMENU_FOLDER\Uninstall.lnk" "$INSTDIR\Uninstall.exe" + !insertmacro MUI_STARTMENU_WRITE_END + + WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\OpenSim" "DisplayName" "OpenSim (remove only)" + WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\OpenSim" "UninstallString" "$INSTDIR\Uninstall.exe" +SectionEnd + +Function .onInit + !insertmacro MUI_LANGDLL_DISPLAY +FunctionEnd + +Section "Uninstall" + Delete "$INSTDIR\*.*" + RMDir /r "$INSTDIR" + +!insertmacro MUI_STARTMENU_GETFOLDER Application $MUI_TEMP + + Delete "$SMPROGRAMS\$MUI_TEMP\OpenSim.lnk" + Delete "$SMPROGRAMS\$MUI_TEMP\Uninstall.lnk" + + ;Delete empty start menu parent diretories + StrCpy $MUI_TEMP "$SMPROGRAMS\$MUI_TEMP" + + startMenuDeleteLoop: + ClearErrors + RMDir $MUI_TEMP + GetFullPathName $MUI_TEMP "$MUI_TEMP\.." + + IfErrors startMenuDeleteLoopDone + + StrCmp $MUI_TEMP $SMPROGRAMS startMenuDeleteLoopDone startMenuDeleteLoop + startMenuDeleteLoopDone: + + DeleteRegKey /ifempty HKCU "Software\OpenSim" + DeleteRegKey HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\OpenSim" +SectionEnd + +Function un.onInit + !insertmacro MUI_UNGETLANGUAGE +FunctionEnd diff --git a/OpenSim/Tools/classaudit.pl b/OpenSim/Tools/classaudit.pl new file mode 100755 index 0000000..efe0069 --- /dev/null +++ b/OpenSim/Tools/classaudit.pl @@ -0,0 +1,133 @@ +#!/usr/bin/perl +# +# Audit tool for OpenSim class and namespace definitions. +# +# Copyright 2007 IBM +# +# Authors: Sean Dague +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# * Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# * Neither the name of the OpenSim Project nor the +# names of its contributors may be used to endorse or promote products +# derived from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY +# EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +# DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY +# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +use strict; +use File::Find; +use Data::Dumper; +use constant YELLOW => "\033[33m"; +use constant RED => "\033[31m"; +use constant CLEAR => "\033[0m"; +our %totals; + + +find(\&test, "../OpenSim"); +print Dumper(\%totals); + +sub test { + my $file = $File::Find::name; + my $dir = $File::Find::dir; + $file =~ s{^../}{}; #strip off prefix + $dir =~ s{^../}{}; #strip off prefix + + return if ($file !~ /\.cs$/); + return if ($file =~ /AssemblyInfo\.cs$/); + + print "Processing File: $file\n"; + + my $namespace = find_namespace($_); + my $class = find_class($_); + + + + if(cmp_namespace($namespace, $dir) == 1) { + $totals{goodns}++; + } else { + $totals{badns}++; + } + + + if(cmp_class($namespace, $class, $file) == 1) { + $totals{goodclass}++; + } else { + $totals{badclass}++; + } + print "\n"; +} + +sub find_class { + my $file = shift; + my $content = slurp($file); + if ($content =~ /\n\s*(public|private|protected)?\s*(class|interface)\s+(\S+)/) { + return $3; + } + return ""; +} + +sub find_namespace { + my $file = shift; + my $content = slurp($file); + + if ($content =~ /\bnamespace\s+(\S+)/s) { + return $1; + } + return ""; +} + +sub slurp { + my $file = shift; + local(*IN); + local $/ = undef; + + open(IN, "$file") or die "Can't open '$file': $!"; + my $content = ; + close(IN); + + return $content; +} + +sub cmp_class { + my ($ns, $class, $file) = @_; + $class = "$ns.$class"; + my $classtrans = $class; + $classtrans =~ s{\.}{/}g; + $classtrans .= ".cs"; + + if($classtrans ne $file) { + error(YELLOW, "CLASS: $class != $file"); + return -1; + } + return 1; +} + +sub cmp_namespace { + my ($ns, $dir) = @_; + my $nstrans = $ns; + $nstrans =~ s{\.}{/}g; + + if($nstrans ne $dir) { + error(RED, "NS: $ns != $dir"); + return -1; + } + return 1; +} + +sub error { + print @_, CLEAR, "\n"; +} -- cgit v1.1 From 49312de1c83bfc1ad01d7f42946e5243d3fc5685 Mon Sep 17 00:00:00 2001 From: Jeff Ames Date: Mon, 10 Dec 2007 04:54:02 +0000 Subject: totally gratuitous svn:eol-style setting --- OpenSim/Tools/Windows/Installer/LICENSE.txt | 50 ++++++++++++++--------------- 1 file changed, 25 insertions(+), 25 deletions(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/Windows/Installer/LICENSE.txt b/OpenSim/Tools/Windows/Installer/LICENSE.txt index 6ad7705..cba4a1c 100644 --- a/OpenSim/Tools/Windows/Installer/LICENSE.txt +++ b/OpenSim/Tools/Windows/Installer/LICENSE.txt @@ -1,25 +1,25 @@ -Copyright (c) Contributors, http://opensimulator.org/ -See CONTRIBUTORS.TXT for a full list of copyright holders. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - * Neither the name of the OpenSim Project nor the - names of its contributors may be used to endorse or promote products - derived from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY EXPRESS OR -IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY -DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE -GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER -IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR -OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF -ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +Copyright (c) Contributors, http://opensimulator.org/ +See CONTRIBUTORS.TXT for a full list of copyright holders. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + * Neither the name of the OpenSim Project nor the + names of its contributors may be used to endorse or promote products + derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY EXPRESS OR +IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY +DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE +GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR +OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- cgit v1.1 From af6eb67999875f12270ef19ed33c179556696754 Mon Sep 17 00:00:00 2001 From: Jeff Ames Date: Mon, 10 Dec 2007 05:25:16 +0000 Subject: saved OpenSim source code from the giant rampaging unterminated copyright notice of doom --- OpenSim/Tools/LaunchSLClient/LaunchSLClient/Form1.cs | 4 ++-- OpenSim/Tools/LaunchSLClient/LaunchSLClient/LauncherException.cs | 2 +- OpenSim/Tools/LaunchSLClient/LaunchSLClient/Program.cs | 4 ++-- OpenSim/Tools/Windows/Installer/LICENSE.txt | 2 +- OpenSim/Tools/classaudit.pl | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Form1.cs b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Form1.cs index f4d4ed1..70f8b87 100644 --- a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Form1.cs +++ b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Form1.cs @@ -13,7 +13,7 @@ * names of its contributors may be used to endorse or promote products * derived from this software without specific prior written permission. * -* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY +* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY @@ -201,4 +201,4 @@ namespace LaunchSLClient proc.WaitForExit(); } } -} \ No newline at end of file +} diff --git a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/LauncherException.cs b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/LauncherException.cs index edf079f..acfa421 100644 --- a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/LauncherException.cs +++ b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/LauncherException.cs @@ -13,7 +13,7 @@ * names of its contributors may be used to endorse or promote products * derived from this software without specific prior written permission. * -* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY +* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY diff --git a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Program.cs b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Program.cs index d3e56f9..0e77abe 100644 --- a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Program.cs +++ b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Program.cs @@ -13,7 +13,7 @@ * names of its contributors may be used to endorse or promote products * derived from this software without specific prior written permission. * -* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY +* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY @@ -54,4 +54,4 @@ namespace LaunchSLClient } } } -} \ No newline at end of file +} diff --git a/OpenSim/Tools/Windows/Installer/LICENSE.txt b/OpenSim/Tools/Windows/Installer/LICENSE.txt index cba4a1c..6d54d34 100644 --- a/OpenSim/Tools/Windows/Installer/LICENSE.txt +++ b/OpenSim/Tools/Windows/Installer/LICENSE.txt @@ -12,7 +12,7 @@ modification, are permitted provided that the following conditions are met: names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. -THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY EXPRESS OR +THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY diff --git a/OpenSim/Tools/classaudit.pl b/OpenSim/Tools/classaudit.pl index efe0069..9c92720 100755 --- a/OpenSim/Tools/classaudit.pl +++ b/OpenSim/Tools/classaudit.pl @@ -17,7 +17,7 @@ # names of its contributors may be used to endorse or promote products # derived from this software without specific prior written permission. # -# THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY +# THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY # EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED # WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE # DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY -- cgit v1.1 From 65a002fc3aeb013bdeb06dece833742b96d3d291 Mon Sep 17 00:00:00 2001 From: Sean Dague Date: Fri, 14 Dec 2007 16:29:06 +0000 Subject: stubbing in OpenSimExport program. This does nothing yet except compiles a shell --- OpenSim/Tools/Export/OpenSimExport.cs | 43 +++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 OpenSim/Tools/Export/OpenSimExport.cs (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/Export/OpenSimExport.cs b/OpenSim/Tools/Export/OpenSimExport.cs new file mode 100644 index 0000000..e5146a3 --- /dev/null +++ b/OpenSim/Tools/Export/OpenSimExport.cs @@ -0,0 +1,43 @@ +/* +* Copyright (c) Contributors, http://opensimulator.org/ +* See CONTRIBUTORS.TXT for a full list of copyright holders. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenSim Project nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +*/ +using System; +using Nini.Config; +using OpenSim.Framework; +using OpenSim.Framework.Console; + +namespace OpenSim.Tools.Export +{ + public class OpenSimExport + { + public static void Main(string[] args) + { + ArgvConfigSource configSource = new ArgvConfigSource(args); + System.Console.WriteLine("This application does nothing useful yet"); + } + } +} \ No newline at end of file -- cgit v1.1 From 7d53c736f6f41c236dc8b4cb23b9fbdccce80922 Mon Sep 17 00:00:00 2001 From: Sean Dague Date: Fri, 14 Dec 2007 17:51:18 +0000 Subject: start to pull in config for OpenSim export --- OpenSim/Tools/Export/OpenSimExport.cs | 55 ++++++++++++++++++++++++++++++++++- 1 file changed, 54 insertions(+), 1 deletion(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/Export/OpenSimExport.cs b/OpenSim/Tools/Export/OpenSimExport.cs index e5146a3..cdafbdb 100644 --- a/OpenSim/Tools/Export/OpenSimExport.cs +++ b/OpenSim/Tools/Export/OpenSimExport.cs @@ -26,18 +26,71 @@ * */ using System; +using System.IO; using Nini.Config; +using OpenSim; using OpenSim.Framework; using OpenSim.Framework.Console; +using Mono.Addins; +using Mono.Addins.Description; namespace OpenSim.Tools.Export { public class OpenSimExport { + private IniConfigSource config; + + public OpenSimExport(IniConfigSource config) + { + this.config = config; + } + public static void Main(string[] args) { - ArgvConfigSource configSource = new ArgvConfigSource(args); + OpenSimExport export = new OpenSimExport(InitConfig(args)); + System.Console.WriteLine("This application does nothing useful yet"); } + + private static IniConfigSource InitConfig(string[] args) + { + System.Console.WriteLine("Good"); + ArgvConfigSource configSource = new ArgvConfigSource(args); + configSource.AddSwitch("Startup", "inifile"); + +// AddinManager.Initialize("."); +// AddinManager.Registry.Update(null); + + IConfig startupConfig = configSource.Configs["Startup"]; + string iniFilePath = startupConfig.GetString("inifile", "OpenSim.ini"); + + IniConfigSource config = new IniConfigSource(); + //check for .INI file (either default or name passed in command line) + if (File.Exists(iniFilePath)) + { + config.Merge(new IniConfigSource(iniFilePath)); + config.Merge(configSource); + } + else + { + iniFilePath = Path.Combine(Util.configDir(), iniFilePath); + if (File.Exists(iniFilePath)) + { + config.Merge(new IniConfigSource(iniFilePath)); + config.Merge(configSource); + } + else + { + // no default config files, so set default values, and save it + // SetDefaultConfig(); + config.Merge(OpenSim.OpenSimMain.DefaultConfig()); + config.Merge(configSource); + } + } + + // ReadConfigSettings(); + + return config; + } } } \ No newline at end of file -- cgit v1.1 From a5a408c444fbbb849cd4ba409638b8867616dea7 Mon Sep 17 00:00:00 2001 From: Sean Dague Date: Fri, 14 Dec 2007 18:01:51 +0000 Subject: pluging away, setting up storage manager --- OpenSim/Tools/Export/OpenSimExport.cs | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/Export/OpenSimExport.cs b/OpenSim/Tools/Export/OpenSimExport.cs index cdafbdb..03eb123 100644 --- a/OpenSim/Tools/Export/OpenSimExport.cs +++ b/OpenSim/Tools/Export/OpenSimExport.cs @@ -31,6 +31,7 @@ using Nini.Config; using OpenSim; using OpenSim.Framework; using OpenSim.Framework.Console; +using OpenSim.Region.Environment; using Mono.Addins; using Mono.Addins.Description; @@ -39,10 +40,17 @@ namespace OpenSim.Tools.Export public class OpenSimExport { private IniConfigSource config; + private StorageManager sman; public OpenSimExport(IniConfigSource config) { this.config = config; + IConfig startup = config.Configs["Startup"]; + sman = new StorageManager( + startup.GetString("storage_plugin", "OpenSim.DataStore.NullStorage.dll"), + startup.GetString("storage_connection_string","") + ); + } public static void Main(string[] args) @@ -52,6 +60,8 @@ namespace OpenSim.Tools.Export System.Console.WriteLine("This application does nothing useful yet"); } + + private static IniConfigSource InitConfig(string[] args) { System.Console.WriteLine("Good"); -- cgit v1.1 From a7320acac12d9a52e70eb890b76d8423d717f040 Mon Sep 17 00:00:00 2001 From: Sean Dague Date: Fri, 14 Dec 2007 22:37:51 +0000 Subject: update to OpenSimExport to test loading of a Region --- OpenSim/Tools/Export/OpenSimExport.cs | 29 ++++++++++++++++++++++------- 1 file changed, 22 insertions(+), 7 deletions(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/Export/OpenSimExport.cs b/OpenSim/Tools/Export/OpenSimExport.cs index 03eb123..85a9984 100644 --- a/OpenSim/Tools/Export/OpenSimExport.cs +++ b/OpenSim/Tools/Export/OpenSimExport.cs @@ -27,6 +27,7 @@ */ using System; using System.IO; +using System.Reflection; using Nini.Config; using OpenSim; using OpenSim.Framework; @@ -39,27 +40,44 @@ namespace OpenSim.Tools.Export { public class OpenSimExport { - private IniConfigSource config; + public IniConfigSource config; private StorageManager sman; public OpenSimExport(IniConfigSource config) { this.config = config; IConfig startup = config.Configs["Startup"]; - sman = new StorageManager( + // AddinManager.Initialize("."); + // AddinManager.Registry.Update(null); + + // TODO: this really sucks, but given the way we do + // logging in OpenSim, we need to establish a log up front + + MainLog.Instance = CreateLog(); + + this.sman = new StorageManager( startup.GetString("storage_plugin", "OpenSim.DataStore.NullStorage.dll"), startup.GetString("storage_connection_string","") ); - } public static void Main(string[] args) { OpenSimExport export = new OpenSimExport(InitConfig(args)); + RegionInfo reg = new RegionInfo("Sara Jane", "Regions/1000-1000.xml"); - System.Console.WriteLine("This application does nothing useful yet"); + System.Console.WriteLine("This application does nothing useful yet: " + reg.RegionID); } + protected LogBase CreateLog() + { + if (!Directory.Exists(Util.logDir())) + { + Directory.CreateDirectory(Util.logDir()); + } + + return new LogBase((Path.Combine(Util.logDir(), "export.log")), "Export", null, true); + } private static IniConfigSource InitConfig(string[] args) @@ -68,9 +86,6 @@ namespace OpenSim.Tools.Export ArgvConfigSource configSource = new ArgvConfigSource(args); configSource.AddSwitch("Startup", "inifile"); -// AddinManager.Initialize("."); -// AddinManager.Registry.Update(null); - IConfig startupConfig = configSource.Configs["Startup"]; string iniFilePath = startupConfig.GetString("inifile", "OpenSim.ini"); -- cgit v1.1 From 0047522859b9e08b15f58d8258ef23080b5cb644 Mon Sep 17 00:00:00 2001 From: Sean Dague Date: Sat, 15 Dec 2007 20:14:29 +0000 Subject: more dorking around with exporter. Still far from doing anything useful. --- OpenSim/Tools/Export/OpenSimExport.cs | 37 +++++++++++++++++------------------ 1 file changed, 18 insertions(+), 19 deletions(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/Export/OpenSimExport.cs b/OpenSim/Tools/Export/OpenSimExport.cs index 85a9984..b0764ff 100644 --- a/OpenSim/Tools/Export/OpenSimExport.cs +++ b/OpenSim/Tools/Export/OpenSimExport.cs @@ -33,6 +33,7 @@ using OpenSim; using OpenSim.Framework; using OpenSim.Framework.Console; using OpenSim.Region.Environment; +using OpenSim.Region.Environment.Scenes; using Mono.Addins; using Mono.Addins.Description; @@ -41,7 +42,7 @@ namespace OpenSim.Tools.Export public class OpenSimExport { public IniConfigSource config; - private StorageManager sman; + public StorageManager sman; public OpenSimExport(IniConfigSource config) { @@ -67,6 +68,10 @@ namespace OpenSim.Tools.Export RegionInfo reg = new RegionInfo("Sara Jane", "Regions/1000-1000.xml"); System.Console.WriteLine("This application does nothing useful yet: " + reg.RegionID); + foreach (SceneObjectGroup group in export.sman.DataStore.LoadObjects(reg.RegionID)) + { + System.Console.WriteLine("{0} -> {1}", reg.RegionID, group.UUID); + } } protected LogBase CreateLog() @@ -88,33 +93,27 @@ namespace OpenSim.Tools.Export IConfig startupConfig = configSource.Configs["Startup"]; string iniFilePath = startupConfig.GetString("inifile", "OpenSim.ini"); - + System.Console.WriteLine(iniFilePath); IniConfigSource config = new IniConfigSource(); //check for .INI file (either default or name passed in command line) - if (File.Exists(iniFilePath)) + if(! File.Exists(iniFilePath)) + { + iniFilePath = Path.Combine(Util.configDir(), iniFilePath); + } + + if(File.Exists(iniFilePath)) { config.Merge(new IniConfigSource(iniFilePath)); config.Merge(configSource); } else { - iniFilePath = Path.Combine(Util.configDir(), iniFilePath); - if (File.Exists(iniFilePath)) - { - config.Merge(new IniConfigSource(iniFilePath)); - config.Merge(configSource); - } - else - { - // no default config files, so set default values, and save it - // SetDefaultConfig(); - config.Merge(OpenSim.OpenSimMain.DefaultConfig()); - config.Merge(configSource); - } + // no default config files, so set default values, and save it + System.Console.WriteLine("We didn't find a config!"); + config.Merge(OpenSim.OpenSimMain.DefaultConfig()); + config.Merge(configSource); } - - // ReadConfigSettings(); - + return config; } } -- cgit v1.1 From a71050a2f834730ec841a9fbdb2e8ac43faa7792 Mon Sep 17 00:00:00 2001 From: Charles Krinke Date: Mon, 24 Dec 2007 05:20:27 +0000 Subject: Thank you kindly, CharlieO for this update to the GUI tool for: Adding a most all inclusive commandline switch and customizable path flags for ease of operation for server and client in one nifty window. on hitting of the start button, my 4 most used switches auto check (can be unchecked before run). Otherwise can select various other switches and add required data in entry fields. Or there is a raw cmd field that you can pass what ever you want after the exe. Great for setting and forgetting switches without having to use the cmd prompt and /or editing a shortcut. Tedious constant restarts of the client made easier. --- OpenSim/Tools/OpenSim.GUI/Main.Designer.cs | 1284 +++++++++++++++++++++++++--- OpenSim/Tools/OpenSim.GUI/Main.cs | 283 +++++- OpenSim/Tools/OpenSim.GUI/Main.resx | 17 +- 3 files changed, 1440 insertions(+), 144 deletions(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/OpenSim.GUI/Main.Designer.cs b/OpenSim/Tools/OpenSim.GUI/Main.Designer.cs index 798c6a3..d693b9a 100644 --- a/OpenSim/Tools/OpenSim.GUI/Main.Designer.cs +++ b/OpenSim/Tools/OpenSim.GUI/Main.Designer.cs @@ -56,40 +56,236 @@ namespace OpenSim.GUI /// private void InitializeComponent() { + this.components = new System.ComponentModel.Container(); + this.menuStrip1 = new System.Windows.Forms.MenuStrip(); + this.fileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.exitToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.timer1 = new System.Windows.Forms.Timer(this.components); + this.clientBox1 = new System.Windows.Forms.TextBox(); + this.btnStart = new System.Windows.Forms.Button(); + this.btnStop = new System.Windows.Forms.Button(); + this.rbGridRegionMode = new System.Windows.Forms.RadioButton(); + this.rbStandAloneMode = new System.Windows.Forms.RadioButton(); + this.rbGridServer = new System.Windows.Forms.RadioButton(); + this.Launch1 = new System.Windows.Forms.Button(); + this.gbLog = new System.Windows.Forms.GroupBox(); this.tabLogs = new System.Windows.Forms.TabControl(); this.tabMainLog = new System.Windows.Forms.TabPage(); this.txtMainLog = new System.Windows.Forms.TextBox(); this.tabRegionServer = new System.Windows.Forms.TabPage(); - this.label1 = new System.Windows.Forms.Label(); this.txtInputRegionServer = new OpenSim.GUI.InputTextBoxControl(); + this.label1 = new System.Windows.Forms.Label(); this.txtOpenSim = new System.Windows.Forms.TextBox(); this.tabUserServer = new System.Windows.Forms.TabPage(); - this.label2 = new System.Windows.Forms.Label(); this.txtInputUserServer = new OpenSim.GUI.InputTextBoxControl(); + this.label2 = new System.Windows.Forms.Label(); this.txtUserServer = new System.Windows.Forms.TextBox(); this.tabAssetServer = new System.Windows.Forms.TabPage(); - this.label3 = new System.Windows.Forms.Label(); this.txtInputAssetServer = new OpenSim.GUI.InputTextBoxControl(); + this.label3 = new System.Windows.Forms.Label(); this.txtAssetServer = new System.Windows.Forms.TextBox(); this.tabGridServer = new System.Windows.Forms.TabPage(); - this.label4 = new System.Windows.Forms.Label(); this.txtInputGridServer = new OpenSim.GUI.InputTextBoxControl(); + this.label4 = new System.Windows.Forms.Label(); this.txtGridServer = new System.Windows.Forms.TextBox(); - this.gbLog = new System.Windows.Forms.GroupBox(); - this.btnStart = new System.Windows.Forms.Button(); - this.btnStop = new System.Windows.Forms.Button(); - this.rbGridRegionMode = new System.Windows.Forms.RadioButton(); - this.rbStandAloneMode = new System.Windows.Forms.RadioButton(); - this.rbGridServer = new System.Windows.Forms.RadioButton(); + this.label5 = new System.Windows.Forms.Label(); + this.noProbe1 = new System.Windows.Forms.CheckBox(); + this.label6 = new System.Windows.Forms.Label(); + this.multiple1 = new System.Windows.Forms.CheckBox(); + this.label7 = new System.Windows.Forms.Label(); + this.noMultiple1 = new System.Windows.Forms.CheckBox(); + this.ignorepixeldepth1 = new System.Windows.Forms.CheckBox(); + this.nothread1 = new System.Windows.Forms.CheckBox(); + this.safe1 = new System.Windows.Forms.CheckBox(); + this.noconsole1 = new System.Windows.Forms.CheckBox(); + this.log1 = new System.Windows.Forms.CheckBox(); + this.helperuri1 = new System.Windows.Forms.CheckBox(); + this.autologin1 = new System.Windows.Forms.CheckBox(); + this.toolTip1 = new System.Windows.Forms.ToolTip(this.components); + this.dialog1 = new System.Windows.Forms.CheckBox(); + this.previous1 = new System.Windows.Forms.CheckBox(); + this.simple1 = new System.Windows.Forms.CheckBox(); + this.noinvlib1 = new System.Windows.Forms.CheckBox(); + this.debugst1 = new System.Windows.Forms.CheckBox(); + this.spanish1 = new System.Windows.Forms.CheckBox(); + this.korean1 = new System.Windows.Forms.CheckBox(); + this.local1 = new System.Windows.Forms.CheckBox(); + this.purge1 = new System.Windows.Forms.CheckBox(); + this.nofmod1 = new System.Windows.Forms.CheckBox(); + this.noaudio1 = new System.Windows.Forms.CheckBox(); + this.nosound1 = new System.Windows.Forms.CheckBox(); + this.url1 = new System.Windows.Forms.CheckBox(); + this.port1 = new System.Windows.Forms.CheckBox(); + this.simBox1 = new System.Windows.Forms.TextBox(); + this.portBox1 = new System.Windows.Forms.TextBox(); + this.user1 = new System.Windows.Forms.CheckBox(); + this.quitAfter1 = new System.Windows.Forms.CheckBox(); + this.techTag1 = new System.Windows.Forms.CheckBox(); + this.yield1 = new System.Windows.Forms.CheckBox(); + this.logfile1 = new System.Windows.Forms.CheckBox(); + this.settings1 = new System.Windows.Forms.CheckBox(); + this.outbw1 = new System.Windows.Forms.CheckBox(); + this.inbw1 = new System.Windows.Forms.CheckBox(); + this.drop1 = new System.Windows.Forms.CheckBox(); + this.dropBox1 = new System.Windows.Forms.TextBox(); + this.inbwBox1 = new System.Windows.Forms.TextBox(); + this.outbwBox1 = new System.Windows.Forms.TextBox(); + this.settingsBox1 = new System.Windows.Forms.TextBox(); + this.logfileBox1 = new System.Windows.Forms.TextBox(); + this.yieldBox1 = new System.Windows.Forms.TextBox(); + this.techtagBox1 = new System.Windows.Forms.TextBox(); + this.quitafterBox1 = new System.Windows.Forms.TextBox(); + this.comboBox1 = new System.Windows.Forms.ComboBox(); + this.loginuri1 = new System.Windows.Forms.CheckBox(); + this.loginuriBox1 = new System.Windows.Forms.TextBox(); + this.set1 = new System.Windows.Forms.CheckBox(); + this.setBox1 = new System.Windows.Forms.TextBox(); + this.errmask1 = new System.Windows.Forms.CheckBox(); + this.skin1 = new System.Windows.Forms.CheckBox(); + this.login1 = new System.Windows.Forms.CheckBox(); + this.errmaskBox1 = new System.Windows.Forms.TextBox(); + this.skinBox1 = new System.Windows.Forms.TextBox(); + this.firstBox1 = new System.Windows.Forms.TextBox(); + this.lastBox1 = new System.Windows.Forms.TextBox(); + this.noutc1 = new System.Windows.Forms.CheckBox(); + this.passBox1 = new System.Windows.Forms.TextBox(); + this.raw1 = new System.Windows.Forms.CheckBox(); + this.rawBox1 = new System.Windows.Forms.TextBox(); + this.clear1 = new System.Windows.Forms.Button(); + this.nataddress1 = new System.Windows.Forms.TextBox(); + this.label8 = new System.Windows.Forms.Label(); + this.label9 = new System.Windows.Forms.Label(); + this.exeBox1 = new System.Windows.Forms.TextBox(); + this.label10 = new System.Windows.Forms.Label(); + this.label11 = new System.Windows.Forms.Label(); + this.label12 = new System.Windows.Forms.Label(); + this.label13 = new System.Windows.Forms.Label(); + this.menuStrip1.SuspendLayout(); + this.gbLog.SuspendLayout(); this.tabLogs.SuspendLayout(); this.tabMainLog.SuspendLayout(); this.tabRegionServer.SuspendLayout(); this.tabUserServer.SuspendLayout(); this.tabAssetServer.SuspendLayout(); this.tabGridServer.SuspendLayout(); - this.gbLog.SuspendLayout(); this.SuspendLayout(); // + // menuStrip1 + // + this.menuStrip1.AutoSize = false; + this.menuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.fileToolStripMenuItem}); + this.menuStrip1.Location = new System.Drawing.Point(0, 0); + this.menuStrip1.Name = "menuStrip1"; + this.menuStrip1.Size = new System.Drawing.Size(900, 20); + this.menuStrip1.TabIndex = 7; + this.menuStrip1.Text = "menuStrip1"; + // + // fileToolStripMenuItem + // + this.fileToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.exitToolStripMenuItem}); + this.fileToolStripMenuItem.Name = "fileToolStripMenuItem"; + this.fileToolStripMenuItem.Size = new System.Drawing.Size(35, 16); + this.fileToolStripMenuItem.Text = "File"; + // + // exitToolStripMenuItem + // + this.exitToolStripMenuItem.Name = "exitToolStripMenuItem"; + this.exitToolStripMenuItem.Size = new System.Drawing.Size(130, 22); + this.exitToolStripMenuItem.Text = "Exit Cleanly"; + this.exitToolStripMenuItem.Click += new System.EventHandler(this.exitToolStripMenuItem_Click); + // + // timer1 + // + this.timer1.Enabled = true; + // + // clientBox1 + // + this.clientBox1.Location = new System.Drawing.Point(680, 27); + this.clientBox1.Name = "clientBox1"; + this.clientBox1.Size = new System.Drawing.Size(213, 20); + this.clientBox1.TabIndex = 8; + this.clientBox1.Text = "C://Secondlife//"; + // + // btnStart + // + this.btnStart.Location = new System.Drawing.Point(7, 366); + this.btnStart.Name = "btnStart"; + this.btnStart.Size = new System.Drawing.Size(80, 23); + this.btnStart.TabIndex = 2; + this.btnStart.Text = "Start"; + this.btnStart.UseVisualStyleBackColor = true; + this.btnStart.Click += new System.EventHandler(this.btnStart_Click); + // + // btnStop + // + this.btnStop.Location = new System.Drawing.Point(92, 366); + this.btnStop.Name = "btnStop"; + this.btnStop.Size = new System.Drawing.Size(80, 23); + this.btnStop.TabIndex = 3; + this.btnStop.Text = "Stop"; + this.btnStop.UseVisualStyleBackColor = true; + this.btnStop.Click += new System.EventHandler(this.btnStop_Click); + // + // rbGridRegionMode + // + this.rbGridRegionMode.AutoSize = true; + this.rbGridRegionMode.Location = new System.Drawing.Point(96, 27); + this.rbGridRegionMode.Name = "rbGridRegionMode"; + this.rbGridRegionMode.Size = new System.Drawing.Size(76, 17); + this.rbGridRegionMode.TabIndex = 4; + this.rbGridRegionMode.Text = "Grid region"; + this.rbGridRegionMode.UseVisualStyleBackColor = true; + this.rbGridRegionMode.CheckedChanged += new System.EventHandler(this.rbGridRegionMode_CheckedChanged); + // + // rbStandAloneMode + // + this.rbStandAloneMode.AutoSize = true; + this.rbStandAloneMode.Checked = true; + this.rbStandAloneMode.Location = new System.Drawing.Point(8, 27); + this.rbStandAloneMode.Name = "rbStandAloneMode"; + this.rbStandAloneMode.Size = new System.Drawing.Size(82, 17); + this.rbStandAloneMode.TabIndex = 5; + this.rbStandAloneMode.TabStop = true; + this.rbStandAloneMode.Text = "Stand alone"; + this.rbStandAloneMode.UseVisualStyleBackColor = true; + this.rbStandAloneMode.CheckedChanged += new System.EventHandler(this.rbStandAloneMode_CheckedChanged); + // + // rbGridServer + // + this.rbGridServer.AutoSize = true; + this.rbGridServer.Location = new System.Drawing.Point(178, 27); + this.rbGridServer.Name = "rbGridServer"; + this.rbGridServer.Size = new System.Drawing.Size(76, 17); + this.rbGridServer.TabIndex = 6; + this.rbGridServer.Text = "Grid server"; + this.rbGridServer.UseVisualStyleBackColor = true; + this.rbGridServer.CheckedChanged += new System.EventHandler(this.rbGridServer_CheckedChanged); + // + // Launch1 + // + this.Launch1.Location = new System.Drawing.Point(264, 366); + this.Launch1.Name = "Launch1"; + this.Launch1.Size = new System.Drawing.Size(80, 23); + this.Launch1.TabIndex = 9; + this.Launch1.Text = "Client Launch"; + this.Launch1.UseVisualStyleBackColor = true; + this.Launch1.Click += new System.EventHandler(this.Launch1_Click); + // + // gbLog + // + this.gbLog.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.gbLog.Controls.Add(this.tabLogs); + this.gbLog.Location = new System.Drawing.Point(8, 50); + this.gbLog.Name = "gbLog"; + this.gbLog.Size = new System.Drawing.Size(345, 310); + this.gbLog.TabIndex = 1; + this.gbLog.TabStop = false; + this.gbLog.Text = "Logs"; + // // tabLogs // this.tabLogs.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) @@ -103,7 +299,7 @@ namespace OpenSim.GUI this.tabLogs.Location = new System.Drawing.Point(6, 19); this.tabLogs.Name = "tabLogs"; this.tabLogs.SelectedIndex = 0; - this.tabLogs.Size = new System.Drawing.Size(562, 230); + this.tabLogs.Size = new System.Drawing.Size(333, 285); this.tabLogs.TabIndex = 0; // // tabMainLog @@ -111,7 +307,7 @@ namespace OpenSim.GUI this.tabMainLog.Controls.Add(this.txtMainLog); this.tabMainLog.Location = new System.Drawing.Point(4, 22); this.tabMainLog.Name = "tabMainLog"; - this.tabMainLog.Size = new System.Drawing.Size(554, 204); + this.tabMainLog.Size = new System.Drawing.Size(325, 259); this.tabMainLog.TabIndex = 4; this.tabMainLog.Text = "Main log"; this.tabMainLog.UseVisualStyleBackColor = true; @@ -121,257 +317,999 @@ namespace OpenSim.GUI this.txtMainLog.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); - this.txtMainLog.Location = new System.Drawing.Point(6, 5); + this.txtMainLog.Location = new System.Drawing.Point(0, 0); this.txtMainLog.Multiline = true; this.txtMainLog.Name = "txtMainLog"; this.txtMainLog.ScrollBars = System.Windows.Forms.ScrollBars.Vertical; - this.txtMainLog.Size = new System.Drawing.Size(542, 195); + this.txtMainLog.Size = new System.Drawing.Size(325, 259); this.txtMainLog.TabIndex = 1; // // tabRegionServer // - this.tabRegionServer.Controls.Add(this.label1); this.tabRegionServer.Controls.Add(this.txtInputRegionServer); + this.tabRegionServer.Controls.Add(this.label1); this.tabRegionServer.Controls.Add(this.txtOpenSim); this.tabRegionServer.Location = new System.Drawing.Point(4, 22); this.tabRegionServer.Name = "tabRegionServer"; this.tabRegionServer.Padding = new System.Windows.Forms.Padding(3); - this.tabRegionServer.Size = new System.Drawing.Size(554, 204); + this.tabRegionServer.Size = new System.Drawing.Size(325, 259); this.tabRegionServer.TabIndex = 0; this.tabRegionServer.Text = "Region server"; this.tabRegionServer.UseVisualStyleBackColor = true; // + // txtInputRegionServer + // + this.txtInputRegionServer.Location = new System.Drawing.Point(53, 239); + this.txtInputRegionServer.Name = "txtInputRegionServer"; + this.txtInputRegionServer.Size = new System.Drawing.Size(272, 20); + this.txtInputRegionServer.TabIndex = 5; + // // label1 // this.label1.AutoSize = true; - this.label1.Location = new System.Drawing.Point(6, 183); + this.label1.Location = new System.Drawing.Point(0, 242); this.label1.Name = "label1"; this.label1.Size = new System.Drawing.Size(57, 13); this.label1.TabIndex = 4; this.label1.Text = "Command:"; // - // txtInputRegionServer - // - this.txtInputRegionServer.Location = new System.Drawing.Point(69, 180); - this.txtInputRegionServer.Name = "txtInputRegionServer"; - this.txtInputRegionServer.Size = new System.Drawing.Size(479, 20); - this.txtInputRegionServer.TabIndex = 0; - // // txtOpenSim // this.txtOpenSim.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); - this.txtOpenSim.Location = new System.Drawing.Point(6, 6); + this.txtOpenSim.Location = new System.Drawing.Point(0, 0); this.txtOpenSim.Multiline = true; this.txtOpenSim.Name = "txtOpenSim"; this.txtOpenSim.ScrollBars = System.Windows.Forms.ScrollBars.Vertical; - this.txtOpenSim.Size = new System.Drawing.Size(542, 168); + this.txtOpenSim.Size = new System.Drawing.Size(325, 236); this.txtOpenSim.TabIndex = 0; // // tabUserServer // - this.tabUserServer.Controls.Add(this.label2); this.tabUserServer.Controls.Add(this.txtInputUserServer); + this.tabUserServer.Controls.Add(this.label2); this.tabUserServer.Controls.Add(this.txtUserServer); this.tabUserServer.Location = new System.Drawing.Point(4, 22); this.tabUserServer.Name = "tabUserServer"; this.tabUserServer.Padding = new System.Windows.Forms.Padding(3); - this.tabUserServer.Size = new System.Drawing.Size(554, 204); + this.tabUserServer.Size = new System.Drawing.Size(325, 259); this.tabUserServer.TabIndex = 1; this.tabUserServer.Text = "User server"; this.tabUserServer.UseVisualStyleBackColor = true; // + // txtInputUserServer + // + this.txtInputUserServer.Location = new System.Drawing.Point(53, 239); + this.txtInputUserServer.Name = "txtInputUserServer"; + this.txtInputUserServer.Size = new System.Drawing.Size(272, 20); + this.txtInputUserServer.TabIndex = 7; + // // label2 // this.label2.AutoSize = true; - this.label2.Location = new System.Drawing.Point(6, 181); + this.label2.Location = new System.Drawing.Point(0, 242); this.label2.Name = "label2"; this.label2.Size = new System.Drawing.Size(57, 13); this.label2.TabIndex = 6; this.label2.Text = "Command:"; // - // txtInputUserServer - // - this.txtInputUserServer.Location = new System.Drawing.Point(69, 178); - this.txtInputUserServer.Name = "txtInputUserServer"; - this.txtInputUserServer.Size = new System.Drawing.Size(479, 20); - this.txtInputUserServer.TabIndex = 5; - // // txtUserServer // this.txtUserServer.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); - this.txtUserServer.Location = new System.Drawing.Point(6, 5); + this.txtUserServer.Location = new System.Drawing.Point(0, 0); this.txtUserServer.Multiline = true; this.txtUserServer.Name = "txtUserServer"; this.txtUserServer.ScrollBars = System.Windows.Forms.ScrollBars.Vertical; - this.txtUserServer.Size = new System.Drawing.Size(542, 168); + this.txtUserServer.Size = new System.Drawing.Size(325, 236); this.txtUserServer.TabIndex = 1; // // tabAssetServer // - this.tabAssetServer.Controls.Add(this.label3); this.tabAssetServer.Controls.Add(this.txtInputAssetServer); + this.tabAssetServer.Controls.Add(this.label3); this.tabAssetServer.Controls.Add(this.txtAssetServer); this.tabAssetServer.Location = new System.Drawing.Point(4, 22); this.tabAssetServer.Name = "tabAssetServer"; - this.tabAssetServer.Size = new System.Drawing.Size(554, 204); + this.tabAssetServer.Size = new System.Drawing.Size(325, 259); this.tabAssetServer.TabIndex = 2; this.tabAssetServer.Text = "Asset server"; this.tabAssetServer.UseVisualStyleBackColor = true; // + // txtInputAssetServer + // + this.txtInputAssetServer.Location = new System.Drawing.Point(53, 239); + this.txtInputAssetServer.Name = "txtInputAssetServer"; + this.txtInputAssetServer.Size = new System.Drawing.Size(272, 20); + this.txtInputAssetServer.TabIndex = 7; + // // label3 // this.label3.AutoSize = true; - this.label3.Location = new System.Drawing.Point(6, 182); + this.label3.Location = new System.Drawing.Point(0, 242); this.label3.Name = "label3"; this.label3.Size = new System.Drawing.Size(57, 13); this.label3.TabIndex = 6; this.label3.Text = "Command:"; // - // txtInputAssetServer - // - this.txtInputAssetServer.Location = new System.Drawing.Point(69, 179); - this.txtInputAssetServer.Name = "txtInputAssetServer"; - this.txtInputAssetServer.Size = new System.Drawing.Size(479, 20); - this.txtInputAssetServer.TabIndex = 5; - // // txtAssetServer // this.txtAssetServer.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); - this.txtAssetServer.Location = new System.Drawing.Point(6, 5); + this.txtAssetServer.Location = new System.Drawing.Point(0, 0); this.txtAssetServer.Multiline = true; this.txtAssetServer.Name = "txtAssetServer"; this.txtAssetServer.ScrollBars = System.Windows.Forms.ScrollBars.Vertical; - this.txtAssetServer.Size = new System.Drawing.Size(542, 168); + this.txtAssetServer.Size = new System.Drawing.Size(325, 236); this.txtAssetServer.TabIndex = 1; // // tabGridServer // - this.tabGridServer.Controls.Add(this.label4); this.tabGridServer.Controls.Add(this.txtInputGridServer); + this.tabGridServer.Controls.Add(this.label4); this.tabGridServer.Controls.Add(this.txtGridServer); this.tabGridServer.Location = new System.Drawing.Point(4, 22); this.tabGridServer.Name = "tabGridServer"; - this.tabGridServer.Size = new System.Drawing.Size(554, 204); + this.tabGridServer.Size = new System.Drawing.Size(325, 259); this.tabGridServer.TabIndex = 3; this.tabGridServer.Text = "Grid server"; this.tabGridServer.UseVisualStyleBackColor = true; // + // txtInputGridServer + // + this.txtInputGridServer.Location = new System.Drawing.Point(53, 239); + this.txtInputGridServer.Name = "txtInputGridServer"; + this.txtInputGridServer.Size = new System.Drawing.Size(272, 20); + this.txtInputGridServer.TabIndex = 7; + // // label4 // this.label4.AutoSize = true; - this.label4.Location = new System.Drawing.Point(6, 182); + this.label4.Location = new System.Drawing.Point(0, 242); this.label4.Name = "label4"; this.label4.Size = new System.Drawing.Size(57, 13); this.label4.TabIndex = 6; this.label4.Text = "Command:"; // - // txtInputGridServer - // - this.txtInputGridServer.Location = new System.Drawing.Point(69, 179); - this.txtInputGridServer.Name = "txtInputGridServer"; - this.txtInputGridServer.Size = new System.Drawing.Size(479, 20); - this.txtInputGridServer.TabIndex = 5; - // // txtGridServer // this.txtGridServer.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); - this.txtGridServer.Location = new System.Drawing.Point(6, 5); + this.txtGridServer.Location = new System.Drawing.Point(0, 0); this.txtGridServer.Multiline = true; this.txtGridServer.Name = "txtGridServer"; this.txtGridServer.ScrollBars = System.Windows.Forms.ScrollBars.Vertical; - this.txtGridServer.Size = new System.Drawing.Size(542, 168); + this.txtGridServer.Size = new System.Drawing.Size(325, 236); this.txtGridServer.TabIndex = 1; // - // gbLog + // label5 // - this.gbLog.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.gbLog.Controls.Add(this.tabLogs); - this.gbLog.Location = new System.Drawing.Point(2, 41); - this.gbLog.Name = "gbLog"; - this.gbLog.Size = new System.Drawing.Size(574, 255); - this.gbLog.TabIndex = 1; - this.gbLog.TabStop = false; - this.gbLog.Text = "Logs"; + this.label5.AutoSize = true; + this.label5.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, ((System.Drawing.FontStyle)((System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Underline))), System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label5.Location = new System.Drawing.Point(460, 55); + this.label5.Name = "label5"; + this.label5.Size = new System.Drawing.Size(205, 20); + this.label5.TabIndex = 11; + this.label5.Text = "Command Line Switches"; // - // btnStart + // noProbe1 // - this.btnStart.Location = new System.Drawing.Point(8, 12); - this.btnStart.Name = "btnStart"; - this.btnStart.Size = new System.Drawing.Size(75, 23); - this.btnStart.TabIndex = 2; - this.btnStart.Text = "Start"; - this.btnStart.UseVisualStyleBackColor = true; - this.btnStart.Click += new System.EventHandler(this.btnStart_Click); + this.noProbe1.AutoSize = true; + this.noProbe1.Location = new System.Drawing.Point(359, 275); + this.noProbe1.Name = "noProbe1"; + this.noProbe1.Size = new System.Drawing.Size(68, 17); + this.noProbe1.TabIndex = 12; + this.noProbe1.Text = "-noprobe"; + this.toolTip1.SetToolTip(this.noProbe1, "disable hardware probe"); + this.noProbe1.UseVisualStyleBackColor = true; // - // btnStop + // label6 // - this.btnStop.Location = new System.Drawing.Point(89, 12); - this.btnStop.Name = "btnStop"; - this.btnStop.Size = new System.Drawing.Size(75, 23); - this.btnStop.TabIndex = 3; - this.btnStop.Text = "Stop"; - this.btnStop.UseVisualStyleBackColor = true; - this.btnStop.Click += new System.EventHandler(this.btnStop_Click); + this.label6.AutoSize = true; + this.label6.Location = new System.Drawing.Point(8, 415); + this.label6.Name = "label6"; + this.label6.Size = new System.Drawing.Size(0, 13); + this.label6.TabIndex = 14; + this.label6.Click += new System.EventHandler(this.label6_Click); // - // rbGridRegionMode + // multiple1 // - this.rbGridRegionMode.AutoSize = true; - this.rbGridRegionMode.Location = new System.Drawing.Point(407, 18); - this.rbGridRegionMode.Name = "rbGridRegionMode"; - this.rbGridRegionMode.Size = new System.Drawing.Size(76, 17); - this.rbGridRegionMode.TabIndex = 4; - this.rbGridRegionMode.Text = "Grid region"; - this.rbGridRegionMode.UseVisualStyleBackColor = true; - this.rbGridRegionMode.CheckedChanged += new System.EventHandler(this.rbGridRegionMode_CheckedChanged); + this.multiple1.AutoSize = true; + this.multiple1.Location = new System.Drawing.Point(359, 185); + this.multiple1.Name = "multiple1"; + this.multiple1.Size = new System.Drawing.Size(64, 17); + this.multiple1.TabIndex = 15; + this.multiple1.Text = "-multiple"; + this.toolTip1.SetToolTip(this.multiple1, "allow multiple viewers"); + this.multiple1.UseVisualStyleBackColor = true; // - // rbStandAloneMode + // label7 // - this.rbStandAloneMode.AutoSize = true; - this.rbStandAloneMode.Checked = true; - this.rbStandAloneMode.Location = new System.Drawing.Point(319, 18); - this.rbStandAloneMode.Name = "rbStandAloneMode"; - this.rbStandAloneMode.Size = new System.Drawing.Size(82, 17); - this.rbStandAloneMode.TabIndex = 5; - this.rbStandAloneMode.TabStop = true; - this.rbStandAloneMode.Text = "Stand alone"; - this.rbStandAloneMode.UseVisualStyleBackColor = true; - this.rbStandAloneMode.CheckedChanged += new System.EventHandler(this.rbStandAloneMode_CheckedChanged); + this.label7.AutoSize = true; + this.label7.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, ((System.Drawing.FontStyle)((System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Underline))), System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label7.Location = new System.Drawing.Point(8, 396); + this.label7.Name = "label7"; + this.label7.Size = new System.Drawing.Size(338, 13); + this.label7.TabIndex = 16; + this.label7.Text = "Client Command Line String Used and Program Messages :"; // - // rbGridServer + // noMultiple1 // - this.rbGridServer.AutoSize = true; - this.rbGridServer.Location = new System.Drawing.Point(484, 18); - this.rbGridServer.Name = "rbGridServer"; - this.rbGridServer.Size = new System.Drawing.Size(76, 17); - this.rbGridServer.TabIndex = 6; - this.rbGridServer.Text = "Grid server"; - this.rbGridServer.UseVisualStyleBackColor = true; - this.rbGridServer.CheckedChanged += new System.EventHandler(this.rbGridServer_CheckedChanged); + this.noMultiple1.AutoSize = true; + this.noMultiple1.Location = new System.Drawing.Point(359, 260); + this.noMultiple1.Name = "noMultiple1"; + this.noMultiple1.Size = new System.Drawing.Size(76, 17); + this.noMultiple1.TabIndex = 17; + this.noMultiple1.Text = "-nomultiple"; + this.toolTip1.SetToolTip(this.noMultiple1, "block multiple viewers (secondlife.exe instances)"); + this.noMultiple1.UseVisualStyleBackColor = true; + // + // ignorepixeldepth1 + // + this.ignorepixeldepth1.AutoSize = true; + this.ignorepixeldepth1.Location = new System.Drawing.Point(359, 125); + this.ignorepixeldepth1.Name = "ignorepixeldepth1"; + this.ignorepixeldepth1.Size = new System.Drawing.Size(106, 17); + this.ignorepixeldepth1.TabIndex = 18; + this.ignorepixeldepth1.Text = "-ignorepixeldepth"; + this.toolTip1.SetToolTip(this.ignorepixeldepth1, "ignore pixel depth settings"); + this.ignorepixeldepth1.UseVisualStyleBackColor = true; + // + // nothread1 + // + this.nothread1.AutoSize = true; + this.nothread1.Location = new System.Drawing.Point(359, 305); + this.nothread1.Name = "nothread1"; + this.nothread1.Size = new System.Drawing.Size(71, 17); + this.nothread1.TabIndex = 19; + this.nothread1.Text = "-nothread"; + this.toolTip1.SetToolTip(this.nothread1, "run VFS (Virtual File System) in single thread"); + this.nothread1.UseVisualStyleBackColor = true; + // + // safe1 + // + this.safe1.AutoSize = true; + this.safe1.Location = new System.Drawing.Point(359, 365); + this.safe1.Name = "safe1"; + this.safe1.Size = new System.Drawing.Size(49, 17); + this.safe1.TabIndex = 20; + this.safe1.Text = "-safe"; + this.toolTip1.SetToolTip(this.safe1, "reset preferences, run in safe mode"); + this.safe1.UseVisualStyleBackColor = true; + // + // noconsole1 + // + this.noconsole1.AutoSize = true; + this.noconsole1.Location = new System.Drawing.Point(359, 215); + this.noconsole1.Name = "noconsole1"; + this.noconsole1.Size = new System.Drawing.Size(78, 17); + this.noconsole1.TabIndex = 21; + this.noconsole1.Text = "-noconsole"; + this.toolTip1.SetToolTip(this.noconsole1, "hide the console if not already hidden"); + this.noconsole1.UseVisualStyleBackColor = true; + // + // log1 + // + this.log1.AutoSize = true; + this.log1.Location = new System.Drawing.Point(359, 170); + this.log1.Name = "log1"; + this.log1.Size = new System.Drawing.Size(43, 17); + this.log1.TabIndex = 22; + this.log1.Text = "-log"; + this.toolTip1.SetToolTip(this.log1, "--no info avail--"); + this.log1.UseVisualStyleBackColor = true; + // + // helperuri1 + // + this.helperuri1.AutoSize = true; + this.helperuri1.Location = new System.Drawing.Point(359, 110); + this.helperuri1.Name = "helperuri1"; + this.helperuri1.Size = new System.Drawing.Size(69, 17); + this.helperuri1.TabIndex = 23; + this.helperuri1.Text = "-helperuri"; + this.toolTip1.SetToolTip(this.helperuri1, "--no info avail--"); + this.helperuri1.UseVisualStyleBackColor = true; + // + // autologin1 + // + this.autologin1.AutoSize = true; + this.autologin1.Location = new System.Drawing.Point(359, 65); + this.autologin1.Name = "autologin1"; + this.autologin1.Size = new System.Drawing.Size(75, 17); + this.autologin1.TabIndex = 24; + this.autologin1.Text = "--autologin"; + this.toolTip1.SetToolTip(this.autologin1, "--no info avail--"); + this.autologin1.UseVisualStyleBackColor = true; + // + // dialog1 + // + this.dialog1.AutoSize = true; + this.dialog1.Location = new System.Drawing.Point(359, 95); + this.dialog1.Name = "dialog1"; + this.dialog1.Size = new System.Drawing.Size(57, 17); + this.dialog1.TabIndex = 25; + this.dialog1.Text = "-dialog"; + this.toolTip1.SetToolTip(this.dialog1, "some arcane dialog box that is impossible to raise"); + this.dialog1.UseVisualStyleBackColor = true; + // + // previous1 + // + this.previous1.AutoSize = true; + this.previous1.Location = new System.Drawing.Point(359, 335); + this.previous1.Name = "previous1"; + this.previous1.Size = new System.Drawing.Size(69, 17); + this.previous1.TabIndex = 26; + this.previous1.Text = "-previous"; + this.toolTip1.SetToolTip(this.previous1, "--no info avail--"); + this.previous1.UseVisualStyleBackColor = true; + // + // simple1 + // + this.simple1.AutoSize = true; + this.simple1.Location = new System.Drawing.Point(359, 380); + this.simple1.Name = "simple1"; + this.simple1.Size = new System.Drawing.Size(58, 17); + this.simple1.TabIndex = 27; + this.simple1.Text = "-simple"; + this.toolTip1.SetToolTip(this.simple1, "--no info avail--"); + this.simple1.UseVisualStyleBackColor = true; + // + // noinvlib1 + // + this.noinvlib1.AutoSize = true; + this.noinvlib1.Location = new System.Drawing.Point(359, 245); + this.noinvlib1.Name = "noinvlib1"; + this.noinvlib1.Size = new System.Drawing.Size(65, 17); + this.noinvlib1.TabIndex = 28; + this.noinvlib1.Text = "-noinvlib"; + this.toolTip1.SetToolTip(this.noinvlib1, "do not request inventory library"); + this.noinvlib1.UseVisualStyleBackColor = true; + // + // debugst1 + // + this.debugst1.AutoSize = true; + this.debugst1.Location = new System.Drawing.Point(359, 80); + this.debugst1.Name = "debugst1"; + this.debugst1.Size = new System.Drawing.Size(67, 17); + this.debugst1.TabIndex = 30; + this.debugst1.Text = "-debugst"; + this.toolTip1.SetToolTip(this.debugst1, "debug mask"); + this.debugst1.UseVisualStyleBackColor = true; + // + // spanish1 + // + this.spanish1.AutoSize = true; + this.spanish1.Location = new System.Drawing.Point(359, 395); + this.spanish1.Name = "spanish1"; + this.spanish1.Size = new System.Drawing.Size(65, 17); + this.spanish1.TabIndex = 31; + this.spanish1.Text = "-spanish"; + this.toolTip1.SetToolTip(this.spanish1, "activate (incomplete) Spanish UI translation"); + this.spanish1.UseVisualStyleBackColor = true; + // + // korean1 + // + this.korean1.AutoSize = true; + this.korean1.Location = new System.Drawing.Point(359, 140); + this.korean1.Name = "korean1"; + this.korean1.Size = new System.Drawing.Size(62, 17); + this.korean1.TabIndex = 32; + this.korean1.Text = "-korean"; + this.toolTip1.SetToolTip(this.korean1, "activate (incomplete) Korean UI translation"); + this.korean1.UseVisualStyleBackColor = true; + // + // local1 + // + this.local1.AutoSize = true; + this.local1.Location = new System.Drawing.Point(359, 155); + this.local1.Name = "local1"; + this.local1.Size = new System.Drawing.Size(51, 17); + this.local1.TabIndex = 46; + this.local1.Text = "-local"; + this.toolTip1.SetToolTip(this.local1, "run without simulator"); + this.local1.UseVisualStyleBackColor = true; + // + // purge1 + // + this.purge1.AutoSize = true; + this.purge1.Location = new System.Drawing.Point(359, 350); + this.purge1.Name = "purge1"; + this.purge1.Size = new System.Drawing.Size(56, 17); + this.purge1.TabIndex = 56; + this.purge1.Text = "-purge"; + this.toolTip1.SetToolTip(this.purge1, "delete files in cache"); + this.purge1.UseVisualStyleBackColor = true; + // + // nofmod1 + // + this.nofmod1.AutoSize = true; + this.nofmod1.Location = new System.Drawing.Point(359, 230); + this.nofmod1.Name = "nofmod1"; + this.nofmod1.Size = new System.Drawing.Size(64, 17); + this.nofmod1.TabIndex = 45; + this.nofmod1.Text = "-nofmod"; + this.toolTip1.SetToolTip(this.nofmod1, "FMOD is the API used to distort sound while moving"); + this.nofmod1.UseVisualStyleBackColor = true; + // + // noaudio1 + // + this.noaudio1.AutoSize = true; + this.noaudio1.Location = new System.Drawing.Point(359, 200); + this.noaudio1.Name = "noaudio1"; + this.noaudio1.Size = new System.Drawing.Size(67, 17); + this.noaudio1.TabIndex = 44; + this.noaudio1.Text = "-noaudio"; + this.toolTip1.SetToolTip(this.noaudio1, "no audio, different from -nosound?"); + this.noaudio1.UseVisualStyleBackColor = true; + // + // nosound1 + // + this.nosound1.AutoSize = true; + this.nosound1.Location = new System.Drawing.Point(359, 290); + this.nosound1.Name = "nosound1"; + this.nosound1.Size = new System.Drawing.Size(70, 17); + this.nosound1.TabIndex = 55; + this.nosound1.Text = "-nosound"; + this.toolTip1.SetToolTip(this.nosound1, "no sound, different from -noaudio?"); + this.nosound1.UseVisualStyleBackColor = true; + // + // url1 + // + this.url1.AutoSize = true; + this.url1.Location = new System.Drawing.Point(488, 245); + this.url1.Name = "url1"; + this.url1.Size = new System.Drawing.Size(40, 17); + this.url1.TabIndex = 43; + this.url1.Text = "-url"; + this.toolTip1.SetToolTip(this.url1, "handles secondlife://sim/x/y/z URLs"); + this.url1.UseVisualStyleBackColor = true; + // + // port1 + // + this.port1.AutoSize = true; + this.port1.Location = new System.Drawing.Point(488, 171); + this.port1.Name = "port1"; + this.port1.Size = new System.Drawing.Size(47, 17); + this.port1.TabIndex = 49; + this.port1.Text = "-port"; + this.toolTip1.SetToolTip(this.port1, "Set the TCP port for the client; useful to run multiple instances of SL on the sa" + + "me local home network. Values that may work: 13000 and 13001 (Valid numbers are " + + "13000 to 13050)"); + this.port1.UseVisualStyleBackColor = true; + // + // simBox1 + // + this.simBox1.Location = new System.Drawing.Point(549, 243); + this.simBox1.Name = "simBox1"; + this.simBox1.Size = new System.Drawing.Size(344, 20); + this.simBox1.TabIndex = 66; + this.simBox1.Text = "secondlife://lutra/127/128/60"; + this.toolTip1.SetToolTip(this.simBox1, "type URL here"); + // + // portBox1 + // + this.portBox1.Location = new System.Drawing.Point(549, 169); + this.portBox1.Name = "portBox1"; + this.portBox1.Size = new System.Drawing.Size(58, 20); + this.portBox1.TabIndex = 67; + this.portBox1.Text = "13000"; + this.toolTip1.SetToolTip(this.portBox1, "enter port number here"); + // + // user1 + // + this.user1.AutoSize = true; + this.user1.Location = new System.Drawing.Point(488, 191); + this.user1.Name = "user1"; + this.user1.Size = new System.Drawing.Size(49, 17); + this.user1.TabIndex = 42; + this.user1.Text = "-user"; + this.user1.ThreeState = true; + this.toolTip1.SetToolTip(this.user1, "specify user server in dotted quad"); + this.user1.UseVisualStyleBackColor = true; + // + // quitAfter1 + // + this.quitAfter1.AutoSize = true; + this.quitAfter1.Location = new System.Drawing.Point(680, 65); + this.quitAfter1.Name = "quitAfter1"; + this.quitAfter1.Size = new System.Drawing.Size(67, 17); + this.quitAfter1.TabIndex = 41; + this.quitAfter1.Text = "-quitafter"; + this.toolTip1.SetToolTip(this.quitAfter1, "SL quits after elapsed time in seconds"); + this.quitAfter1.UseVisualStyleBackColor = true; + // + // techTag1 + // + this.techTag1.AutoSize = true; + this.techTag1.Location = new System.Drawing.Point(488, 211); + this.techTag1.Name = "techTag1"; + this.techTag1.Size = new System.Drawing.Size(65, 17); + this.techTag1.TabIndex = 47; + this.techTag1.Text = "-techtag"; + this.toolTip1.SetToolTip(this.techTag1, "unknown (but requires a parameter)"); + this.techTag1.UseVisualStyleBackColor = true; + // + // yield1 + // + this.yield1.AutoSize = true; + this.yield1.Location = new System.Drawing.Point(488, 91); + this.yield1.Name = "yield1"; + this.yield1.Size = new System.Drawing.Size(50, 17); + this.yield1.TabIndex = 48; + this.yield1.Text = "-yield"; + this.toolTip1.SetToolTip(this.yield1, "yield some idle time to local host (changed from - cooperative)"); + this.yield1.UseVisualStyleBackColor = true; + // + // logfile1 + // + this.logfile1.AutoSize = true; + this.logfile1.Location = new System.Drawing.Point(680, 125); + this.logfile1.Name = "logfile1"; + this.logfile1.Size = new System.Drawing.Size(56, 17); + this.logfile1.TabIndex = 54; + this.logfile1.Text = "-logfile"; + this.toolTip1.SetToolTip(this.logfile1, "change the log filename"); + this.logfile1.UseVisualStyleBackColor = true; + // + // settings1 + // + this.settings1.AutoSize = true; + this.settings1.Location = new System.Drawing.Point(680, 95); + this.settings1.Name = "settings1"; + this.settings1.Size = new System.Drawing.Size(65, 17); + this.settings1.TabIndex = 53; + this.settings1.Text = "-settings"; + this.toolTip1.SetToolTip(this.settings1, "specify configuration filename; default is \"settings.ini\""); + this.settings1.UseVisualStyleBackColor = true; + // + // outbw1 + // + this.outbw1.AutoSize = true; + this.outbw1.Location = new System.Drawing.Point(488, 111); + this.outbw1.Name = "outbw1"; + this.outbw1.Size = new System.Drawing.Size(58, 17); + this.outbw1.TabIndex = 52; + this.outbw1.Text = "-outbw"; + this.toolTip1.SetToolTip(this.outbw1, "set outgoing bandwidth"); + this.outbw1.UseVisualStyleBackColor = true; + // + // inbw1 + // + this.inbw1.AutoSize = true; + this.inbw1.Location = new System.Drawing.Point(488, 131); + this.inbw1.Name = "inbw1"; + this.inbw1.Size = new System.Drawing.Size(51, 17); + this.inbw1.TabIndex = 51; + this.inbw1.Text = "-inbw"; + this.toolTip1.SetToolTip(this.inbw1, "set incoming bandwidth"); + this.inbw1.UseVisualStyleBackColor = true; + // + // drop1 + // + this.drop1.AutoSize = true; + this.drop1.Location = new System.Drawing.Point(488, 151); + this.drop1.Name = "drop1"; + this.drop1.Size = new System.Drawing.Size(50, 17); + this.drop1.TabIndex = 50; + this.drop1.Text = "-drop"; + this.toolTip1.SetToolTip(this.drop1, "drop number% of incoming network packets"); + this.drop1.UseVisualStyleBackColor = true; + // + // dropBox1 + // + this.dropBox1.Location = new System.Drawing.Point(549, 149); + this.dropBox1.Name = "dropBox1"; + this.dropBox1.Size = new System.Drawing.Size(58, 20); + this.dropBox1.TabIndex = 68; + this.dropBox1.Text = "0"; + this.toolTip1.SetToolTip(this.dropBox1, "enter percent of packets to drop"); + // + // inbwBox1 + // + this.inbwBox1.Location = new System.Drawing.Point(549, 129); + this.inbwBox1.Name = "inbwBox1"; + this.inbwBox1.Size = new System.Drawing.Size(57, 20); + this.inbwBox1.TabIndex = 69; + this.toolTip1.SetToolTip(this.inbwBox1, "enter incoming cap"); + // + // outbwBox1 + // + this.outbwBox1.Location = new System.Drawing.Point(549, 109); + this.outbwBox1.Name = "outbwBox1"; + this.outbwBox1.Size = new System.Drawing.Size(58, 20); + this.outbwBox1.TabIndex = 70; + this.toolTip1.SetToolTip(this.outbwBox1, "enter outgoing cap"); + // + // settingsBox1 + // + this.settingsBox1.Location = new System.Drawing.Point(741, 93); + this.settingsBox1.Name = "settingsBox1"; + this.settingsBox1.Size = new System.Drawing.Size(152, 20); + this.settingsBox1.TabIndex = 71; + this.settingsBox1.Text = "settings.ini"; + this.toolTip1.SetToolTip(this.settingsBox1, "enter settings file name"); + // + // logfileBox1 + // + this.logfileBox1.Location = new System.Drawing.Point(733, 123); + this.logfileBox1.Name = "logfileBox1"; + this.logfileBox1.Size = new System.Drawing.Size(160, 20); + this.logfileBox1.TabIndex = 72; + this.logfileBox1.Text = "mylogfile.txt"; + this.toolTip1.SetToolTip(this.logfileBox1, "enter log file name here"); + // + // yieldBox1 + // + this.yieldBox1.Location = new System.Drawing.Point(549, 89); + this.yieldBox1.Name = "yieldBox1"; + this.yieldBox1.Size = new System.Drawing.Size(58, 20); + this.yieldBox1.TabIndex = 73; + this.toolTip1.SetToolTip(this.yieldBox1, "enter time to yield in "); + // + // techtagBox1 + // + this.techtagBox1.Location = new System.Drawing.Point(549, 209); + this.techtagBox1.Name = "techtagBox1"; + this.techtagBox1.Size = new System.Drawing.Size(58, 20); + this.techtagBox1.TabIndex = 74; + this.toolTip1.SetToolTip(this.techtagBox1, "enter unknown param here"); + // + // quitafterBox1 + // + this.quitafterBox1.Location = new System.Drawing.Point(745, 63); + this.quitafterBox1.Name = "quitafterBox1"; + this.quitafterBox1.Size = new System.Drawing.Size(148, 20); + this.quitafterBox1.TabIndex = 75; + this.toolTip1.SetToolTip(this.quitafterBox1, "enter time in seconds"); + // + // comboBox1 + // + this.comboBox1.FormattingEnabled = true; + this.comboBox1.Items.AddRange(new object[] { + "agni", + "colo", + "dmz", + "durga", + "siva"}); + this.comboBox1.Location = new System.Drawing.Point(549, 189); + this.comboBox1.Name = "comboBox1"; + this.comboBox1.Size = new System.Drawing.Size(58, 21); + this.comboBox1.TabIndex = 76; + this.comboBox1.Text = "agni"; + this.toolTip1.SetToolTip(this.comboBox1, "select LL user server"); + // + // loginuri1 + // + this.loginuri1.AutoSize = true; + this.loginuri1.Location = new System.Drawing.Point(488, 275); + this.loginuri1.Name = "loginuri1"; + this.loginuri1.Size = new System.Drawing.Size(62, 17); + this.loginuri1.TabIndex = 77; + this.loginuri1.Text = "-loginuri"; + this.toolTip1.SetToolTip(this.loginuri1, "login server and CGI script to use"); + this.loginuri1.UseVisualStyleBackColor = true; + // + // loginuriBox1 + // + this.loginuriBox1.Location = new System.Drawing.Point(549, 273); + this.loginuriBox1.Name = "loginuriBox1"; + this.loginuriBox1.Size = new System.Drawing.Size(344, 20); + this.loginuriBox1.TabIndex = 78; + this.loginuriBox1.Text = "localhost:9000"; + this.toolTip1.SetToolTip(this.loginuriBox1, "enter login url here"); + // + // set1 + // + this.set1.AutoSize = true; + this.set1.Location = new System.Drawing.Point(636, 185); + this.set1.Name = "set1"; + this.set1.Size = new System.Drawing.Size(43, 17); + this.set1.TabIndex = 79; + this.set1.Text = "-set"; + this.toolTip1.SetToolTip(this.set1, "specify value of a particular configuration variable; can be used multiple times " + + "in a single command-line"); + this.set1.UseVisualStyleBackColor = true; + // + // setBox1 + // + this.setBox1.Location = new System.Drawing.Point(680, 183); + this.setBox1.Name = "setBox1"; + this.setBox1.Size = new System.Drawing.Size(213, 20); + this.setBox1.TabIndex = 80; + this.setBox1.Text = "SystemLanguage en-us"; + this.toolTip1.SetToolTip(this.setBox1, "enter params"); + // + // errmask1 + // + this.errmask1.AutoSize = true; + this.errmask1.Location = new System.Drawing.Point(636, 154); + this.errmask1.Name = "errmask1"; + this.errmask1.Size = new System.Drawing.Size(66, 17); + this.errmask1.TabIndex = 81; + this.errmask1.Text = "-errmask"; + this.toolTip1.SetToolTip(this.errmask1, "32-bit bitmask for error type mask"); + this.errmask1.UseVisualStyleBackColor = true; + // + // skin1 + // + this.skin1.AutoSize = true; + this.skin1.Location = new System.Drawing.Point(635, 215); + this.skin1.Name = "skin1"; + this.skin1.Size = new System.Drawing.Size(48, 17); + this.skin1.TabIndex = 82; + this.skin1.Text = "-skin"; + this.toolTip1.SetToolTip(this.skin1, "load skins//skin.xml as the default UI appearance (incomplete)"); + this.skin1.UseVisualStyleBackColor = true; + // + // login1 + // + this.login1.AutoSize = true; + this.login1.Location = new System.Drawing.Point(457, 304); + this.login1.Name = "login1"; + this.login1.Size = new System.Drawing.Size(51, 17); + this.login1.TabIndex = 83; + this.login1.Text = "-login"; + this.toolTip1.SetToolTip(this.login1, "log in as a user"); + this.login1.UseVisualStyleBackColor = true; + // + // errmaskBox1 + // + this.errmaskBox1.Location = new System.Drawing.Point(704, 153); + this.errmaskBox1.Name = "errmaskBox1"; + this.errmaskBox1.Size = new System.Drawing.Size(189, 20); + this.errmaskBox1.TabIndex = 84; + this.toolTip1.SetToolTip(this.errmaskBox1, "32-bit bitmask for error type mask"); + // + // skinBox1 + // + this.skinBox1.Location = new System.Drawing.Point(679, 213); + this.skinBox1.Name = "skinBox1"; + this.skinBox1.Size = new System.Drawing.Size(214, 20); + this.skinBox1.TabIndex = 85; + this.skinBox1.Text = "C://Secondlife//"; + this.toolTip1.SetToolTip(this.skinBox1, "enter directory where skin.xml is"); + // + // firstBox1 + // + this.firstBox1.Location = new System.Drawing.Point(549, 303); + this.firstBox1.Name = "firstBox1"; + this.firstBox1.Size = new System.Drawing.Size(80, 20); + this.firstBox1.TabIndex = 86; + this.firstBox1.Text = "Test"; + this.toolTip1.SetToolTip(this.firstBox1, "firstname"); + // + // lastBox1 + // + this.lastBox1.Location = new System.Drawing.Point(668, 303); + this.lastBox1.Name = "lastBox1"; + this.lastBox1.Size = new System.Drawing.Size(80, 20); + this.lastBox1.TabIndex = 92; + this.lastBox1.Text = "User"; + this.toolTip1.SetToolTip(this.lastBox1, "lastname"); + // + // noutc1 + // + this.noutc1.AutoSize = true; + this.noutc1.Location = new System.Drawing.Point(359, 320); + this.noutc1.Name = "noutc1"; + this.noutc1.Size = new System.Drawing.Size(56, 17); + this.noutc1.TabIndex = 29; + this.noutc1.Text = "-noutc"; + this.toolTip1.SetToolTip(this.noutc1, "logs in local time, not UTC"); + this.noutc1.UseVisualStyleBackColor = true; + // + // passBox1 + // + this.passBox1.Location = new System.Drawing.Point(790, 303); + this.passBox1.Name = "passBox1"; + this.passBox1.Size = new System.Drawing.Size(103, 20); + this.passBox1.TabIndex = 93; + this.passBox1.Text = "test"; + this.toolTip1.SetToolTip(this.passBox1, "password"); + // + // raw1 + // + this.raw1.AutoSize = true; + this.raw1.Location = new System.Drawing.Point(457, 336); + this.raw1.Name = "raw1"; + this.raw1.Size = new System.Drawing.Size(81, 17); + this.raw1.TabIndex = 94; + this.raw1.Text = "Raw CMD :"; + this.toolTip1.SetToolTip(this.raw1, "Raw CMD options, may crash everything"); + this.raw1.UseVisualStyleBackColor = true; + // + // rawBox1 + // + this.rawBox1.Location = new System.Drawing.Point(549, 333); + this.rawBox1.Name = "rawBox1"; + this.rawBox1.Size = new System.Drawing.Size(344, 20); + this.rawBox1.TabIndex = 95; + this.toolTip1.SetToolTip(this.rawBox1, "Raw CMD options, may crash everything"); + // + // clear1 + // + this.clear1.Location = new System.Drawing.Point(178, 366); + this.clear1.Name = "clear1"; + this.clear1.Size = new System.Drawing.Size(80, 23); + this.clear1.TabIndex = 96; + this.clear1.Text = "Clear"; + this.toolTip1.SetToolTip(this.clear1, "clear all switch boxes"); + this.clear1.UseVisualStyleBackColor = true; + this.clear1.Click += new System.EventHandler(this.clear1_Click); + // + // nataddress1 + // + this.nataddress1.Location = new System.Drawing.Point(457, 389); + this.nataddress1.Name = "nataddress1"; + this.nataddress1.Size = new System.Drawing.Size(436, 20); + this.nataddress1.TabIndex = 58; + this.nataddress1.Text = "UNUSED ATM"; + this.nataddress1.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + // + // label8 + // + this.label8.AutoSize = true; + this.label8.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, ((System.Drawing.FontStyle)((System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Underline))), System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label8.Location = new System.Drawing.Point(588, 360); + this.label8.Name = "label8"; + this.label8.Size = new System.Drawing.Size(175, 20); + this.label8.TabIndex = 59; + this.label8.Text = "World/NAT Address :"; + // + // label9 + // + this.label9.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, ((System.Drawing.FontStyle)((System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Underline))), System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label9.Location = new System.Drawing.Point(633, 27); + this.label9.Name = "label9"; + this.label9.Size = new System.Drawing.Size(47, 20); + this.label9.TabIndex = 60; + this.label9.Text = "Path :"; + this.label9.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // exeBox1 + // + this.exeBox1.Location = new System.Drawing.Point(530, 27); + this.exeBox1.Name = "exeBox1"; + this.exeBox1.Size = new System.Drawing.Size(100, 20); + this.exeBox1.TabIndex = 61; + this.exeBox1.Text = "Secondlife.exe"; + // + // label10 + // + this.label10.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, ((System.Drawing.FontStyle)((System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Underline))), System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label10.Location = new System.Drawing.Point(392, 27); + this.label10.Name = "label10"; + this.label10.Size = new System.Drawing.Size(138, 20); + this.label10.TabIndex = 62; + this.label10.Text = "Executable Name :"; + this.label10.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // label11 + // + this.label11.AutoSize = true; + this.label11.Location = new System.Drawing.Point(514, 306); + this.label11.Name = "label11"; + this.label11.Size = new System.Drawing.Size(32, 13); + this.label11.TabIndex = 89; + this.label11.Text = "First :"; + // + // label12 + // + this.label12.AutoSize = true; + this.label12.Location = new System.Drawing.Point(632, 306); + this.label12.Name = "label12"; + this.label12.Size = new System.Drawing.Size(33, 13); + this.label12.TabIndex = 90; + this.label12.Text = "Last :"; + // + // label13 + // + this.label13.AutoSize = true; + this.label13.Location = new System.Drawing.Point(751, 306); + this.label13.Name = "label13"; + this.label13.Size = new System.Drawing.Size(36, 13); + this.label13.TabIndex = 91; + this.label13.Text = "Pass :"; // // Main // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(583, 299); + this.ClientSize = new System.Drawing.Size(900, 431); + this.Controls.Add(this.clear1); + this.Controls.Add(this.rawBox1); + this.Controls.Add(this.raw1); + this.Controls.Add(this.passBox1); + this.Controls.Add(this.lastBox1); + this.Controls.Add(this.label13); + this.Controls.Add(this.label12); + this.Controls.Add(this.label11); + this.Controls.Add(this.firstBox1); + this.Controls.Add(this.skinBox1); + this.Controls.Add(this.errmaskBox1); + this.Controls.Add(this.login1); + this.Controls.Add(this.skin1); + this.Controls.Add(this.errmask1); + this.Controls.Add(this.setBox1); + this.Controls.Add(this.set1); + this.Controls.Add(this.loginuriBox1); + this.Controls.Add(this.loginuri1); + this.Controls.Add(this.comboBox1); + this.Controls.Add(this.quitafterBox1); + this.Controls.Add(this.techtagBox1); + this.Controls.Add(this.yieldBox1); + this.Controls.Add(this.logfileBox1); + this.Controls.Add(this.settingsBox1); + this.Controls.Add(this.outbwBox1); + this.Controls.Add(this.inbwBox1); + this.Controls.Add(this.dropBox1); + this.Controls.Add(this.portBox1); + this.Controls.Add(this.simBox1); + this.Controls.Add(this.label10); + this.Controls.Add(this.exeBox1); + this.Controls.Add(this.label9); + this.Controls.Add(this.label8); + this.Controls.Add(this.nataddress1); + this.Controls.Add(this.purge1); + this.Controls.Add(this.nosound1); + this.Controls.Add(this.logfile1); + this.Controls.Add(this.settings1); + this.Controls.Add(this.outbw1); + this.Controls.Add(this.inbw1); + this.Controls.Add(this.drop1); + this.Controls.Add(this.port1); + this.Controls.Add(this.yield1); + this.Controls.Add(this.techTag1); + this.Controls.Add(this.local1); + this.Controls.Add(this.nofmod1); + this.Controls.Add(this.noaudio1); + this.Controls.Add(this.url1); + this.Controls.Add(this.user1); + this.Controls.Add(this.quitAfter1); + this.Controls.Add(this.korean1); + this.Controls.Add(this.spanish1); + this.Controls.Add(this.debugst1); + this.Controls.Add(this.noutc1); + this.Controls.Add(this.noinvlib1); + this.Controls.Add(this.simple1); + this.Controls.Add(this.previous1); + this.Controls.Add(this.dialog1); + this.Controls.Add(this.autologin1); + this.Controls.Add(this.helperuri1); + this.Controls.Add(this.log1); + this.Controls.Add(this.noconsole1); + this.Controls.Add(this.safe1); + this.Controls.Add(this.nothread1); + this.Controls.Add(this.ignorepixeldepth1); + this.Controls.Add(this.noMultiple1); + this.Controls.Add(this.label7); + this.Controls.Add(this.multiple1); + this.Controls.Add(this.label6); + this.Controls.Add(this.noProbe1); + this.Controls.Add(this.label5); + this.Controls.Add(this.Launch1); + this.Controls.Add(this.clientBox1); this.Controls.Add(this.rbGridServer); this.Controls.Add(this.rbStandAloneMode); this.Controls.Add(this.rbGridRegionMode); this.Controls.Add(this.btnStop); this.Controls.Add(this.btnStart); this.Controls.Add(this.gbLog); + this.Controls.Add(this.menuStrip1); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.Fixed3D; + this.MainMenuStrip = this.menuStrip1; + this.MaximizeBox = false; this.Name = "Main"; this.Text = "OpenSim"; + this.toolTip1.SetToolTip(this, "logs in local time, not UTC"); this.Load += new System.EventHandler(this.Main_Load); + this.menuStrip1.ResumeLayout(false); + this.menuStrip1.PerformLayout(); + this.gbLog.ResumeLayout(false); this.tabLogs.ResumeLayout(false); this.tabMainLog.ResumeLayout(false); this.tabMainLog.PerformLayout(); @@ -383,7 +1321,6 @@ namespace OpenSim.GUI this.tabAssetServer.PerformLayout(); this.tabGridServer.ResumeLayout(false); this.tabGridServer.PerformLayout(); - this.gbLog.ResumeLayout(false); this.ResumeLayout(false); this.PerformLayout(); @@ -391,32 +1328,109 @@ namespace OpenSim.GUI #endregion + private System.Windows.Forms.MenuStrip menuStrip1; + private System.Windows.Forms.ToolStripMenuItem fileToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem exitToolStripMenuItem; + private System.Windows.Forms.Timer timer1; + private System.Windows.Forms.TextBox clientBox1; + private System.Windows.Forms.Button btnStart; + private System.Windows.Forms.Button btnStop; + private System.Windows.Forms.RadioButton rbGridRegionMode; + private System.Windows.Forms.RadioButton rbStandAloneMode; + private System.Windows.Forms.RadioButton rbGridServer; + private System.Windows.Forms.Button Launch1; + private System.Windows.Forms.GroupBox gbLog; private System.Windows.Forms.TabControl tabLogs; + private System.Windows.Forms.TabPage tabMainLog; private System.Windows.Forms.TabPage tabRegionServer; - private System.Windows.Forms.TabPage tabUserServer; - private System.Windows.Forms.GroupBox gbLog; + private System.Windows.Forms.Label label1; private System.Windows.Forms.TextBox txtOpenSim; + private System.Windows.Forms.TabPage tabUserServer; + private System.Windows.Forms.Label label2; private System.Windows.Forms.TextBox txtUserServer; private System.Windows.Forms.TabPage tabAssetServer; + private System.Windows.Forms.Label label3; private System.Windows.Forms.TextBox txtAssetServer; private System.Windows.Forms.TabPage tabGridServer; + private System.Windows.Forms.Label label4; private System.Windows.Forms.TextBox txtGridServer; - private System.Windows.Forms.TabPage tabMainLog; - private System.Windows.Forms.Button btnStart; - private System.Windows.Forms.Button btnStop; private System.Windows.Forms.TextBox txtMainLog; - private System.Windows.Forms.Label label1; - private System.Windows.Forms.Label label2; - private System.Windows.Forms.Label label3; - private System.Windows.Forms.Label label4; - private InputTextBoxControl txtInputRegionServer; + private System.Windows.Forms.Label label5; + private System.Windows.Forms.CheckBox noProbe1; + private System.Windows.Forms.Label label6; + private System.Windows.Forms.CheckBox multiple1; + private System.Windows.Forms.Label label7; + private System.Windows.Forms.CheckBox noMultiple1; + private System.Windows.Forms.CheckBox ignorepixeldepth1; + private System.Windows.Forms.CheckBox nothread1; + private System.Windows.Forms.CheckBox safe1; + private System.Windows.Forms.CheckBox noconsole1; + private System.Windows.Forms.CheckBox log1; + private System.Windows.Forms.CheckBox helperuri1; + private System.Windows.Forms.CheckBox autologin1; + private System.Windows.Forms.ToolTip toolTip1; + private System.Windows.Forms.CheckBox dialog1; + private System.Windows.Forms.CheckBox previous1; + private System.Windows.Forms.CheckBox simple1; + private System.Windows.Forms.CheckBox noinvlib1; + private System.Windows.Forms.CheckBox noutc1; + private System.Windows.Forms.CheckBox debugst1; + private System.Windows.Forms.CheckBox spanish1; + private System.Windows.Forms.CheckBox korean1; + private System.Windows.Forms.CheckBox local1; + private System.Windows.Forms.CheckBox nofmod1; + private System.Windows.Forms.CheckBox noaudio1; + private System.Windows.Forms.CheckBox url1; + private System.Windows.Forms.CheckBox user1; + private System.Windows.Forms.CheckBox quitAfter1; + private System.Windows.Forms.CheckBox techTag1; + private System.Windows.Forms.CheckBox yield1; + private System.Windows.Forms.CheckBox purge1; + private System.Windows.Forms.CheckBox nosound1; + private System.Windows.Forms.CheckBox logfile1; + private System.Windows.Forms.CheckBox settings1; + private System.Windows.Forms.CheckBox outbw1; + private System.Windows.Forms.CheckBox inbw1; + private System.Windows.Forms.CheckBox drop1; + private System.Windows.Forms.CheckBox port1; + private System.Windows.Forms.TextBox nataddress1; + private System.Windows.Forms.Label label8; + private System.Windows.Forms.Label label9; + private System.Windows.Forms.TextBox exeBox1; + private System.Windows.Forms.Label label10; + private System.Windows.Forms.TextBox simBox1; + private System.Windows.Forms.TextBox portBox1; + private System.Windows.Forms.TextBox dropBox1; + private System.Windows.Forms.TextBox inbwBox1; + private System.Windows.Forms.TextBox outbwBox1; + private System.Windows.Forms.TextBox settingsBox1; + private System.Windows.Forms.TextBox logfileBox1; + private System.Windows.Forms.TextBox yieldBox1; + private System.Windows.Forms.TextBox techtagBox1; + private System.Windows.Forms.TextBox quitafterBox1; + private System.Windows.Forms.ComboBox comboBox1; + private System.Windows.Forms.CheckBox loginuri1; + private System.Windows.Forms.TextBox loginuriBox1; + private System.Windows.Forms.CheckBox set1; + private System.Windows.Forms.TextBox setBox1; + private System.Windows.Forms.CheckBox errmask1; + private System.Windows.Forms.CheckBox skin1; + private System.Windows.Forms.CheckBox login1; + private System.Windows.Forms.TextBox errmaskBox1; + private System.Windows.Forms.TextBox skinBox1; + private System.Windows.Forms.TextBox firstBox1; + private System.Windows.Forms.Label label11; + private System.Windows.Forms.Label label12; + private System.Windows.Forms.Label label13; + private System.Windows.Forms.TextBox lastBox1; + private System.Windows.Forms.TextBox passBox1; private InputTextBoxControl txtInputUserServer; private InputTextBoxControl txtInputAssetServer; + private InputTextBoxControl txtInputRegionServer; private InputTextBoxControl txtInputGridServer; - private System.Windows.Forms.RadioButton rbGridRegionMode; - private System.Windows.Forms.RadioButton rbStandAloneMode; - private System.Windows.Forms.RadioButton rbGridServer; + private System.Windows.Forms.CheckBox raw1; + private System.Windows.Forms.TextBox rawBox1; + private System.Windows.Forms.Button clear1; } } - diff --git a/OpenSim/Tools/OpenSim.GUI/Main.cs b/OpenSim/Tools/OpenSim.GUI/Main.cs index 7f76f54..24e7bae 100644 --- a/OpenSim/Tools/OpenSim.GUI/Main.cs +++ b/OpenSim/Tools/OpenSim.GUI/Main.cs @@ -120,7 +120,10 @@ namespace OpenSim.GUI private void btnStart_Click(object sender, EventArgs e) { - + noProbe1.Checked = true; + multiple1.Checked = true; + loginuri1.Checked = true; + login1.Checked = true; // // THIS PART NEEDS TO BE MOVED TO A SEPARATE THREAD OR A TIMER OF SOME SORT // should not block on wait @@ -200,34 +203,56 @@ namespace OpenSim.GUI { btnStart.Enabled = false; btnStop.Enabled = false; + Stop(); + btnStart.Enabled = true; + btnStop.Enabled = false; + } + + private void clear1_Click(object sender, EventArgs e) + { + noProbe1.Checked = false; multiple1.Checked = false; loginuri1.Checked = false; + noMultiple1.Checked = false; korean1.Checked = false; spanish1.Checked = false; + ignorepixeldepth1.Checked = false; nothread1.Checked = false; safe1.Checked = false; + noconsole1.Checked = false; log1.Checked = false; helperuri1.Checked = false; + autologin1.Checked = false; dialog1.Checked = false; previous1.Checked = false; + simple1.Checked = false; noinvlib1.Checked = false; noutc1.Checked = false; + debugst1.Checked = false; local1.Checked = false; purge1.Checked = false; + nofmod1.Checked = false; nosound1.Checked = false; noaudio1.Checked = false; + url1.Checked = false; port1.Checked = false; drop1.Checked = false; + inbw1.Checked = false; outbw1.Checked = false; settings1.Checked = false; + logfile1.Checked = false; yield1.Checked = false; techTag1.Checked = false; + quitAfter1.Checked = false; loginuri1.Checked = false; set1.Checked = false; + errmask1.Checked = false; raw1.Checked = false; skin1.Checked = false; + user1.Checked = false; login1.Checked = false; + } + private void Stop() + { if (proc_UserServer != null) { txtMainLog.AppendText("Shutting down UserServer. CPU time used: " + proc_UserServer.TotalProcessorTime.ToString() + "\r\n"); proc_UserServer.StopProcess(); + proc_UserServer = null; } if (proc_GridServer != null) { txtMainLog.AppendText("Shutting down GridServer. CPU time used: " + proc_GridServer.TotalProcessorTime.ToString() + "\r\n"); proc_GridServer.StopProcess(); + proc_GridServer = null; } if (proc_AssetServer != null) { txtMainLog.AppendText("Shutting down AssetServer. CPU time used: " + proc_AssetServer.TotalProcessorTime.ToString() + "\r\n"); proc_AssetServer.StopProcess(); + proc_AssetServer = null; } if (proc_OpenSim != null) { txtMainLog.AppendText("Shutting down OpenSim. CPU time used: " + proc_OpenSim.TotalProcessorTime.ToString() + "\r\n"); proc_OpenSim.StopProcess(); + proc_OpenSim = null; } - - btnStart.Enabled = true; - btnStop.Enabled = false; - - } - private void UpdateTabVisibility() { if (rbStandAloneMode.Checked) @@ -248,7 +273,6 @@ namespace OpenSim.GUI if (!tabLogs.TabPages.Contains(tabAssetServer)) tabLogs.TabPages.Add(tabAssetServer); } - } private void rbStandAloneMode_CheckedChanged(object sender, EventArgs e) @@ -266,5 +290,248 @@ namespace OpenSim.GUI UpdateTabVisibility(); } + private int counter; + + private void Exit() + { + counter = 0; + timer1.Interval = 600; + timer1.Enabled = true; + this.timer1.Tick += new System.EventHandler(this.timer1_Tick); + } + + private void timer1_Tick(object sender, System.EventArgs e) + { + if (counter >= 10) + { + timer1.Enabled = false; + counter = 0; + Application.Exit(); + } + else + { + counter = counter + 1; + } + } + + private void exitToolStripMenuItem_Click(object sender, EventArgs e) + { + if (proc_UserServer != null || proc_GridServer != null || proc_AssetServer != null || proc_OpenSim != null) + { + label6.Text = "Stopping server(s) and waiting to safely close.............."; + Stop(); + Exit(); + } + else + { + Application.Exit(); + } + } + /// + /// CLIENT SECTION + /// + string exeString; + string exeArgs; + string usrsvr; + string error = "Reconsider your commandline choices, you have opposing values selected!"; + + private void label6_Click(object sender, EventArgs e) + { + label6.Text = clientBox1.Text; + } + private void errorSwitches() + { + MessageBox.Show(error); + label6.Text = error; + } + bool exists; + private void Launch1_Click(object sender, EventArgs e) + { + if (exists = System.IO.File.Exists(clientBox1.Text + exeBox1.Text)) + { + executeClient(); + } + else + { + MessageBox.Show("FILE DOES NOT EXIST!!!"); + label6.Text = "FILE DOES NOT EXIST!!!"; + } + } + private void NATfix() + { + } + private void executeClient() + { + label6.Text = ""; + exeArgs = ""; + exeString = clientBox1.Text; + exeString = exeString += exeBox1.Text; + + if (multiple1.Checked == true && noMultiple1.Checked == true) errorSwitches(); + else if (korean1.Checked == true && spanish1.Checked == true) errorSwitches(); + else + { + if (noProbe1.Checked == true) exeArgs = exeArgs += " -noprobe"; + if (multiple1.Checked == true) exeArgs = exeArgs += " -multiple"; + if (noMultiple1.Checked == true) exeArgs = exeArgs += " -nomultiple"; + if (korean1.Checked == true) exeArgs = exeArgs += " -korean"; + if (spanish1.Checked == true) exeArgs = exeArgs += " -spanish"; + if (ignorepixeldepth1.Checked == true) exeArgs = exeArgs += " -ignorepixeldepth"; + if (nothread1.Checked == true) exeArgs = exeArgs += " -nothread"; + if (safe1.Checked == true) exeArgs = exeArgs += " -safe"; + if (noconsole1.Checked == true) exeArgs = exeArgs += " -noconsole"; + if (log1.Checked == true) exeArgs = exeArgs += " -log"; + if (helperuri1.Checked == true) exeArgs = exeArgs += " -helperuri"; + if (autologin1.Checked == true) exeArgs = exeArgs += " --autologin"; + if (dialog1.Checked == true) exeArgs = exeArgs += " -dialog"; + if (previous1.Checked == true) exeArgs = exeArgs += " -previous"; + if (simple1.Checked == true) exeArgs = exeArgs += " -simple"; + if (noinvlib1.Checked == true) exeArgs = exeArgs += " -noinvlib"; + if (noutc1.Checked == true) exeArgs = exeArgs += " -noutc"; + if (debugst1.Checked == true) exeArgs = exeArgs += " -debugst"; + if (local1.Checked == true) exeArgs = exeArgs += " -local"; + if (purge1.Checked == true) exeArgs = exeArgs += " -purge"; + if (nofmod1.Checked == true) exeArgs = exeArgs += " -nofmod"; + if (nosound1.Checked == true) exeArgs = exeArgs += " -nosound"; + if (noaudio1.Checked == true) exeArgs = exeArgs += " -noaudio"; + if (url1.Checked == true) + { + exeArgs = exeArgs += " -url "; + exeArgs = exeArgs += simBox1.Text; + } + if (port1.Checked == true) + { + int aPort; + aPort = Convert.ToInt32(portBox1.Text); + if (aPort > 13050) + { + portBox1.Text = "13050"; + MessageBox.Show("Enter Usable port number, defaulting to 13050."); + } + if(aPort < 13000) + { + portBox1.Text = "13000"; + MessageBox.Show("Enter Usable port number, defaulting to 13000."); + } + else + { + } + exeArgs = exeArgs += " -port "; + exeArgs = exeArgs += portBox1.Text; + } + if (drop1.Checked == true) + { + int aPct; + aPct = Convert.ToInt32(dropBox1.Text); + if (aPct > 100) + { + dropBox1.Text = "100"; + MessageBox.Show("Enter Usable port number, defaulting to 100."); + } + if (aPct < 0) + { + dropBox1.Text = "0"; + MessageBox.Show("Enter Usable port number, defaulting to 0."); + } + else + { + } + exeArgs = exeArgs += " -drop "; + exeArgs = exeArgs += dropBox1.Text; + } + if (inbw1.Checked == true) + { + exeArgs = exeArgs += " -inbw "; + exeArgs = exeArgs += inbwBox1.Text; + } + if (outbw1.Checked == true) + { + exeArgs = exeArgs += " -outbw "; + exeArgs = exeArgs += outbwBox1.Text; + } + if (settings1.Checked == true) + { + exeArgs = exeArgs += " -settings "; + exeArgs = exeArgs += settingsBox1.Text; + } + if (logfile1.Checked == true) + { + exeArgs = exeArgs += " -logfile "; + exeArgs = exeArgs += logfileBox1.Text; + } + if (yield1.Checked == true) + { + exeArgs = exeArgs += " -yield "; + exeArgs = exeArgs += yieldBox1.Text; + } + if (techTag1.Checked == true) + { + exeArgs = exeArgs += " -techtag "; + exeArgs = exeArgs += techtagBox1.Text; + } + if (quitAfter1.Checked == true) + { + exeArgs = exeArgs += " -quitafter "; + exeArgs = exeArgs += quitafterBox1.Text; + } + if (loginuri1.Checked == true) + { + exeArgs = exeArgs += " -loginuri "; + exeArgs = exeArgs += loginuriBox1.Text; + } + if (set1.Checked == true) + { + exeArgs = exeArgs += " -set "; + exeArgs = exeArgs += setBox1.Text; + } + if (errmask1.Checked == true) + { + exeArgs = exeArgs += " -errmask "; + exeArgs = exeArgs += errmaskBox1.Text; + } + if (raw1.Checked == true) + { + exeArgs = exeArgs += " " + rawBox1.Text; + } + if (skin1.Checked == true) + { + bool exists; + if (exists = System.IO.File.Exists(skinBox1.Text + "skin.xml")) + { + exeArgs = exeArgs += " -skin "; + exeArgs = exeArgs += skinBox1.Text + "skin.xml"; + } + else + { + MessageBox.Show("SKIN FILE DOES NOT EXIST AT SPECIFIED LOCATION!!!"); + skin1.Checked = false; + executeClient(); + } + } + if (user1.Checked == true) + { + //find actual login urls + if (comboBox1.Text == "agni") { usrsvr = " -user " + "--agni"; } + if (comboBox1.Text == "colo") { usrsvr = " -user " + "--colo"; } + if (comboBox1.Text == "dmz") { usrsvr = " -user " + "--dmz"; } + if (comboBox1.Text == "durga") { usrsvr = " -user " + "--Durga"; } + if (comboBox1.Text == "siva") { usrsvr = " -user " + "--siva"; } + exeArgs = exeArgs += usrsvr; + } + if (login1.Checked == true) + { + exeArgs = exeArgs += " -login "; + exeArgs = exeArgs += firstBox1.Text + " " + lastBox1.Text + " " + passBox1.Text; + } + label6.Text = exeString + exeArgs; + System.Diagnostics.Process proc = new System.Diagnostics.Process(); + proc.StartInfo.FileName = exeString; + proc.StartInfo.Arguments = exeArgs; + proc.StartInfo.UseShellExecute = false; + proc.StartInfo.RedirectStandardOutput = false; + proc.StartInfo.WorkingDirectory = clientBox1.Text; + proc.Start(); + } + } } } diff --git a/OpenSim/Tools/OpenSim.GUI/Main.resx b/OpenSim/Tools/OpenSim.GUI/Main.resx index ff31a6d..db8eb0a 100644 --- a/OpenSim/Tools/OpenSim.GUI/Main.resx +++ b/OpenSim/Tools/OpenSim.GUI/Main.resx @@ -117,4 +117,19 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - \ No newline at end of file + + 17, 17 + + + 126, 17 + + + 209, 17 + + + 209, 17 + + + 39 + + -- cgit v1.1 From 2fc11762aeac47081f67e5cb854982937c78ba4a Mon Sep 17 00:00:00 2001 From: Teravus Ovares Date: Wed, 26 Dec 2007 20:57:33 +0000 Subject: * Patch from Charlie0 to the OpenSim/Tools/OpenSim.GUI application to include the .sln file. --- OpenSim/Tools/OpenSim.GUI/OpenSim.GUI.sln | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 OpenSim/Tools/OpenSim.GUI/OpenSim.GUI.sln (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/OpenSim.GUI/OpenSim.GUI.sln b/OpenSim/Tools/OpenSim.GUI/OpenSim.GUI.sln new file mode 100644 index 0000000..6cdad46 --- /dev/null +++ b/OpenSim/Tools/OpenSim.GUI/OpenSim.GUI.sln @@ -0,0 +1,20 @@ +? +Microsoft Visual Studio Solution File, Format Version 9.00 +# Visual C# Express 2005 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OpenSim.GUI", "OpenSim.GUI.csproj", "{78AEEDD5-4DA8-4E05-8D53-F3C5476A0B97}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {78AEEDD5-4DA8-4E05-8D53-F3C5476A0B97}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {78AEEDD5-4DA8-4E05-8D53-F3C5476A0B97}.Debug|Any CPU.Build.0 = Debug|Any CPU + {78AEEDD5-4DA8-4E05-8D53-F3C5476A0B97}.Release|Any CPU.ActiveCfg = Release|Any CPU + {78AEEDD5-4DA8-4E05-8D53-F3C5476A0B97}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal -- cgit v1.1 From c7fc0dbeb7a88bae1617222f119cc13308c3ffd9 Mon Sep 17 00:00:00 2001 From: Teravus Ovares Date: Wed, 26 Dec 2007 21:06:51 +0000 Subject: * Patch from Charlie Omega for standard secondlife inventory folders: see mantis:0000246 * Deletes the solution file from OpenSim.Gui --- OpenSim/Tools/OpenSim.GUI/OpenSim.GUI.sln | 20 -------------------- 1 file changed, 20 deletions(-) delete mode 100644 OpenSim/Tools/OpenSim.GUI/OpenSim.GUI.sln (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/OpenSim.GUI/OpenSim.GUI.sln b/OpenSim/Tools/OpenSim.GUI/OpenSim.GUI.sln deleted file mode 100644 index 6cdad46..0000000 --- a/OpenSim/Tools/OpenSim.GUI/OpenSim.GUI.sln +++ /dev/null @@ -1,20 +0,0 @@ -? -Microsoft Visual Studio Solution File, Format Version 9.00 -# Visual C# Express 2005 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OpenSim.GUI", "OpenSim.GUI.csproj", "{78AEEDD5-4DA8-4E05-8D53-F3C5476A0B97}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {78AEEDD5-4DA8-4E05-8D53-F3C5476A0B97}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {78AEEDD5-4DA8-4E05-8D53-F3C5476A0B97}.Debug|Any CPU.Build.0 = Debug|Any CPU - {78AEEDD5-4DA8-4E05-8D53-F3C5476A0B97}.Release|Any CPU.ActiveCfg = Release|Any CPU - {78AEEDD5-4DA8-4E05-8D53-F3C5476A0B97}.Release|Any CPU.Build.0 = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal -- cgit v1.1 From efd90b56b761219af6425b1c7a2cdd3b6ffb4de2 Mon Sep 17 00:00:00 2001 From: lbsa71 Date: Thu, 27 Dec 2007 21:41:48 +0000 Subject: * Optimized usings * shortened references * Removed redundant 'this' * Normalized EOF --- OpenSim/Tools/Export/OpenSimExport.cs | 36 ++++++++++++++++------------------- 1 file changed, 16 insertions(+), 20 deletions(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/Export/OpenSimExport.cs b/OpenSim/Tools/Export/OpenSimExport.cs index b0764ff..4a5ba5d 100644 --- a/OpenSim/Tools/Export/OpenSimExport.cs +++ b/OpenSim/Tools/Export/OpenSimExport.cs @@ -27,15 +27,11 @@ */ using System; using System.IO; -using System.Reflection; using Nini.Config; -using OpenSim; using OpenSim.Framework; using OpenSim.Framework.Console; using OpenSim.Region.Environment; using OpenSim.Region.Environment.Scenes; -using Mono.Addins; -using Mono.Addins.Description; namespace OpenSim.Tools.Export { @@ -43,7 +39,7 @@ namespace OpenSim.Tools.Export { public IniConfigSource config; public StorageManager sman; - + public OpenSimExport(IniConfigSource config) { this.config = config; @@ -53,13 +49,13 @@ namespace OpenSim.Tools.Export // TODO: this really sucks, but given the way we do // logging in OpenSim, we need to establish a log up front - + MainLog.Instance = CreateLog(); - this.sman = new StorageManager( - startup.GetString("storage_plugin", "OpenSim.DataStore.NullStorage.dll"), - startup.GetString("storage_connection_string","") - ); + sman = new StorageManager( + startup.GetString("storage_plugin", "OpenSim.DataStore.NullStorage.dll"), + startup.GetString("storage_connection_string", "") + ); } public static void Main(string[] args) @@ -67,10 +63,10 @@ namespace OpenSim.Tools.Export OpenSimExport export = new OpenSimExport(InitConfig(args)); RegionInfo reg = new RegionInfo("Sara Jane", "Regions/1000-1000.xml"); - System.Console.WriteLine("This application does nothing useful yet: " + reg.RegionID); + Console.WriteLine("This application does nothing useful yet: " + reg.RegionID); foreach (SceneObjectGroup group in export.sman.DataStore.LoadObjects(reg.RegionID)) { - System.Console.WriteLine("{0} -> {1}", reg.RegionID, group.UUID); + Console.WriteLine("{0} -> {1}", reg.RegionID, group.UUID); } } @@ -83,25 +79,25 @@ namespace OpenSim.Tools.Export return new LogBase((Path.Combine(Util.logDir(), "export.log")), "Export", null, true); } - + private static IniConfigSource InitConfig(string[] args) { - System.Console.WriteLine("Good"); + Console.WriteLine("Good"); ArgvConfigSource configSource = new ArgvConfigSource(args); configSource.AddSwitch("Startup", "inifile"); IConfig startupConfig = configSource.Configs["Startup"]; string iniFilePath = startupConfig.GetString("inifile", "OpenSim.ini"); - System.Console.WriteLine(iniFilePath); + Console.WriteLine(iniFilePath); IniConfigSource config = new IniConfigSource(); //check for .INI file (either default or name passed in command line) - if(! File.Exists(iniFilePath)) + if (! File.Exists(iniFilePath)) { iniFilePath = Path.Combine(Util.configDir(), iniFilePath); } - - if(File.Exists(iniFilePath)) + + if (File.Exists(iniFilePath)) { config.Merge(new IniConfigSource(iniFilePath)); config.Merge(configSource); @@ -109,8 +105,8 @@ namespace OpenSim.Tools.Export else { // no default config files, so set default values, and save it - System.Console.WriteLine("We didn't find a config!"); - config.Merge(OpenSim.OpenSimMain.DefaultConfig()); + Console.WriteLine("We didn't find a config!"); + config.Merge(OpenSimMain.DefaultConfig()); config.Merge(configSource); } -- cgit v1.1 From 81b4c7be3e84b29e5fcc387f578afdc07b806048 Mon Sep 17 00:00:00 2001 From: mingchen Date: Fri, 4 Jan 2008 14:14:15 +0000 Subject: *Added ability to skip any use of the console when configuring and assume default value. This is useful when the server is running by itself and a new region request is added without sufficient information --- OpenSim/Tools/Export/OpenSimExport.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/Export/OpenSimExport.cs b/OpenSim/Tools/Export/OpenSimExport.cs index 4a5ba5d..765f6a2 100644 --- a/OpenSim/Tools/Export/OpenSimExport.cs +++ b/OpenSim/Tools/Export/OpenSimExport.cs @@ -61,7 +61,7 @@ namespace OpenSim.Tools.Export public static void Main(string[] args) { OpenSimExport export = new OpenSimExport(InitConfig(args)); - RegionInfo reg = new RegionInfo("Sara Jane", "Regions/1000-1000.xml"); + RegionInfo reg = new RegionInfo("Sara Jane", "Regions/1000-1000.xml",false); Console.WriteLine("This application does nothing useful yet: " + reg.RegionID); foreach (SceneObjectGroup group in export.sman.DataStore.LoadObjects(reg.RegionID)) -- cgit v1.1 From 82d7fb75227f30946e856aba3ec20e580532ebff Mon Sep 17 00:00:00 2001 From: Justin Clarke Casey Date: Fri, 11 Jan 2008 18:44:53 +0000 Subject: * Exprimental prim inventory persistence can now be enabled by users. * This can be turned on by setting storage_prim_inventories_experimental = True in OpenSim.ini * Implemented for sqlite and MySQL, no MSSQL implementation yet * As an experimental feature, there is no guarantee that this won't take down your region or that the db representation won't need to change. * More (and continuing) details at http://opensimulator.org/wiki/OpenSim:Prim_Inventory_Persistence --- OpenSim/Tools/Export/OpenSimExport.cs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/Export/OpenSimExport.cs b/OpenSim/Tools/Export/OpenSimExport.cs index 765f6a2..e260dc0 100644 --- a/OpenSim/Tools/Export/OpenSimExport.cs +++ b/OpenSim/Tools/Export/OpenSimExport.cs @@ -54,7 +54,8 @@ namespace OpenSim.Tools.Export sman = new StorageManager( startup.GetString("storage_plugin", "OpenSim.DataStore.NullStorage.dll"), - startup.GetString("storage_connection_string", "") + startup.GetString("storage_connection_string", ""), + false ); } @@ -113,4 +114,4 @@ namespace OpenSim.Tools.Export return config; } } -} \ No newline at end of file +} -- cgit v1.1 From b25f9f322cdbcde7fd8c043137bf07992e5ef318 Mon Sep 17 00:00:00 2001 From: Adam Frisby Date: Tue, 15 Jan 2008 02:09:55 +0000 Subject: * Mother of all commits: * Cleaned up copyright notices in AssemblyInfo.cs's * Added Copyright headers to a bunch of files missing them * Replaced several common string instances with a static constant to prevent reallocation of the same strings thousands of times. "" -> String.Empty is the first such candidate. --- OpenSim/Tools/Export/OpenSimExport.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/Export/OpenSimExport.cs b/OpenSim/Tools/Export/OpenSimExport.cs index e260dc0..8f4957c 100644 --- a/OpenSim/Tools/Export/OpenSimExport.cs +++ b/OpenSim/Tools/Export/OpenSimExport.cs @@ -54,7 +54,7 @@ namespace OpenSim.Tools.Export sman = new StorageManager( startup.GetString("storage_plugin", "OpenSim.DataStore.NullStorage.dll"), - startup.GetString("storage_connection_string", ""), + startup.GetString("storage_connection_string", String.Empty), false ); } -- cgit v1.1 From 20215c3d30fb55bf232bff1b3d6652d82e00b798 Mon Sep 17 00:00:00 2001 From: Jeff Ames Date: Sat, 26 Jan 2008 10:34:49 +0000 Subject: Rewrote svn properties handling script in python. Added more file types. --- OpenSim/Tools/OpenSim.GUI/Main.resx | 270 +++++++++--------- OpenSim/Tools/OpenSim.GUI/OpenSim.GUI.csproj | 186 ++++++------- .../Tools/OpenSim.GUI/Properties/Resources.resx | 232 ++++++++-------- .../Tools/OpenSim.GUI/Properties/Settings.settings | 14 +- OpenSim/Tools/OpenSim.GUI/frmConfiguration.resx | 256 ++++++++--------- OpenSim/Tools/Windows/Installer/OpenSim.nsi | 302 ++++++++++----------- 6 files changed, 630 insertions(+), 630 deletions(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/OpenSim.GUI/Main.resx b/OpenSim/Tools/OpenSim.GUI/Main.resx index db8eb0a..517179d 100644 --- a/OpenSim/Tools/OpenSim.GUI/Main.resx +++ b/OpenSim/Tools/OpenSim.GUI/Main.resx @@ -1,135 +1,135 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 17, 17 - - - 126, 17 - - - 209, 17 - - - 209, 17 - - - 39 - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + + 126, 17 + + + 209, 17 + + + 209, 17 + + + 39 + + diff --git a/OpenSim/Tools/OpenSim.GUI/OpenSim.GUI.csproj b/OpenSim/Tools/OpenSim.GUI/OpenSim.GUI.csproj index 7ac4290..e722fec 100644 --- a/OpenSim/Tools/OpenSim.GUI/OpenSim.GUI.csproj +++ b/OpenSim/Tools/OpenSim.GUI/OpenSim.GUI.csproj @@ -1,94 +1,94 @@ - - - Debug - AnyCPU - 8.0.50727 - 2.0 - {78AEEDD5-4DA8-4E05-8D53-F3C5476A0B97} - WinExe - Properties - OpenSim.GUI - OpenSim.GUI - - - true - full - false - ..\..\..\bin\ - DEBUG;TRACE - prompt - 4 - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - - - - - - - - - - Form - - - frmConfiguration.cs - - - Component - - - Form - - - Main.cs - - - Component - - - - - Designer - frmConfiguration.cs - - - Designer - Main.cs - - - ResXFileCodeGenerator - Resources.Designer.cs - Designer - - - True - Resources.resx - - - SettingsSingleFileGenerator - Settings.Designer.cs - - - True - Settings.settings - True - - - - + + + Debug + AnyCPU + 8.0.50727 + 2.0 + {78AEEDD5-4DA8-4E05-8D53-F3C5476A0B97} + WinExe + Properties + OpenSim.GUI + OpenSim.GUI + + + true + full + false + ..\..\..\bin\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + Form + + + frmConfiguration.cs + + + Component + + + Form + + + Main.cs + + + Component + + + + + Designer + frmConfiguration.cs + + + Designer + Main.cs + + + ResXFileCodeGenerator + Resources.Designer.cs + Designer + + + True + Resources.resx + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + True + Settings.settings + True + + + + \ No newline at end of file diff --git a/OpenSim/Tools/OpenSim.GUI/Properties/Resources.resx b/OpenSim/Tools/OpenSim.GUI/Properties/Resources.resx index ffecec8..af7dbeb 100644 --- a/OpenSim/Tools/OpenSim.GUI/Properties/Resources.resx +++ b/OpenSim/Tools/OpenSim.GUI/Properties/Resources.resx @@ -1,117 +1,117 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + \ No newline at end of file diff --git a/OpenSim/Tools/OpenSim.GUI/Properties/Settings.settings b/OpenSim/Tools/OpenSim.GUI/Properties/Settings.settings index abf36c5..3964565 100644 --- a/OpenSim/Tools/OpenSim.GUI/Properties/Settings.settings +++ b/OpenSim/Tools/OpenSim.GUI/Properties/Settings.settings @@ -1,7 +1,7 @@ - - - - - - - + + + + + + + diff --git a/OpenSim/Tools/OpenSim.GUI/frmConfiguration.resx b/OpenSim/Tools/OpenSim.GUI/frmConfiguration.resx index 2002e68..084547c 100644 --- a/OpenSim/Tools/OpenSim.GUI/frmConfiguration.resx +++ b/OpenSim/Tools/OpenSim.GUI/frmConfiguration.resx @@ -1,129 +1,129 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - What I want here: -* Region configuration add/disable/modify) -* OpenSim config: what physics/sql/scriptengine modules -* Configuration for each of the servers -* An option of what parts the server will run: "Stand Alone, Grid region, Grid Server, Custom" -Custom = you can enable/disable one or more services, for example if you only run AssetServer on this machine. -* User manager (add/remove/lockout/modify) -- maybe a separate form for this? - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + What I want here: +* Region configuration add/disable/modify) +* OpenSim config: what physics/sql/scriptengine modules +* Configuration for each of the servers +* An option of what parts the server will run: "Stand Alone, Grid region, Grid Server, Custom" +Custom = you can enable/disable one or more services, for example if you only run AssetServer on this machine. +* User manager (add/remove/lockout/modify) -- maybe a separate form for this? + \ No newline at end of file diff --git a/OpenSim/Tools/Windows/Installer/OpenSim.nsi b/OpenSim/Tools/Windows/Installer/OpenSim.nsi index d1df7ba..25f33d1 100644 --- a/OpenSim/Tools/Windows/Installer/OpenSim.nsi +++ b/OpenSim/Tools/Windows/Installer/OpenSim.nsi @@ -1,151 +1,151 @@ -!include "MUI.nsh" - -Name "OpenSim" -OutFile "OpenSim Setup 0.4.exe" - -CRCCheck On - -InstallDir "$PROGRAMFILES\OpenSim" -InstallDirRegKey HKCU "Software\OpenSim" "" - -;Vista redirects $SMPROGRAMS to all users without this -RequestExecutionLevel admin - -Var MUI_TEMP -Var STARTMENU_FOLDER - -!define MUI_LANGDLL_REGISTRY_ROOT "HKCU" -!define MUI_LANGDLL_REGISTRY_KEY "Software\OpenSim" -!define MUI_LANGDLL_REGISTRY_VALUENAME "Installer Language" - -!define MUI_ABORTWARNING - -!insertmacro MUI_PAGE_WELCOME -!insertmacro MUI_PAGE_LICENSE "LICENSE.txt" -!insertmacro MUI_PAGE_DIRECTORY - -!define MUI_STARTMENUPAGE_REGISTRY_ROOT "HKCU" -!define MUI_STARTMENUPAGE_REGISTRY_KEY "Software\OpenSim" -!define MUI_STARTMENUPAGE_REGISTRY_VALUENAME "Start Menu Folder" - -!insertmacro MUI_PAGE_STARTMENU Application $STARTMENU_FOLDER - -!insertmacro MUI_PAGE_INSTFILES -!insertmacro MUI_PAGE_FINISH - -!insertmacro MUI_UNPAGE_WELCOME -!insertmacro MUI_UNPAGE_CONFIRM -!insertmacro MUI_UNPAGE_INSTFILES -!insertmacro MUI_UNPAGE_FINISH - -!insertmacro MUI_LANGUAGE "English" -!insertmacro MUI_LANGUAGE "French" -!insertmacro MUI_LANGUAGE "German" -!insertmacro MUI_LANGUAGE "Spanish" -!insertmacro MUI_LANGUAGE "SpanishInternational" -!insertmacro MUI_LANGUAGE "SimpChinese" -!insertmacro MUI_LANGUAGE "TradChinese" -!insertmacro MUI_LANGUAGE "Japanese" -!insertmacro MUI_LANGUAGE "Korean" -!insertmacro MUI_LANGUAGE "Italian" -!insertmacro MUI_LANGUAGE "Dutch" -!insertmacro MUI_LANGUAGE "Danish" -!insertmacro MUI_LANGUAGE "Swedish" -!insertmacro MUI_LANGUAGE "Norwegian" -!insertmacro MUI_LANGUAGE "NorwegianNynorsk" -!insertmacro MUI_LANGUAGE "Finnish" -!insertmacro MUI_LANGUAGE "Greek" -!insertmacro MUI_LANGUAGE "Russian" -!insertmacro MUI_LANGUAGE "Portuguese" -!insertmacro MUI_LANGUAGE "PortugueseBR" -!insertmacro MUI_LANGUAGE "Polish" -!insertmacro MUI_LANGUAGE "Ukrainian" -!insertmacro MUI_LANGUAGE "Czech" -!insertmacro MUI_LANGUAGE "Slovak" -!insertmacro MUI_LANGUAGE "Croatian" -!insertmacro MUI_LANGUAGE "Bulgarian" -!insertmacro MUI_LANGUAGE "Hungarian" -!insertmacro MUI_LANGUAGE "Thai" -!insertmacro MUI_LANGUAGE "Romanian" -!insertmacro MUI_LANGUAGE "Latvian" -!insertmacro MUI_LANGUAGE "Macedonian" -!insertmacro MUI_LANGUAGE "Estonian" -!insertmacro MUI_LANGUAGE "Turkish" -!insertmacro MUI_LANGUAGE "Lithuanian" -!insertmacro MUI_LANGUAGE "Slovenian" -!insertmacro MUI_LANGUAGE "Serbian" -!insertmacro MUI_LANGUAGE "SerbianLatin" -!insertmacro MUI_LANGUAGE "Arabic" -!insertmacro MUI_LANGUAGE "Farsi" -!insertmacro MUI_LANGUAGE "Hebrew" -!insertmacro MUI_LANGUAGE "Indonesian" -!insertmacro MUI_LANGUAGE "Mongolian" -!insertmacro MUI_LANGUAGE "Luxembourgish" -!insertmacro MUI_LANGUAGE "Albanian" -!insertmacro MUI_LANGUAGE "Breton" -!insertmacro MUI_LANGUAGE "Belarusian" -!insertmacro MUI_LANGUAGE "Icelandic" -!insertmacro MUI_LANGUAGE "Malay" -!insertmacro MUI_LANGUAGE "Bosnian" -!insertmacro MUI_LANGUAGE "Kurdish" -!insertmacro MUI_LANGUAGE "Irish" -!insertmacro MUI_LANGUAGE "Uzbek" -!insertmacro MUI_LANGUAGE "Galician" -!insertmacro MUI_LANGUAGE "Afrikaans" -!insertmacro MUI_LANGUAGE "Catalan" - -!insertmacro MUI_RESERVEFILE_LANGDLL - -Section "Install" - SetOutPath "$INSTDIR" - - SetCompress Auto - SetOverwrite IfNewer - File /r "bin\*.*" - - WriteRegStr HKCU "Software\OpenSim" "" $INSTDIR - WriteUninstaller "$INSTDIR\Uninstall.exe" - - !insertmacro MUI_STARTMENU_WRITE_BEGIN Application - CreateDirectory "$SMPROGRAMS\$STARTMENU_FOLDER" - CreateShortCut "$SMPROGRAMS\$STARTMENU_FOLDER\OpenSim.lnk" "$INSTDIR\OpenSim.exe" - CreateShortCut "$SMPROGRAMS\$STARTMENU_FOLDER\Uninstall.lnk" "$INSTDIR\Uninstall.exe" - !insertmacro MUI_STARTMENU_WRITE_END - - WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\OpenSim" "DisplayName" "OpenSim (remove only)" - WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\OpenSim" "UninstallString" "$INSTDIR\Uninstall.exe" -SectionEnd - -Function .onInit - !insertmacro MUI_LANGDLL_DISPLAY -FunctionEnd - -Section "Uninstall" - Delete "$INSTDIR\*.*" - RMDir /r "$INSTDIR" - -!insertmacro MUI_STARTMENU_GETFOLDER Application $MUI_TEMP - - Delete "$SMPROGRAMS\$MUI_TEMP\OpenSim.lnk" - Delete "$SMPROGRAMS\$MUI_TEMP\Uninstall.lnk" - - ;Delete empty start menu parent diretories - StrCpy $MUI_TEMP "$SMPROGRAMS\$MUI_TEMP" - - startMenuDeleteLoop: - ClearErrors - RMDir $MUI_TEMP - GetFullPathName $MUI_TEMP "$MUI_TEMP\.." - - IfErrors startMenuDeleteLoopDone - - StrCmp $MUI_TEMP $SMPROGRAMS startMenuDeleteLoopDone startMenuDeleteLoop - startMenuDeleteLoopDone: - - DeleteRegKey /ifempty HKCU "Software\OpenSim" - DeleteRegKey HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\OpenSim" -SectionEnd - -Function un.onInit - !insertmacro MUI_UNGETLANGUAGE -FunctionEnd +!include "MUI.nsh" + +Name "OpenSim" +OutFile "OpenSim Setup 0.4.exe" + +CRCCheck On + +InstallDir "$PROGRAMFILES\OpenSim" +InstallDirRegKey HKCU "Software\OpenSim" "" + +;Vista redirects $SMPROGRAMS to all users without this +RequestExecutionLevel admin + +Var MUI_TEMP +Var STARTMENU_FOLDER + +!define MUI_LANGDLL_REGISTRY_ROOT "HKCU" +!define MUI_LANGDLL_REGISTRY_KEY "Software\OpenSim" +!define MUI_LANGDLL_REGISTRY_VALUENAME "Installer Language" + +!define MUI_ABORTWARNING + +!insertmacro MUI_PAGE_WELCOME +!insertmacro MUI_PAGE_LICENSE "LICENSE.txt" +!insertmacro MUI_PAGE_DIRECTORY + +!define MUI_STARTMENUPAGE_REGISTRY_ROOT "HKCU" +!define MUI_STARTMENUPAGE_REGISTRY_KEY "Software\OpenSim" +!define MUI_STARTMENUPAGE_REGISTRY_VALUENAME "Start Menu Folder" + +!insertmacro MUI_PAGE_STARTMENU Application $STARTMENU_FOLDER + +!insertmacro MUI_PAGE_INSTFILES +!insertmacro MUI_PAGE_FINISH + +!insertmacro MUI_UNPAGE_WELCOME +!insertmacro MUI_UNPAGE_CONFIRM +!insertmacro MUI_UNPAGE_INSTFILES +!insertmacro MUI_UNPAGE_FINISH + +!insertmacro MUI_LANGUAGE "English" +!insertmacro MUI_LANGUAGE "French" +!insertmacro MUI_LANGUAGE "German" +!insertmacro MUI_LANGUAGE "Spanish" +!insertmacro MUI_LANGUAGE "SpanishInternational" +!insertmacro MUI_LANGUAGE "SimpChinese" +!insertmacro MUI_LANGUAGE "TradChinese" +!insertmacro MUI_LANGUAGE "Japanese" +!insertmacro MUI_LANGUAGE "Korean" +!insertmacro MUI_LANGUAGE "Italian" +!insertmacro MUI_LANGUAGE "Dutch" +!insertmacro MUI_LANGUAGE "Danish" +!insertmacro MUI_LANGUAGE "Swedish" +!insertmacro MUI_LANGUAGE "Norwegian" +!insertmacro MUI_LANGUAGE "NorwegianNynorsk" +!insertmacro MUI_LANGUAGE "Finnish" +!insertmacro MUI_LANGUAGE "Greek" +!insertmacro MUI_LANGUAGE "Russian" +!insertmacro MUI_LANGUAGE "Portuguese" +!insertmacro MUI_LANGUAGE "PortugueseBR" +!insertmacro MUI_LANGUAGE "Polish" +!insertmacro MUI_LANGUAGE "Ukrainian" +!insertmacro MUI_LANGUAGE "Czech" +!insertmacro MUI_LANGUAGE "Slovak" +!insertmacro MUI_LANGUAGE "Croatian" +!insertmacro MUI_LANGUAGE "Bulgarian" +!insertmacro MUI_LANGUAGE "Hungarian" +!insertmacro MUI_LANGUAGE "Thai" +!insertmacro MUI_LANGUAGE "Romanian" +!insertmacro MUI_LANGUAGE "Latvian" +!insertmacro MUI_LANGUAGE "Macedonian" +!insertmacro MUI_LANGUAGE "Estonian" +!insertmacro MUI_LANGUAGE "Turkish" +!insertmacro MUI_LANGUAGE "Lithuanian" +!insertmacro MUI_LANGUAGE "Slovenian" +!insertmacro MUI_LANGUAGE "Serbian" +!insertmacro MUI_LANGUAGE "SerbianLatin" +!insertmacro MUI_LANGUAGE "Arabic" +!insertmacro MUI_LANGUAGE "Farsi" +!insertmacro MUI_LANGUAGE "Hebrew" +!insertmacro MUI_LANGUAGE "Indonesian" +!insertmacro MUI_LANGUAGE "Mongolian" +!insertmacro MUI_LANGUAGE "Luxembourgish" +!insertmacro MUI_LANGUAGE "Albanian" +!insertmacro MUI_LANGUAGE "Breton" +!insertmacro MUI_LANGUAGE "Belarusian" +!insertmacro MUI_LANGUAGE "Icelandic" +!insertmacro MUI_LANGUAGE "Malay" +!insertmacro MUI_LANGUAGE "Bosnian" +!insertmacro MUI_LANGUAGE "Kurdish" +!insertmacro MUI_LANGUAGE "Irish" +!insertmacro MUI_LANGUAGE "Uzbek" +!insertmacro MUI_LANGUAGE "Galician" +!insertmacro MUI_LANGUAGE "Afrikaans" +!insertmacro MUI_LANGUAGE "Catalan" + +!insertmacro MUI_RESERVEFILE_LANGDLL + +Section "Install" + SetOutPath "$INSTDIR" + + SetCompress Auto + SetOverwrite IfNewer + File /r "bin\*.*" + + WriteRegStr HKCU "Software\OpenSim" "" $INSTDIR + WriteUninstaller "$INSTDIR\Uninstall.exe" + + !insertmacro MUI_STARTMENU_WRITE_BEGIN Application + CreateDirectory "$SMPROGRAMS\$STARTMENU_FOLDER" + CreateShortCut "$SMPROGRAMS\$STARTMENU_FOLDER\OpenSim.lnk" "$INSTDIR\OpenSim.exe" + CreateShortCut "$SMPROGRAMS\$STARTMENU_FOLDER\Uninstall.lnk" "$INSTDIR\Uninstall.exe" + !insertmacro MUI_STARTMENU_WRITE_END + + WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\OpenSim" "DisplayName" "OpenSim (remove only)" + WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\OpenSim" "UninstallString" "$INSTDIR\Uninstall.exe" +SectionEnd + +Function .onInit + !insertmacro MUI_LANGDLL_DISPLAY +FunctionEnd + +Section "Uninstall" + Delete "$INSTDIR\*.*" + RMDir /r "$INSTDIR" + +!insertmacro MUI_STARTMENU_GETFOLDER Application $MUI_TEMP + + Delete "$SMPROGRAMS\$MUI_TEMP\OpenSim.lnk" + Delete "$SMPROGRAMS\$MUI_TEMP\Uninstall.lnk" + + ;Delete empty start menu parent diretories + StrCpy $MUI_TEMP "$SMPROGRAMS\$MUI_TEMP" + + startMenuDeleteLoop: + ClearErrors + RMDir $MUI_TEMP + GetFullPathName $MUI_TEMP "$MUI_TEMP\.." + + IfErrors startMenuDeleteLoopDone + + StrCmp $MUI_TEMP $SMPROGRAMS startMenuDeleteLoopDone startMenuDeleteLoop + startMenuDeleteLoopDone: + + DeleteRegKey /ifempty HKCU "Software\OpenSim" + DeleteRegKey HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\OpenSim" +SectionEnd + +Function un.onInit + !insertmacro MUI_UNGETLANGUAGE +FunctionEnd -- cgit v1.1 From a004ea5f1772e6e36efae29980f2d95a9efeb851 Mon Sep 17 00:00:00 2001 From: Tedd Hansen Date: Sat, 2 Feb 2008 05:03:28 +0000 Subject: Almost forgot to check in: OpenSim.32BitLaunch.exe is a 32-bit application that loads OpenSim.exe using .Net framework, hence it is JIT-compiled to 32-bit. Use this app to start OpenSim on 64-bit systems (works great on Vista 64 :)) --- .../OpenSim.32BitLaunch/OpenSim.32BitLaunch.csproj | 63 ++++++++++++++++++++++ OpenSim/Tools/OpenSim.32BitLaunch/Program.cs | 10 ++++ .../OpenSim.32BitLaunch/Properties/AssemblyInfo.cs | 36 +++++++++++++ 3 files changed, 109 insertions(+) create mode 100644 OpenSim/Tools/OpenSim.32BitLaunch/OpenSim.32BitLaunch.csproj create mode 100644 OpenSim/Tools/OpenSim.32BitLaunch/Program.cs create mode 100644 OpenSim/Tools/OpenSim.32BitLaunch/Properties/AssemblyInfo.cs (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/OpenSim.32BitLaunch/OpenSim.32BitLaunch.csproj b/OpenSim/Tools/OpenSim.32BitLaunch/OpenSim.32BitLaunch.csproj new file mode 100644 index 0000000..d5886e2 --- /dev/null +++ b/OpenSim/Tools/OpenSim.32BitLaunch/OpenSim.32BitLaunch.csproj @@ -0,0 +1,63 @@ + + + + Debug + AnyCPU + 9.0.21022 + 2.0 + {595D67F3-B413-4A43-8568-5B5930E3B31D} + Exe + Properties + OpenSim._32BitLaunch + OpenSim.32BitLaunch + v2.0 + 512 + + + true + full + false + ..\..\..\bin\ + DEBUG;TRACE + prompt + 4 + x86 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + 3.5 + + + 3.5 + + + + + + + + + + + {AC9EB8AB-0000-0000-0000-000000000000} + OpenSim + + + + + \ No newline at end of file diff --git a/OpenSim/Tools/OpenSim.32BitLaunch/Program.cs b/OpenSim/Tools/OpenSim.32BitLaunch/Program.cs new file mode 100644 index 0000000..ba2f461 --- /dev/null +++ b/OpenSim/Tools/OpenSim.32BitLaunch/Program.cs @@ -0,0 +1,10 @@ +namespace OpenSim._32BitLaunch +{ + class Program + { + static void Main(string[] args) + { + OpenSim.Application.Main(args); + } + } +} diff --git a/OpenSim/Tools/OpenSim.32BitLaunch/Properties/AssemblyInfo.cs b/OpenSim/Tools/OpenSim.32BitLaunch/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..cd83f3f --- /dev/null +++ b/OpenSim/Tools/OpenSim.32BitLaunch/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("OpenSim.32BitLaunch")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("Microsoft")] +[assembly: AssemblyProduct("OpenSim.32BitLaunch")] +[assembly: AssemblyCopyright("Copyright © Microsoft 2008")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("5072e919-46ab-47e6-8a63-08108324ccdf")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] -- cgit v1.1 From b1a6f4821b650acf5523d8d7114a8f5c122dedcb Mon Sep 17 00:00:00 2001 From: Jeff Ames Date: Sat, 2 Feb 2008 07:13:37 +0000 Subject: Updated svn properties. --- .../OpenSim.32BitLaunch/OpenSim.32BitLaunch.csproj | 124 ++++++++++----------- OpenSim/Tools/OpenSim.32BitLaunch/Program.cs | 20 ++-- .../OpenSim.32BitLaunch/Properties/AssemblyInfo.cs | 72 ++++++------ 3 files changed, 108 insertions(+), 108 deletions(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/OpenSim.32BitLaunch/OpenSim.32BitLaunch.csproj b/OpenSim/Tools/OpenSim.32BitLaunch/OpenSim.32BitLaunch.csproj index d5886e2..bfca5e4 100644 --- a/OpenSim/Tools/OpenSim.32BitLaunch/OpenSim.32BitLaunch.csproj +++ b/OpenSim/Tools/OpenSim.32BitLaunch/OpenSim.32BitLaunch.csproj @@ -1,63 +1,63 @@ - - - - Debug - AnyCPU - 9.0.21022 - 2.0 - {595D67F3-B413-4A43-8568-5B5930E3B31D} - Exe - Properties - OpenSim._32BitLaunch - OpenSim.32BitLaunch - v2.0 - 512 - - - true - full - false - ..\..\..\bin\ - DEBUG;TRACE - prompt - 4 - x86 - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - - - 3.5 - - - 3.5 - - - - - - - - - - - {AC9EB8AB-0000-0000-0000-000000000000} - OpenSim - - - - + + + + Debug + AnyCPU + 9.0.21022 + 2.0 + {595D67F3-B413-4A43-8568-5B5930E3B31D} + Exe + Properties + OpenSim._32BitLaunch + OpenSim.32BitLaunch + v2.0 + 512 + + + true + full + false + ..\..\..\bin\ + DEBUG;TRACE + prompt + 4 + x86 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + 3.5 + + + 3.5 + + + + + + + + + + + {AC9EB8AB-0000-0000-0000-000000000000} + OpenSim + + + + \ No newline at end of file diff --git a/OpenSim/Tools/OpenSim.32BitLaunch/Program.cs b/OpenSim/Tools/OpenSim.32BitLaunch/Program.cs index ba2f461..afd7754 100644 --- a/OpenSim/Tools/OpenSim.32BitLaunch/Program.cs +++ b/OpenSim/Tools/OpenSim.32BitLaunch/Program.cs @@ -1,10 +1,10 @@ -namespace OpenSim._32BitLaunch -{ - class Program - { - static void Main(string[] args) - { - OpenSim.Application.Main(args); - } - } -} +namespace OpenSim._32BitLaunch +{ + class Program + { + static void Main(string[] args) + { + OpenSim.Application.Main(args); + } + } +} diff --git a/OpenSim/Tools/OpenSim.32BitLaunch/Properties/AssemblyInfo.cs b/OpenSim/Tools/OpenSim.32BitLaunch/Properties/AssemblyInfo.cs index cd83f3f..8cf2d05 100644 --- a/OpenSim/Tools/OpenSim.32BitLaunch/Properties/AssemblyInfo.cs +++ b/OpenSim/Tools/OpenSim.32BitLaunch/Properties/AssemblyInfo.cs @@ -1,36 +1,36 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("OpenSim.32BitLaunch")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("Microsoft")] -[assembly: AssemblyProduct("OpenSim.32BitLaunch")] -[assembly: AssemblyCopyright("Copyright © Microsoft 2008")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("5072e919-46ab-47e6-8a63-08108324ccdf")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("OpenSim.32BitLaunch")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("Microsoft")] +[assembly: AssemblyProduct("OpenSim.32BitLaunch")] +[assembly: AssemblyCopyright("Copyright © Microsoft 2008")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("5072e919-46ab-47e6-8a63-08108324ccdf")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] -- cgit v1.1 From 785b641272f0e41c50d42406496baee10e5303a9 Mon Sep 17 00:00:00 2001 From: Tedd Hansen Date: Sat, 2 Feb 2008 07:53:13 +0000 Subject: fixed a timing bug in config re-read. Apparently there is 1000000000 ns in one second... --- OpenSim/Tools/OpenSim.32BitLaunch/Program.cs | 24 ++++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/OpenSim.32BitLaunch/Program.cs b/OpenSim/Tools/OpenSim.32BitLaunch/Program.cs index afd7754..c15b738 100644 --- a/OpenSim/Tools/OpenSim.32BitLaunch/Program.cs +++ b/OpenSim/Tools/OpenSim.32BitLaunch/Program.cs @@ -1,10 +1,30 @@ -namespace OpenSim._32BitLaunch +using System; + +namespace OpenSim._32BitLaunch { class Program { static void Main(string[] args) { - OpenSim.Application.Main(args); + System.Console.WriteLine("32-bit OpenSim executor"); + System.Console.WriteLine("-----------------------"); + System.Console.WriteLine(""); + System.Console.WriteLine("This application is compiled for 32-bit CPU and will run under WOW32 or similar."); + System.Console.WriteLine("All 64-bit incompatibilities should be gone."); + System.Console.WriteLine(""); + System.Threading.Thread.Sleep(300); + try + { + OpenSim.Application.Main(args); + } + catch (Exception ex) + { + System.Console.WriteLine("OpenSim threw an exception:"); + System.Console.WriteLine(ex.ToString()); + System.Console.WriteLine(""); + System.Console.WriteLine("Application will now terminate!"); + System.Console.WriteLine(""); + } } } } -- cgit v1.1 From 99844ee4c0b6f844c8f8be7488131e2cc72ea21e Mon Sep 17 00:00:00 2001 From: Jeff Ames Date: Tue, 5 Feb 2008 03:20:51 +0000 Subject: Added copyright statements. --- .../LaunchSLClient/Properties/AssemblyInfo.cs | 30 ++++++++++++++++++- OpenSim/Tools/OpenSim.32BitLaunch/Program.cs | 30 ++++++++++++++++++- .../OpenSim.32BitLaunch/Properties/AssemblyInfo.cs | 34 ++++++++++++++++++++-- .../Tools/OpenSim.GUI/Properties/AssemblyInfo.cs | 32 ++++++++++++++++++-- 4 files changed, 119 insertions(+), 7 deletions(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Properties/AssemblyInfo.cs b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Properties/AssemblyInfo.cs index 0c3e72e..87a4ac4 100644 --- a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Properties/AssemblyInfo.cs +++ b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Properties/AssemblyInfo.cs @@ -1,4 +1,32 @@ -using System.Reflection; +/* +* Copyright (c) Contributors, http://opensimulator.org/ +* See CONTRIBUTORS.TXT for a full list of copyright holders. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenSim Project nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +*/ + +using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; diff --git a/OpenSim/Tools/OpenSim.32BitLaunch/Program.cs b/OpenSim/Tools/OpenSim.32BitLaunch/Program.cs index c15b738..ba7af25 100644 --- a/OpenSim/Tools/OpenSim.32BitLaunch/Program.cs +++ b/OpenSim/Tools/OpenSim.32BitLaunch/Program.cs @@ -1,4 +1,32 @@ -using System; +/* +* Copyright (c) Contributors, http://opensimulator.org/ +* See CONTRIBUTORS.TXT for a full list of copyright holders. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenSim Project nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +*/ + +using System; namespace OpenSim._32BitLaunch { diff --git a/OpenSim/Tools/OpenSim.32BitLaunch/Properties/AssemblyInfo.cs b/OpenSim/Tools/OpenSim.32BitLaunch/Properties/AssemblyInfo.cs index 8cf2d05..31543f8 100644 --- a/OpenSim/Tools/OpenSim.32BitLaunch/Properties/AssemblyInfo.cs +++ b/OpenSim/Tools/OpenSim.32BitLaunch/Properties/AssemblyInfo.cs @@ -1,4 +1,32 @@ -using System.Reflection; +/* +* Copyright (c) Contributors, http://opensimulator.org/ +* See CONTRIBUTORS.TXT for a full list of copyright holders. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenSim Project nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +*/ + +using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; @@ -8,9 +36,9 @@ using System.Runtime.InteropServices; [assembly: AssemblyTitle("OpenSim.32BitLaunch")] [assembly: AssemblyDescription("")] [assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("Microsoft")] +[assembly: AssemblyCompany("")] [assembly: AssemblyProduct("OpenSim.32BitLaunch")] -[assembly: AssemblyCopyright("Copyright © Microsoft 2008")] +[assembly: AssemblyCopyright("Copyright © 2008")] [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] diff --git a/OpenSim/Tools/OpenSim.GUI/Properties/AssemblyInfo.cs b/OpenSim/Tools/OpenSim.GUI/Properties/AssemblyInfo.cs index adc2285..f579a3f 100644 --- a/OpenSim/Tools/OpenSim.GUI/Properties/AssemblyInfo.cs +++ b/OpenSim/Tools/OpenSim.GUI/Properties/AssemblyInfo.cs @@ -1,4 +1,32 @@ -using System.Reflection; +/* +* Copyright (c) Contributors, http://opensimulator.org/ +* See CONTRIBUTORS.TXT for a full list of copyright holders. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenSim Project nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +*/ + +using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; @@ -10,7 +38,7 @@ using System.Runtime.InteropServices; [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("")] [assembly: AssemblyProduct("OpenSim.GUI")] -[assembly: AssemblyCopyright("Copyright © 2007")] +[assembly: AssemblyCopyright("Copyright © 2007")] [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] -- cgit v1.1 From 6ed5283bc06a62f38eb517e67b975832b603bf61 Mon Sep 17 00:00:00 2001 From: Jeff Ames Date: Tue, 5 Feb 2008 19:44:27 +0000 Subject: Converted logging to use log4net. Changed LogBase to ConsoleBase, which handles console I/O. This is mostly an in-place conversion, so lots of refactoring can still be done. --- OpenSim/Tools/Export/OpenSimExport.cs | 17 +++++------------ OpenSim/Tools/OpenSim.32BitLaunch/Program.cs | 2 ++ 2 files changed, 7 insertions(+), 12 deletions(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/Export/OpenSimExport.cs b/OpenSim/Tools/Export/OpenSimExport.cs index 8f4957c..8eebe35 100644 --- a/OpenSim/Tools/Export/OpenSimExport.cs +++ b/OpenSim/Tools/Export/OpenSimExport.cs @@ -47,10 +47,7 @@ namespace OpenSim.Tools.Export // AddinManager.Initialize("."); // AddinManager.Registry.Update(null); - // TODO: this really sucks, but given the way we do - // logging in OpenSim, we need to establish a log up front - - MainLog.Instance = CreateLog(); + MainConsole.Instance = CreateConsole(); sman = new StorageManager( startup.GetString("storage_plugin", "OpenSim.DataStore.NullStorage.dll"), @@ -61,6 +58,8 @@ namespace OpenSim.Tools.Export public static void Main(string[] args) { + log4net.Config.XmlConfigurator.Configure(); + OpenSimExport export = new OpenSimExport(InitConfig(args)); RegionInfo reg = new RegionInfo("Sara Jane", "Regions/1000-1000.xml",false); @@ -71,17 +70,11 @@ namespace OpenSim.Tools.Export } } - protected LogBase CreateLog() + protected ConsoleBase CreateConsole() { - if (!Directory.Exists(Util.logDir())) - { - Directory.CreateDirectory(Util.logDir()); - } - - return new LogBase((Path.Combine(Util.logDir(), "export.log")), "Export", null, true); + return new ConsoleBase("Export", null); } - private static IniConfigSource InitConfig(string[] args) { Console.WriteLine("Good"); diff --git a/OpenSim/Tools/OpenSim.32BitLaunch/Program.cs b/OpenSim/Tools/OpenSim.32BitLaunch/Program.cs index ba7af25..78ba598 100644 --- a/OpenSim/Tools/OpenSim.32BitLaunch/Program.cs +++ b/OpenSim/Tools/OpenSim.32BitLaunch/Program.cs @@ -34,6 +34,8 @@ namespace OpenSim._32BitLaunch { static void Main(string[] args) { + log4net.Config.XmlConfigurator.Configure(); + System.Console.WriteLine("32-bit OpenSim executor"); System.Console.WriteLine("-----------------------"); System.Console.WriteLine(""); -- cgit v1.1 From 49622dfbc5619ea8ca09bd371934afb1bf723c18 Mon Sep 17 00:00:00 2001 From: Jeff Ames Date: Thu, 7 Feb 2008 04:41:08 +0000 Subject: Update version numbers to 0.5 --- OpenSim/Tools/Windows/Installer/OpenSim.nsi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/Windows/Installer/OpenSim.nsi b/OpenSim/Tools/Windows/Installer/OpenSim.nsi index 25f33d1..3c3fe81 100644 --- a/OpenSim/Tools/Windows/Installer/OpenSim.nsi +++ b/OpenSim/Tools/Windows/Installer/OpenSim.nsi @@ -1,7 +1,7 @@ !include "MUI.nsh" Name "OpenSim" -OutFile "OpenSim Setup 0.4.exe" +OutFile "OpenSim Setup 0.5.exe" CRCCheck On -- cgit v1.1 From fc9bdb6c1635fc1084d242373c8eda012e1146ad Mon Sep 17 00:00:00 2001 From: Jeff Ames Date: Sat, 9 Feb 2008 06:08:55 +0000 Subject: Moved LICENSE.txt into root. --- OpenSim/Tools/Windows/Installer/LICENSE.txt | 25 ------------------------- 1 file changed, 25 deletions(-) delete mode 100644 OpenSim/Tools/Windows/Installer/LICENSE.txt (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/Windows/Installer/LICENSE.txt b/OpenSim/Tools/Windows/Installer/LICENSE.txt deleted file mode 100644 index 6d54d34..0000000 --- a/OpenSim/Tools/Windows/Installer/LICENSE.txt +++ /dev/null @@ -1,25 +0,0 @@ -Copyright (c) Contributors, http://opensimulator.org/ -See CONTRIBUTORS.TXT for a full list of copyright holders. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - * Neither the name of the OpenSim Project nor the - names of its contributors may be used to endorse or promote products - derived from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY EXPRESS OR -IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY -DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE -GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER -IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR -OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF -ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- cgit v1.1 From b5a9592cc1214b9bee1a69c20cd9ebe5983a396c Mon Sep 17 00:00:00 2001 From: Jeff Ames Date: Fri, 15 Feb 2008 02:37:05 +0000 Subject: Moved LaunchSLClient build system to Prebuild. Refactored LaunchSLClient code a bit. --- .../LaunchSLClient/Form1.Designer.cs | 4 - .../Tools/LaunchSLClient/LaunchSLClient/Form1.cs | 215 +++++++++++---------- .../LaunchSLClient/LaunchSLClient.csproj | 79 -------- .../LaunchSLClient/LauncherException.cs | 2 +- .../Tools/LaunchSLClient/LaunchSLClient/Program.cs | 3 +- OpenSim/Tools/LaunchSLClient/prebuild.xml | 66 +++++++ OpenSim/Tools/LaunchSLClient/runprebuild.bat | 2 + OpenSim/Tools/LaunchSLClient/runprebuild.sh | 4 + 8 files changed, 185 insertions(+), 190 deletions(-) delete mode 100644 OpenSim/Tools/LaunchSLClient/LaunchSLClient/LaunchSLClient.csproj create mode 100644 OpenSim/Tools/LaunchSLClient/prebuild.xml create mode 100755 OpenSim/Tools/LaunchSLClient/runprebuild.bat create mode 100755 OpenSim/Tools/LaunchSLClient/runprebuild.sh (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Form1.Designer.cs b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Form1.Designer.cs index 40dee17..db9ad33 100644 --- a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Form1.Designer.cs +++ b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Form1.Designer.cs @@ -98,15 +98,11 @@ namespace LaunchSLClient this.Text = "OpenSim Client Launcher"; this.ResumeLayout(false); this.PerformLayout(); - } #endregion private System.Windows.Forms.ComboBox comboBox1; private System.Windows.Forms.TextBox textBox1; - } } - - diff --git a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Form1.cs b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Form1.cs index 70f8b87..183a104 100644 --- a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Form1.cs +++ b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Form1.cs @@ -25,6 +25,7 @@ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * */ + using System; using System.IO; using System.Collections; @@ -42,143 +43,149 @@ namespace LaunchSLClient { public partial class Form1 : Form { + const string deepGridUrl = "http://user.deepgrid.com:8002/"; + const string osGridUrl = "http://www.osgrid.org:8002/"; + const string openLifeGridUrl = "http://logingrid.net:8002"; + string gridUrl = ""; string sandboxUrl = ""; - string deepGridUrl = "http://user.deepgrid.com:8002/"; - string osGridUrl = "http://www.osgrid.org:8002/"; string runUrl = ""; string runLine = ""; - Object exeFlags; - Object exePath; - + string exeFlags = ""; + string exePath = ""; - public Form1() + private void addLocalSandbox(ref ArrayList menuItems) { - InitializeComponent(); - ArrayList menuItems=new ArrayList(); - menuItems.Add("Please select one:"); - string sandboxHostName = ""; - string sandboxPort = ""; - Object simPath = null; - FileInfo defaultFile; - StreamReader stream; - - - // get executable path from registry - // - RegistryKey regKey; - RegistryKey exeKey; - regKey = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Linden Research, Inc.\SecondLife"); - if (regKey == null) - { - regKey = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Wow6432Node\Linden Research, Inc.\SecondLife"); - if (regKey == null) - { - throw new LauncherException("Can't find Second Life. Are you sure it is installed?", "LauncherException.Form1"); - } - } - Object exe = regKey.GetValue("Exe"); - exeFlags = regKey.GetValue("Flags"); - exePath = regKey.GetValue(""); - runLine = exePath.ToString() + "\\" + exe.ToString(); - Registry.LocalMachine.Flush(); - Registry.LocalMachine.Close(); - - // find opensim directory - // - exeKey = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\OpenSim\OpenSim"); - if (exeKey != null) + // build sandbox URL from Regions\default.xml + // this is highly dependant on a standard default.xml + if (File.Exists(@"Regions\default.xml")) { - - simPath = exeKey.GetValue("Path"); - - // build sandbox URL from Regions\default.xml - // this is highly dependant on a standard default.xml - // - Directory.SetCurrentDirectory(simPath.ToString()); //this should be set to wherever we decide to put the binaries + string sandboxHostName = ""; + string sandboxPort = ""; string text; + Regex myRegex = new Regex(".*internal_ip_port=\\\"(?.*?)\\\".*external_host_name=\\\"(?.*?)\\\".*"); - if (File.Exists(@"Regions\default.xml")) + + FileInfo defaultFile = new FileInfo(@"Regions\default.xml"); + StreamReader stream = defaultFile.OpenText(); + do { - defaultFile = new FileInfo(@"Regions\default.xml"); - stream = defaultFile.OpenText(); - do + text = stream.ReadLine(); + if (text == null) { - text = stream.ReadLine(); - if (text == null) - { - break; - } - MatchCollection theMatches = myRegex.Matches(text); - foreach (Match theMatch in theMatches) + break; + } + MatchCollection theMatches = myRegex.Matches(text); + foreach (Match theMatch in theMatches) + { + if (theMatch.Length != 0) { - if (theMatch.Length != 0) - { - sandboxHostName = theMatch.Groups["name"].ToString(); - sandboxPort = theMatch.Groups["port"].ToString(); - } + sandboxHostName = theMatch.Groups["name"].ToString(); + sandboxPort = theMatch.Groups["port"].ToString(); } - } while (text != null); - stream.Close(); - sandboxUrl = "http:\\" + sandboxHostName + ":" + sandboxPort; - menuItems.Add("Local Sandbox"); - } - else - { - MessageBox.Show("No OpenSim config files found. Please run OpenSim and finish configuration to run a local sim. Showing public grids only", "No OpenSim"); - } - + } + } while (text != null); - //build local grid URL from network_servers_information.xml - // this is highly dependant on a standard default.xml - // - myRegex = new Regex(".*UserServerURL=\\\"(?.*?)\\\".*"); - if (File.Exists(@"network_servers_information.xml")) - { - defaultFile = new FileInfo(@"network_servers_information.xml"); + stream.Close(); + sandboxUrl = "http:\\" + sandboxHostName + ":" + sandboxPort; + menuItems.Add("Local Sandbox"); + } + } + private void addLocalGrid(ref ArrayList menuItems) + { + //build local grid URL from network_servers_information.xml + // this is highly dependant on a standard default.xml + if (File.Exists(@"network_servers_information.xml")) + { + string text; + FileInfo defaultFile = new FileInfo(@"network_servers_information.xml"); + Regex myRegex = new Regex(".*UserServerURL=\\\"(?.*?)\\\".*"); + StreamReader stream = defaultFile.OpenText(); - stream = defaultFile.OpenText(); - do + do + { + text = stream.ReadLine(); + if (text == null) { - text = stream.ReadLine(); - if (text == null) - { - break; - } - MatchCollection theMatches = myRegex.Matches(text); - foreach (Match theMatch in theMatches) + break; + } + foreach (Match theMatch in myRegex.Matches(text)) + { + if (theMatch.Length != 0) { - if (theMatch.Length != 0) - { - gridUrl = theMatch.Groups["url"].ToString(); - } + gridUrl = theMatch.Groups["url"].ToString(); } - } while (text != null); - stream.Close(); - if (gridUrl != null) - { - menuItems.Add("Local Grid Server"); } + } while (text != null); + stream.Close(); + if (gridUrl != null) + { + menuItems.Add("Local Grid Server"); } } + } + + private void addLocalSims(ref ArrayList menuItems) + { + // find opensim directory + RegistryKey exeKey = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\OpenSim\OpenSim"); + if (exeKey != null) + { + Object simPath = exeKey.GetValue("Path"); + + Directory.SetCurrentDirectory(simPath.ToString()); //this should be set to wherever we decide to put the binaries + + addLocalSandbox(ref menuItems); + addLocalGrid(ref menuItems); + } else { MessageBox.Show("No OpenSim installed. Showing public grids only", "No OpenSim"); } + } + + private void getClient(ref string exePath, ref string runLine, ref string exeFlags) + { + // get executable path from registry + RegistryKey regKey = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Linden Research, Inc.\SecondLife"); + if (regKey == null) + { + regKey = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Wow6432Node\Linden Research, Inc.\SecondLife"); + if (regKey == null) + { + throw new LauncherException("Can't find Second Life. Are you sure it is installed?", "LauncherException.Form1"); + } + } + string exe = regKey.GetValue("Exe").ToString(); + exeFlags = regKey.GetValue("Flags").ToString(); + exePath = regKey.GetValue("").ToString(); + runLine = exePath + "\\" + exe; + Registry.LocalMachine.Flush(); + Registry.LocalMachine.Close(); + } + + public Form1() + { + InitializeComponent(); + ArrayList menuItems = new ArrayList(); + + getClient(ref exePath, ref runLine, ref exeFlags); + + menuItems.Add("Please select one:"); + + addLocalSims(ref menuItems); menuItems.Add("OSGrid - www.osgrid.org"); menuItems.Add("DeepGrid - www.deepgrid.com"); menuItems.Add("OpenlifeGrid - www.openlifegrid.com"); - - // We don't have a proper login uri for SL grid - // menuItems.Add("Linden Labs - www.secondlife.com"); - comboBox1.DataSource=menuItems; + menuItems.Add("Linden Labs - www.secondlife.com"); + + comboBox1.DataSource = menuItems; } private void radioButton1_CheckedChanged(object sender, EventArgs e) { - } private void comboBox1_SelectedIndexChanged(object sender, EventArgs e) @@ -188,8 +195,8 @@ namespace LaunchSLClient if (comboBox1.Text == "Local Grid Server") { runUrl = " -loginuri " + gridUrl; } if (comboBox1.Text == "DeepGrid - www.deepgrid.com") { runUrl = " -loginuri " + deepGridUrl; } if (comboBox1.Text == "OSGrid - www.osgrid.org") { runUrl = " -loginuri " + osGridUrl; } + if (comboBox1.Text == "OpenlifeGrid - www.openlifegrid.com") { runUrl = " -loginuri " + openLifeGridUrl; } if (comboBox1.Text == "Linden Labs - www.secondlife.com") { runUrl = ""; } - if (comboBox1.Text == "OpenlifeGrid - www.openlifegrid.com") { runUrl = " -loginuri http://logingrid.net:8002"; } System.Diagnostics.Process proc = new System.Diagnostics.Process(); proc.StartInfo.FileName = runLine; diff --git a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/LaunchSLClient.csproj b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/LaunchSLClient.csproj deleted file mode 100644 index 2589ec7..0000000 --- a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/LaunchSLClient.csproj +++ /dev/null @@ -1,79 +0,0 @@ - - - Debug - AnyCPU - 8.0.50727 - 2.0 - {50FD2DCD-2E2D-413C-8260-D9CD22405895} - WinExe - Properties - LaunchSLClient - LaunchSLClient - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - - - - - - - - - - Form - - - Form1.cs - - - - - - Designer - Form1.cs - - - ResXFileCodeGenerator - Resources.Designer.cs - Designer - - - True - Resources.resx - - - SettingsSingleFileGenerator - Settings.Designer.cs - - - True - Settings.settings - True - - - - - \ No newline at end of file diff --git a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/LauncherException.cs b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/LauncherException.cs index acfa421..e31bd1d 100644 --- a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/LauncherException.cs +++ b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/LauncherException.cs @@ -25,6 +25,7 @@ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * */ + using System; using System.Collections.Generic; using System.Text; @@ -33,7 +34,6 @@ namespace LaunchSLClient { class LauncherException : ApplicationException { - private const string CUSTOMMESSAGE = "The SL Client Launcher has failed with the following error: "; private LauncherException() { } diff --git a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Program.cs b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Program.cs index 0e77abe..778d5c0 100644 --- a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Program.cs +++ b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Program.cs @@ -25,11 +25,11 @@ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * */ + using System; using System.Collections.Generic; using System.Windows.Forms; - namespace LaunchSLClient { static class Program @@ -40,7 +40,6 @@ namespace LaunchSLClient [STAThread] static void Main() { - try { Application.EnableVisualStyles(); diff --git a/OpenSim/Tools/LaunchSLClient/prebuild.xml b/OpenSim/Tools/LaunchSLClient/prebuild.xml new file mode 100644 index 0000000..8e58ba6 --- /dev/null +++ b/OpenSim/Tools/LaunchSLClient/prebuild.xml @@ -0,0 +1,66 @@ + + + + + + TRACE;DEBUG + false + false + false + 4 + false + + ../../../bin + true + true + false + + + + + TRACE + true + false + false + 4 + false + + ../../../bin + false + true + false + + + + + + + ../../../bin/ + + + + + ../../../bin/ + + + + ../../../bin/ + + + + + + + + + + + + + + + + + + + diff --git a/OpenSim/Tools/LaunchSLClient/runprebuild.bat b/OpenSim/Tools/LaunchSLClient/runprebuild.bat new file mode 100755 index 0000000..8a2c21a --- /dev/null +++ b/OpenSim/Tools/LaunchSLClient/runprebuild.bat @@ -0,0 +1,2 @@ +bin\Prebuild.exe /target nant +bin\Prebuild.exe /target vs2005 \ No newline at end of file diff --git a/OpenSim/Tools/LaunchSLClient/runprebuild.sh b/OpenSim/Tools/LaunchSLClient/runprebuild.sh new file mode 100755 index 0000000..7215bc5 --- /dev/null +++ b/OpenSim/Tools/LaunchSLClient/runprebuild.sh @@ -0,0 +1,4 @@ +#!/bin/sh + +mono ../../../bin/Prebuild.exe /target nant +mono ../../../bin/Prebuild.exe /target vs2005 -- cgit v1.1 From 343f41ac1b4882e36796b82d21e2e3ba5e49e3c0 Mon Sep 17 00:00:00 2001 From: Jeff Ames Date: Fri, 15 Feb 2008 02:38:02 +0000 Subject: Minor syncing of copyright notices. --- OpenSim/Tools/LaunchSLClient/LaunchSLClient/Form1.Designer.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Form1.Designer.cs b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Form1.Designer.cs index db9ad33..b841f0b 100644 --- a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Form1.Designer.cs +++ b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Form1.Designer.cs @@ -13,7 +13,7 @@ * names of its contributors may be used to endorse or promote products * derived from this software without specific prior written permission. * -* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS AS IS AND ANY +* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY -- cgit v1.1 From 337d2d2a8862fb3785860a69c0a02f125523bc30 Mon Sep 17 00:00:00 2001 From: Jeff Ames Date: Fri, 15 Feb 2008 02:51:46 +0000 Subject: Oops. Forgot about Windows users. --- OpenSim/Tools/LaunchSLClient/runprebuild.bat | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/LaunchSLClient/runprebuild.bat b/OpenSim/Tools/LaunchSLClient/runprebuild.bat index 8a2c21a..0427d2e 100755 --- a/OpenSim/Tools/LaunchSLClient/runprebuild.bat +++ b/OpenSim/Tools/LaunchSLClient/runprebuild.bat @@ -1,2 +1,2 @@ -bin\Prebuild.exe /target nant -bin\Prebuild.exe /target vs2005 \ No newline at end of file +..\..\..\bin\Prebuild.exe /target nant +..\..\..\bin\Prebuild.exe /target vs2005 -- cgit v1.1 From 21b623b70e33b80dc8caae3b1730bcd8069e3caa Mon Sep 17 00:00:00 2001 From: Jeff Ames Date: Fri, 15 Feb 2008 02:53:05 +0000 Subject: Moved pCampBot to OpenSim/Tools --- OpenSim/Tools/pCampBot/BotManager.cs | 235 ++++++++++++++++++++++ OpenSim/Tools/pCampBot/PhysicsBot.cs | 191 ++++++++++++++++++ OpenSim/Tools/pCampBot/PhysicsCamperBotREADME.txt | 36 ++++ OpenSim/Tools/pCampBot/pCampBot.cs | 76 +++++++ OpenSim/Tools/pCampBot/prebuild.xml | 63 ++++++ OpenSim/Tools/pCampBot/runprebuild.bat | 2 + OpenSim/Tools/pCampBot/runprebuild.sh | 4 + 7 files changed, 607 insertions(+) create mode 100644 OpenSim/Tools/pCampBot/BotManager.cs create mode 100644 OpenSim/Tools/pCampBot/PhysicsBot.cs create mode 100644 OpenSim/Tools/pCampBot/PhysicsCamperBotREADME.txt create mode 100644 OpenSim/Tools/pCampBot/pCampBot.cs create mode 100644 OpenSim/Tools/pCampBot/prebuild.xml create mode 100755 OpenSim/Tools/pCampBot/runprebuild.bat create mode 100755 OpenSim/Tools/pCampBot/runprebuild.sh (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/pCampBot/BotManager.cs b/OpenSim/Tools/pCampBot/BotManager.cs new file mode 100644 index 0000000..0c7fa4e --- /dev/null +++ b/OpenSim/Tools/pCampBot/BotManager.cs @@ -0,0 +1,235 @@ +/* +* Copyright (c) Contributors, http://opensimulator.org/ +* See CONTRIBUTORS.TXT for a full list of copyright holders. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenSim Project nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +*/ + +using System; +using System.Collections.Generic; +using System.Text; +using System.IO; +using libsecondlife; +using libsecondlife.Packets; +using Nini.Config; +using System.Threading; +using OpenSim.Framework; +using OpenSim.Framework.Console; + +namespace pCampBot +{ + /// + /// Thread/Bot manager for the application + /// + public class BotManager : conscmd_callback + { + private static readonly log4net.ILog m_log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); + + protected ConsoleBase m_console; + protected List m_lBot; + protected Thread[] m_td; + protected bool m_verbose = true; + protected Random somthing = new Random(System.Environment.TickCount); + protected int numbots = 0; + protected IConfig Previous_config; + + /// + /// Constructor Creates MainConsole.Instance to take commands and provide the place to write data + /// + public BotManager() + { + m_console = CreateConsole(); + MainConsole.Instance = m_console; + m_lBot = new List(); + } + + /// + /// Startup number of bots specified in the starting arguments + /// + /// How many bots to start up + /// The configuration for the bots to use + public void dobotStartup(int botcount, IConfig cs) + { + Previous_config = cs; + m_td = new Thread[botcount]; + for (int i = 0; i < botcount; i++) + { + startupBot(i, cs); + } + } + + /// + /// Add additional bots (and threads) to our bot pool + /// + /// How Many of them to add + public void addbots(int botcount) + { + int len = m_td.Length; + Thread[] m_td2 = new Thread[len + botcount]; + for (int i = 0; i < len; i++) + { + m_td2[i] = m_td[i]; + } + m_td = m_td2; + int newlen = len + botcount; + for (int i = len; i < newlen; i++) + { + startupBot(i, Previous_config); + } + } + + /// + /// This starts up the bot and stores the thread for the bot in the thread array + /// + /// The position in the thread array to stick the bot's thread + /// Configuration of the bot + public void startupBot(int pos, IConfig cs) + { + PhysicsBot pb = new PhysicsBot(cs); + + pb.OnConnected += handlebotEvent; + pb.OnDisconnected += handlebotEvent; + if (cs.GetString("firstname", "random") == "random") pb.firstname = CreateRandomName(); + if (cs.GetString("lastname", "random") == "random") pb.lastname = CreateRandomName(); + + m_td[pos] = new Thread(pb.startup); + m_td[pos].Start(); + m_lBot.Add(pb); + } + + /// + /// Creates a random name for the bot + /// + /// + private string CreateRandomName() + { + string returnstring = ""; + string chars = "abcdefghijklmnopqrstuvwxyz0123456789"; + + for (int i = 0; i < 7; i++) + { + returnstring += chars.Substring(somthing.Next(chars.Length),1); + } + return returnstring; + } + + /// + /// High level connnected/disconnected events so we can keep track of our threads by proxy + /// + /// + /// + public void handlebotEvent(PhysicsBot callbot, EventType eventt) + { + switch (eventt) + { + case EventType.CONNECTED: + m_log.Info("[ " + callbot.firstname + " " + callbot.lastname + "]: Connected"); + numbots++; + break; + case EventType.DISCONNECTED: + m_log.Info("[ " + callbot.firstname + " " + callbot.lastname + "]: Disconnected"); + m_td[m_lBot.IndexOf(callbot)].Abort(); + numbots--; + if (numbots >1) + Environment.Exit(0); + break; + } + } + + /// + /// Shutting down all bots + /// + public void doBotShutdown() + { + foreach (PhysicsBot pb in m_lBot) + { + pb.shutdown(); + } + } + + /// + /// Standard CreateConsole routine + /// + /// + protected ConsoleBase CreateConsole() + { + return new ConsoleBase("Region", this); + } + + /// + /// I don't think the bots use this.. + /// + /// + /// + /// + private string CombineParams(string[] commandParams, int pos) + { + string result = String.Empty; + for (int i = pos; i < commandParams.Length; i++) + { + result += commandParams[i] + " "; + } + result = result.TrimEnd(' '); + return result; + } + + /// + /// Command runnint tool.. Currently use it to add bots, shutdown and (dangerous)Forcequit + /// + /// + /// + public void RunCmd(string command, string[] cmdparams) + { + switch (command) + { + case "shutdown": + m_console.Warn("BOTMANAGER", "Shutting down bots"); + doBotShutdown(); + break; + case "quit": + m_console.Warn("DANGER", "This should only be used to quit the program if you've already used the shutdown command and the program hasn't quit"); + Environment.Exit(0); + break; + case "addbots": + int newbots = 0; + Helpers.TryParse(cmdparams[0], out newbots); + + if (newbots > 0) + addbots(newbots); + break; + case "help": + m_console.Notice("HELP", "\nshutdown - graceful shutdown\naddbots - adds n bots to the test\nquit - forcequits, dangerous if you have not already run shutdown"); + break; + } + } + + /// + /// Required method to implement the conscmd_callback interface + /// + /// + public void Show(string ShowWhat) + { + } + } +} diff --git a/OpenSim/Tools/pCampBot/PhysicsBot.cs b/OpenSim/Tools/pCampBot/PhysicsBot.cs new file mode 100644 index 0000000..500683a --- /dev/null +++ b/OpenSim/Tools/pCampBot/PhysicsBot.cs @@ -0,0 +1,191 @@ +/* +* Copyright (c) Contributors, http://opensimulator.org/ +* See CONTRIBUTORS.TXT for a full list of copyright holders. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenSim Project nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +*/ + +using System; +using System.Collections.Generic; +using System.IO; +using System.Text; +using libsecondlife; +using libsecondlife.Packets; +using Nini.Config; +using System.Threading; +using OpenSim.Framework; +using OpenSim.Framework.Console; +using Timer=System.Timers.Timer; + +namespace pCampBot +{ + public class PhysicsBot + { + public delegate void AnEvent(PhysicsBot callbot, EventType someevent); // event delegate for bot events + public IConfig startupConfig; // bot config, passed from BotManager + + public string firstname; + public string lastname; + public string password; + public string loginURI; + + public event AnEvent OnConnected; + public event AnEvent OnDisconnected; + + protected Timer m_action; // Action Timer + + protected Random somthing = new Random(System.Environment.TickCount);// We do stuff randomly here + + //New instance of a SecondLife client + public SecondLife client = new SecondLife(); + + protected string[] talkarray; + /// + /// + /// + /// nini config for the bot + public PhysicsBot(IConfig bsconfig) + { + startupConfig = bsconfig; + readconfig(); + talkarray = readexcuses(); + } + + //We do our actions here. This is where one would + //add additional steps and/or things the bot should do + + void m_action_Elapsed(object sender, System.Timers.ElapsedEventArgs e) + { + //client.Throttle.Task = 500000f; + //client.Throttle.Set(); + + client.Self.Movement.AlwaysRun = true; + LLVector3 pos = client.Self.SimPosition; + LLVector3 newpos = new LLVector3(somthing.Next(255),somthing.Next(255),somthing.Next(255)); + + + client.Self.Movement.TurnToward(newpos); + for (int i = 0; i < 2000; i++) + { + client.Self.Movement.AtPos = true; + } + client.Self.Jump(); + string randomf = talkarray[somthing.Next(talkarray.Length)]; + if (talkarray.Length > 1 && randomf.Length > 1) + client.Self.Chat("Can't do it, " + randomf, 0, ChatType.Normal); + + Thread.Sleep(somthing.Next(1,20)); + + } + + /// + /// Read the Nini config and initialize + /// + public void readconfig() + { + firstname = startupConfig.GetString("firstname", "random"); + lastname = startupConfig.GetString("lastname", "random"); + password = startupConfig.GetString("password", "12345"); + loginURI = startupConfig.GetString("loginuri", "http://10.1.1.5:9000"); + + + + } + + /// + /// Tells LibSecondLife to logout and disconnect. Raises the disconnect events once it finishes. + /// + public void shutdown() + { + client.Network.Logout(); + } + + /// + /// This is the bot startup loop. + /// + public void startup() + { + client.Settings.LOGIN_SERVER = loginURI; + client.Network.OnConnected += new NetworkManager.ConnectedCallback(this.Network_OnConnected); + client.Network.OnSimConnected += new NetworkManager.SimConnectedCallback(this.Network_OnConnected); + client.Network.OnDisconnected += new NetworkManager.DisconnectedCallback(this.Network_OnDisconnected); + if (client.Network.Login(firstname, lastname, password, "pCampBot", "Your name")) + { + + if (OnConnected != null) + { + m_action = new Timer(somthing.Next(1000, 10000)); + m_action.Elapsed += new System.Timers.ElapsedEventHandler(m_action_Elapsed); + m_action.Start(); + OnConnected(this, EventType.CONNECTED); + client.Self.Jump(); + + } + } + else + { + MainConsole.Instance.Error(firstname + " " + lastname, "Can't login: " + client.Network.LoginMessage); + if (OnDisconnected != null) + { + OnDisconnected(this, EventType.DISCONNECTED); + } + } + } + + public void Network_OnConnected(object sender) + { + if (OnConnected != null) + { + OnConnected(this, EventType.CONNECTED); + } + } + + public void Simulator_Connected(object sender) + { + } + + public void Network_OnDisconnected(NetworkManager.DisconnectType reason, string message) + { + if (OnDisconnected != null) + { + OnDisconnected(this,EventType.DISCONNECTED); + } + } + + public string[] readexcuses() + { + string allexcuses = ""; + + string file = Path.Combine(Util.configDir(), "excuses"); + if (File.Exists(file)) + { + StreamReader csr = File.OpenText(file); + allexcuses = csr.ReadToEnd(); + csr.Close(); + } + + return allexcuses.Split(Environment.NewLine.ToCharArray()); + } + } +} diff --git a/OpenSim/Tools/pCampBot/PhysicsCamperBotREADME.txt b/OpenSim/Tools/pCampBot/PhysicsCamperBotREADME.txt new file mode 100644 index 0000000..afa5fbd --- /dev/null +++ b/OpenSim/Tools/pCampBot/PhysicsCamperBotREADME.txt @@ -0,0 +1,36 @@ +This is the PhysicsCamperbot libslBot tester. + +This is designed to be run in standalone mode with authorize accounts turned off as a way to stress test the simulator. +It creates clients that log in, randomly jump/walk around, and say excuses from the BOFH + +**Warning:** Using this bot on a public grid could get you banned perminantly, so just say No! to greifing! + +-----Setup ----- +Linux: chmod the .sh runprebuild file, run it. Then run nant like; + +nant -buildfile: pCampBot.build + +and pCampBot.exe will end up in the regular opensim/bin folder + +Windows: +Run the prebuild bat IN THIS FOLDER and then open the created solution and compile it. the Exe file will end up in the regular opensim bin folder. + + +-----Running the bot---- + +windows: pCampBot.exe -botcount -loginuri +*nix: mono pCampBot.exe -botcount -loginuri + +The names it produces are random by default, however, you can specify either a firstname or a lastname in the command line also. +ex: pCampBot.exe -botcount -loginuri -lastname + +If you specify both a firstname *and* a lastname, you'll likely run into trouble unless you're only running a single bot. In that case, there's also a password option. + +pCampBot.exe -botcount 1 -loginuri http://somegrid.com:8002 -firstname SomeDude -lastname SomeDude -password GobbleDeGook +------- + +The bot also has console commands +help - lists the console commands and what they do +shutdown - gracefully shuts down the bots +quit - forcefully shuts things down leaving stuff unclean +addbots N - adds N number of random bots. (replace 'N' with a number) \ No newline at end of file diff --git a/OpenSim/Tools/pCampBot/pCampBot.cs b/OpenSim/Tools/pCampBot/pCampBot.cs new file mode 100644 index 0000000..704a3f5 --- /dev/null +++ b/OpenSim/Tools/pCampBot/pCampBot.cs @@ -0,0 +1,76 @@ +/* +* Copyright (c) Contributors, http://opensimulator.org/ +* See CONTRIBUTORS.TXT for a full list of copyright holders. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenSim Project nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +*/ + +using System; +using System.Collections.Generic; +using System.Text; +using libsecondlife; +using libsecondlife.Packets; +using Nini.Config; +using System.Threading; +using OpenSim.Framework.Console; + +namespace pCampBot +{ + /// + /// Event Types from the BOT. Add new events here + /// + public enum EventType:int + { + NONE = 0, + CONNECTED = 1, + DISCONNECTED = 2 + } + + public class pCampBot + { + [STAThread] + public static void Main(string[] args) + { + //Set up our nifty config.. thanks to nini + ArgvConfigSource cs = new ArgvConfigSource(args); + + cs.AddSwitch("Startup", "botcount"); + cs.AddSwitch("Startup", "loginuri"); + cs.AddSwitch("Startup", "firstname"); + cs.AddSwitch("Startup", "lastname"); + cs.AddSwitch("Startup", "password"); + + IConfig ol = cs.Configs["Startup"]; + int botcount = ol.GetInt("botcount", 1); + BotManager bm = new BotManager(); + + //startup specified number of bots. 1 is the default + bm.dobotStartup(botcount, ol); + while (true) + { + MainConsole.Instance.Prompt(); + } + } + } +} diff --git a/OpenSim/Tools/pCampBot/prebuild.xml b/OpenSim/Tools/pCampBot/prebuild.xml new file mode 100644 index 0000000..bfaf408 --- /dev/null +++ b/OpenSim/Tools/pCampBot/prebuild.xml @@ -0,0 +1,63 @@ + + + + + + TRACE;DEBUG + false + false + false + 4 + false + + ../../../bin + true + true + false + + + + + TRACE + true + false + false + 4 + false + + ../../../bin + false + true + false + + + + + + + + + ../../../bin/ + + + + + ../../../bin/ + + + + ../../../bin/ + + + + + + + + + + + + + + diff --git a/OpenSim/Tools/pCampBot/runprebuild.bat b/OpenSim/Tools/pCampBot/runprebuild.bat new file mode 100755 index 0000000..0427d2e --- /dev/null +++ b/OpenSim/Tools/pCampBot/runprebuild.bat @@ -0,0 +1,2 @@ +..\..\..\bin\Prebuild.exe /target nant +..\..\..\bin\Prebuild.exe /target vs2005 diff --git a/OpenSim/Tools/pCampBot/runprebuild.sh b/OpenSim/Tools/pCampBot/runprebuild.sh new file mode 100755 index 0000000..7215bc5 --- /dev/null +++ b/OpenSim/Tools/pCampBot/runprebuild.sh @@ -0,0 +1,4 @@ +#!/bin/sh + +mono ../../../bin/Prebuild.exe /target nant +mono ../../../bin/Prebuild.exe /target vs2005 -- cgit v1.1 From 25e7f74d29b394737e3180dff71ee0020430b4e1 Mon Sep 17 00:00:00 2001 From: Jeff Ames Date: Fri, 15 Feb 2008 03:21:05 +0000 Subject: Move pCampBot prebuild.xml into main prebuild.xml to fix reference errors. Update README. --- OpenSim/Tools/pCampBot/PhysicsCamperBotREADME.txt | 36 ------------- OpenSim/Tools/pCampBot/README.txt | 44 ++++++++++++++++ OpenSim/Tools/pCampBot/prebuild.xml | 63 ----------------------- OpenSim/Tools/pCampBot/runprebuild.bat | 2 - OpenSim/Tools/pCampBot/runprebuild.sh | 4 -- 5 files changed, 44 insertions(+), 105 deletions(-) delete mode 100644 OpenSim/Tools/pCampBot/PhysicsCamperBotREADME.txt create mode 100644 OpenSim/Tools/pCampBot/README.txt delete mode 100644 OpenSim/Tools/pCampBot/prebuild.xml delete mode 100755 OpenSim/Tools/pCampBot/runprebuild.bat delete mode 100755 OpenSim/Tools/pCampBot/runprebuild.sh (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/pCampBot/PhysicsCamperBotREADME.txt b/OpenSim/Tools/pCampBot/PhysicsCamperBotREADME.txt deleted file mode 100644 index afa5fbd..0000000 --- a/OpenSim/Tools/pCampBot/PhysicsCamperBotREADME.txt +++ /dev/null @@ -1,36 +0,0 @@ -This is the PhysicsCamperbot libslBot tester. - -This is designed to be run in standalone mode with authorize accounts turned off as a way to stress test the simulator. -It creates clients that log in, randomly jump/walk around, and say excuses from the BOFH - -**Warning:** Using this bot on a public grid could get you banned perminantly, so just say No! to greifing! - ------Setup ----- -Linux: chmod the .sh runprebuild file, run it. Then run nant like; - -nant -buildfile: pCampBot.build - -and pCampBot.exe will end up in the regular opensim/bin folder - -Windows: -Run the prebuild bat IN THIS FOLDER and then open the created solution and compile it. the Exe file will end up in the regular opensim bin folder. - - ------Running the bot---- - -windows: pCampBot.exe -botcount -loginuri -*nix: mono pCampBot.exe -botcount -loginuri - -The names it produces are random by default, however, you can specify either a firstname or a lastname in the command line also. -ex: pCampBot.exe -botcount -loginuri -lastname - -If you specify both a firstname *and* a lastname, you'll likely run into trouble unless you're only running a single bot. In that case, there's also a password option. - -pCampBot.exe -botcount 1 -loginuri http://somegrid.com:8002 -firstname SomeDude -lastname SomeDude -password GobbleDeGook -------- - -The bot also has console commands -help - lists the console commands and what they do -shutdown - gracefully shuts down the bots -quit - forcefully shuts things down leaving stuff unclean -addbots N - adds N number of random bots. (replace 'N' with a number) \ No newline at end of file diff --git a/OpenSim/Tools/pCampBot/README.txt b/OpenSim/Tools/pCampBot/README.txt new file mode 100644 index 0000000..7ecbde1 --- /dev/null +++ b/OpenSim/Tools/pCampBot/README.txt @@ -0,0 +1,44 @@ +This is the PhysicsCamperbot libslBot tester. + +This is designed to be run in standalone mode with authorize accounts +turned off as a way to stress test the simulator. It creates +clients that log in, randomly jump/walk around, and say excuses from +the BOFH. + +*** WARNING *** +Using this bot on a public grid could get you banned permanently, so +just say No! to griefing! + +----- Setup ----- +Linux: To build, in the main opensim directory, run: + ./runprebuild.sh + nant + +Windows: Run the prebuild.bat in the main opensim directory and then +open the created solution and compile it. + +pCampBot.exe will end up in the regular opensim/bin folder + +----- Running the bot ----- + +windows: pCampBot.exe -botcount -loginuri +*nix: mono pCampBot.exe -botcount -loginuri + +The names it produces are random by default, however, you can specify +either a firstname or a lastname in the command line also. + +ex: pCampBot.exe -botcount -loginuri -lastname + +If you specify both a firstname *and* a lastname, you'll likely run +into trouble unless you're only running a single bot. In that case, +there's also a password option. + +pCampBot.exe -botcount 1 -loginuri http://somegrid.com:8002 -firstname SomeDude -lastname SomeDude -password GobbleDeGook + +----- Commands ----- + +The bot has console commands: + help - lists the console commands and what they do + shutdown - gracefully shuts down the bots + quit - forcefully shuts things down leaving stuff unclean + addbots N - adds N number of random bots. (replace 'N' with a number) diff --git a/OpenSim/Tools/pCampBot/prebuild.xml b/OpenSim/Tools/pCampBot/prebuild.xml deleted file mode 100644 index bfaf408..0000000 --- a/OpenSim/Tools/pCampBot/prebuild.xml +++ /dev/null @@ -1,63 +0,0 @@ - - - - - - TRACE;DEBUG - false - false - false - 4 - false - - ../../../bin - true - true - false - - - - - TRACE - true - false - false - 4 - false - - ../../../bin - false - true - false - - - - - - - - - ../../../bin/ - - - - - ../../../bin/ - - - - ../../../bin/ - - - - - - - - - - - - - - diff --git a/OpenSim/Tools/pCampBot/runprebuild.bat b/OpenSim/Tools/pCampBot/runprebuild.bat deleted file mode 100755 index 0427d2e..0000000 --- a/OpenSim/Tools/pCampBot/runprebuild.bat +++ /dev/null @@ -1,2 +0,0 @@ -..\..\..\bin\Prebuild.exe /target nant -..\..\..\bin\Prebuild.exe /target vs2005 diff --git a/OpenSim/Tools/pCampBot/runprebuild.sh b/OpenSim/Tools/pCampBot/runprebuild.sh deleted file mode 100755 index 7215bc5..0000000 --- a/OpenSim/Tools/pCampBot/runprebuild.sh +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/sh - -mono ../../../bin/Prebuild.exe /target nant -mono ../../../bin/Prebuild.exe /target vs2005 -- cgit v1.1 From e16f9a16c77aca017ddd3413d6ff84d3a3ee7364 Mon Sep 17 00:00:00 2001 From: Jeff Ames Date: Fri, 15 Feb 2008 03:30:15 +0000 Subject: Moved LaunchSLClient prebuild.xml into main prebuild.xml --- OpenSim/Tools/LaunchSLClient/Form1.Designer.cs | 108 +++++++++++ OpenSim/Tools/LaunchSLClient/Form1.cs | 211 +++++++++++++++++++++ OpenSim/Tools/LaunchSLClient/Form1.resx | 120 ++++++++++++ .../LaunchSLClient/Form1.Designer.cs | 108 ----------- .../Tools/LaunchSLClient/LaunchSLClient/Form1.cs | 211 --------------------- .../Tools/LaunchSLClient/LaunchSLClient/Form1.resx | 120 ------------ .../LaunchSLClient/LauncherException.cs | 53 ------ .../Tools/LaunchSLClient/LaunchSLClient/Program.cs | 56 ------ .../LaunchSLClient/Properties/AssemblyInfo.cs | 61 ------ .../Properties/Resources.Designer.cs | 71 ------- .../LaunchSLClient/Properties/Resources.resx | 117 ------------ .../LaunchSLClient/Properties/Settings.Designer.cs | 30 --- .../LaunchSLClient/Properties/Settings.settings | 7 - OpenSim/Tools/LaunchSLClient/LauncherException.cs | 53 ++++++ OpenSim/Tools/LaunchSLClient/Program.cs | 56 ++++++ .../LaunchSLClient/Properties/AssemblyInfo.cs | 61 ++++++ .../Properties/Resources.Designer.cs | 71 +++++++ .../Tools/LaunchSLClient/Properties/Resources.resx | 117 ++++++++++++ .../LaunchSLClient/Properties/Settings.Designer.cs | 30 +++ .../LaunchSLClient/Properties/Settings.settings | 7 + OpenSim/Tools/LaunchSLClient/prebuild.xml | 66 ------- OpenSim/Tools/LaunchSLClient/runprebuild.bat | 2 - OpenSim/Tools/LaunchSLClient/runprebuild.sh | 4 - 23 files changed, 834 insertions(+), 906 deletions(-) create mode 100644 OpenSim/Tools/LaunchSLClient/Form1.Designer.cs create mode 100644 OpenSim/Tools/LaunchSLClient/Form1.cs create mode 100644 OpenSim/Tools/LaunchSLClient/Form1.resx delete mode 100644 OpenSim/Tools/LaunchSLClient/LaunchSLClient/Form1.Designer.cs delete mode 100644 OpenSim/Tools/LaunchSLClient/LaunchSLClient/Form1.cs delete mode 100644 OpenSim/Tools/LaunchSLClient/LaunchSLClient/Form1.resx delete mode 100644 OpenSim/Tools/LaunchSLClient/LaunchSLClient/LauncherException.cs delete mode 100644 OpenSim/Tools/LaunchSLClient/LaunchSLClient/Program.cs delete mode 100644 OpenSim/Tools/LaunchSLClient/LaunchSLClient/Properties/AssemblyInfo.cs delete mode 100644 OpenSim/Tools/LaunchSLClient/LaunchSLClient/Properties/Resources.Designer.cs delete mode 100644 OpenSim/Tools/LaunchSLClient/LaunchSLClient/Properties/Resources.resx delete mode 100644 OpenSim/Tools/LaunchSLClient/LaunchSLClient/Properties/Settings.Designer.cs delete mode 100644 OpenSim/Tools/LaunchSLClient/LaunchSLClient/Properties/Settings.settings create mode 100644 OpenSim/Tools/LaunchSLClient/LauncherException.cs create mode 100644 OpenSim/Tools/LaunchSLClient/Program.cs create mode 100644 OpenSim/Tools/LaunchSLClient/Properties/AssemblyInfo.cs create mode 100644 OpenSim/Tools/LaunchSLClient/Properties/Resources.Designer.cs create mode 100644 OpenSim/Tools/LaunchSLClient/Properties/Resources.resx create mode 100644 OpenSim/Tools/LaunchSLClient/Properties/Settings.Designer.cs create mode 100644 OpenSim/Tools/LaunchSLClient/Properties/Settings.settings delete mode 100644 OpenSim/Tools/LaunchSLClient/prebuild.xml delete mode 100755 OpenSim/Tools/LaunchSLClient/runprebuild.bat delete mode 100755 OpenSim/Tools/LaunchSLClient/runprebuild.sh (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/LaunchSLClient/Form1.Designer.cs b/OpenSim/Tools/LaunchSLClient/Form1.Designer.cs new file mode 100644 index 0000000..b841f0b --- /dev/null +++ b/OpenSim/Tools/LaunchSLClient/Form1.Designer.cs @@ -0,0 +1,108 @@ +/* +* Copyright (c) Contributors, http://opensimulator.org/ +* See CONTRIBUTORS.TXT for a full list of copyright holders. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenSim Project nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +*/ + +namespace LaunchSLClient +{ + partial class Form1 + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.comboBox1 = new System.Windows.Forms.ComboBox(); + this.textBox1 = new System.Windows.Forms.TextBox(); + this.SuspendLayout(); + // + // comboBox1 + // + this.comboBox1.FormattingEnabled = true; + this.comboBox1.Items.AddRange(new object[] { + "Local Sandbox", + "Local Grid Server", + "DeepGrid - www.deepgrid.com", + "OSGrid - www.osgrid.org", + "Linden Labs - www.secondlife.com"}); + this.comboBox1.Location = new System.Drawing.Point(37, 83); + this.comboBox1.Name = "comboBox1"; + this.comboBox1.Size = new System.Drawing.Size(348, 21); + this.comboBox1.TabIndex = 0; + this.comboBox1.Text = "Choose from list"; + this.comboBox1.SelectedIndexChanged += new System.EventHandler(this.comboBox1_SelectedIndexChanged); + // + // textBox1 + // + this.textBox1.BorderStyle = System.Windows.Forms.BorderStyle.None; + this.textBox1.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.textBox1.Location = new System.Drawing.Point(37, 32); + this.textBox1.Name = "textBox1"; + this.textBox1.ReadOnly = true; + this.textBox1.Size = new System.Drawing.Size(292, 19); + this.textBox1.TabIndex = 1; + this.textBox1.Text = "Choose from one of the following:"; + // + // Form1 + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(501, 339); + this.Controls.Add(this.textBox1); + this.Controls.Add(this.comboBox1); + this.Name = "Form1"; + this.Text = "OpenSim Client Launcher"; + this.ResumeLayout(false); + this.PerformLayout(); + } + + #endregion + + private System.Windows.Forms.ComboBox comboBox1; + private System.Windows.Forms.TextBox textBox1; + } +} diff --git a/OpenSim/Tools/LaunchSLClient/Form1.cs b/OpenSim/Tools/LaunchSLClient/Form1.cs new file mode 100644 index 0000000..183a104 --- /dev/null +++ b/OpenSim/Tools/LaunchSLClient/Form1.cs @@ -0,0 +1,211 @@ +/* +* Copyright (c) Contributors, http://opensimulator.org/ +* See CONTRIBUTORS.TXT for a full list of copyright holders. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenSim Project nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +*/ + +using System; +using System.IO; +using System.Collections; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Diagnostics; +using System.Drawing; +using System.Text; +using System.Text.RegularExpressions; +using System.Windows.Forms; +using Microsoft.Win32; + +namespace LaunchSLClient +{ + public partial class Form1 : Form + { + const string deepGridUrl = "http://user.deepgrid.com:8002/"; + const string osGridUrl = "http://www.osgrid.org:8002/"; + const string openLifeGridUrl = "http://logingrid.net:8002"; + + string gridUrl = ""; + string sandboxUrl = ""; + string runUrl = ""; + string runLine = ""; + string exeFlags = ""; + string exePath = ""; + + private void addLocalSandbox(ref ArrayList menuItems) + { + // build sandbox URL from Regions\default.xml + // this is highly dependant on a standard default.xml + if (File.Exists(@"Regions\default.xml")) + { + string sandboxHostName = ""; + string sandboxPort = ""; + string text; + + Regex myRegex = new Regex(".*internal_ip_port=\\\"(?.*?)\\\".*external_host_name=\\\"(?.*?)\\\".*"); + + FileInfo defaultFile = new FileInfo(@"Regions\default.xml"); + StreamReader stream = defaultFile.OpenText(); + do + { + text = stream.ReadLine(); + if (text == null) + { + break; + } + MatchCollection theMatches = myRegex.Matches(text); + foreach (Match theMatch in theMatches) + { + if (theMatch.Length != 0) + { + sandboxHostName = theMatch.Groups["name"].ToString(); + sandboxPort = theMatch.Groups["port"].ToString(); + } + } + } while (text != null); + + stream.Close(); + sandboxUrl = "http:\\" + sandboxHostName + ":" + sandboxPort; + menuItems.Add("Local Sandbox"); + } + } + + private void addLocalGrid(ref ArrayList menuItems) + { + //build local grid URL from network_servers_information.xml + // this is highly dependant on a standard default.xml + if (File.Exists(@"network_servers_information.xml")) + { + string text; + FileInfo defaultFile = new FileInfo(@"network_servers_information.xml"); + Regex myRegex = new Regex(".*UserServerURL=\\\"(?.*?)\\\".*"); + StreamReader stream = defaultFile.OpenText(); + + do + { + text = stream.ReadLine(); + if (text == null) + { + break; + } + foreach (Match theMatch in myRegex.Matches(text)) + { + if (theMatch.Length != 0) + { + gridUrl = theMatch.Groups["url"].ToString(); + } + } + } while (text != null); + stream.Close(); + if (gridUrl != null) + { + menuItems.Add("Local Grid Server"); + } + } + } + + private void addLocalSims(ref ArrayList menuItems) + { + // find opensim directory + RegistryKey exeKey = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\OpenSim\OpenSim"); + if (exeKey != null) + { + Object simPath = exeKey.GetValue("Path"); + + Directory.SetCurrentDirectory(simPath.ToString()); //this should be set to wherever we decide to put the binaries + + addLocalSandbox(ref menuItems); + addLocalGrid(ref menuItems); + } + else + { + MessageBox.Show("No OpenSim installed. Showing public grids only", "No OpenSim"); + } + } + + private void getClient(ref string exePath, ref string runLine, ref string exeFlags) + { + // get executable path from registry + RegistryKey regKey = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Linden Research, Inc.\SecondLife"); + if (regKey == null) + { + regKey = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Wow6432Node\Linden Research, Inc.\SecondLife"); + if (regKey == null) + { + throw new LauncherException("Can't find Second Life. Are you sure it is installed?", "LauncherException.Form1"); + } + } + string exe = regKey.GetValue("Exe").ToString(); + exeFlags = regKey.GetValue("Flags").ToString(); + exePath = regKey.GetValue("").ToString(); + runLine = exePath + "\\" + exe; + Registry.LocalMachine.Flush(); + Registry.LocalMachine.Close(); + } + + public Form1() + { + InitializeComponent(); + ArrayList menuItems = new ArrayList(); + + getClient(ref exePath, ref runLine, ref exeFlags); + + menuItems.Add("Please select one:"); + + addLocalSims(ref menuItems); + + menuItems.Add("OSGrid - www.osgrid.org"); + menuItems.Add("DeepGrid - www.deepgrid.com"); + menuItems.Add("OpenlifeGrid - www.openlifegrid.com"); + menuItems.Add("Linden Labs - www.secondlife.com"); + + comboBox1.DataSource = menuItems; + } + + private void radioButton1_CheckedChanged(object sender, EventArgs e) + { + } + + private void comboBox1_SelectedIndexChanged(object sender, EventArgs e) + { + if (comboBox1.Text == "Please select one:") { return; } + if (comboBox1.Text == "Local Sandbox") { runUrl=" -loginuri " + sandboxUrl;} + if (comboBox1.Text == "Local Grid Server") { runUrl = " -loginuri " + gridUrl; } + if (comboBox1.Text == "DeepGrid - www.deepgrid.com") { runUrl = " -loginuri " + deepGridUrl; } + if (comboBox1.Text == "OSGrid - www.osgrid.org") { runUrl = " -loginuri " + osGridUrl; } + if (comboBox1.Text == "OpenlifeGrid - www.openlifegrid.com") { runUrl = " -loginuri " + openLifeGridUrl; } + if (comboBox1.Text == "Linden Labs - www.secondlife.com") { runUrl = ""; } + + System.Diagnostics.Process proc = new System.Diagnostics.Process(); + proc.StartInfo.FileName = runLine; + proc.StartInfo.Arguments = exeFlags.ToString() + " " + runUrl; + proc.StartInfo.UseShellExecute = false; + proc.StartInfo.RedirectStandardOutput = false; + proc.StartInfo.WorkingDirectory = exePath.ToString(); + proc.Start(); + proc.WaitForExit(); + } + } +} diff --git a/OpenSim/Tools/LaunchSLClient/Form1.resx b/OpenSim/Tools/LaunchSLClient/Form1.resx new file mode 100644 index 0000000..19dc0dd --- /dev/null +++ b/OpenSim/Tools/LaunchSLClient/Form1.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Form1.Designer.cs b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Form1.Designer.cs deleted file mode 100644 index b841f0b..0000000 --- a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Form1.Designer.cs +++ /dev/null @@ -1,108 +0,0 @@ -/* -* Copyright (c) Contributors, http://opensimulator.org/ -* See CONTRIBUTORS.TXT for a full list of copyright holders. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions are met: -* * Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* * Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in the -* documentation and/or other materials provided with the distribution. -* * Neither the name of the OpenSim Project nor the -* names of its contributors may be used to endorse or promote products -* derived from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY -* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY -* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -* -*/ - -namespace LaunchSLClient -{ - partial class Form1 - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.comboBox1 = new System.Windows.Forms.ComboBox(); - this.textBox1 = new System.Windows.Forms.TextBox(); - this.SuspendLayout(); - // - // comboBox1 - // - this.comboBox1.FormattingEnabled = true; - this.comboBox1.Items.AddRange(new object[] { - "Local Sandbox", - "Local Grid Server", - "DeepGrid - www.deepgrid.com", - "OSGrid - www.osgrid.org", - "Linden Labs - www.secondlife.com"}); - this.comboBox1.Location = new System.Drawing.Point(37, 83); - this.comboBox1.Name = "comboBox1"; - this.comboBox1.Size = new System.Drawing.Size(348, 21); - this.comboBox1.TabIndex = 0; - this.comboBox1.Text = "Choose from list"; - this.comboBox1.SelectedIndexChanged += new System.EventHandler(this.comboBox1_SelectedIndexChanged); - // - // textBox1 - // - this.textBox1.BorderStyle = System.Windows.Forms.BorderStyle.None; - this.textBox1.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.textBox1.Location = new System.Drawing.Point(37, 32); - this.textBox1.Name = "textBox1"; - this.textBox1.ReadOnly = true; - this.textBox1.Size = new System.Drawing.Size(292, 19); - this.textBox1.TabIndex = 1; - this.textBox1.Text = "Choose from one of the following:"; - // - // Form1 - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(501, 339); - this.Controls.Add(this.textBox1); - this.Controls.Add(this.comboBox1); - this.Name = "Form1"; - this.Text = "OpenSim Client Launcher"; - this.ResumeLayout(false); - this.PerformLayout(); - } - - #endregion - - private System.Windows.Forms.ComboBox comboBox1; - private System.Windows.Forms.TextBox textBox1; - } -} diff --git a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Form1.cs b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Form1.cs deleted file mode 100644 index 183a104..0000000 --- a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Form1.cs +++ /dev/null @@ -1,211 +0,0 @@ -/* -* Copyright (c) Contributors, http://opensimulator.org/ -* See CONTRIBUTORS.TXT for a full list of copyright holders. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions are met: -* * Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* * Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in the -* documentation and/or other materials provided with the distribution. -* * Neither the name of the OpenSim Project nor the -* names of its contributors may be used to endorse or promote products -* derived from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY -* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY -* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -* -*/ - -using System; -using System.IO; -using System.Collections; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Diagnostics; -using System.Drawing; -using System.Text; -using System.Text.RegularExpressions; -using System.Windows.Forms; -using Microsoft.Win32; - -namespace LaunchSLClient -{ - public partial class Form1 : Form - { - const string deepGridUrl = "http://user.deepgrid.com:8002/"; - const string osGridUrl = "http://www.osgrid.org:8002/"; - const string openLifeGridUrl = "http://logingrid.net:8002"; - - string gridUrl = ""; - string sandboxUrl = ""; - string runUrl = ""; - string runLine = ""; - string exeFlags = ""; - string exePath = ""; - - private void addLocalSandbox(ref ArrayList menuItems) - { - // build sandbox URL from Regions\default.xml - // this is highly dependant on a standard default.xml - if (File.Exists(@"Regions\default.xml")) - { - string sandboxHostName = ""; - string sandboxPort = ""; - string text; - - Regex myRegex = new Regex(".*internal_ip_port=\\\"(?.*?)\\\".*external_host_name=\\\"(?.*?)\\\".*"); - - FileInfo defaultFile = new FileInfo(@"Regions\default.xml"); - StreamReader stream = defaultFile.OpenText(); - do - { - text = stream.ReadLine(); - if (text == null) - { - break; - } - MatchCollection theMatches = myRegex.Matches(text); - foreach (Match theMatch in theMatches) - { - if (theMatch.Length != 0) - { - sandboxHostName = theMatch.Groups["name"].ToString(); - sandboxPort = theMatch.Groups["port"].ToString(); - } - } - } while (text != null); - - stream.Close(); - sandboxUrl = "http:\\" + sandboxHostName + ":" + sandboxPort; - menuItems.Add("Local Sandbox"); - } - } - - private void addLocalGrid(ref ArrayList menuItems) - { - //build local grid URL from network_servers_information.xml - // this is highly dependant on a standard default.xml - if (File.Exists(@"network_servers_information.xml")) - { - string text; - FileInfo defaultFile = new FileInfo(@"network_servers_information.xml"); - Regex myRegex = new Regex(".*UserServerURL=\\\"(?.*?)\\\".*"); - StreamReader stream = defaultFile.OpenText(); - - do - { - text = stream.ReadLine(); - if (text == null) - { - break; - } - foreach (Match theMatch in myRegex.Matches(text)) - { - if (theMatch.Length != 0) - { - gridUrl = theMatch.Groups["url"].ToString(); - } - } - } while (text != null); - stream.Close(); - if (gridUrl != null) - { - menuItems.Add("Local Grid Server"); - } - } - } - - private void addLocalSims(ref ArrayList menuItems) - { - // find opensim directory - RegistryKey exeKey = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\OpenSim\OpenSim"); - if (exeKey != null) - { - Object simPath = exeKey.GetValue("Path"); - - Directory.SetCurrentDirectory(simPath.ToString()); //this should be set to wherever we decide to put the binaries - - addLocalSandbox(ref menuItems); - addLocalGrid(ref menuItems); - } - else - { - MessageBox.Show("No OpenSim installed. Showing public grids only", "No OpenSim"); - } - } - - private void getClient(ref string exePath, ref string runLine, ref string exeFlags) - { - // get executable path from registry - RegistryKey regKey = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Linden Research, Inc.\SecondLife"); - if (regKey == null) - { - regKey = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Wow6432Node\Linden Research, Inc.\SecondLife"); - if (regKey == null) - { - throw new LauncherException("Can't find Second Life. Are you sure it is installed?", "LauncherException.Form1"); - } - } - string exe = regKey.GetValue("Exe").ToString(); - exeFlags = regKey.GetValue("Flags").ToString(); - exePath = regKey.GetValue("").ToString(); - runLine = exePath + "\\" + exe; - Registry.LocalMachine.Flush(); - Registry.LocalMachine.Close(); - } - - public Form1() - { - InitializeComponent(); - ArrayList menuItems = new ArrayList(); - - getClient(ref exePath, ref runLine, ref exeFlags); - - menuItems.Add("Please select one:"); - - addLocalSims(ref menuItems); - - menuItems.Add("OSGrid - www.osgrid.org"); - menuItems.Add("DeepGrid - www.deepgrid.com"); - menuItems.Add("OpenlifeGrid - www.openlifegrid.com"); - menuItems.Add("Linden Labs - www.secondlife.com"); - - comboBox1.DataSource = menuItems; - } - - private void radioButton1_CheckedChanged(object sender, EventArgs e) - { - } - - private void comboBox1_SelectedIndexChanged(object sender, EventArgs e) - { - if (comboBox1.Text == "Please select one:") { return; } - if (comboBox1.Text == "Local Sandbox") { runUrl=" -loginuri " + sandboxUrl;} - if (comboBox1.Text == "Local Grid Server") { runUrl = " -loginuri " + gridUrl; } - if (comboBox1.Text == "DeepGrid - www.deepgrid.com") { runUrl = " -loginuri " + deepGridUrl; } - if (comboBox1.Text == "OSGrid - www.osgrid.org") { runUrl = " -loginuri " + osGridUrl; } - if (comboBox1.Text == "OpenlifeGrid - www.openlifegrid.com") { runUrl = " -loginuri " + openLifeGridUrl; } - if (comboBox1.Text == "Linden Labs - www.secondlife.com") { runUrl = ""; } - - System.Diagnostics.Process proc = new System.Diagnostics.Process(); - proc.StartInfo.FileName = runLine; - proc.StartInfo.Arguments = exeFlags.ToString() + " " + runUrl; - proc.StartInfo.UseShellExecute = false; - proc.StartInfo.RedirectStandardOutput = false; - proc.StartInfo.WorkingDirectory = exePath.ToString(); - proc.Start(); - proc.WaitForExit(); - } - } -} diff --git a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Form1.resx b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Form1.resx deleted file mode 100644 index 19dc0dd..0000000 --- a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Form1.resx +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/LauncherException.cs b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/LauncherException.cs deleted file mode 100644 index e31bd1d..0000000 --- a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/LauncherException.cs +++ /dev/null @@ -1,53 +0,0 @@ -/* -* Copyright (c) Contributors, http://opensimulator.org/ -* See CONTRIBUTORS.TXT for a full list of copyright holders. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions are met: -* * Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* * Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in the -* documentation and/or other materials provided with the distribution. -* * Neither the name of the OpenSim Project nor the -* names of its contributors may be used to endorse or promote products -* derived from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY -* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY -* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -* -*/ - -using System; -using System.Collections.Generic; -using System.Text; - -namespace LaunchSLClient -{ - class LauncherException : ApplicationException - { - private const string CUSTOMMESSAGE = "The SL Client Launcher has failed with the following error: "; - - private LauncherException() { } - - public LauncherException(string errorMesssage, string source) - : base (CUSTOMMESSAGE + errorMesssage) - { - base.Source = source; - } - - public LauncherException(string errorMessage, string source, Exception innerException) - : base(CUSTOMMESSAGE + errorMessage, innerException) - { - base.Source = source; - } - } -} diff --git a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Program.cs b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Program.cs deleted file mode 100644 index 778d5c0..0000000 --- a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Program.cs +++ /dev/null @@ -1,56 +0,0 @@ -/* -* Copyright (c) Contributors, http://opensimulator.org/ -* See CONTRIBUTORS.TXT for a full list of copyright holders. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions are met: -* * Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* * Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in the -* documentation and/or other materials provided with the distribution. -* * Neither the name of the OpenSim Project nor the -* names of its contributors may be used to endorse or promote products -* derived from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY -* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY -* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -* -*/ - -using System; -using System.Collections.Generic; -using System.Windows.Forms; - -namespace LaunchSLClient -{ - static class Program - { - /// - /// The main entry point for the application. - /// - [STAThread] - static void Main() - { - try - { - Application.EnableVisualStyles(); - Application.SetCompatibleTextRenderingDefault(false); - Application.Run(new Form1()); - } - catch (Exception ex) - { - // Handles all unhandled errors - MessageBox.Show(ex.Message,"Unhandled Error"); - } - } - } -} diff --git a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Properties/AssemblyInfo.cs b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Properties/AssemblyInfo.cs deleted file mode 100644 index 87a4ac4..0000000 --- a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,61 +0,0 @@ -/* -* Copyright (c) Contributors, http://opensimulator.org/ -* See CONTRIBUTORS.TXT for a full list of copyright holders. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions are met: -* * Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* * Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in the -* documentation and/or other materials provided with the distribution. -* * Neither the name of the OpenSim Project nor the -* names of its contributors may be used to endorse or promote products -* derived from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY -* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY -* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -* -*/ - -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("LaunchSLClient")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("Home")] -[assembly: AssemblyProduct("LaunchSLClient")] -[assembly: AssemblyCopyright("Copyright © Home 2007")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("b08c6904-e6cc-4d9c-8d24-feb0464b1648")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Properties/Resources.Designer.cs b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Properties/Resources.Designer.cs deleted file mode 100644 index 4e9188d..0000000 --- a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Properties/Resources.Designer.cs +++ /dev/null @@ -1,71 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:2.0.50727.832 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace LaunchSLClient.Properties -{ - - - /// - /// A strongly-typed resource class, for looking up localized strings, etc. - /// - // This class was auto-generated by the StronglyTypedResourceBuilder - // class via a tool like ResGen or Visual Studio. - // To add or remove a member, edit your .ResX file then rerun ResGen - // with the /str option, or rebuild your VS project. - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "2.0.0.0")] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - internal class Resources - { - - private static global::System.Resources.ResourceManager resourceMan; - - private static global::System.Globalization.CultureInfo resourceCulture; - - [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] - internal Resources() - { - } - - /// - /// Returns the cached ResourceManager instance used by this class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Resources.ResourceManager ResourceManager - { - get - { - if ((resourceMan == null)) - { - global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("LaunchSLClient.Properties.Resources", typeof(Resources).Assembly); - resourceMan = temp; - } - return resourceMan; - } - } - - /// - /// Overrides the current thread's CurrentUICulture property for all - /// resource lookups using this strongly typed resource class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Globalization.CultureInfo Culture - { - get - { - return resourceCulture; - } - set - { - resourceCulture = value; - } - } - } -} diff --git a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Properties/Resources.resx b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Properties/Resources.resx deleted file mode 100644 index af7dbeb..0000000 --- a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Properties/Resources.resx +++ /dev/null @@ -1,117 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Properties/Settings.Designer.cs b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Properties/Settings.Designer.cs deleted file mode 100644 index 3dcc200..0000000 --- a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Properties/Settings.Designer.cs +++ /dev/null @@ -1,30 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:2.0.50727.832 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace LaunchSLClient.Properties -{ - - - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "8.0.0.0")] - internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase - { - - private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); - - public static Settings Default - { - get - { - return defaultInstance; - } - } - } -} diff --git a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Properties/Settings.settings b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Properties/Settings.settings deleted file mode 100644 index 3964565..0000000 --- a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Properties/Settings.settings +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/OpenSim/Tools/LaunchSLClient/LauncherException.cs b/OpenSim/Tools/LaunchSLClient/LauncherException.cs new file mode 100644 index 0000000..e31bd1d --- /dev/null +++ b/OpenSim/Tools/LaunchSLClient/LauncherException.cs @@ -0,0 +1,53 @@ +/* +* Copyright (c) Contributors, http://opensimulator.org/ +* See CONTRIBUTORS.TXT for a full list of copyright holders. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenSim Project nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +*/ + +using System; +using System.Collections.Generic; +using System.Text; + +namespace LaunchSLClient +{ + class LauncherException : ApplicationException + { + private const string CUSTOMMESSAGE = "The SL Client Launcher has failed with the following error: "; + + private LauncherException() { } + + public LauncherException(string errorMesssage, string source) + : base (CUSTOMMESSAGE + errorMesssage) + { + base.Source = source; + } + + public LauncherException(string errorMessage, string source, Exception innerException) + : base(CUSTOMMESSAGE + errorMessage, innerException) + { + base.Source = source; + } + } +} diff --git a/OpenSim/Tools/LaunchSLClient/Program.cs b/OpenSim/Tools/LaunchSLClient/Program.cs new file mode 100644 index 0000000..778d5c0 --- /dev/null +++ b/OpenSim/Tools/LaunchSLClient/Program.cs @@ -0,0 +1,56 @@ +/* +* Copyright (c) Contributors, http://opensimulator.org/ +* See CONTRIBUTORS.TXT for a full list of copyright holders. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenSim Project nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +*/ + +using System; +using System.Collections.Generic; +using System.Windows.Forms; + +namespace LaunchSLClient +{ + static class Program + { + /// + /// The main entry point for the application. + /// + [STAThread] + static void Main() + { + try + { + Application.EnableVisualStyles(); + Application.SetCompatibleTextRenderingDefault(false); + Application.Run(new Form1()); + } + catch (Exception ex) + { + // Handles all unhandled errors + MessageBox.Show(ex.Message,"Unhandled Error"); + } + } + } +} diff --git a/OpenSim/Tools/LaunchSLClient/Properties/AssemblyInfo.cs b/OpenSim/Tools/LaunchSLClient/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..87a4ac4 --- /dev/null +++ b/OpenSim/Tools/LaunchSLClient/Properties/AssemblyInfo.cs @@ -0,0 +1,61 @@ +/* +* Copyright (c) Contributors, http://opensimulator.org/ +* See CONTRIBUTORS.TXT for a full list of copyright holders. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenSim Project nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +*/ + +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("LaunchSLClient")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("Home")] +[assembly: AssemblyProduct("LaunchSLClient")] +[assembly: AssemblyCopyright("Copyright © Home 2007")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("b08c6904-e6cc-4d9c-8d24-feb0464b1648")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/OpenSim/Tools/LaunchSLClient/Properties/Resources.Designer.cs b/OpenSim/Tools/LaunchSLClient/Properties/Resources.Designer.cs new file mode 100644 index 0000000..4e9188d --- /dev/null +++ b/OpenSim/Tools/LaunchSLClient/Properties/Resources.Designer.cs @@ -0,0 +1,71 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.50727.832 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace LaunchSLClient.Properties +{ + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "2.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources + { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() + { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager + { + get + { + if ((resourceMan == null)) + { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("LaunchSLClient.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture + { + get + { + return resourceCulture; + } + set + { + resourceCulture = value; + } + } + } +} diff --git a/OpenSim/Tools/LaunchSLClient/Properties/Resources.resx b/OpenSim/Tools/LaunchSLClient/Properties/Resources.resx new file mode 100644 index 0000000..af7dbeb --- /dev/null +++ b/OpenSim/Tools/LaunchSLClient/Properties/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/OpenSim/Tools/LaunchSLClient/Properties/Settings.Designer.cs b/OpenSim/Tools/LaunchSLClient/Properties/Settings.Designer.cs new file mode 100644 index 0000000..3dcc200 --- /dev/null +++ b/OpenSim/Tools/LaunchSLClient/Properties/Settings.Designer.cs @@ -0,0 +1,30 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.50727.832 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace LaunchSLClient.Properties +{ + + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "8.0.0.0")] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase + { + + private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); + + public static Settings Default + { + get + { + return defaultInstance; + } + } + } +} diff --git a/OpenSim/Tools/LaunchSLClient/Properties/Settings.settings b/OpenSim/Tools/LaunchSLClient/Properties/Settings.settings new file mode 100644 index 0000000..3964565 --- /dev/null +++ b/OpenSim/Tools/LaunchSLClient/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + diff --git a/OpenSim/Tools/LaunchSLClient/prebuild.xml b/OpenSim/Tools/LaunchSLClient/prebuild.xml deleted file mode 100644 index 8e58ba6..0000000 --- a/OpenSim/Tools/LaunchSLClient/prebuild.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - TRACE;DEBUG - false - false - false - 4 - false - - ../../../bin - true - true - false - - - - - TRACE - true - false - false - 4 - false - - ../../../bin - false - true - false - - - - - - - ../../../bin/ - - - - - ../../../bin/ - - - - ../../../bin/ - - - - - - - - - - - - - - - - - - - diff --git a/OpenSim/Tools/LaunchSLClient/runprebuild.bat b/OpenSim/Tools/LaunchSLClient/runprebuild.bat deleted file mode 100755 index 0427d2e..0000000 --- a/OpenSim/Tools/LaunchSLClient/runprebuild.bat +++ /dev/null @@ -1,2 +0,0 @@ -..\..\..\bin\Prebuild.exe /target nant -..\..\..\bin\Prebuild.exe /target vs2005 diff --git a/OpenSim/Tools/LaunchSLClient/runprebuild.sh b/OpenSim/Tools/LaunchSLClient/runprebuild.sh deleted file mode 100755 index 7215bc5..0000000 --- a/OpenSim/Tools/LaunchSLClient/runprebuild.sh +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/sh - -mono ../../../bin/Prebuild.exe /target nant -mono ../../../bin/Prebuild.exe /target vs2005 -- cgit v1.1 From 9e828ab1682b167e0ddc23563aaad749f5cc2701 Mon Sep 17 00:00:00 2001 From: Charles Krinke Date: Sun, 17 Feb 2008 01:57:07 +0000 Subject: Thank you very much, Taoki for additions to pCampBot to improve walking, talking and adding additional sentences for communications with pCampBot. --- OpenSim/Tools/pCampBot/PhysicsBot.cs | 44 ++++++++++++++++++++++-------------- 1 file changed, 27 insertions(+), 17 deletions(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/pCampBot/PhysicsBot.cs b/OpenSim/Tools/pCampBot/PhysicsBot.cs index 500683a..48ce062 100644 --- a/OpenSim/Tools/pCampBot/PhysicsBot.cs +++ b/OpenSim/Tools/pCampBot/PhysicsBot.cs @@ -36,7 +36,7 @@ using Nini.Config; using System.Threading; using OpenSim.Framework; using OpenSim.Framework.Console; -using Timer=System.Timers.Timer; +using Timer = System.Timers.Timer; namespace pCampBot { @@ -49,10 +49,10 @@ namespace pCampBot public string lastname; public string password; public string loginURI; - + public event AnEvent OnConnected; public event AnEvent OnDisconnected; - + protected Timer m_action; // Action Timer protected Random somthing = new Random(System.Environment.TickCount);// We do stuff randomly here @@ -79,24 +79,34 @@ namespace pCampBot { //client.Throttle.Task = 500000f; //client.Throttle.Set(); - - client.Self.Movement.AlwaysRun = true; + int walkorrun = somthing.Next(4); // Randomize between walking and running. The greater this number, + // the greater the bot's chances to walk instead of run. + if (walkorrun == 0) + { + client.Self.Movement.AlwaysRun = true; + } + else + { + client.Self.Movement.AlwaysRun = false; + } + LLVector3 pos = client.Self.SimPosition; - LLVector3 newpos = new LLVector3(somthing.Next(255),somthing.Next(255),somthing.Next(255)); - - + LLVector3 newpos = new LLVector3(somthing.Next(255), somthing.Next(255), somthing.Next(255)); client.Self.Movement.TurnToward(newpos); + for (int i = 0; i < 2000; i++) { client.Self.Movement.AtPos = true; + Thread.Sleep(somthing.Next(25, 75)); // Makes sure the bots keep walking for this time. } client.Self.Jump(); + string randomf = talkarray[somthing.Next(talkarray.Length)]; if (talkarray.Length > 1 && randomf.Length > 1) - client.Self.Chat("Can't do it, " + randomf, 0, ChatType.Normal); - - Thread.Sleep(somthing.Next(1,20)); - + client.Self.Chat(randomf, 0, ChatType.Normal); + + //Thread.Sleep(somthing.Next(1, 10)); // Apparently its better without it right now. + } /// @@ -132,7 +142,7 @@ namespace pCampBot client.Network.OnDisconnected += new NetworkManager.DisconnectedCallback(this.Network_OnDisconnected); if (client.Network.Login(firstname, lastname, password, "pCampBot", "Your name")) { - + if (OnConnected != null) { m_action = new Timer(somthing.Next(1000, 10000)); @@ -169,15 +179,15 @@ namespace pCampBot { if (OnDisconnected != null) { - OnDisconnected(this,EventType.DISCONNECTED); + OnDisconnected(this, EventType.DISCONNECTED); } } public string[] readexcuses() { string allexcuses = ""; - - string file = Path.Combine(Util.configDir(), "excuses"); + + string file = Path.Combine(Util.configDir(), "pCampBotSentences.txt"); if (File.Exists(file)) { StreamReader csr = File.OpenText(file); @@ -185,7 +195,7 @@ namespace pCampBot csr.Close(); } - return allexcuses.Split(Environment.NewLine.ToCharArray()); + return allexcuses.Split(Environment.NewLine.ToCharArray()); } } } -- cgit v1.1 From 47c909ca0af6e39a55b38db74df49c7629b552b9 Mon Sep 17 00:00:00 2001 From: Tedd Hansen Date: Tue, 19 Feb 2008 12:02:53 +0000 Subject: Playing "Name that thread". Adding names and isbackground=true to all threads so it will be easier to debug. --- OpenSim/Tools/pCampBot/BotManager.cs | 2 ++ 1 file changed, 2 insertions(+) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/pCampBot/BotManager.cs b/OpenSim/Tools/pCampBot/BotManager.cs index 0c7fa4e..1dc1dc1 100644 --- a/OpenSim/Tools/pCampBot/BotManager.cs +++ b/OpenSim/Tools/pCampBot/BotManager.cs @@ -114,6 +114,8 @@ namespace pCampBot if (cs.GetString("lastname", "random") == "random") pb.lastname = CreateRandomName(); m_td[pos] = new Thread(pb.startup); + m_td[pos].Name = "CampBot_" + pos; + m_td[pos].IsBackground = true; m_td[pos].Start(); m_lBot.Add(pb); } -- cgit v1.1 From a8cfbbe963529728acbab4d9936cb89af380d1ac Mon Sep 17 00:00:00 2001 From: Jeff Ames Date: Wed, 20 Feb 2008 18:38:20 +0000 Subject: Minor cleanup. --- OpenSim/Tools/OpenSim.GUI/InputTextBoxControl.cs | 2 +- OpenSim/Tools/OpenSim.GUI/Main.Designer.cs | 2 +- OpenSim/Tools/OpenSim.GUI/Main.cs | 2 +- OpenSim/Tools/OpenSim.GUI/ProcessManager.cs | 2 +- OpenSim/Tools/OpenSim.GUI/Program.cs | 2 +- OpenSim/Tools/OpenSim.GUI/frmConfiguration.Designer.cs | 2 +- OpenSim/Tools/OpenSim.GUI/frmConfiguration.cs | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/OpenSim.GUI/InputTextBoxControl.cs b/OpenSim/Tools/OpenSim.GUI/InputTextBoxControl.cs index 467942e..6f8d332 100644 --- a/OpenSim/Tools/OpenSim.GUI/InputTextBoxControl.cs +++ b/OpenSim/Tools/OpenSim.GUI/InputTextBoxControl.cs @@ -13,7 +13,7 @@ * names of its contributors may be used to endorse or promote products * derived from this software without specific prior written permission. * -* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS AS IS AND ANY +* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY diff --git a/OpenSim/Tools/OpenSim.GUI/Main.Designer.cs b/OpenSim/Tools/OpenSim.GUI/Main.Designer.cs index d693b9a..ec3970e 100644 --- a/OpenSim/Tools/OpenSim.GUI/Main.Designer.cs +++ b/OpenSim/Tools/OpenSim.GUI/Main.Designer.cs @@ -13,7 +13,7 @@ * names of its contributors may be used to endorse or promote products * derived from this software without specific prior written permission. * -* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS AS IS AND ANY +* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY diff --git a/OpenSim/Tools/OpenSim.GUI/Main.cs b/OpenSim/Tools/OpenSim.GUI/Main.cs index 24e7bae..d5b5616 100644 --- a/OpenSim/Tools/OpenSim.GUI/Main.cs +++ b/OpenSim/Tools/OpenSim.GUI/Main.cs @@ -13,7 +13,7 @@ * names of its contributors may be used to endorse or promote products * derived from this software without specific prior written permission. * -* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS AS IS AND ANY +* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY diff --git a/OpenSim/Tools/OpenSim.GUI/ProcessManager.cs b/OpenSim/Tools/OpenSim.GUI/ProcessManager.cs index 8421f0e..0fb3ea4 100644 --- a/OpenSim/Tools/OpenSim.GUI/ProcessManager.cs +++ b/OpenSim/Tools/OpenSim.GUI/ProcessManager.cs @@ -13,7 +13,7 @@ * names of its contributors may be used to endorse or promote products * derived from this software without specific prior written permission. * -* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS AS IS AND ANY +* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY diff --git a/OpenSim/Tools/OpenSim.GUI/Program.cs b/OpenSim/Tools/OpenSim.GUI/Program.cs index e646b9c..231a001 100644 --- a/OpenSim/Tools/OpenSim.GUI/Program.cs +++ b/OpenSim/Tools/OpenSim.GUI/Program.cs @@ -13,7 +13,7 @@ * names of its contributors may be used to endorse or promote products * derived from this software without specific prior written permission. * -* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS AS IS AND ANY +* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY diff --git a/OpenSim/Tools/OpenSim.GUI/frmConfiguration.Designer.cs b/OpenSim/Tools/OpenSim.GUI/frmConfiguration.Designer.cs index 6da9bc1..92d1aa4 100644 --- a/OpenSim/Tools/OpenSim.GUI/frmConfiguration.Designer.cs +++ b/OpenSim/Tools/OpenSim.GUI/frmConfiguration.Designer.cs @@ -13,7 +13,7 @@ * names of its contributors may be used to endorse or promote products * derived from this software without specific prior written permission. * -* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS AS IS AND ANY +* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY diff --git a/OpenSim/Tools/OpenSim.GUI/frmConfiguration.cs b/OpenSim/Tools/OpenSim.GUI/frmConfiguration.cs index 2c9b97a..91ad656 100644 --- a/OpenSim/Tools/OpenSim.GUI/frmConfiguration.cs +++ b/OpenSim/Tools/OpenSim.GUI/frmConfiguration.cs @@ -13,7 +13,7 @@ * names of its contributors may be used to endorse or promote products * derived from this software without specific prior written permission. * -* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS AS IS AND ANY +* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY -- cgit v1.1 From 7102ac77698f4bfd7406d6e8871db7b006c2cae2 Mon Sep 17 00:00:00 2001 From: Tedd Hansen Date: Thu, 21 Feb 2008 10:43:24 +0000 Subject: "threads" command now works. I've added manual tracking of threads (only if compiled in DEBUG mode)... Its ugly and even requires a separate thread to track the treads, but it will be very valuable in debugging. --- OpenSim/Tools/pCampBot/BotManager.cs | 1 + 1 file changed, 1 insertion(+) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/pCampBot/BotManager.cs b/OpenSim/Tools/pCampBot/BotManager.cs index 1dc1dc1..36f3d7f 100644 --- a/OpenSim/Tools/pCampBot/BotManager.cs +++ b/OpenSim/Tools/pCampBot/BotManager.cs @@ -118,6 +118,7 @@ namespace pCampBot m_td[pos].IsBackground = true; m_td[pos].Start(); m_lBot.Add(pb); + OpenSim.Framework.ThreadTracker.Add(m_td[pos]); } /// -- cgit v1.1 From 840bf28be6fa851d7165ff6c79bba45a5b86050d Mon Sep 17 00:00:00 2001 From: Tedd Hansen Date: Fri, 22 Feb 2008 23:21:22 +0000 Subject: Removed LaunchSLClient from Prebuild - it can be added to solution on manually by whoever is working on it. :) --- OpenSim/Tools/LaunchSLClient/LaunchSLClient.csproj | 152 +++++++++++++++++++++ .../LaunchSLClient/LaunchSLClient.csproj.user | 12 ++ 2 files changed, 164 insertions(+) create mode 100644 OpenSim/Tools/LaunchSLClient/LaunchSLClient.csproj create mode 100644 OpenSim/Tools/LaunchSLClient/LaunchSLClient.csproj.user (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/LaunchSLClient/LaunchSLClient.csproj b/OpenSim/Tools/LaunchSLClient/LaunchSLClient.csproj new file mode 100644 index 0000000..b6b072b --- /dev/null +++ b/OpenSim/Tools/LaunchSLClient/LaunchSLClient.csproj @@ -0,0 +1,152 @@ + + + Local + 9.0.21022 + 2.0 + {FFC2EE60-0000-0000-0000-000000000000} + Debug + AnyCPU + + + + + LaunchSLClient + JScript + Grid + IE50 + false + Exe + + + LaunchSLClient + + + + + + + False + 285212672 + False + + + TRACE;DEBUG + + + True + 4096 + False + ..\..\..\bin\ + False + False + False + 4 + + + + + False + 285212672 + False + + + TRACE + + + False + 4096 + True + ..\..\..\bin\ + False + False + False + 4 + + + + + + Microsoft.Win32.dll + False + + + System.dll + False + + + System.Collections.dll + False + + + System.Collections.Generic.dll + False + + + System.ComponentModel.dll + False + + + System.Data.dll + False + + + System.Diagnostics.dll + False + + + System.Drawing.dll + False + + + System.IO.dll + False + + + System.Text.dll + False + + + System.Text.RegularExpressions.dll + False + + + System.Windows.Forms.dll + False + + + + + + + Form + + + Form1.cs + Code + + + Code + + + Code + + + Code + + + Properties\Resources.cs + Code + + + Properties\Settings.cs + Code + + + + + + + + + + \ No newline at end of file diff --git a/OpenSim/Tools/LaunchSLClient/LaunchSLClient.csproj.user b/OpenSim/Tools/LaunchSLClient/LaunchSLClient.csproj.user new file mode 100644 index 0000000..fa7bb7e --- /dev/null +++ b/OpenSim/Tools/LaunchSLClient/LaunchSLClient.csproj.user @@ -0,0 +1,12 @@ + + + Debug + AnyCPU + C:\OpenSim\trunk3\bin\ + 9.0.21022 + ProjectFiles + 0 + + + + -- cgit v1.1 From a4ad602e1d15c8376f41ffc0f64e6fcef02bc856 Mon Sep 17 00:00:00 2001 From: Tedd Hansen Date: Fri, 22 Feb 2008 23:29:12 +0000 Subject: Trying to fix SVN update error: 1/2 --- OpenSim/Tools/LaunchSLClient/LaunchSLClient.csproj | 152 --------------------- .../LaunchSLClient/LaunchSLClient.csproj.user | 12 -- 2 files changed, 164 deletions(-) delete mode 100644 OpenSim/Tools/LaunchSLClient/LaunchSLClient.csproj delete mode 100644 OpenSim/Tools/LaunchSLClient/LaunchSLClient.csproj.user (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/LaunchSLClient/LaunchSLClient.csproj b/OpenSim/Tools/LaunchSLClient/LaunchSLClient.csproj deleted file mode 100644 index b6b072b..0000000 --- a/OpenSim/Tools/LaunchSLClient/LaunchSLClient.csproj +++ /dev/null @@ -1,152 +0,0 @@ - - - Local - 9.0.21022 - 2.0 - {FFC2EE60-0000-0000-0000-000000000000} - Debug - AnyCPU - - - - - LaunchSLClient - JScript - Grid - IE50 - false - Exe - - - LaunchSLClient - - - - - - - False - 285212672 - False - - - TRACE;DEBUG - - - True - 4096 - False - ..\..\..\bin\ - False - False - False - 4 - - - - - False - 285212672 - False - - - TRACE - - - False - 4096 - True - ..\..\..\bin\ - False - False - False - 4 - - - - - - Microsoft.Win32.dll - False - - - System.dll - False - - - System.Collections.dll - False - - - System.Collections.Generic.dll - False - - - System.ComponentModel.dll - False - - - System.Data.dll - False - - - System.Diagnostics.dll - False - - - System.Drawing.dll - False - - - System.IO.dll - False - - - System.Text.dll - False - - - System.Text.RegularExpressions.dll - False - - - System.Windows.Forms.dll - False - - - - - - - Form - - - Form1.cs - Code - - - Code - - - Code - - - Code - - - Properties\Resources.cs - Code - - - Properties\Settings.cs - Code - - - - - - - - - - \ No newline at end of file diff --git a/OpenSim/Tools/LaunchSLClient/LaunchSLClient.csproj.user b/OpenSim/Tools/LaunchSLClient/LaunchSLClient.csproj.user deleted file mode 100644 index fa7bb7e..0000000 --- a/OpenSim/Tools/LaunchSLClient/LaunchSLClient.csproj.user +++ /dev/null @@ -1,12 +0,0 @@ - - - Debug - AnyCPU - C:\OpenSim\trunk3\bin\ - 9.0.21022 - ProjectFiles - 0 - - - - -- cgit v1.1 From c485d56512e8fb49298ef0f170402ae50412631c Mon Sep 17 00:00:00 2001 From: Tedd Hansen Date: Fri, 22 Feb 2008 23:29:46 +0000 Subject: Trying to fix SVN update error: 2/2 --- OpenSim/Tools/LaunchSLClient/LaunchSLClient.csproj | 152 +++++++++++++++++++++ .../LaunchSLClient/LaunchSLClient.csproj.user | 12 ++ 2 files changed, 164 insertions(+) create mode 100644 OpenSim/Tools/LaunchSLClient/LaunchSLClient.csproj create mode 100644 OpenSim/Tools/LaunchSLClient/LaunchSLClient.csproj.user (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/LaunchSLClient/LaunchSLClient.csproj b/OpenSim/Tools/LaunchSLClient/LaunchSLClient.csproj new file mode 100644 index 0000000..b6b072b --- /dev/null +++ b/OpenSim/Tools/LaunchSLClient/LaunchSLClient.csproj @@ -0,0 +1,152 @@ + + + Local + 9.0.21022 + 2.0 + {FFC2EE60-0000-0000-0000-000000000000} + Debug + AnyCPU + + + + + LaunchSLClient + JScript + Grid + IE50 + false + Exe + + + LaunchSLClient + + + + + + + False + 285212672 + False + + + TRACE;DEBUG + + + True + 4096 + False + ..\..\..\bin\ + False + False + False + 4 + + + + + False + 285212672 + False + + + TRACE + + + False + 4096 + True + ..\..\..\bin\ + False + False + False + 4 + + + + + + Microsoft.Win32.dll + False + + + System.dll + False + + + System.Collections.dll + False + + + System.Collections.Generic.dll + False + + + System.ComponentModel.dll + False + + + System.Data.dll + False + + + System.Diagnostics.dll + False + + + System.Drawing.dll + False + + + System.IO.dll + False + + + System.Text.dll + False + + + System.Text.RegularExpressions.dll + False + + + System.Windows.Forms.dll + False + + + + + + + Form + + + Form1.cs + Code + + + Code + + + Code + + + Code + + + Properties\Resources.cs + Code + + + Properties\Settings.cs + Code + + + + + + + + + + \ No newline at end of file diff --git a/OpenSim/Tools/LaunchSLClient/LaunchSLClient.csproj.user b/OpenSim/Tools/LaunchSLClient/LaunchSLClient.csproj.user new file mode 100644 index 0000000..fa7bb7e --- /dev/null +++ b/OpenSim/Tools/LaunchSLClient/LaunchSLClient.csproj.user @@ -0,0 +1,12 @@ + + + Debug + AnyCPU + C:\OpenSim\trunk3\bin\ + 9.0.21022 + ProjectFiles + 0 + + + + -- cgit v1.1 From 8d57f2e30a4804a57c23d7defed5f8ffe453b29f Mon Sep 17 00:00:00 2001 From: Jeff Ames Date: Sat, 23 Feb 2008 13:50:31 +0000 Subject: Update svn properties. --- OpenSim/Tools/LaunchSLClient/LaunchSLClient.csproj | 302 ++++++++++----------- .../LaunchSLClient/LaunchSLClient.csproj.user | 24 +- 2 files changed, 163 insertions(+), 163 deletions(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/LaunchSLClient/LaunchSLClient.csproj b/OpenSim/Tools/LaunchSLClient/LaunchSLClient.csproj index b6b072b..73c6072 100644 --- a/OpenSim/Tools/LaunchSLClient/LaunchSLClient.csproj +++ b/OpenSim/Tools/LaunchSLClient/LaunchSLClient.csproj @@ -1,152 +1,152 @@ - - - Local - 9.0.21022 - 2.0 - {FFC2EE60-0000-0000-0000-000000000000} - Debug - AnyCPU - - - - - LaunchSLClient - JScript - Grid - IE50 - false - Exe - - - LaunchSLClient - - - - - - - False - 285212672 - False - - - TRACE;DEBUG - - - True - 4096 - False - ..\..\..\bin\ - False - False - False - 4 - - - - - False - 285212672 - False - - - TRACE - - - False - 4096 - True - ..\..\..\bin\ - False - False - False - 4 - - - - - - Microsoft.Win32.dll - False - - - System.dll - False - - - System.Collections.dll - False - - - System.Collections.Generic.dll - False - - - System.ComponentModel.dll - False - - - System.Data.dll - False - - - System.Diagnostics.dll - False - - - System.Drawing.dll - False - - - System.IO.dll - False - - - System.Text.dll - False - - - System.Text.RegularExpressions.dll - False - - - System.Windows.Forms.dll - False - - - - - - - Form - - - Form1.cs - Code - - - Code - - - Code - - - Code - - - Properties\Resources.cs - Code - - - Properties\Settings.cs - Code - - - - - - - - - + + + Local + 9.0.21022 + 2.0 + {FFC2EE60-0000-0000-0000-000000000000} + Debug + AnyCPU + + + + + LaunchSLClient + JScript + Grid + IE50 + false + Exe + + + LaunchSLClient + + + + + + + False + 285212672 + False + + + TRACE;DEBUG + + + True + 4096 + False + ..\..\..\bin\ + False + False + False + 4 + + + + + False + 285212672 + False + + + TRACE + + + False + 4096 + True + ..\..\..\bin\ + False + False + False + 4 + + + + + + Microsoft.Win32.dll + False + + + System.dll + False + + + System.Collections.dll + False + + + System.Collections.Generic.dll + False + + + System.ComponentModel.dll + False + + + System.Data.dll + False + + + System.Diagnostics.dll + False + + + System.Drawing.dll + False + + + System.IO.dll + False + + + System.Text.dll + False + + + System.Text.RegularExpressions.dll + False + + + System.Windows.Forms.dll + False + + + + + + + Form + + + Form1.cs + Code + + + Code + + + Code + + + Code + + + Properties\Resources.cs + Code + + + Properties\Settings.cs + Code + + + + + + + + + \ No newline at end of file diff --git a/OpenSim/Tools/LaunchSLClient/LaunchSLClient.csproj.user b/OpenSim/Tools/LaunchSLClient/LaunchSLClient.csproj.user index fa7bb7e..8c5296f 100644 --- a/OpenSim/Tools/LaunchSLClient/LaunchSLClient.csproj.user +++ b/OpenSim/Tools/LaunchSLClient/LaunchSLClient.csproj.user @@ -1,12 +1,12 @@ - - - Debug - AnyCPU - C:\OpenSim\trunk3\bin\ - 9.0.21022 - ProjectFiles - 0 - - - - + + + Debug + AnyCPU + C:\OpenSim\trunk3\bin\ + 9.0.21022 + ProjectFiles + 0 + + + + -- cgit v1.1 From e626288059f0bab5f93c647d6cfdb43009f1b11e Mon Sep 17 00:00:00 2001 From: lbsa71 Date: Sat, 23 Feb 2008 20:20:08 +0000 Subject: * deleted .user file --- OpenSim/Tools/LaunchSLClient/LaunchSLClient.csproj.user | 12 ------------ 1 file changed, 12 deletions(-) delete mode 100644 OpenSim/Tools/LaunchSLClient/LaunchSLClient.csproj.user (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/LaunchSLClient/LaunchSLClient.csproj.user b/OpenSim/Tools/LaunchSLClient/LaunchSLClient.csproj.user deleted file mode 100644 index 8c5296f..0000000 --- a/OpenSim/Tools/LaunchSLClient/LaunchSLClient.csproj.user +++ /dev/null @@ -1,12 +0,0 @@ - - - Debug - AnyCPU - C:\OpenSim\trunk3\bin\ - 9.0.21022 - ProjectFiles - 0 - - - - -- cgit v1.1 From cda8b013ec524e083189d906ebaa536c4ee90eff Mon Sep 17 00:00:00 2001 From: Jeff Ames Date: Mon, 25 Feb 2008 11:53:21 +0000 Subject: Updated paths in classaudit script. --- OpenSim/Tools/classaudit.pl | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/classaudit.pl b/OpenSim/Tools/classaudit.pl index 9c92720..d5d28c7 100755 --- a/OpenSim/Tools/classaudit.pl +++ b/OpenSim/Tools/classaudit.pl @@ -37,14 +37,14 @@ use constant CLEAR => "\033[0m"; our %totals; -find(\&test, "../OpenSim"); +find(\&test, "../../OpenSim"); print Dumper(\%totals); sub test { my $file = $File::Find::name; my $dir = $File::Find::dir; - $file =~ s{^../}{}; #strip off prefix - $dir =~ s{^../}{}; #strip off prefix + $file =~ s{^../../}{}; #strip off prefix + $dir =~ s{^../../}{}; #strip off prefix return if ($file !~ /\.cs$/); return if ($file =~ /AssemblyInfo\.cs$/); -- cgit v1.1 From b8e6d6e24547a1a15f7771884d07647c25e42e2f Mon Sep 17 00:00:00 2001 From: Sean Dague Date: Tue, 26 Feb 2008 20:26:48 +0000 Subject: give pCampBot a -h, -help option --- OpenSim/Tools/pCampBot/pCampBot.cs | 40 ++++++++++++++++++++++++++++---------- 1 file changed, 30 insertions(+), 10 deletions(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/pCampBot/pCampBot.cs b/OpenSim/Tools/pCampBot/pCampBot.cs index 704a3f5..b701d7d 100644 --- a/OpenSim/Tools/pCampBot/pCampBot.cs +++ b/OpenSim/Tools/pCampBot/pCampBot.cs @@ -55,22 +55,42 @@ namespace pCampBot //Set up our nifty config.. thanks to nini ArgvConfigSource cs = new ArgvConfigSource(args); - cs.AddSwitch("Startup", "botcount"); - cs.AddSwitch("Startup", "loginuri"); + cs.AddSwitch("Startup", "botcount","n"); + cs.AddSwitch("Startup", "loginuri","l"); cs.AddSwitch("Startup", "firstname"); cs.AddSwitch("Startup", "lastname"); cs.AddSwitch("Startup", "password"); + cs.AddSwitch("Startup", "help","h"); IConfig ol = cs.Configs["Startup"]; - int botcount = ol.GetInt("botcount", 1); - BotManager bm = new BotManager(); - - //startup specified number of bots. 1 is the default - bm.dobotStartup(botcount, ol); - while (true) - { - MainConsole.Instance.Prompt(); + if (ol.Get("help") != null) { + Help(); + } else { + int botcount = ol.GetInt("botcount", 1); + + BotManager bm = new BotManager(); + + //startup specified number of bots. 1 is the default + bm.dobotStartup(botcount, ol); + while (true) + { + MainConsole.Instance.Prompt(); + } } } + + public static void Help() + { + System.Console.WriteLine( + "usage: pCampBot <-loginuri loginuri> [OPTIONS]\n" + + "Spawns a set of bots to test an OpenSim region\n\n" + + " -l, -loginuri loginuri for sim to log into (required)\n" + + " -n, -botcount number of bots to start (default: 1)\n" + + " -firstname first name for the bot(s) (default: random string)\n" + + " -lastname lastname for the bot(s) (default: random string)\n" + + " -password password for the bots(s) (default: random string)\n" + + " -h, -help show this message" + ); + } } } -- cgit v1.1 From 8d31fc2cd03fc08daf0a39b561758aedc7fff51a Mon Sep 17 00:00:00 2001 From: Sean Dague Date: Tue, 26 Feb 2008 21:10:57 +0000 Subject: require -loginuri on pCampBot --- OpenSim/Tools/pCampBot/PhysicsBot.cs | 2 +- OpenSim/Tools/pCampBot/pCampBot.cs | 36 +++++++++++++++++++++--------------- 2 files changed, 22 insertions(+), 16 deletions(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/pCampBot/PhysicsBot.cs b/OpenSim/Tools/pCampBot/PhysicsBot.cs index 48ce062..c3babda 100644 --- a/OpenSim/Tools/pCampBot/PhysicsBot.cs +++ b/OpenSim/Tools/pCampBot/PhysicsBot.cs @@ -117,7 +117,7 @@ namespace pCampBot firstname = startupConfig.GetString("firstname", "random"); lastname = startupConfig.GetString("lastname", "random"); password = startupConfig.GetString("password", "12345"); - loginURI = startupConfig.GetString("loginuri", "http://10.1.1.5:9000"); + loginURI = startupConfig.GetString("loginuri"); diff --git a/OpenSim/Tools/pCampBot/pCampBot.cs b/OpenSim/Tools/pCampBot/pCampBot.cs index b701d7d..56f2e26 100644 --- a/OpenSim/Tools/pCampBot/pCampBot.cs +++ b/OpenSim/Tools/pCampBot/pCampBot.cs @@ -52,34 +52,40 @@ namespace pCampBot [STAThread] public static void Main(string[] args) { - //Set up our nifty config.. thanks to nini - ArgvConfigSource cs = new ArgvConfigSource(args); - - cs.AddSwitch("Startup", "botcount","n"); - cs.AddSwitch("Startup", "loginuri","l"); - cs.AddSwitch("Startup", "firstname"); - cs.AddSwitch("Startup", "lastname"); - cs.AddSwitch("Startup", "password"); - cs.AddSwitch("Startup", "help","h"); - - IConfig ol = cs.Configs["Startup"]; - if (ol.Get("help") != null) { + IConfig config = ParseConfig(args); + if (config.Get("help") != null || config.Get("loginuri") == null) { Help(); } else { - int botcount = ol.GetInt("botcount", 1); + int botcount = config.GetInt("botcount", 1); BotManager bm = new BotManager(); //startup specified number of bots. 1 is the default - bm.dobotStartup(botcount, ol); + bm.dobotStartup(botcount, config); while (true) { MainConsole.Instance.Prompt(); } } } + + private static IConfig ParseConfig(String[] args) + { + //Set up our nifty config.. thanks to nini + ArgvConfigSource cs = new ArgvConfigSource(args); + + cs.AddSwitch("Startup", "botcount","n"); + cs.AddSwitch("Startup", "loginuri","l"); + cs.AddSwitch("Startup", "firstname"); + cs.AddSwitch("Startup", "lastname"); + cs.AddSwitch("Startup", "password"); + cs.AddSwitch("Startup", "help","h"); + + IConfig ol = cs.Configs["Startup"]; + return ol; + } - public static void Help() + private static void Help() { System.Console.WriteLine( "usage: pCampBot <-loginuri loginuri> [OPTIONS]\n" + -- cgit v1.1 From cd6f4a57e7586ffd5c6dae91633e61e293272def Mon Sep 17 00:00:00 2001 From: Jeff Ames Date: Tue, 4 Mar 2008 04:11:37 +0000 Subject: Added copyright heaaders. Minor cleanup. --- OpenSim/Tools/LaunchSLClient/Properties/AssemblyInfo.cs | 6 +++--- OpenSim/Tools/OpenSim.32BitLaunch/Properties/AssemblyInfo.cs | 4 ++-- OpenSim/Tools/OpenSim.GUI/Properties/AssemblyInfo.cs | 4 ++-- 3 files changed, 7 insertions(+), 7 deletions(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/LaunchSLClient/Properties/AssemblyInfo.cs b/OpenSim/Tools/LaunchSLClient/Properties/AssemblyInfo.cs index 87a4ac4..2c843a1 100644 --- a/OpenSim/Tools/LaunchSLClient/Properties/AssemblyInfo.cs +++ b/OpenSim/Tools/LaunchSLClient/Properties/AssemblyInfo.cs @@ -1,4 +1,4 @@ -/* +/* * Copyright (c) Contributors, http://opensimulator.org/ * See CONTRIBUTORS.TXT for a full list of copyright holders. * @@ -36,9 +36,9 @@ using System.Runtime.InteropServices; [assembly: AssemblyTitle("LaunchSLClient")] [assembly: AssemblyDescription("")] [assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("Home")] +[assembly: AssemblyCompany("")] [assembly: AssemblyProduct("LaunchSLClient")] -[assembly: AssemblyCopyright("Copyright © Home 2007")] +[assembly: AssemblyCopyright("Copyright (c) 2007")] [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] diff --git a/OpenSim/Tools/OpenSim.32BitLaunch/Properties/AssemblyInfo.cs b/OpenSim/Tools/OpenSim.32BitLaunch/Properties/AssemblyInfo.cs index 31543f8..fb7604c 100644 --- a/OpenSim/Tools/OpenSim.32BitLaunch/Properties/AssemblyInfo.cs +++ b/OpenSim/Tools/OpenSim.32BitLaunch/Properties/AssemblyInfo.cs @@ -1,4 +1,4 @@ -/* +/* * Copyright (c) Contributors, http://opensimulator.org/ * See CONTRIBUTORS.TXT for a full list of copyright holders. * @@ -38,7 +38,7 @@ using System.Runtime.InteropServices; [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("")] [assembly: AssemblyProduct("OpenSim.32BitLaunch")] -[assembly: AssemblyCopyright("Copyright © 2008")] +[assembly: AssemblyCopyright("Copyright (c) 2008")] [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] diff --git a/OpenSim/Tools/OpenSim.GUI/Properties/AssemblyInfo.cs b/OpenSim/Tools/OpenSim.GUI/Properties/AssemblyInfo.cs index f579a3f..c4c8abf 100644 --- a/OpenSim/Tools/OpenSim.GUI/Properties/AssemblyInfo.cs +++ b/OpenSim/Tools/OpenSim.GUI/Properties/AssemblyInfo.cs @@ -1,4 +1,4 @@ -/* +/* * Copyright (c) Contributors, http://opensimulator.org/ * See CONTRIBUTORS.TXT for a full list of copyright holders. * @@ -38,7 +38,7 @@ using System.Runtime.InteropServices; [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("")] [assembly: AssemblyProduct("OpenSim.GUI")] -[assembly: AssemblyCopyright("Copyright © 2007")] +[assembly: AssemblyCopyright("Copyright (c) 2007")] [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] -- cgit v1.1 From 47180080f0f4b93c60232b47ca4e093bd7c73a1d Mon Sep 17 00:00:00 2001 From: Jeff Ames Date: Tue, 18 Mar 2008 05:16:43 +0000 Subject: Formatting cleanup. --- OpenSim/Tools/Export/OpenSimExport.cs | 52 ++++++++++---------- OpenSim/Tools/LaunchSLClient/Form1.Designer.cs | 51 ++++++++++--------- OpenSim/Tools/LaunchSLClient/Form1.cs | 51 ++++++++++--------- OpenSim/Tools/LaunchSLClient/LauncherException.cs | 51 ++++++++++--------- OpenSim/Tools/LaunchSLClient/Program.cs | 51 ++++++++++--------- .../LaunchSLClient/Properties/AssemblyInfo.cs | 51 ++++++++++--------- OpenSim/Tools/OpenSim.32BitLaunch/Program.cs | 51 ++++++++++--------- .../OpenSim.32BitLaunch/Properties/AssemblyInfo.cs | 51 ++++++++++--------- OpenSim/Tools/OpenSim.GUI/InputTextBoxControl.cs | 57 ++++++++++------------ OpenSim/Tools/OpenSim.GUI/Main.Designer.cs | 52 ++++++++++---------- OpenSim/Tools/OpenSim.GUI/Main.cs | 51 ++++++++++--------- OpenSim/Tools/OpenSim.GUI/ProcessManager.cs | 51 ++++++++++--------- OpenSim/Tools/OpenSim.GUI/Program.cs | 51 ++++++++++--------- .../Tools/OpenSim.GUI/Properties/AssemblyInfo.cs | 51 ++++++++++--------- .../Tools/OpenSim.GUI/frmConfiguration.Designer.cs | 51 ++++++++++--------- OpenSim/Tools/OpenSim.GUI/frmConfiguration.cs | 51 ++++++++++--------- OpenSim/Tools/pCampBot/BotManager.cs | 51 ++++++++++--------- OpenSim/Tools/pCampBot/PhysicsBot.cs | 51 ++++++++++--------- OpenSim/Tools/pCampBot/pCampBot.cs | 51 ++++++++++--------- 19 files changed, 476 insertions(+), 501 deletions(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/Export/OpenSimExport.cs b/OpenSim/Tools/Export/OpenSimExport.cs index 8eebe35..525f33c 100644 --- a/OpenSim/Tools/Export/OpenSimExport.cs +++ b/OpenSim/Tools/Export/OpenSimExport.cs @@ -1,30 +1,30 @@ /* -* Copyright (c) Contributors, http://opensimulator.org/ -* See CONTRIBUTORS.TXT for a full list of copyright holders. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions are met: -* * Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* * Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in the -* documentation and/or other materials provided with the distribution. -* * Neither the name of the OpenSim Project nor the -* names of its contributors may be used to endorse or promote products -* derived from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY -* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY -* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -* -*/ + * Copyright (c) Contributors, http://opensimulator.org/ + * See CONTRIBUTORS.TXT for a full list of copyright holders. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the OpenSim Project nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + using System; using System.IO; using Nini.Config; diff --git a/OpenSim/Tools/LaunchSLClient/Form1.Designer.cs b/OpenSim/Tools/LaunchSLClient/Form1.Designer.cs index b841f0b..b9e905a 100644 --- a/OpenSim/Tools/LaunchSLClient/Form1.Designer.cs +++ b/OpenSim/Tools/LaunchSLClient/Form1.Designer.cs @@ -1,30 +1,29 @@ /* -* Copyright (c) Contributors, http://opensimulator.org/ -* See CONTRIBUTORS.TXT for a full list of copyright holders. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions are met: -* * Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* * Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in the -* documentation and/or other materials provided with the distribution. -* * Neither the name of the OpenSim Project nor the -* names of its contributors may be used to endorse or promote products -* derived from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY -* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY -* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -* -*/ + * Copyright (c) Contributors, http://opensimulator.org/ + * See CONTRIBUTORS.TXT for a full list of copyright holders. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the OpenSim Project nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ namespace LaunchSLClient { diff --git a/OpenSim/Tools/LaunchSLClient/Form1.cs b/OpenSim/Tools/LaunchSLClient/Form1.cs index 183a104..61aefa0 100644 --- a/OpenSim/Tools/LaunchSLClient/Form1.cs +++ b/OpenSim/Tools/LaunchSLClient/Form1.cs @@ -1,30 +1,29 @@ /* -* Copyright (c) Contributors, http://opensimulator.org/ -* See CONTRIBUTORS.TXT for a full list of copyright holders. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions are met: -* * Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* * Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in the -* documentation and/or other materials provided with the distribution. -* * Neither the name of the OpenSim Project nor the -* names of its contributors may be used to endorse or promote products -* derived from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY -* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY -* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -* -*/ + * Copyright (c) Contributors, http://opensimulator.org/ + * See CONTRIBUTORS.TXT for a full list of copyright holders. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the OpenSim Project nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ using System; using System.IO; diff --git a/OpenSim/Tools/LaunchSLClient/LauncherException.cs b/OpenSim/Tools/LaunchSLClient/LauncherException.cs index e31bd1d..e1ba0bc 100644 --- a/OpenSim/Tools/LaunchSLClient/LauncherException.cs +++ b/OpenSim/Tools/LaunchSLClient/LauncherException.cs @@ -1,30 +1,29 @@ /* -* Copyright (c) Contributors, http://opensimulator.org/ -* See CONTRIBUTORS.TXT for a full list of copyright holders. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions are met: -* * Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* * Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in the -* documentation and/or other materials provided with the distribution. -* * Neither the name of the OpenSim Project nor the -* names of its contributors may be used to endorse or promote products -* derived from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY -* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY -* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -* -*/ + * Copyright (c) Contributors, http://opensimulator.org/ + * See CONTRIBUTORS.TXT for a full list of copyright holders. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the OpenSim Project nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ using System; using System.Collections.Generic; diff --git a/OpenSim/Tools/LaunchSLClient/Program.cs b/OpenSim/Tools/LaunchSLClient/Program.cs index 778d5c0..822611c 100644 --- a/OpenSim/Tools/LaunchSLClient/Program.cs +++ b/OpenSim/Tools/LaunchSLClient/Program.cs @@ -1,30 +1,29 @@ /* -* Copyright (c) Contributors, http://opensimulator.org/ -* See CONTRIBUTORS.TXT for a full list of copyright holders. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions are met: -* * Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* * Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in the -* documentation and/or other materials provided with the distribution. -* * Neither the name of the OpenSim Project nor the -* names of its contributors may be used to endorse or promote products -* derived from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY -* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY -* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -* -*/ + * Copyright (c) Contributors, http://opensimulator.org/ + * See CONTRIBUTORS.TXT for a full list of copyright holders. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the OpenSim Project nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ using System; using System.Collections.Generic; diff --git a/OpenSim/Tools/LaunchSLClient/Properties/AssemblyInfo.cs b/OpenSim/Tools/LaunchSLClient/Properties/AssemblyInfo.cs index 2c843a1..62af735 100644 --- a/OpenSim/Tools/LaunchSLClient/Properties/AssemblyInfo.cs +++ b/OpenSim/Tools/LaunchSLClient/Properties/AssemblyInfo.cs @@ -1,30 +1,29 @@ /* -* Copyright (c) Contributors, http://opensimulator.org/ -* See CONTRIBUTORS.TXT for a full list of copyright holders. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions are met: -* * Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* * Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in the -* documentation and/or other materials provided with the distribution. -* * Neither the name of the OpenSim Project nor the -* names of its contributors may be used to endorse or promote products -* derived from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY -* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY -* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -* -*/ + * Copyright (c) Contributors, http://opensimulator.org/ + * See CONTRIBUTORS.TXT for a full list of copyright holders. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the OpenSim Project nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ using System.Reflection; using System.Runtime.CompilerServices; diff --git a/OpenSim/Tools/OpenSim.32BitLaunch/Program.cs b/OpenSim/Tools/OpenSim.32BitLaunch/Program.cs index 78ba598..0c4de02 100644 --- a/OpenSim/Tools/OpenSim.32BitLaunch/Program.cs +++ b/OpenSim/Tools/OpenSim.32BitLaunch/Program.cs @@ -1,30 +1,29 @@ /* -* Copyright (c) Contributors, http://opensimulator.org/ -* See CONTRIBUTORS.TXT for a full list of copyright holders. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions are met: -* * Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* * Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in the -* documentation and/or other materials provided with the distribution. -* * Neither the name of the OpenSim Project nor the -* names of its contributors may be used to endorse or promote products -* derived from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY -* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY -* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -* -*/ + * Copyright (c) Contributors, http://opensimulator.org/ + * See CONTRIBUTORS.TXT for a full list of copyright holders. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the OpenSim Project nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ using System; diff --git a/OpenSim/Tools/OpenSim.32BitLaunch/Properties/AssemblyInfo.cs b/OpenSim/Tools/OpenSim.32BitLaunch/Properties/AssemblyInfo.cs index fb7604c..637fb09 100644 --- a/OpenSim/Tools/OpenSim.32BitLaunch/Properties/AssemblyInfo.cs +++ b/OpenSim/Tools/OpenSim.32BitLaunch/Properties/AssemblyInfo.cs @@ -1,30 +1,29 @@ /* -* Copyright (c) Contributors, http://opensimulator.org/ -* See CONTRIBUTORS.TXT for a full list of copyright holders. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions are met: -* * Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* * Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in the -* documentation and/or other materials provided with the distribution. -* * Neither the name of the OpenSim Project nor the -* names of its contributors may be used to endorse or promote products -* derived from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY -* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY -* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -* -*/ + * Copyright (c) Contributors, http://opensimulator.org/ + * See CONTRIBUTORS.TXT for a full list of copyright holders. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the OpenSim Project nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ using System.Reflection; using System.Runtime.CompilerServices; diff --git a/OpenSim/Tools/OpenSim.GUI/InputTextBoxControl.cs b/OpenSim/Tools/OpenSim.GUI/InputTextBoxControl.cs index 6f8d332..d0bd7bc 100644 --- a/OpenSim/Tools/OpenSim.GUI/InputTextBoxControl.cs +++ b/OpenSim/Tools/OpenSim.GUI/InputTextBoxControl.cs @@ -1,30 +1,29 @@ /* -* Copyright (c) Contributors, http://opensimulator.org/ -* See CONTRIBUTORS.TXT for a full list of copyright holders. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions are met: -* * Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* * Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in the -* documentation and/or other materials provided with the distribution. -* * Neither the name of the OpenSim Project nor the -* names of its contributors may be used to endorse or promote products -* derived from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY -* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY -* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -* -*/ + * Copyright (c) Contributors, http://opensimulator.org/ + * See CONTRIBUTORS.TXT for a full list of copyright holders. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the OpenSim Project nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ using System; using System.Collections.Generic; @@ -39,7 +38,6 @@ namespace OpenSim.GUI { this.KeyDown += new System.Windows.Forms.KeyEventHandler(TextInputControl_KeyDown); } - private List CommandHistory = new List(); private bool InHistory = false; @@ -47,14 +45,11 @@ namespace OpenSim.GUI void TextInputControl_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e) { - - if (e.KeyCode == Keys.Enter && InHistory == false) { CommandHistory.Add(this.Text); } - if (e.KeyCode == Keys.Up || e.KeyCode == Keys.Down) { // if not inside buffer, enter @@ -110,7 +105,5 @@ namespace OpenSim.GUI HistoryPosition = -1; } } - - } } diff --git a/OpenSim/Tools/OpenSim.GUI/Main.Designer.cs b/OpenSim/Tools/OpenSim.GUI/Main.Designer.cs index ec3970e..e1481a2 100644 --- a/OpenSim/Tools/OpenSim.GUI/Main.Designer.cs +++ b/OpenSim/Tools/OpenSim.GUI/Main.Designer.cs @@ -1,30 +1,29 @@ /* -* Copyright (c) Contributors, http://opensimulator.org/ -* See CONTRIBUTORS.TXT for a full list of copyright holders. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions are met: -* * Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* * Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in the -* documentation and/or other materials provided with the distribution. -* * Neither the name of the OpenSim Project nor the -* names of its contributors may be used to endorse or promote products -* derived from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY -* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY -* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -* -*/ + * Copyright (c) Contributors, http://opensimulator.org/ + * See CONTRIBUTORS.TXT for a full list of copyright holders. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the OpenSim Project nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ namespace OpenSim.GUI { @@ -1433,4 +1432,3 @@ namespace OpenSim.GUI private System.Windows.Forms.Button clear1; } } - diff --git a/OpenSim/Tools/OpenSim.GUI/Main.cs b/OpenSim/Tools/OpenSim.GUI/Main.cs index d5b5616..adb331b 100644 --- a/OpenSim/Tools/OpenSim.GUI/Main.cs +++ b/OpenSim/Tools/OpenSim.GUI/Main.cs @@ -1,30 +1,29 @@ /* -* Copyright (c) Contributors, http://opensimulator.org/ -* See CONTRIBUTORS.TXT for a full list of copyright holders. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions are met: -* * Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* * Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in the -* documentation and/or other materials provided with the distribution. -* * Neither the name of the OpenSim Project nor the -* names of its contributors may be used to endorse or promote products -* derived from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY -* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY -* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -* -*/ + * Copyright (c) Contributors, http://opensimulator.org/ + * See CONTRIBUTORS.TXT for a full list of copyright holders. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the OpenSim Project nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ using System; using System.Collections.Generic; diff --git a/OpenSim/Tools/OpenSim.GUI/ProcessManager.cs b/OpenSim/Tools/OpenSim.GUI/ProcessManager.cs index 0fb3ea4..de693a7 100644 --- a/OpenSim/Tools/OpenSim.GUI/ProcessManager.cs +++ b/OpenSim/Tools/OpenSim.GUI/ProcessManager.cs @@ -1,30 +1,29 @@ /* -* Copyright (c) Contributors, http://opensimulator.org/ -* See CONTRIBUTORS.TXT for a full list of copyright holders. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions are met: -* * Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* * Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in the -* documentation and/or other materials provided with the distribution. -* * Neither the name of the OpenSim Project nor the -* names of its contributors may be used to endorse or promote products -* derived from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY -* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY -* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -* -*/ + * Copyright (c) Contributors, http://opensimulator.org/ + * See CONTRIBUTORS.TXT for a full list of copyright holders. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the OpenSim Project nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ using System; using System.Collections.Generic; diff --git a/OpenSim/Tools/OpenSim.GUI/Program.cs b/OpenSim/Tools/OpenSim.GUI/Program.cs index 231a001..c41cfb7 100644 --- a/OpenSim/Tools/OpenSim.GUI/Program.cs +++ b/OpenSim/Tools/OpenSim.GUI/Program.cs @@ -1,30 +1,29 @@ /* -* Copyright (c) Contributors, http://opensimulator.org/ -* See CONTRIBUTORS.TXT for a full list of copyright holders. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions are met: -* * Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* * Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in the -* documentation and/or other materials provided with the distribution. -* * Neither the name of the OpenSim Project nor the -* names of its contributors may be used to endorse or promote products -* derived from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY -* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY -* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -* -*/ + * Copyright (c) Contributors, http://opensimulator.org/ + * See CONTRIBUTORS.TXT for a full list of copyright holders. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the OpenSim Project nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ using System; using System.Collections.Generic; diff --git a/OpenSim/Tools/OpenSim.GUI/Properties/AssemblyInfo.cs b/OpenSim/Tools/OpenSim.GUI/Properties/AssemblyInfo.cs index c4c8abf..b89119c 100644 --- a/OpenSim/Tools/OpenSim.GUI/Properties/AssemblyInfo.cs +++ b/OpenSim/Tools/OpenSim.GUI/Properties/AssemblyInfo.cs @@ -1,30 +1,29 @@ /* -* Copyright (c) Contributors, http://opensimulator.org/ -* See CONTRIBUTORS.TXT for a full list of copyright holders. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions are met: -* * Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* * Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in the -* documentation and/or other materials provided with the distribution. -* * Neither the name of the OpenSim Project nor the -* names of its contributors may be used to endorse or promote products -* derived from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY -* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY -* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -* -*/ + * Copyright (c) Contributors, http://opensimulator.org/ + * See CONTRIBUTORS.TXT for a full list of copyright holders. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the OpenSim Project nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ using System.Reflection; using System.Runtime.CompilerServices; diff --git a/OpenSim/Tools/OpenSim.GUI/frmConfiguration.Designer.cs b/OpenSim/Tools/OpenSim.GUI/frmConfiguration.Designer.cs index 92d1aa4..ee9282e 100644 --- a/OpenSim/Tools/OpenSim.GUI/frmConfiguration.Designer.cs +++ b/OpenSim/Tools/OpenSim.GUI/frmConfiguration.Designer.cs @@ -1,30 +1,29 @@ /* -* Copyright (c) Contributors, http://opensimulator.org/ -* See CONTRIBUTORS.TXT for a full list of copyright holders. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions are met: -* * Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* * Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in the -* documentation and/or other materials provided with the distribution. -* * Neither the name of the OpenSim Project nor the -* names of its contributors may be used to endorse or promote products -* derived from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY -* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY -* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -* -*/ + * Copyright (c) Contributors, http://opensimulator.org/ + * See CONTRIBUTORS.TXT for a full list of copyright holders. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the OpenSim Project nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ namespace OpenSim.GUI { diff --git a/OpenSim/Tools/OpenSim.GUI/frmConfiguration.cs b/OpenSim/Tools/OpenSim.GUI/frmConfiguration.cs index 91ad656..8ed53a2 100644 --- a/OpenSim/Tools/OpenSim.GUI/frmConfiguration.cs +++ b/OpenSim/Tools/OpenSim.GUI/frmConfiguration.cs @@ -1,30 +1,29 @@ /* -* Copyright (c) Contributors, http://opensimulator.org/ -* See CONTRIBUTORS.TXT for a full list of copyright holders. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions are met: -* * Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* * Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in the -* documentation and/or other materials provided with the distribution. -* * Neither the name of the OpenSim Project nor the -* names of its contributors may be used to endorse or promote products -* derived from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY -* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY -* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -* -*/ + * Copyright (c) Contributors, http://opensimulator.org/ + * See CONTRIBUTORS.TXT for a full list of copyright holders. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the OpenSim Project nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ using System; using System.Collections.Generic; diff --git a/OpenSim/Tools/pCampBot/BotManager.cs b/OpenSim/Tools/pCampBot/BotManager.cs index 36f3d7f..84648cd 100644 --- a/OpenSim/Tools/pCampBot/BotManager.cs +++ b/OpenSim/Tools/pCampBot/BotManager.cs @@ -1,30 +1,29 @@ /* -* Copyright (c) Contributors, http://opensimulator.org/ -* See CONTRIBUTORS.TXT for a full list of copyright holders. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions are met: -* * Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* * Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in the -* documentation and/or other materials provided with the distribution. -* * Neither the name of the OpenSim Project nor the -* names of its contributors may be used to endorse or promote products -* derived from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY -* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY -* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -* -*/ + * Copyright (c) Contributors, http://opensimulator.org/ + * See CONTRIBUTORS.TXT for a full list of copyright holders. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the OpenSim Project nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ using System; using System.Collections.Generic; diff --git a/OpenSim/Tools/pCampBot/PhysicsBot.cs b/OpenSim/Tools/pCampBot/PhysicsBot.cs index c3babda..b079da6 100644 --- a/OpenSim/Tools/pCampBot/PhysicsBot.cs +++ b/OpenSim/Tools/pCampBot/PhysicsBot.cs @@ -1,30 +1,29 @@ /* -* Copyright (c) Contributors, http://opensimulator.org/ -* See CONTRIBUTORS.TXT for a full list of copyright holders. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions are met: -* * Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* * Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in the -* documentation and/or other materials provided with the distribution. -* * Neither the name of the OpenSim Project nor the -* names of its contributors may be used to endorse or promote products -* derived from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY -* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY -* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -* -*/ + * Copyright (c) Contributors, http://opensimulator.org/ + * See CONTRIBUTORS.TXT for a full list of copyright holders. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the OpenSim Project nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ using System; using System.Collections.Generic; diff --git a/OpenSim/Tools/pCampBot/pCampBot.cs b/OpenSim/Tools/pCampBot/pCampBot.cs index 56f2e26..6daccc4 100644 --- a/OpenSim/Tools/pCampBot/pCampBot.cs +++ b/OpenSim/Tools/pCampBot/pCampBot.cs @@ -1,30 +1,29 @@ /* -* Copyright (c) Contributors, http://opensimulator.org/ -* See CONTRIBUTORS.TXT for a full list of copyright holders. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions are met: -* * Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* * Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in the -* documentation and/or other materials provided with the distribution. -* * Neither the name of the OpenSim Project nor the -* names of its contributors may be used to endorse or promote products -* derived from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY -* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY -* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -* -*/ + * Copyright (c) Contributors, http://opensimulator.org/ + * See CONTRIBUTORS.TXT for a full list of copyright holders. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the OpenSim Project nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ using System; using System.Collections.Generic; -- cgit v1.1 From 9a2b289e328e336f349974302df41b34c92893c3 Mon Sep 17 00:00:00 2001 From: Jeff Ames Date: Sat, 22 Mar 2008 23:52:48 +0000 Subject: Fix compiler warnings in pCampBot, TestSuite, and ScriptEngine/RemoteServer. Thanks daTwitch! --- OpenSim/Tools/pCampBot/BotManager.cs | 20 ++++++++++---------- OpenSim/Tools/pCampBot/PhysicsBot.cs | 2 +- 2 files changed, 11 insertions(+), 11 deletions(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/pCampBot/BotManager.cs b/OpenSim/Tools/pCampBot/BotManager.cs index 84648cd..a18fa1b 100644 --- a/OpenSim/Tools/pCampBot/BotManager.cs +++ b/OpenSim/Tools/pCampBot/BotManager.cs @@ -185,16 +185,16 @@ namespace pCampBot /// /// /// - private string CombineParams(string[] commandParams, int pos) - { - string result = String.Empty; - for (int i = pos; i < commandParams.Length; i++) - { - result += commandParams[i] + " "; - } - result = result.TrimEnd(' '); - return result; - } + // TODO: unused: private string CombineParams(string[] commandParams, int pos) + // TODO: unused: { + // TODO: unused: string result = String.Empty; + // TODO: unused: for (int i = pos; i < commandParams.Length; i++) + // TODO: unused: { + // TODO: unused: result += commandParams[i] + " "; + // TODO: unused: } + // TODO: unused: result = result.TrimEnd(' '); + // TODO: unused: return result; + // TODO: unused: } /// /// Command runnint tool.. Currently use it to add bots, shutdown and (dangerous)Forcequit diff --git a/OpenSim/Tools/pCampBot/PhysicsBot.cs b/OpenSim/Tools/pCampBot/PhysicsBot.cs index b079da6..8495b09 100644 --- a/OpenSim/Tools/pCampBot/PhysicsBot.cs +++ b/OpenSim/Tools/pCampBot/PhysicsBot.cs @@ -89,7 +89,7 @@ namespace pCampBot client.Self.Movement.AlwaysRun = false; } - LLVector3 pos = client.Self.SimPosition; + // TODO: unused: LLVector3 pos = client.Self.SimPosition; LLVector3 newpos = new LLVector3(somthing.Next(255), somthing.Next(255), somthing.Next(255)); client.Self.Movement.TurnToward(newpos); -- cgit v1.1 From fef3b3689492dea63693c964bcdbec9f5137eb5e Mon Sep 17 00:00:00 2001 From: Adam Frisby Date: Mon, 21 Apr 2008 07:09:17 +0000 Subject: * Optimised using statements and namespace references across entire project (this took a while to run). --- OpenSim/Tools/Export/OpenSimExport.cs | 3 ++- OpenSim/Tools/pCampBot/BotManager.cs | 13 ++++++------- OpenSim/Tools/pCampBot/PhysicsBot.cs | 14 ++++++-------- OpenSim/Tools/pCampBot/pCampBot.cs | 7 +------ 4 files changed, 15 insertions(+), 22 deletions(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/Export/OpenSimExport.cs b/OpenSim/Tools/Export/OpenSimExport.cs index 525f33c..0521df2 100644 --- a/OpenSim/Tools/Export/OpenSimExport.cs +++ b/OpenSim/Tools/Export/OpenSimExport.cs @@ -27,6 +27,7 @@ using System; using System.IO; +using log4net.Config; using Nini.Config; using OpenSim.Framework; using OpenSim.Framework.Console; @@ -58,7 +59,7 @@ namespace OpenSim.Tools.Export public static void Main(string[] args) { - log4net.Config.XmlConfigurator.Configure(); + XmlConfigurator.Configure(); OpenSimExport export = new OpenSimExport(InitConfig(args)); RegionInfo reg = new RegionInfo("Sara Jane", "Regions/1000-1000.xml",false); diff --git a/OpenSim/Tools/pCampBot/BotManager.cs b/OpenSim/Tools/pCampBot/BotManager.cs index a18fa1b..df06f47 100644 --- a/OpenSim/Tools/pCampBot/BotManager.cs +++ b/OpenSim/Tools/pCampBot/BotManager.cs @@ -27,12 +27,11 @@ using System; using System.Collections.Generic; -using System.Text; -using System.IO; +using System.Reflection; +using System.Threading; using libsecondlife; -using libsecondlife.Packets; +using log4net; using Nini.Config; -using System.Threading; using OpenSim.Framework; using OpenSim.Framework.Console; @@ -43,13 +42,13 @@ namespace pCampBot /// public class BotManager : conscmd_callback { - private static readonly log4net.ILog m_log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); + private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); protected ConsoleBase m_console; protected List m_lBot; protected Thread[] m_td; protected bool m_verbose = true; - protected Random somthing = new Random(System.Environment.TickCount); + protected Random somthing = new Random(Environment.TickCount); protected int numbots = 0; protected IConfig Previous_config; @@ -117,7 +116,7 @@ namespace pCampBot m_td[pos].IsBackground = true; m_td[pos].Start(); m_lBot.Add(pb); - OpenSim.Framework.ThreadTracker.Add(m_td[pos]); + ThreadTracker.Add(m_td[pos]); } /// diff --git a/OpenSim/Tools/pCampBot/PhysicsBot.cs b/OpenSim/Tools/pCampBot/PhysicsBot.cs index 8495b09..334f699 100644 --- a/OpenSim/Tools/pCampBot/PhysicsBot.cs +++ b/OpenSim/Tools/pCampBot/PhysicsBot.cs @@ -26,16 +26,14 @@ */ using System; -using System.Collections.Generic; using System.IO; -using System.Text; +using System.Threading; +using System.Timers; using libsecondlife; -using libsecondlife.Packets; using Nini.Config; -using System.Threading; using OpenSim.Framework; using OpenSim.Framework.Console; -using Timer = System.Timers.Timer; +using Timer=System.Timers.Timer; namespace pCampBot { @@ -54,7 +52,7 @@ namespace pCampBot protected Timer m_action; // Action Timer - protected Random somthing = new Random(System.Environment.TickCount);// We do stuff randomly here + protected Random somthing = new Random(Environment.TickCount);// We do stuff randomly here //New instance of a SecondLife client public SecondLife client = new SecondLife(); @@ -74,7 +72,7 @@ namespace pCampBot //We do our actions here. This is where one would //add additional steps and/or things the bot should do - void m_action_Elapsed(object sender, System.Timers.ElapsedEventArgs e) + void m_action_Elapsed(object sender, ElapsedEventArgs e) { //client.Throttle.Task = 500000f; //client.Throttle.Set(); @@ -145,7 +143,7 @@ namespace pCampBot if (OnConnected != null) { m_action = new Timer(somthing.Next(1000, 10000)); - m_action.Elapsed += new System.Timers.ElapsedEventHandler(m_action_Elapsed); + m_action.Elapsed += new ElapsedEventHandler(m_action_Elapsed); m_action.Start(); OnConnected(this, EventType.CONNECTED); client.Self.Jump(); diff --git a/OpenSim/Tools/pCampBot/pCampBot.cs b/OpenSim/Tools/pCampBot/pCampBot.cs index 6daccc4..d944608 100644 --- a/OpenSim/Tools/pCampBot/pCampBot.cs +++ b/OpenSim/Tools/pCampBot/pCampBot.cs @@ -26,12 +26,7 @@ */ using System; -using System.Collections.Generic; -using System.Text; -using libsecondlife; -using libsecondlife.Packets; using Nini.Config; -using System.Threading; using OpenSim.Framework.Console; namespace pCampBot @@ -86,7 +81,7 @@ namespace pCampBot private static void Help() { - System.Console.WriteLine( + Console.WriteLine( "usage: pCampBot <-loginuri loginuri> [OPTIONS]\n" + "Spawns a set of bots to test an OpenSim region\n\n" + " -l, -loginuri loginuri for sim to log into (required)\n" + -- cgit v1.1 From 25a49ac4de056f43d6c5803fcd34804fcea96ae2 Mon Sep 17 00:00:00 2001 From: Adam Frisby Date: Wed, 30 Apr 2008 23:11:07 +0000 Subject: * Spring cleaned a bunch of '//TODO: unused' marked functions. --- OpenSim/Tools/pCampBot/BotManager.cs | 17 ----------------- 1 file changed, 17 deletions(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/pCampBot/BotManager.cs b/OpenSim/Tools/pCampBot/BotManager.cs index df06f47..8877f7d 100644 --- a/OpenSim/Tools/pCampBot/BotManager.cs +++ b/OpenSim/Tools/pCampBot/BotManager.cs @@ -177,23 +177,6 @@ namespace pCampBot { return new ConsoleBase("Region", this); } - - /// - /// I don't think the bots use this.. - /// - /// - /// - /// - // TODO: unused: private string CombineParams(string[] commandParams, int pos) - // TODO: unused: { - // TODO: unused: string result = String.Empty; - // TODO: unused: for (int i = pos; i < commandParams.Length; i++) - // TODO: unused: { - // TODO: unused: result += commandParams[i] + " "; - // TODO: unused: } - // TODO: unused: result = result.TrimEnd(' '); - // TODO: unused: return result; - // TODO: unused: } /// /// Command runnint tool.. Currently use it to add bots, shutdown and (dangerous)Forcequit -- cgit v1.1 From 387d5065905dfdebfa3878211e228c9503447df9 Mon Sep 17 00:00:00 2001 From: Jeff Ames Date: Thu, 1 May 2008 15:26:13 +0000 Subject: Add prebuild stuff to LaunchSLClient. Moving LaunchSLClient source files so build works (1/2) --- OpenSim/Tools/LaunchSLClient/LaunchSLClient.csproj | 152 --------------------- OpenSim/Tools/LaunchSLClient/prebuild.xml | 66 +++++++++ OpenSim/Tools/LaunchSLClient/runprebuild.bat | 4 + OpenSim/Tools/LaunchSLClient/runprebuild.sh | 5 + OpenSim/Tools/LaunchSLClient/runprebuild2008.bat | 4 + 5 files changed, 79 insertions(+), 152 deletions(-) delete mode 100644 OpenSim/Tools/LaunchSLClient/LaunchSLClient.csproj create mode 100644 OpenSim/Tools/LaunchSLClient/prebuild.xml create mode 100755 OpenSim/Tools/LaunchSLClient/runprebuild.bat create mode 100755 OpenSim/Tools/LaunchSLClient/runprebuild.sh create mode 100755 OpenSim/Tools/LaunchSLClient/runprebuild2008.bat (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/LaunchSLClient/LaunchSLClient.csproj b/OpenSim/Tools/LaunchSLClient/LaunchSLClient.csproj deleted file mode 100644 index 73c6072..0000000 --- a/OpenSim/Tools/LaunchSLClient/LaunchSLClient.csproj +++ /dev/null @@ -1,152 +0,0 @@ - - - Local - 9.0.21022 - 2.0 - {FFC2EE60-0000-0000-0000-000000000000} - Debug - AnyCPU - - - - - LaunchSLClient - JScript - Grid - IE50 - false - Exe - - - LaunchSLClient - - - - - - - False - 285212672 - False - - - TRACE;DEBUG - - - True - 4096 - False - ..\..\..\bin\ - False - False - False - 4 - - - - - False - 285212672 - False - - - TRACE - - - False - 4096 - True - ..\..\..\bin\ - False - False - False - 4 - - - - - - Microsoft.Win32.dll - False - - - System.dll - False - - - System.Collections.dll - False - - - System.Collections.Generic.dll - False - - - System.ComponentModel.dll - False - - - System.Data.dll - False - - - System.Diagnostics.dll - False - - - System.Drawing.dll - False - - - System.IO.dll - False - - - System.Text.dll - False - - - System.Text.RegularExpressions.dll - False - - - System.Windows.Forms.dll - False - - - - - - - Form - - - Form1.cs - Code - - - Code - - - Code - - - Code - - - Properties\Resources.cs - Code - - - Properties\Settings.cs - Code - - - - - - - - - - \ No newline at end of file diff --git a/OpenSim/Tools/LaunchSLClient/prebuild.xml b/OpenSim/Tools/LaunchSLClient/prebuild.xml new file mode 100644 index 0000000..8e58ba6 --- /dev/null +++ b/OpenSim/Tools/LaunchSLClient/prebuild.xml @@ -0,0 +1,66 @@ + + + + + + TRACE;DEBUG + false + false + false + 4 + false + + ../../../bin + true + true + false + + + + + TRACE + true + false + false + 4 + false + + ../../../bin + false + true + false + + + + + + + ../../../bin/ + + + + + ../../../bin/ + + + + ../../../bin/ + + + + + + + + + + + + + + + + + + + diff --git a/OpenSim/Tools/LaunchSLClient/runprebuild.bat b/OpenSim/Tools/LaunchSLClient/runprebuild.bat new file mode 100755 index 0000000..0ef3dd9 --- /dev/null +++ b/OpenSim/Tools/LaunchSLClient/runprebuild.bat @@ -0,0 +1,4 @@ +..\..\..\bin\Prebuild.exe /target nant +..\..\..\bin\Prebuild.exe /target vs2005 + +echo C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\msbuild LaunchSLClient.sln > compile.bat diff --git a/OpenSim/Tools/LaunchSLClient/runprebuild.sh b/OpenSim/Tools/LaunchSLClient/runprebuild.sh new file mode 100755 index 0000000..4fa418b --- /dev/null +++ b/OpenSim/Tools/LaunchSLClient/runprebuild.sh @@ -0,0 +1,5 @@ +#!/bin/sh + +mono ../../../bin/Prebuild.exe /target nant +mono ../../../bin/Prebuild.exe /target monodev +mono ../../../bin/Prebuild.exe /target vs2005 diff --git a/OpenSim/Tools/LaunchSLClient/runprebuild2008.bat b/OpenSim/Tools/LaunchSLClient/runprebuild2008.bat new file mode 100755 index 0000000..41e2714 --- /dev/null +++ b/OpenSim/Tools/LaunchSLClient/runprebuild2008.bat @@ -0,0 +1,4 @@ +..\..\..\bin\Prebuild.exe /target nant +..\..\..\bin\Prebuild.exe /target vs2008 +echo C:\WINDOWS\Microsoft.NET\Framework\v3.5\msbuild LaunchSLClient.sln > compile.bat + -- cgit v1.1 From 92fd719d7b03081005f2f3a6b99d83e1a917e94a Mon Sep 17 00:00:00 2001 From: Jeff Ames Date: Thu, 1 May 2008 15:28:48 +0000 Subject: Moving LaunchSLClient source files so build works (2/2) --- OpenSim/Tools/LaunchSLClient/Form1.Designer.cs | 107 ----------- OpenSim/Tools/LaunchSLClient/Form1.cs | 210 --------------------- OpenSim/Tools/LaunchSLClient/Form1.resx | 120 ------------ .../LaunchSLClient/Form1.Designer.cs | 107 +++++++++++ .../Tools/LaunchSLClient/LaunchSLClient/Form1.cs | 210 +++++++++++++++++++++ .../Tools/LaunchSLClient/LaunchSLClient/Form1.resx | 120 ++++++++++++ .../LaunchSLClient/LauncherException.cs | 52 +++++ .../Tools/LaunchSLClient/LaunchSLClient/Program.cs | 55 ++++++ .../LaunchSLClient/Properties/AssemblyInfo.cs | 60 ++++++ .../Properties/Resources.Designer.cs | 71 +++++++ .../LaunchSLClient/Properties/Resources.resx | 117 ++++++++++++ .../LaunchSLClient/Properties/Settings.Designer.cs | 30 +++ .../LaunchSLClient/Properties/Settings.settings | 7 + OpenSim/Tools/LaunchSLClient/LauncherException.cs | 52 ----- OpenSim/Tools/LaunchSLClient/Program.cs | 55 ------ .../LaunchSLClient/Properties/AssemblyInfo.cs | 60 ------ .../Properties/Resources.Designer.cs | 71 ------- .../Tools/LaunchSLClient/Properties/Resources.resx | 117 ------------ .../LaunchSLClient/Properties/Settings.Designer.cs | 30 --- .../LaunchSLClient/Properties/Settings.settings | 7 - 20 files changed, 829 insertions(+), 829 deletions(-) delete mode 100644 OpenSim/Tools/LaunchSLClient/Form1.Designer.cs delete mode 100644 OpenSim/Tools/LaunchSLClient/Form1.cs delete mode 100644 OpenSim/Tools/LaunchSLClient/Form1.resx create mode 100644 OpenSim/Tools/LaunchSLClient/LaunchSLClient/Form1.Designer.cs create mode 100644 OpenSim/Tools/LaunchSLClient/LaunchSLClient/Form1.cs create mode 100644 OpenSim/Tools/LaunchSLClient/LaunchSLClient/Form1.resx create mode 100644 OpenSim/Tools/LaunchSLClient/LaunchSLClient/LauncherException.cs create mode 100644 OpenSim/Tools/LaunchSLClient/LaunchSLClient/Program.cs create mode 100644 OpenSim/Tools/LaunchSLClient/LaunchSLClient/Properties/AssemblyInfo.cs create mode 100644 OpenSim/Tools/LaunchSLClient/LaunchSLClient/Properties/Resources.Designer.cs create mode 100644 OpenSim/Tools/LaunchSLClient/LaunchSLClient/Properties/Resources.resx create mode 100644 OpenSim/Tools/LaunchSLClient/LaunchSLClient/Properties/Settings.Designer.cs create mode 100644 OpenSim/Tools/LaunchSLClient/LaunchSLClient/Properties/Settings.settings delete mode 100644 OpenSim/Tools/LaunchSLClient/LauncherException.cs delete mode 100644 OpenSim/Tools/LaunchSLClient/Program.cs delete mode 100644 OpenSim/Tools/LaunchSLClient/Properties/AssemblyInfo.cs delete mode 100644 OpenSim/Tools/LaunchSLClient/Properties/Resources.Designer.cs delete mode 100644 OpenSim/Tools/LaunchSLClient/Properties/Resources.resx delete mode 100644 OpenSim/Tools/LaunchSLClient/Properties/Settings.Designer.cs delete mode 100644 OpenSim/Tools/LaunchSLClient/Properties/Settings.settings (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/LaunchSLClient/Form1.Designer.cs b/OpenSim/Tools/LaunchSLClient/Form1.Designer.cs deleted file mode 100644 index b9e905a..0000000 --- a/OpenSim/Tools/LaunchSLClient/Form1.Designer.cs +++ /dev/null @@ -1,107 +0,0 @@ -/* - * Copyright (c) Contributors, http://opensimulator.org/ - * See CONTRIBUTORS.TXT for a full list of copyright holders. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * * Neither the name of the OpenSim Project nor the - * names of its contributors may be used to endorse or promote products - * derived from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -namespace LaunchSLClient -{ - partial class Form1 - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.comboBox1 = new System.Windows.Forms.ComboBox(); - this.textBox1 = new System.Windows.Forms.TextBox(); - this.SuspendLayout(); - // - // comboBox1 - // - this.comboBox1.FormattingEnabled = true; - this.comboBox1.Items.AddRange(new object[] { - "Local Sandbox", - "Local Grid Server", - "DeepGrid - www.deepgrid.com", - "OSGrid - www.osgrid.org", - "Linden Labs - www.secondlife.com"}); - this.comboBox1.Location = new System.Drawing.Point(37, 83); - this.comboBox1.Name = "comboBox1"; - this.comboBox1.Size = new System.Drawing.Size(348, 21); - this.comboBox1.TabIndex = 0; - this.comboBox1.Text = "Choose from list"; - this.comboBox1.SelectedIndexChanged += new System.EventHandler(this.comboBox1_SelectedIndexChanged); - // - // textBox1 - // - this.textBox1.BorderStyle = System.Windows.Forms.BorderStyle.None; - this.textBox1.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.textBox1.Location = new System.Drawing.Point(37, 32); - this.textBox1.Name = "textBox1"; - this.textBox1.ReadOnly = true; - this.textBox1.Size = new System.Drawing.Size(292, 19); - this.textBox1.TabIndex = 1; - this.textBox1.Text = "Choose from one of the following:"; - // - // Form1 - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(501, 339); - this.Controls.Add(this.textBox1); - this.Controls.Add(this.comboBox1); - this.Name = "Form1"; - this.Text = "OpenSim Client Launcher"; - this.ResumeLayout(false); - this.PerformLayout(); - } - - #endregion - - private System.Windows.Forms.ComboBox comboBox1; - private System.Windows.Forms.TextBox textBox1; - } -} diff --git a/OpenSim/Tools/LaunchSLClient/Form1.cs b/OpenSim/Tools/LaunchSLClient/Form1.cs deleted file mode 100644 index 61aefa0..0000000 --- a/OpenSim/Tools/LaunchSLClient/Form1.cs +++ /dev/null @@ -1,210 +0,0 @@ -/* - * Copyright (c) Contributors, http://opensimulator.org/ - * See CONTRIBUTORS.TXT for a full list of copyright holders. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * * Neither the name of the OpenSim Project nor the - * names of its contributors may be used to endorse or promote products - * derived from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -using System; -using System.IO; -using System.Collections; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Diagnostics; -using System.Drawing; -using System.Text; -using System.Text.RegularExpressions; -using System.Windows.Forms; -using Microsoft.Win32; - -namespace LaunchSLClient -{ - public partial class Form1 : Form - { - const string deepGridUrl = "http://user.deepgrid.com:8002/"; - const string osGridUrl = "http://www.osgrid.org:8002/"; - const string openLifeGridUrl = "http://logingrid.net:8002"; - - string gridUrl = ""; - string sandboxUrl = ""; - string runUrl = ""; - string runLine = ""; - string exeFlags = ""; - string exePath = ""; - - private void addLocalSandbox(ref ArrayList menuItems) - { - // build sandbox URL from Regions\default.xml - // this is highly dependant on a standard default.xml - if (File.Exists(@"Regions\default.xml")) - { - string sandboxHostName = ""; - string sandboxPort = ""; - string text; - - Regex myRegex = new Regex(".*internal_ip_port=\\\"(?.*?)\\\".*external_host_name=\\\"(?.*?)\\\".*"); - - FileInfo defaultFile = new FileInfo(@"Regions\default.xml"); - StreamReader stream = defaultFile.OpenText(); - do - { - text = stream.ReadLine(); - if (text == null) - { - break; - } - MatchCollection theMatches = myRegex.Matches(text); - foreach (Match theMatch in theMatches) - { - if (theMatch.Length != 0) - { - sandboxHostName = theMatch.Groups["name"].ToString(); - sandboxPort = theMatch.Groups["port"].ToString(); - } - } - } while (text != null); - - stream.Close(); - sandboxUrl = "http:\\" + sandboxHostName + ":" + sandboxPort; - menuItems.Add("Local Sandbox"); - } - } - - private void addLocalGrid(ref ArrayList menuItems) - { - //build local grid URL from network_servers_information.xml - // this is highly dependant on a standard default.xml - if (File.Exists(@"network_servers_information.xml")) - { - string text; - FileInfo defaultFile = new FileInfo(@"network_servers_information.xml"); - Regex myRegex = new Regex(".*UserServerURL=\\\"(?.*?)\\\".*"); - StreamReader stream = defaultFile.OpenText(); - - do - { - text = stream.ReadLine(); - if (text == null) - { - break; - } - foreach (Match theMatch in myRegex.Matches(text)) - { - if (theMatch.Length != 0) - { - gridUrl = theMatch.Groups["url"].ToString(); - } - } - } while (text != null); - stream.Close(); - if (gridUrl != null) - { - menuItems.Add("Local Grid Server"); - } - } - } - - private void addLocalSims(ref ArrayList menuItems) - { - // find opensim directory - RegistryKey exeKey = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\OpenSim\OpenSim"); - if (exeKey != null) - { - Object simPath = exeKey.GetValue("Path"); - - Directory.SetCurrentDirectory(simPath.ToString()); //this should be set to wherever we decide to put the binaries - - addLocalSandbox(ref menuItems); - addLocalGrid(ref menuItems); - } - else - { - MessageBox.Show("No OpenSim installed. Showing public grids only", "No OpenSim"); - } - } - - private void getClient(ref string exePath, ref string runLine, ref string exeFlags) - { - // get executable path from registry - RegistryKey regKey = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Linden Research, Inc.\SecondLife"); - if (regKey == null) - { - regKey = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Wow6432Node\Linden Research, Inc.\SecondLife"); - if (regKey == null) - { - throw new LauncherException("Can't find Second Life. Are you sure it is installed?", "LauncherException.Form1"); - } - } - string exe = regKey.GetValue("Exe").ToString(); - exeFlags = regKey.GetValue("Flags").ToString(); - exePath = regKey.GetValue("").ToString(); - runLine = exePath + "\\" + exe; - Registry.LocalMachine.Flush(); - Registry.LocalMachine.Close(); - } - - public Form1() - { - InitializeComponent(); - ArrayList menuItems = new ArrayList(); - - getClient(ref exePath, ref runLine, ref exeFlags); - - menuItems.Add("Please select one:"); - - addLocalSims(ref menuItems); - - menuItems.Add("OSGrid - www.osgrid.org"); - menuItems.Add("DeepGrid - www.deepgrid.com"); - menuItems.Add("OpenlifeGrid - www.openlifegrid.com"); - menuItems.Add("Linden Labs - www.secondlife.com"); - - comboBox1.DataSource = menuItems; - } - - private void radioButton1_CheckedChanged(object sender, EventArgs e) - { - } - - private void comboBox1_SelectedIndexChanged(object sender, EventArgs e) - { - if (comboBox1.Text == "Please select one:") { return; } - if (comboBox1.Text == "Local Sandbox") { runUrl=" -loginuri " + sandboxUrl;} - if (comboBox1.Text == "Local Grid Server") { runUrl = " -loginuri " + gridUrl; } - if (comboBox1.Text == "DeepGrid - www.deepgrid.com") { runUrl = " -loginuri " + deepGridUrl; } - if (comboBox1.Text == "OSGrid - www.osgrid.org") { runUrl = " -loginuri " + osGridUrl; } - if (comboBox1.Text == "OpenlifeGrid - www.openlifegrid.com") { runUrl = " -loginuri " + openLifeGridUrl; } - if (comboBox1.Text == "Linden Labs - www.secondlife.com") { runUrl = ""; } - - System.Diagnostics.Process proc = new System.Diagnostics.Process(); - proc.StartInfo.FileName = runLine; - proc.StartInfo.Arguments = exeFlags.ToString() + " " + runUrl; - proc.StartInfo.UseShellExecute = false; - proc.StartInfo.RedirectStandardOutput = false; - proc.StartInfo.WorkingDirectory = exePath.ToString(); - proc.Start(); - proc.WaitForExit(); - } - } -} diff --git a/OpenSim/Tools/LaunchSLClient/Form1.resx b/OpenSim/Tools/LaunchSLClient/Form1.resx deleted file mode 100644 index 19dc0dd..0000000 --- a/OpenSim/Tools/LaunchSLClient/Form1.resx +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Form1.Designer.cs b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Form1.Designer.cs new file mode 100644 index 0000000..b9e905a --- /dev/null +++ b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Form1.Designer.cs @@ -0,0 +1,107 @@ +/* + * Copyright (c) Contributors, http://opensimulator.org/ + * See CONTRIBUTORS.TXT for a full list of copyright holders. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the OpenSim Project nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +namespace LaunchSLClient +{ + partial class Form1 + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.comboBox1 = new System.Windows.Forms.ComboBox(); + this.textBox1 = new System.Windows.Forms.TextBox(); + this.SuspendLayout(); + // + // comboBox1 + // + this.comboBox1.FormattingEnabled = true; + this.comboBox1.Items.AddRange(new object[] { + "Local Sandbox", + "Local Grid Server", + "DeepGrid - www.deepgrid.com", + "OSGrid - www.osgrid.org", + "Linden Labs - www.secondlife.com"}); + this.comboBox1.Location = new System.Drawing.Point(37, 83); + this.comboBox1.Name = "comboBox1"; + this.comboBox1.Size = new System.Drawing.Size(348, 21); + this.comboBox1.TabIndex = 0; + this.comboBox1.Text = "Choose from list"; + this.comboBox1.SelectedIndexChanged += new System.EventHandler(this.comboBox1_SelectedIndexChanged); + // + // textBox1 + // + this.textBox1.BorderStyle = System.Windows.Forms.BorderStyle.None; + this.textBox1.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.textBox1.Location = new System.Drawing.Point(37, 32); + this.textBox1.Name = "textBox1"; + this.textBox1.ReadOnly = true; + this.textBox1.Size = new System.Drawing.Size(292, 19); + this.textBox1.TabIndex = 1; + this.textBox1.Text = "Choose from one of the following:"; + // + // Form1 + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(501, 339); + this.Controls.Add(this.textBox1); + this.Controls.Add(this.comboBox1); + this.Name = "Form1"; + this.Text = "OpenSim Client Launcher"; + this.ResumeLayout(false); + this.PerformLayout(); + } + + #endregion + + private System.Windows.Forms.ComboBox comboBox1; + private System.Windows.Forms.TextBox textBox1; + } +} diff --git a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Form1.cs b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Form1.cs new file mode 100644 index 0000000..61aefa0 --- /dev/null +++ b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Form1.cs @@ -0,0 +1,210 @@ +/* + * Copyright (c) Contributors, http://opensimulator.org/ + * See CONTRIBUTORS.TXT for a full list of copyright holders. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the OpenSim Project nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +using System; +using System.IO; +using System.Collections; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Diagnostics; +using System.Drawing; +using System.Text; +using System.Text.RegularExpressions; +using System.Windows.Forms; +using Microsoft.Win32; + +namespace LaunchSLClient +{ + public partial class Form1 : Form + { + const string deepGridUrl = "http://user.deepgrid.com:8002/"; + const string osGridUrl = "http://www.osgrid.org:8002/"; + const string openLifeGridUrl = "http://logingrid.net:8002"; + + string gridUrl = ""; + string sandboxUrl = ""; + string runUrl = ""; + string runLine = ""; + string exeFlags = ""; + string exePath = ""; + + private void addLocalSandbox(ref ArrayList menuItems) + { + // build sandbox URL from Regions\default.xml + // this is highly dependant on a standard default.xml + if (File.Exists(@"Regions\default.xml")) + { + string sandboxHostName = ""; + string sandboxPort = ""; + string text; + + Regex myRegex = new Regex(".*internal_ip_port=\\\"(?.*?)\\\".*external_host_name=\\\"(?.*?)\\\".*"); + + FileInfo defaultFile = new FileInfo(@"Regions\default.xml"); + StreamReader stream = defaultFile.OpenText(); + do + { + text = stream.ReadLine(); + if (text == null) + { + break; + } + MatchCollection theMatches = myRegex.Matches(text); + foreach (Match theMatch in theMatches) + { + if (theMatch.Length != 0) + { + sandboxHostName = theMatch.Groups["name"].ToString(); + sandboxPort = theMatch.Groups["port"].ToString(); + } + } + } while (text != null); + + stream.Close(); + sandboxUrl = "http:\\" + sandboxHostName + ":" + sandboxPort; + menuItems.Add("Local Sandbox"); + } + } + + private void addLocalGrid(ref ArrayList menuItems) + { + //build local grid URL from network_servers_information.xml + // this is highly dependant on a standard default.xml + if (File.Exists(@"network_servers_information.xml")) + { + string text; + FileInfo defaultFile = new FileInfo(@"network_servers_information.xml"); + Regex myRegex = new Regex(".*UserServerURL=\\\"(?.*?)\\\".*"); + StreamReader stream = defaultFile.OpenText(); + + do + { + text = stream.ReadLine(); + if (text == null) + { + break; + } + foreach (Match theMatch in myRegex.Matches(text)) + { + if (theMatch.Length != 0) + { + gridUrl = theMatch.Groups["url"].ToString(); + } + } + } while (text != null); + stream.Close(); + if (gridUrl != null) + { + menuItems.Add("Local Grid Server"); + } + } + } + + private void addLocalSims(ref ArrayList menuItems) + { + // find opensim directory + RegistryKey exeKey = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\OpenSim\OpenSim"); + if (exeKey != null) + { + Object simPath = exeKey.GetValue("Path"); + + Directory.SetCurrentDirectory(simPath.ToString()); //this should be set to wherever we decide to put the binaries + + addLocalSandbox(ref menuItems); + addLocalGrid(ref menuItems); + } + else + { + MessageBox.Show("No OpenSim installed. Showing public grids only", "No OpenSim"); + } + } + + private void getClient(ref string exePath, ref string runLine, ref string exeFlags) + { + // get executable path from registry + RegistryKey regKey = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Linden Research, Inc.\SecondLife"); + if (regKey == null) + { + regKey = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Wow6432Node\Linden Research, Inc.\SecondLife"); + if (regKey == null) + { + throw new LauncherException("Can't find Second Life. Are you sure it is installed?", "LauncherException.Form1"); + } + } + string exe = regKey.GetValue("Exe").ToString(); + exeFlags = regKey.GetValue("Flags").ToString(); + exePath = regKey.GetValue("").ToString(); + runLine = exePath + "\\" + exe; + Registry.LocalMachine.Flush(); + Registry.LocalMachine.Close(); + } + + public Form1() + { + InitializeComponent(); + ArrayList menuItems = new ArrayList(); + + getClient(ref exePath, ref runLine, ref exeFlags); + + menuItems.Add("Please select one:"); + + addLocalSims(ref menuItems); + + menuItems.Add("OSGrid - www.osgrid.org"); + menuItems.Add("DeepGrid - www.deepgrid.com"); + menuItems.Add("OpenlifeGrid - www.openlifegrid.com"); + menuItems.Add("Linden Labs - www.secondlife.com"); + + comboBox1.DataSource = menuItems; + } + + private void radioButton1_CheckedChanged(object sender, EventArgs e) + { + } + + private void comboBox1_SelectedIndexChanged(object sender, EventArgs e) + { + if (comboBox1.Text == "Please select one:") { return; } + if (comboBox1.Text == "Local Sandbox") { runUrl=" -loginuri " + sandboxUrl;} + if (comboBox1.Text == "Local Grid Server") { runUrl = " -loginuri " + gridUrl; } + if (comboBox1.Text == "DeepGrid - www.deepgrid.com") { runUrl = " -loginuri " + deepGridUrl; } + if (comboBox1.Text == "OSGrid - www.osgrid.org") { runUrl = " -loginuri " + osGridUrl; } + if (comboBox1.Text == "OpenlifeGrid - www.openlifegrid.com") { runUrl = " -loginuri " + openLifeGridUrl; } + if (comboBox1.Text == "Linden Labs - www.secondlife.com") { runUrl = ""; } + + System.Diagnostics.Process proc = new System.Diagnostics.Process(); + proc.StartInfo.FileName = runLine; + proc.StartInfo.Arguments = exeFlags.ToString() + " " + runUrl; + proc.StartInfo.UseShellExecute = false; + proc.StartInfo.RedirectStandardOutput = false; + proc.StartInfo.WorkingDirectory = exePath.ToString(); + proc.Start(); + proc.WaitForExit(); + } + } +} diff --git a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Form1.resx b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Form1.resx new file mode 100644 index 0000000..19dc0dd --- /dev/null +++ b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Form1.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/LauncherException.cs b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/LauncherException.cs new file mode 100644 index 0000000..e1ba0bc --- /dev/null +++ b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/LauncherException.cs @@ -0,0 +1,52 @@ +/* + * Copyright (c) Contributors, http://opensimulator.org/ + * See CONTRIBUTORS.TXT for a full list of copyright holders. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the OpenSim Project nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +using System; +using System.Collections.Generic; +using System.Text; + +namespace LaunchSLClient +{ + class LauncherException : ApplicationException + { + private const string CUSTOMMESSAGE = "The SL Client Launcher has failed with the following error: "; + + private LauncherException() { } + + public LauncherException(string errorMesssage, string source) + : base (CUSTOMMESSAGE + errorMesssage) + { + base.Source = source; + } + + public LauncherException(string errorMessage, string source, Exception innerException) + : base(CUSTOMMESSAGE + errorMessage, innerException) + { + base.Source = source; + } + } +} diff --git a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Program.cs b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Program.cs new file mode 100644 index 0000000..822611c --- /dev/null +++ b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Program.cs @@ -0,0 +1,55 @@ +/* + * Copyright (c) Contributors, http://opensimulator.org/ + * See CONTRIBUTORS.TXT for a full list of copyright holders. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the OpenSim Project nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +using System; +using System.Collections.Generic; +using System.Windows.Forms; + +namespace LaunchSLClient +{ + static class Program + { + /// + /// The main entry point for the application. + /// + [STAThread] + static void Main() + { + try + { + Application.EnableVisualStyles(); + Application.SetCompatibleTextRenderingDefault(false); + Application.Run(new Form1()); + } + catch (Exception ex) + { + // Handles all unhandled errors + MessageBox.Show(ex.Message,"Unhandled Error"); + } + } + } +} diff --git a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Properties/AssemblyInfo.cs b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..62af735 --- /dev/null +++ b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Properties/AssemblyInfo.cs @@ -0,0 +1,60 @@ +/* + * Copyright (c) Contributors, http://opensimulator.org/ + * See CONTRIBUTORS.TXT for a full list of copyright holders. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the OpenSim Project nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("LaunchSLClient")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("LaunchSLClient")] +[assembly: AssemblyCopyright("Copyright (c) 2007")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("b08c6904-e6cc-4d9c-8d24-feb0464b1648")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Properties/Resources.Designer.cs b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Properties/Resources.Designer.cs new file mode 100644 index 0000000..4e9188d --- /dev/null +++ b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Properties/Resources.Designer.cs @@ -0,0 +1,71 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.50727.832 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace LaunchSLClient.Properties +{ + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "2.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources + { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() + { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager + { + get + { + if ((resourceMan == null)) + { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("LaunchSLClient.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture + { + get + { + return resourceCulture; + } + set + { + resourceCulture = value; + } + } + } +} diff --git a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Properties/Resources.resx b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Properties/Resources.resx new file mode 100644 index 0000000..af7dbeb --- /dev/null +++ b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Properties/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Properties/Settings.Designer.cs b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Properties/Settings.Designer.cs new file mode 100644 index 0000000..3dcc200 --- /dev/null +++ b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Properties/Settings.Designer.cs @@ -0,0 +1,30 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.50727.832 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace LaunchSLClient.Properties +{ + + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "8.0.0.0")] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase + { + + private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); + + public static Settings Default + { + get + { + return defaultInstance; + } + } + } +} diff --git a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Properties/Settings.settings b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Properties/Settings.settings new file mode 100644 index 0000000..3964565 --- /dev/null +++ b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + diff --git a/OpenSim/Tools/LaunchSLClient/LauncherException.cs b/OpenSim/Tools/LaunchSLClient/LauncherException.cs deleted file mode 100644 index e1ba0bc..0000000 --- a/OpenSim/Tools/LaunchSLClient/LauncherException.cs +++ /dev/null @@ -1,52 +0,0 @@ -/* - * Copyright (c) Contributors, http://opensimulator.org/ - * See CONTRIBUTORS.TXT for a full list of copyright holders. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * * Neither the name of the OpenSim Project nor the - * names of its contributors may be used to endorse or promote products - * derived from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -using System; -using System.Collections.Generic; -using System.Text; - -namespace LaunchSLClient -{ - class LauncherException : ApplicationException - { - private const string CUSTOMMESSAGE = "The SL Client Launcher has failed with the following error: "; - - private LauncherException() { } - - public LauncherException(string errorMesssage, string source) - : base (CUSTOMMESSAGE + errorMesssage) - { - base.Source = source; - } - - public LauncherException(string errorMessage, string source, Exception innerException) - : base(CUSTOMMESSAGE + errorMessage, innerException) - { - base.Source = source; - } - } -} diff --git a/OpenSim/Tools/LaunchSLClient/Program.cs b/OpenSim/Tools/LaunchSLClient/Program.cs deleted file mode 100644 index 822611c..0000000 --- a/OpenSim/Tools/LaunchSLClient/Program.cs +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Copyright (c) Contributors, http://opensimulator.org/ - * See CONTRIBUTORS.TXT for a full list of copyright holders. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * * Neither the name of the OpenSim Project nor the - * names of its contributors may be used to endorse or promote products - * derived from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -using System; -using System.Collections.Generic; -using System.Windows.Forms; - -namespace LaunchSLClient -{ - static class Program - { - /// - /// The main entry point for the application. - /// - [STAThread] - static void Main() - { - try - { - Application.EnableVisualStyles(); - Application.SetCompatibleTextRenderingDefault(false); - Application.Run(new Form1()); - } - catch (Exception ex) - { - // Handles all unhandled errors - MessageBox.Show(ex.Message,"Unhandled Error"); - } - } - } -} diff --git a/OpenSim/Tools/LaunchSLClient/Properties/AssemblyInfo.cs b/OpenSim/Tools/LaunchSLClient/Properties/AssemblyInfo.cs deleted file mode 100644 index 62af735..0000000 --- a/OpenSim/Tools/LaunchSLClient/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Copyright (c) Contributors, http://opensimulator.org/ - * See CONTRIBUTORS.TXT for a full list of copyright holders. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * * Neither the name of the OpenSim Project nor the - * names of its contributors may be used to endorse or promote products - * derived from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("LaunchSLClient")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("LaunchSLClient")] -[assembly: AssemblyCopyright("Copyright (c) 2007")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("b08c6904-e6cc-4d9c-8d24-feb0464b1648")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/OpenSim/Tools/LaunchSLClient/Properties/Resources.Designer.cs b/OpenSim/Tools/LaunchSLClient/Properties/Resources.Designer.cs deleted file mode 100644 index 4e9188d..0000000 --- a/OpenSim/Tools/LaunchSLClient/Properties/Resources.Designer.cs +++ /dev/null @@ -1,71 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:2.0.50727.832 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace LaunchSLClient.Properties -{ - - - /// - /// A strongly-typed resource class, for looking up localized strings, etc. - /// - // This class was auto-generated by the StronglyTypedResourceBuilder - // class via a tool like ResGen or Visual Studio. - // To add or remove a member, edit your .ResX file then rerun ResGen - // with the /str option, or rebuild your VS project. - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "2.0.0.0")] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - internal class Resources - { - - private static global::System.Resources.ResourceManager resourceMan; - - private static global::System.Globalization.CultureInfo resourceCulture; - - [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] - internal Resources() - { - } - - /// - /// Returns the cached ResourceManager instance used by this class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Resources.ResourceManager ResourceManager - { - get - { - if ((resourceMan == null)) - { - global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("LaunchSLClient.Properties.Resources", typeof(Resources).Assembly); - resourceMan = temp; - } - return resourceMan; - } - } - - /// - /// Overrides the current thread's CurrentUICulture property for all - /// resource lookups using this strongly typed resource class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Globalization.CultureInfo Culture - { - get - { - return resourceCulture; - } - set - { - resourceCulture = value; - } - } - } -} diff --git a/OpenSim/Tools/LaunchSLClient/Properties/Resources.resx b/OpenSim/Tools/LaunchSLClient/Properties/Resources.resx deleted file mode 100644 index af7dbeb..0000000 --- a/OpenSim/Tools/LaunchSLClient/Properties/Resources.resx +++ /dev/null @@ -1,117 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/OpenSim/Tools/LaunchSLClient/Properties/Settings.Designer.cs b/OpenSim/Tools/LaunchSLClient/Properties/Settings.Designer.cs deleted file mode 100644 index 3dcc200..0000000 --- a/OpenSim/Tools/LaunchSLClient/Properties/Settings.Designer.cs +++ /dev/null @@ -1,30 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:2.0.50727.832 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace LaunchSLClient.Properties -{ - - - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "8.0.0.0")] - internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase - { - - private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); - - public static Settings Default - { - get - { - return defaultInstance; - } - } - } -} diff --git a/OpenSim/Tools/LaunchSLClient/Properties/Settings.settings b/OpenSim/Tools/LaunchSLClient/Properties/Settings.settings deleted file mode 100644 index 3964565..0000000 --- a/OpenSim/Tools/LaunchSLClient/Properties/Settings.settings +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - -- cgit v1.1 From a1c8aa4050b7f7a94e02dd40d8cd456f258b4e2b Mon Sep 17 00:00:00 2001 From: Adam Frisby Date: Thu, 1 May 2008 15:36:39 +0000 Subject: * Cleaned namespaces of entire solution. OpenSim directories now correspond with namespaces. --- OpenSim/Tools/Export/OpenSimExport.cs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/Export/OpenSimExport.cs b/OpenSim/Tools/Export/OpenSimExport.cs index 0521df2..76d8d11 100644 --- a/OpenSim/Tools/Export/OpenSimExport.cs +++ b/OpenSim/Tools/Export/OpenSimExport.cs @@ -29,12 +29,13 @@ using System; using System.IO; using log4net.Config; using Nini.Config; +using OpenSim; using OpenSim.Framework; using OpenSim.Framework.Console; using OpenSim.Region.Environment; using OpenSim.Region.Environment.Scenes; -namespace OpenSim.Tools.Export +namespace OpenSimExport { public class OpenSimExport { @@ -108,4 +109,4 @@ namespace OpenSim.Tools.Export return config; } } -} +} \ No newline at end of file -- cgit v1.1 From e9e97d69dc837ef9fa03d97bbb69f2fd99a43950 Mon Sep 17 00:00:00 2001 From: Jeff Ames Date: Thu, 1 May 2008 15:50:58 +0000 Subject: Add basic OS X support to LaunchSLClient --- .../Tools/LaunchSLClient/LaunchSLClient/Form1.cs | 40 +++++++++++++++++++--- 1 file changed, 35 insertions(+), 5 deletions(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Form1.cs b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Form1.cs index 61aefa0..1cddb2b 100644 --- a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Form1.cs +++ b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Form1.cs @@ -138,13 +138,9 @@ namespace LaunchSLClient addLocalSandbox(ref menuItems); addLocalGrid(ref menuItems); } - else - { - MessageBox.Show("No OpenSim installed. Showing public grids only", "No OpenSim"); - } } - private void getClient(ref string exePath, ref string runLine, ref string exeFlags) + private void getClientWindows(ref string exePath, ref string runLine, ref string exeFlags) { // get executable path from registry RegistryKey regKey = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Linden Research, Inc.\SecondLife"); @@ -164,6 +160,40 @@ namespace LaunchSLClient Registry.LocalMachine.Close(); } + private void getClientMacOSX(ref string exePath, ref string runLine, ref string exeFlags) + { + if (Directory.Exists("/Applications/Second Life.app")) + { + exePath = "/Applications/Second Life.app/Contents/MacOS"; + } + + runLine = exePath + "/Second Life"; + exeFlags = ""; + } + + private void getClientUnix(ref string exePath, ref string runLine, ref string exeFlags) + { + } + + private void getClient(ref string exePath, ref string runLine, ref string exeFlags) + { + if (Environment.OSVersion.Platform == PlatformID.Unix) + { + if (File.Exists("/System/Library/Frameworks/Cocoa.framework/Cocoa")) + { + getClientMacOSX(ref exePath, ref runLine, ref exeFlags); + } + else + { + getClientUnix(ref exePath, ref runLine, ref exeFlags); + } + } + else + { + getClientWindows(ref exePath, ref runLine, ref exeFlags); + } + } + public Form1() { InitializeComponent(); -- cgit v1.1 From 01f31fd933bbaec246d2fef5756b7d83be7980e0 Mon Sep 17 00:00:00 2001 From: Adam Frisby Date: Thu, 1 May 2008 16:23:53 +0000 Subject: * Breaking all the code, breaking all the code..! * Made a bunch more members static, removed some dead code, general cleaning. --- OpenSim/Tools/Export/OpenSimExport.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/Export/OpenSimExport.cs b/OpenSim/Tools/Export/OpenSimExport.cs index 76d8d11..4891ea7 100644 --- a/OpenSim/Tools/Export/OpenSimExport.cs +++ b/OpenSim/Tools/Export/OpenSimExport.cs @@ -72,7 +72,7 @@ namespace OpenSimExport } } - protected ConsoleBase CreateConsole() + protected static ConsoleBase CreateConsole() { return new ConsoleBase("Export", null); } -- cgit v1.1 From e38ee199b9dca255d3f3806ed7f0894754a7065c Mon Sep 17 00:00:00 2001 From: Jeff Ames Date: Thu, 1 May 2008 17:07:58 +0000 Subject: Refactor machine-dependent configuration in LaunchSLClient. --- .../Tools/LaunchSLClient/LaunchSLClient/Form1.cs | 120 ++++++++------------- .../LaunchSLClient/LaunchSLClient/MachineConfig.cs | 37 +++++++ .../LaunchSLClient/LaunchSLClient/OSXConfig.cs | 50 +++++++++ .../Tools/LaunchSLClient/LaunchSLClient/Program.cs | 4 - .../LaunchSLClient/LaunchSLClient/UnixConfig.cs | 42 ++++++++ .../LaunchSLClient/LaunchSLClient/WindowsConfig.cs | 55 ++++++++++ 6 files changed, 226 insertions(+), 82 deletions(-) create mode 100644 OpenSim/Tools/LaunchSLClient/LaunchSLClient/MachineConfig.cs create mode 100644 OpenSim/Tools/LaunchSLClient/LaunchSLClient/OSXConfig.cs create mode 100644 OpenSim/Tools/LaunchSLClient/LaunchSLClient/UnixConfig.cs create mode 100644 OpenSim/Tools/LaunchSLClient/LaunchSLClient/WindowsConfig.cs (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Form1.cs b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Form1.cs index 1cddb2b..700c004 100644 --- a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Form1.cs +++ b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Form1.cs @@ -44,7 +44,7 @@ namespace LaunchSLClient { const string deepGridUrl = "http://user.deepgrid.com:8002/"; const string osGridUrl = "http://www.osgrid.org:8002/"; - const string openLifeGridUrl = "http://logingrid.net:8002"; + const string openLifeGridUrl = "http://logingrid.net:8002/"; string gridUrl = ""; string sandboxUrl = ""; @@ -53,6 +53,47 @@ namespace LaunchSLClient string exeFlags = ""; string exePath = ""; + private MachineConfig m_machineConfig; + + public Form1() + { + InitializeComponent(); + ArrayList menuItems = new ArrayList(); + + m_machineConfig = getMachineConfig(); + m_machineConfig.GetClient(ref exePath, ref runLine, ref exeFlags); + + menuItems.Add("Please select one:"); + + addLocalSims(ref menuItems); + + menuItems.Add("OSGrid - www.osgrid.org"); + menuItems.Add("DeepGrid - www.deepgrid.com"); + menuItems.Add("OpenlifeGrid - www.openlifegrid.com"); + menuItems.Add("Linden Labs - www.secondlife.com"); + + comboBox1.DataSource = menuItems; + } + + private MachineConfig getMachineConfig() + { + if (Environment.OSVersion.Platform == PlatformID.Unix) + { + if (File.Exists("/System/Library/Frameworks/Cocoa.framework/Cocoa")) + { + return new OSXConfig(); + } + else + { + return new UnixConfig(); + } + } + else + { + return new WindowsConfig(); + } + } + private void addLocalSandbox(ref ArrayList menuItems) { // build sandbox URL from Regions\default.xml @@ -140,83 +181,6 @@ namespace LaunchSLClient } } - private void getClientWindows(ref string exePath, ref string runLine, ref string exeFlags) - { - // get executable path from registry - RegistryKey regKey = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Linden Research, Inc.\SecondLife"); - if (regKey == null) - { - regKey = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Wow6432Node\Linden Research, Inc.\SecondLife"); - if (regKey == null) - { - throw new LauncherException("Can't find Second Life. Are you sure it is installed?", "LauncherException.Form1"); - } - } - string exe = regKey.GetValue("Exe").ToString(); - exeFlags = regKey.GetValue("Flags").ToString(); - exePath = regKey.GetValue("").ToString(); - runLine = exePath + "\\" + exe; - Registry.LocalMachine.Flush(); - Registry.LocalMachine.Close(); - } - - private void getClientMacOSX(ref string exePath, ref string runLine, ref string exeFlags) - { - if (Directory.Exists("/Applications/Second Life.app")) - { - exePath = "/Applications/Second Life.app/Contents/MacOS"; - } - - runLine = exePath + "/Second Life"; - exeFlags = ""; - } - - private void getClientUnix(ref string exePath, ref string runLine, ref string exeFlags) - { - } - - private void getClient(ref string exePath, ref string runLine, ref string exeFlags) - { - if (Environment.OSVersion.Platform == PlatformID.Unix) - { - if (File.Exists("/System/Library/Frameworks/Cocoa.framework/Cocoa")) - { - getClientMacOSX(ref exePath, ref runLine, ref exeFlags); - } - else - { - getClientUnix(ref exePath, ref runLine, ref exeFlags); - } - } - else - { - getClientWindows(ref exePath, ref runLine, ref exeFlags); - } - } - - public Form1() - { - InitializeComponent(); - ArrayList menuItems = new ArrayList(); - - getClient(ref exePath, ref runLine, ref exeFlags); - - menuItems.Add("Please select one:"); - - addLocalSims(ref menuItems); - - menuItems.Add("OSGrid - www.osgrid.org"); - menuItems.Add("DeepGrid - www.deepgrid.com"); - menuItems.Add("OpenlifeGrid - www.openlifegrid.com"); - menuItems.Add("Linden Labs - www.secondlife.com"); - - comboBox1.DataSource = menuItems; - } - - private void radioButton1_CheckedChanged(object sender, EventArgs e) - { - } - private void comboBox1_SelectedIndexChanged(object sender, EventArgs e) { if (comboBox1.Text == "Please select one:") { return; } diff --git a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/MachineConfig.cs b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/MachineConfig.cs new file mode 100644 index 0000000..68a86c4 --- /dev/null +++ b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/MachineConfig.cs @@ -0,0 +1,37 @@ +/* + * Copyright (c) Contributors, http://opensimulator.org/ + * See CONTRIBUTORS.TXT for a full list of copyright holders. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the OpenSim Project nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +using System; +using System.IO; + +namespace LaunchSLClient +{ + public abstract class MachineConfig + { + public abstract void GetClient(ref string exePath, ref string runLine, ref string exeFlags); + } +} diff --git a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/OSXConfig.cs b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/OSXConfig.cs new file mode 100644 index 0000000..60e5e48 --- /dev/null +++ b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/OSXConfig.cs @@ -0,0 +1,50 @@ +/* + * Copyright (c) Contributors, http://opensimulator.org/ + * See CONTRIBUTORS.TXT for a full list of copyright holders. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the OpenSim Project nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +using System; +using System.IO; + +namespace LaunchSLClient +{ + public class OSXConfig : UnixConfig + { + public override void GetClient(ref string exePath, ref string runLine, ref string exeFlags) + { + if (Directory.Exists("/Applications/Second Life.app")) + { + exePath = "/Applications/Second Life.app/Contents/MacOS"; + } + else if (Directory.Exists("/Applications/Second Life Release Candidate.app")) + { + exePath = "/Applications/Second Life Release Candidate.app/Contents/MacOS"; + } + + runLine = exePath + "/Second Life"; + exeFlags = ""; + } + } +} diff --git a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Program.cs b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Program.cs index 822611c..1d715a5 100644 --- a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Program.cs +++ b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Program.cs @@ -33,9 +33,6 @@ namespace LaunchSLClient { static class Program { - /// - /// The main entry point for the application. - /// [STAThread] static void Main() { @@ -47,7 +44,6 @@ namespace LaunchSLClient } catch (Exception ex) { - // Handles all unhandled errors MessageBox.Show(ex.Message,"Unhandled Error"); } } diff --git a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/UnixConfig.cs b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/UnixConfig.cs new file mode 100644 index 0000000..eb5342f --- /dev/null +++ b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/UnixConfig.cs @@ -0,0 +1,42 @@ +/* + * Copyright (c) Contributors, http://opensimulator.org/ + * See CONTRIBUTORS.TXT for a full list of copyright holders. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the OpenSim Project nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +using System; +using System.IO; + +namespace LaunchSLClient +{ + public class UnixConfig : MachineConfig + { + public override void GetClient(ref string exePath, ref string runLine, ref string exeFlags) + { + exePath = ""; + runLine = "secondlife"; + exeFlags = ""; + } + } +} diff --git a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/WindowsConfig.cs b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/WindowsConfig.cs new file mode 100644 index 0000000..f3b797c --- /dev/null +++ b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/WindowsConfig.cs @@ -0,0 +1,55 @@ +/* + * Copyright (c) Contributors, http://opensimulator.org/ + * See CONTRIBUTORS.TXT for a full list of copyright holders. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the OpenSim Project nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +using System; +using System.IO; +using Microsoft.Win32; + +namespace LaunchSLClient +{ + public class WindowsConfig : MachineConfig + { + public override void GetClient(ref string exePath, ref string runLine, ref string exeFlags) + { + RegistryKey regKey = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Linden Research, Inc.\SecondLife"); + if (regKey == null) + { + regKey = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Wow6432Node\Linden Research, Inc.\SecondLife"); + if (regKey == null) + { + throw new LauncherException("Can't find Second Life. Are you sure it is installed?", "LauncherException.Form1"); + } + } + string exe = regKey.GetValue("Exe").ToString(); + exeFlags = regKey.GetValue("Flags").ToString(); + exePath = regKey.GetValue("").ToString(); + runLine = exePath + "\\" + exe; + Registry.LocalMachine.Flush(); + Registry.LocalMachine.Close(); + } + } +} -- cgit v1.1 From a0ccb1235a1e1cfcb72a9202060589c37257bfc9 Mon Sep 17 00:00:00 2001 From: Jeff Ames Date: Thu, 1 May 2008 17:10:40 +0000 Subject: Fix paths in LaunchSLClient prebuild.xml --- OpenSim/Tools/LaunchSLClient/prebuild.xml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/LaunchSLClient/prebuild.xml b/OpenSim/Tools/LaunchSLClient/prebuild.xml index 8e58ba6..c51d59a 100644 --- a/OpenSim/Tools/LaunchSLClient/prebuild.xml +++ b/OpenSim/Tools/LaunchSLClient/prebuild.xml @@ -35,16 +35,16 @@ - ../../../bin/ + ../../../../bin/ - ../../../bin/ + ../../../../bin/ - ../../../bin/ + ../../../../bin/ -- cgit v1.1 From 138e612300d659df78d2d5835f9574cfb67cf4a4 Mon Sep 17 00:00:00 2001 From: Jeff Ames Date: Thu, 1 May 2008 17:26:35 +0000 Subject: More config cleanup in LaunchSLClient. --- .../Tools/LaunchSLClient/LaunchSLClient/Form1.cs | 25 ++++++++++------------ .../LaunchSLClient/LaunchSLClient/MachineConfig.cs | 1 + .../LaunchSLClient/LaunchSLClient/OSXConfig.cs | 5 +++++ .../LaunchSLClient/LaunchSLClient/UnixConfig.cs | 5 +++++ .../LaunchSLClient/LaunchSLClient/WindowsConfig.cs | 7 ++++++ 5 files changed, 29 insertions(+), 14 deletions(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Form1.cs b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Form1.cs index 700c004..a0eca6e 100644 --- a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Form1.cs +++ b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Form1.cs @@ -36,7 +36,6 @@ using System.Drawing; using System.Text; using System.Text.RegularExpressions; using System.Windows.Forms; -using Microsoft.Win32; namespace LaunchSLClient { @@ -96,9 +95,9 @@ namespace LaunchSLClient private void addLocalSandbox(ref ArrayList menuItems) { - // build sandbox URL from Regions\default.xml + // build sandbox URL from Regions/default.xml // this is highly dependant on a standard default.xml - if (File.Exists(@"Regions\default.xml")) + if (File.Exists("Regions/default.xml")) { string sandboxHostName = ""; string sandboxPort = ""; @@ -106,7 +105,7 @@ namespace LaunchSLClient Regex myRegex = new Regex(".*internal_ip_port=\\\"(?.*?)\\\".*external_host_name=\\\"(?.*?)\\\".*"); - FileInfo defaultFile = new FileInfo(@"Regions\default.xml"); + FileInfo defaultFile = new FileInfo("Regions/default.xml"); StreamReader stream = defaultFile.OpenText(); do { @@ -136,10 +135,10 @@ namespace LaunchSLClient { //build local grid URL from network_servers_information.xml // this is highly dependant on a standard default.xml - if (File.Exists(@"network_servers_information.xml")) + if (File.Exists("network_servers_information.xml")) { string text; - FileInfo defaultFile = new FileInfo(@"network_servers_information.xml"); + FileInfo defaultFile = new FileInfo("network_servers_information.xml"); Regex myRegex = new Regex(".*UserServerURL=\\\"(?.*?)\\\".*"); StreamReader stream = defaultFile.OpenText(); @@ -168,13 +167,11 @@ namespace LaunchSLClient private void addLocalSims(ref ArrayList menuItems) { - // find opensim directory - RegistryKey exeKey = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\OpenSim\OpenSim"); - if (exeKey != null) - { - Object simPath = exeKey.GetValue("Path"); + string configDir = m_machineConfig.GetConfigDir(); - Directory.SetCurrentDirectory(simPath.ToString()); //this should be set to wherever we decide to put the binaries + if (!string.IsNullOrEmpty(configDir)) + { + Directory.SetCurrentDirectory(configDir); addLocalSandbox(ref menuItems); addLocalGrid(ref menuItems); @@ -193,10 +190,10 @@ namespace LaunchSLClient System.Diagnostics.Process proc = new System.Diagnostics.Process(); proc.StartInfo.FileName = runLine; - proc.StartInfo.Arguments = exeFlags.ToString() + " " + runUrl; + proc.StartInfo.Arguments = exeFlags + " " + runUrl; proc.StartInfo.UseShellExecute = false; proc.StartInfo.RedirectStandardOutput = false; - proc.StartInfo.WorkingDirectory = exePath.ToString(); + proc.StartInfo.WorkingDirectory = exePath; proc.Start(); proc.WaitForExit(); } diff --git a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/MachineConfig.cs b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/MachineConfig.cs index 68a86c4..fea8d50 100644 --- a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/MachineConfig.cs +++ b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/MachineConfig.cs @@ -33,5 +33,6 @@ namespace LaunchSLClient public abstract class MachineConfig { public abstract void GetClient(ref string exePath, ref string runLine, ref string exeFlags); + public abstract string GetConfigDir(); } } diff --git a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/OSXConfig.cs b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/OSXConfig.cs index 60e5e48..0d866af 100644 --- a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/OSXConfig.cs +++ b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/OSXConfig.cs @@ -46,5 +46,10 @@ namespace LaunchSLClient runLine = exePath + "/Second Life"; exeFlags = ""; } + + public override string GetConfigDir() + { + return ""; + } } } diff --git a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/UnixConfig.cs b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/UnixConfig.cs index eb5342f..220ad82 100644 --- a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/UnixConfig.cs +++ b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/UnixConfig.cs @@ -38,5 +38,10 @@ namespace LaunchSLClient runLine = "secondlife"; exeFlags = ""; } + + public override string GetConfigDir() + { + return ""; + } } } diff --git a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/WindowsConfig.cs b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/WindowsConfig.cs index f3b797c..df56bfe 100644 --- a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/WindowsConfig.cs +++ b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/WindowsConfig.cs @@ -51,5 +51,12 @@ namespace LaunchSLClient Registry.LocalMachine.Flush(); Registry.LocalMachine.Close(); } + + public override string GetConfigDir() + { + RegistryKey key = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\OpenSim\OpenSim"); + + return key == null ? "" : key.GetValue("Path").ToString(); + } } } -- cgit v1.1 From c1e901989ae16f782801aeb12ec12712a2fdd85a Mon Sep 17 00:00:00 2001 From: Jeff Ames Date: Thu, 1 May 2008 18:28:32 +0000 Subject: Load grid list in LaunchSLClient from .ini file at run-time. Add script to build LaunchSLClient.app on OS X. --- .../Tools/LaunchSLClient/LaunchSLClient/Form1.cs | 74 +++++++++++++++++----- .../Tools/LaunchSLClient/LaunchSLClient/Grid.cs | 38 +++++++++++ .../Tools/LaunchSLClient/LaunchSLClient/Program.cs | 2 +- OpenSim/Tools/LaunchSLClient/make-OSX-app.sh | 38 +++++++++++ OpenSim/Tools/LaunchSLClient/prebuild.xml | 1 + 5 files changed, 135 insertions(+), 18 deletions(-) create mode 100644 OpenSim/Tools/LaunchSLClient/LaunchSLClient/Grid.cs create mode 100755 OpenSim/Tools/LaunchSLClient/make-OSX-app.sh (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Form1.cs b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Form1.cs index a0eca6e..a827c76 100644 --- a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Form1.cs +++ b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Form1.cs @@ -36,15 +36,12 @@ using System.Drawing; using System.Text; using System.Text.RegularExpressions; using System.Windows.Forms; +using Nini.Config; namespace LaunchSLClient { public partial class Form1 : Form { - const string deepGridUrl = "http://user.deepgrid.com:8002/"; - const string osGridUrl = "http://www.osgrid.org:8002/"; - const string openLifeGridUrl = "http://logingrid.net:8002/"; - string gridUrl = ""; string sandboxUrl = ""; string runUrl = ""; @@ -53,23 +50,26 @@ namespace LaunchSLClient string exePath = ""; private MachineConfig m_machineConfig; + private List m_grids = new List(); public Form1() { InitializeComponent(); - ArrayList menuItems = new ArrayList(); m_machineConfig = getMachineConfig(); m_machineConfig.GetClient(ref exePath, ref runLine, ref exeFlags); + initializeGrids(); + + ArrayList menuItems = new ArrayList(); menuItems.Add("Please select one:"); addLocalSims(ref menuItems); - menuItems.Add("OSGrid - www.osgrid.org"); - menuItems.Add("DeepGrid - www.deepgrid.com"); - menuItems.Add("OpenlifeGrid - www.openlifegrid.com"); - menuItems.Add("Linden Labs - www.secondlife.com"); + foreach (Grid grid in m_grids) + { + menuItems.Add(grid.Name + " - " + grid.URL); + } comboBox1.DataSource = menuItems; } @@ -93,6 +93,27 @@ namespace LaunchSLClient } } + private void initializeGrids() + { + string iniFile = "LaunchSLClient.ini"; + + if (!File.Exists(iniFile)) + return; + + IniConfigSource configSource = new IniConfigSource(iniFile); + + foreach (IConfig config in configSource.Configs) + { + Grid grid = new Grid(); + + grid.Name = config.Name; + grid.LoginURI = config.GetString("loginURI", ""); + grid.URL = config.GetString("URL", ""); + + m_grids.Add(grid); + } + } + private void addLocalSandbox(ref ArrayList menuItems) { // build sandbox URL from Regions/default.xml @@ -134,7 +155,6 @@ namespace LaunchSLClient private void addLocalGrid(ref ArrayList menuItems) { //build local grid URL from network_servers_information.xml - // this is highly dependant on a standard default.xml if (File.Exists("network_servers_information.xml")) { string text; @@ -180,13 +200,33 @@ namespace LaunchSLClient private void comboBox1_SelectedIndexChanged(object sender, EventArgs e) { - if (comboBox1.Text == "Please select one:") { return; } - if (comboBox1.Text == "Local Sandbox") { runUrl=" -loginuri " + sandboxUrl;} - if (comboBox1.Text == "Local Grid Server") { runUrl = " -loginuri " + gridUrl; } - if (comboBox1.Text == "DeepGrid - www.deepgrid.com") { runUrl = " -loginuri " + deepGridUrl; } - if (comboBox1.Text == "OSGrid - www.osgrid.org") { runUrl = " -loginuri " + osGridUrl; } - if (comboBox1.Text == "OpenlifeGrid - www.openlifegrid.com") { runUrl = " -loginuri " + openLifeGridUrl; } - if (comboBox1.Text == "Linden Labs - www.secondlife.com") { runUrl = ""; } + if (comboBox1.Text == "Please select one:") + { + return; + } + else if (comboBox1.Text == "Local Sandbox") + { + runUrl=" -loginuri " + sandboxUrl; + } + else if (comboBox1.Text == "Local Grid Server") + { + runUrl = " -loginuri " + gridUrl; + } + else + { + foreach (Grid grid in m_grids) + { + if (comboBox1.Text == grid.Name + " - " + grid.URL) + { + if (grid.LoginURI != string.Empty) + runUrl = " -loginuri " + grid.LoginURI; + else + runUrl = ""; + + break; + } + } + } System.Diagnostics.Process proc = new System.Diagnostics.Process(); proc.StartInfo.FileName = runLine; diff --git a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Grid.cs b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Grid.cs new file mode 100644 index 0000000..89fcefe --- /dev/null +++ b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Grid.cs @@ -0,0 +1,38 @@ +/* + * Copyright (c) Contributors, http://opensimulator.org/ + * See CONTRIBUTORS.TXT for a full list of copyright holders. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the OpenSim Project nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +using System; + +namespace LaunchSLClient +{ + public struct Grid + { + public string Name; + public string LoginURI; + public string URL; + } +} diff --git a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Program.cs b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Program.cs index 1d715a5..53ea9f8 100644 --- a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Program.cs +++ b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Program.cs @@ -44,7 +44,7 @@ namespace LaunchSLClient } catch (Exception ex) { - MessageBox.Show(ex.Message,"Unhandled Error"); + MessageBox.Show(ex.ToString(), "Error"); } } } diff --git a/OpenSim/Tools/LaunchSLClient/make-OSX-app.sh b/OpenSim/Tools/LaunchSLClient/make-OSX-app.sh new file mode 100755 index 0000000..9b9177e --- /dev/null +++ b/OpenSim/Tools/LaunchSLClient/make-OSX-app.sh @@ -0,0 +1,38 @@ +#!/bin/sh + +# This script will build LaunchSLClient.app from the .exe, .dll's, and +# other necessary files. +# +# This should be run from the bin directory. + +APP_NAME="LaunchSLClient" + +# Note that proper form is to copy Frameworks to +# *.app/Contents/Frameworks, but because @executable_path resolves to +# [...]/Resources/bin, and the libraries reference +# @executable_path/../Frameworks, we put frameworks in +# Contents/Resources instead. +FRAMEWORKS_PATH="${APP_NAME}.app/Contents/Resources/Frameworks" + +if [ ! -e ${APP_NAME}.exe ]; then + echo "Error: Could not find ${APP_NAME}.exe." >& 2 + echo "Have you built it, and are you currently in the bin directory?" >& 2 + exit 1 +fi + +CMDFLAGS="-m console -n ${APP_NAME} -a ${APP_NAME}.exe" + +REFERENCES="-r /Library/Frameworks/Mono.framework/Versions/Current/lib/ \ + -r Nini.dll \ + -r ${APP_NAME}.ini" + +if [ -f ${APP_NAME}.icns ]; then + CMDFLAGS="${CMDFLAGS} -i ${APP_NAME}.icns" +else + echo "Warning: no icon file found. Will use default application icon." >&2 +fi + +if [ -d ${APP_NAME}.app ]; then rm -rf ${APP_NAME}.app; fi +macpack ${REFERENCES} ${CMDFLAGS} + +mkdir -p ${FRAMEWORKS_PATH} diff --git a/OpenSim/Tools/LaunchSLClient/prebuild.xml b/OpenSim/Tools/LaunchSLClient/prebuild.xml index c51d59a..4a13365 100644 --- a/OpenSim/Tools/LaunchSLClient/prebuild.xml +++ b/OpenSim/Tools/LaunchSLClient/prebuild.xml @@ -57,6 +57,7 @@ + -- cgit v1.1 From 239228abd8dc1553577eaf4167a49f64fa50814c Mon Sep 17 00:00:00 2001 From: Jeff Ames Date: Thu, 1 May 2008 18:49:42 +0000 Subject: Attempt to locate SL client in LaunchSLClient under other Unices. --- .../Tools/LaunchSLClient/LaunchSLClient/OSXConfig.cs | 6 +++--- .../Tools/LaunchSLClient/LaunchSLClient/UnixConfig.cs | 18 ++++++++++++++---- .../LaunchSLClient/LaunchSLClient/WindowsConfig.cs | 11 +++++++++-- 3 files changed, 26 insertions(+), 9 deletions(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/OSXConfig.cs b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/OSXConfig.cs index 0d866af..177d7e8 100644 --- a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/OSXConfig.cs +++ b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/OSXConfig.cs @@ -43,13 +43,13 @@ namespace LaunchSLClient exePath = "/Applications/Second Life Release Candidate.app/Contents/MacOS"; } - runLine = exePath + "/Second Life"; - exeFlags = ""; + runLine = Path.Combine(exePath, "Second Life"); + exeFlags = string.Empty; } public override string GetConfigDir() { - return ""; + return string.Empty; } } } diff --git a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/UnixConfig.cs b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/UnixConfig.cs index 220ad82..c285066 100644 --- a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/UnixConfig.cs +++ b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/UnixConfig.cs @@ -34,14 +34,24 @@ namespace LaunchSLClient { public override void GetClient(ref string exePath, ref string runLine, ref string exeFlags) { - exePath = ""; - runLine = "secondlife"; - exeFlags = ""; + exePath = string.Empty; + exeFlags = string.Empty; + + foreach (string path in Environment.GetEnvironmentVariable("PATH").Split(':')) + { + if (File.Exists(Path.Combine(path, "secondlife"))) + { + exePath = path; + break; + } + } + + runLine = Path.Combine(exePath, "secondlife"); } public override string GetConfigDir() { - return ""; + return string.Empty; } } } diff --git a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/WindowsConfig.cs b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/WindowsConfig.cs index df56bfe..7988d96 100644 --- a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/WindowsConfig.cs +++ b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/WindowsConfig.cs @@ -47,7 +47,7 @@ namespace LaunchSLClient string exe = regKey.GetValue("Exe").ToString(); exeFlags = regKey.GetValue("Flags").ToString(); exePath = regKey.GetValue("").ToString(); - runLine = exePath + "\\" + exe; + runLine = Path.Combine(exePath, exe); Registry.LocalMachine.Flush(); Registry.LocalMachine.Close(); } @@ -56,7 +56,14 @@ namespace LaunchSLClient { RegistryKey key = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\OpenSim\OpenSim"); - return key == null ? "" : key.GetValue("Path").ToString(); + if (key == null) + { + return string.Empty; + } + else + { + return key.GetValue("Path").ToString(); + } } } } -- cgit v1.1 From 76d8eaa4069d6445c47784168e274ba4253f7b9c Mon Sep 17 00:00:00 2001 From: Adam Frisby Date: Thu, 1 May 2008 18:50:44 +0000 Subject: * Thanks to Mic Bowman for inspiring me to look at that we are still using ASCIIEncoder in places we shouldn't. --- OpenSim/Tools/pCampBot/BotManager.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/pCampBot/BotManager.cs b/OpenSim/Tools/pCampBot/BotManager.cs index 8877f7d..302dc08 100644 --- a/OpenSim/Tools/pCampBot/BotManager.cs +++ b/OpenSim/Tools/pCampBot/BotManager.cs @@ -196,7 +196,7 @@ namespace pCampBot Environment.Exit(0); break; case "addbots": - int newbots = 0; + int newbots; Helpers.TryParse(cmdparams[0], out newbots); if (newbots > 0) -- cgit v1.1 From 6729d488a5a1ee977d303cb0c751511a08dc0b01 Mon Sep 17 00:00:00 2001 From: Jeff Ames Date: Thu, 1 May 2008 19:00:12 +0000 Subject: Minor cosmetic cleanup. --- .../LaunchSLClient/LaunchSLClient/Form1.Designer.cs | 20 ++++---------------- OpenSim/Tools/LaunchSLClient/LaunchSLClient/Form1.cs | 4 ++-- 2 files changed, 6 insertions(+), 18 deletions(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Form1.Designer.cs b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Form1.Designer.cs index b9e905a..38657b0 100644 --- a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Form1.Designer.cs +++ b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Form1.Designer.cs @@ -58,25 +58,15 @@ namespace LaunchSLClient this.comboBox1 = new System.Windows.Forms.ComboBox(); this.textBox1 = new System.Windows.Forms.TextBox(); this.SuspendLayout(); - // - // comboBox1 - // + this.comboBox1.FormattingEnabled = true; - this.comboBox1.Items.AddRange(new object[] { - "Local Sandbox", - "Local Grid Server", - "DeepGrid - www.deepgrid.com", - "OSGrid - www.osgrid.org", - "Linden Labs - www.secondlife.com"}); this.comboBox1.Location = new System.Drawing.Point(37, 83); this.comboBox1.Name = "comboBox1"; this.comboBox1.Size = new System.Drawing.Size(348, 21); this.comboBox1.TabIndex = 0; this.comboBox1.Text = "Choose from list"; this.comboBox1.SelectedIndexChanged += new System.EventHandler(this.comboBox1_SelectedIndexChanged); - // - // textBox1 - // + this.textBox1.BorderStyle = System.Windows.Forms.BorderStyle.None; this.textBox1.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.textBox1.Location = new System.Drawing.Point(37, 32); @@ -84,10 +74,8 @@ namespace LaunchSLClient this.textBox1.ReadOnly = true; this.textBox1.Size = new System.Drawing.Size(292, 19); this.textBox1.TabIndex = 1; - this.textBox1.Text = "Choose from one of the following:"; - // - // Form1 - // + this.textBox1.Text = "Grid to connect to:"; + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.ClientSize = new System.Drawing.Size(501, 339); diff --git a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Form1.cs b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Form1.cs index a827c76..d53f919 100644 --- a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Form1.cs +++ b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Form1.cs @@ -62,7 +62,7 @@ namespace LaunchSLClient initializeGrids(); ArrayList menuItems = new ArrayList(); - menuItems.Add("Please select one:"); + menuItems.Add(string.Empty); addLocalSims(ref menuItems); @@ -200,7 +200,7 @@ namespace LaunchSLClient private void comboBox1_SelectedIndexChanged(object sender, EventArgs e) { - if (comboBox1.Text == "Please select one:") + if (comboBox1.Text == string.Empty) { return; } -- cgit v1.1 From a5a16f6f499cf3166221bfefe119518eebdc8ca0 Mon Sep 17 00:00:00 2001 From: Jeff Ames Date: Thu, 1 May 2008 19:20:53 +0000 Subject: Get LaunchSLClient window out of the way when launching SL. --- OpenSim/Tools/LaunchSLClient/LaunchSLClient/Form1.cs | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Form1.cs b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Form1.cs index d53f919..dbc58ff 100644 --- a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Form1.cs +++ b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Form1.cs @@ -228,6 +228,9 @@ namespace LaunchSLClient } } + comboBox1.DroppedDown = false; + Hide(); + System.Diagnostics.Process proc = new System.Diagnostics.Process(); proc.StartInfo.FileName = runLine; proc.StartInfo.Arguments = exeFlags + " " + runUrl; @@ -236,6 +239,8 @@ namespace LaunchSLClient proc.StartInfo.WorkingDirectory = exePath; proc.Start(); proc.WaitForExit(); + + Application.Exit(); } } } -- cgit v1.1 From f94099b485248ebcaa943a6437fbec86b3fd567c Mon Sep 17 00:00:00 2001 From: Jeff Ames Date: Fri, 2 May 2008 03:30:44 +0000 Subject: Minimize binary size and external dependencies in OS X LaunchSLClient.app creation script. --- .../LaunchSLClient.app.skel/Contents/Info.plist | 12 +++++++ .../Contents/MacOS/LaunchSLClient | 13 +++++++ OpenSim/Tools/LaunchSLClient/make-OSX-app.sh | 42 +++++++++++----------- 3 files changed, 47 insertions(+), 20 deletions(-) create mode 100644 OpenSim/Tools/LaunchSLClient/LaunchSLClient.app.skel/Contents/Info.plist create mode 100755 OpenSim/Tools/LaunchSLClient/LaunchSLClient.app.skel/Contents/MacOS/LaunchSLClient (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/LaunchSLClient/LaunchSLClient.app.skel/Contents/Info.plist b/OpenSim/Tools/LaunchSLClient/LaunchSLClient.app.skel/Contents/Info.plist new file mode 100644 index 0000000..7139350 --- /dev/null +++ b/OpenSim/Tools/LaunchSLClient/LaunchSLClient.app.skel/Contents/Info.plist @@ -0,0 +1,12 @@ + + + + + CFBundleIdentifier + LaunchSLClient + CFBundleExecutable + LaunchSLClient + CFBundleIconFile + + + diff --git a/OpenSim/Tools/LaunchSLClient/LaunchSLClient.app.skel/Contents/MacOS/LaunchSLClient b/OpenSim/Tools/LaunchSLClient/LaunchSLClient.app.skel/Contents/MacOS/LaunchSLClient new file mode 100755 index 0000000..22acade --- /dev/null +++ b/OpenSim/Tools/LaunchSLClient/LaunchSLClient.app.skel/Contents/MacOS/LaunchSLClient @@ -0,0 +1,13 @@ +#!/bin/sh + +PWD=`pwd` + +# Fetch the path relative to the launch point where this shell script exists. +APP_PATH=`echo $0 | awk '{split($0,patharr,"/"); idx=1; while(patharr[idx+3] != "") { if (patharr[idx] != "/") {printf("%s/", patharr[idx]); idx++ }} }'` + +# Fetch the app name (its our own name) +APP_NAME=`echo $0 | awk '{split($0,patharr,"/"); idx=1; while(patharr[idx+1] != "") {idx++} printf("%s", patharr[idx]); }'` + +cd "$APP_PATH/Contents/Resources" + +./$APP_NAME diff --git a/OpenSim/Tools/LaunchSLClient/make-OSX-app.sh b/OpenSim/Tools/LaunchSLClient/make-OSX-app.sh index 9b9177e..aa37cb6 100755 --- a/OpenSim/Tools/LaunchSLClient/make-OSX-app.sh +++ b/OpenSim/Tools/LaunchSLClient/make-OSX-app.sh @@ -6,13 +6,22 @@ # This should be run from the bin directory. APP_NAME="LaunchSLClient" - -# Note that proper form is to copy Frameworks to -# *.app/Contents/Frameworks, but because @executable_path resolves to -# [...]/Resources/bin, and the libraries reference -# @executable_path/../Frameworks, we put frameworks in -# Contents/Resources instead. -FRAMEWORKS_PATH="${APP_NAME}.app/Contents/Resources/Frameworks" +SOURCE_PATH="../OpenSim/Tools/${APP_NAME}" + +ASSEMBLIES="mscorlib.dll \ + System.Windows.Forms.dll \ + System.Drawing.dll \ + System.Configuration.dll \ + System.Xml.dll \ + System.Security.dll \ + Mono.Security.dll \ + System.Data.dll \ + Mono.Data.Tds.dll \ + System.Transactions.dll \ + System.EnterpriseServices.dll \ + Mono.Mozilla.dll \ + Mono.Posix.dll \ + Accessibility.dll" if [ ! -e ${APP_NAME}.exe ]; then echo "Error: Could not find ${APP_NAME}.exe." >& 2 @@ -20,19 +29,12 @@ if [ ! -e ${APP_NAME}.exe ]; then exit 1 fi -CMDFLAGS="-m console -n ${APP_NAME} -a ${APP_NAME}.exe" - -REFERENCES="-r /Library/Frameworks/Mono.framework/Versions/Current/lib/ \ - -r Nini.dll \ - -r ${APP_NAME}.ini" - -if [ -f ${APP_NAME}.icns ]; then - CMDFLAGS="${CMDFLAGS} -i ${APP_NAME}.icns" -else - echo "Warning: no icon file found. Will use default application icon." >&2 -fi +mkbundle2 -z -o ${APP_NAME} ${APP_NAME}.exe ${ASSEMBLIES} || exit 1 if [ -d ${APP_NAME}.app ]; then rm -rf ${APP_NAME}.app; fi -macpack ${REFERENCES} ${CMDFLAGS} +cp -r ${SOURCE_PATH}/${APP_NAME}.app.skel ${APP_NAME}.app + +# mkbundle doesn't seem to recognize the -L option, so we can't include Nini.dll in the bundling +cp Nini.dll ${APP_NAME}.app/Contents/Resources -mkdir -p ${FRAMEWORKS_PATH} +cp ${APP_NAME} ${APP_NAME}.ini ${APP_NAME}.app/Contents/Resources -- cgit v1.1 From c995d60d37032db3198b8496e186aa7a892dc7a8 Mon Sep 17 00:00:00 2001 From: Jeff Ames Date: Wed, 14 May 2008 05:11:23 +0000 Subject: Formatting cleanup. --- OpenSim/Tools/OpenSim.GUI/Main.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/OpenSim.GUI/Main.cs b/OpenSim/Tools/OpenSim.GUI/Main.cs index adb331b..9467312 100644 --- a/OpenSim/Tools/OpenSim.GUI/Main.cs +++ b/OpenSim/Tools/OpenSim.GUI/Main.cs @@ -407,7 +407,7 @@ namespace OpenSim.GUI portBox1.Text = "13050"; MessageBox.Show("Enter Usable port number, defaulting to 13050."); } - if(aPort < 13000) + if (aPort < 13000) { portBox1.Text = "13000"; MessageBox.Show("Enter Usable port number, defaulting to 13000."); -- cgit v1.1 From 6a1b787436cc59043a26a296781e7a7b5ea0c67b Mon Sep 17 00:00:00 2001 From: Jeff Ames Date: Wed, 14 May 2008 05:33:32 +0000 Subject: More formatting cleanup. --- OpenSim/Tools/pCampBot/pCampBot.cs | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/pCampBot/pCampBot.cs b/OpenSim/Tools/pCampBot/pCampBot.cs index d944608..81ec2b2 100644 --- a/OpenSim/Tools/pCampBot/pCampBot.cs +++ b/OpenSim/Tools/pCampBot/pCampBot.cs @@ -47,9 +47,12 @@ namespace pCampBot public static void Main(string[] args) { IConfig config = ParseConfig(args); - if (config.Get("help") != null || config.Get("loginuri") == null) { + if (config.Get("help") != null || config.Get("loginuri") == null) + { Help(); - } else { + } + else + { int botcount = config.GetInt("botcount", 1); BotManager bm = new BotManager(); -- cgit v1.1 From 65c5efe43b68700bad94076d4cd421160203c5de Mon Sep 17 00:00:00 2001 From: Jeff Ames Date: Fri, 16 May 2008 01:22:11 +0000 Subject: Formatting cleanup. --- .../LaunchSLClient/Properties/AssemblyInfo.cs | 8 +- .../OpenSim.32BitLaunch/Properties/AssemblyInfo.cs | 10 +- OpenSim/Tools/OpenSim.GUI/Main.Designer.cs | 412 ++++++++++----------- .../Tools/OpenSim.GUI/Properties/AssemblyInfo.cs | 8 +- .../Tools/OpenSim.GUI/frmConfiguration.Designer.cs | 8 +- OpenSim/Tools/pCampBot/PhysicsBot.cs | 4 +- 6 files changed, 225 insertions(+), 225 deletions(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Properties/AssemblyInfo.cs b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Properties/AssemblyInfo.cs index 62af735..797580d 100644 --- a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Properties/AssemblyInfo.cs +++ b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Properties/AssemblyInfo.cs @@ -29,7 +29,7 @@ using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; -// General Information about an assembly is controlled through the following +// General information about an assembly is controlled through the following // set of attributes. Change these attribute values to modify the information // associated with an assembly. [assembly: AssemblyTitle("LaunchSLClient")] @@ -41,8 +41,8 @@ using System.Runtime.InteropServices; [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from // COM, set the ComVisible attribute to true on that type. [assembly: ComVisible(false)] @@ -52,7 +52,7 @@ using System.Runtime.InteropServices; // Version information for an assembly consists of the following four values: // // Major Version -// Minor Version +// Minor Version // Build Number // Revision // diff --git a/OpenSim/Tools/OpenSim.32BitLaunch/Properties/AssemblyInfo.cs b/OpenSim/Tools/OpenSim.32BitLaunch/Properties/AssemblyInfo.cs index 637fb09..74fedfa 100644 --- a/OpenSim/Tools/OpenSim.32BitLaunch/Properties/AssemblyInfo.cs +++ b/OpenSim/Tools/OpenSim.32BitLaunch/Properties/AssemblyInfo.cs @@ -29,7 +29,7 @@ using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; -// General Information about an assembly is controlled through the following +// General information about an assembly is controlled through the following // set of attributes. Change these attribute values to modify the information // associated with an assembly. [assembly: AssemblyTitle("OpenSim.32BitLaunch")] @@ -41,8 +41,8 @@ using System.Runtime.InteropServices; [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from // COM, set the ComVisible attribute to true on that type. [assembly: ComVisible(false)] @@ -52,11 +52,11 @@ using System.Runtime.InteropServices; // Version information for an assembly consists of the following four values: // // Major Version -// Minor Version +// Minor Version // Build Number // Revision // -// You can specify all the values or you can default the Build and Revision Numbers +// You can specify all the values or you can default the Build and Revision Numbers // by using the '*' as shown below: // [assembly: AssemblyVersion("1.0.*")] [assembly: AssemblyVersion("1.0.0.0")] diff --git a/OpenSim/Tools/OpenSim.GUI/Main.Designer.cs b/OpenSim/Tools/OpenSim.GUI/Main.Designer.cs index e1481a2..af29bce 100644 --- a/OpenSim/Tools/OpenSim.GUI/Main.Designer.cs +++ b/OpenSim/Tools/OpenSim.GUI/Main.Designer.cs @@ -168,9 +168,9 @@ namespace OpenSim.GUI this.tabAssetServer.SuspendLayout(); this.tabGridServer.SuspendLayout(); this.SuspendLayout(); - // + // // menuStrip1 - // + // this.menuStrip1.AutoSize = false; this.menuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { this.fileToolStripMenuItem}); @@ -179,36 +179,36 @@ namespace OpenSim.GUI this.menuStrip1.Size = new System.Drawing.Size(900, 20); this.menuStrip1.TabIndex = 7; this.menuStrip1.Text = "menuStrip1"; - // + // // fileToolStripMenuItem - // + // this.fileToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { this.exitToolStripMenuItem}); this.fileToolStripMenuItem.Name = "fileToolStripMenuItem"; this.fileToolStripMenuItem.Size = new System.Drawing.Size(35, 16); this.fileToolStripMenuItem.Text = "File"; - // + // // exitToolStripMenuItem - // + // this.exitToolStripMenuItem.Name = "exitToolStripMenuItem"; this.exitToolStripMenuItem.Size = new System.Drawing.Size(130, 22); this.exitToolStripMenuItem.Text = "Exit Cleanly"; this.exitToolStripMenuItem.Click += new System.EventHandler(this.exitToolStripMenuItem_Click); - // + // // timer1 - // + // this.timer1.Enabled = true; - // + // // clientBox1 - // + // this.clientBox1.Location = new System.Drawing.Point(680, 27); this.clientBox1.Name = "clientBox1"; this.clientBox1.Size = new System.Drawing.Size(213, 20); this.clientBox1.TabIndex = 8; this.clientBox1.Text = "C://Secondlife//"; - // + // // btnStart - // + // this.btnStart.Location = new System.Drawing.Point(7, 366); this.btnStart.Name = "btnStart"; this.btnStart.Size = new System.Drawing.Size(80, 23); @@ -216,9 +216,9 @@ namespace OpenSim.GUI this.btnStart.Text = "Start"; this.btnStart.UseVisualStyleBackColor = true; this.btnStart.Click += new System.EventHandler(this.btnStart_Click); - // + // // btnStop - // + // this.btnStop.Location = new System.Drawing.Point(92, 366); this.btnStop.Name = "btnStop"; this.btnStop.Size = new System.Drawing.Size(80, 23); @@ -226,9 +226,9 @@ namespace OpenSim.GUI this.btnStop.Text = "Stop"; this.btnStop.UseVisualStyleBackColor = true; this.btnStop.Click += new System.EventHandler(this.btnStop_Click); - // + // // rbGridRegionMode - // + // this.rbGridRegionMode.AutoSize = true; this.rbGridRegionMode.Location = new System.Drawing.Point(96, 27); this.rbGridRegionMode.Name = "rbGridRegionMode"; @@ -237,9 +237,9 @@ namespace OpenSim.GUI this.rbGridRegionMode.Text = "Grid region"; this.rbGridRegionMode.UseVisualStyleBackColor = true; this.rbGridRegionMode.CheckedChanged += new System.EventHandler(this.rbGridRegionMode_CheckedChanged); - // + // // rbStandAloneMode - // + // this.rbStandAloneMode.AutoSize = true; this.rbStandAloneMode.Checked = true; this.rbStandAloneMode.Location = new System.Drawing.Point(8, 27); @@ -250,9 +250,9 @@ namespace OpenSim.GUI this.rbStandAloneMode.Text = "Stand alone"; this.rbStandAloneMode.UseVisualStyleBackColor = true; this.rbStandAloneMode.CheckedChanged += new System.EventHandler(this.rbStandAloneMode_CheckedChanged); - // + // // rbGridServer - // + // this.rbGridServer.AutoSize = true; this.rbGridServer.Location = new System.Drawing.Point(178, 27); this.rbGridServer.Name = "rbGridServer"; @@ -261,9 +261,9 @@ namespace OpenSim.GUI this.rbGridServer.Text = "Grid server"; this.rbGridServer.UseVisualStyleBackColor = true; this.rbGridServer.CheckedChanged += new System.EventHandler(this.rbGridServer_CheckedChanged); - // + // // Launch1 - // + // this.Launch1.Location = new System.Drawing.Point(264, 366); this.Launch1.Name = "Launch1"; this.Launch1.Size = new System.Drawing.Size(80, 23); @@ -271,9 +271,9 @@ namespace OpenSim.GUI this.Launch1.Text = "Client Launch"; this.Launch1.UseVisualStyleBackColor = true; this.Launch1.Click += new System.EventHandler(this.Launch1_Click); - // + // // gbLog - // + // this.gbLog.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); @@ -284,9 +284,9 @@ namespace OpenSim.GUI this.gbLog.TabIndex = 1; this.gbLog.TabStop = false; this.gbLog.Text = "Logs"; - // + // // tabLogs - // + // this.tabLogs.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); @@ -300,9 +300,9 @@ namespace OpenSim.GUI this.tabLogs.SelectedIndex = 0; this.tabLogs.Size = new System.Drawing.Size(333, 285); this.tabLogs.TabIndex = 0; - // + // // tabMainLog - // + // this.tabMainLog.Controls.Add(this.txtMainLog); this.tabMainLog.Location = new System.Drawing.Point(4, 22); this.tabMainLog.Name = "tabMainLog"; @@ -310,9 +310,9 @@ namespace OpenSim.GUI this.tabMainLog.TabIndex = 4; this.tabMainLog.Text = "Main log"; this.tabMainLog.UseVisualStyleBackColor = true; - // + // // txtMainLog - // + // this.txtMainLog.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); @@ -322,9 +322,9 @@ namespace OpenSim.GUI this.txtMainLog.ScrollBars = System.Windows.Forms.ScrollBars.Vertical; this.txtMainLog.Size = new System.Drawing.Size(325, 259); this.txtMainLog.TabIndex = 1; - // + // // tabRegionServer - // + // this.tabRegionServer.Controls.Add(this.txtInputRegionServer); this.tabRegionServer.Controls.Add(this.label1); this.tabRegionServer.Controls.Add(this.txtOpenSim); @@ -335,25 +335,25 @@ namespace OpenSim.GUI this.tabRegionServer.TabIndex = 0; this.tabRegionServer.Text = "Region server"; this.tabRegionServer.UseVisualStyleBackColor = true; - // + // // txtInputRegionServer - // + // this.txtInputRegionServer.Location = new System.Drawing.Point(53, 239); this.txtInputRegionServer.Name = "txtInputRegionServer"; this.txtInputRegionServer.Size = new System.Drawing.Size(272, 20); this.txtInputRegionServer.TabIndex = 5; - // + // // label1 - // + // this.label1.AutoSize = true; this.label1.Location = new System.Drawing.Point(0, 242); this.label1.Name = "label1"; this.label1.Size = new System.Drawing.Size(57, 13); this.label1.TabIndex = 4; this.label1.Text = "Command:"; - // + // // txtOpenSim - // + // this.txtOpenSim.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); @@ -363,9 +363,9 @@ namespace OpenSim.GUI this.txtOpenSim.ScrollBars = System.Windows.Forms.ScrollBars.Vertical; this.txtOpenSim.Size = new System.Drawing.Size(325, 236); this.txtOpenSim.TabIndex = 0; - // + // // tabUserServer - // + // this.tabUserServer.Controls.Add(this.txtInputUserServer); this.tabUserServer.Controls.Add(this.label2); this.tabUserServer.Controls.Add(this.txtUserServer); @@ -376,25 +376,25 @@ namespace OpenSim.GUI this.tabUserServer.TabIndex = 1; this.tabUserServer.Text = "User server"; this.tabUserServer.UseVisualStyleBackColor = true; - // + // // txtInputUserServer - // + // this.txtInputUserServer.Location = new System.Drawing.Point(53, 239); this.txtInputUserServer.Name = "txtInputUserServer"; this.txtInputUserServer.Size = new System.Drawing.Size(272, 20); this.txtInputUserServer.TabIndex = 7; - // + // // label2 - // + // this.label2.AutoSize = true; this.label2.Location = new System.Drawing.Point(0, 242); this.label2.Name = "label2"; this.label2.Size = new System.Drawing.Size(57, 13); this.label2.TabIndex = 6; this.label2.Text = "Command:"; - // + // // txtUserServer - // + // this.txtUserServer.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); @@ -404,9 +404,9 @@ namespace OpenSim.GUI this.txtUserServer.ScrollBars = System.Windows.Forms.ScrollBars.Vertical; this.txtUserServer.Size = new System.Drawing.Size(325, 236); this.txtUserServer.TabIndex = 1; - // + // // tabAssetServer - // + // this.tabAssetServer.Controls.Add(this.txtInputAssetServer); this.tabAssetServer.Controls.Add(this.label3); this.tabAssetServer.Controls.Add(this.txtAssetServer); @@ -416,25 +416,25 @@ namespace OpenSim.GUI this.tabAssetServer.TabIndex = 2; this.tabAssetServer.Text = "Asset server"; this.tabAssetServer.UseVisualStyleBackColor = true; - // + // // txtInputAssetServer - // + // this.txtInputAssetServer.Location = new System.Drawing.Point(53, 239); this.txtInputAssetServer.Name = "txtInputAssetServer"; this.txtInputAssetServer.Size = new System.Drawing.Size(272, 20); this.txtInputAssetServer.TabIndex = 7; - // + // // label3 - // + // this.label3.AutoSize = true; this.label3.Location = new System.Drawing.Point(0, 242); this.label3.Name = "label3"; this.label3.Size = new System.Drawing.Size(57, 13); this.label3.TabIndex = 6; this.label3.Text = "Command:"; - // + // // txtAssetServer - // + // this.txtAssetServer.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); @@ -444,9 +444,9 @@ namespace OpenSim.GUI this.txtAssetServer.ScrollBars = System.Windows.Forms.ScrollBars.Vertical; this.txtAssetServer.Size = new System.Drawing.Size(325, 236); this.txtAssetServer.TabIndex = 1; - // + // // tabGridServer - // + // this.tabGridServer.Controls.Add(this.txtInputGridServer); this.tabGridServer.Controls.Add(this.label4); this.tabGridServer.Controls.Add(this.txtGridServer); @@ -456,25 +456,25 @@ namespace OpenSim.GUI this.tabGridServer.TabIndex = 3; this.tabGridServer.Text = "Grid server"; this.tabGridServer.UseVisualStyleBackColor = true; - // + // // txtInputGridServer - // + // this.txtInputGridServer.Location = new System.Drawing.Point(53, 239); this.txtInputGridServer.Name = "txtInputGridServer"; this.txtInputGridServer.Size = new System.Drawing.Size(272, 20); this.txtInputGridServer.TabIndex = 7; - // + // // label4 - // + // this.label4.AutoSize = true; this.label4.Location = new System.Drawing.Point(0, 242); this.label4.Name = "label4"; this.label4.Size = new System.Drawing.Size(57, 13); this.label4.TabIndex = 6; this.label4.Text = "Command:"; - // + // // txtGridServer - // + // this.txtGridServer.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); @@ -484,9 +484,9 @@ namespace OpenSim.GUI this.txtGridServer.ScrollBars = System.Windows.Forms.ScrollBars.Vertical; this.txtGridServer.Size = new System.Drawing.Size(325, 236); this.txtGridServer.TabIndex = 1; - // + // // label5 - // + // this.label5.AutoSize = true; this.label5.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, ((System.Drawing.FontStyle)((System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Underline))), System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.label5.Location = new System.Drawing.Point(460, 55); @@ -494,9 +494,9 @@ namespace OpenSim.GUI this.label5.Size = new System.Drawing.Size(205, 20); this.label5.TabIndex = 11; this.label5.Text = "Command Line Switches"; - // + // // noProbe1 - // + // this.noProbe1.AutoSize = true; this.noProbe1.Location = new System.Drawing.Point(359, 275); this.noProbe1.Name = "noProbe1"; @@ -505,18 +505,18 @@ namespace OpenSim.GUI this.noProbe1.Text = "-noprobe"; this.toolTip1.SetToolTip(this.noProbe1, "disable hardware probe"); this.noProbe1.UseVisualStyleBackColor = true; - // + // // label6 - // + // this.label6.AutoSize = true; this.label6.Location = new System.Drawing.Point(8, 415); this.label6.Name = "label6"; this.label6.Size = new System.Drawing.Size(0, 13); this.label6.TabIndex = 14; this.label6.Click += new System.EventHandler(this.label6_Click); - // + // // multiple1 - // + // this.multiple1.AutoSize = true; this.multiple1.Location = new System.Drawing.Point(359, 185); this.multiple1.Name = "multiple1"; @@ -525,9 +525,9 @@ namespace OpenSim.GUI this.multiple1.Text = "-multiple"; this.toolTip1.SetToolTip(this.multiple1, "allow multiple viewers"); this.multiple1.UseVisualStyleBackColor = true; - // + // // label7 - // + // this.label7.AutoSize = true; this.label7.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, ((System.Drawing.FontStyle)((System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Underline))), System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.label7.Location = new System.Drawing.Point(8, 396); @@ -535,9 +535,9 @@ namespace OpenSim.GUI this.label7.Size = new System.Drawing.Size(338, 13); this.label7.TabIndex = 16; this.label7.Text = "Client Command Line String Used and Program Messages :"; - // + // // noMultiple1 - // + // this.noMultiple1.AutoSize = true; this.noMultiple1.Location = new System.Drawing.Point(359, 260); this.noMultiple1.Name = "noMultiple1"; @@ -546,9 +546,9 @@ namespace OpenSim.GUI this.noMultiple1.Text = "-nomultiple"; this.toolTip1.SetToolTip(this.noMultiple1, "block multiple viewers (secondlife.exe instances)"); this.noMultiple1.UseVisualStyleBackColor = true; - // + // // ignorepixeldepth1 - // + // this.ignorepixeldepth1.AutoSize = true; this.ignorepixeldepth1.Location = new System.Drawing.Point(359, 125); this.ignorepixeldepth1.Name = "ignorepixeldepth1"; @@ -557,9 +557,9 @@ namespace OpenSim.GUI this.ignorepixeldepth1.Text = "-ignorepixeldepth"; this.toolTip1.SetToolTip(this.ignorepixeldepth1, "ignore pixel depth settings"); this.ignorepixeldepth1.UseVisualStyleBackColor = true; - // + // // nothread1 - // + // this.nothread1.AutoSize = true; this.nothread1.Location = new System.Drawing.Point(359, 305); this.nothread1.Name = "nothread1"; @@ -568,9 +568,9 @@ namespace OpenSim.GUI this.nothread1.Text = "-nothread"; this.toolTip1.SetToolTip(this.nothread1, "run VFS (Virtual File System) in single thread"); this.nothread1.UseVisualStyleBackColor = true; - // + // // safe1 - // + // this.safe1.AutoSize = true; this.safe1.Location = new System.Drawing.Point(359, 365); this.safe1.Name = "safe1"; @@ -579,9 +579,9 @@ namespace OpenSim.GUI this.safe1.Text = "-safe"; this.toolTip1.SetToolTip(this.safe1, "reset preferences, run in safe mode"); this.safe1.UseVisualStyleBackColor = true; - // + // // noconsole1 - // + // this.noconsole1.AutoSize = true; this.noconsole1.Location = new System.Drawing.Point(359, 215); this.noconsole1.Name = "noconsole1"; @@ -590,9 +590,9 @@ namespace OpenSim.GUI this.noconsole1.Text = "-noconsole"; this.toolTip1.SetToolTip(this.noconsole1, "hide the console if not already hidden"); this.noconsole1.UseVisualStyleBackColor = true; - // + // // log1 - // + // this.log1.AutoSize = true; this.log1.Location = new System.Drawing.Point(359, 170); this.log1.Name = "log1"; @@ -601,9 +601,9 @@ namespace OpenSim.GUI this.log1.Text = "-log"; this.toolTip1.SetToolTip(this.log1, "--no info avail--"); this.log1.UseVisualStyleBackColor = true; - // + // // helperuri1 - // + // this.helperuri1.AutoSize = true; this.helperuri1.Location = new System.Drawing.Point(359, 110); this.helperuri1.Name = "helperuri1"; @@ -612,9 +612,9 @@ namespace OpenSim.GUI this.helperuri1.Text = "-helperuri"; this.toolTip1.SetToolTip(this.helperuri1, "--no info avail--"); this.helperuri1.UseVisualStyleBackColor = true; - // + // // autologin1 - // + // this.autologin1.AutoSize = true; this.autologin1.Location = new System.Drawing.Point(359, 65); this.autologin1.Name = "autologin1"; @@ -623,9 +623,9 @@ namespace OpenSim.GUI this.autologin1.Text = "--autologin"; this.toolTip1.SetToolTip(this.autologin1, "--no info avail--"); this.autologin1.UseVisualStyleBackColor = true; - // + // // dialog1 - // + // this.dialog1.AutoSize = true; this.dialog1.Location = new System.Drawing.Point(359, 95); this.dialog1.Name = "dialog1"; @@ -634,9 +634,9 @@ namespace OpenSim.GUI this.dialog1.Text = "-dialog"; this.toolTip1.SetToolTip(this.dialog1, "some arcane dialog box that is impossible to raise"); this.dialog1.UseVisualStyleBackColor = true; - // + // // previous1 - // + // this.previous1.AutoSize = true; this.previous1.Location = new System.Drawing.Point(359, 335); this.previous1.Name = "previous1"; @@ -645,9 +645,9 @@ namespace OpenSim.GUI this.previous1.Text = "-previous"; this.toolTip1.SetToolTip(this.previous1, "--no info avail--"); this.previous1.UseVisualStyleBackColor = true; - // + // // simple1 - // + // this.simple1.AutoSize = true; this.simple1.Location = new System.Drawing.Point(359, 380); this.simple1.Name = "simple1"; @@ -656,9 +656,9 @@ namespace OpenSim.GUI this.simple1.Text = "-simple"; this.toolTip1.SetToolTip(this.simple1, "--no info avail--"); this.simple1.UseVisualStyleBackColor = true; - // + // // noinvlib1 - // + // this.noinvlib1.AutoSize = true; this.noinvlib1.Location = new System.Drawing.Point(359, 245); this.noinvlib1.Name = "noinvlib1"; @@ -667,9 +667,9 @@ namespace OpenSim.GUI this.noinvlib1.Text = "-noinvlib"; this.toolTip1.SetToolTip(this.noinvlib1, "do not request inventory library"); this.noinvlib1.UseVisualStyleBackColor = true; - // + // // debugst1 - // + // this.debugst1.AutoSize = true; this.debugst1.Location = new System.Drawing.Point(359, 80); this.debugst1.Name = "debugst1"; @@ -678,9 +678,9 @@ namespace OpenSim.GUI this.debugst1.Text = "-debugst"; this.toolTip1.SetToolTip(this.debugst1, "debug mask"); this.debugst1.UseVisualStyleBackColor = true; - // + // // spanish1 - // + // this.spanish1.AutoSize = true; this.spanish1.Location = new System.Drawing.Point(359, 395); this.spanish1.Name = "spanish1"; @@ -689,9 +689,9 @@ namespace OpenSim.GUI this.spanish1.Text = "-spanish"; this.toolTip1.SetToolTip(this.spanish1, "activate (incomplete) Spanish UI translation"); this.spanish1.UseVisualStyleBackColor = true; - // + // // korean1 - // + // this.korean1.AutoSize = true; this.korean1.Location = new System.Drawing.Point(359, 140); this.korean1.Name = "korean1"; @@ -700,9 +700,9 @@ namespace OpenSim.GUI this.korean1.Text = "-korean"; this.toolTip1.SetToolTip(this.korean1, "activate (incomplete) Korean UI translation"); this.korean1.UseVisualStyleBackColor = true; - // + // // local1 - // + // this.local1.AutoSize = true; this.local1.Location = new System.Drawing.Point(359, 155); this.local1.Name = "local1"; @@ -711,9 +711,9 @@ namespace OpenSim.GUI this.local1.Text = "-local"; this.toolTip1.SetToolTip(this.local1, "run without simulator"); this.local1.UseVisualStyleBackColor = true; - // + // // purge1 - // + // this.purge1.AutoSize = true; this.purge1.Location = new System.Drawing.Point(359, 350); this.purge1.Name = "purge1"; @@ -722,9 +722,9 @@ namespace OpenSim.GUI this.purge1.Text = "-purge"; this.toolTip1.SetToolTip(this.purge1, "delete files in cache"); this.purge1.UseVisualStyleBackColor = true; - // + // // nofmod1 - // + // this.nofmod1.AutoSize = true; this.nofmod1.Location = new System.Drawing.Point(359, 230); this.nofmod1.Name = "nofmod1"; @@ -733,9 +733,9 @@ namespace OpenSim.GUI this.nofmod1.Text = "-nofmod"; this.toolTip1.SetToolTip(this.nofmod1, "FMOD is the API used to distort sound while moving"); this.nofmod1.UseVisualStyleBackColor = true; - // + // // noaudio1 - // + // this.noaudio1.AutoSize = true; this.noaudio1.Location = new System.Drawing.Point(359, 200); this.noaudio1.Name = "noaudio1"; @@ -744,9 +744,9 @@ namespace OpenSim.GUI this.noaudio1.Text = "-noaudio"; this.toolTip1.SetToolTip(this.noaudio1, "no audio, different from -nosound?"); this.noaudio1.UseVisualStyleBackColor = true; - // + // // nosound1 - // + // this.nosound1.AutoSize = true; this.nosound1.Location = new System.Drawing.Point(359, 290); this.nosound1.Name = "nosound1"; @@ -755,9 +755,9 @@ namespace OpenSim.GUI this.nosound1.Text = "-nosound"; this.toolTip1.SetToolTip(this.nosound1, "no sound, different from -noaudio?"); this.nosound1.UseVisualStyleBackColor = true; - // + // // url1 - // + // this.url1.AutoSize = true; this.url1.Location = new System.Drawing.Point(488, 245); this.url1.Name = "url1"; @@ -766,9 +766,9 @@ namespace OpenSim.GUI this.url1.Text = "-url"; this.toolTip1.SetToolTip(this.url1, "handles secondlife://sim/x/y/z URLs"); this.url1.UseVisualStyleBackColor = true; - // + // // port1 - // + // this.port1.AutoSize = true; this.port1.Location = new System.Drawing.Point(488, 171); this.port1.Name = "port1"; @@ -779,27 +779,27 @@ namespace OpenSim.GUI "me local home network. Values that may work: 13000 and 13001 (Valid numbers are " + "13000 to 13050)"); this.port1.UseVisualStyleBackColor = true; - // + // // simBox1 - // + // this.simBox1.Location = new System.Drawing.Point(549, 243); this.simBox1.Name = "simBox1"; this.simBox1.Size = new System.Drawing.Size(344, 20); this.simBox1.TabIndex = 66; this.simBox1.Text = "secondlife://lutra/127/128/60"; this.toolTip1.SetToolTip(this.simBox1, "type URL here"); - // + // // portBox1 - // + // this.portBox1.Location = new System.Drawing.Point(549, 169); this.portBox1.Name = "portBox1"; this.portBox1.Size = new System.Drawing.Size(58, 20); this.portBox1.TabIndex = 67; this.portBox1.Text = "13000"; this.toolTip1.SetToolTip(this.portBox1, "enter port number here"); - // + // // user1 - // + // this.user1.AutoSize = true; this.user1.Location = new System.Drawing.Point(488, 191); this.user1.Name = "user1"; @@ -809,9 +809,9 @@ namespace OpenSim.GUI this.user1.ThreeState = true; this.toolTip1.SetToolTip(this.user1, "specify user server in dotted quad"); this.user1.UseVisualStyleBackColor = true; - // + // // quitAfter1 - // + // this.quitAfter1.AutoSize = true; this.quitAfter1.Location = new System.Drawing.Point(680, 65); this.quitAfter1.Name = "quitAfter1"; @@ -820,9 +820,9 @@ namespace OpenSim.GUI this.quitAfter1.Text = "-quitafter"; this.toolTip1.SetToolTip(this.quitAfter1, "SL quits after elapsed time in seconds"); this.quitAfter1.UseVisualStyleBackColor = true; - // + // // techTag1 - // + // this.techTag1.AutoSize = true; this.techTag1.Location = new System.Drawing.Point(488, 211); this.techTag1.Name = "techTag1"; @@ -831,9 +831,9 @@ namespace OpenSim.GUI this.techTag1.Text = "-techtag"; this.toolTip1.SetToolTip(this.techTag1, "unknown (but requires a parameter)"); this.techTag1.UseVisualStyleBackColor = true; - // + // // yield1 - // + // this.yield1.AutoSize = true; this.yield1.Location = new System.Drawing.Point(488, 91); this.yield1.Name = "yield1"; @@ -842,9 +842,9 @@ namespace OpenSim.GUI this.yield1.Text = "-yield"; this.toolTip1.SetToolTip(this.yield1, "yield some idle time to local host (changed from - cooperative)"); this.yield1.UseVisualStyleBackColor = true; - // + // // logfile1 - // + // this.logfile1.AutoSize = true; this.logfile1.Location = new System.Drawing.Point(680, 125); this.logfile1.Name = "logfile1"; @@ -853,9 +853,9 @@ namespace OpenSim.GUI this.logfile1.Text = "-logfile"; this.toolTip1.SetToolTip(this.logfile1, "change the log filename"); this.logfile1.UseVisualStyleBackColor = true; - // + // // settings1 - // + // this.settings1.AutoSize = true; this.settings1.Location = new System.Drawing.Point(680, 95); this.settings1.Name = "settings1"; @@ -864,9 +864,9 @@ namespace OpenSim.GUI this.settings1.Text = "-settings"; this.toolTip1.SetToolTip(this.settings1, "specify configuration filename; default is \"settings.ini\""); this.settings1.UseVisualStyleBackColor = true; - // + // // outbw1 - // + // this.outbw1.AutoSize = true; this.outbw1.Location = new System.Drawing.Point(488, 111); this.outbw1.Name = "outbw1"; @@ -875,9 +875,9 @@ namespace OpenSim.GUI this.outbw1.Text = "-outbw"; this.toolTip1.SetToolTip(this.outbw1, "set outgoing bandwidth"); this.outbw1.UseVisualStyleBackColor = true; - // + // // inbw1 - // + // this.inbw1.AutoSize = true; this.inbw1.Location = new System.Drawing.Point(488, 131); this.inbw1.Name = "inbw1"; @@ -886,9 +886,9 @@ namespace OpenSim.GUI this.inbw1.Text = "-inbw"; this.toolTip1.SetToolTip(this.inbw1, "set incoming bandwidth"); this.inbw1.UseVisualStyleBackColor = true; - // + // // drop1 - // + // this.drop1.AutoSize = true; this.drop1.Location = new System.Drawing.Point(488, 151); this.drop1.Name = "drop1"; @@ -897,76 +897,76 @@ namespace OpenSim.GUI this.drop1.Text = "-drop"; this.toolTip1.SetToolTip(this.drop1, "drop number% of incoming network packets"); this.drop1.UseVisualStyleBackColor = true; - // + // // dropBox1 - // + // this.dropBox1.Location = new System.Drawing.Point(549, 149); this.dropBox1.Name = "dropBox1"; this.dropBox1.Size = new System.Drawing.Size(58, 20); this.dropBox1.TabIndex = 68; this.dropBox1.Text = "0"; this.toolTip1.SetToolTip(this.dropBox1, "enter percent of packets to drop"); - // + // // inbwBox1 - // + // this.inbwBox1.Location = new System.Drawing.Point(549, 129); this.inbwBox1.Name = "inbwBox1"; this.inbwBox1.Size = new System.Drawing.Size(57, 20); this.inbwBox1.TabIndex = 69; this.toolTip1.SetToolTip(this.inbwBox1, "enter incoming cap"); - // + // // outbwBox1 - // + // this.outbwBox1.Location = new System.Drawing.Point(549, 109); this.outbwBox1.Name = "outbwBox1"; this.outbwBox1.Size = new System.Drawing.Size(58, 20); this.outbwBox1.TabIndex = 70; this.toolTip1.SetToolTip(this.outbwBox1, "enter outgoing cap"); - // + // // settingsBox1 - // + // this.settingsBox1.Location = new System.Drawing.Point(741, 93); this.settingsBox1.Name = "settingsBox1"; this.settingsBox1.Size = new System.Drawing.Size(152, 20); this.settingsBox1.TabIndex = 71; this.settingsBox1.Text = "settings.ini"; this.toolTip1.SetToolTip(this.settingsBox1, "enter settings file name"); - // + // // logfileBox1 - // + // this.logfileBox1.Location = new System.Drawing.Point(733, 123); this.logfileBox1.Name = "logfileBox1"; this.logfileBox1.Size = new System.Drawing.Size(160, 20); this.logfileBox1.TabIndex = 72; this.logfileBox1.Text = "mylogfile.txt"; this.toolTip1.SetToolTip(this.logfileBox1, "enter log file name here"); - // + // // yieldBox1 - // + // this.yieldBox1.Location = new System.Drawing.Point(549, 89); this.yieldBox1.Name = "yieldBox1"; this.yieldBox1.Size = new System.Drawing.Size(58, 20); this.yieldBox1.TabIndex = 73; this.toolTip1.SetToolTip(this.yieldBox1, "enter time to yield in "); - // + // // techtagBox1 - // + // this.techtagBox1.Location = new System.Drawing.Point(549, 209); this.techtagBox1.Name = "techtagBox1"; this.techtagBox1.Size = new System.Drawing.Size(58, 20); this.techtagBox1.TabIndex = 74; this.toolTip1.SetToolTip(this.techtagBox1, "enter unknown param here"); - // + // // quitafterBox1 - // + // this.quitafterBox1.Location = new System.Drawing.Point(745, 63); this.quitafterBox1.Name = "quitafterBox1"; this.quitafterBox1.Size = new System.Drawing.Size(148, 20); this.quitafterBox1.TabIndex = 75; this.toolTip1.SetToolTip(this.quitafterBox1, "enter time in seconds"); - // + // // comboBox1 - // + // this.comboBox1.FormattingEnabled = true; this.comboBox1.Items.AddRange(new object[] { "agni", @@ -980,9 +980,9 @@ namespace OpenSim.GUI this.comboBox1.TabIndex = 76; this.comboBox1.Text = "agni"; this.toolTip1.SetToolTip(this.comboBox1, "select LL user server"); - // + // // loginuri1 - // + // this.loginuri1.AutoSize = true; this.loginuri1.Location = new System.Drawing.Point(488, 275); this.loginuri1.Name = "loginuri1"; @@ -991,18 +991,18 @@ namespace OpenSim.GUI this.loginuri1.Text = "-loginuri"; this.toolTip1.SetToolTip(this.loginuri1, "login server and CGI script to use"); this.loginuri1.UseVisualStyleBackColor = true; - // + // // loginuriBox1 - // + // this.loginuriBox1.Location = new System.Drawing.Point(549, 273); this.loginuriBox1.Name = "loginuriBox1"; this.loginuriBox1.Size = new System.Drawing.Size(344, 20); this.loginuriBox1.TabIndex = 78; this.loginuriBox1.Text = "localhost:9000"; this.toolTip1.SetToolTip(this.loginuriBox1, "enter login url here"); - // + // // set1 - // + // this.set1.AutoSize = true; this.set1.Location = new System.Drawing.Point(636, 185); this.set1.Name = "set1"; @@ -1012,18 +1012,18 @@ namespace OpenSim.GUI this.toolTip1.SetToolTip(this.set1, "specify value of a particular configuration variable; can be used multiple times " + "in a single command-line"); this.set1.UseVisualStyleBackColor = true; - // + // // setBox1 - // + // this.setBox1.Location = new System.Drawing.Point(680, 183); this.setBox1.Name = "setBox1"; this.setBox1.Size = new System.Drawing.Size(213, 20); this.setBox1.TabIndex = 80; this.setBox1.Text = "SystemLanguage en-us"; this.toolTip1.SetToolTip(this.setBox1, "enter params"); - // + // // errmask1 - // + // this.errmask1.AutoSize = true; this.errmask1.Location = new System.Drawing.Point(636, 154); this.errmask1.Name = "errmask1"; @@ -1032,9 +1032,9 @@ namespace OpenSim.GUI this.errmask1.Text = "-errmask"; this.toolTip1.SetToolTip(this.errmask1, "32-bit bitmask for error type mask"); this.errmask1.UseVisualStyleBackColor = true; - // + // // skin1 - // + // this.skin1.AutoSize = true; this.skin1.Location = new System.Drawing.Point(635, 215); this.skin1.Name = "skin1"; @@ -1043,9 +1043,9 @@ namespace OpenSim.GUI this.skin1.Text = "-skin"; this.toolTip1.SetToolTip(this.skin1, "load skins//skin.xml as the default UI appearance (incomplete)"); this.skin1.UseVisualStyleBackColor = true; - // + // // login1 - // + // this.login1.AutoSize = true; this.login1.Location = new System.Drawing.Point(457, 304); this.login1.Name = "login1"; @@ -1054,44 +1054,44 @@ namespace OpenSim.GUI this.login1.Text = "-login"; this.toolTip1.SetToolTip(this.login1, "log in as a user"); this.login1.UseVisualStyleBackColor = true; - // + // // errmaskBox1 - // + // this.errmaskBox1.Location = new System.Drawing.Point(704, 153); this.errmaskBox1.Name = "errmaskBox1"; this.errmaskBox1.Size = new System.Drawing.Size(189, 20); this.errmaskBox1.TabIndex = 84; this.toolTip1.SetToolTip(this.errmaskBox1, "32-bit bitmask for error type mask"); - // + // // skinBox1 - // + // this.skinBox1.Location = new System.Drawing.Point(679, 213); this.skinBox1.Name = "skinBox1"; this.skinBox1.Size = new System.Drawing.Size(214, 20); this.skinBox1.TabIndex = 85; this.skinBox1.Text = "C://Secondlife//"; this.toolTip1.SetToolTip(this.skinBox1, "enter directory where skin.xml is"); - // + // // firstBox1 - // + // this.firstBox1.Location = new System.Drawing.Point(549, 303); this.firstBox1.Name = "firstBox1"; this.firstBox1.Size = new System.Drawing.Size(80, 20); this.firstBox1.TabIndex = 86; this.firstBox1.Text = "Test"; this.toolTip1.SetToolTip(this.firstBox1, "firstname"); - // + // // lastBox1 - // + // this.lastBox1.Location = new System.Drawing.Point(668, 303); this.lastBox1.Name = "lastBox1"; this.lastBox1.Size = new System.Drawing.Size(80, 20); this.lastBox1.TabIndex = 92; this.lastBox1.Text = "User"; this.toolTip1.SetToolTip(this.lastBox1, "lastname"); - // + // // noutc1 - // + // this.noutc1.AutoSize = true; this.noutc1.Location = new System.Drawing.Point(359, 320); this.noutc1.Name = "noutc1"; @@ -1100,18 +1100,18 @@ namespace OpenSim.GUI this.noutc1.Text = "-noutc"; this.toolTip1.SetToolTip(this.noutc1, "logs in local time, not UTC"); this.noutc1.UseVisualStyleBackColor = true; - // + // // passBox1 - // + // this.passBox1.Location = new System.Drawing.Point(790, 303); this.passBox1.Name = "passBox1"; this.passBox1.Size = new System.Drawing.Size(103, 20); this.passBox1.TabIndex = 93; this.passBox1.Text = "test"; this.toolTip1.SetToolTip(this.passBox1, "password"); - // + // // raw1 - // + // this.raw1.AutoSize = true; this.raw1.Location = new System.Drawing.Point(457, 336); this.raw1.Name = "raw1"; @@ -1120,17 +1120,17 @@ namespace OpenSim.GUI this.raw1.Text = "Raw CMD :"; this.toolTip1.SetToolTip(this.raw1, "Raw CMD options, may crash everything"); this.raw1.UseVisualStyleBackColor = true; - // + // // rawBox1 - // + // this.rawBox1.Location = new System.Drawing.Point(549, 333); this.rawBox1.Name = "rawBox1"; this.rawBox1.Size = new System.Drawing.Size(344, 20); this.rawBox1.TabIndex = 95; this.toolTip1.SetToolTip(this.rawBox1, "Raw CMD options, may crash everything"); - // + // // clear1 - // + // this.clear1.Location = new System.Drawing.Point(178, 366); this.clear1.Name = "clear1"; this.clear1.Size = new System.Drawing.Size(80, 23); @@ -1139,18 +1139,18 @@ namespace OpenSim.GUI this.toolTip1.SetToolTip(this.clear1, "clear all switch boxes"); this.clear1.UseVisualStyleBackColor = true; this.clear1.Click += new System.EventHandler(this.clear1_Click); - // + // // nataddress1 - // + // this.nataddress1.Location = new System.Drawing.Point(457, 389); this.nataddress1.Name = "nataddress1"; this.nataddress1.Size = new System.Drawing.Size(436, 20); this.nataddress1.TabIndex = 58; this.nataddress1.Text = "UNUSED ATM"; this.nataddress1.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; - // + // // label8 - // + // this.label8.AutoSize = true; this.label8.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, ((System.Drawing.FontStyle)((System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Underline))), System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.label8.Location = new System.Drawing.Point(588, 360); @@ -1158,9 +1158,9 @@ namespace OpenSim.GUI this.label8.Size = new System.Drawing.Size(175, 20); this.label8.TabIndex = 59; this.label8.Text = "World/NAT Address :"; - // + // // label9 - // + // this.label9.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, ((System.Drawing.FontStyle)((System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Underline))), System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.label9.Location = new System.Drawing.Point(633, 27); this.label9.Name = "label9"; @@ -1168,17 +1168,17 @@ namespace OpenSim.GUI this.label9.TabIndex = 60; this.label9.Text = "Path :"; this.label9.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - // + // // exeBox1 - // + // this.exeBox1.Location = new System.Drawing.Point(530, 27); this.exeBox1.Name = "exeBox1"; this.exeBox1.Size = new System.Drawing.Size(100, 20); this.exeBox1.TabIndex = 61; this.exeBox1.Text = "Secondlife.exe"; - // + // // label10 - // + // this.label10.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, ((System.Drawing.FontStyle)((System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Underline))), System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.label10.Location = new System.Drawing.Point(392, 27); this.label10.Name = "label10"; @@ -1186,36 +1186,36 @@ namespace OpenSim.GUI this.label10.TabIndex = 62; this.label10.Text = "Executable Name :"; this.label10.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - // + // // label11 - // + // this.label11.AutoSize = true; this.label11.Location = new System.Drawing.Point(514, 306); this.label11.Name = "label11"; this.label11.Size = new System.Drawing.Size(32, 13); this.label11.TabIndex = 89; this.label11.Text = "First :"; - // + // // label12 - // + // this.label12.AutoSize = true; this.label12.Location = new System.Drawing.Point(632, 306); this.label12.Name = "label12"; this.label12.Size = new System.Drawing.Size(33, 13); this.label12.TabIndex = 90; this.label12.Text = "Last :"; - // + // // label13 - // + // this.label13.AutoSize = true; this.label13.Location = new System.Drawing.Point(751, 306); this.label13.Name = "label13"; this.label13.Size = new System.Drawing.Size(36, 13); this.label13.TabIndex = 91; this.label13.Text = "Pass :"; - // + // // Main - // + // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.ClientSize = new System.Drawing.Size(900, 431); diff --git a/OpenSim/Tools/OpenSim.GUI/Properties/AssemblyInfo.cs b/OpenSim/Tools/OpenSim.GUI/Properties/AssemblyInfo.cs index b89119c..8d4b3f5 100644 --- a/OpenSim/Tools/OpenSim.GUI/Properties/AssemblyInfo.cs +++ b/OpenSim/Tools/OpenSim.GUI/Properties/AssemblyInfo.cs @@ -29,7 +29,7 @@ using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; -// General Information about an assembly is controlled through the following +// General information about an assembly is controlled through the following // set of attributes. Change these attribute values to modify the information // associated with an assembly. [assembly: AssemblyTitle("OpenSim.GUI")] @@ -41,8 +41,8 @@ using System.Runtime.InteropServices; [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from // COM, set the ComVisible attribute to true on that type. [assembly: ComVisible(false)] @@ -52,7 +52,7 @@ using System.Runtime.InteropServices; // Version information for an assembly consists of the following four values: // // Major Version -// Minor Version +// Minor Version // Build Number // Revision // diff --git a/OpenSim/Tools/OpenSim.GUI/frmConfiguration.Designer.cs b/OpenSim/Tools/OpenSim.GUI/frmConfiguration.Designer.cs index ee9282e..4665dd9 100644 --- a/OpenSim/Tools/OpenSim.GUI/frmConfiguration.Designer.cs +++ b/OpenSim/Tools/OpenSim.GUI/frmConfiguration.Designer.cs @@ -58,18 +58,18 @@ namespace OpenSim.GUI System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(frmConfiguration)); this.textBox1 = new System.Windows.Forms.TextBox(); this.SuspendLayout(); - // + // // textBox1 - // + // this.textBox1.Location = new System.Drawing.Point(12, 12); this.textBox1.Multiline = true; this.textBox1.Name = "textBox1"; this.textBox1.Size = new System.Drawing.Size(570, 190); this.textBox1.TabIndex = 0; this.textBox1.Text = resources.GetString("textBox1.Text"); - // + // // frmConfiguration - // + // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.ClientSize = new System.Drawing.Size(664, 413); diff --git a/OpenSim/Tools/pCampBot/PhysicsBot.cs b/OpenSim/Tools/pCampBot/PhysicsBot.cs index 334f699..960be9b 100644 --- a/OpenSim/Tools/pCampBot/PhysicsBot.cs +++ b/OpenSim/Tools/pCampBot/PhysicsBot.cs @@ -59,7 +59,7 @@ namespace pCampBot protected string[] talkarray; /// - /// + /// /// /// nini config for the bot public PhysicsBot(IConfig bsconfig) @@ -69,7 +69,7 @@ namespace pCampBot talkarray = readexcuses(); } - //We do our actions here. This is where one would + //We do our actions here. This is where one would //add additional steps and/or things the bot should do void m_action_Elapsed(object sender, ElapsedEventArgs e) -- cgit v1.1 From 259ddcfe1a655638f8e87f8b3dfec6d9c006140f Mon Sep 17 00:00:00 2001 From: Jeff Ames Date: Mon, 19 May 2008 13:26:42 +0000 Subject: Update svn properties. Minor formatting cleanup. --- OpenSim/Tools/pCampBot/PhysicsBot.cs | 6 ------ 1 file changed, 6 deletions(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/pCampBot/PhysicsBot.cs b/OpenSim/Tools/pCampBot/PhysicsBot.cs index 960be9b..49c3c78 100644 --- a/OpenSim/Tools/pCampBot/PhysicsBot.cs +++ b/OpenSim/Tools/pCampBot/PhysicsBot.cs @@ -103,7 +103,6 @@ namespace pCampBot client.Self.Chat(randomf, 0, ChatType.Normal); //Thread.Sleep(somthing.Next(1, 10)); // Apparently its better without it right now. - } /// @@ -115,9 +114,6 @@ namespace pCampBot lastname = startupConfig.GetString("lastname", "random"); password = startupConfig.GetString("password", "12345"); loginURI = startupConfig.GetString("loginuri"); - - - } /// @@ -139,7 +135,6 @@ namespace pCampBot client.Network.OnDisconnected += new NetworkManager.DisconnectedCallback(this.Network_OnDisconnected); if (client.Network.Login(firstname, lastname, password, "pCampBot", "Your name")) { - if (OnConnected != null) { m_action = new Timer(somthing.Next(1000, 10000)); @@ -147,7 +142,6 @@ namespace pCampBot m_action.Start(); OnConnected(this, EventType.CONNECTED); client.Self.Jump(); - } } else -- cgit v1.1 From 535d64b66b4d51d1dc474f9d6403f94c06be5491 Mon Sep 17 00:00:00 2001 From: Jeff Ames Date: Tue, 20 May 2008 15:38:49 +0000 Subject: Add copyright notices. Fix spelling typo (Thanks ChrisDown for pointing this out) --- .../Properties/Resources.Designer.cs | 32 +++++++++++++++++++--- .../LaunchSLClient/Properties/Settings.Designer.cs | 32 +++++++++++++++++++--- .../OpenSim.GUI/Properties/Resources.Designer.cs | 32 +++++++++++++++++++--- .../OpenSim.GUI/Properties/Settings.Designer.cs | 32 +++++++++++++++++++--- 4 files changed, 112 insertions(+), 16 deletions(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Properties/Resources.Designer.cs b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Properties/Resources.Designer.cs index 4e9188d..916ff04 100644 --- a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Properties/Resources.Designer.cs +++ b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Properties/Resources.Designer.cs @@ -1,4 +1,31 @@ -//------------------------------------------------------------------------------ +/* + * Copyright (c) Contributors, http://opensimulator.org/ + * See CONTRIBUTORS.TXT for a full list of copyright holders. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the OpenSim Project nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +//------------------------------------------------------------------------------ // // This code was generated by a tool. // Runtime Version:2.0.50727.832 @@ -10,8 +37,6 @@ namespace LaunchSLClient.Properties { - - /// /// A strongly-typed resource class, for looking up localized strings, etc. /// @@ -24,7 +49,6 @@ namespace LaunchSLClient.Properties [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] internal class Resources { - private static global::System.Resources.ResourceManager resourceMan; private static global::System.Globalization.CultureInfo resourceCulture; diff --git a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Properties/Settings.Designer.cs b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Properties/Settings.Designer.cs index 3dcc200..2765be5 100644 --- a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Properties/Settings.Designer.cs +++ b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Properties/Settings.Designer.cs @@ -1,4 +1,31 @@ -//------------------------------------------------------------------------------ +/* + * Copyright (c) Contributors, http://opensimulator.org/ + * See CONTRIBUTORS.TXT for a full list of copyright holders. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the OpenSim Project nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +//------------------------------------------------------------------------------ // // This code was generated by a tool. // Runtime Version:2.0.50727.832 @@ -10,13 +37,10 @@ namespace LaunchSLClient.Properties { - - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "8.0.0.0")] internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { - private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); public static Settings Default diff --git a/OpenSim/Tools/OpenSim.GUI/Properties/Resources.Designer.cs b/OpenSim/Tools/OpenSim.GUI/Properties/Resources.Designer.cs index 33e67d4..6209553 100644 --- a/OpenSim/Tools/OpenSim.GUI/Properties/Resources.Designer.cs +++ b/OpenSim/Tools/OpenSim.GUI/Properties/Resources.Designer.cs @@ -1,4 +1,31 @@ -//------------------------------------------------------------------------------ +/* + * Copyright (c) Contributors, http://opensimulator.org/ + * See CONTRIBUTORS.TXT for a full list of copyright holders. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the OpenSim Project nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +//------------------------------------------------------------------------------ // // This code was generated by a tool. // Runtime Version:2.0.50727.312 @@ -10,8 +37,6 @@ namespace OpenSim.GUI.Properties { - - /// /// A strongly-typed resource class, for looking up localized strings, etc. /// @@ -24,7 +49,6 @@ namespace OpenSim.GUI.Properties [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] internal class Resources { - private static global::System.Resources.ResourceManager resourceMan; private static global::System.Globalization.CultureInfo resourceCulture; diff --git a/OpenSim/Tools/OpenSim.GUI/Properties/Settings.Designer.cs b/OpenSim/Tools/OpenSim.GUI/Properties/Settings.Designer.cs index dd1db86..ec80a6f 100644 --- a/OpenSim/Tools/OpenSim.GUI/Properties/Settings.Designer.cs +++ b/OpenSim/Tools/OpenSim.GUI/Properties/Settings.Designer.cs @@ -1,4 +1,31 @@ -//------------------------------------------------------------------------------ +/* + * Copyright (c) Contributors, http://opensimulator.org/ + * See CONTRIBUTORS.TXT for a full list of copyright holders. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the OpenSim Project nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +//------------------------------------------------------------------------------ // // This code was generated by a tool. // Runtime Version:2.0.50727.312 @@ -10,13 +37,10 @@ namespace OpenSim.GUI.Properties { - - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "8.0.0.0")] internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { - private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); public static Settings Default -- cgit v1.1 From 5d77625e9ac4ce1fc7b8fd67aabf563678ef0d5d Mon Sep 17 00:00:00 2001 From: Jeff Ames Date: Sun, 25 May 2008 23:27:38 +0000 Subject: Update svn properties. Formatting cleanup. --- OpenSim/Tools/OpenSim.GUI/InputTextBoxControl.cs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/OpenSim.GUI/InputTextBoxControl.cs b/OpenSim/Tools/OpenSim.GUI/InputTextBoxControl.cs index d0bd7bc..a43795a 100644 --- a/OpenSim/Tools/OpenSim.GUI/InputTextBoxControl.cs +++ b/OpenSim/Tools/OpenSim.GUI/InputTextBoxControl.cs @@ -100,7 +100,9 @@ namespace OpenSim.GUI } } e.Handled = true; - } else { + } + else + { InHistory = false; HistoryPosition = -1; } -- cgit v1.1 From 8e1d3386561f263646c10c875aa00af4b3c9f815 Mon Sep 17 00:00:00 2001 From: Justin Clarke Casey Date: Sun, 1 Jun 2008 01:01:16 +0000 Subject: * Refactor: Split opensim background server into a separate class --- OpenSim/Tools/Export/OpenSimExport.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/Export/OpenSimExport.cs b/OpenSim/Tools/Export/OpenSimExport.cs index 4891ea7..1e7db51 100644 --- a/OpenSim/Tools/Export/OpenSimExport.cs +++ b/OpenSim/Tools/Export/OpenSimExport.cs @@ -102,7 +102,7 @@ namespace OpenSimExport { // no default config files, so set default values, and save it Console.WriteLine("We didn't find a config!"); - config.Merge(OpenSimMain.DefaultConfig()); + config.Merge(OpenSimBase.DefaultConfig()); config.Merge(configSource); } -- cgit v1.1 From a73d87ef1651ac1e935e0cfebed99282a69c3941 Mon Sep 17 00:00:00 2001 From: Melanie Thielker Date: Fri, 18 Jul 2008 20:50:47 +0000 Subject: Introduce a separate connection string for estates, which defaults to the one gi ven for the region datastore. Removes the flag to store prim inventories, which are now always stored. --- OpenSim/Tools/Export/OpenSimExport.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/Export/OpenSimExport.cs b/OpenSim/Tools/Export/OpenSimExport.cs index 1e7db51..f469d91 100644 --- a/OpenSim/Tools/Export/OpenSimExport.cs +++ b/OpenSim/Tools/Export/OpenSimExport.cs @@ -54,7 +54,7 @@ namespace OpenSimExport sman = new StorageManager( startup.GetString("storage_plugin", "OpenSim.DataStore.NullStorage.dll"), startup.GetString("storage_connection_string", String.Empty), - false + startup.GetString("estate_connection_string", String.Empty) ); } -- cgit v1.1 From 6ef9d4da901a346c232458317cca6268da888e2e Mon Sep 17 00:00:00 2001 From: Jeff Ames Date: Mon, 18 Aug 2008 00:39:10 +0000 Subject: Formatting cleanup. --- OpenSim/Tools/LaunchSLClient/LaunchSLClient/Form1.cs | 2 +- OpenSim/Tools/OpenSim.GUI/InputTextBoxControl.cs | 2 +- OpenSim/Tools/pCampBot/BotManager.cs | 10 +++++----- OpenSim/Tools/pCampBot/pCampBot.cs | 10 +++++----- 4 files changed, 12 insertions(+), 12 deletions(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Form1.cs b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Form1.cs index dbc58ff..25044db 100644 --- a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Form1.cs +++ b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Form1.cs @@ -123,7 +123,7 @@ namespace LaunchSLClient string sandboxHostName = ""; string sandboxPort = ""; string text; - + Regex myRegex = new Regex(".*internal_ip_port=\\\"(?.*?)\\\".*external_host_name=\\\"(?.*?)\\\".*"); FileInfo defaultFile = new FileInfo("Regions/default.xml"); diff --git a/OpenSim/Tools/OpenSim.GUI/InputTextBoxControl.cs b/OpenSim/Tools/OpenSim.GUI/InputTextBoxControl.cs index a43795a..d6a3d04 100644 --- a/OpenSim/Tools/OpenSim.GUI/InputTextBoxControl.cs +++ b/OpenSim/Tools/OpenSim.GUI/InputTextBoxControl.cs @@ -38,7 +38,7 @@ namespace OpenSim.GUI { this.KeyDown += new System.Windows.Forms.KeyEventHandler(TextInputControl_KeyDown); } - + private List CommandHistory = new List(); private bool InHistory = false; private int HistoryPosition = -1; diff --git a/OpenSim/Tools/pCampBot/BotManager.cs b/OpenSim/Tools/pCampBot/BotManager.cs index 302dc08..4bdc494 100644 --- a/OpenSim/Tools/pCampBot/BotManager.cs +++ b/OpenSim/Tools/pCampBot/BotManager.cs @@ -51,7 +51,7 @@ namespace pCampBot protected Random somthing = new Random(Environment.TickCount); protected int numbots = 0; protected IConfig Previous_config; - + /// /// Constructor Creates MainConsole.Instance to take commands and provide the place to write data /// @@ -96,7 +96,7 @@ namespace pCampBot startupBot(i, Previous_config); } } - + /// /// This starts up the bot and stores the thread for the bot in the thread array /// @@ -127,7 +127,7 @@ namespace pCampBot { string returnstring = ""; string chars = "abcdefghijklmnopqrstuvwxyz0123456789"; - + for (int i = 0; i < 7; i++) { returnstring += chars.Substring(somthing.Next(chars.Length),1); @@ -177,7 +177,7 @@ namespace pCampBot { return new ConsoleBase("Region", this); } - + /// /// Command runnint tool.. Currently use it to add bots, shutdown and (dangerous)Forcequit /// @@ -198,7 +198,7 @@ namespace pCampBot case "addbots": int newbots; Helpers.TryParse(cmdparams[0], out newbots); - + if (newbots > 0) addbots(newbots); break; diff --git a/OpenSim/Tools/pCampBot/pCampBot.cs b/OpenSim/Tools/pCampBot/pCampBot.cs index 81ec2b2..9cde451 100644 --- a/OpenSim/Tools/pCampBot/pCampBot.cs +++ b/OpenSim/Tools/pCampBot/pCampBot.cs @@ -54,9 +54,9 @@ namespace pCampBot else { int botcount = config.GetInt("botcount", 1); - + BotManager bm = new BotManager(); - + //startup specified number of bots. 1 is the default bm.dobotStartup(botcount, config); while (true) @@ -70,18 +70,18 @@ namespace pCampBot { //Set up our nifty config.. thanks to nini ArgvConfigSource cs = new ArgvConfigSource(args); - + cs.AddSwitch("Startup", "botcount","n"); cs.AddSwitch("Startup", "loginuri","l"); cs.AddSwitch("Startup", "firstname"); cs.AddSwitch("Startup", "lastname"); cs.AddSwitch("Startup", "password"); cs.AddSwitch("Startup", "help","h"); - + IConfig ol = cs.Configs["Startup"]; return ol; } - + private static void Help() { Console.WriteLine( -- cgit v1.1 From 7d89e122930be39e84a6d174548fa2d12ac0484a Mon Sep 17 00:00:00 2001 From: Teravus Ovares Date: Sat, 6 Sep 2008 07:52:41 +0000 Subject: * This is the fabled LibOMV update with all of the libOMV types from JHurliman * This is a HUGE OMG update and will definitely have unknown side effects.. so this is really only for the strong hearted at this point. Regular people should let the dust settle. * This has been tested to work with most basic functions. However.. make sure you back up 'everything' before using this. It's that big! * Essentially we're back at square 1 in the testing phase.. so lets identify things that broke. --- OpenSim/Tools/Export/OpenSimExport.cs | 4 ++-- OpenSim/Tools/pCampBot/BotManager.cs | 4 ++-- OpenSim/Tools/pCampBot/PhysicsBot.cs | 8 ++++---- 3 files changed, 8 insertions(+), 8 deletions(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/Export/OpenSimExport.cs b/OpenSim/Tools/Export/OpenSimExport.cs index f469d91..68d4716 100644 --- a/OpenSim/Tools/Export/OpenSimExport.cs +++ b/OpenSim/Tools/Export/OpenSimExport.cs @@ -63,7 +63,7 @@ namespace OpenSimExport XmlConfigurator.Configure(); OpenSimExport export = new OpenSimExport(InitConfig(args)); - RegionInfo reg = new RegionInfo("Sara Jane", "Regions/1000-1000.xml",false); + RegionInfo reg = new RegionInfo("Sara Jane", "Regions/1000-1000.Xml",false); Console.WriteLine("This application does nothing useful yet: " + reg.RegionID); foreach (SceneObjectGroup group in export.sman.DataStore.LoadObjects(reg.RegionID)) @@ -109,4 +109,4 @@ namespace OpenSimExport return config; } } -} \ No newline at end of file +} diff --git a/OpenSim/Tools/pCampBot/BotManager.cs b/OpenSim/Tools/pCampBot/BotManager.cs index 4bdc494..8eb00c7 100644 --- a/OpenSim/Tools/pCampBot/BotManager.cs +++ b/OpenSim/Tools/pCampBot/BotManager.cs @@ -29,7 +29,7 @@ using System; using System.Collections.Generic; using System.Reflection; using System.Threading; -using libsecondlife; +using OpenMetaverse; using log4net; using Nini.Config; using OpenSim.Framework; @@ -197,7 +197,7 @@ namespace pCampBot break; case "addbots": int newbots; - Helpers.TryParse(cmdparams[0], out newbots); + Int32.TryParse(cmdparams[0], out newbots); if (newbots > 0) addbots(newbots); diff --git a/OpenSim/Tools/pCampBot/PhysicsBot.cs b/OpenSim/Tools/pCampBot/PhysicsBot.cs index 49c3c78..84987b2 100644 --- a/OpenSim/Tools/pCampBot/PhysicsBot.cs +++ b/OpenSim/Tools/pCampBot/PhysicsBot.cs @@ -29,7 +29,7 @@ using System; using System.IO; using System.Threading; using System.Timers; -using libsecondlife; +using OpenMetaverse; using Nini.Config; using OpenSim.Framework; using OpenSim.Framework.Console; @@ -55,7 +55,7 @@ namespace pCampBot protected Random somthing = new Random(Environment.TickCount);// We do stuff randomly here //New instance of a SecondLife client - public SecondLife client = new SecondLife(); + public GridClient client = new GridClient(); protected string[] talkarray; /// @@ -87,8 +87,8 @@ namespace pCampBot client.Self.Movement.AlwaysRun = false; } - // TODO: unused: LLVector3 pos = client.Self.SimPosition; - LLVector3 newpos = new LLVector3(somthing.Next(255), somthing.Next(255), somthing.Next(255)); + // TODO: unused: Vector3 pos = client.Self.SimPosition; + Vector3 newpos = new Vector3(somthing.Next(255), somthing.Next(255), somthing.Next(255)); client.Self.Movement.TurnToward(newpos); for (int i = 0; i < 2000; i++) -- cgit v1.1 From 9e545c9984790ddeabba0bf86e229af90da09ad6 Mon Sep 17 00:00:00 2001 From: Melanie Thielker Date: Sat, 6 Sep 2008 14:58:23 +0000 Subject: Mantis #2133 Thank you, Xugu Madison and ChrisDown, for a patch that fixes linux filename extensions from .Xml back to .xml --- OpenSim/Tools/Export/OpenSimExport.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/Export/OpenSimExport.cs b/OpenSim/Tools/Export/OpenSimExport.cs index 68d4716..5c0ff52 100644 --- a/OpenSim/Tools/Export/OpenSimExport.cs +++ b/OpenSim/Tools/Export/OpenSimExport.cs @@ -63,7 +63,7 @@ namespace OpenSimExport XmlConfigurator.Configure(); OpenSimExport export = new OpenSimExport(InitConfig(args)); - RegionInfo reg = new RegionInfo("Sara Jane", "Regions/1000-1000.Xml",false); + RegionInfo reg = new RegionInfo("Sara Jane", "Regions/1000-1000.xml",false); Console.WriteLine("This application does nothing useful yet: " + reg.RegionID); foreach (SceneObjectGroup group in export.sman.DataStore.LoadObjects(reg.RegionID)) -- cgit v1.1 From 8ae8bec4d148ace42aa176f924399464d5bcf7eb Mon Sep 17 00:00:00 2001 From: Homer Horwitz Date: Fri, 12 Sep 2008 22:39:17 +0000 Subject: Changed "show users" command to display only root agents, "show users full" to display root and child agents (mantis #2171). --- OpenSim/Tools/pCampBot/BotManager.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/pCampBot/BotManager.cs b/OpenSim/Tools/pCampBot/BotManager.cs index 8eb00c7..100f2d4 100644 --- a/OpenSim/Tools/pCampBot/BotManager.cs +++ b/OpenSim/Tools/pCampBot/BotManager.cs @@ -211,8 +211,8 @@ namespace pCampBot /// /// Required method to implement the conscmd_callback interface /// - /// - public void Show(string ShowWhat) + /// What to show + public void Show(string[] showParams) { } } -- cgit v1.1 From 9a200da0d2e359ecfe3cca5e6c319179a8897d9b Mon Sep 17 00:00:00 2001 From: Tedd Hansen Date: Thu, 16 Oct 2008 15:09:02 +0000 Subject: Updated 32Bit launcher so it works in Visual Studio again. (So developers on 64-bit os can run OpenSim in 32-bit mode) --- OpenSim/Tools/OpenSim.32BitLaunch/OpenSim.32BitLaunch.csproj | 11 +++-------- OpenSim/Tools/OpenSim.32BitLaunch/Program.cs | 2 +- 2 files changed, 4 insertions(+), 9 deletions(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/OpenSim.32BitLaunch/OpenSim.32BitLaunch.csproj b/OpenSim/Tools/OpenSim.32BitLaunch/OpenSim.32BitLaunch.csproj index bfca5e4..d829e69 100644 --- a/OpenSim/Tools/OpenSim.32BitLaunch/OpenSim.32BitLaunch.csproj +++ b/OpenSim/Tools/OpenSim.32BitLaunch/OpenSim.32BitLaunch.csproj @@ -3,7 +3,7 @@ Debug AnyCPU - 9.0.21022 + 9.0.30729 2.0 {595D67F3-B413-4A43-8568-5B5930E3B31D} Exe @@ -32,13 +32,8 @@ 4 + - - 3.5 - - - 3.5 - @@ -48,7 +43,7 @@ - {AC9EB8AB-0000-0000-0000-000000000000} + {438A9556-0000-0000-0000-000000000000} OpenSim diff --git a/OpenSim/Tools/OpenSim.32BitLaunch/Program.cs b/OpenSim/Tools/OpenSim.32BitLaunch/Program.cs index 0c4de02..b292d43 100644 --- a/OpenSim/Tools/OpenSim.32BitLaunch/Program.cs +++ b/OpenSim/Tools/OpenSim.32BitLaunch/Program.cs @@ -44,7 +44,7 @@ namespace OpenSim._32BitLaunch System.Threading.Thread.Sleep(300); try { - OpenSim.Application.Main(args); + global::OpenSim.Application.Main(args); } catch (Exception ex) { -- cgit v1.1 From e6a141b0f5afb5a78cc5560c993c05e8d4d56eec Mon Sep 17 00:00:00 2001 From: Justin Clarke Casey Date: Mon, 27 Oct 2008 21:29:22 +0000 Subject: * Remove the OpenSim GUI. * A better version can now be found on the forge at http://forge.opensimulator.org/gf/project/osgui --- OpenSim/Tools/OpenSim.GUI/InputTextBoxControl.cs | 111 -- OpenSim/Tools/OpenSim.GUI/Main.Designer.cs | 1434 -------------------- OpenSim/Tools/OpenSim.GUI/Main.cs | 536 -------- OpenSim/Tools/OpenSim.GUI/Main.resx | 135 -- OpenSim/Tools/OpenSim.GUI/OpenSim.GUI.csproj | 94 -- OpenSim/Tools/OpenSim.GUI/ProcessManager.cs | 98 -- OpenSim/Tools/OpenSim.GUI/Program.cs | 47 - .../Tools/OpenSim.GUI/Properties/AssemblyInfo.cs | 60 - .../OpenSim.GUI/Properties/Resources.Designer.cs | 95 -- .../Tools/OpenSim.GUI/Properties/Resources.resx | 117 -- .../OpenSim.GUI/Properties/Settings.Designer.cs | 54 - .../Tools/OpenSim.GUI/Properties/Settings.settings | 7 - .../Tools/OpenSim.GUI/frmConfiguration.Designer.cs | 88 -- OpenSim/Tools/OpenSim.GUI/frmConfiguration.cs | 45 - OpenSim/Tools/OpenSim.GUI/frmConfiguration.resx | 129 -- 15 files changed, 3050 deletions(-) delete mode 100644 OpenSim/Tools/OpenSim.GUI/InputTextBoxControl.cs delete mode 100644 OpenSim/Tools/OpenSim.GUI/Main.Designer.cs delete mode 100644 OpenSim/Tools/OpenSim.GUI/Main.cs delete mode 100644 OpenSim/Tools/OpenSim.GUI/Main.resx delete mode 100644 OpenSim/Tools/OpenSim.GUI/OpenSim.GUI.csproj delete mode 100644 OpenSim/Tools/OpenSim.GUI/ProcessManager.cs delete mode 100644 OpenSim/Tools/OpenSim.GUI/Program.cs delete mode 100644 OpenSim/Tools/OpenSim.GUI/Properties/AssemblyInfo.cs delete mode 100644 OpenSim/Tools/OpenSim.GUI/Properties/Resources.Designer.cs delete mode 100644 OpenSim/Tools/OpenSim.GUI/Properties/Resources.resx delete mode 100644 OpenSim/Tools/OpenSim.GUI/Properties/Settings.Designer.cs delete mode 100644 OpenSim/Tools/OpenSim.GUI/Properties/Settings.settings delete mode 100644 OpenSim/Tools/OpenSim.GUI/frmConfiguration.Designer.cs delete mode 100644 OpenSim/Tools/OpenSim.GUI/frmConfiguration.cs delete mode 100644 OpenSim/Tools/OpenSim.GUI/frmConfiguration.resx (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/OpenSim.GUI/InputTextBoxControl.cs b/OpenSim/Tools/OpenSim.GUI/InputTextBoxControl.cs deleted file mode 100644 index d6a3d04..0000000 --- a/OpenSim/Tools/OpenSim.GUI/InputTextBoxControl.cs +++ /dev/null @@ -1,111 +0,0 @@ -/* - * Copyright (c) Contributors, http://opensimulator.org/ - * See CONTRIBUTORS.TXT for a full list of copyright holders. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * * Neither the name of the OpenSim Project nor the - * names of its contributors may be used to endorse or promote products - * derived from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -using System; -using System.Collections.Generic; -using System.Text; -using System.Windows.Forms; - -namespace OpenSim.GUI -{ - class InputTextBoxControl:System.Windows.Forms.TextBox - { - public InputTextBoxControl() - { - this.KeyDown += new System.Windows.Forms.KeyEventHandler(TextInputControl_KeyDown); - } - - private List CommandHistory = new List(); - private bool InHistory = false; - private int HistoryPosition = -1; - - void TextInputControl_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e) - { - if (e.KeyCode == Keys.Enter && InHistory == false) - { - CommandHistory.Add(this.Text); - } - - if (e.KeyCode == Keys.Up || e.KeyCode == Keys.Down) - { - // if not inside buffer, enter - // InBuffer = true - //Console.WriteLine("History: Check"); - if (InHistory == false) - { - if (this.Text != "") - { - //Console.WriteLine("History: Add"); - CommandHistory.Add(this.Text); - HistoryPosition = CommandHistory.Count; - } - else - { - //HistoryPosition = CommandHistory.Count + 1; - } - //Console.WriteLine("History: InHistory"); - InHistory = true; - } - - if (e.KeyCode == Keys.Up) - HistoryPosition -= 1; - if (e.KeyCode == Keys.Down) - HistoryPosition += 1; - - if (HistoryPosition > CommandHistory.Count - 1) - HistoryPosition = -1; - if (HistoryPosition < -1) - HistoryPosition = CommandHistory.Count - 1; - - //Console.WriteLine("History: Pos: " + HistoryPosition); - //Console.WriteLine("History: HaveInHistCount: " + CommandHistory.Count); - if (CommandHistory.Count != 0) - { - if (HistoryPosition != -1) - { - //Console.WriteLine("History: Getting"); - //this.Text = CommandHistory.Item(HistoryPosition); - this.Text = CommandHistory[HistoryPosition]; - this.SelectionStart = this.Text.Length; - this.SelectionLength = 0; - } - else - { - //Console.WriteLine("History: Nothing"); - this.Text = ""; - } - } - e.Handled = true; - } - else - { - InHistory = false; - HistoryPosition = -1; - } - } - } -} diff --git a/OpenSim/Tools/OpenSim.GUI/Main.Designer.cs b/OpenSim/Tools/OpenSim.GUI/Main.Designer.cs deleted file mode 100644 index af29bce..0000000 --- a/OpenSim/Tools/OpenSim.GUI/Main.Designer.cs +++ /dev/null @@ -1,1434 +0,0 @@ -/* - * Copyright (c) Contributors, http://opensimulator.org/ - * See CONTRIBUTORS.TXT for a full list of copyright holders. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * * Neither the name of the OpenSim Project nor the - * names of its contributors may be used to endorse or promote products - * derived from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -namespace OpenSim.GUI -{ - partial class Main - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.components = new System.ComponentModel.Container(); - this.menuStrip1 = new System.Windows.Forms.MenuStrip(); - this.fileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.exitToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.timer1 = new System.Windows.Forms.Timer(this.components); - this.clientBox1 = new System.Windows.Forms.TextBox(); - this.btnStart = new System.Windows.Forms.Button(); - this.btnStop = new System.Windows.Forms.Button(); - this.rbGridRegionMode = new System.Windows.Forms.RadioButton(); - this.rbStandAloneMode = new System.Windows.Forms.RadioButton(); - this.rbGridServer = new System.Windows.Forms.RadioButton(); - this.Launch1 = new System.Windows.Forms.Button(); - this.gbLog = new System.Windows.Forms.GroupBox(); - this.tabLogs = new System.Windows.Forms.TabControl(); - this.tabMainLog = new System.Windows.Forms.TabPage(); - this.txtMainLog = new System.Windows.Forms.TextBox(); - this.tabRegionServer = new System.Windows.Forms.TabPage(); - this.txtInputRegionServer = new OpenSim.GUI.InputTextBoxControl(); - this.label1 = new System.Windows.Forms.Label(); - this.txtOpenSim = new System.Windows.Forms.TextBox(); - this.tabUserServer = new System.Windows.Forms.TabPage(); - this.txtInputUserServer = new OpenSim.GUI.InputTextBoxControl(); - this.label2 = new System.Windows.Forms.Label(); - this.txtUserServer = new System.Windows.Forms.TextBox(); - this.tabAssetServer = new System.Windows.Forms.TabPage(); - this.txtInputAssetServer = new OpenSim.GUI.InputTextBoxControl(); - this.label3 = new System.Windows.Forms.Label(); - this.txtAssetServer = new System.Windows.Forms.TextBox(); - this.tabGridServer = new System.Windows.Forms.TabPage(); - this.txtInputGridServer = new OpenSim.GUI.InputTextBoxControl(); - this.label4 = new System.Windows.Forms.Label(); - this.txtGridServer = new System.Windows.Forms.TextBox(); - this.label5 = new System.Windows.Forms.Label(); - this.noProbe1 = new System.Windows.Forms.CheckBox(); - this.label6 = new System.Windows.Forms.Label(); - this.multiple1 = new System.Windows.Forms.CheckBox(); - this.label7 = new System.Windows.Forms.Label(); - this.noMultiple1 = new System.Windows.Forms.CheckBox(); - this.ignorepixeldepth1 = new System.Windows.Forms.CheckBox(); - this.nothread1 = new System.Windows.Forms.CheckBox(); - this.safe1 = new System.Windows.Forms.CheckBox(); - this.noconsole1 = new System.Windows.Forms.CheckBox(); - this.log1 = new System.Windows.Forms.CheckBox(); - this.helperuri1 = new System.Windows.Forms.CheckBox(); - this.autologin1 = new System.Windows.Forms.CheckBox(); - this.toolTip1 = new System.Windows.Forms.ToolTip(this.components); - this.dialog1 = new System.Windows.Forms.CheckBox(); - this.previous1 = new System.Windows.Forms.CheckBox(); - this.simple1 = new System.Windows.Forms.CheckBox(); - this.noinvlib1 = new System.Windows.Forms.CheckBox(); - this.debugst1 = new System.Windows.Forms.CheckBox(); - this.spanish1 = new System.Windows.Forms.CheckBox(); - this.korean1 = new System.Windows.Forms.CheckBox(); - this.local1 = new System.Windows.Forms.CheckBox(); - this.purge1 = new System.Windows.Forms.CheckBox(); - this.nofmod1 = new System.Windows.Forms.CheckBox(); - this.noaudio1 = new System.Windows.Forms.CheckBox(); - this.nosound1 = new System.Windows.Forms.CheckBox(); - this.url1 = new System.Windows.Forms.CheckBox(); - this.port1 = new System.Windows.Forms.CheckBox(); - this.simBox1 = new System.Windows.Forms.TextBox(); - this.portBox1 = new System.Windows.Forms.TextBox(); - this.user1 = new System.Windows.Forms.CheckBox(); - this.quitAfter1 = new System.Windows.Forms.CheckBox(); - this.techTag1 = new System.Windows.Forms.CheckBox(); - this.yield1 = new System.Windows.Forms.CheckBox(); - this.logfile1 = new System.Windows.Forms.CheckBox(); - this.settings1 = new System.Windows.Forms.CheckBox(); - this.outbw1 = new System.Windows.Forms.CheckBox(); - this.inbw1 = new System.Windows.Forms.CheckBox(); - this.drop1 = new System.Windows.Forms.CheckBox(); - this.dropBox1 = new System.Windows.Forms.TextBox(); - this.inbwBox1 = new System.Windows.Forms.TextBox(); - this.outbwBox1 = new System.Windows.Forms.TextBox(); - this.settingsBox1 = new System.Windows.Forms.TextBox(); - this.logfileBox1 = new System.Windows.Forms.TextBox(); - this.yieldBox1 = new System.Windows.Forms.TextBox(); - this.techtagBox1 = new System.Windows.Forms.TextBox(); - this.quitafterBox1 = new System.Windows.Forms.TextBox(); - this.comboBox1 = new System.Windows.Forms.ComboBox(); - this.loginuri1 = new System.Windows.Forms.CheckBox(); - this.loginuriBox1 = new System.Windows.Forms.TextBox(); - this.set1 = new System.Windows.Forms.CheckBox(); - this.setBox1 = new System.Windows.Forms.TextBox(); - this.errmask1 = new System.Windows.Forms.CheckBox(); - this.skin1 = new System.Windows.Forms.CheckBox(); - this.login1 = new System.Windows.Forms.CheckBox(); - this.errmaskBox1 = new System.Windows.Forms.TextBox(); - this.skinBox1 = new System.Windows.Forms.TextBox(); - this.firstBox1 = new System.Windows.Forms.TextBox(); - this.lastBox1 = new System.Windows.Forms.TextBox(); - this.noutc1 = new System.Windows.Forms.CheckBox(); - this.passBox1 = new System.Windows.Forms.TextBox(); - this.raw1 = new System.Windows.Forms.CheckBox(); - this.rawBox1 = new System.Windows.Forms.TextBox(); - this.clear1 = new System.Windows.Forms.Button(); - this.nataddress1 = new System.Windows.Forms.TextBox(); - this.label8 = new System.Windows.Forms.Label(); - this.label9 = new System.Windows.Forms.Label(); - this.exeBox1 = new System.Windows.Forms.TextBox(); - this.label10 = new System.Windows.Forms.Label(); - this.label11 = new System.Windows.Forms.Label(); - this.label12 = new System.Windows.Forms.Label(); - this.label13 = new System.Windows.Forms.Label(); - this.menuStrip1.SuspendLayout(); - this.gbLog.SuspendLayout(); - this.tabLogs.SuspendLayout(); - this.tabMainLog.SuspendLayout(); - this.tabRegionServer.SuspendLayout(); - this.tabUserServer.SuspendLayout(); - this.tabAssetServer.SuspendLayout(); - this.tabGridServer.SuspendLayout(); - this.SuspendLayout(); - // - // menuStrip1 - // - this.menuStrip1.AutoSize = false; - this.menuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.fileToolStripMenuItem}); - this.menuStrip1.Location = new System.Drawing.Point(0, 0); - this.menuStrip1.Name = "menuStrip1"; - this.menuStrip1.Size = new System.Drawing.Size(900, 20); - this.menuStrip1.TabIndex = 7; - this.menuStrip1.Text = "menuStrip1"; - // - // fileToolStripMenuItem - // - this.fileToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.exitToolStripMenuItem}); - this.fileToolStripMenuItem.Name = "fileToolStripMenuItem"; - this.fileToolStripMenuItem.Size = new System.Drawing.Size(35, 16); - this.fileToolStripMenuItem.Text = "File"; - // - // exitToolStripMenuItem - // - this.exitToolStripMenuItem.Name = "exitToolStripMenuItem"; - this.exitToolStripMenuItem.Size = new System.Drawing.Size(130, 22); - this.exitToolStripMenuItem.Text = "Exit Cleanly"; - this.exitToolStripMenuItem.Click += new System.EventHandler(this.exitToolStripMenuItem_Click); - // - // timer1 - // - this.timer1.Enabled = true; - // - // clientBox1 - // - this.clientBox1.Location = new System.Drawing.Point(680, 27); - this.clientBox1.Name = "clientBox1"; - this.clientBox1.Size = new System.Drawing.Size(213, 20); - this.clientBox1.TabIndex = 8; - this.clientBox1.Text = "C://Secondlife//"; - // - // btnStart - // - this.btnStart.Location = new System.Drawing.Point(7, 366); - this.btnStart.Name = "btnStart"; - this.btnStart.Size = new System.Drawing.Size(80, 23); - this.btnStart.TabIndex = 2; - this.btnStart.Text = "Start"; - this.btnStart.UseVisualStyleBackColor = true; - this.btnStart.Click += new System.EventHandler(this.btnStart_Click); - // - // btnStop - // - this.btnStop.Location = new System.Drawing.Point(92, 366); - this.btnStop.Name = "btnStop"; - this.btnStop.Size = new System.Drawing.Size(80, 23); - this.btnStop.TabIndex = 3; - this.btnStop.Text = "Stop"; - this.btnStop.UseVisualStyleBackColor = true; - this.btnStop.Click += new System.EventHandler(this.btnStop_Click); - // - // rbGridRegionMode - // - this.rbGridRegionMode.AutoSize = true; - this.rbGridRegionMode.Location = new System.Drawing.Point(96, 27); - this.rbGridRegionMode.Name = "rbGridRegionMode"; - this.rbGridRegionMode.Size = new System.Drawing.Size(76, 17); - this.rbGridRegionMode.TabIndex = 4; - this.rbGridRegionMode.Text = "Grid region"; - this.rbGridRegionMode.UseVisualStyleBackColor = true; - this.rbGridRegionMode.CheckedChanged += new System.EventHandler(this.rbGridRegionMode_CheckedChanged); - // - // rbStandAloneMode - // - this.rbStandAloneMode.AutoSize = true; - this.rbStandAloneMode.Checked = true; - this.rbStandAloneMode.Location = new System.Drawing.Point(8, 27); - this.rbStandAloneMode.Name = "rbStandAloneMode"; - this.rbStandAloneMode.Size = new System.Drawing.Size(82, 17); - this.rbStandAloneMode.TabIndex = 5; - this.rbStandAloneMode.TabStop = true; - this.rbStandAloneMode.Text = "Stand alone"; - this.rbStandAloneMode.UseVisualStyleBackColor = true; - this.rbStandAloneMode.CheckedChanged += new System.EventHandler(this.rbStandAloneMode_CheckedChanged); - // - // rbGridServer - // - this.rbGridServer.AutoSize = true; - this.rbGridServer.Location = new System.Drawing.Point(178, 27); - this.rbGridServer.Name = "rbGridServer"; - this.rbGridServer.Size = new System.Drawing.Size(76, 17); - this.rbGridServer.TabIndex = 6; - this.rbGridServer.Text = "Grid server"; - this.rbGridServer.UseVisualStyleBackColor = true; - this.rbGridServer.CheckedChanged += new System.EventHandler(this.rbGridServer_CheckedChanged); - // - // Launch1 - // - this.Launch1.Location = new System.Drawing.Point(264, 366); - this.Launch1.Name = "Launch1"; - this.Launch1.Size = new System.Drawing.Size(80, 23); - this.Launch1.TabIndex = 9; - this.Launch1.Text = "Client Launch"; - this.Launch1.UseVisualStyleBackColor = true; - this.Launch1.Click += new System.EventHandler(this.Launch1_Click); - // - // gbLog - // - this.gbLog.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.gbLog.Controls.Add(this.tabLogs); - this.gbLog.Location = new System.Drawing.Point(8, 50); - this.gbLog.Name = "gbLog"; - this.gbLog.Size = new System.Drawing.Size(345, 310); - this.gbLog.TabIndex = 1; - this.gbLog.TabStop = false; - this.gbLog.Text = "Logs"; - // - // tabLogs - // - this.tabLogs.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.tabLogs.Controls.Add(this.tabMainLog); - this.tabLogs.Controls.Add(this.tabRegionServer); - this.tabLogs.Controls.Add(this.tabUserServer); - this.tabLogs.Controls.Add(this.tabAssetServer); - this.tabLogs.Controls.Add(this.tabGridServer); - this.tabLogs.Location = new System.Drawing.Point(6, 19); - this.tabLogs.Name = "tabLogs"; - this.tabLogs.SelectedIndex = 0; - this.tabLogs.Size = new System.Drawing.Size(333, 285); - this.tabLogs.TabIndex = 0; - // - // tabMainLog - // - this.tabMainLog.Controls.Add(this.txtMainLog); - this.tabMainLog.Location = new System.Drawing.Point(4, 22); - this.tabMainLog.Name = "tabMainLog"; - this.tabMainLog.Size = new System.Drawing.Size(325, 259); - this.tabMainLog.TabIndex = 4; - this.tabMainLog.Text = "Main log"; - this.tabMainLog.UseVisualStyleBackColor = true; - // - // txtMainLog - // - this.txtMainLog.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.txtMainLog.Location = new System.Drawing.Point(0, 0); - this.txtMainLog.Multiline = true; - this.txtMainLog.Name = "txtMainLog"; - this.txtMainLog.ScrollBars = System.Windows.Forms.ScrollBars.Vertical; - this.txtMainLog.Size = new System.Drawing.Size(325, 259); - this.txtMainLog.TabIndex = 1; - // - // tabRegionServer - // - this.tabRegionServer.Controls.Add(this.txtInputRegionServer); - this.tabRegionServer.Controls.Add(this.label1); - this.tabRegionServer.Controls.Add(this.txtOpenSim); - this.tabRegionServer.Location = new System.Drawing.Point(4, 22); - this.tabRegionServer.Name = "tabRegionServer"; - this.tabRegionServer.Padding = new System.Windows.Forms.Padding(3); - this.tabRegionServer.Size = new System.Drawing.Size(325, 259); - this.tabRegionServer.TabIndex = 0; - this.tabRegionServer.Text = "Region server"; - this.tabRegionServer.UseVisualStyleBackColor = true; - // - // txtInputRegionServer - // - this.txtInputRegionServer.Location = new System.Drawing.Point(53, 239); - this.txtInputRegionServer.Name = "txtInputRegionServer"; - this.txtInputRegionServer.Size = new System.Drawing.Size(272, 20); - this.txtInputRegionServer.TabIndex = 5; - // - // label1 - // - this.label1.AutoSize = true; - this.label1.Location = new System.Drawing.Point(0, 242); - this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size(57, 13); - this.label1.TabIndex = 4; - this.label1.Text = "Command:"; - // - // txtOpenSim - // - this.txtOpenSim.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.txtOpenSim.Location = new System.Drawing.Point(0, 0); - this.txtOpenSim.Multiline = true; - this.txtOpenSim.Name = "txtOpenSim"; - this.txtOpenSim.ScrollBars = System.Windows.Forms.ScrollBars.Vertical; - this.txtOpenSim.Size = new System.Drawing.Size(325, 236); - this.txtOpenSim.TabIndex = 0; - // - // tabUserServer - // - this.tabUserServer.Controls.Add(this.txtInputUserServer); - this.tabUserServer.Controls.Add(this.label2); - this.tabUserServer.Controls.Add(this.txtUserServer); - this.tabUserServer.Location = new System.Drawing.Point(4, 22); - this.tabUserServer.Name = "tabUserServer"; - this.tabUserServer.Padding = new System.Windows.Forms.Padding(3); - this.tabUserServer.Size = new System.Drawing.Size(325, 259); - this.tabUserServer.TabIndex = 1; - this.tabUserServer.Text = "User server"; - this.tabUserServer.UseVisualStyleBackColor = true; - // - // txtInputUserServer - // - this.txtInputUserServer.Location = new System.Drawing.Point(53, 239); - this.txtInputUserServer.Name = "txtInputUserServer"; - this.txtInputUserServer.Size = new System.Drawing.Size(272, 20); - this.txtInputUserServer.TabIndex = 7; - // - // label2 - // - this.label2.AutoSize = true; - this.label2.Location = new System.Drawing.Point(0, 242); - this.label2.Name = "label2"; - this.label2.Size = new System.Drawing.Size(57, 13); - this.label2.TabIndex = 6; - this.label2.Text = "Command:"; - // - // txtUserServer - // - this.txtUserServer.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.txtUserServer.Location = new System.Drawing.Point(0, 0); - this.txtUserServer.Multiline = true; - this.txtUserServer.Name = "txtUserServer"; - this.txtUserServer.ScrollBars = System.Windows.Forms.ScrollBars.Vertical; - this.txtUserServer.Size = new System.Drawing.Size(325, 236); - this.txtUserServer.TabIndex = 1; - // - // tabAssetServer - // - this.tabAssetServer.Controls.Add(this.txtInputAssetServer); - this.tabAssetServer.Controls.Add(this.label3); - this.tabAssetServer.Controls.Add(this.txtAssetServer); - this.tabAssetServer.Location = new System.Drawing.Point(4, 22); - this.tabAssetServer.Name = "tabAssetServer"; - this.tabAssetServer.Size = new System.Drawing.Size(325, 259); - this.tabAssetServer.TabIndex = 2; - this.tabAssetServer.Text = "Asset server"; - this.tabAssetServer.UseVisualStyleBackColor = true; - // - // txtInputAssetServer - // - this.txtInputAssetServer.Location = new System.Drawing.Point(53, 239); - this.txtInputAssetServer.Name = "txtInputAssetServer"; - this.txtInputAssetServer.Size = new System.Drawing.Size(272, 20); - this.txtInputAssetServer.TabIndex = 7; - // - // label3 - // - this.label3.AutoSize = true; - this.label3.Location = new System.Drawing.Point(0, 242); - this.label3.Name = "label3"; - this.label3.Size = new System.Drawing.Size(57, 13); - this.label3.TabIndex = 6; - this.label3.Text = "Command:"; - // - // txtAssetServer - // - this.txtAssetServer.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.txtAssetServer.Location = new System.Drawing.Point(0, 0); - this.txtAssetServer.Multiline = true; - this.txtAssetServer.Name = "txtAssetServer"; - this.txtAssetServer.ScrollBars = System.Windows.Forms.ScrollBars.Vertical; - this.txtAssetServer.Size = new System.Drawing.Size(325, 236); - this.txtAssetServer.TabIndex = 1; - // - // tabGridServer - // - this.tabGridServer.Controls.Add(this.txtInputGridServer); - this.tabGridServer.Controls.Add(this.label4); - this.tabGridServer.Controls.Add(this.txtGridServer); - this.tabGridServer.Location = new System.Drawing.Point(4, 22); - this.tabGridServer.Name = "tabGridServer"; - this.tabGridServer.Size = new System.Drawing.Size(325, 259); - this.tabGridServer.TabIndex = 3; - this.tabGridServer.Text = "Grid server"; - this.tabGridServer.UseVisualStyleBackColor = true; - // - // txtInputGridServer - // - this.txtInputGridServer.Location = new System.Drawing.Point(53, 239); - this.txtInputGridServer.Name = "txtInputGridServer"; - this.txtInputGridServer.Size = new System.Drawing.Size(272, 20); - this.txtInputGridServer.TabIndex = 7; - // - // label4 - // - this.label4.AutoSize = true; - this.label4.Location = new System.Drawing.Point(0, 242); - this.label4.Name = "label4"; - this.label4.Size = new System.Drawing.Size(57, 13); - this.label4.TabIndex = 6; - this.label4.Text = "Command:"; - // - // txtGridServer - // - this.txtGridServer.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.txtGridServer.Location = new System.Drawing.Point(0, 0); - this.txtGridServer.Multiline = true; - this.txtGridServer.Name = "txtGridServer"; - this.txtGridServer.ScrollBars = System.Windows.Forms.ScrollBars.Vertical; - this.txtGridServer.Size = new System.Drawing.Size(325, 236); - this.txtGridServer.TabIndex = 1; - // - // label5 - // - this.label5.AutoSize = true; - this.label5.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, ((System.Drawing.FontStyle)((System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Underline))), System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.label5.Location = new System.Drawing.Point(460, 55); - this.label5.Name = "label5"; - this.label5.Size = new System.Drawing.Size(205, 20); - this.label5.TabIndex = 11; - this.label5.Text = "Command Line Switches"; - // - // noProbe1 - // - this.noProbe1.AutoSize = true; - this.noProbe1.Location = new System.Drawing.Point(359, 275); - this.noProbe1.Name = "noProbe1"; - this.noProbe1.Size = new System.Drawing.Size(68, 17); - this.noProbe1.TabIndex = 12; - this.noProbe1.Text = "-noprobe"; - this.toolTip1.SetToolTip(this.noProbe1, "disable hardware probe"); - this.noProbe1.UseVisualStyleBackColor = true; - // - // label6 - // - this.label6.AutoSize = true; - this.label6.Location = new System.Drawing.Point(8, 415); - this.label6.Name = "label6"; - this.label6.Size = new System.Drawing.Size(0, 13); - this.label6.TabIndex = 14; - this.label6.Click += new System.EventHandler(this.label6_Click); - // - // multiple1 - // - this.multiple1.AutoSize = true; - this.multiple1.Location = new System.Drawing.Point(359, 185); - this.multiple1.Name = "multiple1"; - this.multiple1.Size = new System.Drawing.Size(64, 17); - this.multiple1.TabIndex = 15; - this.multiple1.Text = "-multiple"; - this.toolTip1.SetToolTip(this.multiple1, "allow multiple viewers"); - this.multiple1.UseVisualStyleBackColor = true; - // - // label7 - // - this.label7.AutoSize = true; - this.label7.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, ((System.Drawing.FontStyle)((System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Underline))), System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.label7.Location = new System.Drawing.Point(8, 396); - this.label7.Name = "label7"; - this.label7.Size = new System.Drawing.Size(338, 13); - this.label7.TabIndex = 16; - this.label7.Text = "Client Command Line String Used and Program Messages :"; - // - // noMultiple1 - // - this.noMultiple1.AutoSize = true; - this.noMultiple1.Location = new System.Drawing.Point(359, 260); - this.noMultiple1.Name = "noMultiple1"; - this.noMultiple1.Size = new System.Drawing.Size(76, 17); - this.noMultiple1.TabIndex = 17; - this.noMultiple1.Text = "-nomultiple"; - this.toolTip1.SetToolTip(this.noMultiple1, "block multiple viewers (secondlife.exe instances)"); - this.noMultiple1.UseVisualStyleBackColor = true; - // - // ignorepixeldepth1 - // - this.ignorepixeldepth1.AutoSize = true; - this.ignorepixeldepth1.Location = new System.Drawing.Point(359, 125); - this.ignorepixeldepth1.Name = "ignorepixeldepth1"; - this.ignorepixeldepth1.Size = new System.Drawing.Size(106, 17); - this.ignorepixeldepth1.TabIndex = 18; - this.ignorepixeldepth1.Text = "-ignorepixeldepth"; - this.toolTip1.SetToolTip(this.ignorepixeldepth1, "ignore pixel depth settings"); - this.ignorepixeldepth1.UseVisualStyleBackColor = true; - // - // nothread1 - // - this.nothread1.AutoSize = true; - this.nothread1.Location = new System.Drawing.Point(359, 305); - this.nothread1.Name = "nothread1"; - this.nothread1.Size = new System.Drawing.Size(71, 17); - this.nothread1.TabIndex = 19; - this.nothread1.Text = "-nothread"; - this.toolTip1.SetToolTip(this.nothread1, "run VFS (Virtual File System) in single thread"); - this.nothread1.UseVisualStyleBackColor = true; - // - // safe1 - // - this.safe1.AutoSize = true; - this.safe1.Location = new System.Drawing.Point(359, 365); - this.safe1.Name = "safe1"; - this.safe1.Size = new System.Drawing.Size(49, 17); - this.safe1.TabIndex = 20; - this.safe1.Text = "-safe"; - this.toolTip1.SetToolTip(this.safe1, "reset preferences, run in safe mode"); - this.safe1.UseVisualStyleBackColor = true; - // - // noconsole1 - // - this.noconsole1.AutoSize = true; - this.noconsole1.Location = new System.Drawing.Point(359, 215); - this.noconsole1.Name = "noconsole1"; - this.noconsole1.Size = new System.Drawing.Size(78, 17); - this.noconsole1.TabIndex = 21; - this.noconsole1.Text = "-noconsole"; - this.toolTip1.SetToolTip(this.noconsole1, "hide the console if not already hidden"); - this.noconsole1.UseVisualStyleBackColor = true; - // - // log1 - // - this.log1.AutoSize = true; - this.log1.Location = new System.Drawing.Point(359, 170); - this.log1.Name = "log1"; - this.log1.Size = new System.Drawing.Size(43, 17); - this.log1.TabIndex = 22; - this.log1.Text = "-log"; - this.toolTip1.SetToolTip(this.log1, "--no info avail--"); - this.log1.UseVisualStyleBackColor = true; - // - // helperuri1 - // - this.helperuri1.AutoSize = true; - this.helperuri1.Location = new System.Drawing.Point(359, 110); - this.helperuri1.Name = "helperuri1"; - this.helperuri1.Size = new System.Drawing.Size(69, 17); - this.helperuri1.TabIndex = 23; - this.helperuri1.Text = "-helperuri"; - this.toolTip1.SetToolTip(this.helperuri1, "--no info avail--"); - this.helperuri1.UseVisualStyleBackColor = true; - // - // autologin1 - // - this.autologin1.AutoSize = true; - this.autologin1.Location = new System.Drawing.Point(359, 65); - this.autologin1.Name = "autologin1"; - this.autologin1.Size = new System.Drawing.Size(75, 17); - this.autologin1.TabIndex = 24; - this.autologin1.Text = "--autologin"; - this.toolTip1.SetToolTip(this.autologin1, "--no info avail--"); - this.autologin1.UseVisualStyleBackColor = true; - // - // dialog1 - // - this.dialog1.AutoSize = true; - this.dialog1.Location = new System.Drawing.Point(359, 95); - this.dialog1.Name = "dialog1"; - this.dialog1.Size = new System.Drawing.Size(57, 17); - this.dialog1.TabIndex = 25; - this.dialog1.Text = "-dialog"; - this.toolTip1.SetToolTip(this.dialog1, "some arcane dialog box that is impossible to raise"); - this.dialog1.UseVisualStyleBackColor = true; - // - // previous1 - // - this.previous1.AutoSize = true; - this.previous1.Location = new System.Drawing.Point(359, 335); - this.previous1.Name = "previous1"; - this.previous1.Size = new System.Drawing.Size(69, 17); - this.previous1.TabIndex = 26; - this.previous1.Text = "-previous"; - this.toolTip1.SetToolTip(this.previous1, "--no info avail--"); - this.previous1.UseVisualStyleBackColor = true; - // - // simple1 - // - this.simple1.AutoSize = true; - this.simple1.Location = new System.Drawing.Point(359, 380); - this.simple1.Name = "simple1"; - this.simple1.Size = new System.Drawing.Size(58, 17); - this.simple1.TabIndex = 27; - this.simple1.Text = "-simple"; - this.toolTip1.SetToolTip(this.simple1, "--no info avail--"); - this.simple1.UseVisualStyleBackColor = true; - // - // noinvlib1 - // - this.noinvlib1.AutoSize = true; - this.noinvlib1.Location = new System.Drawing.Point(359, 245); - this.noinvlib1.Name = "noinvlib1"; - this.noinvlib1.Size = new System.Drawing.Size(65, 17); - this.noinvlib1.TabIndex = 28; - this.noinvlib1.Text = "-noinvlib"; - this.toolTip1.SetToolTip(this.noinvlib1, "do not request inventory library"); - this.noinvlib1.UseVisualStyleBackColor = true; - // - // debugst1 - // - this.debugst1.AutoSize = true; - this.debugst1.Location = new System.Drawing.Point(359, 80); - this.debugst1.Name = "debugst1"; - this.debugst1.Size = new System.Drawing.Size(67, 17); - this.debugst1.TabIndex = 30; - this.debugst1.Text = "-debugst"; - this.toolTip1.SetToolTip(this.debugst1, "debug mask"); - this.debugst1.UseVisualStyleBackColor = true; - // - // spanish1 - // - this.spanish1.AutoSize = true; - this.spanish1.Location = new System.Drawing.Point(359, 395); - this.spanish1.Name = "spanish1"; - this.spanish1.Size = new System.Drawing.Size(65, 17); - this.spanish1.TabIndex = 31; - this.spanish1.Text = "-spanish"; - this.toolTip1.SetToolTip(this.spanish1, "activate (incomplete) Spanish UI translation"); - this.spanish1.UseVisualStyleBackColor = true; - // - // korean1 - // - this.korean1.AutoSize = true; - this.korean1.Location = new System.Drawing.Point(359, 140); - this.korean1.Name = "korean1"; - this.korean1.Size = new System.Drawing.Size(62, 17); - this.korean1.TabIndex = 32; - this.korean1.Text = "-korean"; - this.toolTip1.SetToolTip(this.korean1, "activate (incomplete) Korean UI translation"); - this.korean1.UseVisualStyleBackColor = true; - // - // local1 - // - this.local1.AutoSize = true; - this.local1.Location = new System.Drawing.Point(359, 155); - this.local1.Name = "local1"; - this.local1.Size = new System.Drawing.Size(51, 17); - this.local1.TabIndex = 46; - this.local1.Text = "-local"; - this.toolTip1.SetToolTip(this.local1, "run without simulator"); - this.local1.UseVisualStyleBackColor = true; - // - // purge1 - // - this.purge1.AutoSize = true; - this.purge1.Location = new System.Drawing.Point(359, 350); - this.purge1.Name = "purge1"; - this.purge1.Size = new System.Drawing.Size(56, 17); - this.purge1.TabIndex = 56; - this.purge1.Text = "-purge"; - this.toolTip1.SetToolTip(this.purge1, "delete files in cache"); - this.purge1.UseVisualStyleBackColor = true; - // - // nofmod1 - // - this.nofmod1.AutoSize = true; - this.nofmod1.Location = new System.Drawing.Point(359, 230); - this.nofmod1.Name = "nofmod1"; - this.nofmod1.Size = new System.Drawing.Size(64, 17); - this.nofmod1.TabIndex = 45; - this.nofmod1.Text = "-nofmod"; - this.toolTip1.SetToolTip(this.nofmod1, "FMOD is the API used to distort sound while moving"); - this.nofmod1.UseVisualStyleBackColor = true; - // - // noaudio1 - // - this.noaudio1.AutoSize = true; - this.noaudio1.Location = new System.Drawing.Point(359, 200); - this.noaudio1.Name = "noaudio1"; - this.noaudio1.Size = new System.Drawing.Size(67, 17); - this.noaudio1.TabIndex = 44; - this.noaudio1.Text = "-noaudio"; - this.toolTip1.SetToolTip(this.noaudio1, "no audio, different from -nosound?"); - this.noaudio1.UseVisualStyleBackColor = true; - // - // nosound1 - // - this.nosound1.AutoSize = true; - this.nosound1.Location = new System.Drawing.Point(359, 290); - this.nosound1.Name = "nosound1"; - this.nosound1.Size = new System.Drawing.Size(70, 17); - this.nosound1.TabIndex = 55; - this.nosound1.Text = "-nosound"; - this.toolTip1.SetToolTip(this.nosound1, "no sound, different from -noaudio?"); - this.nosound1.UseVisualStyleBackColor = true; - // - // url1 - // - this.url1.AutoSize = true; - this.url1.Location = new System.Drawing.Point(488, 245); - this.url1.Name = "url1"; - this.url1.Size = new System.Drawing.Size(40, 17); - this.url1.TabIndex = 43; - this.url1.Text = "-url"; - this.toolTip1.SetToolTip(this.url1, "handles secondlife://sim/x/y/z URLs"); - this.url1.UseVisualStyleBackColor = true; - // - // port1 - // - this.port1.AutoSize = true; - this.port1.Location = new System.Drawing.Point(488, 171); - this.port1.Name = "port1"; - this.port1.Size = new System.Drawing.Size(47, 17); - this.port1.TabIndex = 49; - this.port1.Text = "-port"; - this.toolTip1.SetToolTip(this.port1, "Set the TCP port for the client; useful to run multiple instances of SL on the sa" + - "me local home network. Values that may work: 13000 and 13001 (Valid numbers are " + - "13000 to 13050)"); - this.port1.UseVisualStyleBackColor = true; - // - // simBox1 - // - this.simBox1.Location = new System.Drawing.Point(549, 243); - this.simBox1.Name = "simBox1"; - this.simBox1.Size = new System.Drawing.Size(344, 20); - this.simBox1.TabIndex = 66; - this.simBox1.Text = "secondlife://lutra/127/128/60"; - this.toolTip1.SetToolTip(this.simBox1, "type URL here"); - // - // portBox1 - // - this.portBox1.Location = new System.Drawing.Point(549, 169); - this.portBox1.Name = "portBox1"; - this.portBox1.Size = new System.Drawing.Size(58, 20); - this.portBox1.TabIndex = 67; - this.portBox1.Text = "13000"; - this.toolTip1.SetToolTip(this.portBox1, "enter port number here"); - // - // user1 - // - this.user1.AutoSize = true; - this.user1.Location = new System.Drawing.Point(488, 191); - this.user1.Name = "user1"; - this.user1.Size = new System.Drawing.Size(49, 17); - this.user1.TabIndex = 42; - this.user1.Text = "-user"; - this.user1.ThreeState = true; - this.toolTip1.SetToolTip(this.user1, "specify user server in dotted quad"); - this.user1.UseVisualStyleBackColor = true; - // - // quitAfter1 - // - this.quitAfter1.AutoSize = true; - this.quitAfter1.Location = new System.Drawing.Point(680, 65); - this.quitAfter1.Name = "quitAfter1"; - this.quitAfter1.Size = new System.Drawing.Size(67, 17); - this.quitAfter1.TabIndex = 41; - this.quitAfter1.Text = "-quitafter"; - this.toolTip1.SetToolTip(this.quitAfter1, "SL quits after elapsed time in seconds"); - this.quitAfter1.UseVisualStyleBackColor = true; - // - // techTag1 - // - this.techTag1.AutoSize = true; - this.techTag1.Location = new System.Drawing.Point(488, 211); - this.techTag1.Name = "techTag1"; - this.techTag1.Size = new System.Drawing.Size(65, 17); - this.techTag1.TabIndex = 47; - this.techTag1.Text = "-techtag"; - this.toolTip1.SetToolTip(this.techTag1, "unknown (but requires a parameter)"); - this.techTag1.UseVisualStyleBackColor = true; - // - // yield1 - // - this.yield1.AutoSize = true; - this.yield1.Location = new System.Drawing.Point(488, 91); - this.yield1.Name = "yield1"; - this.yield1.Size = new System.Drawing.Size(50, 17); - this.yield1.TabIndex = 48; - this.yield1.Text = "-yield"; - this.toolTip1.SetToolTip(this.yield1, "yield some idle time to local host (changed from - cooperative)"); - this.yield1.UseVisualStyleBackColor = true; - // - // logfile1 - // - this.logfile1.AutoSize = true; - this.logfile1.Location = new System.Drawing.Point(680, 125); - this.logfile1.Name = "logfile1"; - this.logfile1.Size = new System.Drawing.Size(56, 17); - this.logfile1.TabIndex = 54; - this.logfile1.Text = "-logfile"; - this.toolTip1.SetToolTip(this.logfile1, "change the log filename"); - this.logfile1.UseVisualStyleBackColor = true; - // - // settings1 - // - this.settings1.AutoSize = true; - this.settings1.Location = new System.Drawing.Point(680, 95); - this.settings1.Name = "settings1"; - this.settings1.Size = new System.Drawing.Size(65, 17); - this.settings1.TabIndex = 53; - this.settings1.Text = "-settings"; - this.toolTip1.SetToolTip(this.settings1, "specify configuration filename; default is \"settings.ini\""); - this.settings1.UseVisualStyleBackColor = true; - // - // outbw1 - // - this.outbw1.AutoSize = true; - this.outbw1.Location = new System.Drawing.Point(488, 111); - this.outbw1.Name = "outbw1"; - this.outbw1.Size = new System.Drawing.Size(58, 17); - this.outbw1.TabIndex = 52; - this.outbw1.Text = "-outbw"; - this.toolTip1.SetToolTip(this.outbw1, "set outgoing bandwidth"); - this.outbw1.UseVisualStyleBackColor = true; - // - // inbw1 - // - this.inbw1.AutoSize = true; - this.inbw1.Location = new System.Drawing.Point(488, 131); - this.inbw1.Name = "inbw1"; - this.inbw1.Size = new System.Drawing.Size(51, 17); - this.inbw1.TabIndex = 51; - this.inbw1.Text = "-inbw"; - this.toolTip1.SetToolTip(this.inbw1, "set incoming bandwidth"); - this.inbw1.UseVisualStyleBackColor = true; - // - // drop1 - // - this.drop1.AutoSize = true; - this.drop1.Location = new System.Drawing.Point(488, 151); - this.drop1.Name = "drop1"; - this.drop1.Size = new System.Drawing.Size(50, 17); - this.drop1.TabIndex = 50; - this.drop1.Text = "-drop"; - this.toolTip1.SetToolTip(this.drop1, "drop number% of incoming network packets"); - this.drop1.UseVisualStyleBackColor = true; - // - // dropBox1 - // - this.dropBox1.Location = new System.Drawing.Point(549, 149); - this.dropBox1.Name = "dropBox1"; - this.dropBox1.Size = new System.Drawing.Size(58, 20); - this.dropBox1.TabIndex = 68; - this.dropBox1.Text = "0"; - this.toolTip1.SetToolTip(this.dropBox1, "enter percent of packets to drop"); - // - // inbwBox1 - // - this.inbwBox1.Location = new System.Drawing.Point(549, 129); - this.inbwBox1.Name = "inbwBox1"; - this.inbwBox1.Size = new System.Drawing.Size(57, 20); - this.inbwBox1.TabIndex = 69; - this.toolTip1.SetToolTip(this.inbwBox1, "enter incoming cap"); - // - // outbwBox1 - // - this.outbwBox1.Location = new System.Drawing.Point(549, 109); - this.outbwBox1.Name = "outbwBox1"; - this.outbwBox1.Size = new System.Drawing.Size(58, 20); - this.outbwBox1.TabIndex = 70; - this.toolTip1.SetToolTip(this.outbwBox1, "enter outgoing cap"); - // - // settingsBox1 - // - this.settingsBox1.Location = new System.Drawing.Point(741, 93); - this.settingsBox1.Name = "settingsBox1"; - this.settingsBox1.Size = new System.Drawing.Size(152, 20); - this.settingsBox1.TabIndex = 71; - this.settingsBox1.Text = "settings.ini"; - this.toolTip1.SetToolTip(this.settingsBox1, "enter settings file name"); - // - // logfileBox1 - // - this.logfileBox1.Location = new System.Drawing.Point(733, 123); - this.logfileBox1.Name = "logfileBox1"; - this.logfileBox1.Size = new System.Drawing.Size(160, 20); - this.logfileBox1.TabIndex = 72; - this.logfileBox1.Text = "mylogfile.txt"; - this.toolTip1.SetToolTip(this.logfileBox1, "enter log file name here"); - // - // yieldBox1 - // - this.yieldBox1.Location = new System.Drawing.Point(549, 89); - this.yieldBox1.Name = "yieldBox1"; - this.yieldBox1.Size = new System.Drawing.Size(58, 20); - this.yieldBox1.TabIndex = 73; - this.toolTip1.SetToolTip(this.yieldBox1, "enter time to yield in "); - // - // techtagBox1 - // - this.techtagBox1.Location = new System.Drawing.Point(549, 209); - this.techtagBox1.Name = "techtagBox1"; - this.techtagBox1.Size = new System.Drawing.Size(58, 20); - this.techtagBox1.TabIndex = 74; - this.toolTip1.SetToolTip(this.techtagBox1, "enter unknown param here"); - // - // quitafterBox1 - // - this.quitafterBox1.Location = new System.Drawing.Point(745, 63); - this.quitafterBox1.Name = "quitafterBox1"; - this.quitafterBox1.Size = new System.Drawing.Size(148, 20); - this.quitafterBox1.TabIndex = 75; - this.toolTip1.SetToolTip(this.quitafterBox1, "enter time in seconds"); - // - // comboBox1 - // - this.comboBox1.FormattingEnabled = true; - this.comboBox1.Items.AddRange(new object[] { - "agni", - "colo", - "dmz", - "durga", - "siva"}); - this.comboBox1.Location = new System.Drawing.Point(549, 189); - this.comboBox1.Name = "comboBox1"; - this.comboBox1.Size = new System.Drawing.Size(58, 21); - this.comboBox1.TabIndex = 76; - this.comboBox1.Text = "agni"; - this.toolTip1.SetToolTip(this.comboBox1, "select LL user server"); - // - // loginuri1 - // - this.loginuri1.AutoSize = true; - this.loginuri1.Location = new System.Drawing.Point(488, 275); - this.loginuri1.Name = "loginuri1"; - this.loginuri1.Size = new System.Drawing.Size(62, 17); - this.loginuri1.TabIndex = 77; - this.loginuri1.Text = "-loginuri"; - this.toolTip1.SetToolTip(this.loginuri1, "login server and CGI script to use"); - this.loginuri1.UseVisualStyleBackColor = true; - // - // loginuriBox1 - // - this.loginuriBox1.Location = new System.Drawing.Point(549, 273); - this.loginuriBox1.Name = "loginuriBox1"; - this.loginuriBox1.Size = new System.Drawing.Size(344, 20); - this.loginuriBox1.TabIndex = 78; - this.loginuriBox1.Text = "localhost:9000"; - this.toolTip1.SetToolTip(this.loginuriBox1, "enter login url here"); - // - // set1 - // - this.set1.AutoSize = true; - this.set1.Location = new System.Drawing.Point(636, 185); - this.set1.Name = "set1"; - this.set1.Size = new System.Drawing.Size(43, 17); - this.set1.TabIndex = 79; - this.set1.Text = "-set"; - this.toolTip1.SetToolTip(this.set1, "specify value of a particular configuration variable; can be used multiple times " + - "in a single command-line"); - this.set1.UseVisualStyleBackColor = true; - // - // setBox1 - // - this.setBox1.Location = new System.Drawing.Point(680, 183); - this.setBox1.Name = "setBox1"; - this.setBox1.Size = new System.Drawing.Size(213, 20); - this.setBox1.TabIndex = 80; - this.setBox1.Text = "SystemLanguage en-us"; - this.toolTip1.SetToolTip(this.setBox1, "enter params"); - // - // errmask1 - // - this.errmask1.AutoSize = true; - this.errmask1.Location = new System.Drawing.Point(636, 154); - this.errmask1.Name = "errmask1"; - this.errmask1.Size = new System.Drawing.Size(66, 17); - this.errmask1.TabIndex = 81; - this.errmask1.Text = "-errmask"; - this.toolTip1.SetToolTip(this.errmask1, "32-bit bitmask for error type mask"); - this.errmask1.UseVisualStyleBackColor = true; - // - // skin1 - // - this.skin1.AutoSize = true; - this.skin1.Location = new System.Drawing.Point(635, 215); - this.skin1.Name = "skin1"; - this.skin1.Size = new System.Drawing.Size(48, 17); - this.skin1.TabIndex = 82; - this.skin1.Text = "-skin"; - this.toolTip1.SetToolTip(this.skin1, "load skins//skin.xml as the default UI appearance (incomplete)"); - this.skin1.UseVisualStyleBackColor = true; - // - // login1 - // - this.login1.AutoSize = true; - this.login1.Location = new System.Drawing.Point(457, 304); - this.login1.Name = "login1"; - this.login1.Size = new System.Drawing.Size(51, 17); - this.login1.TabIndex = 83; - this.login1.Text = "-login"; - this.toolTip1.SetToolTip(this.login1, "log in as a user"); - this.login1.UseVisualStyleBackColor = true; - // - // errmaskBox1 - // - this.errmaskBox1.Location = new System.Drawing.Point(704, 153); - this.errmaskBox1.Name = "errmaskBox1"; - this.errmaskBox1.Size = new System.Drawing.Size(189, 20); - this.errmaskBox1.TabIndex = 84; - this.toolTip1.SetToolTip(this.errmaskBox1, "32-bit bitmask for error type mask"); - // - // skinBox1 - // - this.skinBox1.Location = new System.Drawing.Point(679, 213); - this.skinBox1.Name = "skinBox1"; - this.skinBox1.Size = new System.Drawing.Size(214, 20); - this.skinBox1.TabIndex = 85; - this.skinBox1.Text = "C://Secondlife//"; - this.toolTip1.SetToolTip(this.skinBox1, "enter directory where skin.xml is"); - // - // firstBox1 - // - this.firstBox1.Location = new System.Drawing.Point(549, 303); - this.firstBox1.Name = "firstBox1"; - this.firstBox1.Size = new System.Drawing.Size(80, 20); - this.firstBox1.TabIndex = 86; - this.firstBox1.Text = "Test"; - this.toolTip1.SetToolTip(this.firstBox1, "firstname"); - // - // lastBox1 - // - this.lastBox1.Location = new System.Drawing.Point(668, 303); - this.lastBox1.Name = "lastBox1"; - this.lastBox1.Size = new System.Drawing.Size(80, 20); - this.lastBox1.TabIndex = 92; - this.lastBox1.Text = "User"; - this.toolTip1.SetToolTip(this.lastBox1, "lastname"); - // - // noutc1 - // - this.noutc1.AutoSize = true; - this.noutc1.Location = new System.Drawing.Point(359, 320); - this.noutc1.Name = "noutc1"; - this.noutc1.Size = new System.Drawing.Size(56, 17); - this.noutc1.TabIndex = 29; - this.noutc1.Text = "-noutc"; - this.toolTip1.SetToolTip(this.noutc1, "logs in local time, not UTC"); - this.noutc1.UseVisualStyleBackColor = true; - // - // passBox1 - // - this.passBox1.Location = new System.Drawing.Point(790, 303); - this.passBox1.Name = "passBox1"; - this.passBox1.Size = new System.Drawing.Size(103, 20); - this.passBox1.TabIndex = 93; - this.passBox1.Text = "test"; - this.toolTip1.SetToolTip(this.passBox1, "password"); - // - // raw1 - // - this.raw1.AutoSize = true; - this.raw1.Location = new System.Drawing.Point(457, 336); - this.raw1.Name = "raw1"; - this.raw1.Size = new System.Drawing.Size(81, 17); - this.raw1.TabIndex = 94; - this.raw1.Text = "Raw CMD :"; - this.toolTip1.SetToolTip(this.raw1, "Raw CMD options, may crash everything"); - this.raw1.UseVisualStyleBackColor = true; - // - // rawBox1 - // - this.rawBox1.Location = new System.Drawing.Point(549, 333); - this.rawBox1.Name = "rawBox1"; - this.rawBox1.Size = new System.Drawing.Size(344, 20); - this.rawBox1.TabIndex = 95; - this.toolTip1.SetToolTip(this.rawBox1, "Raw CMD options, may crash everything"); - // - // clear1 - // - this.clear1.Location = new System.Drawing.Point(178, 366); - this.clear1.Name = "clear1"; - this.clear1.Size = new System.Drawing.Size(80, 23); - this.clear1.TabIndex = 96; - this.clear1.Text = "Clear"; - this.toolTip1.SetToolTip(this.clear1, "clear all switch boxes"); - this.clear1.UseVisualStyleBackColor = true; - this.clear1.Click += new System.EventHandler(this.clear1_Click); - // - // nataddress1 - // - this.nataddress1.Location = new System.Drawing.Point(457, 389); - this.nataddress1.Name = "nataddress1"; - this.nataddress1.Size = new System.Drawing.Size(436, 20); - this.nataddress1.TabIndex = 58; - this.nataddress1.Text = "UNUSED ATM"; - this.nataddress1.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; - // - // label8 - // - this.label8.AutoSize = true; - this.label8.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, ((System.Drawing.FontStyle)((System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Underline))), System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.label8.Location = new System.Drawing.Point(588, 360); - this.label8.Name = "label8"; - this.label8.Size = new System.Drawing.Size(175, 20); - this.label8.TabIndex = 59; - this.label8.Text = "World/NAT Address :"; - // - // label9 - // - this.label9.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, ((System.Drawing.FontStyle)((System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Underline))), System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.label9.Location = new System.Drawing.Point(633, 27); - this.label9.Name = "label9"; - this.label9.Size = new System.Drawing.Size(47, 20); - this.label9.TabIndex = 60; - this.label9.Text = "Path :"; - this.label9.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - // - // exeBox1 - // - this.exeBox1.Location = new System.Drawing.Point(530, 27); - this.exeBox1.Name = "exeBox1"; - this.exeBox1.Size = new System.Drawing.Size(100, 20); - this.exeBox1.TabIndex = 61; - this.exeBox1.Text = "Secondlife.exe"; - // - // label10 - // - this.label10.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, ((System.Drawing.FontStyle)((System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Underline))), System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.label10.Location = new System.Drawing.Point(392, 27); - this.label10.Name = "label10"; - this.label10.Size = new System.Drawing.Size(138, 20); - this.label10.TabIndex = 62; - this.label10.Text = "Executable Name :"; - this.label10.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - // - // label11 - // - this.label11.AutoSize = true; - this.label11.Location = new System.Drawing.Point(514, 306); - this.label11.Name = "label11"; - this.label11.Size = new System.Drawing.Size(32, 13); - this.label11.TabIndex = 89; - this.label11.Text = "First :"; - // - // label12 - // - this.label12.AutoSize = true; - this.label12.Location = new System.Drawing.Point(632, 306); - this.label12.Name = "label12"; - this.label12.Size = new System.Drawing.Size(33, 13); - this.label12.TabIndex = 90; - this.label12.Text = "Last :"; - // - // label13 - // - this.label13.AutoSize = true; - this.label13.Location = new System.Drawing.Point(751, 306); - this.label13.Name = "label13"; - this.label13.Size = new System.Drawing.Size(36, 13); - this.label13.TabIndex = 91; - this.label13.Text = "Pass :"; - // - // Main - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(900, 431); - this.Controls.Add(this.clear1); - this.Controls.Add(this.rawBox1); - this.Controls.Add(this.raw1); - this.Controls.Add(this.passBox1); - this.Controls.Add(this.lastBox1); - this.Controls.Add(this.label13); - this.Controls.Add(this.label12); - this.Controls.Add(this.label11); - this.Controls.Add(this.firstBox1); - this.Controls.Add(this.skinBox1); - this.Controls.Add(this.errmaskBox1); - this.Controls.Add(this.login1); - this.Controls.Add(this.skin1); - this.Controls.Add(this.errmask1); - this.Controls.Add(this.setBox1); - this.Controls.Add(this.set1); - this.Controls.Add(this.loginuriBox1); - this.Controls.Add(this.loginuri1); - this.Controls.Add(this.comboBox1); - this.Controls.Add(this.quitafterBox1); - this.Controls.Add(this.techtagBox1); - this.Controls.Add(this.yieldBox1); - this.Controls.Add(this.logfileBox1); - this.Controls.Add(this.settingsBox1); - this.Controls.Add(this.outbwBox1); - this.Controls.Add(this.inbwBox1); - this.Controls.Add(this.dropBox1); - this.Controls.Add(this.portBox1); - this.Controls.Add(this.simBox1); - this.Controls.Add(this.label10); - this.Controls.Add(this.exeBox1); - this.Controls.Add(this.label9); - this.Controls.Add(this.label8); - this.Controls.Add(this.nataddress1); - this.Controls.Add(this.purge1); - this.Controls.Add(this.nosound1); - this.Controls.Add(this.logfile1); - this.Controls.Add(this.settings1); - this.Controls.Add(this.outbw1); - this.Controls.Add(this.inbw1); - this.Controls.Add(this.drop1); - this.Controls.Add(this.port1); - this.Controls.Add(this.yield1); - this.Controls.Add(this.techTag1); - this.Controls.Add(this.local1); - this.Controls.Add(this.nofmod1); - this.Controls.Add(this.noaudio1); - this.Controls.Add(this.url1); - this.Controls.Add(this.user1); - this.Controls.Add(this.quitAfter1); - this.Controls.Add(this.korean1); - this.Controls.Add(this.spanish1); - this.Controls.Add(this.debugst1); - this.Controls.Add(this.noutc1); - this.Controls.Add(this.noinvlib1); - this.Controls.Add(this.simple1); - this.Controls.Add(this.previous1); - this.Controls.Add(this.dialog1); - this.Controls.Add(this.autologin1); - this.Controls.Add(this.helperuri1); - this.Controls.Add(this.log1); - this.Controls.Add(this.noconsole1); - this.Controls.Add(this.safe1); - this.Controls.Add(this.nothread1); - this.Controls.Add(this.ignorepixeldepth1); - this.Controls.Add(this.noMultiple1); - this.Controls.Add(this.label7); - this.Controls.Add(this.multiple1); - this.Controls.Add(this.label6); - this.Controls.Add(this.noProbe1); - this.Controls.Add(this.label5); - this.Controls.Add(this.Launch1); - this.Controls.Add(this.clientBox1); - this.Controls.Add(this.rbGridServer); - this.Controls.Add(this.rbStandAloneMode); - this.Controls.Add(this.rbGridRegionMode); - this.Controls.Add(this.btnStop); - this.Controls.Add(this.btnStart); - this.Controls.Add(this.gbLog); - this.Controls.Add(this.menuStrip1); - this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.Fixed3D; - this.MainMenuStrip = this.menuStrip1; - this.MaximizeBox = false; - this.Name = "Main"; - this.Text = "OpenSim"; - this.toolTip1.SetToolTip(this, "logs in local time, not UTC"); - this.Load += new System.EventHandler(this.Main_Load); - this.menuStrip1.ResumeLayout(false); - this.menuStrip1.PerformLayout(); - this.gbLog.ResumeLayout(false); - this.tabLogs.ResumeLayout(false); - this.tabMainLog.ResumeLayout(false); - this.tabMainLog.PerformLayout(); - this.tabRegionServer.ResumeLayout(false); - this.tabRegionServer.PerformLayout(); - this.tabUserServer.ResumeLayout(false); - this.tabUserServer.PerformLayout(); - this.tabAssetServer.ResumeLayout(false); - this.tabAssetServer.PerformLayout(); - this.tabGridServer.ResumeLayout(false); - this.tabGridServer.PerformLayout(); - this.ResumeLayout(false); - this.PerformLayout(); - - } - - #endregion - - private System.Windows.Forms.MenuStrip menuStrip1; - private System.Windows.Forms.ToolStripMenuItem fileToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem exitToolStripMenuItem; - private System.Windows.Forms.Timer timer1; - private System.Windows.Forms.TextBox clientBox1; - private System.Windows.Forms.Button btnStart; - private System.Windows.Forms.Button btnStop; - private System.Windows.Forms.RadioButton rbGridRegionMode; - private System.Windows.Forms.RadioButton rbStandAloneMode; - private System.Windows.Forms.RadioButton rbGridServer; - private System.Windows.Forms.Button Launch1; - private System.Windows.Forms.GroupBox gbLog; - private System.Windows.Forms.TabControl tabLogs; - private System.Windows.Forms.TabPage tabMainLog; - private System.Windows.Forms.TabPage tabRegionServer; - private System.Windows.Forms.Label label1; - private System.Windows.Forms.TextBox txtOpenSim; - private System.Windows.Forms.TabPage tabUserServer; - private System.Windows.Forms.Label label2; - private System.Windows.Forms.TextBox txtUserServer; - private System.Windows.Forms.TabPage tabAssetServer; - private System.Windows.Forms.Label label3; - private System.Windows.Forms.TextBox txtAssetServer; - private System.Windows.Forms.TabPage tabGridServer; - private System.Windows.Forms.Label label4; - private System.Windows.Forms.TextBox txtGridServer; - private System.Windows.Forms.TextBox txtMainLog; - private System.Windows.Forms.Label label5; - private System.Windows.Forms.CheckBox noProbe1; - private System.Windows.Forms.Label label6; - private System.Windows.Forms.CheckBox multiple1; - private System.Windows.Forms.Label label7; - private System.Windows.Forms.CheckBox noMultiple1; - private System.Windows.Forms.CheckBox ignorepixeldepth1; - private System.Windows.Forms.CheckBox nothread1; - private System.Windows.Forms.CheckBox safe1; - private System.Windows.Forms.CheckBox noconsole1; - private System.Windows.Forms.CheckBox log1; - private System.Windows.Forms.CheckBox helperuri1; - private System.Windows.Forms.CheckBox autologin1; - private System.Windows.Forms.ToolTip toolTip1; - private System.Windows.Forms.CheckBox dialog1; - private System.Windows.Forms.CheckBox previous1; - private System.Windows.Forms.CheckBox simple1; - private System.Windows.Forms.CheckBox noinvlib1; - private System.Windows.Forms.CheckBox noutc1; - private System.Windows.Forms.CheckBox debugst1; - private System.Windows.Forms.CheckBox spanish1; - private System.Windows.Forms.CheckBox korean1; - private System.Windows.Forms.CheckBox local1; - private System.Windows.Forms.CheckBox nofmod1; - private System.Windows.Forms.CheckBox noaudio1; - private System.Windows.Forms.CheckBox url1; - private System.Windows.Forms.CheckBox user1; - private System.Windows.Forms.CheckBox quitAfter1; - private System.Windows.Forms.CheckBox techTag1; - private System.Windows.Forms.CheckBox yield1; - private System.Windows.Forms.CheckBox purge1; - private System.Windows.Forms.CheckBox nosound1; - private System.Windows.Forms.CheckBox logfile1; - private System.Windows.Forms.CheckBox settings1; - private System.Windows.Forms.CheckBox outbw1; - private System.Windows.Forms.CheckBox inbw1; - private System.Windows.Forms.CheckBox drop1; - private System.Windows.Forms.CheckBox port1; - private System.Windows.Forms.TextBox nataddress1; - private System.Windows.Forms.Label label8; - private System.Windows.Forms.Label label9; - private System.Windows.Forms.TextBox exeBox1; - private System.Windows.Forms.Label label10; - private System.Windows.Forms.TextBox simBox1; - private System.Windows.Forms.TextBox portBox1; - private System.Windows.Forms.TextBox dropBox1; - private System.Windows.Forms.TextBox inbwBox1; - private System.Windows.Forms.TextBox outbwBox1; - private System.Windows.Forms.TextBox settingsBox1; - private System.Windows.Forms.TextBox logfileBox1; - private System.Windows.Forms.TextBox yieldBox1; - private System.Windows.Forms.TextBox techtagBox1; - private System.Windows.Forms.TextBox quitafterBox1; - private System.Windows.Forms.ComboBox comboBox1; - private System.Windows.Forms.CheckBox loginuri1; - private System.Windows.Forms.TextBox loginuriBox1; - private System.Windows.Forms.CheckBox set1; - private System.Windows.Forms.TextBox setBox1; - private System.Windows.Forms.CheckBox errmask1; - private System.Windows.Forms.CheckBox skin1; - private System.Windows.Forms.CheckBox login1; - private System.Windows.Forms.TextBox errmaskBox1; - private System.Windows.Forms.TextBox skinBox1; - private System.Windows.Forms.TextBox firstBox1; - private System.Windows.Forms.Label label11; - private System.Windows.Forms.Label label12; - private System.Windows.Forms.Label label13; - private System.Windows.Forms.TextBox lastBox1; - private System.Windows.Forms.TextBox passBox1; - private InputTextBoxControl txtInputUserServer; - private InputTextBoxControl txtInputAssetServer; - private InputTextBoxControl txtInputRegionServer; - private InputTextBoxControl txtInputGridServer; - private System.Windows.Forms.CheckBox raw1; - private System.Windows.Forms.TextBox rawBox1; - private System.Windows.Forms.Button clear1; - } -} diff --git a/OpenSim/Tools/OpenSim.GUI/Main.cs b/OpenSim/Tools/OpenSim.GUI/Main.cs deleted file mode 100644 index 9467312..0000000 --- a/OpenSim/Tools/OpenSim.GUI/Main.cs +++ /dev/null @@ -1,536 +0,0 @@ -/* - * Copyright (c) Contributors, http://opensimulator.org/ - * See CONTRIBUTORS.TXT for a full list of copyright holders. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * * Neither the name of the OpenSim Project nor the - * names of its contributors may be used to endorse or promote products - * derived from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Text; -using System.Windows.Forms; - -namespace OpenSim.GUI -{ - public partial class Main : Form - { - - public ProcessManager proc_OpenSim; - public ProcessManager proc_UserServer; - public ProcessManager proc_GridServer; - public ProcessManager proc_AssetServer; - - public Main() - { - InitializeComponent(); - } - - private void Main_Load(object sender, EventArgs e) - { - txtInputUserServer.KeyPress += new KeyPressEventHandler(txtInputUserServer_KeyPress); - txtInputGridServer.KeyPress += new KeyPressEventHandler(txtInputGridServer_KeyPress); - txtInputAssetServer.KeyPress += new KeyPressEventHandler(txtInputAssetServer_KeyPress); - txtInputRegionServer.KeyPress += new KeyPressEventHandler(txtInputRegionServer_KeyPress); - - tabLogs.Selected += new TabControlEventHandler(tabLogs_Selected); - - UpdateTabVisibility(); - } - - void tabLogs_Selected(object sender, TabControlEventArgs e) - { - if (e.TabPage == tabUserServer) - txtInputUserServer.Focus(); - if (e.TabPage == tabGridServer) - txtInputGridServer.Focus(); - if (e.TabPage == tabAssetServer) - txtInputAssetServer.Focus(); - if (e.TabPage == tabRegionServer) - txtInputRegionServer.Focus(); - } - - void txtInputUserServer_KeyPress(object sender, KeyPressEventArgs e) - { - - if (e.KeyChar == 13) - { - // We got a command - e.Handled = true; - proc_UserServer.StandardInput.WriteLine(txtInputUserServer.Text + "\r\n"); - txtInputUserServer.Text = ""; - } - } - - void txtInputGridServer_KeyPress(object sender, KeyPressEventArgs e) - { - if (e.KeyChar == 13) - { - // We got a command - e.Handled = true; - proc_GridServer.StandardInput.WriteLine(txtInputGridServer.Text + "\r\n"); - txtInputGridServer.Text = ""; - } - } - - void txtInputAssetServer_KeyPress(object sender, KeyPressEventArgs e) - { - if (e.KeyChar == 13) - { - // We got a command - e.Handled = true; - proc_AssetServer.StandardInput.WriteLine(txtInputAssetServer.Text + "\r\n"); - txtInputAssetServer.Text = ""; - } - } - - void txtInputRegionServer_KeyPress(object sender, KeyPressEventArgs e) - { - if (e.KeyChar == 13) - { - // We got a command - e.Handled = true; - proc_OpenSim.StandardInput.WriteLine(txtInputRegionServer.Text + "\r\n"); - txtInputRegionServer.Text = ""; - } - } - - private void btnStart_Click(object sender, EventArgs e) - { - noProbe1.Checked = true; - multiple1.Checked = true; - loginuri1.Checked = true; - login1.Checked = true; - // - // THIS PART NEEDS TO BE MOVED TO A SEPARATE THREAD OR A TIMER OF SOME SORT - // should not block on wait - // ALSO - IF SOME SERVICES ARE NOT CONFIGURED, POP UP CONFIGURATION BOX FOR THAT SERVICE! - // - - btnStart.Enabled = false; - btnStop.Enabled = false; - - - - if (rbGridServer.Checked) - { - // Start UserServer - proc_UserServer = new ProcessManager("OpenSim.Grid.UserServer.exe", ""); - txtMainLog.AppendText("Starting: User server" + "\r\n"); - proc_UserServer.OutputDataReceived += new System.Diagnostics.DataReceivedEventHandler(proc_UserServer_DataReceived); - proc_UserServer.ErrorDataReceived += new System.Diagnostics.DataReceivedEventHandler(proc_UserServer_DataReceived); - proc_UserServer.StartProcess(); - System.Threading.Thread.Sleep(3000); - - // Start GridServer - proc_GridServer = new ProcessManager("OpenSim.Grid.GridServer.exe", ""); - txtMainLog.AppendText("Starting: Grid server" + "\r\n"); - proc_GridServer.OutputDataReceived += new System.Diagnostics.DataReceivedEventHandler(proc_GridServer_DataReceived); - proc_GridServer.ErrorDataReceived += new System.Diagnostics.DataReceivedEventHandler(proc_GridServer_DataReceived); - proc_GridServer.StartProcess(); - System.Threading.Thread.Sleep(3000); - - // Start AssetServer - proc_AssetServer = new ProcessManager("OpenSim.Grid.AssetServer.exe", ""); - txtMainLog.AppendText("Starting: Asset server" + "\r\n"); - proc_AssetServer.OutputDataReceived += new System.Diagnostics.DataReceivedEventHandler(proc_AssetServer_DataReceived); - proc_AssetServer.ErrorDataReceived += new System.Diagnostics.DataReceivedEventHandler(proc_AssetServer_DataReceived); - proc_AssetServer.StartProcess(); - System.Threading.Thread.Sleep(3000); - } - - // Start OpenSim - string p = ""; - if (rbGridServer.Checked) - p = "-gridmode=true"; - - proc_OpenSim = new ProcessManager("OpenSim.EXE", p); - txtMainLog.AppendText("Starting: OpenSim (Region server)" + "\r\n"); - proc_OpenSim.OutputDataReceived += new System.Diagnostics.DataReceivedEventHandler(proc_OpenSim_DataReceived); - proc_OpenSim.ErrorDataReceived += new System.Diagnostics.DataReceivedEventHandler(proc_OpenSim_DataReceived); - proc_OpenSim.StartProcess(); - - btnStart.Enabled = false; - btnStop.Enabled = true; - - } - public delegate void AppendText(string Text); - void proc_UserServer_DataReceived(object sender, System.Diagnostics.DataReceivedEventArgs e) - { - this.Invoke(new AppendText(txtUserServer.AppendText), new object[] { e.Data + "\r\n" }); - this.Invoke(new AppendText(txtMainLog.AppendText), new object[] { "UserServer: " + e.Data + "\r\n" }); - } - void proc_GridServer_DataReceived(object sender, System.Diagnostics.DataReceivedEventArgs e) - { - this.Invoke(new AppendText(txtGridServer.AppendText), new object[] { e.Data + "\r\n" }); - this.Invoke(new AppendText(txtMainLog.AppendText), new object[] { "GridServer: " + e.Data + "\r\n" }); - } - void proc_AssetServer_DataReceived(object sender, System.Diagnostics.DataReceivedEventArgs e) - { - this.Invoke(new AppendText(txtAssetServer.AppendText), new object[] { e.Data + "\r\n" }); - this.Invoke(new AppendText(txtMainLog.AppendText), new object[] { "AssetServer: " + e.Data + "\r\n" }); - } - void proc_OpenSim_DataReceived(object sender, System.Diagnostics.DataReceivedEventArgs e) - { - this.Invoke(new AppendText(txtOpenSim.AppendText), new object[] { e.Data + "\r\n" }); - this.Invoke(new AppendText(txtMainLog.AppendText), new object[] { "OpenSim: " + e.Data + "\r\n" }); - } - - private void btnStop_Click(object sender, EventArgs e) - { - btnStart.Enabled = false; - btnStop.Enabled = false; - Stop(); - btnStart.Enabled = true; - btnStop.Enabled = false; - } - - private void clear1_Click(object sender, EventArgs e) - { - noProbe1.Checked = false; multiple1.Checked = false; loginuri1.Checked = false; - noMultiple1.Checked = false; korean1.Checked = false; spanish1.Checked = false; - ignorepixeldepth1.Checked = false; nothread1.Checked = false; safe1.Checked = false; - noconsole1.Checked = false; log1.Checked = false; helperuri1.Checked = false; - autologin1.Checked = false; dialog1.Checked = false; previous1.Checked = false; - simple1.Checked = false; noinvlib1.Checked = false; noutc1.Checked = false; - debugst1.Checked = false; local1.Checked = false; purge1.Checked = false; - nofmod1.Checked = false; nosound1.Checked = false; noaudio1.Checked = false; - url1.Checked = false; port1.Checked = false; drop1.Checked = false; - inbw1.Checked = false; outbw1.Checked = false; settings1.Checked = false; - logfile1.Checked = false; yield1.Checked = false; techTag1.Checked = false; - quitAfter1.Checked = false; loginuri1.Checked = false; set1.Checked = false; - errmask1.Checked = false; raw1.Checked = false; skin1.Checked = false; - user1.Checked = false; login1.Checked = false; - } - - private void Stop() - { - if (proc_UserServer != null) - { - txtMainLog.AppendText("Shutting down UserServer. CPU time used: " + proc_UserServer.TotalProcessorTime.ToString() + "\r\n"); - proc_UserServer.StopProcess(); - proc_UserServer = null; - } - if (proc_GridServer != null) - { - txtMainLog.AppendText("Shutting down GridServer. CPU time used: " + proc_GridServer.TotalProcessorTime.ToString() + "\r\n"); - proc_GridServer.StopProcess(); - proc_GridServer = null; - } - if (proc_AssetServer != null) - { - txtMainLog.AppendText("Shutting down AssetServer. CPU time used: " + proc_AssetServer.TotalProcessorTime.ToString() + "\r\n"); - proc_AssetServer.StopProcess(); - proc_AssetServer = null; - } - if (proc_OpenSim != null) - { - txtMainLog.AppendText("Shutting down OpenSim. CPU time used: " + proc_OpenSim.TotalProcessorTime.ToString() + "\r\n"); - proc_OpenSim.StopProcess(); - proc_OpenSim = null; - } - } - private void UpdateTabVisibility() - { - if (rbStandAloneMode.Checked) - { - if (tabLogs.TabPages.Contains(tabUserServer)) - tabLogs.TabPages.Remove(tabUserServer); - if (tabLogs.TabPages.Contains(tabGridServer)) - tabLogs.TabPages.Remove(tabGridServer); - if (tabLogs.TabPages.Contains(tabAssetServer)) - tabLogs.TabPages.Remove(tabAssetServer); - } - else - { - if (!tabLogs.TabPages.Contains(tabUserServer)) - tabLogs.TabPages.Add(tabUserServer); - if (!tabLogs.TabPages.Contains(tabGridServer)) - tabLogs.TabPages.Add(tabGridServer); - if (!tabLogs.TabPages.Contains(tabAssetServer)) - tabLogs.TabPages.Add(tabAssetServer); - } - } - - private void rbStandAloneMode_CheckedChanged(object sender, EventArgs e) - { - UpdateTabVisibility(); - } - - private void rbGridRegionMode_CheckedChanged(object sender, EventArgs e) - { - UpdateTabVisibility(); - } - - private void rbGridServer_CheckedChanged(object sender, EventArgs e) - { - UpdateTabVisibility(); - } - - private int counter; - - private void Exit() - { - counter = 0; - timer1.Interval = 600; - timer1.Enabled = true; - this.timer1.Tick += new System.EventHandler(this.timer1_Tick); - } - - private void timer1_Tick(object sender, System.EventArgs e) - { - if (counter >= 10) - { - timer1.Enabled = false; - counter = 0; - Application.Exit(); - } - else - { - counter = counter + 1; - } - } - - private void exitToolStripMenuItem_Click(object sender, EventArgs e) - { - if (proc_UserServer != null || proc_GridServer != null || proc_AssetServer != null || proc_OpenSim != null) - { - label6.Text = "Stopping server(s) and waiting to safely close.............."; - Stop(); - Exit(); - } - else - { - Application.Exit(); - } - } - /// - /// CLIENT SECTION - /// - string exeString; - string exeArgs; - string usrsvr; - string error = "Reconsider your commandline choices, you have opposing values selected!"; - - private void label6_Click(object sender, EventArgs e) - { - label6.Text = clientBox1.Text; - } - private void errorSwitches() - { - MessageBox.Show(error); - label6.Text = error; - } - bool exists; - private void Launch1_Click(object sender, EventArgs e) - { - if (exists = System.IO.File.Exists(clientBox1.Text + exeBox1.Text)) - { - executeClient(); - } - else - { - MessageBox.Show("FILE DOES NOT EXIST!!!"); - label6.Text = "FILE DOES NOT EXIST!!!"; - } - } - private void NATfix() - { - } - private void executeClient() - { - label6.Text = ""; - exeArgs = ""; - exeString = clientBox1.Text; - exeString = exeString += exeBox1.Text; - - if (multiple1.Checked == true && noMultiple1.Checked == true) errorSwitches(); - else if (korean1.Checked == true && spanish1.Checked == true) errorSwitches(); - else - { - if (noProbe1.Checked == true) exeArgs = exeArgs += " -noprobe"; - if (multiple1.Checked == true) exeArgs = exeArgs += " -multiple"; - if (noMultiple1.Checked == true) exeArgs = exeArgs += " -nomultiple"; - if (korean1.Checked == true) exeArgs = exeArgs += " -korean"; - if (spanish1.Checked == true) exeArgs = exeArgs += " -spanish"; - if (ignorepixeldepth1.Checked == true) exeArgs = exeArgs += " -ignorepixeldepth"; - if (nothread1.Checked == true) exeArgs = exeArgs += " -nothread"; - if (safe1.Checked == true) exeArgs = exeArgs += " -safe"; - if (noconsole1.Checked == true) exeArgs = exeArgs += " -noconsole"; - if (log1.Checked == true) exeArgs = exeArgs += " -log"; - if (helperuri1.Checked == true) exeArgs = exeArgs += " -helperuri"; - if (autologin1.Checked == true) exeArgs = exeArgs += " --autologin"; - if (dialog1.Checked == true) exeArgs = exeArgs += " -dialog"; - if (previous1.Checked == true) exeArgs = exeArgs += " -previous"; - if (simple1.Checked == true) exeArgs = exeArgs += " -simple"; - if (noinvlib1.Checked == true) exeArgs = exeArgs += " -noinvlib"; - if (noutc1.Checked == true) exeArgs = exeArgs += " -noutc"; - if (debugst1.Checked == true) exeArgs = exeArgs += " -debugst"; - if (local1.Checked == true) exeArgs = exeArgs += " -local"; - if (purge1.Checked == true) exeArgs = exeArgs += " -purge"; - if (nofmod1.Checked == true) exeArgs = exeArgs += " -nofmod"; - if (nosound1.Checked == true) exeArgs = exeArgs += " -nosound"; - if (noaudio1.Checked == true) exeArgs = exeArgs += " -noaudio"; - if (url1.Checked == true) - { - exeArgs = exeArgs += " -url "; - exeArgs = exeArgs += simBox1.Text; - } - if (port1.Checked == true) - { - int aPort; - aPort = Convert.ToInt32(portBox1.Text); - if (aPort > 13050) - { - portBox1.Text = "13050"; - MessageBox.Show("Enter Usable port number, defaulting to 13050."); - } - if (aPort < 13000) - { - portBox1.Text = "13000"; - MessageBox.Show("Enter Usable port number, defaulting to 13000."); - } - else - { - } - exeArgs = exeArgs += " -port "; - exeArgs = exeArgs += portBox1.Text; - } - if (drop1.Checked == true) - { - int aPct; - aPct = Convert.ToInt32(dropBox1.Text); - if (aPct > 100) - { - dropBox1.Text = "100"; - MessageBox.Show("Enter Usable port number, defaulting to 100."); - } - if (aPct < 0) - { - dropBox1.Text = "0"; - MessageBox.Show("Enter Usable port number, defaulting to 0."); - } - else - { - } - exeArgs = exeArgs += " -drop "; - exeArgs = exeArgs += dropBox1.Text; - } - if (inbw1.Checked == true) - { - exeArgs = exeArgs += " -inbw "; - exeArgs = exeArgs += inbwBox1.Text; - } - if (outbw1.Checked == true) - { - exeArgs = exeArgs += " -outbw "; - exeArgs = exeArgs += outbwBox1.Text; - } - if (settings1.Checked == true) - { - exeArgs = exeArgs += " -settings "; - exeArgs = exeArgs += settingsBox1.Text; - } - if (logfile1.Checked == true) - { - exeArgs = exeArgs += " -logfile "; - exeArgs = exeArgs += logfileBox1.Text; - } - if (yield1.Checked == true) - { - exeArgs = exeArgs += " -yield "; - exeArgs = exeArgs += yieldBox1.Text; - } - if (techTag1.Checked == true) - { - exeArgs = exeArgs += " -techtag "; - exeArgs = exeArgs += techtagBox1.Text; - } - if (quitAfter1.Checked == true) - { - exeArgs = exeArgs += " -quitafter "; - exeArgs = exeArgs += quitafterBox1.Text; - } - if (loginuri1.Checked == true) - { - exeArgs = exeArgs += " -loginuri "; - exeArgs = exeArgs += loginuriBox1.Text; - } - if (set1.Checked == true) - { - exeArgs = exeArgs += " -set "; - exeArgs = exeArgs += setBox1.Text; - } - if (errmask1.Checked == true) - { - exeArgs = exeArgs += " -errmask "; - exeArgs = exeArgs += errmaskBox1.Text; - } - if (raw1.Checked == true) - { - exeArgs = exeArgs += " " + rawBox1.Text; - } - if (skin1.Checked == true) - { - bool exists; - if (exists = System.IO.File.Exists(skinBox1.Text + "skin.xml")) - { - exeArgs = exeArgs += " -skin "; - exeArgs = exeArgs += skinBox1.Text + "skin.xml"; - } - else - { - MessageBox.Show("SKIN FILE DOES NOT EXIST AT SPECIFIED LOCATION!!!"); - skin1.Checked = false; - executeClient(); - } - } - if (user1.Checked == true) - { - //find actual login urls - if (comboBox1.Text == "agni") { usrsvr = " -user " + "--agni"; } - if (comboBox1.Text == "colo") { usrsvr = " -user " + "--colo"; } - if (comboBox1.Text == "dmz") { usrsvr = " -user " + "--dmz"; } - if (comboBox1.Text == "durga") { usrsvr = " -user " + "--Durga"; } - if (comboBox1.Text == "siva") { usrsvr = " -user " + "--siva"; } - exeArgs = exeArgs += usrsvr; - } - if (login1.Checked == true) - { - exeArgs = exeArgs += " -login "; - exeArgs = exeArgs += firstBox1.Text + " " + lastBox1.Text + " " + passBox1.Text; - } - label6.Text = exeString + exeArgs; - System.Diagnostics.Process proc = new System.Diagnostics.Process(); - proc.StartInfo.FileName = exeString; - proc.StartInfo.Arguments = exeArgs; - proc.StartInfo.UseShellExecute = false; - proc.StartInfo.RedirectStandardOutput = false; - proc.StartInfo.WorkingDirectory = clientBox1.Text; - proc.Start(); - } - } - } -} diff --git a/OpenSim/Tools/OpenSim.GUI/Main.resx b/OpenSim/Tools/OpenSim.GUI/Main.resx deleted file mode 100644 index 517179d..0000000 --- a/OpenSim/Tools/OpenSim.GUI/Main.resx +++ /dev/null @@ -1,135 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 17, 17 - - - 126, 17 - - - 209, 17 - - - 209, 17 - - - 39 - - diff --git a/OpenSim/Tools/OpenSim.GUI/OpenSim.GUI.csproj b/OpenSim/Tools/OpenSim.GUI/OpenSim.GUI.csproj deleted file mode 100644 index e722fec..0000000 --- a/OpenSim/Tools/OpenSim.GUI/OpenSim.GUI.csproj +++ /dev/null @@ -1,94 +0,0 @@ - - - Debug - AnyCPU - 8.0.50727 - 2.0 - {78AEEDD5-4DA8-4E05-8D53-F3C5476A0B97} - WinExe - Properties - OpenSim.GUI - OpenSim.GUI - - - true - full - false - ..\..\..\bin\ - DEBUG;TRACE - prompt - 4 - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - - - - - - - - - - Form - - - frmConfiguration.cs - - - Component - - - Form - - - Main.cs - - - Component - - - - - Designer - frmConfiguration.cs - - - Designer - Main.cs - - - ResXFileCodeGenerator - Resources.Designer.cs - Designer - - - True - Resources.resx - - - SettingsSingleFileGenerator - Settings.Designer.cs - - - True - Settings.settings - True - - - - - \ No newline at end of file diff --git a/OpenSim/Tools/OpenSim.GUI/ProcessManager.cs b/OpenSim/Tools/OpenSim.GUI/ProcessManager.cs deleted file mode 100644 index de693a7..0000000 --- a/OpenSim/Tools/OpenSim.GUI/ProcessManager.cs +++ /dev/null @@ -1,98 +0,0 @@ -/* - * Copyright (c) Contributors, http://opensimulator.org/ - * See CONTRIBUTORS.TXT for a full list of copyright holders. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * * Neither the name of the OpenSim Project nor the - * names of its contributors may be used to endorse or promote products - * derived from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -using System; -using System.Collections.Generic; -using System.Text; -using System.Diagnostics; - -namespace OpenSim.GUI -{ - public class ProcessManager : Process - { - private string m_FileName; - private string m_Arguments; - public ProcessManager(string FileName,string Arguments) - { - m_FileName = FileName; - m_Arguments = Arguments; - -// MyProc = new Process(); - StartInfo.WorkingDirectory = AppDomain.CurrentDomain.BaseDirectory; - Console.WriteLine("WorkingDirectory: " + StartInfo.WorkingDirectory); - StartInfo.FileName = m_FileName; - - //p.StartInfo.Arguments = ""; - StartInfo.UseShellExecute = false; - StartInfo.RedirectStandardError = true; - StartInfo.RedirectStandardInput = true; - StartInfo.RedirectStandardOutput = true; - StartInfo.CreateNoWindow = true; - - - - } - - public void StartProcess() - { - try - { - Start(); - BeginOutputReadLine(); - BeginErrorReadLine(); - } - catch (Exception ex) - { - Console.WriteLine("Exception Occurred :{0},{1}", - ex.Message, ex.StackTrace.ToString()); - } - } - public void StopProcess() - { - try - { - CancelErrorRead(); - CancelErrorRead(); - if (!HasExited) - { - StandardInput.WriteLine("quit"); - StandardInput.WriteLine("shutdown"); - System.Threading.Thread.Sleep(500); - if (!HasExited) - { - Kill(); - } - } - } - catch (Exception ex) - { - Console.WriteLine("Exception Occurred :{0},{1}", - ex.Message, ex.StackTrace.ToString()); - } - } - } -} diff --git a/OpenSim/Tools/OpenSim.GUI/Program.cs b/OpenSim/Tools/OpenSim.GUI/Program.cs deleted file mode 100644 index c41cfb7..0000000 --- a/OpenSim/Tools/OpenSim.GUI/Program.cs +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Copyright (c) Contributors, http://opensimulator.org/ - * See CONTRIBUTORS.TXT for a full list of copyright holders. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * * Neither the name of the OpenSim Project nor the - * names of its contributors may be used to endorse or promote products - * derived from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -using System; -using System.Collections.Generic; -using System.Windows.Forms; - -namespace OpenSim.GUI -{ - static class Program - { - /// - /// The main entry point for the application. - /// - [STAThread] - static void Main() - { - Application.EnableVisualStyles(); - Application.SetCompatibleTextRenderingDefault(false); - Application.Run(new Main()); - } - } -} diff --git a/OpenSim/Tools/OpenSim.GUI/Properties/AssemblyInfo.cs b/OpenSim/Tools/OpenSim.GUI/Properties/AssemblyInfo.cs deleted file mode 100644 index 8d4b3f5..0000000 --- a/OpenSim/Tools/OpenSim.GUI/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Copyright (c) Contributors, http://opensimulator.org/ - * See CONTRIBUTORS.TXT for a full list of copyright holders. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * * Neither the name of the OpenSim Project nor the - * names of its contributors may be used to endorse or promote products - * derived from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("OpenSim.GUI")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("OpenSim.GUI")] -[assembly: AssemblyCopyright("Copyright (c) 2007")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("c8dbda49-66bd-476b-93b3-71774870b73e")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/OpenSim/Tools/OpenSim.GUI/Properties/Resources.Designer.cs b/OpenSim/Tools/OpenSim.GUI/Properties/Resources.Designer.cs deleted file mode 100644 index 6209553..0000000 --- a/OpenSim/Tools/OpenSim.GUI/Properties/Resources.Designer.cs +++ /dev/null @@ -1,95 +0,0 @@ -/* - * Copyright (c) Contributors, http://opensimulator.org/ - * See CONTRIBUTORS.TXT for a full list of copyright holders. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * * Neither the name of the OpenSim Project nor the - * names of its contributors may be used to endorse or promote products - * derived from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:2.0.50727.312 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace OpenSim.GUI.Properties -{ - /// - /// A strongly-typed resource class, for looking up localized strings, etc. - /// - // This class was auto-generated by the StronglyTypedResourceBuilder - // class via a tool like ResGen or Visual Studio. - // To add or remove a member, edit your .ResX file then rerun ResGen - // with the /str option, or rebuild your VS project. - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "2.0.0.0")] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - internal class Resources - { - private static global::System.Resources.ResourceManager resourceMan; - - private static global::System.Globalization.CultureInfo resourceCulture; - - [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] - internal Resources() - { - } - - /// - /// Returns the cached ResourceManager instance used by this class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Resources.ResourceManager ResourceManager - { - get - { - if ((resourceMan == null)) - { - global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("OpenSim.GUI.Properties.Resources", typeof(Resources).Assembly); - resourceMan = temp; - } - return resourceMan; - } - } - - /// - /// Overrides the current thread's CurrentUICulture property for all - /// resource lookups using this strongly typed resource class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Globalization.CultureInfo Culture - { - get - { - return resourceCulture; - } - set - { - resourceCulture = value; - } - } - } -} diff --git a/OpenSim/Tools/OpenSim.GUI/Properties/Resources.resx b/OpenSim/Tools/OpenSim.GUI/Properties/Resources.resx deleted file mode 100644 index af7dbeb..0000000 --- a/OpenSim/Tools/OpenSim.GUI/Properties/Resources.resx +++ /dev/null @@ -1,117 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/OpenSim/Tools/OpenSim.GUI/Properties/Settings.Designer.cs b/OpenSim/Tools/OpenSim.GUI/Properties/Settings.Designer.cs deleted file mode 100644 index ec80a6f..0000000 --- a/OpenSim/Tools/OpenSim.GUI/Properties/Settings.Designer.cs +++ /dev/null @@ -1,54 +0,0 @@ -/* - * Copyright (c) Contributors, http://opensimulator.org/ - * See CONTRIBUTORS.TXT for a full list of copyright holders. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * * Neither the name of the OpenSim Project nor the - * names of its contributors may be used to endorse or promote products - * derived from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:2.0.50727.312 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace OpenSim.GUI.Properties -{ - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "8.0.0.0")] - internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase - { - private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); - - public static Settings Default - { - get - { - return defaultInstance; - } - } - } -} diff --git a/OpenSim/Tools/OpenSim.GUI/Properties/Settings.settings b/OpenSim/Tools/OpenSim.GUI/Properties/Settings.settings deleted file mode 100644 index 3964565..0000000 --- a/OpenSim/Tools/OpenSim.GUI/Properties/Settings.settings +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/OpenSim/Tools/OpenSim.GUI/frmConfiguration.Designer.cs b/OpenSim/Tools/OpenSim.GUI/frmConfiguration.Designer.cs deleted file mode 100644 index 4665dd9..0000000 --- a/OpenSim/Tools/OpenSim.GUI/frmConfiguration.Designer.cs +++ /dev/null @@ -1,88 +0,0 @@ -/* - * Copyright (c) Contributors, http://opensimulator.org/ - * See CONTRIBUTORS.TXT for a full list of copyright holders. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * * Neither the name of the OpenSim Project nor the - * names of its contributors may be used to endorse or promote products - * derived from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -namespace OpenSim.GUI -{ - partial class frmConfiguration - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(frmConfiguration)); - this.textBox1 = new System.Windows.Forms.TextBox(); - this.SuspendLayout(); - // - // textBox1 - // - this.textBox1.Location = new System.Drawing.Point(12, 12); - this.textBox1.Multiline = true; - this.textBox1.Name = "textBox1"; - this.textBox1.Size = new System.Drawing.Size(570, 190); - this.textBox1.TabIndex = 0; - this.textBox1.Text = resources.GetString("textBox1.Text"); - // - // frmConfiguration - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(664, 413); - this.Controls.Add(this.textBox1); - this.Name = "frmConfiguration"; - this.Text = "Configuration"; - this.ResumeLayout(false); - this.PerformLayout(); - - } - - #endregion - - private System.Windows.Forms.TextBox textBox1; - } -} diff --git a/OpenSim/Tools/OpenSim.GUI/frmConfiguration.cs b/OpenSim/Tools/OpenSim.GUI/frmConfiguration.cs deleted file mode 100644 index 8ed53a2..0000000 --- a/OpenSim/Tools/OpenSim.GUI/frmConfiguration.cs +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Copyright (c) Contributors, http://opensimulator.org/ - * See CONTRIBUTORS.TXT for a full list of copyright holders. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * * Neither the name of the OpenSim Project nor the - * names of its contributors may be used to endorse or promote products - * derived from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Text; -using System.Windows.Forms; - -namespace OpenSim.GUI -{ - public partial class frmConfiguration : Form - { - public frmConfiguration() - { - InitializeComponent(); - } - } -} diff --git a/OpenSim/Tools/OpenSim.GUI/frmConfiguration.resx b/OpenSim/Tools/OpenSim.GUI/frmConfiguration.resx deleted file mode 100644 index 084547c..0000000 --- a/OpenSim/Tools/OpenSim.GUI/frmConfiguration.resx +++ /dev/null @@ -1,129 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - What I want here: -* Region configuration add/disable/modify) -* OpenSim config: what physics/sql/scriptengine modules -* Configuration for each of the servers -* An option of what parts the server will run: "Stand Alone, Grid region, Grid Server, Custom" -Custom = you can enable/disable one or more services, for example if you only run AssetServer on this machine. -* User manager (add/remove/lockout/modify) -- maybe a separate form for this? - - \ No newline at end of file -- cgit v1.1 From 571b94f537cc1f431ed52e6a185863ae17357f30 Mon Sep 17 00:00:00 2001 From: MW Date: Wed, 5 Nov 2008 20:14:52 +0000 Subject: moved the initial loading/setting of the config settings to its own class, ConfigurationLoader. To make it easier to customise the loading of those settings and possible in the future move it to a plugin. --- OpenSim/Tools/Export/OpenSimExport.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/Export/OpenSimExport.cs b/OpenSim/Tools/Export/OpenSimExport.cs index 5c0ff52..570a855 100644 --- a/OpenSim/Tools/Export/OpenSimExport.cs +++ b/OpenSim/Tools/Export/OpenSimExport.cs @@ -102,7 +102,7 @@ namespace OpenSimExport { // no default config files, so set default values, and save it Console.WriteLine("We didn't find a config!"); - config.Merge(OpenSimBase.DefaultConfig()); + config.Merge(ConfigurationLoader.DefaultConfig()); config.Merge(configSource); } -- cgit v1.1 From c25a0ea7923aa390d30b8eebdbca4e599edf9b0d Mon Sep 17 00:00:00 2001 From: Justin Clarke Casey Date: Mon, 17 Nov 2008 21:00:34 +0000 Subject: * Update libOMV to r2359. This is necessary for the progressive texture patch * Update libopenjpeg as well for this patch. * Appears to be okay on a very short sniff test * Source code will be placed in opensim-libs shortly --- OpenSim/Tools/pCampBot/PhysicsBot.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/pCampBot/PhysicsBot.cs b/OpenSim/Tools/pCampBot/PhysicsBot.cs index 84987b2..862b4e8 100644 --- a/OpenSim/Tools/pCampBot/PhysicsBot.cs +++ b/OpenSim/Tools/pCampBot/PhysicsBot.cs @@ -96,7 +96,7 @@ namespace pCampBot client.Self.Movement.AtPos = true; Thread.Sleep(somthing.Next(25, 75)); // Makes sure the bots keep walking for this time. } - client.Self.Jump(); + client.Self.Jump(true); string randomf = talkarray[somthing.Next(talkarray.Length)]; if (talkarray.Length > 1 && randomf.Length > 1) @@ -141,7 +141,7 @@ namespace pCampBot m_action.Elapsed += new ElapsedEventHandler(m_action_Elapsed); m_action.Start(); OnConnected(this, EventType.CONNECTED); - client.Self.Jump(); + client.Self.Jump(true); } } else -- cgit v1.1 From 3234472d6203671a492a73042a0b56d6301903e0 Mon Sep 17 00:00:00 2001 From: Melanie Thielker Date: Wed, 19 Nov 2008 06:15:21 +0000 Subject: Reverting the texture sending patch and the new libOMV. This makes this release a direct descendant of the stable 7364, with all the features and none of the issues. This omits the following patch chain: r7383 r7382 r7381 r7377 r7375 r7373 r7372 r7370 r7369 r7368 r7367 r7366 --- OpenSim/Tools/pCampBot/PhysicsBot.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/pCampBot/PhysicsBot.cs b/OpenSim/Tools/pCampBot/PhysicsBot.cs index 862b4e8..84987b2 100644 --- a/OpenSim/Tools/pCampBot/PhysicsBot.cs +++ b/OpenSim/Tools/pCampBot/PhysicsBot.cs @@ -96,7 +96,7 @@ namespace pCampBot client.Self.Movement.AtPos = true; Thread.Sleep(somthing.Next(25, 75)); // Makes sure the bots keep walking for this time. } - client.Self.Jump(true); + client.Self.Jump(); string randomf = talkarray[somthing.Next(talkarray.Length)]; if (talkarray.Length > 1 && randomf.Length > 1) @@ -141,7 +141,7 @@ namespace pCampBot m_action.Elapsed += new ElapsedEventHandler(m_action_Elapsed); m_action.Start(); OnConnected(this, EventType.CONNECTED); - client.Self.Jump(true); + client.Self.Jump(); } } else -- cgit v1.1 From f518ca7feb33c0c1641ccb8f3956246b855f9b6c Mon Sep 17 00:00:00 2001 From: Melanie Thielker Date: Wed, 19 Nov 2008 06:25:34 +0000 Subject: Reapply r7369 r7367 r7366 r7370 r7381. This brings it back up to the new libOMV. --- OpenSim/Tools/pCampBot/PhysicsBot.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/pCampBot/PhysicsBot.cs b/OpenSim/Tools/pCampBot/PhysicsBot.cs index 84987b2..862b4e8 100644 --- a/OpenSim/Tools/pCampBot/PhysicsBot.cs +++ b/OpenSim/Tools/pCampBot/PhysicsBot.cs @@ -96,7 +96,7 @@ namespace pCampBot client.Self.Movement.AtPos = true; Thread.Sleep(somthing.Next(25, 75)); // Makes sure the bots keep walking for this time. } - client.Self.Jump(); + client.Self.Jump(true); string randomf = talkarray[somthing.Next(talkarray.Length)]; if (talkarray.Length > 1 && randomf.Length > 1) @@ -141,7 +141,7 @@ namespace pCampBot m_action.Elapsed += new ElapsedEventHandler(m_action_Elapsed); m_action.Start(); OnConnected(this, EventType.CONNECTED); - client.Self.Jump(); + client.Self.Jump(true); } } else -- cgit v1.1 From f7beef328380d85c52fc05f6639a00999d1fa74d Mon Sep 17 00:00:00 2001 From: Teravus Ovares Date: Thu, 27 Nov 2008 06:54:20 +0000 Subject: * Adds texture download requests to pcampbot to more accurately represent load. --- OpenSim/Tools/pCampBot/PhysicsBot.cs | 52 ++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/pCampBot/PhysicsBot.cs b/OpenSim/Tools/pCampBot/PhysicsBot.cs index 862b4e8..8e43670 100644 --- a/OpenSim/Tools/pCampBot/PhysicsBot.cs +++ b/OpenSim/Tools/pCampBot/PhysicsBot.cs @@ -26,6 +26,7 @@ */ using System; +using System.Collections.Generic; using System.IO; using System.Threading; using System.Timers; @@ -51,6 +52,8 @@ namespace pCampBot public event AnEvent OnDisconnected; protected Timer m_action; // Action Timer + protected List objectIDs = new List(); + protected Random somthing = new Random(Environment.TickCount);// We do stuff randomly here @@ -130,9 +133,25 @@ namespace pCampBot public void startup() { client.Settings.LOGIN_SERVER = loginURI; + client.Settings.ALWAYS_DECODE_OBJECTS = false; + client.Settings.AVATAR_TRACKING = false; + client.Settings.OBJECT_TRACKING = false; + client.Settings.SEND_AGENT_THROTTLE = true; + client.Settings.SEND_PINGS = true; + client.Settings.STORE_LAND_PATCHES = false; + client.Settings.USE_TEXTURE_CACHE = false; + client.Settings.MULTIPLE_SIMS = true; + client.Throttle.Asset = 100000; + client.Throttle.Land = 100000; + client.Throttle.Task = 100000; + client.Throttle.Texture = 100000; + client.Throttle.Wind = 100000; + client.Throttle.Total = 400000; client.Network.OnConnected += new NetworkManager.ConnectedCallback(this.Network_OnConnected); client.Network.OnSimConnected += new NetworkManager.SimConnectedCallback(this.Network_OnConnected); client.Network.OnDisconnected += new NetworkManager.DisconnectedCallback(this.Network_OnDisconnected); + client.Objects.OnNewPrim += Objects_NewPrim; + client.Assets.OnImageReceived += Asset_TextureCallback; if (client.Network.Login(firstname, lastname, password, "pCampBot", "Your name")) { if (OnConnected != null) @@ -174,6 +193,39 @@ namespace pCampBot } } + public void Objects_NewPrim(Simulator simulator, Primitive prim, ulong regionHandle, ushort timeDilation) + { + if (prim != null) + { + if (prim.Textures != null) + { + if (prim.Textures.DefaultTexture.TextureID != UUID.Zero) + { + client.Assets.RequestImage(prim.Textures.DefaultTexture.TextureID, ImageType.Normal); + } + for (int i = 0; i < prim.Textures.FaceTextures.Length; i++ ) + { + if (prim.Textures.FaceTextures[i] != null) + { + if (prim.Textures.FaceTextures[i].TextureID != UUID.Zero) + { + client.Assets.RequestImage(prim.Textures.FaceTextures[i].TextureID, ImageType.Normal); + } + + } + } + } + if (prim.Sculpt.SculptTexture != UUID.Zero) + { + client.Assets.RequestImage(prim.Sculpt.SculptTexture, ImageType.Normal); + } + } + + } + public void Asset_TextureCallback(ImageDownload image, AssetTexture asset) + { + } + public string[] readexcuses() { string allexcuses = ""; -- cgit v1.1 From f2cbc48a9e704da8e86ed659437c1e338e212c50 Mon Sep 17 00:00:00 2001 From: Tedd Hansen Date: Sat, 6 Dec 2008 03:28:34 +0000 Subject: GUI for launching grids. Early version, but should work fine. Will execute all OpenSim services redirect their input/output/errors to the selected "GUI module". This version has following "GUI modules": * Windows Forms * Windows Service (doesn't work yet) * Console * TCP daemon This means that OpenSim can now run in a single console for those who want that. Console functionallity is not too rich yet, but code/framework is there... more to come. :) --- OpenSim/Tools/OpenSim.GridLaunch/App.config | 40 + OpenSim/Tools/OpenSim.GridLaunch/AppExecutor.cs | 247 ++++++ .../OpenSim.GridLaunch/AppExecutor_AsyncIO.cs | 85 ++ .../Tools/OpenSim.GridLaunch/AppExecutor_Thread.cs | 187 +++++ .../Tools/OpenSim.GridLaunch/CommandProcessor.cs | 76 ++ .../OpenSim.GridLaunch/GUI/Console/Console.cs | 122 +++ OpenSim/Tools/OpenSim.GridLaunch/GUI/IGUI.cs | 12 + .../Tools/OpenSim.GridLaunch/GUI/Network/Client.cs | 113 +++ .../Tools/OpenSim.GridLaunch/GUI/Network/TCPD.cs | 231 ++++++ .../OpenSim.GridLaunch/GUI/Service/Service.cs | 65 ++ .../GUI/WinForm/OpenSim Bottom Border.png | Bin 0 -> 163 bytes .../GUI/WinForm/OpenSim Right Border.png | Bin 0 -> 545 bytes .../OpenSim.GridLaunch/GUI/WinForm/OpenSim.png | Bin 0 -> 44571 bytes .../GUI/WinForm/ProcessPanel.Designer.cs | 224 ++++++ .../OpenSim.GridLaunch/GUI/WinForm/ProcessPanel.cs | 288 +++++++ .../GUI/WinForm/ProcessPanel.resx | 882 +++++++++++++++++++++ .../GUI/WinForm/ucAppWindow.Designer.cs | 72 ++ .../OpenSim.GridLaunch/GUI/WinForm/ucAppWindow.cs | 63 ++ .../GUI/WinForm/ucAppWindow.resx | 120 +++ .../GUI/WinForm/ucInputField.Designer.cs | 77 ++ .../OpenSim.GridLaunch/GUI/WinForm/ucInputField.cs | 97 +++ .../GUI/WinForm/ucInputField.resx | 120 +++ .../GUI/WinForm/ucLogWindow.Designer.cs | 62 ++ .../OpenSim.GridLaunch/GUI/WinForm/ucLogWindow.cs | 54 ++ .../GUI/WinForm/ucLogWindow.resx | 120 +++ .../OpenSim.GridLaunch/OpenSim.GridLaunch.csproj | 126 +++ .../OpenSim.GridLaunch/OpenSim.GridLaunch.ini | 3 + .../OpenSim.GridLaunch/OpenSim.GridLaunch.sln | 20 + OpenSim/Tools/OpenSim.GridLaunch/Program.cs | 245 ++++++ .../OpenSim.GridLaunch/Properties/AssemblyInfo.cs | 63 ++ .../Properties/Resources.Designer.cs | 84 ++ .../OpenSim.GridLaunch/Properties/Resources.resx | 130 +++ OpenSim/Tools/OpenSim.GridLaunch/Settings.cs | 181 +++++ .../Tools/OpenSim.GridLaunch/log4netAppender.cs | 65 ++ 34 files changed, 4274 insertions(+) create mode 100644 OpenSim/Tools/OpenSim.GridLaunch/App.config create mode 100644 OpenSim/Tools/OpenSim.GridLaunch/AppExecutor.cs create mode 100644 OpenSim/Tools/OpenSim.GridLaunch/AppExecutor_AsyncIO.cs create mode 100644 OpenSim/Tools/OpenSim.GridLaunch/AppExecutor_Thread.cs create mode 100644 OpenSim/Tools/OpenSim.GridLaunch/CommandProcessor.cs create mode 100644 OpenSim/Tools/OpenSim.GridLaunch/GUI/Console/Console.cs create mode 100644 OpenSim/Tools/OpenSim.GridLaunch/GUI/IGUI.cs create mode 100644 OpenSim/Tools/OpenSim.GridLaunch/GUI/Network/Client.cs create mode 100644 OpenSim/Tools/OpenSim.GridLaunch/GUI/Network/TCPD.cs create mode 100644 OpenSim/Tools/OpenSim.GridLaunch/GUI/Service/Service.cs create mode 100644 OpenSim/Tools/OpenSim.GridLaunch/GUI/WinForm/OpenSim Bottom Border.png create mode 100644 OpenSim/Tools/OpenSim.GridLaunch/GUI/WinForm/OpenSim Right Border.png create mode 100644 OpenSim/Tools/OpenSim.GridLaunch/GUI/WinForm/OpenSim.png create mode 100644 OpenSim/Tools/OpenSim.GridLaunch/GUI/WinForm/ProcessPanel.Designer.cs create mode 100644 OpenSim/Tools/OpenSim.GridLaunch/GUI/WinForm/ProcessPanel.cs create mode 100644 OpenSim/Tools/OpenSim.GridLaunch/GUI/WinForm/ProcessPanel.resx create mode 100644 OpenSim/Tools/OpenSim.GridLaunch/GUI/WinForm/ucAppWindow.Designer.cs create mode 100644 OpenSim/Tools/OpenSim.GridLaunch/GUI/WinForm/ucAppWindow.cs create mode 100644 OpenSim/Tools/OpenSim.GridLaunch/GUI/WinForm/ucAppWindow.resx create mode 100644 OpenSim/Tools/OpenSim.GridLaunch/GUI/WinForm/ucInputField.Designer.cs create mode 100644 OpenSim/Tools/OpenSim.GridLaunch/GUI/WinForm/ucInputField.cs create mode 100644 OpenSim/Tools/OpenSim.GridLaunch/GUI/WinForm/ucInputField.resx create mode 100644 OpenSim/Tools/OpenSim.GridLaunch/GUI/WinForm/ucLogWindow.Designer.cs create mode 100644 OpenSim/Tools/OpenSim.GridLaunch/GUI/WinForm/ucLogWindow.cs create mode 100644 OpenSim/Tools/OpenSim.GridLaunch/GUI/WinForm/ucLogWindow.resx create mode 100644 OpenSim/Tools/OpenSim.GridLaunch/OpenSim.GridLaunch.csproj create mode 100644 OpenSim/Tools/OpenSim.GridLaunch/OpenSim.GridLaunch.ini create mode 100644 OpenSim/Tools/OpenSim.GridLaunch/OpenSim.GridLaunch.sln create mode 100644 OpenSim/Tools/OpenSim.GridLaunch/Program.cs create mode 100644 OpenSim/Tools/OpenSim.GridLaunch/Properties/AssemblyInfo.cs create mode 100644 OpenSim/Tools/OpenSim.GridLaunch/Properties/Resources.Designer.cs create mode 100644 OpenSim/Tools/OpenSim.GridLaunch/Properties/Resources.resx create mode 100644 OpenSim/Tools/OpenSim.GridLaunch/Settings.cs create mode 100644 OpenSim/Tools/OpenSim.GridLaunch/log4netAppender.cs (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/OpenSim.GridLaunch/App.config b/OpenSim/Tools/OpenSim.GridLaunch/App.config new file mode 100644 index 0000000..1e53319 --- /dev/null +++ b/OpenSim/Tools/OpenSim.GridLaunch/App.config @@ -0,0 +1,40 @@ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/OpenSim/Tools/OpenSim.GridLaunch/AppExecutor.cs b/OpenSim/Tools/OpenSim.GridLaunch/AppExecutor.cs new file mode 100644 index 0000000..2c6ac31 --- /dev/null +++ b/OpenSim/Tools/OpenSim.GridLaunch/AppExecutor.cs @@ -0,0 +1,247 @@ +/* + * Copyright (c) Contributors, http://opensimulator.org/ + * See CONTRIBUTORS.TXT for a full list of copyright holders. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the OpenSim Project nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +using System; +using System.Collections; +using System.Diagnostics; +using System.IO; +using System.Reflection; +using System.Text; +using System.Threading; +using log4net; + +namespace OpenSim.GridLaunch +{ + internal partial class AppExecutor : IDisposable + { + // How long to wait for process to shut down by itself + private static readonly int shutdownWaitSeconds = 10; + + private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); + + //private StreamWriter Input { get { return process.StandardInput; } } + //private StreamReader Output { get { return process.StandardOutput; } } + //private StreamReader Error { get { return process.StandardError; } } + + private StreamWriter Input { get; set; } + private StreamReader Output { get; set; } + private StreamReader Error { get; set; } + + private object processLock = new object(); + + private bool isRunning = false; + public bool IsRunning { get { return isRunning; } } + + private string file; + public string File { get { return file; } } + + Process process; + + public AppExecutor(string File) + { + file = File; + } + + #region Dispose of unmanaged resources + ~AppExecutor() + { + Dispose(); + } + private bool isDisposed = false; + public void Dispose() + { + if (!isDisposed) + { + isDisposed = true; + Stop(); + } + } + #endregion + + #region Start / Stop process + public void Start() + { + if (isDisposed) + throw new ApplicationException("Attempt to start process in Disposed instance of AppExecutor."); + // Stop before starting + Stop(); + + lock (processLock) + { + isRunning = true; + + m_log.InfoFormat("Starting \"{0}\".", file); + + // Start the process + process = new Process(); + process.StartInfo.FileName = file; + process.StartInfo.Arguments = ""; + process.StartInfo.CreateNoWindow = true; + process.StartInfo.UseShellExecute = false; + process.StartInfo.ErrorDialog = false; + process.EnableRaisingEvents = true; + + + // Redirect all standard input/output/errors + process.StartInfo.RedirectStandardInput = true; + process.StartInfo.RedirectStandardOutput = true; + process.StartInfo.RedirectStandardError = true; + + // Start process + process.Start(); + + Input = process.StandardInput; + Output = process.StandardOutput; + Error = process.StandardError; + + // Start data copying + timer_Start(); + + // We will flush manually + //Input.AutoFlush = false; + + } + } + + public void Stop() + { + // Shut down process + // We will ignore some exceptions here, against good programming practice... :) + + lock (processLock) + { + // Running? + if (!isRunning) + return; + isRunning = false; + + timer_Stop(); + + m_log.InfoFormat("Stopping \"{0}\".", file); + + // Send exit command to console + try + { + if (Input != null) + { + _writeLine(""); + _writeLine("exit"); + _writeLine("quit"); + // Wait for process to exit + process.WaitForExit(1000 * shutdownWaitSeconds); + } + } + catch (Exception ex) + { + m_log.ErrorFormat("Exeption asking \"{0}\" to shut down: {1}", file, ex.ToString()); + } + + try + { + // Forcefully kill it + if (process.HasExited != true) + process.Kill(); + } + catch (Exception ex) + { + m_log.ErrorFormat("Exeption killing \"{0}\": {1}", file, ex.ToString()); + } + + try + { + // Free resources + process.Close(); + } + catch (Exception ex) + { + m_log.ErrorFormat("Exeption freeing resources for \"{0}\": {1}", file, ex.ToString()); + } + + // Dispose of stream and process object + //SafeDisposeOf(Input); + //SafeDisposeOf(Output); + //SafeDisposeOf(Error); + Program.SafeDisposeOf(process); + } + + // Done stopping process + } + + #endregion + + #region Write to stdInput + public void Write(string Text) + { + // Lock so process won't shut down while we write, and that we won't write while proc is shutting down + lock (processLock) + { + _write(Text); + } + } + public void _write(string Text) + { + if (Input != null) + { + try + { + Input.Write(Text); + Input.Flush(); + } + catch (Exception ex) + { + m_log.ErrorFormat("Exeption sending text \"{0}\" to \"{1}\": {2}", file, Text, ex.ToString()); + } + + } + } + public void WriteLine(string Text) + { + // Lock so process won't shut down while we write, and that we won't write while proc is shutting down + lock (processLock) + { + _writeLine(Text); + } + } + public void _writeLine(string Text) + { + if (Input != null) + { + try + { + m_log.DebugFormat("\"{0}\": Sending: \"{1}\"", file, Text); + Input.WriteLine(Text); + Input.Flush(); + } + catch (Exception ex) + { + m_log.ErrorFormat("Exeption sending text \"{0}\" to \"{1}\": {2}", file, Text, ex.ToString()); + } + } + } + #endregion + + } +} diff --git a/OpenSim/Tools/OpenSim.GridLaunch/AppExecutor_AsyncIO.cs b/OpenSim/Tools/OpenSim.GridLaunch/AppExecutor_AsyncIO.cs new file mode 100644 index 0000000..0d07226 --- /dev/null +++ b/OpenSim/Tools/OpenSim.GridLaunch/AppExecutor_AsyncIO.cs @@ -0,0 +1,85 @@ +/* + * Copyright (c) Contributors, http://opensimulator.org/ + * See CONTRIBUTORS.TXT for a full list of copyright holders. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the OpenSim Project nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +using System; +using System.Collections.Generic; +using System.IO; +using System.Text; + +namespace OpenSim.GridLaunch +{ + internal partial class AppExecutor + { + + + #region Start / Stop timer thread + private void timer_Start() + { + asyncReadOutput(); + asyncReadError(); + } + + private bool running = true; + private void timer_Stop() + { + running = false; + } + #endregion + + private byte[] readBufferOutput = new byte[4096]; + private byte[] readBufferError = new byte[4096]; + + private void asyncReadOutput() + { + if (running) + Output.BaseStream.BeginRead(readBufferOutput, 0, readBufferOutput.Length, asyncReadCallBackOutput, null); + } + private void asyncReadError() + { + if (running) + Error.BaseStream.BeginRead(readBufferError, 0, readBufferError.Length, asyncReadCallBackError, null); + } + + private void asyncReadCallBackOutput(IAsyncResult ar) + { + int len = Output.BaseStream.EndRead(ar); + Program.FireAppConsoleOutput(file, + System.Text.Encoding.ASCII.GetString(readBufferOutput, 0, len) + ); + + asyncReadOutput(); + } + private void asyncReadCallBackError(IAsyncResult ar) + { + int len = Error.BaseStream.EndRead(ar); + Program.FireAppConsoleError(file, + System.Text.Encoding.ASCII.GetString(readBufferError, 0, len) + ); + + asyncReadError(); + } + } +} diff --git a/OpenSim/Tools/OpenSim.GridLaunch/AppExecutor_Thread.cs b/OpenSim/Tools/OpenSim.GridLaunch/AppExecutor_Thread.cs new file mode 100644 index 0000000..cd160f8 --- /dev/null +++ b/OpenSim/Tools/OpenSim.GridLaunch/AppExecutor_Thread.cs @@ -0,0 +1,187 @@ +/* + * Copyright (c) Contributors, http://opensimulator.org/ + * See CONTRIBUTORS.TXT for a full list of copyright holders. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the OpenSim Project nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +//using System; +//using System.Collections; +//using System.Collections.Generic; +//using System.Reflection; +//using System.Text; +//using System.Threading; +//using log4net; + +//namespace OpenSim.GridLaunch +//{ +// internal class AppExecutor2 +// { +// private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); +// private static readonly int consoleReadIntervalMilliseconds = 50; +// //private static readonly Timer readTimer = new Timer(readConsole, null, Timeout.Infinite, Timeout.Infinite); +// private static Thread timerThread; +// private static object timerThreadLock = new object(); + +// #region Start / Stop timer thread +// private static void timer_Start() +// { +// //readTimer.Change(0, consoleReadIntervalMilliseconds); +// lock (timerThreadLock) +// { +// if (timerThread == null) +// { +// m_log.Debug("Starting timer thread."); +// timerThread = new Thread(timerThreadLoop); +// timerThread.Name = "StdOutputStdErrorReadThread"; +// timerThread.IsBackground = true; +// timerThread.Start(); +// } +// } +// } +// private static void timer_Stop() +// { +// //readTimer.Change(Timeout.Infinite, Timeout.Infinite); +// lock (timerThreadLock) +// { +// if (timerThread != null) +// { +// m_log.Debug("Stopping timer thread."); +// try +// { +// if (timerThread.IsAlive) +// timerThread.Abort(); +// timerThread.Join(2000); +// timerThread = null; +// } +// catch (Exception ex) +// { +// m_log.Error("Exception stopping timer thread: " + ex.ToString()); +// } +// } +// } +// } +// #endregion + +// #region Timer read from consoles and fire event + +// private static void timerThreadLoop() +// { +// try +// { +// while (true) +// { +// readConsole(); +// Thread.Sleep(consoleReadIntervalMilliseconds); +// } +// } +// catch (ThreadAbortException) { } // Expected on thread shutdown +// } + +// private static void readConsole() +// { +// try +// { + +// // Lock so we don't collide with any startup or shutdown +// lock (Program.AppList) +// { +// foreach (AppExecutor app in new ArrayList(Program.AppList.Values)) +// { +// try +// { +// string txt = app.GetStdOutput(); +// // Fire event with received text +// if (!string.IsNullOrEmpty(txt)) +// Program.FireAppConsoleOutput(app.File, txt); +// } +// catch (Exception ex) +// { +// m_log.ErrorFormat("Exception reading standard output from \"{0}\": {1}", app.File, ex.ToString()); +// } +// try +// { +// string txt = app.GetStdError(); +// // Fire event with received text +// if (!string.IsNullOrEmpty(txt)) +// Program.FireAppConsoleOutput(app.File, txt); +// } +// catch (Exception ex) +// { +// m_log.ErrorFormat("Exception reading standard error from \"{0}\": {1}", app.File, ex.ToString()); +// } +// } +// } +// } +// finally +// { +// } +// } +// #endregion + + +// #region Read stdOutput and stdError +// public string GetStdOutput() +// { +// return GetStreamData(Output); +// } +// public string GetStdError() +// { +// return GetStreamData(Error); +// } + +// private static int num = 0; +// // Gets any data from StreamReader object, non-blocking +// private static string GetStreamData(StreamReader sr) +// { +// // Can't read? +// if (!sr.BaseStream.CanRead) +// return ""; + +// // Read a chunk +// //sr.BaseStream.ReadTimeout = 100; +// byte[] buffer = new byte[4096]; +// num++; +// Trace.WriteLine("Start read " + num); +// int len = sr.BaseStream.Read(buffer, 0, buffer.Length); +// Trace.WriteLine("End read " + num + ": " + len); + +// // Nothing? +// if (len <= 0) +// return ""; + +// // Return data +// StringBuilder sb = new StringBuilder(); +// sb.Append(System.Text.Encoding.ASCII.GetString(buffer, 0, len)); + +// //while (sr.Peek() >= 0) +// //{ +// // sb.Append(Convert.ToChar(sr.Read())); +// //} + +// return sb.ToString(); +// } +// #endregion + + +// } +//} diff --git a/OpenSim/Tools/OpenSim.GridLaunch/CommandProcessor.cs b/OpenSim/Tools/OpenSim.GridLaunch/CommandProcessor.cs new file mode 100644 index 0000000..aca36e9 --- /dev/null +++ b/OpenSim/Tools/OpenSim.GridLaunch/CommandProcessor.cs @@ -0,0 +1,76 @@ +/* + * Copyright (c) Contributors, http://opensimulator.org/ + * See CONTRIBUTORS.TXT for a full list of copyright holders. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the OpenSim Project nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +using System; +using System.Collections.Generic; +using System.Text; + +namespace OpenSim.GridLaunch +{ + internal class CommandProcessor + { + public delegate void CommandLineDelegate(string application, string command, string arguments); + public event CommandLineDelegate CommandLine; + + public bool IsCommand(string cmd) + { + if (cmd.Trim().StartsWith("/")) + return true; + return false; + } + + public static readonly char[] cmdSplit = new char[] { ' ' }; + public bool Process(string app, string command) + { + // Only process commands + if (!IsCommand(command)) + return false; + + // Remove first / + command = command.Trim().Remove(0, 1); + + // Split cmd and args + string[] carg = command.Split(cmdSplit, 2); + if (carg.Length == 0) + return true; + + string cmd = carg[0]; // Command + string arg = ""; + if (carg.Length > 1) + arg = carg[1]; // Arguments + + // Do we have a command? + if (string.IsNullOrEmpty(cmd)) + return true; + + // All is fine + if (CommandLine != null) + CommandLine(app, cmd, arg); + return true; + } + + } +} diff --git a/OpenSim/Tools/OpenSim.GridLaunch/GUI/Console/Console.cs b/OpenSim/Tools/OpenSim.GridLaunch/GUI/Console/Console.cs new file mode 100644 index 0000000..a04c9cf --- /dev/null +++ b/OpenSim/Tools/OpenSim.GridLaunch/GUI/Console/Console.cs @@ -0,0 +1,122 @@ +/* + * Copyright (c) Contributors, http://opensimulator.org/ + * See CONTRIBUTORS.TXT for a full list of copyright holders. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the OpenSim Project nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +using System; +using System.Collections.Generic; +using System.Text; + +namespace OpenSim.GridLaunch.GUI.Console +{ + internal class Console: IGUI + { + private List Apps = new List(); + public Console () + { + Program.AppCreated += Program_AppCreated; + Program.AppRemoved += Program_AppRemoved; + Program.AppConsoleOutput += Program_AppConsoleOutput; + Program.Command.CommandLine += Command_CommandLine; + } + + private string currentApp = ""; + private bool quitTyped = false; + void Command_CommandLine(string application, string command, string arguments) + { + + // If command is a number then someone might be trying to change console: /1, /2, etc. + int currentAppNum = 0; + if (int.TryParse(command, out currentAppNum)) + if (currentAppNum <= Apps.Count) + { + currentApp = Apps[currentAppNum - 1]; + System.Console.WriteLine("Changed console to app: " + currentApp); + } else + System.Console.WriteLine("Unable to change to app number: " + currentAppNum); + + // Has user typed quit? + if (command.ToLower() == "quit") + quitTyped = true; + + // Has user typed /list? + if (command.ToLower() == "list") + { + System.Console.WriteLine("/0 Log console"); + for (int i = 1; i <= Apps.Count; i++) + { + System.Console.WriteLine(string.Format("/{0} {1}", i, Apps[i - 1])); + } + } + } + #region Module Start / Stop + public void StartGUI() + { + // Console start + System.Console.WriteLine("Console GUI"); + System.Console.WriteLine("Use commands /0, /1, /2, etc to switch between applications."); + System.Console.WriteLine("Type /list for list of applications."); + System.Console.WriteLine("Anything that doesn't start with a / will be sent to selected application"); + System.Console.WriteLine("type /quit to exit"); + + + while (quitTyped == false) + { + string line = System.Console.ReadLine().TrimEnd("\r\n".ToCharArray()); + Program.Write(currentApp, line); + } + // We are done + System.Console.WriteLine("Console exit."); + } + + public void StopGUI() + { + // Console stop + } + #endregion + + #region GridLaunch Events + void Program_AppCreated(string App) + { + System.Console.WriteLine("Started: " + App); + if (!Apps.Contains(App)) + Apps.Add(App); + } + + void Program_AppRemoved(string App) + { + System.Console.WriteLine("Stopped: " + App); + if (Apps.Contains(App)) + Apps.Remove(App); + } + + void Program_AppConsoleOutput(string App, string Text) + { + System.Console.Write(App + ": " + Text); + } + #endregion + + + } +} diff --git a/OpenSim/Tools/OpenSim.GridLaunch/GUI/IGUI.cs b/OpenSim/Tools/OpenSim.GridLaunch/GUI/IGUI.cs new file mode 100644 index 0000000..45d8af7 --- /dev/null +++ b/OpenSim/Tools/OpenSim.GridLaunch/GUI/IGUI.cs @@ -0,0 +1,12 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace OpenSim.GridLaunch.GUI +{ + public interface IGUI + { + void StartGUI(); + void StopGUI(); + } +} diff --git a/OpenSim/Tools/OpenSim.GridLaunch/GUI/Network/Client.cs b/OpenSim/Tools/OpenSim.GridLaunch/GUI/Network/Client.cs new file mode 100644 index 0000000..19b27e4 --- /dev/null +++ b/OpenSim/Tools/OpenSim.GridLaunch/GUI/Network/Client.cs @@ -0,0 +1,113 @@ +/* + * Copyright (c) Contributors, http://opensimulator.org/ + * See CONTRIBUTORS.TXT for a full list of copyright holders. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the OpenSim Project nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +using System; +using System.Collections.Generic; +using System.Net.Sockets; +using System.Text; +using System.Text.RegularExpressions; + +namespace OpenSim.GridLaunch.GUI.Network +{ + internal class Client + { + public TcpClient tcpClient; + private byte[] readBuffer = new byte[4096]; + private byte[] writeBuffer; + private TCPD tcp; + private string inputData = ""; + private object inputDataLock = new object(); + public Client(TCPD _tcp, TcpClient Client) + { + tcp = _tcp; + tcpClient = Client; + asyncReadStart(); + Write("OpenSim TCP Console GUI"); + Write("Use commands /0, /1, /2, etc to switch between applications."); + Write("Type /list for list of applications."); + Write("Anything that doesn't start with a / will be sent to selected application"); + Write("type /quit to exit"); + + } + + private void asyncReadStart() + { + tcpClient.GetStream().BeginRead(readBuffer, 0, readBuffer.Length, asyncReadCallBack, null); + } + + //private Regex LineExtractor = new Regex("^(.*)$") + private void asyncReadCallBack(IAsyncResult ar) + { + try + { + // Read data + int len = tcpClient.GetStream().EndRead(ar); + + // Send it to app + string newData = System.Text.Encoding.ASCII.GetString(readBuffer, 0, len); + //lock (inputDataLock) + //{ + inputData += newData; + if (newData.Contains("\n")) + SendInputLines(); + //} + + // Start it again + asyncReadStart(); + } + catch + { + // TODO: Remove client when we get exception + // Temp patch: if exception we don't call asyncReadStart() + } + } + + private void SendInputLines() + { + StringBuilder line = new StringBuilder(); + foreach (char c in inputData) + { + if (c == 13) + continue; + if (c == 10) + { + Program.WriteLine(tcp.currentApp, line.ToString()); + line = new StringBuilder(); + continue; + } + line.Append(c); + } + // We'll keep whatever is left over + inputData = line.ToString(); + } + + public void Write(string Text) + { + writeBuffer = Encoding.ASCII.GetBytes(Text); + tcpClient.GetStream().Write(writeBuffer, 0, writeBuffer.Length); + } + } +} diff --git a/OpenSim/Tools/OpenSim.GridLaunch/GUI/Network/TCPD.cs b/OpenSim/Tools/OpenSim.GridLaunch/GUI/Network/TCPD.cs new file mode 100644 index 0000000..5524e21 --- /dev/null +++ b/OpenSim/Tools/OpenSim.GridLaunch/GUI/Network/TCPD.cs @@ -0,0 +1,231 @@ +/* + * Copyright (c) Contributors, http://opensimulator.org/ + * See CONTRIBUTORS.TXT for a full list of copyright holders. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the OpenSim Project nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +using System; +using System.Collections; +using System.Collections.Generic; +using System.Net; +using System.Net.Sockets; +using System.Reflection; +using System.Text; +using System.Threading; +using log4net; + +namespace OpenSim.GridLaunch.GUI.Network +{ + public class TCPD : IGUI, IDisposable + { + private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); + private List Clients = new List(); + + private readonly int defaultPort = 7998; + private TcpListener tcpListener; + private Thread listenThread; + private Thread clientThread; + + + private List Apps = new List(); + internal string currentApp = ""; + private bool quitTyped = false; + + public TCPD() + { + Program.AppCreated += Program_AppCreated; + Program.AppRemoved += Program_AppRemoved; + Program.AppConsoleOutput += Program_AppConsoleOutput; + Program.Command.CommandLine += Command_CommandLine; + + } + + ~TCPD() + { + Dispose(); + } + private bool isDisposed = false; + /// + ///Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + /// + ///2 + public void Dispose() + { + if (isDisposed) + return; + isDisposed = true; + tcpd_Stop(); + } + + public void StartGUI() + { + // We are starting + tcpd_Start(); + } + + public void StopGUI() + { + // We are stopping + tcpd_Stop(); + } + + + #region GridLaunch Events + private void Command_CommandLine(string application, string command, string arguments) + { + // If command is a number then someone might be trying to change console: /1, /2, etc. + int currentAppNum = 0; + if (int.TryParse(command, out currentAppNum)) + if (currentAppNum <= Apps.Count) + { + currentApp = Apps[currentAppNum - 1]; + TCPWriteToAll("Changed console to app: " + currentApp + Environment.NewLine); + } + else + TCPWriteToAll("Unable to change to app number: " + currentAppNum + Environment.NewLine); + + // Has user typed quit? + if (command.ToLower() == "quit") + quitTyped = true; + + // Has user typed /list? + if (command.ToLower() == "list") + { + TCPWriteToAll("/0 Log console"); + for (int i = 1; i <= Apps.Count; i++) + { + TCPWriteToAll(string.Format("/{0} {1}", i, Apps[i - 1])); + } + } + + } + + void Program_AppCreated(string App) + { + TCPWriteToAll("Started: " + App); + if (!Apps.Contains(App)) + Apps.Add(App); + } + + void Program_AppRemoved(string App) + { + TCPWriteToAll("Stopped: " + App); + if (Apps.Contains(App)) + Apps.Remove(App); + } + + private void Program_AppConsoleOutput(string App, string Text) + { + TCPWriteToAll(App, Text); + } + + #endregion + + private void tcpd_Start() + { + listenThread = new Thread(new ThreadStart(ListenForClients)); + listenThread.Name = "TCPDThread"; + listenThread.IsBackground = true; + listenThread.Start(); + + while (!quitTyped) + { + Thread.Sleep(500); + } + + //clientThread = new Thread(new ThreadStart(ProcessClients)); + //clientThread.Name = "TCPClientThread"; + //clientThread.IsBackground = true; + ////clientThread.Start(); + + } + private void tcpd_Stop() + { + StopThread(listenThread); + StopThread(clientThread); + } + private void ListenForClients() + { + int Port = 0; + int.TryParse(Program.Settings["TCPPort"], out Port); + if (Port < 1) + Port = defaultPort; + + m_log.Info("Starting TCP Server on port " + Port); + this.tcpListener = new TcpListener(IPAddress.Any, Port); + + this.tcpListener.Start(); + + while (true) + { + // Blocks until a client has connected to the server + TcpClient tcpClient = this.tcpListener.AcceptTcpClient(); + Client client = new Client(this, tcpClient); + + lock (Clients) + { + Clients.Add(client); + } + System.Threading.Thread.Sleep(500); + } + } + + private static void StopThread(Thread t) + { + if (t != null) + { + m_log.Debug("Stopping thread " + t.Name); + try + { + if (t.IsAlive) + t.Abort(); + t.Join(2000); + t = null; + } + catch (Exception ex) + { + m_log.Error("Exception stopping thread: " + ex.ToString()); + } + } + } + + private void TCPWriteToAll(string app, string text) + { + TCPWriteToAll(text); + } + private void TCPWriteToAll(string text) + { + foreach (Client c in new ArrayList(Clients)) + { + try + { + c.Write(text); + } catch (Exception ex) + { + m_log.Error("Exception writing to TCP: " + ex.ToString()); + } + } + } + + } +} diff --git a/OpenSim/Tools/OpenSim.GridLaunch/GUI/Service/Service.cs b/OpenSim/Tools/OpenSim.GridLaunch/GUI/Service/Service.cs new file mode 100644 index 0000000..c6fd501 --- /dev/null +++ b/OpenSim/Tools/OpenSim.GridLaunch/GUI/Service/Service.cs @@ -0,0 +1,65 @@ +/* + * Copyright (c) Contributors, http://opensimulator.org/ + * See CONTRIBUTORS.TXT for a full list of copyright holders. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the OpenSim Project nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +using System; +using System.Collections.Generic; +using System.ServiceProcess; +using System.Text; +using OpenSim.GridLaunch.GUI; + +namespace OpenSim.GridLaunch +{ + internal class Service: ServiceBase, IGUI + { + private ServiceBase[] ServicesToRun; + public Service() + { + ServicesToRun = new ServiceBase[] {this}; + } + + public void StartGUI() + { + ServiceBase.Run(ServicesToRun); + } + + public void StopGUI() + { + // Nothing + } + + protected override void OnStart(string[] args) + { + // Command line arguments override settings + Program.Settings.ParseCommandArguments(args); + } + + protected override void OnStop() + { + Program.Shutdown(); + } + + } +} \ No newline at end of file diff --git a/OpenSim/Tools/OpenSim.GridLaunch/GUI/WinForm/OpenSim Bottom Border.png b/OpenSim/Tools/OpenSim.GridLaunch/GUI/WinForm/OpenSim Bottom Border.png new file mode 100644 index 0000000..b3594b6 Binary files /dev/null and b/OpenSim/Tools/OpenSim.GridLaunch/GUI/WinForm/OpenSim Bottom Border.png differ diff --git a/OpenSim/Tools/OpenSim.GridLaunch/GUI/WinForm/OpenSim Right Border.png b/OpenSim/Tools/OpenSim.GridLaunch/GUI/WinForm/OpenSim Right Border.png new file mode 100644 index 0000000..8b03281 Binary files /dev/null and b/OpenSim/Tools/OpenSim.GridLaunch/GUI/WinForm/OpenSim Right Border.png differ diff --git a/OpenSim/Tools/OpenSim.GridLaunch/GUI/WinForm/OpenSim.png b/OpenSim/Tools/OpenSim.GridLaunch/GUI/WinForm/OpenSim.png new file mode 100644 index 0000000..257ca39 Binary files /dev/null and b/OpenSim/Tools/OpenSim.GridLaunch/GUI/WinForm/OpenSim.png differ diff --git a/OpenSim/Tools/OpenSim.GridLaunch/GUI/WinForm/ProcessPanel.Designer.cs b/OpenSim/Tools/OpenSim.GridLaunch/GUI/WinForm/ProcessPanel.Designer.cs new file mode 100644 index 0000000..1498791 --- /dev/null +++ b/OpenSim/Tools/OpenSim.GridLaunch/GUI/WinForm/ProcessPanel.Designer.cs @@ -0,0 +1,224 @@ +namespace OpenSim.GridLaunch.GUI.WinForm +{ + partial class ProcessPanel + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(ProcessPanel)); + this.tabControl1 = new System.Windows.Forms.TabControl(); + this.tabLogs = new System.Windows.Forms.TabPage(); + this.btnShutdown = new System.Windows.Forms.Button(); + this.pictureBox2 = new System.Windows.Forms.PictureBox(); + this.pictureBox1 = new System.Windows.Forms.PictureBox(); + this.pictureBox3 = new System.Windows.Forms.PictureBox(); + this.tabSettings = new System.Windows.Forms.TabPage(); + this.cblStartupComponents = new System.Windows.Forms.CheckedListBox(); + this.gbStartupComponents = new System.Windows.Forms.GroupBox(); + this.btnSave = new System.Windows.Forms.Button(); + this.ucLogWindow1 = new OpenSim.GridLaunch.GUI.WinForm.ucLogWindow(); + this.label1 = new System.Windows.Forms.Label(); + this.tabControl1.SuspendLayout(); + this.tabLogs.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.pictureBox2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.pictureBox3)).BeginInit(); + this.tabSettings.SuspendLayout(); + this.gbStartupComponents.SuspendLayout(); + this.SuspendLayout(); + // + // tabControl1 + // + this.tabControl1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.tabControl1.Controls.Add(this.tabSettings); + this.tabControl1.Controls.Add(this.tabLogs); + this.tabControl1.Location = new System.Drawing.Point(-1, 123); + this.tabControl1.Name = "tabControl1"; + this.tabControl1.SelectedIndex = 0; + this.tabControl1.Size = new System.Drawing.Size(632, 275); + this.tabControl1.TabIndex = 0; + // + // tabLogs + // + this.tabLogs.Controls.Add(this.ucLogWindow1); + this.tabLogs.Location = new System.Drawing.Point(4, 22); + this.tabLogs.Name = "tabLogs"; + this.tabLogs.Padding = new System.Windows.Forms.Padding(3); + this.tabLogs.Size = new System.Drawing.Size(624, 249); + this.tabLogs.TabIndex = 0; + this.tabLogs.Text = "Logs"; + this.tabLogs.UseVisualStyleBackColor = true; + // + // btnShutdown + // + this.btnShutdown.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.btnShutdown.Location = new System.Drawing.Point(542, 400); + this.btnShutdown.Name = "btnShutdown"; + this.btnShutdown.Size = new System.Drawing.Size(75, 23); + this.btnShutdown.TabIndex = 1; + this.btnShutdown.Text = "Shutdown"; + this.btnShutdown.UseVisualStyleBackColor = true; + this.btnShutdown.Click += new System.EventHandler(this.btnShutdown_Click); + // + // pictureBox2 + // + this.pictureBox2.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.pictureBox2.Image = ((System.Drawing.Image)(resources.GetObject("pictureBox2.Image"))); + this.pictureBox2.Location = new System.Drawing.Point(585, -1); + this.pictureBox2.Name = "pictureBox2"; + this.pictureBox2.Size = new System.Drawing.Size(46, 124); + this.pictureBox2.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage; + this.pictureBox2.TabIndex = 3; + this.pictureBox2.TabStop = false; + // + // pictureBox1 + // + this.pictureBox1.Image = ((System.Drawing.Image)(resources.GetObject("pictureBox1.Image"))); + this.pictureBox1.Location = new System.Drawing.Point(-1, -1); + this.pictureBox1.Name = "pictureBox1"; + this.pictureBox1.Size = new System.Drawing.Size(586, 124); + this.pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.AutoSize; + this.pictureBox1.TabIndex = 2; + this.pictureBox1.TabStop = false; + // + // pictureBox3 + // + this.pictureBox3.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.pictureBox3.Image = global::OpenSim.GridLaunch.Properties.Resources.OpenSim_Bottom_Border; + this.pictureBox3.Location = new System.Drawing.Point(-1, 120); + this.pictureBox3.Name = "pictureBox3"; + this.pictureBox3.Size = new System.Drawing.Size(632, 310); + this.pictureBox3.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage; + this.pictureBox3.TabIndex = 4; + this.pictureBox3.TabStop = false; + // + // tabSettings + // + this.tabSettings.Controls.Add(this.label1); + this.tabSettings.Controls.Add(this.btnSave); + this.tabSettings.Controls.Add(this.gbStartupComponents); + this.tabSettings.Location = new System.Drawing.Point(4, 22); + this.tabSettings.Name = "tabSettings"; + this.tabSettings.Padding = new System.Windows.Forms.Padding(3); + this.tabSettings.Size = new System.Drawing.Size(624, 249); + this.tabSettings.TabIndex = 1; + this.tabSettings.Text = "Settings"; + this.tabSettings.UseVisualStyleBackColor = true; + // + // cblStartupComponents + // + this.cblStartupComponents.CheckOnClick = true; + this.cblStartupComponents.FormattingEnabled = true; + this.cblStartupComponents.Location = new System.Drawing.Point(6, 19); + this.cblStartupComponents.Name = "cblStartupComponents"; + this.cblStartupComponents.Size = new System.Drawing.Size(202, 109); + this.cblStartupComponents.TabIndex = 0; + // + // gbStartupComponents + // + this.gbStartupComponents.Controls.Add(this.cblStartupComponents); + this.gbStartupComponents.Location = new System.Drawing.Point(9, 6); + this.gbStartupComponents.Name = "gbStartupComponents"; + this.gbStartupComponents.Size = new System.Drawing.Size(214, 136); + this.gbStartupComponents.TabIndex = 1; + this.gbStartupComponents.TabStop = false; + this.gbStartupComponents.Text = "Startup components"; + // + // btnSave + // + this.btnSave.Location = new System.Drawing.Point(9, 148); + this.btnSave.Name = "btnSave"; + this.btnSave.Size = new System.Drawing.Size(92, 23); + this.btnSave.TabIndex = 2; + this.btnSave.Text = "Save settings"; + this.btnSave.UseVisualStyleBackColor = true; + this.btnSave.Click += new System.EventHandler(this.btnSave_Click); + // + // ucLogWindow1 + // + this.ucLogWindow1.Dock = System.Windows.Forms.DockStyle.Fill; + this.ucLogWindow1.Location = new System.Drawing.Point(3, 3); + this.ucLogWindow1.Name = "ucLogWindow1"; + this.ucLogWindow1.Size = new System.Drawing.Size(618, 243); + this.ucLogWindow1.TabIndex = 0; + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Location = new System.Drawing.Point(108, 149); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(259, 13); + this.label1.TabIndex = 3; + this.label1.Text = "* You have to restart app before changes take effect."; + // + // ProcessPanel + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(629, 428); + this.Controls.Add(this.pictureBox2); + this.Controls.Add(this.pictureBox1); + this.Controls.Add(this.btnShutdown); + this.Controls.Add(this.tabControl1); + this.Controls.Add(this.pictureBox3); + this.Name = "ProcessPanel"; + this.Text = "OpenSim GUI alpha"; + this.Load += new System.EventHandler(this.ProcessPanel_Load); + this.tabControl1.ResumeLayout(false); + this.tabLogs.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.pictureBox2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.pictureBox3)).EndInit(); + this.tabSettings.ResumeLayout(false); + this.tabSettings.PerformLayout(); + this.gbStartupComponents.ResumeLayout(false); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.TabControl tabControl1; + private System.Windows.Forms.TabPage tabLogs; + private System.Windows.Forms.Button btnShutdown; + private ucLogWindow ucLogWindow1; + private System.Windows.Forms.PictureBox pictureBox1; + private System.Windows.Forms.PictureBox pictureBox2; + private System.Windows.Forms.PictureBox pictureBox3; + private System.Windows.Forms.TabPage tabSettings; + private System.Windows.Forms.GroupBox gbStartupComponents; + private System.Windows.Forms.CheckedListBox cblStartupComponents; + private System.Windows.Forms.Button btnSave; + private System.Windows.Forms.Label label1; + + } +} \ No newline at end of file diff --git a/OpenSim/Tools/OpenSim.GridLaunch/GUI/WinForm/ProcessPanel.cs b/OpenSim/Tools/OpenSim.GridLaunch/GUI/WinForm/ProcessPanel.cs new file mode 100644 index 0000000..dbf97d6 --- /dev/null +++ b/OpenSim/Tools/OpenSim.GridLaunch/GUI/WinForm/ProcessPanel.cs @@ -0,0 +1,288 @@ +/* + * Copyright (c) Contributors, http://opensimulator.org/ + * See CONTRIBUTORS.TXT for a full list of copyright holders. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the OpenSim Project nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Diagnostics; +using System.Drawing; +using System.Text; +using System.Windows.Forms; + +namespace OpenSim.GridLaunch.GUI.WinForm +{ + public partial class ProcessPanel : Form, IGUI + { + public ProcessPanel() + { + Application.EnableVisualStyles(); + //Application.SetCompatibleTextRenderingDefault(false); + + InitializeComponent(); + Program.AppCreated += Program_AppCreated; + Program.AppRemoved += Program_AppRemoved; + Program.AppConsoleOutput += Program_AppConsoleOutput; + Program.AppConsoleError += Program_AppConsoleError; + log4netAppender.LogLine += log4netAppender_LogLine; + } + + #region Module Start / Stop + public void StartGUI() + { + Application.Run(this); + } + + public void StopGUI() + { + this.Close(); + } + #endregion + + #region Main log tab + void log4netAppender_LogLine(Color color, string LogText) + { + ucLogWindow1.Write(color, LogText); + } + #endregion + + #region Form events + private void btnShutdown_Click(object sender, EventArgs e) + { + Program.Shutdown(); + } + #endregion + + #region GridLaunch Events + public delegate void Program_AppCreatedDelegate(string App); + public void Program_AppCreated(string App) + { + if (this.InvokeRequired) { + this.Invoke(new Program_AppCreatedDelegate(Program_AppCreated), App); + return; + } + + Trace.WriteLine("Start: " + App); + + // Do we already have app window for that app? + if (AppWindow_Get(App) != null) + return; + + // New log window + ucAppWindow aw = new ucAppWindow(); + // New tab page + TabPage tp = new TabPage(App); + // Add log window into tab page + tp.Controls.Add(aw); + // Add tab page into tab control + tabControl1.TabPages.Add(tp); + // Add it all to our internal list + AppWindow_Add(App, aw); + // Hook up events + aw.LineEntered += AppWindow_LineEntered; + + // Fill log window fully inside tab page + aw.Dock = DockStyle.Fill; + } + + + public delegate void Program_AppRemovedDelegate(string App); + public void Program_AppRemoved(string App) + { + if (this.InvokeRequired) { + this.Invoke(new Program_AppRemovedDelegate(Program_AppRemoved), App); + return; + } + + Trace.WriteLine("Stop: " + App); + + // Get app window + ucAppWindow aw = AppWindow_Get(App); + if (aw == null) + return; + + // Get its tab page + TabPage tp = aw.Parent as TabPage; + + if (tp != null) + { + // Remove tab page from tab control + tabControl1.TabPages.Remove(tp); + // Remove app window from tab + tp.Controls.Remove(aw); + } + + // Dispose of app window + aw.Dispose(); + + // Dispose of tab page + if (tp != null) + tp.Dispose(); + + // Remove from our internal list + AppWindow_Remove(App); + } + + + public delegate void Program_AppConsoleOutputDelegate(string App, string LogText); + void Program_AppConsoleOutput(string App, string LogText) + { + if (this.InvokeRequired) + { + this.Invoke(new Program_AppConsoleOutputDelegate(Program_AppConsoleOutput), App, LogText); + return; + } + + // Get app window + ucAppWindow aw = AppWindow_Get(App); + // Write text to it + if (aw != null) + aw.Write(System.Drawing.Color.Black, LogText); + } + + public delegate void Program_AppConsoleErrorDelegate(string App, string LogText); + void Program_AppConsoleError(string App, string LogText) + { + if (this.InvokeRequired) { + this.Invoke(new Program_AppConsoleErrorDelegate(Program_AppConsoleError), App, LogText); + return; + } + + // Get app window + ucAppWindow aw = AppWindow_Get(App); + // Write text to it + if (aw != null) + aw.Write(System.Drawing.Color.Red, LogText); + + } + #endregion + + #region App Window events + private void AppWindow_LineEntered(ucAppWindow AppWindow, string LogText) + { + Program.WriteLine(AppWindow_Get(AppWindow), LogText); + } + #endregion + + private void ProcessPanel_Load(object sender, EventArgs e) + { + string[] arr = new string[Program.Settings.Components.Keys.Count]; + Program.Settings.Components.Keys.CopyTo(arr, 0); + cblStartupComponents.Items.AddRange(arr); + + // Now correct all check states + for (int i = 0; i < cblStartupComponents.Items.Count; i++ ) + { + string _name = cblStartupComponents.Items[i] as string; + bool _checked = Program.Settings.Components[_name]; + + cblStartupComponents.SetItemChecked(i, _checked); + } + + + } + + + + + #region Internal App Window list and functions + private Dictionary _appWindows = new Dictionary(); + private Dictionary _appWindows_rev = new Dictionary(); + private void AppWindow_Add(string AppWindowName, ucAppWindow AppWindow) + { + lock (_appWindows) + { + _appWindows.Add(AppWindowName, AppWindow); + _appWindows_rev.Add(AppWindow, AppWindowName); + // Hook events + AppWindow.LineEntered += AppWindow_LineEntered; + } + } + private void AppWindow_Remove(ucAppWindow AppWindow) + { + lock (_appWindows) + { + if (_appWindows_rev.ContainsKey(AppWindow)) + { + // Unhook events + AppWindow.LineEntered -= AppWindow_LineEntered; + // Delete from list + string name = _appWindows_rev[AppWindow]; + _appWindows.Remove(name); + _appWindows_rev.Remove(AppWindow); + } + } + } + private void AppWindow_Remove(string AppWindowName) + { + lock (_appWindows) + { + if (_appWindows.ContainsKey(AppWindowName)) + { + ucAppWindow AppWindow = _appWindows[AppWindowName]; + // Unhook events + AppWindow.LineEntered -= AppWindow_LineEntered; + // Delete from list + _appWindows.Remove(AppWindowName); + _appWindows_rev.Remove(AppWindow); + } + } + } + private string AppWindow_Get(ucAppWindow AppWindow) + { + lock (_appWindows) + { + if (_appWindows_rev.ContainsKey(AppWindow)) + return _appWindows_rev[AppWindow]; + } + return null; + } + private ucAppWindow AppWindow_Get(string AppWindowName) + { + lock (_appWindows) + { + if (_appWindows.ContainsKey(AppWindowName)) + return _appWindows[AppWindowName]; + } + return null; + } + #endregion + + private void btnSave_Click(object sender, EventArgs e) + { + Program.Settings.Components.Clear(); + for (int i = 0; i < cblStartupComponents.Items.Count; i++) + { + string _name = cblStartupComponents.Items[i] as string; + bool _checked = cblStartupComponents.GetItemChecked(i); + + Program.Settings.Components.Add(_name, _checked); + Program.Settings.SaveConfig(); + } + } + + } +} diff --git a/OpenSim/Tools/OpenSim.GridLaunch/GUI/WinForm/ProcessPanel.resx b/OpenSim/Tools/OpenSim.GridLaunch/GUI/WinForm/ProcessPanel.resx new file mode 100644 index 0000000..361d658 --- /dev/null +++ b/OpenSim/Tools/OpenSim.GridLaunch/GUI/WinForm/ProcessPanel.resx @@ -0,0 +1,882 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + + iVBORw0KGgoAAAANSUhEUgAAAAEAAAB8CAIAAAAny03BAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAOpgAA + DqYBh9ypbwAAAYpJREFUKFOV0fkrH3AYwPG3Y84NW2xzj76btomJHE20NUcpi9DKUlt+0i6EjbnmiOWY + ZTKSo69YtolNRHOEYWsIK8sksiZZU5Ompo8n379gP7x63s/z+fEDdz7w3+4Oondv6JD+/WH0H4xgkDx6 + yDBlDMPUcY6kfcQofQKjjEmMH05h8ugTppmfMc36gtnjacyzZziaM8uxvDks8uexfLKAVcFXjhctcqL4 + G9YlS9iUfufk02VOla9wumIV28o17KvWcXj+A8fqnzi92MC5ZhOX2i1cX/5CU/8bTcM25xr/4Na0w/mW + XS5q/+LeuodH2z882ve51KHweq3wfqvw6VT4din83ykC3isu9yoC+xRB/Qq7bHDIBfs8sJPpWABOxXIr + lFsRuJaJCtA8gzPibDVcqAE34VknXStv0n7N0rJ7N0m3QIAWrrZBYCtcewVXRLAIeQMRnXKTGdmtE9YF + 0T0QLh0lM6YProu4fgjthRsDcFO+79YQJIhY6fhBSByB26M6SeM6idIJwxwAjlSW4/2by3sAAAAASUVO + RK5CYII= + + + + + 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 + OxA5OCbeDtx9K3DPLXK640Zg0m2SxhFsyEF63x2SBmfMDVIQl9RsuASBrCx4dt0MSL4dkHgrYNdNUvWO + m/6xN/ygz64bvjtv+MTf9Iq76Rl/02PnDbfNV12h/7orTpuuOq5ttlt/2WZlk/W6ZstVTebRTcoVjWZR + jfLIepNFdUaL66QLayXL6g1mVIvn1ujPrhYtqhVNuSicfUk48YLOrIuC6RcF484LJp7nj0WIRkELIAeE + mH2JNwYB03nejIskjfwhQBp6aTgFnvHnyKXJNAFO8IymObiE04kI+3BHjeYgDTkzL6lEAR0hB/lgQ3Gk + cUQaVSCBq+ojCk6hmUwZJFgaRQi40iMYUAvTQa0Ypz9nfwwVbvxw8/df6n9482qAbcLZNboTLogmXxLN + rtZfWi+edslgYZ1kUZ00ssF4Wo0JQC6q0XRFo2J1szK62WLLVQpyV222XrXbcMVh61XHbdec1lx22XXD + Jfa6647rbvE33Xfc8Nh23XPnTc/Y616brgFRvHfd9N59E+jik3jbZ8cNH6S3XScUd9Nn1w2fPTd9Ym+Q + NEVHkgaBB8e9t0gOOHfd9Nl+nZxGX1FdAlyxq6At1wgPchJueW+5huq8dt7wggJrrwJ0AWbu26+7xV53 + 236d6em8/Zrj9msO6y/bbbpiu/GKTWSj1eYrlmuaCbCtazZb0QhQl6H5C2ql06oNF9dJFtSJ59WKF9Tq + LakjSwEYbfx54bjzOjMuCaZcEMy8JJhwgT/1IsGVaQAebDCep6hDAQn5I8/yJlEIwWk/7EDSSwyuplwk + NBx3wiiezakmzMgBD44RuE+GSAvxH6I3ygkGAnKXyBH8uARCceQjAQWQABvk44iyuIR8Vgu7ikykUQur + CEIIWNJMcKIWKM/pz9mfGz/c/P1X+x/e/DodeOq5NcL5tboL60RL6vUW1ukvqhMvbTCYVC1ZUi9d3mC0 + pM5kaYNsSb18Xj0CGsXGK8o1zRZrL1tGN1mtabbZeNVm4xWAhN3mq/ZAuw1XHLdfd9py1WkHQRGXXTdd + tl1z2XnDJeY6AT+EehuvusbddN12jdDWa67br7nuvEmOSG++5hpzzXXXTYSDrltoGoRM5IAZxVEWzLgK + fpazm57uuOG6E3STnMai3hukxlVXSNUx1503XyH6rL/iGHXZYdMV+5jrdhuv2G64YgPl0YR1pCHmQO6o + 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 + + + \ No newline at end of file diff --git a/OpenSim/Tools/OpenSim.GridLaunch/GUI/WinForm/ucAppWindow.Designer.cs b/OpenSim/Tools/OpenSim.GridLaunch/GUI/WinForm/ucAppWindow.Designer.cs new file mode 100644 index 0000000..1ff7d43 --- /dev/null +++ b/OpenSim/Tools/OpenSim.GridLaunch/GUI/WinForm/ucAppWindow.Designer.cs @@ -0,0 +1,72 @@ +namespace OpenSim.GridLaunch.GUI.WinForm +{ + partial class ucAppWindow + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Component Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.ucLogWindow1 = new OpenSim.GridLaunch.GUI.WinForm.ucLogWindow(); + this.ucInputField1 = new OpenSim.GridLaunch.GUI.WinForm.ucInputField(); + this.SuspendLayout(); + // + // ucLogWindow1 + // + this.ucLogWindow1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.ucLogWindow1.Location = new System.Drawing.Point(3, 3); + this.ucLogWindow1.Name = "ucLogWindow1"; + this.ucLogWindow1.Size = new System.Drawing.Size(232, 132); + this.ucLogWindow1.TabIndex = 0; + // + // ucInputField1 + // + this.ucInputField1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.ucInputField1.Location = new System.Drawing.Point(0, 141); + this.ucInputField1.Name = "ucInputField1"; + this.ucInputField1.Size = new System.Drawing.Size(234, 30); + this.ucInputField1.TabIndex = 1; + // + // ucAppWindow + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.Controls.Add(this.ucInputField1); + this.Controls.Add(this.ucLogWindow1); + this.DoubleBuffered = true; + this.Name = "ucAppWindow"; + this.Size = new System.Drawing.Size(235, 166); + this.ResumeLayout(false); + + } + + #endregion + + private ucLogWindow ucLogWindow1; + private ucInputField ucInputField1; + } +} diff --git a/OpenSim/Tools/OpenSim.GridLaunch/GUI/WinForm/ucAppWindow.cs b/OpenSim/Tools/OpenSim.GridLaunch/GUI/WinForm/ucAppWindow.cs new file mode 100644 index 0000000..66072dc --- /dev/null +++ b/OpenSim/Tools/OpenSim.GridLaunch/GUI/WinForm/ucAppWindow.cs @@ -0,0 +1,63 @@ +/* + * Copyright (c) Contributors, http://opensimulator.org/ + * See CONTRIBUTORS.TXT for a full list of copyright holders. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the OpenSim Project nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Drawing; +using System.Data; +using System.Text; +using System.Windows.Forms; + +namespace OpenSim.GridLaunch.GUI.WinForm +{ + public partial class ucAppWindow : UserControl + { + // Just forwarding from ucInputField1 + public delegate void LineEnteredDelegate(ucAppWindow AppWindow, string Text); + public event LineEnteredDelegate LineEntered; + + public ucAppWindow() + { + InitializeComponent(); + ucInputField1.LineEntered += ucInputField1_LineEntered; + } + + #region Forward Text Input Event and Log Write Function + void ucInputField1_LineEntered(string Text) + { + if (LineEntered != null) + LineEntered(this, Text); + } + + public void Write(Color color, string LogText) + { + ucLogWindow1.Write(color, LogText); + } + #endregion + + } +} diff --git a/OpenSim/Tools/OpenSim.GridLaunch/GUI/WinForm/ucAppWindow.resx b/OpenSim/Tools/OpenSim.GridLaunch/GUI/WinForm/ucAppWindow.resx new file mode 100644 index 0000000..19dc0dd --- /dev/null +++ b/OpenSim/Tools/OpenSim.GridLaunch/GUI/WinForm/ucAppWindow.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/OpenSim/Tools/OpenSim.GridLaunch/GUI/WinForm/ucInputField.Designer.cs b/OpenSim/Tools/OpenSim.GridLaunch/GUI/WinForm/ucInputField.Designer.cs new file mode 100644 index 0000000..1eaec69 --- /dev/null +++ b/OpenSim/Tools/OpenSim.GridLaunch/GUI/WinForm/ucInputField.Designer.cs @@ -0,0 +1,77 @@ +namespace OpenSim.GridLaunch.GUI.WinForm +{ + partial class ucInputField + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Component Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.txtInput = new System.Windows.Forms.TextBox(); + this.btnSend = new System.Windows.Forms.Button(); + this.SuspendLayout(); + // + // txtInput + // + this.txtInput.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.txtInput.Location = new System.Drawing.Point(3, 2); + this.txtInput.Name = "txtInput"; + this.txtInput.Size = new System.Drawing.Size(289, 20); + this.txtInput.TabIndex = 0; + this.txtInput.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.txtInput_KeyPress); + // + // btnSend + // + this.btnSend.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.btnSend.Location = new System.Drawing.Point(295, 0); + this.btnSend.Name = "btnSend"; + this.btnSend.Size = new System.Drawing.Size(75, 23); + this.btnSend.TabIndex = 3; + this.btnSend.Text = "&Send"; + this.btnSend.UseVisualStyleBackColor = true; + this.btnSend.Click += new System.EventHandler(this.btnSend_Click); + // + // ucInputField + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.Controls.Add(this.btnSend); + this.Controls.Add(this.txtInput); + this.Name = "ucInputField"; + this.Size = new System.Drawing.Size(373, 25); + this.Load += new System.EventHandler(this.ucInputField_Load); + this.Resize += new System.EventHandler(this.ucInputField_Resize); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.TextBox txtInput; + private System.Windows.Forms.Button btnSend; + } +} diff --git a/OpenSim/Tools/OpenSim.GridLaunch/GUI/WinForm/ucInputField.cs b/OpenSim/Tools/OpenSim.GridLaunch/GUI/WinForm/ucInputField.cs new file mode 100644 index 0000000..5ffa275 --- /dev/null +++ b/OpenSim/Tools/OpenSim.GridLaunch/GUI/WinForm/ucInputField.cs @@ -0,0 +1,97 @@ +/* + * Copyright (c) Contributors, http://opensimulator.org/ + * See CONTRIBUTORS.TXT for a full list of copyright holders. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the OpenSim Project nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Diagnostics; +using System.Drawing; +using System.Data; +using System.Text; +using System.Windows.Forms; + +namespace OpenSim.GridLaunch.GUI.WinForm +{ + public partial class ucInputField : UserControl + { + public delegate void LineEnteredDelegate(string Text); + public event LineEnteredDelegate LineEntered; + + public List History = new List(); + + public ucInputField() + { + InitializeComponent(); + } + + private void ucInputField_Load(object sender, EventArgs e) + { + _resize(); + } + + private void ucInputField_Resize(object sender, EventArgs e) + { + _resize(); + } + + private void _resize() + { + Height = txtInput.Height + 10; + } + + private void btnSend_Click(object sender, EventArgs e) + { + Send(); + } + + private void txtInput_KeyPress(object sender, KeyPressEventArgs e) + { + //Trace.WriteLine("KeyChar: " + ((int)e.KeyChar).ToString()); + if (e.KeyChar == 13) + { + e.Handled = true; + Send(); + } + + // TODO: Add arrow up/down history functions + } + + private void Send() + { + // Remove \r\n at end + string txt = txtInput.Text.TrimEnd("\r\n".ToCharArray()); + + // Fire event + if (LineEntered != null) + LineEntered(txt); + + // Add to history + History.Add(txtInput.Text); + + txtInput.Text = ""; + } + } +} diff --git a/OpenSim/Tools/OpenSim.GridLaunch/GUI/WinForm/ucInputField.resx b/OpenSim/Tools/OpenSim.GridLaunch/GUI/WinForm/ucInputField.resx new file mode 100644 index 0000000..19dc0dd --- /dev/null +++ b/OpenSim/Tools/OpenSim.GridLaunch/GUI/WinForm/ucInputField.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/OpenSim/Tools/OpenSim.GridLaunch/GUI/WinForm/ucLogWindow.Designer.cs b/OpenSim/Tools/OpenSim.GridLaunch/GUI/WinForm/ucLogWindow.Designer.cs new file mode 100644 index 0000000..839fe99 --- /dev/null +++ b/OpenSim/Tools/OpenSim.GridLaunch/GUI/WinForm/ucLogWindow.Designer.cs @@ -0,0 +1,62 @@ +namespace OpenSim.GridLaunch.GUI.WinForm +{ + partial class ucLogWindow + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Component Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.txtLog = new System.Windows.Forms.TextBox(); + this.SuspendLayout(); + // + // txtLog + // + this.txtLog.BackColor = System.Drawing.SystemColors.Window; + this.txtLog.Dock = System.Windows.Forms.DockStyle.Fill; + this.txtLog.Location = new System.Drawing.Point(0, 0); + this.txtLog.Multiline = true; + this.txtLog.Name = "txtLog"; + this.txtLog.ReadOnly = true; + this.txtLog.ScrollBars = System.Windows.Forms.ScrollBars.Vertical; + this.txtLog.Size = new System.Drawing.Size(150, 150); + this.txtLog.TabIndex = 0; + this.txtLog.TextChanged += new System.EventHandler(this.txtLog_TextChanged); + // + // ucLogWindow + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.Controls.Add(this.txtLog); + this.Name = "ucLogWindow"; + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.TextBox txtLog; + } +} diff --git a/OpenSim/Tools/OpenSim.GridLaunch/GUI/WinForm/ucLogWindow.cs b/OpenSim/Tools/OpenSim.GridLaunch/GUI/WinForm/ucLogWindow.cs new file mode 100644 index 0000000..7b35c15 --- /dev/null +++ b/OpenSim/Tools/OpenSim.GridLaunch/GUI/WinForm/ucLogWindow.cs @@ -0,0 +1,54 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Drawing; +using System.Data; +using System.Text; +using System.Windows.Forms; + +namespace OpenSim.GridLaunch.GUI.WinForm +{ + public partial class ucLogWindow : UserControl + { + // If text in window is more than this + private static readonly int logWindowMaxTextLength = 20000; + // Remove this much from start of it + private static int logWindowTrunlTextLength = 10000; + + public ucLogWindow() + { + if (logWindowMaxTextLength < logWindowTrunlTextLength) + logWindowTrunlTextLength = logWindowMaxTextLength / 2; + + InitializeComponent(); + } + + public delegate void textWriteDelegate(Color color, string LogText); + public void Write(Color color, string LogText) + { + // Check if we to pass task on to GUI thread + if (this.InvokeRequired) + { + this.Invoke(new textWriteDelegate(Write), color, LogText); + return; + } + // Append to window + try + { + if (!txtLog.IsDisposed) + txtLog.AppendText(LogText); + } catch { } + } + + private void txtLog_TextChanged(object sender, EventArgs e) + { + // Go to bottom of window + txtLog.ScrollToCaret(); + + // Make sure amount of text in window doesn't grow too big + if (txtLog.Text.Length > logWindowMaxTextLength) + txtLog.Text = txtLog.Text.Remove(0, logWindowTrunlTextLength); + } + + } +} diff --git a/OpenSim/Tools/OpenSim.GridLaunch/GUI/WinForm/ucLogWindow.resx b/OpenSim/Tools/OpenSim.GridLaunch/GUI/WinForm/ucLogWindow.resx new file mode 100644 index 0000000..19dc0dd --- /dev/null +++ b/OpenSim/Tools/OpenSim.GridLaunch/GUI/WinForm/ucLogWindow.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/OpenSim/Tools/OpenSim.GridLaunch/OpenSim.GridLaunch.csproj b/OpenSim/Tools/OpenSim.GridLaunch/OpenSim.GridLaunch.csproj new file mode 100644 index 0000000..b262dd1 --- /dev/null +++ b/OpenSim/Tools/OpenSim.GridLaunch/OpenSim.GridLaunch.csproj @@ -0,0 +1,126 @@ + + + + Debug + AnyCPU + 9.0.30729 + 2.0 + {595D67F3-B413-4A43-8568-5B5930E3B31D} + Exe + Properties + OpenSim.GridLaunch + OpenSim.GridLaunch + v2.0 + 512 + + + true + full + false + ..\..\..\bin\ + DEBUG;TRACE + prompt + 4 + x86 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + + + + Component + + + Form + + + ProcessPanel.cs + + + UserControl + + + ucAppWindow.cs + + + UserControl + + + ucInputField.cs + + + UserControl + + + ucLogWindow.cs + + + + + + True + True + Resources.resx + + + + + + ProcessPanel.cs + + + ucAppWindow.cs + + + ucInputField.cs + + + ucLogWindow.cs + + + + + + + + + + + PreserveNewest + + + ResXFileCodeGenerator + Resources.Designer.cs + + + + + \ No newline at end of file diff --git a/OpenSim/Tools/OpenSim.GridLaunch/OpenSim.GridLaunch.ini b/OpenSim/Tools/OpenSim.GridLaunch/OpenSim.GridLaunch.ini new file mode 100644 index 0000000..c065898 --- /dev/null +++ b/OpenSim/Tools/OpenSim.GridLaunch/OpenSim.GridLaunch.ini @@ -0,0 +1,3 @@ +GUI=WinForm +;GUI=TCPD +;Components=c:\temp\test.bat;true \ No newline at end of file diff --git a/OpenSim/Tools/OpenSim.GridLaunch/OpenSim.GridLaunch.sln b/OpenSim/Tools/OpenSim.GridLaunch/OpenSim.GridLaunch.sln new file mode 100644 index 0000000..8f745e1 --- /dev/null +++ b/OpenSim/Tools/OpenSim.GridLaunch/OpenSim.GridLaunch.sln @@ -0,0 +1,20 @@ + +Microsoft Visual Studio Solution File, Format Version 10.00 +# Visual Studio 2008 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OpenSim.GridLaunch", "OpenSim.GridLaunch.csproj", "{595D67F3-B413-4A43-8568-5B5930E3B31D}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {595D67F3-B413-4A43-8568-5B5930E3B31D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {595D67F3-B413-4A43-8568-5B5930E3B31D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {595D67F3-B413-4A43-8568-5B5930E3B31D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {595D67F3-B413-4A43-8568-5B5930E3B31D}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/OpenSim/Tools/OpenSim.GridLaunch/Program.cs b/OpenSim/Tools/OpenSim.GridLaunch/Program.cs new file mode 100644 index 0000000..5a0bb0c --- /dev/null +++ b/OpenSim/Tools/OpenSim.GridLaunch/Program.cs @@ -0,0 +1,245 @@ +/* + * Copyright (c) Contributors, http://opensimulator.org/ + * See CONTRIBUTORS.TXT for a full list of copyright holders. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the OpenSim Project nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +using System; +using System.Collections; +using System.Collections.Generic; +using System.Reflection; +using System.Threading; +using log4net; +using log4net.Appender; +using log4net.Repository.Hierarchy; +using OpenSim.GridLaunch.GUI; +using OpenSim.GridLaunch.GUI.Network; + +namespace OpenSim.GridLaunch +{ + class Program + { + public static readonly string ConfigFile = "OpenSim.GridLaunch.ini"; + internal static Dictionary AppList = new Dictionary(); + private static readonly int delayBetweenExecuteSeconds = 10; + //private static readonly int consoleReadIntervalMilliseconds = 50; + ////private static readonly Timer readTimer = new Timer(readConsole, null, Timeout.Infinite, Timeout.Infinite); + //private static Thread timerThread; + //private static object timerThreadLock = new object(); + private static IGUI GUIModule; + private static string GUIModuleName = ""; + public static readonly CommandProcessor Command = new CommandProcessor(); + public static readonly Settings Settings = new Settings(); + + private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); + + public delegate void AppConsoleOutputDelegate(string App, string Text); + public static event AppConsoleOutputDelegate AppConsoleOutput; + public delegate void AppConsoleErrorDelegate(string App, string Text); + public static event AppConsoleErrorDelegate AppConsoleError; + public delegate void AppCreatedDelegate(string App); + public static event AppCreatedDelegate AppCreated; + public delegate void AppRemovedDelegate(string App); + public static event AppRemovedDelegate AppRemoved; + + internal static void FireAppConsoleOutput(string App, string Text) + { + if (AppConsoleOutput != null) + AppConsoleOutput(App, Text); + } + internal static void FireAppConsoleError(string App, string Text) + { + if (AppConsoleError != null) + AppConsoleError(App, Text); + } + + + private static readonly object startStopLock = new object(); + + public static string Name { get { return "OpenSim Grid executor"; } } + + #region Start/Shutdown + static void Main(string[] args) + { + log4net.Config.XmlConfigurator.Configure(); + + // Startup + m_log.Info(Name); + m_log.Info(new string('-', Name.Length)); + + // Read settings + Settings.LoadConfig(ConfigFile); + // Command line arguments override settings + Settings.ParseCommandArguments(args); + + // Start GUI module + StartGUIModule(); + + // Start the processes + ThreadPool.QueueUserWorkItem(startProcesses); + + // Hand over thread control to whatever GUI module + GUIModule.StartGUI(); + + // GUI module returned, we are done + Shutdown(); + + } + + private static void StartGUIModule() + { + // Create GUI module + GUIModuleName = Settings["GUI"]; + + switch (GUIModuleName.ToLower()) + { + case "winform": + GUIModuleName = "WinForm"; + GUIModule = new GUI.WinForm.ProcessPanel(); + break; + case "service": + GUIModuleName = "Service"; + GUIModule = new Service(); + break; + case "tcpd": + GUIModuleName = "TCPD"; + GUIModule = new TCPD(); + break; + case "console": + default: + GUIModuleName = "Console"; + GUIModule = new GUI.Console.Console(); + break; + } + m_log.Info("GUI type: " + GUIModuleName); + + } + + internal static void Shutdown() + { + // Stop the processes + stopProcesses(); + + lock (startStopLock) + { + // Stop GUI module + if (GUIModule != null) + { + GUIModule.StopGUI(); + GUIModule = null; + } + } + } + + internal static void SafeDisposeOf(object obj) + { + IDisposable o = obj as IDisposable; + try + { + if (o != null) + o.Dispose(); + } + catch { } + } + #endregion + + #region Start / Stop applications + private static void startProcesses(Object stateInfo) + { + // Stop before starting + stopProcesses(); + + // Start console read timer + //timer_Start(); + + // Start the applications + foreach (string file in new ArrayList(Settings.Components.Keys)) + { + // Is this file marked for startup? + if (Settings.Components[file]) + { + AppExecutor app = new AppExecutor(file); + app.Start(); + AppList.Add(file, app); + if (AppCreated != null) + AppCreated(app.File); + System.Threading.Thread.Sleep(1000*delayBetweenExecuteSeconds); + } + } + } + + private static void stopProcesses() + { + // Stop timer + //timer_Stop(); + + // Lock so we don't collide with any timer still executing on AppList + lock (AppList) + { + // Start the applications + foreach (AppExecutor app in AppList.Values) + { + try + { + m_log.Info("Stopping: " + app.File); + app.Stop(); + } + catch (Exception ex) + { + m_log.ErrorFormat("Exception while stopping \"{0}\": {1}", app.File, ex.ToString()); + } + finally + { + if (AppRemoved != null) + AppRemoved(app.File); + app.Dispose(); + } + + } + AppList.Clear(); + } + } + #endregion + + public static void Write(string App, string Text) + { + // Check if it is a commands + bool isCommand = Command.Process(App, Text); + + // Write to stdInput of app + if (!isCommand && AppList.ContainsKey(App)) + AppList[App].Write(Text); + } + + public static void WriteLine(string App, string Text) + { + // Check if it is a commands + bool isCommand = Command.Process(App, Text); + + // Write to stdInput of app + if (!isCommand && AppList.ContainsKey(App)) + AppList[App].WriteLine(Text); + } + } +} diff --git a/OpenSim/Tools/OpenSim.GridLaunch/Properties/AssemblyInfo.cs b/OpenSim/Tools/OpenSim.GridLaunch/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..4c300d0 --- /dev/null +++ b/OpenSim/Tools/OpenSim.GridLaunch/Properties/AssemblyInfo.cs @@ -0,0 +1,63 @@ +/* + * Copyright (c) Contributors, http://opensimulator.org/ + * See CONTRIBUTORS.TXT for a full list of copyright holders. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the OpenSim Project nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("OpenSim.GridLaunch")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("OpenSim.GridLaunch")] +[assembly: AssemblyCopyright("Copyright (c) 2008")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("5072e919-46ab-47e6-8a63-08108324ccdf")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/OpenSim/Tools/OpenSim.GridLaunch/Properties/Resources.Designer.cs b/OpenSim/Tools/OpenSim.GridLaunch/Properties/Resources.Designer.cs new file mode 100644 index 0000000..88b0ceb --- /dev/null +++ b/OpenSim/Tools/OpenSim.GridLaunch/Properties/Resources.Designer.cs @@ -0,0 +1,84 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.50727.3053 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace OpenSim.GridLaunch.Properties { + using System; + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "2.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("OpenSim.GridLaunch.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + + internal static System.Drawing.Bitmap OpenSim { + get { + object obj = ResourceManager.GetObject("OpenSim", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + internal static System.Drawing.Bitmap OpenSim_Bottom_Border { + get { + object obj = ResourceManager.GetObject("OpenSim_Bottom_Border", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + internal static System.Drawing.Bitmap OpenSim_Right_Border { + get { + object obj = ResourceManager.GetObject("OpenSim_Right_Border", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + } +} diff --git a/OpenSim/Tools/OpenSim.GridLaunch/Properties/Resources.resx b/OpenSim/Tools/OpenSim.GridLaunch/Properties/Resources.resx new file mode 100644 index 0000000..b82a1fc --- /dev/null +++ b/OpenSim/Tools/OpenSim.GridLaunch/Properties/Resources.resx @@ -0,0 +1,130 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + ..\gui\winform\opensim.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\gui\winform\opensim bottom border.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\gui\winform\opensim right border.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + \ No newline at end of file diff --git a/OpenSim/Tools/OpenSim.GridLaunch/Settings.cs b/OpenSim/Tools/OpenSim.GridLaunch/Settings.cs new file mode 100644 index 0000000..91353d8 --- /dev/null +++ b/OpenSim/Tools/OpenSim.GridLaunch/Settings.cs @@ -0,0 +1,181 @@ +/* + * Copyright (c) Contributors, http://opensimulator.org/ + * See CONTRIBUTORS.TXT for a full list of copyright holders. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the OpenSim Project nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +using System; +using System.Collections.Generic; +using System.Reflection; +using System.Text; +using log4net; + +namespace OpenSim.GridLaunch +{ + internal class Settings + { + private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); + private Dictionary Config = new Dictionary(); + public Dictionary Components = new Dictionary(); + + public static string[] defaultComponents = new string[] + { + "OpenSim.Grid.UserServer.exe", + "OpenSim.Grid.GridServer.exe", + "OpenSim.Grid.AssetServer.exe", + "OpenSim.Grid.InventoryServer.exe", + "OpenSim.Grid.MessagingServer.exe", + "OpenSim.32BitLaunch.exe" + }; + + + private static readonly char[] confSplit = new char[] { '=' }; + private static readonly char[] comaSplit = new char[] { ',' }; + private static readonly char[] colonSplit = new char[] { ';' }; + + private string configFile = ""; + + public Settings() + { + } + public Settings(string ConfigFile) + { + LoadConfig(ConfigFile); + } + + + public void LoadConfig(string ConfigFile) + { + configFile = ConfigFile; + m_log.Info("Reading config file: " + ConfigFile); + try + { + // Read config file + foreach (string line in System.IO.File.ReadAllLines(ConfigFile)) + { + string[] s = line.Split(confSplit, 2); + if (s.Length >= 2) + Config.Add(s[0], s[1]); + } + + // Process Components section + string cmp = Config["Components"]; + Config.Remove("Components"); + foreach (string c in cmp.Split(comaSplit)) + { + string[] cs = c.Split(colonSplit); + if (cs.Length >= 2) + { + bool status = false; + bool.TryParse(cs[1], out status); + Components.Add(cs[0], status); + } + } + } + catch (Exception ex) + { + m_log.Error("Exception reading config file: " + ex.ToString()); + } + // No components? Add default components + if (Components.Count == 0) + foreach (string c in defaultComponents) + { + Components.Add(c, true); + } + } + + public void SaveConfig(string ConfigFile) + { + configFile = ConfigFile; + SaveConfig(); + } + + public void SaveConfig() + { + m_log.Info("Writing config file: " + configFile); + try + { + System.IO.File.WriteAllText(configFile, ToString()); + } + catch (Exception ex) + { + m_log.Error("Exception writing config file: " + ex.ToString()); + } + + } + + public new string ToString() + { + StringBuilder ret = new StringBuilder(); + + Dictionary config = new Dictionary(Config); + + // Add Components key + StringBuilder _Components = new StringBuilder(); + foreach (string c in Components.Keys) + { + if (_Components.Length > 0) + _Components.Append(","); + _Components.Append(c + ";" + Components[c].ToString()); + } + config["Components"] = _Components.ToString(); + + // Make return string + foreach (string key in config.Keys) + { + ret.AppendLine(key + "=" + config[key]); + } + + // Return it + return ret.ToString(); + } + + public string this[string Key] + { + get + { + if (Config.ContainsKey(Key)) + return Config[Key]; + return ""; + } + set { Config[Key] = value; } + } + + public void ParseCommandArguments(string[] args) + { + string key = null; + foreach (string a in args) + { + if (a.StartsWith("--")) + key = a.Remove(0, 2); + else + { + if (key != null) + Config[key] = a; + key = null; + } + } + + } + } +} diff --git a/OpenSim/Tools/OpenSim.GridLaunch/log4netAppender.cs b/OpenSim/Tools/OpenSim.GridLaunch/log4netAppender.cs new file mode 100644 index 0000000..d9bea1a --- /dev/null +++ b/OpenSim/Tools/OpenSim.GridLaunch/log4netAppender.cs @@ -0,0 +1,65 @@ +/* + * Copyright (c) Contributors, http://opensimulator.org/ + * See CONTRIBUTORS.TXT for a full list of copyright holders. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the OpenSim Project nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +using System; +using System.Collections.Generic; +using System.Drawing; +using System.Text; +using System.Windows.Forms; +using log4net.Appender; +using log4net.Core; + +namespace OpenSim.GridLaunch +{ + internal class log4netAppender : log4net.Appender.AppenderSkeleton + { + public delegate void LogLineDelegate(Color color, string Text); + public static event LogLineDelegate LogLine; + public static readonly Dictionary Level2Color = new Dictionary(); + + static log4netAppender() + { + Level2Color.Add("INFO", Color.Black); + Level2Color.Add("DEBUG", Color.Gray); + Level2Color.Add("WARN", Color.OrangeRed); + Level2Color.Add("ERROR", Color.Red); + } + + + protected override void Append(LoggingEvent loggingEvent) + { + // Find appropriate color + Color color = Color.Black; + if (Level2Color.ContainsKey(loggingEvent.Level.Name)) + color = Level2Color[loggingEvent.Level.Name]; + + // Fire event with new log message + if (LogLine != null) + LogLine(color, loggingEvent.RenderedMessage + System.Environment.NewLine); + } + + } +} -- cgit v1.1 From 3a4ddfec7984ee281ae4aac9725596f9c98d3d8b Mon Sep 17 00:00:00 2001 From: Jeff Ames Date: Sat, 6 Dec 2008 03:54:01 +0000 Subject: Add copyright headers. --- OpenSim/Tools/OpenSim.GridLaunch/GUI/IGUI.cs | 29 ++++++++++++++++++++- .../OpenSim.GridLaunch/GUI/WinForm/ucLogWindow.cs | 30 ++++++++++++++++++++-- 2 files changed, 56 insertions(+), 3 deletions(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/OpenSim.GridLaunch/GUI/IGUI.cs b/OpenSim/Tools/OpenSim.GridLaunch/GUI/IGUI.cs index 45d8af7..ca1bb30 100644 --- a/OpenSim/Tools/OpenSim.GridLaunch/GUI/IGUI.cs +++ b/OpenSim/Tools/OpenSim.GridLaunch/GUI/IGUI.cs @@ -1,4 +1,31 @@ -using System; +/* + * Copyright (c) Contributors, http://opensimulator.org/ + * See CONTRIBUTORS.TXT for a full list of copyright holders. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the OpenSimulator Project nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +using System; using System.Collections.Generic; using System.Text; diff --git a/OpenSim/Tools/OpenSim.GridLaunch/GUI/WinForm/ucLogWindow.cs b/OpenSim/Tools/OpenSim.GridLaunch/GUI/WinForm/ucLogWindow.cs index 7b35c15..84c0a14 100644 --- a/OpenSim/Tools/OpenSim.GridLaunch/GUI/WinForm/ucLogWindow.cs +++ b/OpenSim/Tools/OpenSim.GridLaunch/GUI/WinForm/ucLogWindow.cs @@ -1,4 +1,31 @@ -using System; +/* + * Copyright (c) Contributors, http://opensimulator.org/ + * See CONTRIBUTORS.TXT for a full list of copyright holders. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the OpenSimulator Project nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +using System; using System.Collections.Generic; using System.ComponentModel; using System.Drawing; @@ -49,6 +76,5 @@ namespace OpenSim.GridLaunch.GUI.WinForm if (txtLog.Text.Length > logWindowMaxTextLength) txtLog.Text = txtLog.Text.Remove(0, logWindowTrunlTextLength); } - } } -- cgit v1.1 From b4a725ed87e088c0ec06e96c34569159cf3b3931 Mon Sep 17 00:00:00 2001 From: lbsa71 Date: Mon, 8 Dec 2008 14:45:40 +0000 Subject: * Killed off OpenSimExport. One project less to maintain. --- OpenSim/Tools/Export/OpenSimExport.cs | 112 ---------------------------------- 1 file changed, 112 deletions(-) delete mode 100644 OpenSim/Tools/Export/OpenSimExport.cs (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/Export/OpenSimExport.cs b/OpenSim/Tools/Export/OpenSimExport.cs deleted file mode 100644 index 570a855..0000000 --- a/OpenSim/Tools/Export/OpenSimExport.cs +++ /dev/null @@ -1,112 +0,0 @@ -/* - * Copyright (c) Contributors, http://opensimulator.org/ - * See CONTRIBUTORS.TXT for a full list of copyright holders. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * * Neither the name of the OpenSim Project nor the - * names of its contributors may be used to endorse or promote products - * derived from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -using System; -using System.IO; -using log4net.Config; -using Nini.Config; -using OpenSim; -using OpenSim.Framework; -using OpenSim.Framework.Console; -using OpenSim.Region.Environment; -using OpenSim.Region.Environment.Scenes; - -namespace OpenSimExport -{ - public class OpenSimExport - { - public IniConfigSource config; - public StorageManager sman; - - public OpenSimExport(IniConfigSource config) - { - this.config = config; - IConfig startup = config.Configs["Startup"]; - // AddinManager.Initialize("."); - // AddinManager.Registry.Update(null); - - MainConsole.Instance = CreateConsole(); - - sman = new StorageManager( - startup.GetString("storage_plugin", "OpenSim.DataStore.NullStorage.dll"), - startup.GetString("storage_connection_string", String.Empty), - startup.GetString("estate_connection_string", String.Empty) - ); - } - - public static void Main(string[] args) - { - XmlConfigurator.Configure(); - - OpenSimExport export = new OpenSimExport(InitConfig(args)); - RegionInfo reg = new RegionInfo("Sara Jane", "Regions/1000-1000.xml",false); - - Console.WriteLine("This application does nothing useful yet: " + reg.RegionID); - foreach (SceneObjectGroup group in export.sman.DataStore.LoadObjects(reg.RegionID)) - { - Console.WriteLine("{0} -> {1}", reg.RegionID, group.UUID); - } - } - - protected static ConsoleBase CreateConsole() - { - return new ConsoleBase("Export", null); - } - - private static IniConfigSource InitConfig(string[] args) - { - Console.WriteLine("Good"); - ArgvConfigSource configSource = new ArgvConfigSource(args); - configSource.AddSwitch("Startup", "inifile"); - - IConfig startupConfig = configSource.Configs["Startup"]; - string iniFilePath = startupConfig.GetString("inifile", "OpenSim.ini"); - Console.WriteLine(iniFilePath); - IniConfigSource config = new IniConfigSource(); - //check for .INI file (either default or name passed in command line) - if (! File.Exists(iniFilePath)) - { - iniFilePath = Path.Combine(Util.configDir(), iniFilePath); - } - - if (File.Exists(iniFilePath)) - { - config.Merge(new IniConfigSource(iniFilePath)); - config.Merge(configSource); - } - else - { - // no default config files, so set default values, and save it - Console.WriteLine("We didn't find a config!"); - config.Merge(ConfigurationLoader.DefaultConfig()); - config.Merge(configSource); - } - - return config; - } - } -} -- cgit v1.1 From 54c6a920baa0ef02a9ea09e08cc1effcef3b0a3a Mon Sep 17 00:00:00 2001 From: Melanie Thielker Date: Sat, 7 Feb 2009 12:25:39 +0000 Subject: Replace the console for all OpenSim apps with a new console featuring command line editing, context sensitive help (press ? at any time), command line history, a new plugin command system and new appender features thet let you type while the console is scrolling. Seamlessly integrates the ICommander interfaces. --- OpenSim/Tools/pCampBot/BotManager.cs | 85 ++++++++++++++++++++++-------------- 1 file changed, 52 insertions(+), 33 deletions(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/pCampBot/BotManager.cs b/OpenSim/Tools/pCampBot/BotManager.cs index 100f2d4..3b08adc 100644 --- a/OpenSim/Tools/pCampBot/BotManager.cs +++ b/OpenSim/Tools/pCampBot/BotManager.cs @@ -31,6 +31,9 @@ using System.Reflection; using System.Threading; using OpenMetaverse; using log4net; +using log4net.Appender; +using log4net.Core; +using log4net.Repository; using Nini.Config; using OpenSim.Framework; using OpenSim.Framework.Console; @@ -40,7 +43,7 @@ namespace pCampBot /// /// Thread/Bot manager for the application /// - public class BotManager : conscmd_callback + public class BotManager { private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); @@ -59,6 +62,36 @@ namespace pCampBot { m_console = CreateConsole(); MainConsole.Instance = m_console; + + // Make log4net see the console + // + ILoggerRepository repository = LogManager.GetRepository(); + IAppender[] appenders = repository.GetAppenders(); + OpenSimAppender consoleAppender = null; + + foreach (IAppender appender in appenders) + { + if (appender.Name == "Console") + { + consoleAppender = (OpenSimAppender)appender; + consoleAppender.Console = m_console; + break; + } + } + + m_console.Commands.AddCommand("bot", "shutdown", + "shutdown", + "Gracefully shut down bots", HandleShutdown); + + m_console.Commands.AddCommand("bot", "quit", + "quit", + "Force quit (DANGEROUS, try shutdown first)", + HandleShutdown); + + m_console.Commands.AddCommand("bot", "add bots", + "add bots ", + "Add more bots", HandleAddBots); + m_lBot = new List(); } @@ -175,45 +208,31 @@ namespace pCampBot /// protected ConsoleBase CreateConsole() { - return new ConsoleBase("Region", this); + return new ConsoleBase("Region"); } - /// - /// Command runnint tool.. Currently use it to add bots, shutdown and (dangerous)Forcequit - /// - /// - /// - public void RunCmd(string command, string[] cmdparams) + private void HandleShutdown(string module, string[] cmd) { - switch (command) - { - case "shutdown": - m_console.Warn("BOTMANAGER", "Shutting down bots"); - doBotShutdown(); - break; - case "quit": - m_console.Warn("DANGER", "This should only be used to quit the program if you've already used the shutdown command and the program hasn't quit"); - Environment.Exit(0); - break; - case "addbots": - int newbots; - Int32.TryParse(cmdparams[0], out newbots); + m_console.Warn("BOTMANAGER", "Shutting down bots"); + doBotShutdown(); + } - if (newbots > 0) - addbots(newbots); - break; - case "help": - m_console.Notice("HELP", "\nshutdown - graceful shutdown\naddbots - adds n bots to the test\nquit - forcequits, dangerous if you have not already run shutdown"); - break; - } + private void HandleQuit(string module, string[] cmd) + { + m_console.Warn("DANGER", "This should only be used to quit the program if you've already used the shutdown command and the program hasn't quit"); + Environment.Exit(0); } - /// - /// Required method to implement the conscmd_callback interface - /// - /// What to show - public void Show(string[] showParams) + private void HandleAddBots(string module, string[] cmd) { + int newbots = 0; + + if (cmd.Length > 2) + { + Int32.TryParse(cmd[2], out newbots); + } + if (newbots > 0) + addbots(newbots); } } } -- cgit v1.1 From 9bfbfa381abc92f3c5fc8e97405943128c85c5d4 Mon Sep 17 00:00:00 2001 From: Melanie Thielker Date: Tue, 10 Feb 2009 23:15:48 +0000 Subject: Add proper handling for shared vs. unshared modules to the command interface. Shared modules will now only get added once, so the command handler is called once per module, not once per scene. Removal of scenes has no adverse effects. Nonshared modules will be called for each scene. --- OpenSim/Tools/pCampBot/BotManager.cs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/pCampBot/BotManager.cs b/OpenSim/Tools/pCampBot/BotManager.cs index 3b08adc..aed3fa8 100644 --- a/OpenSim/Tools/pCampBot/BotManager.cs +++ b/OpenSim/Tools/pCampBot/BotManager.cs @@ -79,16 +79,16 @@ namespace pCampBot } } - m_console.Commands.AddCommand("bot", "shutdown", + m_console.Commands.AddCommand("bot", false, "shutdown", "shutdown", "Gracefully shut down bots", HandleShutdown); - m_console.Commands.AddCommand("bot", "quit", + m_console.Commands.AddCommand("bot", false, "quit", "quit", "Force quit (DANGEROUS, try shutdown first)", HandleShutdown); - m_console.Commands.AddCommand("bot", "add bots", + m_console.Commands.AddCommand("bot", false, "add bots", "add bots ", "Add more bots", HandleAddBots); -- cgit v1.1 From 5959e426834b49c9048b862506e9db50870ef867 Mon Sep 17 00:00:00 2001 From: Sean Dague Date: Thu, 12 Feb 2009 18:59:45 +0000 Subject: large scale fix for svn props after "the great refactor" --- .../OpenSim.GridLaunch/GUI/WinForm/OpenSim.png | Bin 44571 -> 44406 bytes 1 file changed, 0 insertions(+), 0 deletions(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/OpenSim.GridLaunch/GUI/WinForm/OpenSim.png b/OpenSim/Tools/OpenSim.GridLaunch/GUI/WinForm/OpenSim.png index 257ca39..3810842 100644 Binary files a/OpenSim/Tools/OpenSim.GridLaunch/GUI/WinForm/OpenSim.png and b/OpenSim/Tools/OpenSim.GridLaunch/GUI/WinForm/OpenSim.png differ -- cgit v1.1 From 95d53d48d4ce44cebf0f2d5803f58a0f7cfe8346 Mon Sep 17 00:00:00 2001 From: Jeff Ames Date: Fri, 13 Feb 2009 02:06:28 +0000 Subject: Add copyright headers. Minor formatting cleanup. Fix some compiler warnings. Fix some m_log declarations. --- OpenSim/Tools/pCampBot/BotManager.cs | 2 ++ 1 file changed, 2 insertions(+) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/pCampBot/BotManager.cs b/OpenSim/Tools/pCampBot/BotManager.cs index aed3fa8..c015bbc 100644 --- a/OpenSim/Tools/pCampBot/BotManager.cs +++ b/OpenSim/Tools/pCampBot/BotManager.cs @@ -217,11 +217,13 @@ namespace pCampBot doBotShutdown(); } + /* private void HandleQuit(string module, string[] cmd) { m_console.Warn("DANGER", "This should only be used to quit the program if you've already used the shutdown command and the program hasn't quit"); Environment.Exit(0); } + */ private void HandleAddBots(string module, string[] cmd) { -- cgit v1.1 From 5af465a364c74c715bbb99ee2a391b49a5fc4e11 Mon Sep 17 00:00:00 2001 From: lbsa71 Date: Thu, 19 Feb 2009 14:51:33 +0000 Subject: * Changed all AssemblyInfo to explicit version 1.0.0.0 to not confuse poor poor Nant. We probably should take the opportunity to let the non-module bins reside in their /bin/Debug dirs later. --- OpenSim/Tools/OpenSim.32BitLaunch/Properties/AssemblyInfo.cs | 2 +- OpenSim/Tools/OpenSim.GridLaunch/Properties/AssemblyInfo.cs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/OpenSim.32BitLaunch/Properties/AssemblyInfo.cs b/OpenSim/Tools/OpenSim.32BitLaunch/Properties/AssemblyInfo.cs index 74fedfa..6142a05 100644 --- a/OpenSim/Tools/OpenSim.32BitLaunch/Properties/AssemblyInfo.cs +++ b/OpenSim/Tools/OpenSim.32BitLaunch/Properties/AssemblyInfo.cs @@ -58,6 +58,6 @@ using System.Runtime.InteropServices; // // You can specify all the values or you can default the Build and Revision Numbers // by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] +// [assembly: AssemblyVersion("1.0.0.0")] [assembly: AssemblyVersion("1.0.0.0")] [assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/OpenSim/Tools/OpenSim.GridLaunch/Properties/AssemblyInfo.cs b/OpenSim/Tools/OpenSim.GridLaunch/Properties/AssemblyInfo.cs index 4c300d0..f14d194 100644 --- a/OpenSim/Tools/OpenSim.GridLaunch/Properties/AssemblyInfo.cs +++ b/OpenSim/Tools/OpenSim.GridLaunch/Properties/AssemblyInfo.cs @@ -58,6 +58,6 @@ using System.Runtime.InteropServices; // // You can specify all the values or you can default the Build and Revision Numbers // by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] +// [assembly: AssemblyVersion("1.0.0.0")] [assembly: AssemblyVersion("1.0.0.0")] [assembly: AssemblyFileVersion("1.0.0.0")] -- cgit v1.1 From 2e095f5727b2bd22ccf06f940ec191bed4fc8820 Mon Sep 17 00:00:00 2001 From: lbsa71 Date: Fri, 20 Feb 2009 16:47:31 +0000 Subject: * Upped VersionInfo to 0.6.3 and in the process, changed assemblyinfo to 0.6.3.* to better track down dll ref and overwrite problems. --- .../Tools/LaunchSLClient/LaunchSLClient/Properties/AssemblyInfo.cs | 4 ++-- OpenSim/Tools/OpenSim.32BitLaunch/Properties/AssemblyInfo.cs | 6 +++--- OpenSim/Tools/OpenSim.GridLaunch/Properties/AssemblyInfo.cs | 6 +++--- 3 files changed, 8 insertions(+), 8 deletions(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Properties/AssemblyInfo.cs b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Properties/AssemblyInfo.cs index 797580d..ae893e8 100644 --- a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Properties/AssemblyInfo.cs +++ b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Properties/AssemblyInfo.cs @@ -35,7 +35,7 @@ using System.Runtime.InteropServices; [assembly: AssemblyTitle("LaunchSLClient")] [assembly: AssemblyDescription("")] [assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] +[assembly: AssemblyCompany("http://opensimulator.org")] [assembly: AssemblyProduct("LaunchSLClient")] [assembly: AssemblyCopyright("Copyright (c) 2007")] [assembly: AssemblyTrademark("")] @@ -56,5 +56,5 @@ using System.Runtime.InteropServices; // Build Number // Revision // -[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyVersion("0.6.3.*")] [assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/OpenSim/Tools/OpenSim.32BitLaunch/Properties/AssemblyInfo.cs b/OpenSim/Tools/OpenSim.32BitLaunch/Properties/AssemblyInfo.cs index 6142a05..c971e9a 100644 --- a/OpenSim/Tools/OpenSim.32BitLaunch/Properties/AssemblyInfo.cs +++ b/OpenSim/Tools/OpenSim.32BitLaunch/Properties/AssemblyInfo.cs @@ -35,7 +35,7 @@ using System.Runtime.InteropServices; [assembly: AssemblyTitle("OpenSim.32BitLaunch")] [assembly: AssemblyDescription("")] [assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] +[assembly: AssemblyCompany("http://opensimulator.org")] [assembly: AssemblyProduct("OpenSim.32BitLaunch")] [assembly: AssemblyCopyright("Copyright (c) 2008")] [assembly: AssemblyTrademark("")] @@ -58,6 +58,6 @@ using System.Runtime.InteropServices; // // You can specify all the values or you can default the Build and Revision Numbers // by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyVersion("1.0.0.0")] +// [assembly: AssemblyVersion("0.6.3.*")] +[assembly: AssemblyVersion("0.6.3.*")] [assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/OpenSim/Tools/OpenSim.GridLaunch/Properties/AssemblyInfo.cs b/OpenSim/Tools/OpenSim.GridLaunch/Properties/AssemblyInfo.cs index f14d194..254e516 100644 --- a/OpenSim/Tools/OpenSim.GridLaunch/Properties/AssemblyInfo.cs +++ b/OpenSim/Tools/OpenSim.GridLaunch/Properties/AssemblyInfo.cs @@ -35,7 +35,7 @@ using System.Runtime.InteropServices; [assembly: AssemblyTitle("OpenSim.GridLaunch")] [assembly: AssemblyDescription("")] [assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] +[assembly: AssemblyCompany("http://opensimulator.org")] [assembly: AssemblyProduct("OpenSim.GridLaunch")] [assembly: AssemblyCopyright("Copyright (c) 2008")] [assembly: AssemblyTrademark("")] @@ -58,6 +58,6 @@ using System.Runtime.InteropServices; // // You can specify all the values or you can default the Build and Revision Numbers // by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyVersion("1.0.0.0")] +// [assembly: AssemblyVersion("0.6.3.*")] +[assembly: AssemblyVersion("0.6.3.*")] [assembly: AssemblyFileVersion("1.0.0.0")] -- cgit v1.1 From c89a4d9eb64fd641516860321d0b15beeba09d9f Mon Sep 17 00:00:00 2001 From: Sean Dague Date: Thu, 26 Feb 2009 21:29:25 +0000 Subject: * This patch reduces the excessive number of threads opened by the Timer event. Also simplifies the walking around method. From: Arthur Rodrigo S Valadares --- OpenSim/Tools/pCampBot/PhysicsBot.cs | 61 ++++++++++++++++++++++-------------- 1 file changed, 37 insertions(+), 24 deletions(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/pCampBot/PhysicsBot.cs b/OpenSim/Tools/pCampBot/PhysicsBot.cs index 8e43670..0ded0c0 100644 --- a/OpenSim/Tools/pCampBot/PhysicsBot.cs +++ b/OpenSim/Tools/pCampBot/PhysicsBot.cs @@ -53,7 +53,7 @@ namespace pCampBot protected Timer m_action; // Action Timer protected List objectIDs = new List(); - + protected Random somthing = new Random(Environment.TickCount);// We do stuff randomly here @@ -77,35 +77,46 @@ namespace pCampBot void m_action_Elapsed(object sender, ElapsedEventArgs e) { - //client.Throttle.Task = 500000f; - //client.Throttle.Set(); - int walkorrun = somthing.Next(4); // Randomize between walking and running. The greater this number, - // the greater the bot's chances to walk instead of run. - if (walkorrun == 0) - { - client.Self.Movement.AlwaysRun = true; - } - else + while(true) { - client.Self.Movement.AlwaysRun = false; - } + //client.Appearance.ForceRebakeAvatarTextures(); + //client.Appearance.SetPreviousAppearance(); - // TODO: unused: Vector3 pos = client.Self.SimPosition; - Vector3 newpos = new Vector3(somthing.Next(255), somthing.Next(255), somthing.Next(255)); - client.Self.Movement.TurnToward(newpos); + int walkorrun = somthing.Next(4); // Randomize between walking and running. The greater this number, + // the greater the bot's chances to walk instead of run. + client.Self.Jump(false); + if (walkorrun == 0) + { + client.Self.Movement.AlwaysRun = true; + } + else + { + client.Self.Movement.AlwaysRun = false; + } - for (int i = 0; i < 2000; i++) - { + // TODO: unused: Vector3 pos = client.Self.SimPosition; + Vector3 newpos = new Vector3(somthing.Next(255), somthing.Next(255), somthing.Next(255)); + client.Self.Movement.TurnToward(newpos); + + /* + // Why does it need to keep setting it true? Changing to just let it walk =) + for (int i = 0; i < 2000; i++) + { + client.Self.Movement.AtPos = true; + Thread.Sleep(somthing.Next(25, 75)); // Makes sure the bots keep walking for this time. + } + */ client.Self.Movement.AtPos = true; - Thread.Sleep(somthing.Next(25, 75)); // Makes sure the bots keep walking for this time. - } - client.Self.Jump(true); + Thread.Sleep(somthing.Next(3000,13000)); + client.Self.Movement.AtPos = false; + client.Self.Jump(true); - string randomf = talkarray[somthing.Next(talkarray.Length)]; - if (talkarray.Length > 1 && randomf.Length > 1) - client.Self.Chat(randomf, 0, ChatType.Normal); + string randomf = talkarray[somthing.Next(talkarray.Length)]; + if (talkarray.Length > 1 && randomf.Length > 1) + client.Self.Chat(randomf, 0, ChatType.Normal); - //Thread.Sleep(somthing.Next(1, 10)); // Apparently its better without it right now. + Thread.Sleep(somthing.Next(1000, 10000)); + } } /// @@ -157,6 +168,8 @@ namespace pCampBot if (OnConnected != null) { m_action = new Timer(somthing.Next(1000, 10000)); + m_action.Enabled = true; + m_action.AutoReset = false; m_action.Elapsed += new ElapsedEventHandler(m_action_Elapsed); m_action.Start(); OnConnected(this, EventType.CONNECTED); -- cgit v1.1 From 808e4a847ab699eb3f82cf8bb5de9e4688512426 Mon Sep 17 00:00:00 2001 From: Jeff Ames Date: Sun, 1 Mar 2009 09:15:31 +0000 Subject: Update svn properties, add copyright headers, minor formatting cleanup. --- OpenSim/Tools/pCampBot/PhysicsBot.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/pCampBot/PhysicsBot.cs b/OpenSim/Tools/pCampBot/PhysicsBot.cs index 0ded0c0..004cd30 100644 --- a/OpenSim/Tools/pCampBot/PhysicsBot.cs +++ b/OpenSim/Tools/pCampBot/PhysicsBot.cs @@ -77,7 +77,7 @@ namespace pCampBot void m_action_Elapsed(object sender, ElapsedEventArgs e) { - while(true) + while (true) { //client.Appearance.ForceRebakeAvatarTextures(); //client.Appearance.SetPreviousAppearance(); -- cgit v1.1 From 2fa57a2970b011ac3c92a6b4411a6f4ad1878bbb Mon Sep 17 00:00:00 2001 From: Adam Johnson Date: Sat, 7 Mar 2009 16:27:07 +0000 Subject: Moving Windows Installer to forge. --- OpenSim/Tools/Windows/Installer/OpenSim.nsi | 151 ---------------------------- 1 file changed, 151 deletions(-) delete mode 100644 OpenSim/Tools/Windows/Installer/OpenSim.nsi (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/Windows/Installer/OpenSim.nsi b/OpenSim/Tools/Windows/Installer/OpenSim.nsi deleted file mode 100644 index 3c3fe81..0000000 --- a/OpenSim/Tools/Windows/Installer/OpenSim.nsi +++ /dev/null @@ -1,151 +0,0 @@ -!include "MUI.nsh" - -Name "OpenSim" -OutFile "OpenSim Setup 0.5.exe" - -CRCCheck On - -InstallDir "$PROGRAMFILES\OpenSim" -InstallDirRegKey HKCU "Software\OpenSim" "" - -;Vista redirects $SMPROGRAMS to all users without this -RequestExecutionLevel admin - -Var MUI_TEMP -Var STARTMENU_FOLDER - -!define MUI_LANGDLL_REGISTRY_ROOT "HKCU" -!define MUI_LANGDLL_REGISTRY_KEY "Software\OpenSim" -!define MUI_LANGDLL_REGISTRY_VALUENAME "Installer Language" - -!define MUI_ABORTWARNING - -!insertmacro MUI_PAGE_WELCOME -!insertmacro MUI_PAGE_LICENSE "LICENSE.txt" -!insertmacro MUI_PAGE_DIRECTORY - -!define MUI_STARTMENUPAGE_REGISTRY_ROOT "HKCU" -!define MUI_STARTMENUPAGE_REGISTRY_KEY "Software\OpenSim" -!define MUI_STARTMENUPAGE_REGISTRY_VALUENAME "Start Menu Folder" - -!insertmacro MUI_PAGE_STARTMENU Application $STARTMENU_FOLDER - -!insertmacro MUI_PAGE_INSTFILES -!insertmacro MUI_PAGE_FINISH - -!insertmacro MUI_UNPAGE_WELCOME -!insertmacro MUI_UNPAGE_CONFIRM -!insertmacro MUI_UNPAGE_INSTFILES -!insertmacro MUI_UNPAGE_FINISH - -!insertmacro MUI_LANGUAGE "English" -!insertmacro MUI_LANGUAGE "French" -!insertmacro MUI_LANGUAGE "German" -!insertmacro MUI_LANGUAGE "Spanish" -!insertmacro MUI_LANGUAGE "SpanishInternational" -!insertmacro MUI_LANGUAGE "SimpChinese" -!insertmacro MUI_LANGUAGE "TradChinese" -!insertmacro MUI_LANGUAGE "Japanese" -!insertmacro MUI_LANGUAGE "Korean" -!insertmacro MUI_LANGUAGE "Italian" -!insertmacro MUI_LANGUAGE "Dutch" -!insertmacro MUI_LANGUAGE "Danish" -!insertmacro MUI_LANGUAGE "Swedish" -!insertmacro MUI_LANGUAGE "Norwegian" -!insertmacro MUI_LANGUAGE "NorwegianNynorsk" -!insertmacro MUI_LANGUAGE "Finnish" -!insertmacro MUI_LANGUAGE "Greek" -!insertmacro MUI_LANGUAGE "Russian" -!insertmacro MUI_LANGUAGE "Portuguese" -!insertmacro MUI_LANGUAGE "PortugueseBR" -!insertmacro MUI_LANGUAGE "Polish" -!insertmacro MUI_LANGUAGE "Ukrainian" -!insertmacro MUI_LANGUAGE "Czech" -!insertmacro MUI_LANGUAGE "Slovak" -!insertmacro MUI_LANGUAGE "Croatian" -!insertmacro MUI_LANGUAGE "Bulgarian" -!insertmacro MUI_LANGUAGE "Hungarian" -!insertmacro MUI_LANGUAGE "Thai" -!insertmacro MUI_LANGUAGE "Romanian" -!insertmacro MUI_LANGUAGE "Latvian" -!insertmacro MUI_LANGUAGE "Macedonian" -!insertmacro MUI_LANGUAGE "Estonian" -!insertmacro MUI_LANGUAGE "Turkish" -!insertmacro MUI_LANGUAGE "Lithuanian" -!insertmacro MUI_LANGUAGE "Slovenian" -!insertmacro MUI_LANGUAGE "Serbian" -!insertmacro MUI_LANGUAGE "SerbianLatin" -!insertmacro MUI_LANGUAGE "Arabic" -!insertmacro MUI_LANGUAGE "Farsi" -!insertmacro MUI_LANGUAGE "Hebrew" -!insertmacro MUI_LANGUAGE "Indonesian" -!insertmacro MUI_LANGUAGE "Mongolian" -!insertmacro MUI_LANGUAGE "Luxembourgish" -!insertmacro MUI_LANGUAGE "Albanian" -!insertmacro MUI_LANGUAGE "Breton" -!insertmacro MUI_LANGUAGE "Belarusian" -!insertmacro MUI_LANGUAGE "Icelandic" -!insertmacro MUI_LANGUAGE "Malay" -!insertmacro MUI_LANGUAGE "Bosnian" -!insertmacro MUI_LANGUAGE "Kurdish" -!insertmacro MUI_LANGUAGE "Irish" -!insertmacro MUI_LANGUAGE "Uzbek" -!insertmacro MUI_LANGUAGE "Galician" -!insertmacro MUI_LANGUAGE "Afrikaans" -!insertmacro MUI_LANGUAGE "Catalan" - -!insertmacro MUI_RESERVEFILE_LANGDLL - -Section "Install" - SetOutPath "$INSTDIR" - - SetCompress Auto - SetOverwrite IfNewer - File /r "bin\*.*" - - WriteRegStr HKCU "Software\OpenSim" "" $INSTDIR - WriteUninstaller "$INSTDIR\Uninstall.exe" - - !insertmacro MUI_STARTMENU_WRITE_BEGIN Application - CreateDirectory "$SMPROGRAMS\$STARTMENU_FOLDER" - CreateShortCut "$SMPROGRAMS\$STARTMENU_FOLDER\OpenSim.lnk" "$INSTDIR\OpenSim.exe" - CreateShortCut "$SMPROGRAMS\$STARTMENU_FOLDER\Uninstall.lnk" "$INSTDIR\Uninstall.exe" - !insertmacro MUI_STARTMENU_WRITE_END - - WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\OpenSim" "DisplayName" "OpenSim (remove only)" - WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\OpenSim" "UninstallString" "$INSTDIR\Uninstall.exe" -SectionEnd - -Function .onInit - !insertmacro MUI_LANGDLL_DISPLAY -FunctionEnd - -Section "Uninstall" - Delete "$INSTDIR\*.*" - RMDir /r "$INSTDIR" - -!insertmacro MUI_STARTMENU_GETFOLDER Application $MUI_TEMP - - Delete "$SMPROGRAMS\$MUI_TEMP\OpenSim.lnk" - Delete "$SMPROGRAMS\$MUI_TEMP\Uninstall.lnk" - - ;Delete empty start menu parent diretories - StrCpy $MUI_TEMP "$SMPROGRAMS\$MUI_TEMP" - - startMenuDeleteLoop: - ClearErrors - RMDir $MUI_TEMP - GetFullPathName $MUI_TEMP "$MUI_TEMP\.." - - IfErrors startMenuDeleteLoopDone - - StrCmp $MUI_TEMP $SMPROGRAMS startMenuDeleteLoopDone startMenuDeleteLoop - startMenuDeleteLoopDone: - - DeleteRegKey /ifempty HKCU "Software\OpenSim" - DeleteRegKey HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\OpenSim" -SectionEnd - -Function un.onInit - !insertmacro MUI_UNGETLANGUAGE -FunctionEnd -- cgit v1.1 From e540b66a8660ab2f3d3a9be153e8cf8aaa641714 Mon Sep 17 00:00:00 2001 From: Dr Scofield Date: Tue, 7 Apr 2009 16:53:41 +0000 Subject: From: Alan Webb Fix null reference exception during close down of IRC module if the region was not actually initialized. --- .../OpenSim.32BitLaunch/OpenSim.32BitLaunch.csproj | 58 ---------- .../OpenSim.GridLaunch/OpenSim.GridLaunch.csproj | 126 --------------------- 2 files changed, 184 deletions(-) delete mode 100644 OpenSim/Tools/OpenSim.32BitLaunch/OpenSim.32BitLaunch.csproj delete mode 100644 OpenSim/Tools/OpenSim.GridLaunch/OpenSim.GridLaunch.csproj (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/OpenSim.32BitLaunch/OpenSim.32BitLaunch.csproj b/OpenSim/Tools/OpenSim.32BitLaunch/OpenSim.32BitLaunch.csproj deleted file mode 100644 index d829e69..0000000 --- a/OpenSim/Tools/OpenSim.32BitLaunch/OpenSim.32BitLaunch.csproj +++ /dev/null @@ -1,58 +0,0 @@ - - - - Debug - AnyCPU - 9.0.30729 - 2.0 - {595D67F3-B413-4A43-8568-5B5930E3B31D} - Exe - Properties - OpenSim._32BitLaunch - OpenSim.32BitLaunch - v2.0 - 512 - - - true - full - false - ..\..\..\bin\ - DEBUG;TRACE - prompt - 4 - x86 - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - - - - - - - - - - - - {438A9556-0000-0000-0000-000000000000} - OpenSim - - - - - \ No newline at end of file diff --git a/OpenSim/Tools/OpenSim.GridLaunch/OpenSim.GridLaunch.csproj b/OpenSim/Tools/OpenSim.GridLaunch/OpenSim.GridLaunch.csproj deleted file mode 100644 index b262dd1..0000000 --- a/OpenSim/Tools/OpenSim.GridLaunch/OpenSim.GridLaunch.csproj +++ /dev/null @@ -1,126 +0,0 @@ - - - - Debug - AnyCPU - 9.0.30729 - 2.0 - {595D67F3-B413-4A43-8568-5B5930E3B31D} - Exe - Properties - OpenSim.GridLaunch - OpenSim.GridLaunch - v2.0 - 512 - - - true - full - false - ..\..\..\bin\ - DEBUG;TRACE - prompt - 4 - x86 - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - - - - - - - - - - - - - - - - - - - Component - - - Form - - - ProcessPanel.cs - - - UserControl - - - ucAppWindow.cs - - - UserControl - - - ucInputField.cs - - - UserControl - - - ucLogWindow.cs - - - - - - True - True - Resources.resx - - - - - - ProcessPanel.cs - - - ucAppWindow.cs - - - ucInputField.cs - - - ucLogWindow.cs - - - - - - - - - - - PreserveNewest - - - ResXFileCodeGenerator - Resources.Designer.cs - - - - - \ No newline at end of file -- cgit v1.1 From abf1df8ae0eb46e3001a6cb1568ca89e7162876b Mon Sep 17 00:00:00 2001 From: lbsa71 Date: Wed, 8 Apr 2009 16:27:30 +0000 Subject: * Restored 32BitLaunch that was mistakenly deleted in 9036 --- .../OpenSim.32BitLaunch/OpenSim.32BitLaunch.csproj | 58 ++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 OpenSim/Tools/OpenSim.32BitLaunch/OpenSim.32BitLaunch.csproj (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/OpenSim.32BitLaunch/OpenSim.32BitLaunch.csproj b/OpenSim/Tools/OpenSim.32BitLaunch/OpenSim.32BitLaunch.csproj new file mode 100644 index 0000000..d829e69 --- /dev/null +++ b/OpenSim/Tools/OpenSim.32BitLaunch/OpenSim.32BitLaunch.csproj @@ -0,0 +1,58 @@ + + + + Debug + AnyCPU + 9.0.30729 + 2.0 + {595D67F3-B413-4A43-8568-5B5930E3B31D} + Exe + Properties + OpenSim._32BitLaunch + OpenSim.32BitLaunch + v2.0 + 512 + + + true + full + false + ..\..\..\bin\ + DEBUG;TRACE + prompt + 4 + x86 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + {438A9556-0000-0000-0000-000000000000} + OpenSim + + + + + \ No newline at end of file -- cgit v1.1 From f91322131363972b9f0344b8e4429f31f8ecff03 Mon Sep 17 00:00:00 2001 From: lbsa71 Date: Wed, 8 Apr 2009 16:30:43 +0000 Subject: * Restored GridLaunch that was mistakenly deleted in 9036 --- .../OpenSim.GridLaunch/OpenSim.GridLaunch.csproj | 126 +++++++++++++++++++++ 1 file changed, 126 insertions(+) create mode 100644 OpenSim/Tools/OpenSim.GridLaunch/OpenSim.GridLaunch.csproj (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/OpenSim.GridLaunch/OpenSim.GridLaunch.csproj b/OpenSim/Tools/OpenSim.GridLaunch/OpenSim.GridLaunch.csproj new file mode 100644 index 0000000..b262dd1 --- /dev/null +++ b/OpenSim/Tools/OpenSim.GridLaunch/OpenSim.GridLaunch.csproj @@ -0,0 +1,126 @@ + + + + Debug + AnyCPU + 9.0.30729 + 2.0 + {595D67F3-B413-4A43-8568-5B5930E3B31D} + Exe + Properties + OpenSim.GridLaunch + OpenSim.GridLaunch + v2.0 + 512 + + + true + full + false + ..\..\..\bin\ + DEBUG;TRACE + prompt + 4 + x86 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + + + + Component + + + Form + + + ProcessPanel.cs + + + UserControl + + + ucAppWindow.cs + + + UserControl + + + ucInputField.cs + + + UserControl + + + ucLogWindow.cs + + + + + + True + True + Resources.resx + + + + + + ProcessPanel.cs + + + ucAppWindow.cs + + + ucInputField.cs + + + ucLogWindow.cs + + + + + + + + + + + PreserveNewest + + + ResXFileCodeGenerator + Resources.Designer.cs + + + + + \ No newline at end of file -- cgit v1.1 From 1b877234dada9f14cebc486cc426db892beae152 Mon Sep 17 00:00:00 2001 From: Melanie Thielker Date: Mon, 4 May 2009 12:15:55 +0000 Subject: Refactor. Make ConsoleBase a true base class. Create CommandConsole as a simple console capable of processing commands. Create LocalConsole as a console that uses cursor control and context help. Precursor to a distributed console system for the new grid services. No functional change intended :) --- OpenSim/Tools/pCampBot/BotManager.cs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/pCampBot/BotManager.cs b/OpenSim/Tools/pCampBot/BotManager.cs index c015bbc..2cd947e 100644 --- a/OpenSim/Tools/pCampBot/BotManager.cs +++ b/OpenSim/Tools/pCampBot/BotManager.cs @@ -47,7 +47,7 @@ namespace pCampBot { private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); - protected ConsoleBase m_console; + protected CommandConsole m_console; protected List m_lBot; protected Thread[] m_td; protected bool m_verbose = true; @@ -206,9 +206,9 @@ namespace pCampBot /// Standard CreateConsole routine /// /// - protected ConsoleBase CreateConsole() + protected CommandConsole CreateConsole() { - return new ConsoleBase("Region"); + return new LocalConsole("Region"); } private void HandleShutdown(string module, string[] cmd) -- cgit v1.1 From ed28c89d9624dfba5deef0560b50df726307f4af Mon Sep 17 00:00:00 2001 From: Arthur Valadares Date: Mon, 18 May 2009 22:00:43 +0000 Subject: * Adds code that allows you to save an outfit then tell bot to wear it. * Still doesn't work due to a bug on LibOMV that should be out on 0.6.3. * Released by request. Important Warning: Linden Viewer 1.2.3 changes the way appearance works and break bot's appearances. LibOMV is working on it --- OpenSim/Tools/pCampBot/PhysicsBot.cs | 196 ++++++++++++++++++++++++++++++++--- OpenSim/Tools/pCampBot/pCampBot.cs | 6 ++ 2 files changed, 190 insertions(+), 12 deletions(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/pCampBot/PhysicsBot.cs b/OpenSim/Tools/pCampBot/PhysicsBot.cs index 004cd30..8548aed 100644 --- a/OpenSim/Tools/pCampBot/PhysicsBot.cs +++ b/OpenSim/Tools/pCampBot/PhysicsBot.cs @@ -27,6 +27,7 @@ using System; using System.Collections.Generic; +using System.Text; using System.IO; using System.Threading; using System.Timers; @@ -47,6 +48,8 @@ namespace pCampBot public string lastname; public string password; public string loginURI; + public string saveDir; + public string wear; public event AnEvent OnConnected; public event AnEvent OnDisconnected; @@ -54,7 +57,6 @@ namespace pCampBot protected Timer m_action; // Action Timer protected List objectIDs = new List(); - protected Random somthing = new Random(Environment.TickCount);// We do stuff randomly here //New instance of a SecondLife client @@ -79,9 +81,6 @@ namespace pCampBot { while (true) { - //client.Appearance.ForceRebakeAvatarTextures(); - //client.Appearance.SetPreviousAppearance(); - int walkorrun = somthing.Next(4); // Randomize between walking and running. The greater this number, // the greater the bot's chances to walk instead of run. client.Self.Jump(false); @@ -98,14 +97,6 @@ namespace pCampBot Vector3 newpos = new Vector3(somthing.Next(255), somthing.Next(255), somthing.Next(255)); client.Self.Movement.TurnToward(newpos); - /* - // Why does it need to keep setting it true? Changing to just let it walk =) - for (int i = 0; i < 2000; i++) - { - client.Self.Movement.AtPos = true; - Thread.Sleep(somthing.Next(25, 75)); // Makes sure the bots keep walking for this time. - } - */ client.Self.Movement.AtPos = true; Thread.Sleep(somthing.Next(3000,13000)); client.Self.Movement.AtPos = false; @@ -128,6 +119,7 @@ namespace pCampBot lastname = startupConfig.GetString("lastname", "random"); password = startupConfig.GetString("password", "12345"); loginURI = startupConfig.GetString("loginuri"); + wear = startupConfig.GetString("wear","no"); } /// @@ -163,6 +155,7 @@ namespace pCampBot client.Network.OnDisconnected += new NetworkManager.DisconnectedCallback(this.Network_OnDisconnected); client.Objects.OnNewPrim += Objects_NewPrim; client.Assets.OnImageReceived += Asset_TextureCallback; + client.Assets.OnAssetReceived += Asset_ReceivedCallback; if (client.Network.Login(firstname, lastname, password, "pCampBot", "Your name")) { if (OnConnected != null) @@ -173,6 +166,15 @@ namespace pCampBot m_action.Elapsed += new ElapsedEventHandler(m_action_Elapsed); m_action.Start(); OnConnected(this, EventType.CONNECTED); + if (wear == "save") + { + client.Appearance.SetPreviousAppearance(); + SaveDefaultAppearance(); + } + else if (wear != "no") + { + MakeDefaultAppearance(wear); + } client.Self.Jump(true); } } @@ -186,6 +188,167 @@ namespace pCampBot } } + public void SaveDefaultAppearance() + { + saveDir = "MyAppearance/" + firstname + "_" + lastname; + if (!Directory.Exists(saveDir)) + { + Directory.CreateDirectory(saveDir); + } + + Array wtypes = Enum.GetValues(typeof(WearableType)); + foreach (WearableType wtype in wtypes) + { + UUID wearable = client.Appearance.GetWearableAsset(wtype); + if (wearable != UUID.Zero) + { + client.Assets.RequestAsset(wearable, AssetType.Clothing, false); + client.Assets.RequestAsset(wearable, AssetType.Bodypart, false); + } + } + } + + public void SaveAsset(AssetWearable asset) + { + if (asset != null) + { + try + { + if (asset.Decode()) + { + File.WriteAllBytes(Path.Combine(saveDir, String.Format("{1}.{0}", + asset.AssetType.ToString().ToLower(), + asset.WearableType)), asset.AssetData); + } + else + { + MainConsole.Instance.Error(String.Format("Failed to decode {0} asset {1}", asset.AssetType, asset.AssetID)); + } + } + catch (Exception e) + { + MainConsole.Instance.Error(String.Format("Exception: {0}",e.ToString())); + } + } + } + + public WearableType GetWearableType(string path) + { + string type = ((((path.Split('/'))[2]).Split('.'))[0]).Trim(); + switch(type) + { + case "Eyes": + return WearableType.Eyes; + case "Hair": + return WearableType.Hair; + case "Pants": + return WearableType.Pants; + case "Shape": + return WearableType.Shape; + case "Shirt": + return WearableType.Shirt; + case "Skin": + return WearableType.Skin; + default: + return WearableType.Shape; + } + } + + public void MakeDefaultAppearance(string wear) + { + try + { + if (wear == "yes") + { + //TODO: Implement random outfit picking + MainConsole.Instance.Notice("Picks a random outfit. Not yet implemented."); + } + else if (wear != "save") + saveDir = "MyAppearance/" + wear; + saveDir = saveDir + "/"; + + string[] clothing = Directory.GetFiles(saveDir, "*.clothing", SearchOption.TopDirectoryOnly); + string[] bodyparts = Directory.GetFiles(saveDir, "*.bodypart", SearchOption.TopDirectoryOnly); + InventoryFolder clothfolder = FindClothingFolder(); + UUID transid = UUID.Random(); + List listwearables = new List(); + + for (int i = 0; i < clothing.Length; i++) + { + UUID assetID = UUID.Random(); + AssetClothing asset = new AssetClothing(assetID, File.ReadAllBytes(clothing[i])); + asset.Decode(); + asset.Owner = client.Self.AgentID; + asset.WearableType = GetWearableType(clothing[i]); + asset.Encode(); + transid = client.Assets.RequestUpload(asset,true); + client.Inventory.RequestCreateItem(clothfolder.UUID, "MyClothing" + i.ToString(), "MyClothing", AssetType.Clothing, + transid, InventoryType.Wearable, asset.WearableType, PermissionMask.All, delegate(bool success, InventoryItem item) + { + if (success) + { + listwearables.Add(item); + } + else + MainConsole.Instance.Error(String.Format("Failed to create item {0}",item.Name)); + } + ); + } + + for (int i = 0; i < bodyparts.Length; i++) + { + UUID assetID = UUID.Random(); + AssetBodypart asset = new AssetBodypart(assetID, File.ReadAllBytes(bodyparts[i])); + asset.Decode(); + asset.Owner = client.Self.AgentID; + asset.WearableType = GetWearableType(bodyparts[i]); + asset.Encode(); + transid = client.Assets.RequestUpload(asset,true); + client.Inventory.RequestCreateItem(clothfolder.UUID, "MyBodyPart" + i.ToString(), "MyBodyPart", AssetType.Bodypart, + transid, InventoryType.Wearable, asset.WearableType, PermissionMask.All, delegate(bool success, InventoryItem item) + { + if (success) + { + listwearables.Add(item); + } + else + MainConsole.Instance.Error(String.Format("Failed to create item {0}",item.Name)); + } + ); + } + + Thread.Sleep(1000); + + if (listwearables == null || listwearables.Count == 0) + MainConsole.Instance.Notice("Nothing to send on this folder!"); + else + { + MainConsole.Instance.Notice(String.Format("Sending {0} wearables...",listwearables.Count)); + client.Appearance.WearOutfit(listwearables, false); + } + } + catch (Exception ex) + { + Console.WriteLine(ex.ToString()); + } + } + + public InventoryFolder FindClothingFolder() + { + UUID rootfolder = client.Inventory.Store.RootFolder.UUID; + List listfolders = client.Inventory.Store.GetContents(rootfolder); + InventoryFolder clothfolder = new InventoryFolder(UUID.Random()); + foreach (InventoryBase folder in listfolders) + { + if (folder.Name == "Clothing") + { + clothfolder = (InventoryFolder)folder; + break; + } + } + return clothfolder; + } + public void Network_OnConnected(object sender) { if (OnConnected != null) @@ -237,6 +400,15 @@ namespace pCampBot } public void Asset_TextureCallback(ImageDownload image, AssetTexture asset) { + //TODO: Implement texture saving and applying + } + + public void Asset_ReceivedCallback(AssetDownload transfer,Asset asset) + { + if (wear == "save") + { + SaveAsset((AssetWearable) asset); + } } public string[] readexcuses() diff --git a/OpenSim/Tools/pCampBot/pCampBot.cs b/OpenSim/Tools/pCampBot/pCampBot.cs index 9cde451..098a8ca 100644 --- a/OpenSim/Tools/pCampBot/pCampBot.cs +++ b/OpenSim/Tools/pCampBot/pCampBot.cs @@ -77,6 +77,7 @@ namespace pCampBot cs.AddSwitch("Startup", "lastname"); cs.AddSwitch("Startup", "password"); cs.AddSwitch("Startup", "help","h"); + cs.AddSwitch("Startup", "wear"); IConfig ol = cs.Configs["Startup"]; return ol; @@ -84,6 +85,10 @@ namespace pCampBot private static void Help() { + // Added the wear command. This allows the bot to wear real clothes instead of default locked ones. + // You can either say no, to not load anything, yes, to load one of the default wearables, a folder + // name, to load an specific folder, or save, to save an avatar with some already existing wearables + // worn to the folder MyAppearance/FirstName_LastName, and the load it. Console.WriteLine( "usage: pCampBot <-loginuri loginuri> [OPTIONS]\n" + "Spawns a set of bots to test an OpenSim region\n\n" + @@ -92,6 +97,7 @@ namespace pCampBot " -firstname first name for the bot(s) (default: random string)\n" + " -lastname lastname for the bot(s) (default: random string)\n" + " -password password for the bots(s) (default: random string)\n" + + " -wear set appearance folder to load from (default: no)\n" + " -h, -help show this message" ); } -- cgit v1.1 From e0bc5c5db2b88691c04b06be2fa73a75746126cb Mon Sep 17 00:00:00 2001 From: Jeff Ames Date: Wed, 20 May 2009 01:32:06 +0000 Subject: Add copyright headers, formatting cleanup. --- OpenSim/Tools/pCampBot/PhysicsBot.cs | 72 ++++++++++++++++++------------------ 1 file changed, 36 insertions(+), 36 deletions(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/pCampBot/PhysicsBot.cs b/OpenSim/Tools/pCampBot/PhysicsBot.cs index 8548aed..b84993e 100644 --- a/OpenSim/Tools/pCampBot/PhysicsBot.cs +++ b/OpenSim/Tools/pCampBot/PhysicsBot.cs @@ -191,9 +191,9 @@ namespace pCampBot public void SaveDefaultAppearance() { saveDir = "MyAppearance/" + firstname + "_" + lastname; - if (!Directory.Exists(saveDir)) - { - Directory.CreateDirectory(saveDir); + if (!Directory.Exists(saveDir)) + { + Directory.CreateDirectory(saveDir); } Array wtypes = Enum.GetValues(typeof(WearableType)); @@ -212,7 +212,7 @@ namespace pCampBot { if (asset != null) { - try + try { if (asset.Decode()) { @@ -220,14 +220,14 @@ namespace pCampBot asset.AssetType.ToString().ToLower(), asset.WearableType)), asset.AssetData); } - else - { - MainConsole.Instance.Error(String.Format("Failed to decode {0} asset {1}", asset.AssetType, asset.AssetID)); - } - } - catch (Exception e) - { - MainConsole.Instance.Error(String.Format("Exception: {0}",e.ToString())); + else + { + MainConsole.Instance.Error(String.Format("Failed to decode {0} asset {1}", asset.AssetType, asset.AssetID)); + } + } + catch (Exception e) + { + MainConsole.Instance.Error(String.Format("Exception: {0}",e.ToString())); } } } @@ -235,7 +235,7 @@ namespace pCampBot public WearableType GetWearableType(string path) { string type = ((((path.Split('/'))[2]).Split('.'))[0]).Trim(); - switch(type) + switch (type) { case "Eyes": return WearableType.Eyes; @@ -256,7 +256,7 @@ namespace pCampBot public void MakeDefaultAppearance(string wear) { - try + try { if (wear == "yes") { @@ -267,54 +267,54 @@ namespace pCampBot saveDir = "MyAppearance/" + wear; saveDir = saveDir + "/"; - string[] clothing = Directory.GetFiles(saveDir, "*.clothing", SearchOption.TopDirectoryOnly); + string[] clothing = Directory.GetFiles(saveDir, "*.clothing", SearchOption.TopDirectoryOnly); string[] bodyparts = Directory.GetFiles(saveDir, "*.bodypart", SearchOption.TopDirectoryOnly); InventoryFolder clothfolder = FindClothingFolder(); UUID transid = UUID.Random(); List listwearables = new List(); - - for (int i = 0; i < clothing.Length; i++) + + for (int i = 0; i < clothing.Length; i++) { - UUID assetID = UUID.Random(); + UUID assetID = UUID.Random(); AssetClothing asset = new AssetClothing(assetID, File.ReadAllBytes(clothing[i])); asset.Decode(); asset.Owner = client.Self.AgentID; asset.WearableType = GetWearableType(clothing[i]); - asset.Encode(); + asset.Encode(); transid = client.Assets.RequestUpload(asset,true); client.Inventory.RequestCreateItem(clothfolder.UUID, "MyClothing" + i.ToString(), "MyClothing", AssetType.Clothing, - transid, InventoryType.Wearable, asset.WearableType, PermissionMask.All, delegate(bool success, InventoryItem item) - { + transid, InventoryType.Wearable, asset.WearableType, PermissionMask.All, delegate(bool success, InventoryItem item) + { if (success) { listwearables.Add(item); } else - MainConsole.Instance.Error(String.Format("Failed to create item {0}",item.Name)); + MainConsole.Instance.Error(String.Format("Failed to create item {0}",item.Name)); } - ); - } - - for (int i = 0; i < bodyparts.Length; i++) + ); + } + + for (int i = 0; i < bodyparts.Length; i++) { - UUID assetID = UUID.Random(); + UUID assetID = UUID.Random(); AssetBodypart asset = new AssetBodypart(assetID, File.ReadAllBytes(bodyparts[i])); asset.Decode(); asset.Owner = client.Self.AgentID; asset.WearableType = GetWearableType(bodyparts[i]); - asset.Encode(); + asset.Encode(); transid = client.Assets.RequestUpload(asset,true); client.Inventory.RequestCreateItem(clothfolder.UUID, "MyBodyPart" + i.ToString(), "MyBodyPart", AssetType.Bodypart, - transid, InventoryType.Wearable, asset.WearableType, PermissionMask.All, delegate(bool success, InventoryItem item) - { - if (success) + transid, InventoryType.Wearable, asset.WearableType, PermissionMask.All, delegate(bool success, InventoryItem item) + { + if (success) { listwearables.Add(item); } else - MainConsole.Instance.Error(String.Format("Failed to create item {0}",item.Name)); + MainConsole.Instance.Error(String.Format("Failed to create item {0}",item.Name)); } - ); + ); } Thread.Sleep(1000); @@ -326,10 +326,10 @@ namespace pCampBot MainConsole.Instance.Notice(String.Format("Sending {0} wearables...",listwearables.Count)); client.Appearance.WearOutfit(listwearables, false); } - } - catch (Exception ex) + } + catch (Exception ex) { - Console.WriteLine(ex.ToString()); + Console.WriteLine(ex.ToString()); } } -- cgit v1.1 From 4065ebff15e228d7227500f3a2275025f5d16966 Mon Sep 17 00:00:00 2001 From: Melanie Thielker Date: Wed, 20 May 2009 13:50:33 +0000 Subject: Remove the pre-log4net, discrete output methods from the consoles --- OpenSim/Tools/pCampBot/BotManager.cs | 2 +- OpenSim/Tools/pCampBot/PhysicsBot.cs | 16 ++++++++-------- 2 files changed, 9 insertions(+), 9 deletions(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/pCampBot/BotManager.cs b/OpenSim/Tools/pCampBot/BotManager.cs index 2cd947e..93240d5 100644 --- a/OpenSim/Tools/pCampBot/BotManager.cs +++ b/OpenSim/Tools/pCampBot/BotManager.cs @@ -213,7 +213,7 @@ namespace pCampBot private void HandleShutdown(string module, string[] cmd) { - m_console.Warn("BOTMANAGER", "Shutting down bots"); + m_log.Warn("[BOTMANAGER]: Shutting down bots"); doBotShutdown(); } diff --git a/OpenSim/Tools/pCampBot/PhysicsBot.cs b/OpenSim/Tools/pCampBot/PhysicsBot.cs index b84993e..282f4a0 100644 --- a/OpenSim/Tools/pCampBot/PhysicsBot.cs +++ b/OpenSim/Tools/pCampBot/PhysicsBot.cs @@ -180,7 +180,7 @@ namespace pCampBot } else { - MainConsole.Instance.Error(firstname + " " + lastname, "Can't login: " + client.Network.LoginMessage); + MainConsole.Instance.Output(firstname + " " + lastname + " Can't login: " + client.Network.LoginMessage); if (OnDisconnected != null) { OnDisconnected(this, EventType.DISCONNECTED); @@ -222,12 +222,12 @@ namespace pCampBot } else { - MainConsole.Instance.Error(String.Format("Failed to decode {0} asset {1}", asset.AssetType, asset.AssetID)); + MainConsole.Instance.Output(String.Format("Failed to decode {0} asset {1}", asset.AssetType, asset.AssetID)); } } catch (Exception e) { - MainConsole.Instance.Error(String.Format("Exception: {0}",e.ToString())); + MainConsole.Instance.Output(String.Format("Exception: {0}",e.ToString())); } } } @@ -261,7 +261,7 @@ namespace pCampBot if (wear == "yes") { //TODO: Implement random outfit picking - MainConsole.Instance.Notice("Picks a random outfit. Not yet implemented."); + MainConsole.Instance.Output("Picks a random outfit. Not yet implemented."); } else if (wear != "save") saveDir = "MyAppearance/" + wear; @@ -290,7 +290,7 @@ namespace pCampBot listwearables.Add(item); } else - MainConsole.Instance.Error(String.Format("Failed to create item {0}",item.Name)); + MainConsole.Instance.Output(String.Format("Failed to create item {0}",item.Name)); } ); } @@ -312,7 +312,7 @@ namespace pCampBot listwearables.Add(item); } else - MainConsole.Instance.Error(String.Format("Failed to create item {0}",item.Name)); + MainConsole.Instance.Output(String.Format("Failed to create item {0}",item.Name)); } ); } @@ -320,10 +320,10 @@ namespace pCampBot Thread.Sleep(1000); if (listwearables == null || listwearables.Count == 0) - MainConsole.Instance.Notice("Nothing to send on this folder!"); + MainConsole.Instance.Output("Nothing to send on this folder!"); else { - MainConsole.Instance.Notice(String.Format("Sending {0} wearables...",listwearables.Count)); + MainConsole.Instance.Output(String.Format("Sending {0} wearables...",listwearables.Count)); client.Appearance.WearOutfit(listwearables, false); } } -- cgit v1.1 From 840de6c036570d559ec6924cd8405d3f34a99fdd Mon Sep 17 00:00:00 2001 From: Jeff Ames Date: Mon, 1 Jun 2009 06:37:14 +0000 Subject: Minor: Change OpenSim to OpenSimulator in older copyright headers and LICENSE.txt. --- OpenSim/Tools/LaunchSLClient/LaunchSLClient/Form1.Designer.cs | 2 +- OpenSim/Tools/LaunchSLClient/LaunchSLClient/Form1.cs | 2 +- OpenSim/Tools/LaunchSLClient/LaunchSLClient/Grid.cs | 2 +- OpenSim/Tools/LaunchSLClient/LaunchSLClient/LauncherException.cs | 2 +- OpenSim/Tools/LaunchSLClient/LaunchSLClient/MachineConfig.cs | 2 +- OpenSim/Tools/LaunchSLClient/LaunchSLClient/OSXConfig.cs | 2 +- OpenSim/Tools/LaunchSLClient/LaunchSLClient/Program.cs | 2 +- OpenSim/Tools/LaunchSLClient/LaunchSLClient/Properties/AssemblyInfo.cs | 2 +- .../LaunchSLClient/LaunchSLClient/Properties/Resources.Designer.cs | 2 +- .../Tools/LaunchSLClient/LaunchSLClient/Properties/Settings.Designer.cs | 2 +- OpenSim/Tools/LaunchSLClient/LaunchSLClient/UnixConfig.cs | 2 +- OpenSim/Tools/LaunchSLClient/LaunchSLClient/WindowsConfig.cs | 2 +- OpenSim/Tools/OpenSim.32BitLaunch/Program.cs | 2 +- OpenSim/Tools/OpenSim.32BitLaunch/Properties/AssemblyInfo.cs | 2 +- OpenSim/Tools/OpenSim.GridLaunch/AppExecutor.cs | 2 +- OpenSim/Tools/OpenSim.GridLaunch/AppExecutor_AsyncIO.cs | 2 +- OpenSim/Tools/OpenSim.GridLaunch/AppExecutor_Thread.cs | 2 +- OpenSim/Tools/OpenSim.GridLaunch/CommandProcessor.cs | 2 +- OpenSim/Tools/OpenSim.GridLaunch/GUI/Console/Console.cs | 2 +- OpenSim/Tools/OpenSim.GridLaunch/GUI/Network/Client.cs | 2 +- OpenSim/Tools/OpenSim.GridLaunch/GUI/Network/TCPD.cs | 2 +- OpenSim/Tools/OpenSim.GridLaunch/GUI/Service/Service.cs | 2 +- OpenSim/Tools/OpenSim.GridLaunch/GUI/WinForm/ProcessPanel.cs | 2 +- OpenSim/Tools/OpenSim.GridLaunch/GUI/WinForm/ucAppWindow.cs | 2 +- OpenSim/Tools/OpenSim.GridLaunch/GUI/WinForm/ucInputField.cs | 2 +- OpenSim/Tools/OpenSim.GridLaunch/Program.cs | 2 +- OpenSim/Tools/OpenSim.GridLaunch/Properties/AssemblyInfo.cs | 2 +- OpenSim/Tools/OpenSim.GridLaunch/Settings.cs | 2 +- OpenSim/Tools/OpenSim.GridLaunch/log4netAppender.cs | 2 +- OpenSim/Tools/pCampBot/BotManager.cs | 2 +- OpenSim/Tools/pCampBot/PhysicsBot.cs | 2 +- OpenSim/Tools/pCampBot/pCampBot.cs | 2 +- 32 files changed, 32 insertions(+), 32 deletions(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Form1.Designer.cs b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Form1.Designer.cs index 38657b0..8d07724 100644 --- a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Form1.Designer.cs +++ b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Form1.Designer.cs @@ -9,7 +9,7 @@ * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * * Neither the name of the OpenSim Project nor the + * * Neither the name of the OpenSimulator Project nor the * names of its contributors may be used to endorse or promote products * derived from this software without specific prior written permission. * diff --git a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Form1.cs b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Form1.cs index 25044db..2a5d2a6 100644 --- a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Form1.cs +++ b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Form1.cs @@ -9,7 +9,7 @@ * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * * Neither the name of the OpenSim Project nor the + * * Neither the name of the OpenSimulator Project nor the * names of its contributors may be used to endorse or promote products * derived from this software without specific prior written permission. * diff --git a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Grid.cs b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Grid.cs index 89fcefe..58ebbf0 100644 --- a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Grid.cs +++ b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Grid.cs @@ -9,7 +9,7 @@ * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * * Neither the name of the OpenSim Project nor the + * * Neither the name of the OpenSimulator Project nor the * names of its contributors may be used to endorse or promote products * derived from this software without specific prior written permission. * diff --git a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/LauncherException.cs b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/LauncherException.cs index e1ba0bc..a28eb20 100644 --- a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/LauncherException.cs +++ b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/LauncherException.cs @@ -9,7 +9,7 @@ * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * * Neither the name of the OpenSim Project nor the + * * Neither the name of the OpenSimulator Project nor the * names of its contributors may be used to endorse or promote products * derived from this software without specific prior written permission. * diff --git a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/MachineConfig.cs b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/MachineConfig.cs index fea8d50..6020347 100644 --- a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/MachineConfig.cs +++ b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/MachineConfig.cs @@ -9,7 +9,7 @@ * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * * Neither the name of the OpenSim Project nor the + * * Neither the name of the OpenSimulator Project nor the * names of its contributors may be used to endorse or promote products * derived from this software without specific prior written permission. * diff --git a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/OSXConfig.cs b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/OSXConfig.cs index 177d7e8..19a2e54 100644 --- a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/OSXConfig.cs +++ b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/OSXConfig.cs @@ -9,7 +9,7 @@ * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * * Neither the name of the OpenSim Project nor the + * * Neither the name of the OpenSimulator Project nor the * names of its contributors may be used to endorse or promote products * derived from this software without specific prior written permission. * diff --git a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Program.cs b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Program.cs index 53ea9f8..bfd43cf 100644 --- a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Program.cs +++ b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Program.cs @@ -9,7 +9,7 @@ * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * * Neither the name of the OpenSim Project nor the + * * Neither the name of the OpenSimulator Project nor the * names of its contributors may be used to endorse or promote products * derived from this software without specific prior written permission. * diff --git a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Properties/AssemblyInfo.cs b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Properties/AssemblyInfo.cs index ae893e8..f6a0c64 100644 --- a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Properties/AssemblyInfo.cs +++ b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Properties/AssemblyInfo.cs @@ -9,7 +9,7 @@ * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * * Neither the name of the OpenSim Project nor the + * * Neither the name of the OpenSimulator Project nor the * names of its contributors may be used to endorse or promote products * derived from this software without specific prior written permission. * diff --git a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Properties/Resources.Designer.cs b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Properties/Resources.Designer.cs index 916ff04..6b9a8a1 100644 --- a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Properties/Resources.Designer.cs +++ b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Properties/Resources.Designer.cs @@ -9,7 +9,7 @@ * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * * Neither the name of the OpenSim Project nor the + * * Neither the name of the OpenSimulator Project nor the * names of its contributors may be used to endorse or promote products * derived from this software without specific prior written permission. * diff --git a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Properties/Settings.Designer.cs b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Properties/Settings.Designer.cs index 2765be5..5ae7be2 100644 --- a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Properties/Settings.Designer.cs +++ b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Properties/Settings.Designer.cs @@ -9,7 +9,7 @@ * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * * Neither the name of the OpenSim Project nor the + * * Neither the name of the OpenSimulator Project nor the * names of its contributors may be used to endorse or promote products * derived from this software without specific prior written permission. * diff --git a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/UnixConfig.cs b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/UnixConfig.cs index c285066..5895dad 100644 --- a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/UnixConfig.cs +++ b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/UnixConfig.cs @@ -9,7 +9,7 @@ * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * * Neither the name of the OpenSim Project nor the + * * Neither the name of the OpenSimulator Project nor the * names of its contributors may be used to endorse or promote products * derived from this software without specific prior written permission. * diff --git a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/WindowsConfig.cs b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/WindowsConfig.cs index 7988d96..ac0186d 100644 --- a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/WindowsConfig.cs +++ b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/WindowsConfig.cs @@ -9,7 +9,7 @@ * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * * Neither the name of the OpenSim Project nor the + * * Neither the name of the OpenSimulator Project nor the * names of its contributors may be used to endorse or promote products * derived from this software without specific prior written permission. * diff --git a/OpenSim/Tools/OpenSim.32BitLaunch/Program.cs b/OpenSim/Tools/OpenSim.32BitLaunch/Program.cs index b292d43..52806b8 100644 --- a/OpenSim/Tools/OpenSim.32BitLaunch/Program.cs +++ b/OpenSim/Tools/OpenSim.32BitLaunch/Program.cs @@ -9,7 +9,7 @@ * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * * Neither the name of the OpenSim Project nor the + * * Neither the name of the OpenSimulator Project nor the * names of its contributors may be used to endorse or promote products * derived from this software without specific prior written permission. * diff --git a/OpenSim/Tools/OpenSim.32BitLaunch/Properties/AssemblyInfo.cs b/OpenSim/Tools/OpenSim.32BitLaunch/Properties/AssemblyInfo.cs index c971e9a..e81870f 100644 --- a/OpenSim/Tools/OpenSim.32BitLaunch/Properties/AssemblyInfo.cs +++ b/OpenSim/Tools/OpenSim.32BitLaunch/Properties/AssemblyInfo.cs @@ -9,7 +9,7 @@ * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * * Neither the name of the OpenSim Project nor the + * * Neither the name of the OpenSimulator Project nor the * names of its contributors may be used to endorse or promote products * derived from this software without specific prior written permission. * diff --git a/OpenSim/Tools/OpenSim.GridLaunch/AppExecutor.cs b/OpenSim/Tools/OpenSim.GridLaunch/AppExecutor.cs index 2c6ac31..638956e 100644 --- a/OpenSim/Tools/OpenSim.GridLaunch/AppExecutor.cs +++ b/OpenSim/Tools/OpenSim.GridLaunch/AppExecutor.cs @@ -9,7 +9,7 @@ * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * * Neither the name of the OpenSim Project nor the + * * Neither the name of the OpenSimulator Project nor the * names of its contributors may be used to endorse or promote products * derived from this software without specific prior written permission. * diff --git a/OpenSim/Tools/OpenSim.GridLaunch/AppExecutor_AsyncIO.cs b/OpenSim/Tools/OpenSim.GridLaunch/AppExecutor_AsyncIO.cs index 0d07226..8daef1b 100644 --- a/OpenSim/Tools/OpenSim.GridLaunch/AppExecutor_AsyncIO.cs +++ b/OpenSim/Tools/OpenSim.GridLaunch/AppExecutor_AsyncIO.cs @@ -9,7 +9,7 @@ * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * * Neither the name of the OpenSim Project nor the + * * Neither the name of the OpenSimulator Project nor the * names of its contributors may be used to endorse or promote products * derived from this software without specific prior written permission. * diff --git a/OpenSim/Tools/OpenSim.GridLaunch/AppExecutor_Thread.cs b/OpenSim/Tools/OpenSim.GridLaunch/AppExecutor_Thread.cs index cd160f8..f395aa4 100644 --- a/OpenSim/Tools/OpenSim.GridLaunch/AppExecutor_Thread.cs +++ b/OpenSim/Tools/OpenSim.GridLaunch/AppExecutor_Thread.cs @@ -9,7 +9,7 @@ * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * * Neither the name of the OpenSim Project nor the + * * Neither the name of the OpenSimulator Project nor the * names of its contributors may be used to endorse or promote products * derived from this software without specific prior written permission. * diff --git a/OpenSim/Tools/OpenSim.GridLaunch/CommandProcessor.cs b/OpenSim/Tools/OpenSim.GridLaunch/CommandProcessor.cs index aca36e9..77c5063 100644 --- a/OpenSim/Tools/OpenSim.GridLaunch/CommandProcessor.cs +++ b/OpenSim/Tools/OpenSim.GridLaunch/CommandProcessor.cs @@ -9,7 +9,7 @@ * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * * Neither the name of the OpenSim Project nor the + * * Neither the name of the OpenSimulator Project nor the * names of its contributors may be used to endorse or promote products * derived from this software without specific prior written permission. * diff --git a/OpenSim/Tools/OpenSim.GridLaunch/GUI/Console/Console.cs b/OpenSim/Tools/OpenSim.GridLaunch/GUI/Console/Console.cs index a04c9cf..596b650 100644 --- a/OpenSim/Tools/OpenSim.GridLaunch/GUI/Console/Console.cs +++ b/OpenSim/Tools/OpenSim.GridLaunch/GUI/Console/Console.cs @@ -9,7 +9,7 @@ * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * * Neither the name of the OpenSim Project nor the + * * Neither the name of the OpenSimulator Project nor the * names of its contributors may be used to endorse or promote products * derived from this software without specific prior written permission. * diff --git a/OpenSim/Tools/OpenSim.GridLaunch/GUI/Network/Client.cs b/OpenSim/Tools/OpenSim.GridLaunch/GUI/Network/Client.cs index 19b27e4..7fae830 100644 --- a/OpenSim/Tools/OpenSim.GridLaunch/GUI/Network/Client.cs +++ b/OpenSim/Tools/OpenSim.GridLaunch/GUI/Network/Client.cs @@ -9,7 +9,7 @@ * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * * Neither the name of the OpenSim Project nor the + * * Neither the name of the OpenSimulator Project nor the * names of its contributors may be used to endorse or promote products * derived from this software without specific prior written permission. * diff --git a/OpenSim/Tools/OpenSim.GridLaunch/GUI/Network/TCPD.cs b/OpenSim/Tools/OpenSim.GridLaunch/GUI/Network/TCPD.cs index 5524e21..b48cfea 100644 --- a/OpenSim/Tools/OpenSim.GridLaunch/GUI/Network/TCPD.cs +++ b/OpenSim/Tools/OpenSim.GridLaunch/GUI/Network/TCPD.cs @@ -9,7 +9,7 @@ * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * * Neither the name of the OpenSim Project nor the + * * Neither the name of the OpenSimulator Project nor the * names of its contributors may be used to endorse or promote products * derived from this software without specific prior written permission. * diff --git a/OpenSim/Tools/OpenSim.GridLaunch/GUI/Service/Service.cs b/OpenSim/Tools/OpenSim.GridLaunch/GUI/Service/Service.cs index c6fd501..f518bd7 100644 --- a/OpenSim/Tools/OpenSim.GridLaunch/GUI/Service/Service.cs +++ b/OpenSim/Tools/OpenSim.GridLaunch/GUI/Service/Service.cs @@ -9,7 +9,7 @@ * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * * Neither the name of the OpenSim Project nor the + * * Neither the name of the OpenSimulator Project nor the * names of its contributors may be used to endorse or promote products * derived from this software without specific prior written permission. * diff --git a/OpenSim/Tools/OpenSim.GridLaunch/GUI/WinForm/ProcessPanel.cs b/OpenSim/Tools/OpenSim.GridLaunch/GUI/WinForm/ProcessPanel.cs index dbf97d6..c7c1243 100644 --- a/OpenSim/Tools/OpenSim.GridLaunch/GUI/WinForm/ProcessPanel.cs +++ b/OpenSim/Tools/OpenSim.GridLaunch/GUI/WinForm/ProcessPanel.cs @@ -9,7 +9,7 @@ * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * * Neither the name of the OpenSim Project nor the + * * Neither the name of the OpenSimulator Project nor the * names of its contributors may be used to endorse or promote products * derived from this software without specific prior written permission. * diff --git a/OpenSim/Tools/OpenSim.GridLaunch/GUI/WinForm/ucAppWindow.cs b/OpenSim/Tools/OpenSim.GridLaunch/GUI/WinForm/ucAppWindow.cs index 66072dc..487faec 100644 --- a/OpenSim/Tools/OpenSim.GridLaunch/GUI/WinForm/ucAppWindow.cs +++ b/OpenSim/Tools/OpenSim.GridLaunch/GUI/WinForm/ucAppWindow.cs @@ -9,7 +9,7 @@ * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * * Neither the name of the OpenSim Project nor the + * * Neither the name of the OpenSimulator Project nor the * names of its contributors may be used to endorse or promote products * derived from this software without specific prior written permission. * diff --git a/OpenSim/Tools/OpenSim.GridLaunch/GUI/WinForm/ucInputField.cs b/OpenSim/Tools/OpenSim.GridLaunch/GUI/WinForm/ucInputField.cs index 5ffa275..f6c02b5 100644 --- a/OpenSim/Tools/OpenSim.GridLaunch/GUI/WinForm/ucInputField.cs +++ b/OpenSim/Tools/OpenSim.GridLaunch/GUI/WinForm/ucInputField.cs @@ -9,7 +9,7 @@ * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * * Neither the name of the OpenSim Project nor the + * * Neither the name of the OpenSimulator Project nor the * names of its contributors may be used to endorse or promote products * derived from this software without specific prior written permission. * diff --git a/OpenSim/Tools/OpenSim.GridLaunch/Program.cs b/OpenSim/Tools/OpenSim.GridLaunch/Program.cs index 5a0bb0c..ecfb0af 100644 --- a/OpenSim/Tools/OpenSim.GridLaunch/Program.cs +++ b/OpenSim/Tools/OpenSim.GridLaunch/Program.cs @@ -9,7 +9,7 @@ * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * * Neither the name of the OpenSim Project nor the + * * Neither the name of the OpenSimulator Project nor the * names of its contributors may be used to endorse or promote products * derived from this software without specific prior written permission. * diff --git a/OpenSim/Tools/OpenSim.GridLaunch/Properties/AssemblyInfo.cs b/OpenSim/Tools/OpenSim.GridLaunch/Properties/AssemblyInfo.cs index 254e516..60fc664 100644 --- a/OpenSim/Tools/OpenSim.GridLaunch/Properties/AssemblyInfo.cs +++ b/OpenSim/Tools/OpenSim.GridLaunch/Properties/AssemblyInfo.cs @@ -9,7 +9,7 @@ * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * * Neither the name of the OpenSim Project nor the + * * Neither the name of the OpenSimulator Project nor the * names of its contributors may be used to endorse or promote products * derived from this software without specific prior written permission. * diff --git a/OpenSim/Tools/OpenSim.GridLaunch/Settings.cs b/OpenSim/Tools/OpenSim.GridLaunch/Settings.cs index 91353d8..1f02928 100644 --- a/OpenSim/Tools/OpenSim.GridLaunch/Settings.cs +++ b/OpenSim/Tools/OpenSim.GridLaunch/Settings.cs @@ -9,7 +9,7 @@ * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * * Neither the name of the OpenSim Project nor the + * * Neither the name of the OpenSimulator Project nor the * names of its contributors may be used to endorse or promote products * derived from this software without specific prior written permission. * diff --git a/OpenSim/Tools/OpenSim.GridLaunch/log4netAppender.cs b/OpenSim/Tools/OpenSim.GridLaunch/log4netAppender.cs index d9bea1a..d0e7f95 100644 --- a/OpenSim/Tools/OpenSim.GridLaunch/log4netAppender.cs +++ b/OpenSim/Tools/OpenSim.GridLaunch/log4netAppender.cs @@ -9,7 +9,7 @@ * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * * Neither the name of the OpenSim Project nor the + * * Neither the name of the OpenSimulator Project nor the * names of its contributors may be used to endorse or promote products * derived from this software without specific prior written permission. * diff --git a/OpenSim/Tools/pCampBot/BotManager.cs b/OpenSim/Tools/pCampBot/BotManager.cs index 93240d5..3f4e6ed 100644 --- a/OpenSim/Tools/pCampBot/BotManager.cs +++ b/OpenSim/Tools/pCampBot/BotManager.cs @@ -9,7 +9,7 @@ * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * * Neither the name of the OpenSim Project nor the + * * Neither the name of the OpenSimulator Project nor the * names of its contributors may be used to endorse or promote products * derived from this software without specific prior written permission. * diff --git a/OpenSim/Tools/pCampBot/PhysicsBot.cs b/OpenSim/Tools/pCampBot/PhysicsBot.cs index 282f4a0..76d2441 100644 --- a/OpenSim/Tools/pCampBot/PhysicsBot.cs +++ b/OpenSim/Tools/pCampBot/PhysicsBot.cs @@ -9,7 +9,7 @@ * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * * Neither the name of the OpenSim Project nor the + * * Neither the name of the OpenSimulator Project nor the * names of its contributors may be used to endorse or promote products * derived from this software without specific prior written permission. * diff --git a/OpenSim/Tools/pCampBot/pCampBot.cs b/OpenSim/Tools/pCampBot/pCampBot.cs index 098a8ca..002a294 100644 --- a/OpenSim/Tools/pCampBot/pCampBot.cs +++ b/OpenSim/Tools/pCampBot/pCampBot.cs @@ -9,7 +9,7 @@ * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * * Neither the name of the OpenSim Project nor the + * * Neither the name of the OpenSimulator Project nor the * names of its contributors may be used to endorse or promote products * derived from this software without specific prior written permission. * -- cgit v1.1 From a23d64dec1cbf88abc3c7e84664a683dee534e4a Mon Sep 17 00:00:00 2001 From: Jeff Ames Date: Wed, 10 Jun 2009 04:28:56 +0000 Subject: Formatting cleanup. --- OpenSim/Tools/OpenSim.GridLaunch/GUI/WinForm/ProcessPanel.cs | 2 +- OpenSim/Tools/pCampBot/PhysicsBot.cs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/OpenSim.GridLaunch/GUI/WinForm/ProcessPanel.cs b/OpenSim/Tools/OpenSim.GridLaunch/GUI/WinForm/ProcessPanel.cs index c7c1243..f0ed2ca 100644 --- a/OpenSim/Tools/OpenSim.GridLaunch/GUI/WinForm/ProcessPanel.cs +++ b/OpenSim/Tools/OpenSim.GridLaunch/GUI/WinForm/ProcessPanel.cs @@ -194,7 +194,7 @@ namespace OpenSim.GridLaunch.GUI.WinForm cblStartupComponents.Items.AddRange(arr); // Now correct all check states - for (int i = 0; i < cblStartupComponents.Items.Count; i++ ) + for (int i = 0; i < cblStartupComponents.Items.Count; i++) { string _name = cblStartupComponents.Items[i] as string; bool _checked = Program.Settings.Components[_name]; diff --git a/OpenSim/Tools/pCampBot/PhysicsBot.cs b/OpenSim/Tools/pCampBot/PhysicsBot.cs index 76d2441..36a5ef6 100644 --- a/OpenSim/Tools/pCampBot/PhysicsBot.cs +++ b/OpenSim/Tools/pCampBot/PhysicsBot.cs @@ -379,7 +379,7 @@ namespace pCampBot { client.Assets.RequestImage(prim.Textures.DefaultTexture.TextureID, ImageType.Normal); } - for (int i = 0; i < prim.Textures.FaceTextures.Length; i++ ) + for (int i = 0; i < prim.Textures.FaceTextures.Length; i++) { if (prim.Textures.FaceTextures[i] != null) { -- cgit v1.1 From f9ff986908521f4eb816d15f8f4598433f13c18e Mon Sep 17 00:00:00 2001 From: Jeff Ames Date: Fri, 10 Jul 2009 04:29:00 +0000 Subject: Switch runprebuild.bat from VS2005 to VS2008. Remove runprebuild2008.bat. --- OpenSim/Tools/LaunchSLClient/runprebuild.bat | 4 ++-- OpenSim/Tools/LaunchSLClient/runprebuild.sh | 2 +- OpenSim/Tools/LaunchSLClient/runprebuild2008.bat | 4 ---- 3 files changed, 3 insertions(+), 7 deletions(-) delete mode 100755 OpenSim/Tools/LaunchSLClient/runprebuild2008.bat (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/LaunchSLClient/runprebuild.bat b/OpenSim/Tools/LaunchSLClient/runprebuild.bat index 0ef3dd9..41e2714 100755 --- a/OpenSim/Tools/LaunchSLClient/runprebuild.bat +++ b/OpenSim/Tools/LaunchSLClient/runprebuild.bat @@ -1,4 +1,4 @@ ..\..\..\bin\Prebuild.exe /target nant -..\..\..\bin\Prebuild.exe /target vs2005 +..\..\..\bin\Prebuild.exe /target vs2008 +echo C:\WINDOWS\Microsoft.NET\Framework\v3.5\msbuild LaunchSLClient.sln > compile.bat -echo C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\msbuild LaunchSLClient.sln > compile.bat diff --git a/OpenSim/Tools/LaunchSLClient/runprebuild.sh b/OpenSim/Tools/LaunchSLClient/runprebuild.sh index 4fa418b..25ea4cd 100755 --- a/OpenSim/Tools/LaunchSLClient/runprebuild.sh +++ b/OpenSim/Tools/LaunchSLClient/runprebuild.sh @@ -2,4 +2,4 @@ mono ../../../bin/Prebuild.exe /target nant mono ../../../bin/Prebuild.exe /target monodev -mono ../../../bin/Prebuild.exe /target vs2005 +mono ../../../bin/Prebuild.exe /target vs2008 diff --git a/OpenSim/Tools/LaunchSLClient/runprebuild2008.bat b/OpenSim/Tools/LaunchSLClient/runprebuild2008.bat deleted file mode 100755 index 41e2714..0000000 --- a/OpenSim/Tools/LaunchSLClient/runprebuild2008.bat +++ /dev/null @@ -1,4 +0,0 @@ -..\..\..\bin\Prebuild.exe /target nant -..\..\..\bin\Prebuild.exe /target vs2008 -echo C:\WINDOWS\Microsoft.NET\Framework\v3.5\msbuild LaunchSLClient.sln > compile.bat - -- cgit v1.1 From 64bd9a335444379ebe1cad8e34d5b5953a76f671 Mon Sep 17 00:00:00 2001 From: Teravus Ovares Date: Sat, 25 Jul 2009 15:49:10 +0000 Subject: * Updates libOMV to version 0.7.0 * Uses mantis #3811 as a base (thanks jhuliman) with changes. * E-mail regarding interface changes sent to the opensim-dev list * Archive: https://lists.berlios.de/pipermail/opensim-dev/2009-July/007219.html --- OpenSim/Tools/pCampBot/PhysicsBot.cs | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/pCampBot/PhysicsBot.cs b/OpenSim/Tools/pCampBot/PhysicsBot.cs index 36a5ef6..426ef29 100644 --- a/OpenSim/Tools/pCampBot/PhysicsBot.cs +++ b/OpenSim/Tools/pCampBot/PhysicsBot.cs @@ -32,6 +32,7 @@ using System.IO; using System.Threading; using System.Timers; using OpenMetaverse; +using OpenMetaverse.Assets; using Nini.Config; using OpenSim.Framework; using OpenSim.Framework.Console; @@ -142,7 +143,7 @@ namespace pCampBot client.Settings.SEND_AGENT_THROTTLE = true; client.Settings.SEND_PINGS = true; client.Settings.STORE_LAND_PATCHES = false; - client.Settings.USE_TEXTURE_CACHE = false; + client.Settings.USE_ASSET_CACHE = false; client.Settings.MULTIPLE_SIMS = true; client.Throttle.Asset = 100000; client.Throttle.Land = 100000; @@ -154,8 +155,7 @@ namespace pCampBot client.Network.OnSimConnected += new NetworkManager.SimConnectedCallback(this.Network_OnConnected); client.Network.OnDisconnected += new NetworkManager.DisconnectedCallback(this.Network_OnDisconnected); client.Objects.OnNewPrim += Objects_NewPrim; - client.Assets.OnImageReceived += Asset_TextureCallback; - client.Assets.OnAssetReceived += Asset_ReceivedCallback; + //client.Assets.OnAssetReceived += Asset_ReceivedCallback; if (client.Network.Login(firstname, lastname, password, "pCampBot", "Your name")) { if (OnConnected != null) @@ -202,8 +202,8 @@ namespace pCampBot UUID wearable = client.Appearance.GetWearableAsset(wtype); if (wearable != UUID.Zero) { - client.Assets.RequestAsset(wearable, AssetType.Clothing, false); - client.Assets.RequestAsset(wearable, AssetType.Bodypart, false); + client.Assets.RequestAsset(wearable, AssetType.Clothing, false, Asset_ReceivedCallback); + client.Assets.RequestAsset(wearable, AssetType.Bodypart, false, Asset_ReceivedCallback); } } } @@ -377,7 +377,7 @@ namespace pCampBot { if (prim.Textures.DefaultTexture.TextureID != UUID.Zero) { - client.Assets.RequestImage(prim.Textures.DefaultTexture.TextureID, ImageType.Normal); + client.Assets.RequestImage(prim.Textures.DefaultTexture.TextureID, ImageType.Normal, Asset_TextureCallback_Texture); } for (int i = 0; i < prim.Textures.FaceTextures.Length; i++) { @@ -385,7 +385,7 @@ namespace pCampBot { if (prim.Textures.FaceTextures[i].TextureID != UUID.Zero) { - client.Assets.RequestImage(prim.Textures.FaceTextures[i].TextureID, ImageType.Normal); + client.Assets.RequestImage(prim.Textures.FaceTextures[i].TextureID, ImageType.Normal, Asset_TextureCallback_Texture); } } @@ -393,16 +393,18 @@ namespace pCampBot } if (prim.Sculpt.SculptTexture != UUID.Zero) { - client.Assets.RequestImage(prim.Sculpt.SculptTexture, ImageType.Normal); + client.Assets.RequestImage(prim.Sculpt.SculptTexture, ImageType.Normal, Asset_TextureCallback_Texture); } } } - public void Asset_TextureCallback(ImageDownload image, AssetTexture asset) + + + public void Asset_TextureCallback_Texture(TextureRequestState state, AssetTexture assetTexture) { //TODO: Implement texture saving and applying } - + public void Asset_ReceivedCallback(AssetDownload transfer,Asset asset) { if (wear == "save") -- cgit v1.1 From d4c98ddffc7b6ac25cd08f57f9f67a33bff91683 Mon Sep 17 00:00:00 2001 From: Alan M Webb Date: Wed, 16 Sep 2009 10:00:00 -0400 Subject: This fix adds a stand-alone compilation environment for OpenSIm scripts. It makes it very easy to address coding issues before going in-world to try a script out. This is a HUGE time saver if you're doing anything significant with scripts. Signed-off-by: dr scofield (aka dirk husemann) --- OpenSim/Tools/Compiler/Program.cs | 287 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 287 insertions(+) create mode 100644 OpenSim/Tools/Compiler/Program.cs (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/Compiler/Program.cs b/OpenSim/Tools/Compiler/Program.cs new file mode 100644 index 0000000..0141f48 --- /dev/null +++ b/OpenSim/Tools/Compiler/Program.cs @@ -0,0 +1,287 @@ + +using System; +using System.Collections.Generic; +using System.IO; +using Microsoft.CSharp; +using OpenSim.Region.ScriptEngine.Shared.CodeTools; +using System.CodeDom.Compiler; + +namespace OpenSim.Tools.LSL.Compiler +{ + class Program + { + private static Dictionary, KeyValuePair> m_positionMap; + private static CSharpCodeProvider CScodeProvider = new CSharpCodeProvider(); + + static void Main(string[] args) + { + string source = null; + + if(args.Length == 0) + { + Console.WriteLine("No input file specified"); + Environment.Exit(1); + } + + if(!File.Exists(args[0])) + { + Console.WriteLine("Input file does not exist"); + Environment.Exit(1); + } + + try + { + ICodeConverter cvt = (ICodeConverter) new CSCodeGenerator(); + source = cvt.Convert(File.ReadAllText(args[0])); + } + catch(Exception e) + { + Console.WriteLine("Conversion failed:\n"+e.Message); + Environment.Exit(1); + } + + source = CreateCSCompilerScript(source); + + try + { + Console.WriteLine(CompileFromDotNetText(source,"a.out")); + } + catch(Exception e) + { + Console.WriteLine("Conversion failed: "+e.Message); + Environment.Exit(1); + } + + Environment.Exit(0); + } + + private static string CreateCSCompilerScript(string compileScript) + { + compileScript = String.Empty + + "using OpenSim.Region.ScriptEngine.Shared; using System.Collections.Generic;\r\n" + + String.Empty + "namespace SecondLife { " + + String.Empty + "public class Script : OpenSim.Region.ScriptEngine.Shared.ScriptBase.ScriptBaseClass { \r\n" + + @"public Script() { } " + + compileScript + + "} }\r\n"; + return compileScript; + } + + private static string CompileFromDotNetText(string Script, string asset) + { + + string OutFile = asset; + string disp ="OK"; + + try + { + File.Delete(OutFile); + } + catch (Exception e) // NOTLEGIT - Should be just FileIOException + { + throw new Exception("Unable to delete old existing "+ + "script-file before writing new. Compile aborted: " + + e.ToString()); + } + + // Do actual compile + CompilerParameters parameters = new CompilerParameters(); + + parameters.IncludeDebugInformation = true; + + string rootPath = + Path.GetDirectoryName(AppDomain.CurrentDomain.BaseDirectory); + + parameters.ReferencedAssemblies.Add(Path.Combine(rootPath, + "OpenSim.Region.ScriptEngine.Shared.dll")); + parameters.ReferencedAssemblies.Add(Path.Combine(rootPath, + "OpenSim.Region.ScriptEngine.Shared.Api.Runtime.dll")); + + parameters.GenerateExecutable = false; + parameters.OutputAssembly = OutFile; + parameters.IncludeDebugInformation = true; + parameters.WarningLevel = 1; + parameters.TreatWarningsAsErrors = false; + + CompilerResults results = CScodeProvider.CompileAssemblyFromSource(parameters, Script); + + if (results.Errors.Count > 0) + { + string errtext = String.Empty; + foreach (CompilerError CompErr in results.Errors) + { + string severity = "Error"; + if ( CompErr.IsWarning ) + { + severity = "Warning"; + } + + KeyValuePair lslPos; + + lslPos = FindErrorPosition(CompErr.Line, CompErr.Column); + + string text = CompErr.ErrorText; + + text = ReplaceTypes(CompErr.ErrorText); + + // The Second Life viewer's script editor begins + // countingn lines and columns at 0, so we subtract 1. + errtext += String.Format("Line ({0},{1}): {4} {2}: {3}\n", + lslPos.Key - 1, lslPos.Value - 1, + CompErr.ErrorNumber, text, severity); + } + + disp = "Completed with errors"; + + if (!File.Exists(OutFile)) + { + throw new Exception(errtext); + } + } + + if (!File.Exists(OutFile)) + { + string errtext = String.Empty; + errtext += "No compile error. But not able to locate compiled file."; + throw new Exception(errtext); + } + + // Because windows likes to perform exclusive locks, we simply + // write out a textual representation of the file here + // + // Read the binary file into a buffer + // + FileInfo fi = new FileInfo(OutFile); + + if (fi == null) + { + string errtext = String.Empty; + errtext += "No compile error. But not able to stat file."; + throw new Exception(errtext); + } + + Byte[] data = new Byte[fi.Length]; + + try + { + FileStream fs = File.Open(OutFile, FileMode.Open, FileAccess.Read); + fs.Read(data, 0, data.Length); + fs.Close(); + } + catch (Exception) + { + string errtext = String.Empty; + errtext += "No compile error. But not able to open file."; + throw new Exception(errtext); + } + + // Convert to base64 + // + string filetext = System.Convert.ToBase64String(data); + + System.Text.ASCIIEncoding enc = new System.Text.ASCIIEncoding(); + + Byte[] buf = enc.GetBytes(filetext); + + FileStream sfs = File.Create(OutFile+".text"); + sfs.Write(buf, 0, buf.Length); + sfs.Close(); + + string posmap = String.Empty; + if (m_positionMap != null) + { + foreach (KeyValuePair, KeyValuePair> kvp in m_positionMap) + { + KeyValuePair k = kvp.Key; + KeyValuePair v = kvp.Value; + posmap += String.Format("{0},{1},{2},{3}\n", + k.Key, k.Value, v.Key, v.Value); + } + } + + buf = enc.GetBytes(posmap); + + FileStream mfs = File.Create(OutFile+".map"); + mfs.Write(buf, 0, buf.Length); + mfs.Close(); + + return disp; + } + + private static string ReplaceTypes(string message) + { + message = message.Replace( + "OpenSim.Region.ScriptEngine.Shared.LSL_Types.LSLString", + "string"); + + message = message.Replace( + "OpenSim.Region.ScriptEngine.Shared.LSL_Types.LSLInteger", + "integer"); + + message = message.Replace( + "OpenSim.Region.ScriptEngine.Shared.LSL_Types.LSLFloat", + "float"); + + message = message.Replace( + "OpenSim.Region.ScriptEngine.Shared.LSL_Types.list", + "list"); + + return message; + } + + private static KeyValuePair FindErrorPosition(int line, int col) + { + return FindErrorPosition(line, col, m_positionMap); + } + + private class kvpSorter : IComparer> + { + public int Compare(KeyValuePair a, + KeyValuePair b) + { + return a.Key.CompareTo(b.Key); + } + } + + public static KeyValuePair FindErrorPosition(int line, + int col, Dictionary, + KeyValuePair> positionMap) + { + if (positionMap == null || positionMap.Count == 0) + return new KeyValuePair(line, col); + + KeyValuePair ret = new KeyValuePair(); + + if (positionMap.TryGetValue(new KeyValuePair(line, col), + out ret)) + return ret; + + List> sorted = + new List>(positionMap.Keys); + + sorted.Sort(new kvpSorter()); + + int l = 1; + int c = 1; + + foreach (KeyValuePair cspos in sorted) + { + if (cspos.Key >= line) + { + if (cspos.Key > line) + return new KeyValuePair(l, c); + if (cspos.Value > col) + return new KeyValuePair(l, c); + c = cspos.Value; + if (c == 0) + c++; + } + else + { + l = cspos.Key; + } + } + return new KeyValuePair(l, c); + } + } +} -- cgit v1.1 From 8f133cb46b405988c89a708027cd1748dc87ce7c Mon Sep 17 00:00:00 2001 From: Diva Canto Date: Fri, 18 Sep 2009 19:28:58 -0700 Subject: Renamed the project lslc to OpenSim.Tools.lslc to conform to the naming conventions so far. Added copyright to it. --- OpenSim/Tools/Compiler/Program.cs | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/Compiler/Program.cs b/OpenSim/Tools/Compiler/Program.cs index 0141f48..9cd6bc8 100644 --- a/OpenSim/Tools/Compiler/Program.cs +++ b/OpenSim/Tools/Compiler/Program.cs @@ -1,3 +1,29 @@ +/* + * Copyright (c) Contributors, http://opensimulator.org/ + * See CONTRIBUTORS.TXT for a full list of copyright holders. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the OpenSimulator Project nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ using System; using System.Collections.Generic; -- cgit v1.1 From f00126dc2dfc9e23aa50227f02ee9adbe1efdfa6 Mon Sep 17 00:00:00 2001 From: Jeff Ames Date: Tue, 29 Sep 2009 08:32:59 +0900 Subject: Add copyright header. Formatting cleanup. --- OpenSim/Tools/Compiler/Program.cs | 36 ++++++++++++++++-------------------- 1 file changed, 16 insertions(+), 20 deletions(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/Compiler/Program.cs b/OpenSim/Tools/Compiler/Program.cs index 9cd6bc8..b18e029 100644 --- a/OpenSim/Tools/Compiler/Program.cs +++ b/OpenSim/Tools/Compiler/Program.cs @@ -37,19 +37,19 @@ namespace OpenSim.Tools.LSL.Compiler class Program { private static Dictionary, KeyValuePair> m_positionMap; - private static CSharpCodeProvider CScodeProvider = new CSharpCodeProvider(); + private static CSharpCodeProvider CScodeProvider = new CSharpCodeProvider(); static void Main(string[] args) { - string source = null; + string source = null; - if(args.Length == 0) + if (args.Length == 0) { Console.WriteLine("No input file specified"); Environment.Exit(1); } - if(!File.Exists(args[0])) + if (!File.Exists(args[0])) { Console.WriteLine("Input file does not exist"); Environment.Exit(1); @@ -136,11 +136,7 @@ namespace OpenSim.Tools.LSL.Compiler string errtext = String.Empty; foreach (CompilerError CompErr in results.Errors) { - string severity = "Error"; - if ( CompErr.IsWarning ) - { - severity = "Warning"; - } + string severity = CompErr.IsWarning ? "Warning" : "Error"; KeyValuePair lslPos; @@ -153,8 +149,8 @@ namespace OpenSim.Tools.LSL.Compiler // The Second Life viewer's script editor begins // countingn lines and columns at 0, so we subtract 1. errtext += String.Format("Line ({0},{1}): {4} {2}: {3}\n", - lslPos.Key - 1, lslPos.Value - 1, - CompErr.ErrorNumber, text, severity); + lslPos.Key - 1, lslPos.Value - 1, + CompErr.ErrorNumber, text, severity); } disp = "Completed with errors"; @@ -237,20 +233,20 @@ namespace OpenSim.Tools.LSL.Compiler private static string ReplaceTypes(string message) { message = message.Replace( - "OpenSim.Region.ScriptEngine.Shared.LSL_Types.LSLString", - "string"); + "OpenSim.Region.ScriptEngine.Shared.LSL_Types.LSLString", + "string"); message = message.Replace( - "OpenSim.Region.ScriptEngine.Shared.LSL_Types.LSLInteger", - "integer"); + "OpenSim.Region.ScriptEngine.Shared.LSL_Types.LSLInteger", + "integer"); message = message.Replace( - "OpenSim.Region.ScriptEngine.Shared.LSL_Types.LSLFloat", - "float"); + "OpenSim.Region.ScriptEngine.Shared.LSL_Types.LSLFloat", + "float"); message = message.Replace( - "OpenSim.Region.ScriptEngine.Shared.LSL_Types.list", - "list"); + "OpenSim.Region.ScriptEngine.Shared.LSL_Types.list", + "list"); return message; } @@ -263,7 +259,7 @@ namespace OpenSim.Tools.LSL.Compiler private class kvpSorter : IComparer> { public int Compare(KeyValuePair a, - KeyValuePair b) + KeyValuePair b) { return a.Key.CompareTo(b.Key); } -- cgit v1.1 From 2519f071f2c592aeea0414c8b2871e5df623271c Mon Sep 17 00:00:00 2001 From: John Hurliman Date: Tue, 6 Oct 2009 02:50:59 -0700 Subject: Fixing a few compile errors in the previous commit --- OpenSim/Tools/pCampBot/BotManager.cs | 1 - 1 file changed, 1 deletion(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/pCampBot/BotManager.cs b/OpenSim/Tools/pCampBot/BotManager.cs index 3f4e6ed..614b350 100644 --- a/OpenSim/Tools/pCampBot/BotManager.cs +++ b/OpenSim/Tools/pCampBot/BotManager.cs @@ -149,7 +149,6 @@ namespace pCampBot m_td[pos].IsBackground = true; m_td[pos].Start(); m_lBot.Add(pb); - ThreadTracker.Add(m_td[pos]); } /// -- cgit v1.1 From 593ce2e1fb0530d91a66006ad069d2916d482cd2 Mon Sep 17 00:00:00 2001 From: John Hurliman Date: Sun, 25 Oct 2009 01:01:26 -0700 Subject: Minor tweaks to get OpenSim compiling against both the current libomv and the upcoming 0.8.0 --- OpenSim/Tools/pCampBot/PhysicsBot.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/pCampBot/PhysicsBot.cs b/OpenSim/Tools/pCampBot/PhysicsBot.cs index 426ef29..9cdbf32 100644 --- a/OpenSim/Tools/pCampBot/PhysicsBot.cs +++ b/OpenSim/Tools/pCampBot/PhysicsBot.cs @@ -271,7 +271,7 @@ namespace pCampBot string[] bodyparts = Directory.GetFiles(saveDir, "*.bodypart", SearchOption.TopDirectoryOnly); InventoryFolder clothfolder = FindClothingFolder(); UUID transid = UUID.Random(); - List listwearables = new List(); + List listwearables = new List(); for (int i = 0; i < clothing.Length; i++) { -- cgit v1.1 From 0be79b285b0c73c3499cd4843c5e6e2f58bc2620 Mon Sep 17 00:00:00 2001 From: John Hurliman Date: Sun, 25 Oct 2009 01:13:50 -0700 Subject: Having a commit fail... this fixes a typo in the previous commit(s?) --- OpenSim/Tools/pCampBot/PhysicsBot.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/pCampBot/PhysicsBot.cs b/OpenSim/Tools/pCampBot/PhysicsBot.cs index 9cdbf32..426ef29 100644 --- a/OpenSim/Tools/pCampBot/PhysicsBot.cs +++ b/OpenSim/Tools/pCampBot/PhysicsBot.cs @@ -271,7 +271,7 @@ namespace pCampBot string[] bodyparts = Directory.GetFiles(saveDir, "*.bodypart", SearchOption.TopDirectoryOnly); InventoryFolder clothfolder = FindClothingFolder(); UUID transid = UUID.Random(); - List listwearables = new List(); + List listwearables = new List(); for (int i = 0; i < clothing.Length; i++) { -- cgit v1.1 From b498693cff9b044e8ab3c7a88a18e9d67f16461b Mon Sep 17 00:00:00 2001 From: John Hurliman Date: Tue, 27 Oct 2009 01:46:14 -0700 Subject: * Tweak to region module loading to check for a matching constructor first instead of throwing and catching exceptions * Commenting out the MySQL startup sequence that cleans out dropped attachments under the advice that it is no longer relevant. If anything, it could be brought back as a database cleanup console command * Updated to the latest libomv 0.8.0-pre. UUID.TryParse() will no longer throw and catch exceptions for most failed UUID parses --- OpenSim/Tools/pCampBot/PhysicsBot.cs | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/pCampBot/PhysicsBot.cs b/OpenSim/Tools/pCampBot/PhysicsBot.cs index 426ef29..38986a2 100644 --- a/OpenSim/Tools/pCampBot/PhysicsBot.cs +++ b/OpenSim/Tools/pCampBot/PhysicsBot.cs @@ -154,7 +154,7 @@ namespace pCampBot client.Network.OnConnected += new NetworkManager.ConnectedCallback(this.Network_OnConnected); client.Network.OnSimConnected += new NetworkManager.SimConnectedCallback(this.Network_OnConnected); client.Network.OnDisconnected += new NetworkManager.DisconnectedCallback(this.Network_OnDisconnected); - client.Objects.OnNewPrim += Objects_NewPrim; + client.Objects.ObjectUpdate += Objects_NewPrim; //client.Assets.OnAssetReceived += Asset_ReceivedCallback; if (client.Network.Login(firstname, lastname, password, "pCampBot", "Your name")) { @@ -369,8 +369,10 @@ namespace pCampBot } } - public void Objects_NewPrim(Simulator simulator, Primitive prim, ulong regionHandle, ushort timeDilation) + public void Objects_NewPrim(object sender, PrimEventArgs args) { + Primitive prim = args.Prim; + if (prim != null) { if (prim.Textures != null) @@ -396,7 +398,6 @@ namespace pCampBot client.Assets.RequestImage(prim.Sculpt.SculptTexture, ImageType.Normal, Asset_TextureCallback_Texture); } } - } -- cgit v1.1 From a05c67bebb8a504858706619335c035948907158 Mon Sep 17 00:00:00 2001 From: John Hurliman Date: Fri, 30 Oct 2009 00:08:41 -0700 Subject: * Fixes issue #4329 "llDialog fails silently" by updating OpenMetaverse.dll * Prints a warning for any future packet splitting failures --- OpenSim/Tools/pCampBot/PhysicsBot.cs | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/pCampBot/PhysicsBot.cs b/OpenSim/Tools/pCampBot/PhysicsBot.cs index 38986a2..5d4af31 100644 --- a/OpenSim/Tools/pCampBot/PhysicsBot.cs +++ b/OpenSim/Tools/pCampBot/PhysicsBot.cs @@ -151,9 +151,9 @@ namespace pCampBot client.Throttle.Texture = 100000; client.Throttle.Wind = 100000; client.Throttle.Total = 400000; - client.Network.OnConnected += new NetworkManager.ConnectedCallback(this.Network_OnConnected); - client.Network.OnSimConnected += new NetworkManager.SimConnectedCallback(this.Network_OnConnected); - client.Network.OnDisconnected += new NetworkManager.DisconnectedCallback(this.Network_OnDisconnected); + client.Network.LoginProgress += this.Network_LoginProgress; + client.Network.SimConnected += this.Network_SimConnected; + client.Network.Disconnected += this.Network_OnDisconnected; client.Objects.ObjectUpdate += Objects_NewPrim; //client.Assets.OnAssetReceived += Asset_ReceivedCallback; if (client.Network.Login(firstname, lastname, password, "pCampBot", "Your name")) @@ -349,19 +349,22 @@ namespace pCampBot return clothfolder; } - public void Network_OnConnected(object sender) + public void Network_LoginProgress(object sender, LoginProgressEventArgs args) { - if (OnConnected != null) + if (args.Status == LoginStatus.Success) { - OnConnected(this, EventType.CONNECTED); + if (OnConnected != null) + { + OnConnected(this, EventType.CONNECTED); + } } } - public void Simulator_Connected(object sender) + public void Network_SimConnected(object sender, SimConnectedEventArgs args) { } - public void Network_OnDisconnected(NetworkManager.DisconnectType reason, string message) + public void Network_OnDisconnected(object sender, DisconnectedEventArgs args) { if (OnDisconnected != null) { -- cgit v1.1 From 73dcbbd57ac3272bb416e20280a791aa03d2a185 Mon Sep 17 00:00:00 2001 From: Justin Clark-Casey (justincc) Date: Tue, 24 Nov 2009 17:32:14 +0000 Subject: minor: remove some mono compiler warnings --- OpenSim/Tools/Compiler/Program.cs | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/Compiler/Program.cs b/OpenSim/Tools/Compiler/Program.cs index b18e029..249e18b 100644 --- a/OpenSim/Tools/Compiler/Program.cs +++ b/OpenSim/Tools/Compiler/Program.cs @@ -36,7 +36,8 @@ namespace OpenSim.Tools.LSL.Compiler { class Program { - private static Dictionary, KeyValuePair> m_positionMap; +// Commented out because generated warning since m_positionMap could never be anything other than null +// private static Dictionary, KeyValuePair> m_positionMap; private static CSharpCodeProvider CScodeProvider = new CSharpCodeProvider(); static void Main(string[] args) @@ -210,16 +211,16 @@ namespace OpenSim.Tools.LSL.Compiler sfs.Close(); string posmap = String.Empty; - if (m_positionMap != null) - { - foreach (KeyValuePair, KeyValuePair> kvp in m_positionMap) - { - KeyValuePair k = kvp.Key; - KeyValuePair v = kvp.Value; - posmap += String.Format("{0},{1},{2},{3}\n", - k.Key, k.Value, v.Key, v.Value); - } - } +// if (m_positionMap != null) +// { +// foreach (KeyValuePair, KeyValuePair> kvp in m_positionMap) +// { +// KeyValuePair k = kvp.Key; +// KeyValuePair v = kvp.Value; +// posmap += String.Format("{0},{1},{2},{3}\n", +// k.Key, k.Value, v.Key, v.Value); +// } +// } buf = enc.GetBytes(posmap); @@ -253,7 +254,8 @@ namespace OpenSim.Tools.LSL.Compiler private static KeyValuePair FindErrorPosition(int line, int col) { - return FindErrorPosition(line, col, m_positionMap); + //return FindErrorPosition(line, col, m_positionMap); + return FindErrorPosition(line, col, null); } private class kvpSorter : IComparer> -- cgit v1.1 From 70a0d7aa4677c240ad12527adde6725df946e572 Mon Sep 17 00:00:00 2001 From: Melanie Date: Mon, 8 Feb 2010 15:21:35 +0000 Subject: Adding the Careminster "Configger" tool to OpenSim. The tool will, when launched in place of OpenSim, dump the config to stdout. Use -f xml, -f ini or -f mysql to get a condensed ini file, an xml file suitable for webloading, or a set of mysql insert statements. --- OpenSim/Tools/Configger/ConfigurationLoader.cs | 251 +++++++++++++++++++++++++ OpenSim/Tools/Configger/Main.cs | 108 +++++++++++ OpenSim/Tools/Configger/Util.cs | 79 ++++++++ 3 files changed, 438 insertions(+) create mode 100644 OpenSim/Tools/Configger/ConfigurationLoader.cs create mode 100644 OpenSim/Tools/Configger/Main.cs create mode 100644 OpenSim/Tools/Configger/Util.cs (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/Configger/ConfigurationLoader.cs b/OpenSim/Tools/Configger/ConfigurationLoader.cs new file mode 100644 index 0000000..49af417 --- /dev/null +++ b/OpenSim/Tools/Configger/ConfigurationLoader.cs @@ -0,0 +1,251 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Reflection; +using System.Threading; +using System.Xml; +using log4net; +using Nini.Config; + +namespace Careminster +{ + /// + /// Loads the Configuration files into nIni + /// + public class ConfigurationLoader + { + /// + /// A source of Configuration data + /// + protected IConfigSource m_config; + + /// + /// Console logger + /// + private static readonly ILog m_log = + LogManager.GetLogger( + MethodBase.GetCurrentMethod().DeclaringType); + + public ConfigurationLoader() + { + } + + /// + /// Loads the region configuration + /// + /// Parameters passed into the process when started + /// + /// + /// A configuration that gets passed to modules + public IConfigSource LoadConfigSettings() + { + bool iniFileExists = false; + + List sources = new List(); + + string iniFileName = "OpenSim.ini"; + string iniFilePath = Path.Combine(".", iniFileName); + + if (IsUri(iniFileName)) + { + if (!sources.Contains(iniFileName)) + sources.Add(iniFileName); + } + else + { + if (File.Exists(iniFilePath)) + { + if (!sources.Contains(iniFilePath)) + sources.Add(iniFilePath); + } + } + + m_config = new IniConfigSource(); + m_config.Merge(DefaultConfig()); + + m_log.Info("[CONFIG] Reading configuration settings"); + + if (sources.Count == 0) + { + m_log.FatalFormat("[CONFIG] Could not load any configuration"); + m_log.FatalFormat("[CONFIG] Did you copy the OpenSim.ini.example file to OpenSim.ini?"); + Environment.Exit(1); + } + + for (int i = 0 ; i < sources.Count ; i++) + { + if (ReadConfig(sources[i])) + iniFileExists = true; + AddIncludes(sources); + } + + if (!iniFileExists) + { + m_log.FatalFormat("[CONFIG] Could not load any configuration"); + m_log.FatalFormat("[CONFIG] Configuration exists, but there was an error loading it!"); + Environment.Exit(1); + } + + return m_config; + } + + /// + /// Adds the included files as ini configuration files + /// + /// List of URL strings or filename strings + private void AddIncludes(List sources) + { + //loop over config sources + foreach (IConfig config in m_config.Configs) + { + // Look for Include-* in the key name + string[] keys = config.GetKeys(); + foreach (string k in keys) + { + if (k.StartsWith("Include-")) + { + // read the config file to be included. + string file = config.GetString(k); + if (IsUri(file)) + { + if (!sources.Contains(file)) + sources.Add(file); + } + else + { + string basepath = Path.GetFullPath("."); + string path = Path.Combine(basepath, file); + string[] paths = Util.Glob(path); + foreach (string p in paths) + { + if (!sources.Contains(p)) + sources.Add(p); + } + } + } + } + } + } + /// + /// Check if we can convert the string to a URI + /// + /// String uri to the remote resource + /// true if we can convert the string to a Uri object + bool IsUri(string file) + { + Uri configUri; + + return Uri.TryCreate(file, UriKind.Absolute, + out configUri) && configUri.Scheme == Uri.UriSchemeHttp; + } + + /// + /// Provide same ini loader functionality for standard ini and master ini - file system or XML over http + /// + /// Full path to the ini + /// + private bool ReadConfig(string iniPath) + { + bool success = false; + + if (!IsUri(iniPath)) + { + m_log.InfoFormat("[CONFIG] Reading configuration file {0}", + Path.GetFullPath(iniPath)); + + m_config.Merge(new IniConfigSource(iniPath)); + success = true; + } + else + { + m_log.InfoFormat("[CONFIG] {0} is a http:// URI, fetching ...", + iniPath); + + // The ini file path is a http URI + // Try to read it + // + try + { + XmlReader r = XmlReader.Create(iniPath); + XmlConfigSource cs = new XmlConfigSource(r); + m_config.Merge(cs); + + success = true; + } + catch (Exception e) + { + m_log.FatalFormat("[CONFIG] Exception reading config from URI {0}\n" + e.ToString(), iniPath); + Environment.Exit(1); + } + } + return success; + } + + /// + /// Setup a default config values in case they aren't present in the ini file + /// + /// A Configuration source containing the default configuration + private static IConfigSource DefaultConfig() + { + IConfigSource defaultConfig = new IniConfigSource(); + + { + IConfig config = defaultConfig.Configs["Startup"]; + + if (null == config) + config = defaultConfig.AddConfig("Startup"); + + config.Set("region_info_source", "filesystem"); + + config.Set("gridmode", false); + config.Set("physics", "OpenDynamicsEngine"); + config.Set("meshing", "Meshmerizer"); + config.Set("physical_prim", true); + config.Set("see_into_this_sim_from_neighbor", true); + config.Set("serverside_object_permissions", false); + config.Set("storage_plugin", "OpenSim.Data.SQLite.dll"); + config.Set("storage_connection_string", "URI=file:OpenSim.db,version=3"); + config.Set("storage_prim_inventories", true); + config.Set("startup_console_commands_file", String.Empty); + config.Set("shutdown_console_commands_file", String.Empty); + config.Set("DefaultScriptEngine", "XEngine"); + config.Set("clientstack_plugin", "OpenSim.Region.ClientStack.LindenUDP.dll"); + // life doesn't really work without this + config.Set("EventQueue", true); + } + + { + IConfig config = defaultConfig.Configs["StandAlone"]; + + if (null == config) + config = defaultConfig.AddConfig("StandAlone"); + + config.Set("accounts_authenticate", true); + config.Set("welcome_message", "Welcome to OpenSimulator"); + config.Set("inventory_plugin", "OpenSim.Data.SQLite.dll"); + config.Set("inventory_source", ""); + config.Set("userDatabase_plugin", "OpenSim.Data.SQLite.dll"); + config.Set("user_source", ""); + config.Set("LibrariesXMLFile", string.Format(".{0}inventory{0}Libraries.xml", Path.DirectorySeparatorChar)); + } + + { + IConfig config = defaultConfig.Configs["Network"]; + + if (null == config) + config = defaultConfig.AddConfig("Network"); + + config.Set("default_location_x", 1000); + config.Set("default_location_y", 1000); + config.Set("grid_send_key", "null"); + config.Set("grid_recv_key", "null"); + config.Set("user_send_key", "null"); + config.Set("user_recv_key", "null"); + config.Set("secure_inventory_server", "true"); + } + + return defaultConfig; + } + + } +} diff --git a/OpenSim/Tools/Configger/Main.cs b/OpenSim/Tools/Configger/Main.cs new file mode 100644 index 0000000..c85f0d2 --- /dev/null +++ b/OpenSim/Tools/Configger/Main.cs @@ -0,0 +1,108 @@ +using Nini.Config; +using System; + +namespace Careminster +{ + public class Configger + { + public static int Main(string[] args) + { + ArgvConfigSource argvConfig = new ArgvConfigSource(args); + argvConfig.AddSwitch("Startup", "format", "f"); + + IConfig startupConfig = argvConfig.Configs["Startup"]; + + string format = startupConfig.GetString("format", "ini"); + + ConfigurationLoader loader = new ConfigurationLoader(); + + IConfigSource s = loader.LoadConfigSettings(); + + if (format == "mysql") + { + foreach (IConfig c in s.Configs) + { + foreach (string k in c.GetKeys()) + { + string v = c.GetString(k); + + if (k.StartsWith("Include-")) + continue; + Console.WriteLine("insert ignore into config (section, name, value) values ('{0}', '{1}', '{2}');", c.Name, k, v); + } + } + } + else if (format == "xml") + { + Console.WriteLine(""); + + foreach (IConfig c in s.Configs) + { + int count = 0; + + foreach (string k in c.GetKeys()) + { + if (k.StartsWith("Include-")) + continue; + + count++; + } + + if (count > 0) + { + Console.WriteLine("
", c.Name); + + foreach (string k in c.GetKeys()) + { + string v = c.GetString(k); + + if (k.StartsWith("Include-")) + continue; + Console.WriteLine(" ", k, v); + + Console.WriteLine("
"); + } + } + } + Console.WriteLine("
"); + } + else if (format == "ini") + { + foreach (IConfig c in s.Configs) + { + int count = 0; + + foreach (string k in c.GetKeys()) + { + if (k.StartsWith("Include-")) + continue; + + count++; + } + + if (count > 0) + { + Console.WriteLine("[{0}]", c.Name); + + foreach (string k in c.GetKeys()) + { + string v = c.GetString(k); + + if (k.StartsWith("Include-")) + continue; + Console.WriteLine("{0} = \"{1}\"", k, v); + } + + Console.WriteLine(); + } + } + } + else + { + Console.WriteLine("Error: unknown format: {0}", format); + } + + return 0; + } + } +} diff --git a/OpenSim/Tools/Configger/Util.cs b/OpenSim/Tools/Configger/Util.cs new file mode 100644 index 0000000..6f8aa76 --- /dev/null +++ b/OpenSim/Tools/Configger/Util.cs @@ -0,0 +1,79 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using System.Globalization; +using System.IO; +using System.IO.Compression; +using System.Net; +using System.Net.Sockets; +using System.Reflection; +using System.Text; +using System.Text.RegularExpressions; +using System.Threading; +using log4net; +using Nini.Config; + +namespace Careminster +{ + public static class Util + { + public static string[] Glob(string path) + { + string vol=String.Empty; + + if (Path.VolumeSeparatorChar != Path.DirectorySeparatorChar) + { + string[] vcomps = path.Split(new char[] {Path.VolumeSeparatorChar}, 2, StringSplitOptions.RemoveEmptyEntries); + + if (vcomps.Length > 1) + { + path = vcomps[1]; + vol = vcomps[0]; + } + } + + string[] comps = path.Split(new char[] {Path.DirectorySeparatorChar, Path.AltDirectorySeparatorChar}, StringSplitOptions.RemoveEmptyEntries); + + // Glob + + path = vol; + if (vol != String.Empty) + path += new String(new char[] {Path.VolumeSeparatorChar, Path.DirectorySeparatorChar}); + else + path = new String(new char[] {Path.DirectorySeparatorChar}); + + List paths = new List(); + List found = new List(); + paths.Add(path); + + int compIndex = -1; + foreach (string c in comps) + { + compIndex++; + + List addpaths = new List(); + foreach (string p in paths) + { + string[] dirs = Directory.GetDirectories(p, c); + + if (dirs.Length != 0) + { + foreach (string dir in dirs) + addpaths.Add(Path.Combine(path, dir)); + } + + // Only add files if that is the last path component + if (compIndex == comps.Length - 1) + { + string[] files = Directory.GetFiles(p, c); + foreach (string f in files) + found.Add(f); + } + } + paths = addpaths; + } + + return found.ToArray(); + } + } +} -- cgit v1.1 From b8346e87d89f177b659852906be23890336b3931 Mon Sep 17 00:00:00 2001 From: Melanie Date: Mon, 8 Feb 2010 16:12:20 +0000 Subject: Bug fix in configger --- OpenSim/Tools/Configger/Main.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/Configger/Main.cs b/OpenSim/Tools/Configger/Main.cs index c85f0d2..192cfce 100644 --- a/OpenSim/Tools/Configger/Main.cs +++ b/OpenSim/Tools/Configger/Main.cs @@ -59,9 +59,9 @@ namespace Careminster if (k.StartsWith("Include-")) continue; Console.WriteLine(" ", k, v); - - Console.WriteLine("
"); } + + Console.WriteLine(""); } } Console.WriteLine(""); -- cgit v1.1 From 61c8bbb4f01d867faf93461dc8315c8ae86107f6 Mon Sep 17 00:00:00 2001 From: Melanie Date: Mon, 8 Feb 2010 22:50:59 +0000 Subject: Add license header and change branded namespace to generic --- OpenSim/Tools/Configger/ConfigurationLoader.cs | 29 +++++++++++++++++++++++++- OpenSim/Tools/Configger/Main.cs | 29 +++++++++++++++++++++++++- OpenSim/Tools/Configger/Util.cs | 29 +++++++++++++++++++++++++- 3 files changed, 84 insertions(+), 3 deletions(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/Configger/ConfigurationLoader.cs b/OpenSim/Tools/Configger/ConfigurationLoader.cs index 49af417..1619a22 100644 --- a/OpenSim/Tools/Configger/ConfigurationLoader.cs +++ b/OpenSim/Tools/Configger/ConfigurationLoader.cs @@ -1,3 +1,30 @@ +/* + * Copyright (c) Contributors, http://opensimulator.org/ + * See CONTRIBUTORS.TXT for a full list of copyright holders. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the OpenSimulator Project nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + using System; using System.Collections.Generic; using System.IO; @@ -7,7 +34,7 @@ using System.Xml; using log4net; using Nini.Config; -namespace Careminster +namespace OpenSim.Tools.Configger { /// /// Loads the Configuration files into nIni diff --git a/OpenSim/Tools/Configger/Main.cs b/OpenSim/Tools/Configger/Main.cs index 192cfce..61a12e3 100644 --- a/OpenSim/Tools/Configger/Main.cs +++ b/OpenSim/Tools/Configger/Main.cs @@ -1,7 +1,34 @@ +/* + * Copyright (c) Contributors, http://opensimulator.org/ + * See CONTRIBUTORS.TXT for a full list of copyright holders. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the OpenSimulator Project nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + using Nini.Config; using System; -namespace Careminster +namespace OpenSim.Tools.Configger { public class Configger { diff --git a/OpenSim/Tools/Configger/Util.cs b/OpenSim/Tools/Configger/Util.cs index 6f8aa76..fe7744d 100644 --- a/OpenSim/Tools/Configger/Util.cs +++ b/OpenSim/Tools/Configger/Util.cs @@ -1,3 +1,30 @@ +/* + * Copyright (c) Contributors, http://opensimulator.org/ + * See CONTRIBUTORS.TXT for a full list of copyright holders. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the OpenSimulator Project nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + using System; using System.Collections; using System.Collections.Generic; @@ -13,7 +40,7 @@ using System.Threading; using log4net; using Nini.Config; -namespace Careminster +namespace OpenSim.Tools.Configger { public static class Util { -- cgit v1.1 From bdc03dbff958459d0e2fd96045a859455293bf37 Mon Sep 17 00:00:00 2001 From: Diva Canto Date: Wed, 14 Apr 2010 10:36:03 -0700 Subject: * Added 32bitLauncher for Robust. Still need to test it on a 64 bit machine. * PrimitiveBaseShape wants to be be committed too -- EOF. --- OpenSim/Tools/Robust.32BitLaunch/Program.cs | 60 +++++++++++++++++++++ .../Robust.32BitLaunch/Properties/AssemblyInfo.cs | 63 ++++++++++++++++++++++ .../Robust.32BitLaunch/Robust.32BitLaunch.sln | 20 +++++++ 3 files changed, 143 insertions(+) create mode 100644 OpenSim/Tools/Robust.32BitLaunch/Program.cs create mode 100644 OpenSim/Tools/Robust.32BitLaunch/Properties/AssemblyInfo.cs create mode 100644 OpenSim/Tools/Robust.32BitLaunch/Robust.32BitLaunch.sln (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/Robust.32BitLaunch/Program.cs b/OpenSim/Tools/Robust.32BitLaunch/Program.cs new file mode 100644 index 0000000..490414c --- /dev/null +++ b/OpenSim/Tools/Robust.32BitLaunch/Program.cs @@ -0,0 +1,60 @@ +/* + * Copyright (c) Contributors, http://opensimulator.org/ + * See CONTRIBUTORS.TXT for a full list of copyright holders. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the OpenSimulator Project nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +using System; +using log4net; + +namespace Robust._32BitLaunch +{ + class Program + { + static void Main(string[] args) + { + log4net.Config.XmlConfigurator.Configure(); + + System.Console.WriteLine("32-bit OpenSim executor"); + System.Console.WriteLine("-----------------------"); + System.Console.WriteLine(""); + System.Console.WriteLine("This application is compiled for 32-bit CPU and will run under WOW32 or similar."); + System.Console.WriteLine("All 64-bit incompatibilities should be gone."); + System.Console.WriteLine(""); + System.Threading.Thread.Sleep(300); + try + { + global::OpenSim.Server.OpenSimServer.Main(args); + } + catch (Exception ex) + { + System.Console.WriteLine("OpenSim threw an exception:"); + System.Console.WriteLine(ex.ToString()); + System.Console.WriteLine(""); + System.Console.WriteLine("Application will now terminate!"); + System.Console.WriteLine(""); + } + } + } +} diff --git a/OpenSim/Tools/Robust.32BitLaunch/Properties/AssemblyInfo.cs b/OpenSim/Tools/Robust.32BitLaunch/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..cf80f47 --- /dev/null +++ b/OpenSim/Tools/Robust.32BitLaunch/Properties/AssemblyInfo.cs @@ -0,0 +1,63 @@ +/* + * Copyright (c) Contributors, http://opensimulator.org/ + * See CONTRIBUTORS.TXT for a full list of copyright holders. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the OpenSimulator Project nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("Robust.32BitLaunch")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("http://opensimulator.org")] +[assembly: AssemblyProduct("Robust.32BitLaunch")] +[assembly: AssemblyCopyright("Copyright (c) 2008")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("5072e919-46ab-47e6-8a63-08108324ccdf")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("0.6.3.*")] +[assembly: AssemblyVersion("0.6.3.*")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/OpenSim/Tools/Robust.32BitLaunch/Robust.32BitLaunch.sln b/OpenSim/Tools/Robust.32BitLaunch/Robust.32BitLaunch.sln new file mode 100644 index 0000000..c7c97b1 --- /dev/null +++ b/OpenSim/Tools/Robust.32BitLaunch/Robust.32BitLaunch.sln @@ -0,0 +1,20 @@ + +Microsoft Visual Studio Solution File, Format Version 10.00 +# Visual C# Express 2008 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Robust.32BitLaunch", "Robust.32BitLaunch.csproj", "{595D67F3-B413-4A43-8568-5B5930E3B31D}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {595D67F3-B413-4A43-8568-5B5930E3B31D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {595D67F3-B413-4A43-8568-5B5930E3B31D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {595D67F3-B413-4A43-8568-5B5930E3B31D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {595D67F3-B413-4A43-8568-5B5930E3B31D}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal -- cgit v1.1 From 407b48f3bb20b643c694c725bbf94a02e73d9fd6 Mon Sep 17 00:00:00 2001 From: Diva Canto Date: Wed, 14 Apr 2010 19:22:48 -0700 Subject: The missing .csproj for the Robust 32 bit launcher --- .../Robust.32BitLaunch/Robust.32BitLaunch.csproj | 62 ++++++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 OpenSim/Tools/Robust.32BitLaunch/Robust.32BitLaunch.csproj (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/Robust.32BitLaunch/Robust.32BitLaunch.csproj b/OpenSim/Tools/Robust.32BitLaunch/Robust.32BitLaunch.csproj new file mode 100644 index 0000000..f19e082 --- /dev/null +++ b/OpenSim/Tools/Robust.32BitLaunch/Robust.32BitLaunch.csproj @@ -0,0 +1,62 @@ + + + + Debug + AnyCPU + 9.0.30729 + 2.0 + {595D67F3-B413-4A43-8568-5B5930E3B31D} + Exe + Properties + Robust._32BitLaunch + Robust.32BitLaunch + v3.5 + 512 + + + true + full + false + ..\..\..\bin\ + DEBUG;TRACE + prompt + 4 + x86 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + False + ..\..\..\bin\log4net.dll + + + False + ..\..\..\bin\OpenSim.Server.exe + + + + 3.5 + + + + + + + + + + + \ No newline at end of file -- cgit v1.1 From 7868f1f650a7d20ca7a6b5a236f89301c193444e Mon Sep 17 00:00:00 2001 From: Diva Canto Date: Sun, 27 Jun 2010 13:06:39 -0700 Subject: Fixed Robust.32BitLaunch.exe --- OpenSim/Tools/Robust.32BitLaunch/Robust.32BitLaunch.csproj | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/Robust.32BitLaunch/Robust.32BitLaunch.csproj b/OpenSim/Tools/Robust.32BitLaunch/Robust.32BitLaunch.csproj index f19e082..481b3f8 100644 --- a/OpenSim/Tools/Robust.32BitLaunch/Robust.32BitLaunch.csproj +++ b/OpenSim/Tools/Robust.32BitLaunch/Robust.32BitLaunch.csproj @@ -36,9 +36,9 @@ False ..\..\..\bin\log4net.dll - + False - ..\..\..\bin\OpenSim.Server.exe + ..\..\..\bin\Robust.exe -- cgit v1.1 From 09ab32c21e0974e85698d2d758495d99063dedf8 Mon Sep 17 00:00:00 2001 From: Melanie Thielker Date: Wed, 4 Aug 2010 03:23:19 +0200 Subject: Remove StandAlone from default hardcoded config --- OpenSim/Tools/Configger/ConfigurationLoader.cs | 15 --------------- 1 file changed, 15 deletions(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/Configger/ConfigurationLoader.cs b/OpenSim/Tools/Configger/ConfigurationLoader.cs index 1619a22..3d1b668 100644 --- a/OpenSim/Tools/Configger/ConfigurationLoader.cs +++ b/OpenSim/Tools/Configger/ConfigurationLoader.cs @@ -242,21 +242,6 @@ namespace OpenSim.Tools.Configger } { - IConfig config = defaultConfig.Configs["StandAlone"]; - - if (null == config) - config = defaultConfig.AddConfig("StandAlone"); - - config.Set("accounts_authenticate", true); - config.Set("welcome_message", "Welcome to OpenSimulator"); - config.Set("inventory_plugin", "OpenSim.Data.SQLite.dll"); - config.Set("inventory_source", ""); - config.Set("userDatabase_plugin", "OpenSim.Data.SQLite.dll"); - config.Set("user_source", ""); - config.Set("LibrariesXMLFile", string.Format(".{0}inventory{0}Libraries.xml", Path.DirectorySeparatorChar)); - } - - { IConfig config = defaultConfig.Configs["Network"]; if (null == config) -- cgit v1.1 From 604ea5fa90a6e7817a09f8e27ea1c001d151a5ae Mon Sep 17 00:00:00 2001 From: Melanie Date: Wed, 4 Aug 2010 03:53:51 +0100 Subject: remove more useless defaults --- OpenSim/Tools/Configger/ConfigurationLoader.cs | 5 ----- 1 file changed, 5 deletions(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/Configger/ConfigurationLoader.cs b/OpenSim/Tools/Configger/ConfigurationLoader.cs index 3d1b668..f82eb58 100644 --- a/OpenSim/Tools/Configger/ConfigurationLoader.cs +++ b/OpenSim/Tools/Configger/ConfigurationLoader.cs @@ -249,11 +249,6 @@ namespace OpenSim.Tools.Configger config.Set("default_location_x", 1000); config.Set("default_location_y", 1000); - config.Set("grid_send_key", "null"); - config.Set("grid_recv_key", "null"); - config.Set("user_send_key", "null"); - config.Set("user_recv_key", "null"); - config.Set("secure_inventory_server", "true"); } return defaultConfig; -- cgit v1.1 From f72ab53699d40a0d3c4455293add2b7f189c2a4f Mon Sep 17 00:00:00 2001 From: Diva Canto Date: Wed, 4 Aug 2010 07:50:34 -0700 Subject: Removed a few more obsolete default configs. --- OpenSim/Tools/Configger/ConfigurationLoader.cs | 10 ---------- 1 file changed, 10 deletions(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/Configger/ConfigurationLoader.cs b/OpenSim/Tools/Configger/ConfigurationLoader.cs index f82eb58..e74debb 100644 --- a/OpenSim/Tools/Configger/ConfigurationLoader.cs +++ b/OpenSim/Tools/Configger/ConfigurationLoader.cs @@ -241,16 +241,6 @@ namespace OpenSim.Tools.Configger config.Set("EventQueue", true); } - { - IConfig config = defaultConfig.Configs["Network"]; - - if (null == config) - config = defaultConfig.AddConfig("Network"); - - config.Set("default_location_x", 1000); - config.Set("default_location_y", 1000); - } - return defaultConfig; } -- cgit v1.1 From ae43a07f3bf5bd91e4ae7ed9b82c44d610b72044 Mon Sep 17 00:00:00 2001 From: Marck Date: Tue, 10 Aug 2010 16:07:21 +0200 Subject: Configuration files can read include files from relative paths. --- OpenSim/Tools/Configger/ConfigurationLoader.cs | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/Configger/ConfigurationLoader.cs b/OpenSim/Tools/Configger/ConfigurationLoader.cs index e74debb..8e71b42 100644 --- a/OpenSim/Tools/Configger/ConfigurationLoader.cs +++ b/OpenSim/Tools/Configger/ConfigurationLoader.cs @@ -141,7 +141,17 @@ namespace OpenSim.Tools.Configger else { string basepath = Path.GetFullPath("."); - string path = Path.Combine(basepath, file); + // Resolve relative paths with wildcards + string chunkWithoutWildcards = file; + string chunkWithWildcards = string.Empty; + int wildcardIndex = file.IndexOfAny(new char[] { '*', '?' }); + if (wildcardIndex != -1) + { + chunkWithoutWildcards = file.Substring(0, wildcardIndex); + chunkWithWildcards = file.Substring(wildcardIndex); + } + string path = Path.Combine(basepath, chunkWithoutWildcards); + path = Path.GetFullPath(path) + chunkWithWildcards; string[] paths = Util.Glob(path); foreach (string p in paths) { -- cgit v1.1 From a72c7812f43791a6cb768d783b03478383745f12 Mon Sep 17 00:00:00 2001 From: Justin Clark-Casey (justincc) Date: Thu, 19 Aug 2010 01:11:10 +0100 Subject: remove ancient and unused OpenSim.GridLaunch GUI code. Current policy is that OpenSim core is not the place for gui tools --- OpenSim/Tools/OpenSim.GridLaunch/App.config | 40 - OpenSim/Tools/OpenSim.GridLaunch/AppExecutor.cs | 247 ------ .../OpenSim.GridLaunch/AppExecutor_AsyncIO.cs | 85 -- .../Tools/OpenSim.GridLaunch/AppExecutor_Thread.cs | 187 ----- .../Tools/OpenSim.GridLaunch/CommandProcessor.cs | 76 -- .../OpenSim.GridLaunch/GUI/Console/Console.cs | 122 --- OpenSim/Tools/OpenSim.GridLaunch/GUI/IGUI.cs | 39 - .../Tools/OpenSim.GridLaunch/GUI/Network/Client.cs | 113 --- .../Tools/OpenSim.GridLaunch/GUI/Network/TCPD.cs | 231 ------ .../OpenSim.GridLaunch/GUI/Service/Service.cs | 65 -- .../GUI/WinForm/OpenSim Bottom Border.png | Bin 163 -> 0 bytes .../GUI/WinForm/OpenSim Right Border.png | Bin 545 -> 0 bytes .../OpenSim.GridLaunch/GUI/WinForm/OpenSim.png | Bin 44406 -> 0 bytes .../GUI/WinForm/ProcessPanel.Designer.cs | 224 ------ .../OpenSim.GridLaunch/GUI/WinForm/ProcessPanel.cs | 288 ------- .../GUI/WinForm/ProcessPanel.resx | 882 --------------------- .../GUI/WinForm/ucAppWindow.Designer.cs | 72 -- .../OpenSim.GridLaunch/GUI/WinForm/ucAppWindow.cs | 63 -- .../GUI/WinForm/ucAppWindow.resx | 120 --- .../GUI/WinForm/ucInputField.Designer.cs | 77 -- .../OpenSim.GridLaunch/GUI/WinForm/ucInputField.cs | 97 --- .../GUI/WinForm/ucInputField.resx | 120 --- .../GUI/WinForm/ucLogWindow.Designer.cs | 62 -- .../OpenSim.GridLaunch/GUI/WinForm/ucLogWindow.cs | 80 -- .../GUI/WinForm/ucLogWindow.resx | 120 --- .../OpenSim.GridLaunch/OpenSim.GridLaunch.csproj | 126 --- .../OpenSim.GridLaunch/OpenSim.GridLaunch.ini | 3 - .../OpenSim.GridLaunch/OpenSim.GridLaunch.sln | 20 - OpenSim/Tools/OpenSim.GridLaunch/Program.cs | 245 ------ .../OpenSim.GridLaunch/Properties/AssemblyInfo.cs | 63 -- .../Properties/Resources.Designer.cs | 84 -- .../OpenSim.GridLaunch/Properties/Resources.resx | 130 --- OpenSim/Tools/OpenSim.GridLaunch/Settings.cs | 181 ----- .../Tools/OpenSim.GridLaunch/log4netAppender.cs | 65 -- 34 files changed, 4327 deletions(-) delete mode 100644 OpenSim/Tools/OpenSim.GridLaunch/App.config delete mode 100644 OpenSim/Tools/OpenSim.GridLaunch/AppExecutor.cs delete mode 100644 OpenSim/Tools/OpenSim.GridLaunch/AppExecutor_AsyncIO.cs delete mode 100644 OpenSim/Tools/OpenSim.GridLaunch/AppExecutor_Thread.cs delete mode 100644 OpenSim/Tools/OpenSim.GridLaunch/CommandProcessor.cs delete mode 100644 OpenSim/Tools/OpenSim.GridLaunch/GUI/Console/Console.cs delete mode 100644 OpenSim/Tools/OpenSim.GridLaunch/GUI/IGUI.cs delete mode 100644 OpenSim/Tools/OpenSim.GridLaunch/GUI/Network/Client.cs delete mode 100644 OpenSim/Tools/OpenSim.GridLaunch/GUI/Network/TCPD.cs delete mode 100644 OpenSim/Tools/OpenSim.GridLaunch/GUI/Service/Service.cs delete mode 100644 OpenSim/Tools/OpenSim.GridLaunch/GUI/WinForm/OpenSim Bottom Border.png delete mode 100644 OpenSim/Tools/OpenSim.GridLaunch/GUI/WinForm/OpenSim Right Border.png delete mode 100644 OpenSim/Tools/OpenSim.GridLaunch/GUI/WinForm/OpenSim.png delete mode 100644 OpenSim/Tools/OpenSim.GridLaunch/GUI/WinForm/ProcessPanel.Designer.cs delete mode 100644 OpenSim/Tools/OpenSim.GridLaunch/GUI/WinForm/ProcessPanel.cs delete mode 100644 OpenSim/Tools/OpenSim.GridLaunch/GUI/WinForm/ProcessPanel.resx delete mode 100644 OpenSim/Tools/OpenSim.GridLaunch/GUI/WinForm/ucAppWindow.Designer.cs delete mode 100644 OpenSim/Tools/OpenSim.GridLaunch/GUI/WinForm/ucAppWindow.cs delete mode 100644 OpenSim/Tools/OpenSim.GridLaunch/GUI/WinForm/ucAppWindow.resx delete mode 100644 OpenSim/Tools/OpenSim.GridLaunch/GUI/WinForm/ucInputField.Designer.cs delete mode 100644 OpenSim/Tools/OpenSim.GridLaunch/GUI/WinForm/ucInputField.cs delete mode 100644 OpenSim/Tools/OpenSim.GridLaunch/GUI/WinForm/ucInputField.resx delete mode 100644 OpenSim/Tools/OpenSim.GridLaunch/GUI/WinForm/ucLogWindow.Designer.cs delete mode 100644 OpenSim/Tools/OpenSim.GridLaunch/GUI/WinForm/ucLogWindow.cs delete mode 100644 OpenSim/Tools/OpenSim.GridLaunch/GUI/WinForm/ucLogWindow.resx delete mode 100644 OpenSim/Tools/OpenSim.GridLaunch/OpenSim.GridLaunch.csproj delete mode 100644 OpenSim/Tools/OpenSim.GridLaunch/OpenSim.GridLaunch.ini delete mode 100644 OpenSim/Tools/OpenSim.GridLaunch/OpenSim.GridLaunch.sln delete mode 100644 OpenSim/Tools/OpenSim.GridLaunch/Program.cs delete mode 100644 OpenSim/Tools/OpenSim.GridLaunch/Properties/AssemblyInfo.cs delete mode 100644 OpenSim/Tools/OpenSim.GridLaunch/Properties/Resources.Designer.cs delete mode 100644 OpenSim/Tools/OpenSim.GridLaunch/Properties/Resources.resx delete mode 100644 OpenSim/Tools/OpenSim.GridLaunch/Settings.cs delete mode 100644 OpenSim/Tools/OpenSim.GridLaunch/log4netAppender.cs (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/OpenSim.GridLaunch/App.config b/OpenSim/Tools/OpenSim.GridLaunch/App.config deleted file mode 100644 index 1e53319..0000000 --- a/OpenSim/Tools/OpenSim.GridLaunch/App.config +++ /dev/null @@ -1,40 +0,0 @@ - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/OpenSim/Tools/OpenSim.GridLaunch/AppExecutor.cs b/OpenSim/Tools/OpenSim.GridLaunch/AppExecutor.cs deleted file mode 100644 index 638956e..0000000 --- a/OpenSim/Tools/OpenSim.GridLaunch/AppExecutor.cs +++ /dev/null @@ -1,247 +0,0 @@ -/* - * Copyright (c) Contributors, http://opensimulator.org/ - * See CONTRIBUTORS.TXT for a full list of copyright holders. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * * Neither the name of the OpenSimulator Project nor the - * names of its contributors may be used to endorse or promote products - * derived from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ -using System; -using System.Collections; -using System.Diagnostics; -using System.IO; -using System.Reflection; -using System.Text; -using System.Threading; -using log4net; - -namespace OpenSim.GridLaunch -{ - internal partial class AppExecutor : IDisposable - { - // How long to wait for process to shut down by itself - private static readonly int shutdownWaitSeconds = 10; - - private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); - - //private StreamWriter Input { get { return process.StandardInput; } } - //private StreamReader Output { get { return process.StandardOutput; } } - //private StreamReader Error { get { return process.StandardError; } } - - private StreamWriter Input { get; set; } - private StreamReader Output { get; set; } - private StreamReader Error { get; set; } - - private object processLock = new object(); - - private bool isRunning = false; - public bool IsRunning { get { return isRunning; } } - - private string file; - public string File { get { return file; } } - - Process process; - - public AppExecutor(string File) - { - file = File; - } - - #region Dispose of unmanaged resources - ~AppExecutor() - { - Dispose(); - } - private bool isDisposed = false; - public void Dispose() - { - if (!isDisposed) - { - isDisposed = true; - Stop(); - } - } - #endregion - - #region Start / Stop process - public void Start() - { - if (isDisposed) - throw new ApplicationException("Attempt to start process in Disposed instance of AppExecutor."); - // Stop before starting - Stop(); - - lock (processLock) - { - isRunning = true; - - m_log.InfoFormat("Starting \"{0}\".", file); - - // Start the process - process = new Process(); - process.StartInfo.FileName = file; - process.StartInfo.Arguments = ""; - process.StartInfo.CreateNoWindow = true; - process.StartInfo.UseShellExecute = false; - process.StartInfo.ErrorDialog = false; - process.EnableRaisingEvents = true; - - - // Redirect all standard input/output/errors - process.StartInfo.RedirectStandardInput = true; - process.StartInfo.RedirectStandardOutput = true; - process.StartInfo.RedirectStandardError = true; - - // Start process - process.Start(); - - Input = process.StandardInput; - Output = process.StandardOutput; - Error = process.StandardError; - - // Start data copying - timer_Start(); - - // We will flush manually - //Input.AutoFlush = false; - - } - } - - public void Stop() - { - // Shut down process - // We will ignore some exceptions here, against good programming practice... :) - - lock (processLock) - { - // Running? - if (!isRunning) - return; - isRunning = false; - - timer_Stop(); - - m_log.InfoFormat("Stopping \"{0}\".", file); - - // Send exit command to console - try - { - if (Input != null) - { - _writeLine(""); - _writeLine("exit"); - _writeLine("quit"); - // Wait for process to exit - process.WaitForExit(1000 * shutdownWaitSeconds); - } - } - catch (Exception ex) - { - m_log.ErrorFormat("Exeption asking \"{0}\" to shut down: {1}", file, ex.ToString()); - } - - try - { - // Forcefully kill it - if (process.HasExited != true) - process.Kill(); - } - catch (Exception ex) - { - m_log.ErrorFormat("Exeption killing \"{0}\": {1}", file, ex.ToString()); - } - - try - { - // Free resources - process.Close(); - } - catch (Exception ex) - { - m_log.ErrorFormat("Exeption freeing resources for \"{0}\": {1}", file, ex.ToString()); - } - - // Dispose of stream and process object - //SafeDisposeOf(Input); - //SafeDisposeOf(Output); - //SafeDisposeOf(Error); - Program.SafeDisposeOf(process); - } - - // Done stopping process - } - - #endregion - - #region Write to stdInput - public void Write(string Text) - { - // Lock so process won't shut down while we write, and that we won't write while proc is shutting down - lock (processLock) - { - _write(Text); - } - } - public void _write(string Text) - { - if (Input != null) - { - try - { - Input.Write(Text); - Input.Flush(); - } - catch (Exception ex) - { - m_log.ErrorFormat("Exeption sending text \"{0}\" to \"{1}\": {2}", file, Text, ex.ToString()); - } - - } - } - public void WriteLine(string Text) - { - // Lock so process won't shut down while we write, and that we won't write while proc is shutting down - lock (processLock) - { - _writeLine(Text); - } - } - public void _writeLine(string Text) - { - if (Input != null) - { - try - { - m_log.DebugFormat("\"{0}\": Sending: \"{1}\"", file, Text); - Input.WriteLine(Text); - Input.Flush(); - } - catch (Exception ex) - { - m_log.ErrorFormat("Exeption sending text \"{0}\" to \"{1}\": {2}", file, Text, ex.ToString()); - } - } - } - #endregion - - } -} diff --git a/OpenSim/Tools/OpenSim.GridLaunch/AppExecutor_AsyncIO.cs b/OpenSim/Tools/OpenSim.GridLaunch/AppExecutor_AsyncIO.cs deleted file mode 100644 index 8daef1b..0000000 --- a/OpenSim/Tools/OpenSim.GridLaunch/AppExecutor_AsyncIO.cs +++ /dev/null @@ -1,85 +0,0 @@ -/* - * Copyright (c) Contributors, http://opensimulator.org/ - * See CONTRIBUTORS.TXT for a full list of copyright holders. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * * Neither the name of the OpenSimulator Project nor the - * names of its contributors may be used to endorse or promote products - * derived from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ -using System; -using System.Collections.Generic; -using System.IO; -using System.Text; - -namespace OpenSim.GridLaunch -{ - internal partial class AppExecutor - { - - - #region Start / Stop timer thread - private void timer_Start() - { - asyncReadOutput(); - asyncReadError(); - } - - private bool running = true; - private void timer_Stop() - { - running = false; - } - #endregion - - private byte[] readBufferOutput = new byte[4096]; - private byte[] readBufferError = new byte[4096]; - - private void asyncReadOutput() - { - if (running) - Output.BaseStream.BeginRead(readBufferOutput, 0, readBufferOutput.Length, asyncReadCallBackOutput, null); - } - private void asyncReadError() - { - if (running) - Error.BaseStream.BeginRead(readBufferError, 0, readBufferError.Length, asyncReadCallBackError, null); - } - - private void asyncReadCallBackOutput(IAsyncResult ar) - { - int len = Output.BaseStream.EndRead(ar); - Program.FireAppConsoleOutput(file, - System.Text.Encoding.ASCII.GetString(readBufferOutput, 0, len) - ); - - asyncReadOutput(); - } - private void asyncReadCallBackError(IAsyncResult ar) - { - int len = Error.BaseStream.EndRead(ar); - Program.FireAppConsoleError(file, - System.Text.Encoding.ASCII.GetString(readBufferError, 0, len) - ); - - asyncReadError(); - } - } -} diff --git a/OpenSim/Tools/OpenSim.GridLaunch/AppExecutor_Thread.cs b/OpenSim/Tools/OpenSim.GridLaunch/AppExecutor_Thread.cs deleted file mode 100644 index f395aa4..0000000 --- a/OpenSim/Tools/OpenSim.GridLaunch/AppExecutor_Thread.cs +++ /dev/null @@ -1,187 +0,0 @@ -/* - * Copyright (c) Contributors, http://opensimulator.org/ - * See CONTRIBUTORS.TXT for a full list of copyright holders. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * * Neither the name of the OpenSimulator Project nor the - * names of its contributors may be used to endorse or promote products - * derived from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ -//using System; -//using System.Collections; -//using System.Collections.Generic; -//using System.Reflection; -//using System.Text; -//using System.Threading; -//using log4net; - -//namespace OpenSim.GridLaunch -//{ -// internal class AppExecutor2 -// { -// private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); -// private static readonly int consoleReadIntervalMilliseconds = 50; -// //private static readonly Timer readTimer = new Timer(readConsole, null, Timeout.Infinite, Timeout.Infinite); -// private static Thread timerThread; -// private static object timerThreadLock = new object(); - -// #region Start / Stop timer thread -// private static void timer_Start() -// { -// //readTimer.Change(0, consoleReadIntervalMilliseconds); -// lock (timerThreadLock) -// { -// if (timerThread == null) -// { -// m_log.Debug("Starting timer thread."); -// timerThread = new Thread(timerThreadLoop); -// timerThread.Name = "StdOutputStdErrorReadThread"; -// timerThread.IsBackground = true; -// timerThread.Start(); -// } -// } -// } -// private static void timer_Stop() -// { -// //readTimer.Change(Timeout.Infinite, Timeout.Infinite); -// lock (timerThreadLock) -// { -// if (timerThread != null) -// { -// m_log.Debug("Stopping timer thread."); -// try -// { -// if (timerThread.IsAlive) -// timerThread.Abort(); -// timerThread.Join(2000); -// timerThread = null; -// } -// catch (Exception ex) -// { -// m_log.Error("Exception stopping timer thread: " + ex.ToString()); -// } -// } -// } -// } -// #endregion - -// #region Timer read from consoles and fire event - -// private static void timerThreadLoop() -// { -// try -// { -// while (true) -// { -// readConsole(); -// Thread.Sleep(consoleReadIntervalMilliseconds); -// } -// } -// catch (ThreadAbortException) { } // Expected on thread shutdown -// } - -// private static void readConsole() -// { -// try -// { - -// // Lock so we don't collide with any startup or shutdown -// lock (Program.AppList) -// { -// foreach (AppExecutor app in new ArrayList(Program.AppList.Values)) -// { -// try -// { -// string txt = app.GetStdOutput(); -// // Fire event with received text -// if (!string.IsNullOrEmpty(txt)) -// Program.FireAppConsoleOutput(app.File, txt); -// } -// catch (Exception ex) -// { -// m_log.ErrorFormat("Exception reading standard output from \"{0}\": {1}", app.File, ex.ToString()); -// } -// try -// { -// string txt = app.GetStdError(); -// // Fire event with received text -// if (!string.IsNullOrEmpty(txt)) -// Program.FireAppConsoleOutput(app.File, txt); -// } -// catch (Exception ex) -// { -// m_log.ErrorFormat("Exception reading standard error from \"{0}\": {1}", app.File, ex.ToString()); -// } -// } -// } -// } -// finally -// { -// } -// } -// #endregion - - -// #region Read stdOutput and stdError -// public string GetStdOutput() -// { -// return GetStreamData(Output); -// } -// public string GetStdError() -// { -// return GetStreamData(Error); -// } - -// private static int num = 0; -// // Gets any data from StreamReader object, non-blocking -// private static string GetStreamData(StreamReader sr) -// { -// // Can't read? -// if (!sr.BaseStream.CanRead) -// return ""; - -// // Read a chunk -// //sr.BaseStream.ReadTimeout = 100; -// byte[] buffer = new byte[4096]; -// num++; -// Trace.WriteLine("Start read " + num); -// int len = sr.BaseStream.Read(buffer, 0, buffer.Length); -// Trace.WriteLine("End read " + num + ": " + len); - -// // Nothing? -// if (len <= 0) -// return ""; - -// // Return data -// StringBuilder sb = new StringBuilder(); -// sb.Append(System.Text.Encoding.ASCII.GetString(buffer, 0, len)); - -// //while (sr.Peek() >= 0) -// //{ -// // sb.Append(Convert.ToChar(sr.Read())); -// //} - -// return sb.ToString(); -// } -// #endregion - - -// } -//} diff --git a/OpenSim/Tools/OpenSim.GridLaunch/CommandProcessor.cs b/OpenSim/Tools/OpenSim.GridLaunch/CommandProcessor.cs deleted file mode 100644 index 77c5063..0000000 --- a/OpenSim/Tools/OpenSim.GridLaunch/CommandProcessor.cs +++ /dev/null @@ -1,76 +0,0 @@ -/* - * Copyright (c) Contributors, http://opensimulator.org/ - * See CONTRIBUTORS.TXT for a full list of copyright holders. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * * Neither the name of the OpenSimulator Project nor the - * names of its contributors may be used to endorse or promote products - * derived from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ -using System; -using System.Collections.Generic; -using System.Text; - -namespace OpenSim.GridLaunch -{ - internal class CommandProcessor - { - public delegate void CommandLineDelegate(string application, string command, string arguments); - public event CommandLineDelegate CommandLine; - - public bool IsCommand(string cmd) - { - if (cmd.Trim().StartsWith("/")) - return true; - return false; - } - - public static readonly char[] cmdSplit = new char[] { ' ' }; - public bool Process(string app, string command) - { - // Only process commands - if (!IsCommand(command)) - return false; - - // Remove first / - command = command.Trim().Remove(0, 1); - - // Split cmd and args - string[] carg = command.Split(cmdSplit, 2); - if (carg.Length == 0) - return true; - - string cmd = carg[0]; // Command - string arg = ""; - if (carg.Length > 1) - arg = carg[1]; // Arguments - - // Do we have a command? - if (string.IsNullOrEmpty(cmd)) - return true; - - // All is fine - if (CommandLine != null) - CommandLine(app, cmd, arg); - return true; - } - - } -} diff --git a/OpenSim/Tools/OpenSim.GridLaunch/GUI/Console/Console.cs b/OpenSim/Tools/OpenSim.GridLaunch/GUI/Console/Console.cs deleted file mode 100644 index 596b650..0000000 --- a/OpenSim/Tools/OpenSim.GridLaunch/GUI/Console/Console.cs +++ /dev/null @@ -1,122 +0,0 @@ -/* - * Copyright (c) Contributors, http://opensimulator.org/ - * See CONTRIBUTORS.TXT for a full list of copyright holders. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * * Neither the name of the OpenSimulator Project nor the - * names of its contributors may be used to endorse or promote products - * derived from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ -using System; -using System.Collections.Generic; -using System.Text; - -namespace OpenSim.GridLaunch.GUI.Console -{ - internal class Console: IGUI - { - private List Apps = new List(); - public Console () - { - Program.AppCreated += Program_AppCreated; - Program.AppRemoved += Program_AppRemoved; - Program.AppConsoleOutput += Program_AppConsoleOutput; - Program.Command.CommandLine += Command_CommandLine; - } - - private string currentApp = ""; - private bool quitTyped = false; - void Command_CommandLine(string application, string command, string arguments) - { - - // If command is a number then someone might be trying to change console: /1, /2, etc. - int currentAppNum = 0; - if (int.TryParse(command, out currentAppNum)) - if (currentAppNum <= Apps.Count) - { - currentApp = Apps[currentAppNum - 1]; - System.Console.WriteLine("Changed console to app: " + currentApp); - } else - System.Console.WriteLine("Unable to change to app number: " + currentAppNum); - - // Has user typed quit? - if (command.ToLower() == "quit") - quitTyped = true; - - // Has user typed /list? - if (command.ToLower() == "list") - { - System.Console.WriteLine("/0 Log console"); - for (int i = 1; i <= Apps.Count; i++) - { - System.Console.WriteLine(string.Format("/{0} {1}", i, Apps[i - 1])); - } - } - } - #region Module Start / Stop - public void StartGUI() - { - // Console start - System.Console.WriteLine("Console GUI"); - System.Console.WriteLine("Use commands /0, /1, /2, etc to switch between applications."); - System.Console.WriteLine("Type /list for list of applications."); - System.Console.WriteLine("Anything that doesn't start with a / will be sent to selected application"); - System.Console.WriteLine("type /quit to exit"); - - - while (quitTyped == false) - { - string line = System.Console.ReadLine().TrimEnd("\r\n".ToCharArray()); - Program.Write(currentApp, line); - } - // We are done - System.Console.WriteLine("Console exit."); - } - - public void StopGUI() - { - // Console stop - } - #endregion - - #region GridLaunch Events - void Program_AppCreated(string App) - { - System.Console.WriteLine("Started: " + App); - if (!Apps.Contains(App)) - Apps.Add(App); - } - - void Program_AppRemoved(string App) - { - System.Console.WriteLine("Stopped: " + App); - if (Apps.Contains(App)) - Apps.Remove(App); - } - - void Program_AppConsoleOutput(string App, string Text) - { - System.Console.Write(App + ": " + Text); - } - #endregion - - - } -} diff --git a/OpenSim/Tools/OpenSim.GridLaunch/GUI/IGUI.cs b/OpenSim/Tools/OpenSim.GridLaunch/GUI/IGUI.cs deleted file mode 100644 index ca1bb30..0000000 --- a/OpenSim/Tools/OpenSim.GridLaunch/GUI/IGUI.cs +++ /dev/null @@ -1,39 +0,0 @@ -/* - * Copyright (c) Contributors, http://opensimulator.org/ - * See CONTRIBUTORS.TXT for a full list of copyright holders. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * * Neither the name of the OpenSimulator Project nor the - * names of its contributors may be used to endorse or promote products - * derived from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -using System; -using System.Collections.Generic; -using System.Text; - -namespace OpenSim.GridLaunch.GUI -{ - public interface IGUI - { - void StartGUI(); - void StopGUI(); - } -} diff --git a/OpenSim/Tools/OpenSim.GridLaunch/GUI/Network/Client.cs b/OpenSim/Tools/OpenSim.GridLaunch/GUI/Network/Client.cs deleted file mode 100644 index 7fae830..0000000 --- a/OpenSim/Tools/OpenSim.GridLaunch/GUI/Network/Client.cs +++ /dev/null @@ -1,113 +0,0 @@ -/* - * Copyright (c) Contributors, http://opensimulator.org/ - * See CONTRIBUTORS.TXT for a full list of copyright holders. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * * Neither the name of the OpenSimulator Project nor the - * names of its contributors may be used to endorse or promote products - * derived from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ -using System; -using System.Collections.Generic; -using System.Net.Sockets; -using System.Text; -using System.Text.RegularExpressions; - -namespace OpenSim.GridLaunch.GUI.Network -{ - internal class Client - { - public TcpClient tcpClient; - private byte[] readBuffer = new byte[4096]; - private byte[] writeBuffer; - private TCPD tcp; - private string inputData = ""; - private object inputDataLock = new object(); - public Client(TCPD _tcp, TcpClient Client) - { - tcp = _tcp; - tcpClient = Client; - asyncReadStart(); - Write("OpenSim TCP Console GUI"); - Write("Use commands /0, /1, /2, etc to switch between applications."); - Write("Type /list for list of applications."); - Write("Anything that doesn't start with a / will be sent to selected application"); - Write("type /quit to exit"); - - } - - private void asyncReadStart() - { - tcpClient.GetStream().BeginRead(readBuffer, 0, readBuffer.Length, asyncReadCallBack, null); - } - - //private Regex LineExtractor = new Regex("^(.*)$") - private void asyncReadCallBack(IAsyncResult ar) - { - try - { - // Read data - int len = tcpClient.GetStream().EndRead(ar); - - // Send it to app - string newData = System.Text.Encoding.ASCII.GetString(readBuffer, 0, len); - //lock (inputDataLock) - //{ - inputData += newData; - if (newData.Contains("\n")) - SendInputLines(); - //} - - // Start it again - asyncReadStart(); - } - catch - { - // TODO: Remove client when we get exception - // Temp patch: if exception we don't call asyncReadStart() - } - } - - private void SendInputLines() - { - StringBuilder line = new StringBuilder(); - foreach (char c in inputData) - { - if (c == 13) - continue; - if (c == 10) - { - Program.WriteLine(tcp.currentApp, line.ToString()); - line = new StringBuilder(); - continue; - } - line.Append(c); - } - // We'll keep whatever is left over - inputData = line.ToString(); - } - - public void Write(string Text) - { - writeBuffer = Encoding.ASCII.GetBytes(Text); - tcpClient.GetStream().Write(writeBuffer, 0, writeBuffer.Length); - } - } -} diff --git a/OpenSim/Tools/OpenSim.GridLaunch/GUI/Network/TCPD.cs b/OpenSim/Tools/OpenSim.GridLaunch/GUI/Network/TCPD.cs deleted file mode 100644 index b48cfea..0000000 --- a/OpenSim/Tools/OpenSim.GridLaunch/GUI/Network/TCPD.cs +++ /dev/null @@ -1,231 +0,0 @@ -/* - * Copyright (c) Contributors, http://opensimulator.org/ - * See CONTRIBUTORS.TXT for a full list of copyright holders. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * * Neither the name of the OpenSimulator Project nor the - * names of its contributors may be used to endorse or promote products - * derived from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ -using System; -using System.Collections; -using System.Collections.Generic; -using System.Net; -using System.Net.Sockets; -using System.Reflection; -using System.Text; -using System.Threading; -using log4net; - -namespace OpenSim.GridLaunch.GUI.Network -{ - public class TCPD : IGUI, IDisposable - { - private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); - private List Clients = new List(); - - private readonly int defaultPort = 7998; - private TcpListener tcpListener; - private Thread listenThread; - private Thread clientThread; - - - private List Apps = new List(); - internal string currentApp = ""; - private bool quitTyped = false; - - public TCPD() - { - Program.AppCreated += Program_AppCreated; - Program.AppRemoved += Program_AppRemoved; - Program.AppConsoleOutput += Program_AppConsoleOutput; - Program.Command.CommandLine += Command_CommandLine; - - } - - ~TCPD() - { - Dispose(); - } - private bool isDisposed = false; - /// - ///Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. - /// - ///2 - public void Dispose() - { - if (isDisposed) - return; - isDisposed = true; - tcpd_Stop(); - } - - public void StartGUI() - { - // We are starting - tcpd_Start(); - } - - public void StopGUI() - { - // We are stopping - tcpd_Stop(); - } - - - #region GridLaunch Events - private void Command_CommandLine(string application, string command, string arguments) - { - // If command is a number then someone might be trying to change console: /1, /2, etc. - int currentAppNum = 0; - if (int.TryParse(command, out currentAppNum)) - if (currentAppNum <= Apps.Count) - { - currentApp = Apps[currentAppNum - 1]; - TCPWriteToAll("Changed console to app: " + currentApp + Environment.NewLine); - } - else - TCPWriteToAll("Unable to change to app number: " + currentAppNum + Environment.NewLine); - - // Has user typed quit? - if (command.ToLower() == "quit") - quitTyped = true; - - // Has user typed /list? - if (command.ToLower() == "list") - { - TCPWriteToAll("/0 Log console"); - for (int i = 1; i <= Apps.Count; i++) - { - TCPWriteToAll(string.Format("/{0} {1}", i, Apps[i - 1])); - } - } - - } - - void Program_AppCreated(string App) - { - TCPWriteToAll("Started: " + App); - if (!Apps.Contains(App)) - Apps.Add(App); - } - - void Program_AppRemoved(string App) - { - TCPWriteToAll("Stopped: " + App); - if (Apps.Contains(App)) - Apps.Remove(App); - } - - private void Program_AppConsoleOutput(string App, string Text) - { - TCPWriteToAll(App, Text); - } - - #endregion - - private void tcpd_Start() - { - listenThread = new Thread(new ThreadStart(ListenForClients)); - listenThread.Name = "TCPDThread"; - listenThread.IsBackground = true; - listenThread.Start(); - - while (!quitTyped) - { - Thread.Sleep(500); - } - - //clientThread = new Thread(new ThreadStart(ProcessClients)); - //clientThread.Name = "TCPClientThread"; - //clientThread.IsBackground = true; - ////clientThread.Start(); - - } - private void tcpd_Stop() - { - StopThread(listenThread); - StopThread(clientThread); - } - private void ListenForClients() - { - int Port = 0; - int.TryParse(Program.Settings["TCPPort"], out Port); - if (Port < 1) - Port = defaultPort; - - m_log.Info("Starting TCP Server on port " + Port); - this.tcpListener = new TcpListener(IPAddress.Any, Port); - - this.tcpListener.Start(); - - while (true) - { - // Blocks until a client has connected to the server - TcpClient tcpClient = this.tcpListener.AcceptTcpClient(); - Client client = new Client(this, tcpClient); - - lock (Clients) - { - Clients.Add(client); - } - System.Threading.Thread.Sleep(500); - } - } - - private static void StopThread(Thread t) - { - if (t != null) - { - m_log.Debug("Stopping thread " + t.Name); - try - { - if (t.IsAlive) - t.Abort(); - t.Join(2000); - t = null; - } - catch (Exception ex) - { - m_log.Error("Exception stopping thread: " + ex.ToString()); - } - } - } - - private void TCPWriteToAll(string app, string text) - { - TCPWriteToAll(text); - } - private void TCPWriteToAll(string text) - { - foreach (Client c in new ArrayList(Clients)) - { - try - { - c.Write(text); - } catch (Exception ex) - { - m_log.Error("Exception writing to TCP: " + ex.ToString()); - } - } - } - - } -} diff --git a/OpenSim/Tools/OpenSim.GridLaunch/GUI/Service/Service.cs b/OpenSim/Tools/OpenSim.GridLaunch/GUI/Service/Service.cs deleted file mode 100644 index f518bd7..0000000 --- a/OpenSim/Tools/OpenSim.GridLaunch/GUI/Service/Service.cs +++ /dev/null @@ -1,65 +0,0 @@ -/* - * Copyright (c) Contributors, http://opensimulator.org/ - * See CONTRIBUTORS.TXT for a full list of copyright holders. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * * Neither the name of the OpenSimulator Project nor the - * names of its contributors may be used to endorse or promote products - * derived from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ -using System; -using System.Collections.Generic; -using System.ServiceProcess; -using System.Text; -using OpenSim.GridLaunch.GUI; - -namespace OpenSim.GridLaunch -{ - internal class Service: ServiceBase, IGUI - { - private ServiceBase[] ServicesToRun; - public Service() - { - ServicesToRun = new ServiceBase[] {this}; - } - - public void StartGUI() - { - ServiceBase.Run(ServicesToRun); - } - - public void StopGUI() - { - // Nothing - } - - protected override void OnStart(string[] args) - { - // Command line arguments override settings - Program.Settings.ParseCommandArguments(args); - } - - protected override void OnStop() - { - Program.Shutdown(); - } - - } -} \ No newline at end of file diff --git a/OpenSim/Tools/OpenSim.GridLaunch/GUI/WinForm/OpenSim Bottom Border.png b/OpenSim/Tools/OpenSim.GridLaunch/GUI/WinForm/OpenSim Bottom Border.png deleted file mode 100644 index b3594b6..0000000 Binary files a/OpenSim/Tools/OpenSim.GridLaunch/GUI/WinForm/OpenSim Bottom Border.png and /dev/null differ diff --git a/OpenSim/Tools/OpenSim.GridLaunch/GUI/WinForm/OpenSim Right Border.png b/OpenSim/Tools/OpenSim.GridLaunch/GUI/WinForm/OpenSim Right Border.png deleted file mode 100644 index 8b03281..0000000 Binary files a/OpenSim/Tools/OpenSim.GridLaunch/GUI/WinForm/OpenSim Right Border.png and /dev/null differ diff --git a/OpenSim/Tools/OpenSim.GridLaunch/GUI/WinForm/OpenSim.png b/OpenSim/Tools/OpenSim.GridLaunch/GUI/WinForm/OpenSim.png deleted file mode 100644 index 3810842..0000000 Binary files a/OpenSim/Tools/OpenSim.GridLaunch/GUI/WinForm/OpenSim.png and /dev/null differ diff --git a/OpenSim/Tools/OpenSim.GridLaunch/GUI/WinForm/ProcessPanel.Designer.cs b/OpenSim/Tools/OpenSim.GridLaunch/GUI/WinForm/ProcessPanel.Designer.cs deleted file mode 100644 index 1498791..0000000 --- a/OpenSim/Tools/OpenSim.GridLaunch/GUI/WinForm/ProcessPanel.Designer.cs +++ /dev/null @@ -1,224 +0,0 @@ -namespace OpenSim.GridLaunch.GUI.WinForm -{ - partial class ProcessPanel - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(ProcessPanel)); - this.tabControl1 = new System.Windows.Forms.TabControl(); - this.tabLogs = new System.Windows.Forms.TabPage(); - this.btnShutdown = new System.Windows.Forms.Button(); - this.pictureBox2 = new System.Windows.Forms.PictureBox(); - this.pictureBox1 = new System.Windows.Forms.PictureBox(); - this.pictureBox3 = new System.Windows.Forms.PictureBox(); - this.tabSettings = new System.Windows.Forms.TabPage(); - this.cblStartupComponents = new System.Windows.Forms.CheckedListBox(); - this.gbStartupComponents = new System.Windows.Forms.GroupBox(); - this.btnSave = new System.Windows.Forms.Button(); - this.ucLogWindow1 = new OpenSim.GridLaunch.GUI.WinForm.ucLogWindow(); - this.label1 = new System.Windows.Forms.Label(); - this.tabControl1.SuspendLayout(); - this.tabLogs.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.pictureBox2)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.pictureBox3)).BeginInit(); - this.tabSettings.SuspendLayout(); - this.gbStartupComponents.SuspendLayout(); - this.SuspendLayout(); - // - // tabControl1 - // - this.tabControl1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.tabControl1.Controls.Add(this.tabSettings); - this.tabControl1.Controls.Add(this.tabLogs); - this.tabControl1.Location = new System.Drawing.Point(-1, 123); - this.tabControl1.Name = "tabControl1"; - this.tabControl1.SelectedIndex = 0; - this.tabControl1.Size = new System.Drawing.Size(632, 275); - this.tabControl1.TabIndex = 0; - // - // tabLogs - // - this.tabLogs.Controls.Add(this.ucLogWindow1); - this.tabLogs.Location = new System.Drawing.Point(4, 22); - this.tabLogs.Name = "tabLogs"; - this.tabLogs.Padding = new System.Windows.Forms.Padding(3); - this.tabLogs.Size = new System.Drawing.Size(624, 249); - this.tabLogs.TabIndex = 0; - this.tabLogs.Text = "Logs"; - this.tabLogs.UseVisualStyleBackColor = true; - // - // btnShutdown - // - this.btnShutdown.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); - this.btnShutdown.Location = new System.Drawing.Point(542, 400); - this.btnShutdown.Name = "btnShutdown"; - this.btnShutdown.Size = new System.Drawing.Size(75, 23); - this.btnShutdown.TabIndex = 1; - this.btnShutdown.Text = "Shutdown"; - this.btnShutdown.UseVisualStyleBackColor = true; - this.btnShutdown.Click += new System.EventHandler(this.btnShutdown_Click); - // - // pictureBox2 - // - this.pictureBox2.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.pictureBox2.Image = ((System.Drawing.Image)(resources.GetObject("pictureBox2.Image"))); - this.pictureBox2.Location = new System.Drawing.Point(585, -1); - this.pictureBox2.Name = "pictureBox2"; - this.pictureBox2.Size = new System.Drawing.Size(46, 124); - this.pictureBox2.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage; - this.pictureBox2.TabIndex = 3; - this.pictureBox2.TabStop = false; - // - // pictureBox1 - // - this.pictureBox1.Image = ((System.Drawing.Image)(resources.GetObject("pictureBox1.Image"))); - this.pictureBox1.Location = new System.Drawing.Point(-1, -1); - this.pictureBox1.Name = "pictureBox1"; - this.pictureBox1.Size = new System.Drawing.Size(586, 124); - this.pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.AutoSize; - this.pictureBox1.TabIndex = 2; - this.pictureBox1.TabStop = false; - // - // pictureBox3 - // - this.pictureBox3.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.pictureBox3.Image = global::OpenSim.GridLaunch.Properties.Resources.OpenSim_Bottom_Border; - this.pictureBox3.Location = new System.Drawing.Point(-1, 120); - this.pictureBox3.Name = "pictureBox3"; - this.pictureBox3.Size = new System.Drawing.Size(632, 310); - this.pictureBox3.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage; - this.pictureBox3.TabIndex = 4; - this.pictureBox3.TabStop = false; - // - // tabSettings - // - this.tabSettings.Controls.Add(this.label1); - this.tabSettings.Controls.Add(this.btnSave); - this.tabSettings.Controls.Add(this.gbStartupComponents); - this.tabSettings.Location = new System.Drawing.Point(4, 22); - this.tabSettings.Name = "tabSettings"; - this.tabSettings.Padding = new System.Windows.Forms.Padding(3); - this.tabSettings.Size = new System.Drawing.Size(624, 249); - this.tabSettings.TabIndex = 1; - this.tabSettings.Text = "Settings"; - this.tabSettings.UseVisualStyleBackColor = true; - // - // cblStartupComponents - // - this.cblStartupComponents.CheckOnClick = true; - this.cblStartupComponents.FormattingEnabled = true; - this.cblStartupComponents.Location = new System.Drawing.Point(6, 19); - this.cblStartupComponents.Name = "cblStartupComponents"; - this.cblStartupComponents.Size = new System.Drawing.Size(202, 109); - this.cblStartupComponents.TabIndex = 0; - // - // gbStartupComponents - // - this.gbStartupComponents.Controls.Add(this.cblStartupComponents); - this.gbStartupComponents.Location = new System.Drawing.Point(9, 6); - this.gbStartupComponents.Name = "gbStartupComponents"; - this.gbStartupComponents.Size = new System.Drawing.Size(214, 136); - this.gbStartupComponents.TabIndex = 1; - this.gbStartupComponents.TabStop = false; - this.gbStartupComponents.Text = "Startup components"; - // - // btnSave - // - this.btnSave.Location = new System.Drawing.Point(9, 148); - this.btnSave.Name = "btnSave"; - this.btnSave.Size = new System.Drawing.Size(92, 23); - this.btnSave.TabIndex = 2; - this.btnSave.Text = "Save settings"; - this.btnSave.UseVisualStyleBackColor = true; - this.btnSave.Click += new System.EventHandler(this.btnSave_Click); - // - // ucLogWindow1 - // - this.ucLogWindow1.Dock = System.Windows.Forms.DockStyle.Fill; - this.ucLogWindow1.Location = new System.Drawing.Point(3, 3); - this.ucLogWindow1.Name = "ucLogWindow1"; - this.ucLogWindow1.Size = new System.Drawing.Size(618, 243); - this.ucLogWindow1.TabIndex = 0; - // - // label1 - // - this.label1.AutoSize = true; - this.label1.Location = new System.Drawing.Point(108, 149); - this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size(259, 13); - this.label1.TabIndex = 3; - this.label1.Text = "* You have to restart app before changes take effect."; - // - // ProcessPanel - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(629, 428); - this.Controls.Add(this.pictureBox2); - this.Controls.Add(this.pictureBox1); - this.Controls.Add(this.btnShutdown); - this.Controls.Add(this.tabControl1); - this.Controls.Add(this.pictureBox3); - this.Name = "ProcessPanel"; - this.Text = "OpenSim GUI alpha"; - this.Load += new System.EventHandler(this.ProcessPanel_Load); - this.tabControl1.ResumeLayout(false); - this.tabLogs.ResumeLayout(false); - ((System.ComponentModel.ISupportInitialize)(this.pictureBox2)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.pictureBox3)).EndInit(); - this.tabSettings.ResumeLayout(false); - this.tabSettings.PerformLayout(); - this.gbStartupComponents.ResumeLayout(false); - this.ResumeLayout(false); - this.PerformLayout(); - - } - - #endregion - - private System.Windows.Forms.TabControl tabControl1; - private System.Windows.Forms.TabPage tabLogs; - private System.Windows.Forms.Button btnShutdown; - private ucLogWindow ucLogWindow1; - private System.Windows.Forms.PictureBox pictureBox1; - private System.Windows.Forms.PictureBox pictureBox2; - private System.Windows.Forms.PictureBox pictureBox3; - private System.Windows.Forms.TabPage tabSettings; - private System.Windows.Forms.GroupBox gbStartupComponents; - private System.Windows.Forms.CheckedListBox cblStartupComponents; - private System.Windows.Forms.Button btnSave; - private System.Windows.Forms.Label label1; - - } -} \ No newline at end of file diff --git a/OpenSim/Tools/OpenSim.GridLaunch/GUI/WinForm/ProcessPanel.cs b/OpenSim/Tools/OpenSim.GridLaunch/GUI/WinForm/ProcessPanel.cs deleted file mode 100644 index f0ed2ca..0000000 --- a/OpenSim/Tools/OpenSim.GridLaunch/GUI/WinForm/ProcessPanel.cs +++ /dev/null @@ -1,288 +0,0 @@ -/* - * Copyright (c) Contributors, http://opensimulator.org/ - * See CONTRIBUTORS.TXT for a full list of copyright holders. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * * Neither the name of the OpenSimulator Project nor the - * names of its contributors may be used to endorse or promote products - * derived from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Diagnostics; -using System.Drawing; -using System.Text; -using System.Windows.Forms; - -namespace OpenSim.GridLaunch.GUI.WinForm -{ - public partial class ProcessPanel : Form, IGUI - { - public ProcessPanel() - { - Application.EnableVisualStyles(); - //Application.SetCompatibleTextRenderingDefault(false); - - InitializeComponent(); - Program.AppCreated += Program_AppCreated; - Program.AppRemoved += Program_AppRemoved; - Program.AppConsoleOutput += Program_AppConsoleOutput; - Program.AppConsoleError += Program_AppConsoleError; - log4netAppender.LogLine += log4netAppender_LogLine; - } - - #region Module Start / Stop - public void StartGUI() - { - Application.Run(this); - } - - public void StopGUI() - { - this.Close(); - } - #endregion - - #region Main log tab - void log4netAppender_LogLine(Color color, string LogText) - { - ucLogWindow1.Write(color, LogText); - } - #endregion - - #region Form events - private void btnShutdown_Click(object sender, EventArgs e) - { - Program.Shutdown(); - } - #endregion - - #region GridLaunch Events - public delegate void Program_AppCreatedDelegate(string App); - public void Program_AppCreated(string App) - { - if (this.InvokeRequired) { - this.Invoke(new Program_AppCreatedDelegate(Program_AppCreated), App); - return; - } - - Trace.WriteLine("Start: " + App); - - // Do we already have app window for that app? - if (AppWindow_Get(App) != null) - return; - - // New log window - ucAppWindow aw = new ucAppWindow(); - // New tab page - TabPage tp = new TabPage(App); - // Add log window into tab page - tp.Controls.Add(aw); - // Add tab page into tab control - tabControl1.TabPages.Add(tp); - // Add it all to our internal list - AppWindow_Add(App, aw); - // Hook up events - aw.LineEntered += AppWindow_LineEntered; - - // Fill log window fully inside tab page - aw.Dock = DockStyle.Fill; - } - - - public delegate void Program_AppRemovedDelegate(string App); - public void Program_AppRemoved(string App) - { - if (this.InvokeRequired) { - this.Invoke(new Program_AppRemovedDelegate(Program_AppRemoved), App); - return; - } - - Trace.WriteLine("Stop: " + App); - - // Get app window - ucAppWindow aw = AppWindow_Get(App); - if (aw == null) - return; - - // Get its tab page - TabPage tp = aw.Parent as TabPage; - - if (tp != null) - { - // Remove tab page from tab control - tabControl1.TabPages.Remove(tp); - // Remove app window from tab - tp.Controls.Remove(aw); - } - - // Dispose of app window - aw.Dispose(); - - // Dispose of tab page - if (tp != null) - tp.Dispose(); - - // Remove from our internal list - AppWindow_Remove(App); - } - - - public delegate void Program_AppConsoleOutputDelegate(string App, string LogText); - void Program_AppConsoleOutput(string App, string LogText) - { - if (this.InvokeRequired) - { - this.Invoke(new Program_AppConsoleOutputDelegate(Program_AppConsoleOutput), App, LogText); - return; - } - - // Get app window - ucAppWindow aw = AppWindow_Get(App); - // Write text to it - if (aw != null) - aw.Write(System.Drawing.Color.Black, LogText); - } - - public delegate void Program_AppConsoleErrorDelegate(string App, string LogText); - void Program_AppConsoleError(string App, string LogText) - { - if (this.InvokeRequired) { - this.Invoke(new Program_AppConsoleErrorDelegate(Program_AppConsoleError), App, LogText); - return; - } - - // Get app window - ucAppWindow aw = AppWindow_Get(App); - // Write text to it - if (aw != null) - aw.Write(System.Drawing.Color.Red, LogText); - - } - #endregion - - #region App Window events - private void AppWindow_LineEntered(ucAppWindow AppWindow, string LogText) - { - Program.WriteLine(AppWindow_Get(AppWindow), LogText); - } - #endregion - - private void ProcessPanel_Load(object sender, EventArgs e) - { - string[] arr = new string[Program.Settings.Components.Keys.Count]; - Program.Settings.Components.Keys.CopyTo(arr, 0); - cblStartupComponents.Items.AddRange(arr); - - // Now correct all check states - for (int i = 0; i < cblStartupComponents.Items.Count; i++) - { - string _name = cblStartupComponents.Items[i] as string; - bool _checked = Program.Settings.Components[_name]; - - cblStartupComponents.SetItemChecked(i, _checked); - } - - - } - - - - - #region Internal App Window list and functions - private Dictionary _appWindows = new Dictionary(); - private Dictionary _appWindows_rev = new Dictionary(); - private void AppWindow_Add(string AppWindowName, ucAppWindow AppWindow) - { - lock (_appWindows) - { - _appWindows.Add(AppWindowName, AppWindow); - _appWindows_rev.Add(AppWindow, AppWindowName); - // Hook events - AppWindow.LineEntered += AppWindow_LineEntered; - } - } - private void AppWindow_Remove(ucAppWindow AppWindow) - { - lock (_appWindows) - { - if (_appWindows_rev.ContainsKey(AppWindow)) - { - // Unhook events - AppWindow.LineEntered -= AppWindow_LineEntered; - // Delete from list - string name = _appWindows_rev[AppWindow]; - _appWindows.Remove(name); - _appWindows_rev.Remove(AppWindow); - } - } - } - private void AppWindow_Remove(string AppWindowName) - { - lock (_appWindows) - { - if (_appWindows.ContainsKey(AppWindowName)) - { - ucAppWindow AppWindow = _appWindows[AppWindowName]; - // Unhook events - AppWindow.LineEntered -= AppWindow_LineEntered; - // Delete from list - _appWindows.Remove(AppWindowName); - _appWindows_rev.Remove(AppWindow); - } - } - } - private string AppWindow_Get(ucAppWindow AppWindow) - { - lock (_appWindows) - { - if (_appWindows_rev.ContainsKey(AppWindow)) - return _appWindows_rev[AppWindow]; - } - return null; - } - private ucAppWindow AppWindow_Get(string AppWindowName) - { - lock (_appWindows) - { - if (_appWindows.ContainsKey(AppWindowName)) - return _appWindows[AppWindowName]; - } - return null; - } - #endregion - - private void btnSave_Click(object sender, EventArgs e) - { - Program.Settings.Components.Clear(); - for (int i = 0; i < cblStartupComponents.Items.Count; i++) - { - string _name = cblStartupComponents.Items[i] as string; - bool _checked = cblStartupComponents.GetItemChecked(i); - - Program.Settings.Components.Add(_name, _checked); - Program.Settings.SaveConfig(); - } - } - - } -} diff --git a/OpenSim/Tools/OpenSim.GridLaunch/GUI/WinForm/ProcessPanel.resx b/OpenSim/Tools/OpenSim.GridLaunch/GUI/WinForm/ProcessPanel.resx deleted file mode 100644 index 361d658..0000000 --- a/OpenSim/Tools/OpenSim.GridLaunch/GUI/WinForm/ProcessPanel.resx +++ /dev/null @@ -1,882 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - - - iVBORw0KGgoAAAANSUhEUgAAAAEAAAB8CAIAAAAny03BAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAOpgAA - DqYBh9ypbwAAAYpJREFUKFOV0fkrH3AYwPG3Y84NW2xzj76btomJHE20NUcpi9DKUlt+0i6EjbnmiOWY - ZTKSo69YtolNRHOEYWsIK8sksiZZU5Ompo8n379gP7x63s/z+fEDdz7w3+4Oondv6JD+/WH0H4xgkDx6 - yDBlDMPUcY6kfcQofQKjjEmMH05h8ugTppmfMc36gtnjacyzZziaM8uxvDks8uexfLKAVcFXjhctcqL4 - G9YlS9iUfufk02VOla9wumIV28o17KvWcXj+A8fqnzi92MC5ZhOX2i1cX/5CU/8bTcM25xr/4Na0w/mW - XS5q/+LeuodH2z882ve51KHweq3wfqvw6VT4din83ykC3isu9yoC+xRB/Qq7bHDIBfs8sJPpWABOxXIr - lFsRuJaJCtA8gzPibDVcqAE34VknXStv0n7N0rJ7N0m3QIAWrrZBYCtcewVXRLAIeQMRnXKTGdmtE9YF - 0T0QLh0lM6YProu4fgjthRsDcFO+79YQJIhY6fhBSByB26M6SeM6idIJwxwAjlSW4/2by3sAAAAASUVO - RK5CYII= - - - - - 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 - OxA5OCbeDtx9K3DPLXK640Zg0m2SxhFsyEF63x2SBmfMDVIQl9RsuASBrCx4dt0MSL4dkHgrYNdNUvWO - m/6xN/ygz64bvjtv+MTf9Iq76Rl/02PnDbfNV12h/7orTpuuOq5ttlt/2WZlk/W6ZstVTebRTcoVjWZR - jfLIepNFdUaL66QLayXL6g1mVIvn1ujPrhYtqhVNuSicfUk48YLOrIuC6RcF484LJp7nj0WIRkELIAeE - mH2JNwYB03nejIskjfwhQBp6aTgFnvHnyKXJNAFO8IymObiE04kI+3BHjeYgDTkzL6lEAR0hB/lgQ3Gk - cUQaVSCBq+ojCk6hmUwZJFgaRQi40iMYUAvTQa0Ypz9nfwwVbvxw8/df6n9482qAbcLZNboTLogmXxLN - rtZfWi+edslgYZ1kUZ00ssF4Wo0JQC6q0XRFo2J1szK62WLLVQpyV222XrXbcMVh61XHbdec1lx22XXD - Jfa6647rbvE33Xfc8Nh23XPnTc/Y616brgFRvHfd9N59E+jik3jbZ8cNH6S3XScUd9Nn1w2fPTd9Ym+Q - NEVHkgaBB8e9t0gOOHfd9Nl+nZxGX1FdAlyxq6At1wgPchJueW+5huq8dt7wggJrrwJ0AWbu26+7xV53 - 236d6em8/Zrj9msO6y/bbbpiu/GKTWSj1eYrlmuaCbCtazZb0QhQl6H5C2ql06oNF9dJFtSJ59WKF9Tq - LakjSwEYbfx54bjzOjMuCaZcEMy8JJhwgT/1IsGVaQAebDCep6hDAQn5I8/yJlEIwWk/7EDSSwyuplwk - NBx3wiiezakmzMgBD44RuE+GSAvxH6I3ygkGAnKXyBH8uARCceQjAQWQABvk44iyuIR8Vgu7ikykUQur - CEIIWNJMcKIWKM/pz9mfGz/c/P1X+x/e/DodeOq5NcL5tboL60RL6vUW1ukvqhMvbTCYVC1ZUi9d3mC0 - pM5kaYNsSb18Xj0CGsXGK8o1zRZrL1tGN1mtabbZeNVm4xWAhN3mq/ZAuw1XHLdfd9py1WkHQRGXXTdd - tl1z2XnDJeY6AT+EehuvusbddN12jdDWa67br7nuvEmOSG++5hpzzXXXTYSDrltoGoRM5IAZxVEWzLgK - fpazm57uuOG6E3STnMai3hukxlVXSNUx1503XyH6rL/iGHXZYdMV+5jrdhuv2G64YgPl0YR1pCHmQO6o - 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 - - - \ No newline at end of file diff --git a/OpenSim/Tools/OpenSim.GridLaunch/GUI/WinForm/ucAppWindow.Designer.cs b/OpenSim/Tools/OpenSim.GridLaunch/GUI/WinForm/ucAppWindow.Designer.cs deleted file mode 100644 index 1ff7d43..0000000 --- a/OpenSim/Tools/OpenSim.GridLaunch/GUI/WinForm/ucAppWindow.Designer.cs +++ /dev/null @@ -1,72 +0,0 @@ -namespace OpenSim.GridLaunch.GUI.WinForm -{ - partial class ucAppWindow - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Component Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.ucLogWindow1 = new OpenSim.GridLaunch.GUI.WinForm.ucLogWindow(); - this.ucInputField1 = new OpenSim.GridLaunch.GUI.WinForm.ucInputField(); - this.SuspendLayout(); - // - // ucLogWindow1 - // - this.ucLogWindow1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.ucLogWindow1.Location = new System.Drawing.Point(3, 3); - this.ucLogWindow1.Name = "ucLogWindow1"; - this.ucLogWindow1.Size = new System.Drawing.Size(232, 132); - this.ucLogWindow1.TabIndex = 0; - // - // ucInputField1 - // - this.ucInputField1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.ucInputField1.Location = new System.Drawing.Point(0, 141); - this.ucInputField1.Name = "ucInputField1"; - this.ucInputField1.Size = new System.Drawing.Size(234, 30); - this.ucInputField1.TabIndex = 1; - // - // ucAppWindow - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.Controls.Add(this.ucInputField1); - this.Controls.Add(this.ucLogWindow1); - this.DoubleBuffered = true; - this.Name = "ucAppWindow"; - this.Size = new System.Drawing.Size(235, 166); - this.ResumeLayout(false); - - } - - #endregion - - private ucLogWindow ucLogWindow1; - private ucInputField ucInputField1; - } -} diff --git a/OpenSim/Tools/OpenSim.GridLaunch/GUI/WinForm/ucAppWindow.cs b/OpenSim/Tools/OpenSim.GridLaunch/GUI/WinForm/ucAppWindow.cs deleted file mode 100644 index 487faec..0000000 --- a/OpenSim/Tools/OpenSim.GridLaunch/GUI/WinForm/ucAppWindow.cs +++ /dev/null @@ -1,63 +0,0 @@ -/* - * Copyright (c) Contributors, http://opensimulator.org/ - * See CONTRIBUTORS.TXT for a full list of copyright holders. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * * Neither the name of the OpenSimulator Project nor the - * names of its contributors may be used to endorse or promote products - * derived from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Drawing; -using System.Data; -using System.Text; -using System.Windows.Forms; - -namespace OpenSim.GridLaunch.GUI.WinForm -{ - public partial class ucAppWindow : UserControl - { - // Just forwarding from ucInputField1 - public delegate void LineEnteredDelegate(ucAppWindow AppWindow, string Text); - public event LineEnteredDelegate LineEntered; - - public ucAppWindow() - { - InitializeComponent(); - ucInputField1.LineEntered += ucInputField1_LineEntered; - } - - #region Forward Text Input Event and Log Write Function - void ucInputField1_LineEntered(string Text) - { - if (LineEntered != null) - LineEntered(this, Text); - } - - public void Write(Color color, string LogText) - { - ucLogWindow1.Write(color, LogText); - } - #endregion - - } -} diff --git a/OpenSim/Tools/OpenSim.GridLaunch/GUI/WinForm/ucAppWindow.resx b/OpenSim/Tools/OpenSim.GridLaunch/GUI/WinForm/ucAppWindow.resx deleted file mode 100644 index 19dc0dd..0000000 --- a/OpenSim/Tools/OpenSim.GridLaunch/GUI/WinForm/ucAppWindow.resx +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/OpenSim/Tools/OpenSim.GridLaunch/GUI/WinForm/ucInputField.Designer.cs b/OpenSim/Tools/OpenSim.GridLaunch/GUI/WinForm/ucInputField.Designer.cs deleted file mode 100644 index 1eaec69..0000000 --- a/OpenSim/Tools/OpenSim.GridLaunch/GUI/WinForm/ucInputField.Designer.cs +++ /dev/null @@ -1,77 +0,0 @@ -namespace OpenSim.GridLaunch.GUI.WinForm -{ - partial class ucInputField - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Component Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.txtInput = new System.Windows.Forms.TextBox(); - this.btnSend = new System.Windows.Forms.Button(); - this.SuspendLayout(); - // - // txtInput - // - this.txtInput.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.txtInput.Location = new System.Drawing.Point(3, 2); - this.txtInput.Name = "txtInput"; - this.txtInput.Size = new System.Drawing.Size(289, 20); - this.txtInput.TabIndex = 0; - this.txtInput.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.txtInput_KeyPress); - // - // btnSend - // - this.btnSend.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.btnSend.Location = new System.Drawing.Point(295, 0); - this.btnSend.Name = "btnSend"; - this.btnSend.Size = new System.Drawing.Size(75, 23); - this.btnSend.TabIndex = 3; - this.btnSend.Text = "&Send"; - this.btnSend.UseVisualStyleBackColor = true; - this.btnSend.Click += new System.EventHandler(this.btnSend_Click); - // - // ucInputField - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.Controls.Add(this.btnSend); - this.Controls.Add(this.txtInput); - this.Name = "ucInputField"; - this.Size = new System.Drawing.Size(373, 25); - this.Load += new System.EventHandler(this.ucInputField_Load); - this.Resize += new System.EventHandler(this.ucInputField_Resize); - this.ResumeLayout(false); - this.PerformLayout(); - - } - - #endregion - - private System.Windows.Forms.TextBox txtInput; - private System.Windows.Forms.Button btnSend; - } -} diff --git a/OpenSim/Tools/OpenSim.GridLaunch/GUI/WinForm/ucInputField.cs b/OpenSim/Tools/OpenSim.GridLaunch/GUI/WinForm/ucInputField.cs deleted file mode 100644 index f6c02b5..0000000 --- a/OpenSim/Tools/OpenSim.GridLaunch/GUI/WinForm/ucInputField.cs +++ /dev/null @@ -1,97 +0,0 @@ -/* - * Copyright (c) Contributors, http://opensimulator.org/ - * See CONTRIBUTORS.TXT for a full list of copyright holders. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * * Neither the name of the OpenSimulator Project nor the - * names of its contributors may be used to endorse or promote products - * derived from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Diagnostics; -using System.Drawing; -using System.Data; -using System.Text; -using System.Windows.Forms; - -namespace OpenSim.GridLaunch.GUI.WinForm -{ - public partial class ucInputField : UserControl - { - public delegate void LineEnteredDelegate(string Text); - public event LineEnteredDelegate LineEntered; - - public List History = new List(); - - public ucInputField() - { - InitializeComponent(); - } - - private void ucInputField_Load(object sender, EventArgs e) - { - _resize(); - } - - private void ucInputField_Resize(object sender, EventArgs e) - { - _resize(); - } - - private void _resize() - { - Height = txtInput.Height + 10; - } - - private void btnSend_Click(object sender, EventArgs e) - { - Send(); - } - - private void txtInput_KeyPress(object sender, KeyPressEventArgs e) - { - //Trace.WriteLine("KeyChar: " + ((int)e.KeyChar).ToString()); - if (e.KeyChar == 13) - { - e.Handled = true; - Send(); - } - - // TODO: Add arrow up/down history functions - } - - private void Send() - { - // Remove \r\n at end - string txt = txtInput.Text.TrimEnd("\r\n".ToCharArray()); - - // Fire event - if (LineEntered != null) - LineEntered(txt); - - // Add to history - History.Add(txtInput.Text); - - txtInput.Text = ""; - } - } -} diff --git a/OpenSim/Tools/OpenSim.GridLaunch/GUI/WinForm/ucInputField.resx b/OpenSim/Tools/OpenSim.GridLaunch/GUI/WinForm/ucInputField.resx deleted file mode 100644 index 19dc0dd..0000000 --- a/OpenSim/Tools/OpenSim.GridLaunch/GUI/WinForm/ucInputField.resx +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/OpenSim/Tools/OpenSim.GridLaunch/GUI/WinForm/ucLogWindow.Designer.cs b/OpenSim/Tools/OpenSim.GridLaunch/GUI/WinForm/ucLogWindow.Designer.cs deleted file mode 100644 index 839fe99..0000000 --- a/OpenSim/Tools/OpenSim.GridLaunch/GUI/WinForm/ucLogWindow.Designer.cs +++ /dev/null @@ -1,62 +0,0 @@ -namespace OpenSim.GridLaunch.GUI.WinForm -{ - partial class ucLogWindow - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Component Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.txtLog = new System.Windows.Forms.TextBox(); - this.SuspendLayout(); - // - // txtLog - // - this.txtLog.BackColor = System.Drawing.SystemColors.Window; - this.txtLog.Dock = System.Windows.Forms.DockStyle.Fill; - this.txtLog.Location = new System.Drawing.Point(0, 0); - this.txtLog.Multiline = true; - this.txtLog.Name = "txtLog"; - this.txtLog.ReadOnly = true; - this.txtLog.ScrollBars = System.Windows.Forms.ScrollBars.Vertical; - this.txtLog.Size = new System.Drawing.Size(150, 150); - this.txtLog.TabIndex = 0; - this.txtLog.TextChanged += new System.EventHandler(this.txtLog_TextChanged); - // - // ucLogWindow - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.Controls.Add(this.txtLog); - this.Name = "ucLogWindow"; - this.ResumeLayout(false); - this.PerformLayout(); - - } - - #endregion - - private System.Windows.Forms.TextBox txtLog; - } -} diff --git a/OpenSim/Tools/OpenSim.GridLaunch/GUI/WinForm/ucLogWindow.cs b/OpenSim/Tools/OpenSim.GridLaunch/GUI/WinForm/ucLogWindow.cs deleted file mode 100644 index 84c0a14..0000000 --- a/OpenSim/Tools/OpenSim.GridLaunch/GUI/WinForm/ucLogWindow.cs +++ /dev/null @@ -1,80 +0,0 @@ -/* - * Copyright (c) Contributors, http://opensimulator.org/ - * See CONTRIBUTORS.TXT for a full list of copyright holders. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * * Neither the name of the OpenSimulator Project nor the - * names of its contributors may be used to endorse or promote products - * derived from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Drawing; -using System.Data; -using System.Text; -using System.Windows.Forms; - -namespace OpenSim.GridLaunch.GUI.WinForm -{ - public partial class ucLogWindow : UserControl - { - // If text in window is more than this - private static readonly int logWindowMaxTextLength = 20000; - // Remove this much from start of it - private static int logWindowTrunlTextLength = 10000; - - public ucLogWindow() - { - if (logWindowMaxTextLength < logWindowTrunlTextLength) - logWindowTrunlTextLength = logWindowMaxTextLength / 2; - - InitializeComponent(); - } - - public delegate void textWriteDelegate(Color color, string LogText); - public void Write(Color color, string LogText) - { - // Check if we to pass task on to GUI thread - if (this.InvokeRequired) - { - this.Invoke(new textWriteDelegate(Write), color, LogText); - return; - } - // Append to window - try - { - if (!txtLog.IsDisposed) - txtLog.AppendText(LogText); - } catch { } - } - - private void txtLog_TextChanged(object sender, EventArgs e) - { - // Go to bottom of window - txtLog.ScrollToCaret(); - - // Make sure amount of text in window doesn't grow too big - if (txtLog.Text.Length > logWindowMaxTextLength) - txtLog.Text = txtLog.Text.Remove(0, logWindowTrunlTextLength); - } - } -} diff --git a/OpenSim/Tools/OpenSim.GridLaunch/GUI/WinForm/ucLogWindow.resx b/OpenSim/Tools/OpenSim.GridLaunch/GUI/WinForm/ucLogWindow.resx deleted file mode 100644 index 19dc0dd..0000000 --- a/OpenSim/Tools/OpenSim.GridLaunch/GUI/WinForm/ucLogWindow.resx +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/OpenSim/Tools/OpenSim.GridLaunch/OpenSim.GridLaunch.csproj b/OpenSim/Tools/OpenSim.GridLaunch/OpenSim.GridLaunch.csproj deleted file mode 100644 index b262dd1..0000000 --- a/OpenSim/Tools/OpenSim.GridLaunch/OpenSim.GridLaunch.csproj +++ /dev/null @@ -1,126 +0,0 @@ - - - - Debug - AnyCPU - 9.0.30729 - 2.0 - {595D67F3-B413-4A43-8568-5B5930E3B31D} - Exe - Properties - OpenSim.GridLaunch - OpenSim.GridLaunch - v2.0 - 512 - - - true - full - false - ..\..\..\bin\ - DEBUG;TRACE - prompt - 4 - x86 - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - - - - - - - - - - - - - - - - - - - Component - - - Form - - - ProcessPanel.cs - - - UserControl - - - ucAppWindow.cs - - - UserControl - - - ucInputField.cs - - - UserControl - - - ucLogWindow.cs - - - - - - True - True - Resources.resx - - - - - - ProcessPanel.cs - - - ucAppWindow.cs - - - ucInputField.cs - - - ucLogWindow.cs - - - - - - - - - - - PreserveNewest - - - ResXFileCodeGenerator - Resources.Designer.cs - - - - - \ No newline at end of file diff --git a/OpenSim/Tools/OpenSim.GridLaunch/OpenSim.GridLaunch.ini b/OpenSim/Tools/OpenSim.GridLaunch/OpenSim.GridLaunch.ini deleted file mode 100644 index c065898..0000000 --- a/OpenSim/Tools/OpenSim.GridLaunch/OpenSim.GridLaunch.ini +++ /dev/null @@ -1,3 +0,0 @@ -GUI=WinForm -;GUI=TCPD -;Components=c:\temp\test.bat;true \ No newline at end of file diff --git a/OpenSim/Tools/OpenSim.GridLaunch/OpenSim.GridLaunch.sln b/OpenSim/Tools/OpenSim.GridLaunch/OpenSim.GridLaunch.sln deleted file mode 100644 index 8f745e1..0000000 --- a/OpenSim/Tools/OpenSim.GridLaunch/OpenSim.GridLaunch.sln +++ /dev/null @@ -1,20 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 10.00 -# Visual Studio 2008 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OpenSim.GridLaunch", "OpenSim.GridLaunch.csproj", "{595D67F3-B413-4A43-8568-5B5930E3B31D}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {595D67F3-B413-4A43-8568-5B5930E3B31D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {595D67F3-B413-4A43-8568-5B5930E3B31D}.Debug|Any CPU.Build.0 = Debug|Any CPU - {595D67F3-B413-4A43-8568-5B5930E3B31D}.Release|Any CPU.ActiveCfg = Release|Any CPU - {595D67F3-B413-4A43-8568-5B5930E3B31D}.Release|Any CPU.Build.0 = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/OpenSim/Tools/OpenSim.GridLaunch/Program.cs b/OpenSim/Tools/OpenSim.GridLaunch/Program.cs deleted file mode 100644 index ecfb0af..0000000 --- a/OpenSim/Tools/OpenSim.GridLaunch/Program.cs +++ /dev/null @@ -1,245 +0,0 @@ -/* - * Copyright (c) Contributors, http://opensimulator.org/ - * See CONTRIBUTORS.TXT for a full list of copyright holders. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * * Neither the name of the OpenSimulator Project nor the - * names of its contributors may be used to endorse or promote products - * derived from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -using System; -using System.Collections; -using System.Collections.Generic; -using System.Reflection; -using System.Threading; -using log4net; -using log4net.Appender; -using log4net.Repository.Hierarchy; -using OpenSim.GridLaunch.GUI; -using OpenSim.GridLaunch.GUI.Network; - -namespace OpenSim.GridLaunch -{ - class Program - { - public static readonly string ConfigFile = "OpenSim.GridLaunch.ini"; - internal static Dictionary AppList = new Dictionary(); - private static readonly int delayBetweenExecuteSeconds = 10; - //private static readonly int consoleReadIntervalMilliseconds = 50; - ////private static readonly Timer readTimer = new Timer(readConsole, null, Timeout.Infinite, Timeout.Infinite); - //private static Thread timerThread; - //private static object timerThreadLock = new object(); - private static IGUI GUIModule; - private static string GUIModuleName = ""; - public static readonly CommandProcessor Command = new CommandProcessor(); - public static readonly Settings Settings = new Settings(); - - private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); - - public delegate void AppConsoleOutputDelegate(string App, string Text); - public static event AppConsoleOutputDelegate AppConsoleOutput; - public delegate void AppConsoleErrorDelegate(string App, string Text); - public static event AppConsoleErrorDelegate AppConsoleError; - public delegate void AppCreatedDelegate(string App); - public static event AppCreatedDelegate AppCreated; - public delegate void AppRemovedDelegate(string App); - public static event AppRemovedDelegate AppRemoved; - - internal static void FireAppConsoleOutput(string App, string Text) - { - if (AppConsoleOutput != null) - AppConsoleOutput(App, Text); - } - internal static void FireAppConsoleError(string App, string Text) - { - if (AppConsoleError != null) - AppConsoleError(App, Text); - } - - - private static readonly object startStopLock = new object(); - - public static string Name { get { return "OpenSim Grid executor"; } } - - #region Start/Shutdown - static void Main(string[] args) - { - log4net.Config.XmlConfigurator.Configure(); - - // Startup - m_log.Info(Name); - m_log.Info(new string('-', Name.Length)); - - // Read settings - Settings.LoadConfig(ConfigFile); - // Command line arguments override settings - Settings.ParseCommandArguments(args); - - // Start GUI module - StartGUIModule(); - - // Start the processes - ThreadPool.QueueUserWorkItem(startProcesses); - - // Hand over thread control to whatever GUI module - GUIModule.StartGUI(); - - // GUI module returned, we are done - Shutdown(); - - } - - private static void StartGUIModule() - { - // Create GUI module - GUIModuleName = Settings["GUI"]; - - switch (GUIModuleName.ToLower()) - { - case "winform": - GUIModuleName = "WinForm"; - GUIModule = new GUI.WinForm.ProcessPanel(); - break; - case "service": - GUIModuleName = "Service"; - GUIModule = new Service(); - break; - case "tcpd": - GUIModuleName = "TCPD"; - GUIModule = new TCPD(); - break; - case "console": - default: - GUIModuleName = "Console"; - GUIModule = new GUI.Console.Console(); - break; - } - m_log.Info("GUI type: " + GUIModuleName); - - } - - internal static void Shutdown() - { - // Stop the processes - stopProcesses(); - - lock (startStopLock) - { - // Stop GUI module - if (GUIModule != null) - { - GUIModule.StopGUI(); - GUIModule = null; - } - } - } - - internal static void SafeDisposeOf(object obj) - { - IDisposable o = obj as IDisposable; - try - { - if (o != null) - o.Dispose(); - } - catch { } - } - #endregion - - #region Start / Stop applications - private static void startProcesses(Object stateInfo) - { - // Stop before starting - stopProcesses(); - - // Start console read timer - //timer_Start(); - - // Start the applications - foreach (string file in new ArrayList(Settings.Components.Keys)) - { - // Is this file marked for startup? - if (Settings.Components[file]) - { - AppExecutor app = new AppExecutor(file); - app.Start(); - AppList.Add(file, app); - if (AppCreated != null) - AppCreated(app.File); - System.Threading.Thread.Sleep(1000*delayBetweenExecuteSeconds); - } - } - } - - private static void stopProcesses() - { - // Stop timer - //timer_Stop(); - - // Lock so we don't collide with any timer still executing on AppList - lock (AppList) - { - // Start the applications - foreach (AppExecutor app in AppList.Values) - { - try - { - m_log.Info("Stopping: " + app.File); - app.Stop(); - } - catch (Exception ex) - { - m_log.ErrorFormat("Exception while stopping \"{0}\": {1}", app.File, ex.ToString()); - } - finally - { - if (AppRemoved != null) - AppRemoved(app.File); - app.Dispose(); - } - - } - AppList.Clear(); - } - } - #endregion - - public static void Write(string App, string Text) - { - // Check if it is a commands - bool isCommand = Command.Process(App, Text); - - // Write to stdInput of app - if (!isCommand && AppList.ContainsKey(App)) - AppList[App].Write(Text); - } - - public static void WriteLine(string App, string Text) - { - // Check if it is a commands - bool isCommand = Command.Process(App, Text); - - // Write to stdInput of app - if (!isCommand && AppList.ContainsKey(App)) - AppList[App].WriteLine(Text); - } - } -} diff --git a/OpenSim/Tools/OpenSim.GridLaunch/Properties/AssemblyInfo.cs b/OpenSim/Tools/OpenSim.GridLaunch/Properties/AssemblyInfo.cs deleted file mode 100644 index 60fc664..0000000 --- a/OpenSim/Tools/OpenSim.GridLaunch/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,63 +0,0 @@ -/* - * Copyright (c) Contributors, http://opensimulator.org/ - * See CONTRIBUTORS.TXT for a full list of copyright holders. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * * Neither the name of the OpenSimulator Project nor the - * names of its contributors may be used to endorse or promote products - * derived from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("OpenSim.GridLaunch")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("http://opensimulator.org")] -[assembly: AssemblyProduct("OpenSim.GridLaunch")] -[assembly: AssemblyCopyright("Copyright (c) 2008")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("5072e919-46ab-47e6-8a63-08108324ccdf")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("0.6.3.*")] -[assembly: AssemblyVersion("0.6.3.*")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/OpenSim/Tools/OpenSim.GridLaunch/Properties/Resources.Designer.cs b/OpenSim/Tools/OpenSim.GridLaunch/Properties/Resources.Designer.cs deleted file mode 100644 index 88b0ceb..0000000 --- a/OpenSim/Tools/OpenSim.GridLaunch/Properties/Resources.Designer.cs +++ /dev/null @@ -1,84 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:2.0.50727.3053 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace OpenSim.GridLaunch.Properties { - using System; - - - /// - /// A strongly-typed resource class, for looking up localized strings, etc. - /// - // This class was auto-generated by the StronglyTypedResourceBuilder - // class via a tool like ResGen or Visual Studio. - // To add or remove a member, edit your .ResX file then rerun ResGen - // with the /str option, or rebuild your VS project. - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "2.0.0.0")] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - internal class Resources { - - private static global::System.Resources.ResourceManager resourceMan; - - private static global::System.Globalization.CultureInfo resourceCulture; - - [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] - internal Resources() { - } - - /// - /// Returns the cached ResourceManager instance used by this class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Resources.ResourceManager ResourceManager { - get { - if (object.ReferenceEquals(resourceMan, null)) { - global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("OpenSim.GridLaunch.Properties.Resources", typeof(Resources).Assembly); - resourceMan = temp; - } - return resourceMan; - } - } - - /// - /// Overrides the current thread's CurrentUICulture property for all - /// resource lookups using this strongly typed resource class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Globalization.CultureInfo Culture { - get { - return resourceCulture; - } - set { - resourceCulture = value; - } - } - - internal static System.Drawing.Bitmap OpenSim { - get { - object obj = ResourceManager.GetObject("OpenSim", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - - internal static System.Drawing.Bitmap OpenSim_Bottom_Border { - get { - object obj = ResourceManager.GetObject("OpenSim_Bottom_Border", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - - internal static System.Drawing.Bitmap OpenSim_Right_Border { - get { - object obj = ResourceManager.GetObject("OpenSim_Right_Border", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - } -} diff --git a/OpenSim/Tools/OpenSim.GridLaunch/Properties/Resources.resx b/OpenSim/Tools/OpenSim.GridLaunch/Properties/Resources.resx deleted file mode 100644 index b82a1fc..0000000 --- a/OpenSim/Tools/OpenSim.GridLaunch/Properties/Resources.resx +++ /dev/null @@ -1,130 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - - ..\gui\winform\opensim.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\gui\winform\opensim bottom border.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\gui\winform\opensim right border.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - \ No newline at end of file diff --git a/OpenSim/Tools/OpenSim.GridLaunch/Settings.cs b/OpenSim/Tools/OpenSim.GridLaunch/Settings.cs deleted file mode 100644 index 1f02928..0000000 --- a/OpenSim/Tools/OpenSim.GridLaunch/Settings.cs +++ /dev/null @@ -1,181 +0,0 @@ -/* - * Copyright (c) Contributors, http://opensimulator.org/ - * See CONTRIBUTORS.TXT for a full list of copyright holders. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * * Neither the name of the OpenSimulator Project nor the - * names of its contributors may be used to endorse or promote products - * derived from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ -using System; -using System.Collections.Generic; -using System.Reflection; -using System.Text; -using log4net; - -namespace OpenSim.GridLaunch -{ - internal class Settings - { - private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); - private Dictionary Config = new Dictionary(); - public Dictionary Components = new Dictionary(); - - public static string[] defaultComponents = new string[] - { - "OpenSim.Grid.UserServer.exe", - "OpenSim.Grid.GridServer.exe", - "OpenSim.Grid.AssetServer.exe", - "OpenSim.Grid.InventoryServer.exe", - "OpenSim.Grid.MessagingServer.exe", - "OpenSim.32BitLaunch.exe" - }; - - - private static readonly char[] confSplit = new char[] { '=' }; - private static readonly char[] comaSplit = new char[] { ',' }; - private static readonly char[] colonSplit = new char[] { ';' }; - - private string configFile = ""; - - public Settings() - { - } - public Settings(string ConfigFile) - { - LoadConfig(ConfigFile); - } - - - public void LoadConfig(string ConfigFile) - { - configFile = ConfigFile; - m_log.Info("Reading config file: " + ConfigFile); - try - { - // Read config file - foreach (string line in System.IO.File.ReadAllLines(ConfigFile)) - { - string[] s = line.Split(confSplit, 2); - if (s.Length >= 2) - Config.Add(s[0], s[1]); - } - - // Process Components section - string cmp = Config["Components"]; - Config.Remove("Components"); - foreach (string c in cmp.Split(comaSplit)) - { - string[] cs = c.Split(colonSplit); - if (cs.Length >= 2) - { - bool status = false; - bool.TryParse(cs[1], out status); - Components.Add(cs[0], status); - } - } - } - catch (Exception ex) - { - m_log.Error("Exception reading config file: " + ex.ToString()); - } - // No components? Add default components - if (Components.Count == 0) - foreach (string c in defaultComponents) - { - Components.Add(c, true); - } - } - - public void SaveConfig(string ConfigFile) - { - configFile = ConfigFile; - SaveConfig(); - } - - public void SaveConfig() - { - m_log.Info("Writing config file: " + configFile); - try - { - System.IO.File.WriteAllText(configFile, ToString()); - } - catch (Exception ex) - { - m_log.Error("Exception writing config file: " + ex.ToString()); - } - - } - - public new string ToString() - { - StringBuilder ret = new StringBuilder(); - - Dictionary config = new Dictionary(Config); - - // Add Components key - StringBuilder _Components = new StringBuilder(); - foreach (string c in Components.Keys) - { - if (_Components.Length > 0) - _Components.Append(","); - _Components.Append(c + ";" + Components[c].ToString()); - } - config["Components"] = _Components.ToString(); - - // Make return string - foreach (string key in config.Keys) - { - ret.AppendLine(key + "=" + config[key]); - } - - // Return it - return ret.ToString(); - } - - public string this[string Key] - { - get - { - if (Config.ContainsKey(Key)) - return Config[Key]; - return ""; - } - set { Config[Key] = value; } - } - - public void ParseCommandArguments(string[] args) - { - string key = null; - foreach (string a in args) - { - if (a.StartsWith("--")) - key = a.Remove(0, 2); - else - { - if (key != null) - Config[key] = a; - key = null; - } - } - - } - } -} diff --git a/OpenSim/Tools/OpenSim.GridLaunch/log4netAppender.cs b/OpenSim/Tools/OpenSim.GridLaunch/log4netAppender.cs deleted file mode 100644 index d0e7f95..0000000 --- a/OpenSim/Tools/OpenSim.GridLaunch/log4netAppender.cs +++ /dev/null @@ -1,65 +0,0 @@ -/* - * Copyright (c) Contributors, http://opensimulator.org/ - * See CONTRIBUTORS.TXT for a full list of copyright holders. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * * Neither the name of the OpenSimulator Project nor the - * names of its contributors may be used to endorse or promote products - * derived from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ -using System; -using System.Collections.Generic; -using System.Drawing; -using System.Text; -using System.Windows.Forms; -using log4net.Appender; -using log4net.Core; - -namespace OpenSim.GridLaunch -{ - internal class log4netAppender : log4net.Appender.AppenderSkeleton - { - public delegate void LogLineDelegate(Color color, string Text); - public static event LogLineDelegate LogLine; - public static readonly Dictionary Level2Color = new Dictionary(); - - static log4netAppender() - { - Level2Color.Add("INFO", Color.Black); - Level2Color.Add("DEBUG", Color.Gray); - Level2Color.Add("WARN", Color.OrangeRed); - Level2Color.Add("ERROR", Color.Red); - } - - - protected override void Append(LoggingEvent loggingEvent) - { - // Find appropriate color - Color color = Color.Black; - if (Level2Color.ContainsKey(loggingEvent.Level.Name)) - color = Level2Color[loggingEvent.Level.Name]; - - // Fire event with new log message - if (LogLine != null) - LogLine(color, loggingEvent.RenderedMessage + System.Environment.NewLine); - } - - } -} -- cgit v1.1 From fba961c63f2168eb560eec84b66203b1a875b952 Mon Sep 17 00:00:00 2001 From: Justin Clark-Casey (justincc) Date: Fri, 1 Jul 2011 23:06:46 +0100 Subject: Make default serverside_object_permissions = true since this better matches user expectations. It also matches the default setting in the OpenSim.ini.example file --- OpenSim/Tools/Configger/ConfigurationLoader.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/Configger/ConfigurationLoader.cs b/OpenSim/Tools/Configger/ConfigurationLoader.cs index 8e71b42..3914652 100644 --- a/OpenSim/Tools/Configger/ConfigurationLoader.cs +++ b/OpenSim/Tools/Configger/ConfigurationLoader.cs @@ -239,7 +239,7 @@ namespace OpenSim.Tools.Configger config.Set("meshing", "Meshmerizer"); config.Set("physical_prim", true); config.Set("see_into_this_sim_from_neighbor", true); - config.Set("serverside_object_permissions", false); + config.Set("serverside_object_permissions", true); config.Set("storage_plugin", "OpenSim.Data.SQLite.dll"); config.Set("storage_connection_string", "URI=file:OpenSim.db,version=3"); config.Set("storage_prim_inventories", true); -- cgit v1.1 From 39d7945efc8daa6e5cd0f4728b499e7a624526cd Mon Sep 17 00:00:00 2001 From: Kevin Houlihan & Michelle Argus Date: Wed, 21 Sep 2011 22:46:14 +0100 Subject: Added a setting to [Startup] section of config that will allow the simulator to start up with no regions configured. I added the boolean config setting "allow_regionless", defaulting to false. If set to true, opensim will start up ok if no region configurations are found in the specified region_info_source. It will not ask the user to create a region. --- OpenSim/Tools/Configger/ConfigurationLoader.cs | 1 + 1 file changed, 1 insertion(+) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/Configger/ConfigurationLoader.cs b/OpenSim/Tools/Configger/ConfigurationLoader.cs index 3914652..28bcc99 100644 --- a/OpenSim/Tools/Configger/ConfigurationLoader.cs +++ b/OpenSim/Tools/Configger/ConfigurationLoader.cs @@ -233,6 +233,7 @@ namespace OpenSim.Tools.Configger config = defaultConfig.AddConfig("Startup"); config.Set("region_info_source", "filesystem"); + config.Set("allow_regionless", false); config.Set("gridmode", false); config.Set("physics", "OpenDynamicsEngine"); -- cgit v1.1 From 8a0a78cbccce796addacab7ed1609279b802a9b3 Mon Sep 17 00:00:00 2001 From: Justin Clark-Casey (justincc) Date: Tue, 25 Oct 2011 20:24:21 +0100 Subject: Make OpenSim.Framework.Servers.HttpServer rely on OpenSim.Framework instead of the other way around. This is necessary so that code in HttpServer can use framework facilities such as the thread watchdog for monitoring purposes. Doing this shuffle meant that MainServer was moved into OpenSim/Framework/Servers Also had to make OpenSim.Framework.Console rely on OpenSim.Framework rather than the other way around since it in turn relies on HttpServer MainConsole and some new interfaces had to be moved into OpenSim/Framework to allow this. This can be reverted if parts of OpenSim.Framework stop relying on console presence (cheifly RegionInfo) --- OpenSim/Tools/pCampBot/pCampBot.cs | 1 + 1 file changed, 1 insertion(+) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/pCampBot/pCampBot.cs b/OpenSim/Tools/pCampBot/pCampBot.cs index 002a294..77110bf 100644 --- a/OpenSim/Tools/pCampBot/pCampBot.cs +++ b/OpenSim/Tools/pCampBot/pCampBot.cs @@ -27,6 +27,7 @@ using System; using Nini.Config; +using OpenSim.Framework; using OpenSim.Framework.Console; namespace pCampBot -- cgit v1.1 From e3f51df3c27c5bc74bc69789d18015c538220935 Mon Sep 17 00:00:00 2001 From: Justin Clark-Casey (justincc) Date: Mon, 31 Oct 2011 21:33:25 +0000 Subject: Stop pCampbot from firing connected event twice, which results in double counting. --- OpenSim/Tools/pCampBot/BotManager.cs | 16 ++++++++-------- OpenSim/Tools/pCampBot/PhysicsBot.cs | 5 +++-- 2 files changed, 11 insertions(+), 10 deletions(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/pCampBot/BotManager.cs b/OpenSim/Tools/pCampBot/BotManager.cs index 614b350..c9d1446 100644 --- a/OpenSim/Tools/pCampBot/BotManager.cs +++ b/OpenSim/Tools/pCampBot/BotManager.cs @@ -81,16 +81,16 @@ namespace pCampBot m_console.Commands.AddCommand("bot", false, "shutdown", "shutdown", - "Gracefully shut down bots", HandleShutdown); + "Shutdown bots and exit", HandleShutdown); m_console.Commands.AddCommand("bot", false, "quit", "quit", - "Force quit (DANGEROUS, try shutdown first)", + "Shutdown bots and exit", HandleShutdown); - m_console.Commands.AddCommand("bot", false, "add bots", - "add bots ", - "Add more bots", HandleAddBots); +// m_console.Commands.AddCommand("bot", false, "add bots", +// "add bots ", +// "Add more bots", HandleAddBots); m_lBot = new List(); } @@ -177,14 +177,14 @@ namespace pCampBot switch (eventt) { case EventType.CONNECTED: - m_log.Info("[ " + callbot.firstname + " " + callbot.lastname + "]: Connected"); + m_log.Info("[" + callbot.firstname + " " + callbot.lastname + "]: Connected"); numbots++; break; case EventType.DISCONNECTED: - m_log.Info("[ " + callbot.firstname + " " + callbot.lastname + "]: Disconnected"); + m_log.Info("[" + callbot.firstname + " " + callbot.lastname + "]: Disconnected"); m_td[m_lBot.IndexOf(callbot)].Abort(); numbots--; - if (numbots >1) + if (numbots <= 0) Environment.Exit(0); break; } diff --git a/OpenSim/Tools/pCampBot/PhysicsBot.cs b/OpenSim/Tools/pCampBot/PhysicsBot.cs index 5d4af31..de54836 100644 --- a/OpenSim/Tools/pCampBot/PhysicsBot.cs +++ b/OpenSim/Tools/pCampBot/PhysicsBot.cs @@ -165,7 +165,7 @@ namespace pCampBot m_action.AutoReset = false; m_action.Elapsed += new ElapsedEventHandler(m_action_Elapsed); m_action.Start(); - OnConnected(this, EventType.CONNECTED); +// OnConnected(this, EventType.CONNECTED); if (wear == "save") { client.Appearance.SetPreviousAppearance(); @@ -384,6 +384,7 @@ namespace pCampBot { client.Assets.RequestImage(prim.Textures.DefaultTexture.TextureID, ImageType.Normal, Asset_TextureCallback_Texture); } + for (int i = 0; i < prim.Textures.FaceTextures.Length; i++) { if (prim.Textures.FaceTextures[i] != null) @@ -392,10 +393,10 @@ namespace pCampBot { client.Assets.RequestImage(prim.Textures.FaceTextures[i].TextureID, ImageType.Normal, Asset_TextureCallback_Texture); } - } } } + if (prim.Sculpt.SculptTexture != UUID.Zero) { client.Assets.RequestImage(prim.Sculpt.SculptTexture, ImageType.Normal, Asset_TextureCallback_Texture); -- cgit v1.1 From b1647f6d045a4ec0559d0f49d09f17f6e4cf2930 Mon Sep 17 00:00:00 2001 From: Justin Clark-Casey (justincc) Date: Mon, 31 Oct 2011 22:14:49 +0000 Subject: adjust pCampbot so it starts up bots with the name format " _" e.g. starting up two bots called "Ima Bot" will give them the names "Ima Bot_0" and "Ima Bot_1" This is necessary since bots with random names can no longer be created, as there's no easy way to turn off account authentication --- OpenSim/Tools/pCampBot/BotManager.cs | 107 ++++++++++++++++------------------- OpenSim/Tools/pCampBot/PhysicsBot.cs | 45 +++++++++------ OpenSim/Tools/pCampBot/README.txt | 25 +++----- OpenSim/Tools/pCampBot/pCampBot.cs | 6 +- 4 files changed, 89 insertions(+), 94 deletions(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/pCampBot/BotManager.cs b/OpenSim/Tools/pCampBot/BotManager.cs index c9d1446..0aaa226 100644 --- a/OpenSim/Tools/pCampBot/BotManager.cs +++ b/OpenSim/Tools/pCampBot/BotManager.cs @@ -53,7 +53,7 @@ namespace pCampBot protected bool m_verbose = true; protected Random somthing = new Random(Environment.TickCount); protected int numbots = 0; - protected IConfig Previous_config; + private IConfig Config; /// /// Constructor Creates MainConsole.Instance to take commands and provide the place to write data @@ -102,72 +102,65 @@ namespace pCampBot /// The configuration for the bots to use public void dobotStartup(int botcount, IConfig cs) { - Previous_config = cs; + Config = cs; m_td = new Thread[botcount]; + + string firstName = cs.GetString("firstname"); + string lastNameStem = cs.GetString("lastname"); + string password = cs.GetString("password"); + string loginUri = cs.GetString("loginuri"); + for (int i = 0; i < botcount; i++) { - startupBot(i, cs); + string lastName = string.Format("{0}_{1}", lastNameStem, i); + startupBot(i, cs, firstName, lastName, password, loginUri); } } - /// - /// Add additional bots (and threads) to our bot pool - /// - /// How Many of them to add - public void addbots(int botcount) - { - int len = m_td.Length; - Thread[] m_td2 = new Thread[len + botcount]; - for (int i = 0; i < len; i++) - { - m_td2[i] = m_td[i]; - } - m_td = m_td2; - int newlen = len + botcount; - for (int i = len; i < newlen; i++) - { - startupBot(i, Previous_config); - } - } +// /// +// /// Add additional bots (and threads) to our bot pool +// /// +// /// How Many of them to add +// public void addbots(int botcount) +// { +// int len = m_td.Length; +// Thread[] m_td2 = new Thread[len + botcount]; +// for (int i = 0; i < len; i++) +// { +// m_td2[i] = m_td[i]; +// } +// m_td = m_td2; +// int newlen = len + botcount; +// for (int i = len; i < newlen; i++) +// { +// startupBot(i, Config); +// } +// } /// /// This starts up the bot and stores the thread for the bot in the thread array /// /// The position in the thread array to stick the bot's thread /// Configuration of the bot - public void startupBot(int pos, IConfig cs) + /// First name + /// Last name + /// Password + /// Login URI + public void startupBot(int pos, IConfig cs, string firstName, string lastName, string password, string loginUri) { - PhysicsBot pb = new PhysicsBot(cs); + PhysicsBot pb = new PhysicsBot(cs, firstName, lastName, password, loginUri); pb.OnConnected += handlebotEvent; pb.OnDisconnected += handlebotEvent; - if (cs.GetString("firstname", "random") == "random") pb.firstname = CreateRandomName(); - if (cs.GetString("lastname", "random") == "random") pb.lastname = CreateRandomName(); m_td[pos] = new Thread(pb.startup); - m_td[pos].Name = "CampBot_" + pos; + m_td[pos].Name = pb.Name; m_td[pos].IsBackground = true; m_td[pos].Start(); m_lBot.Add(pb); } /// - /// Creates a random name for the bot - /// - /// - private string CreateRandomName() - { - string returnstring = ""; - string chars = "abcdefghijklmnopqrstuvwxyz0123456789"; - - for (int i = 0; i < 7; i++) - { - returnstring += chars.Substring(somthing.Next(chars.Length),1); - } - return returnstring; - } - - /// /// High level connnected/disconnected events so we can keep track of our threads by proxy /// /// @@ -177,11 +170,11 @@ namespace pCampBot switch (eventt) { case EventType.CONNECTED: - m_log.Info("[" + callbot.firstname + " " + callbot.lastname + "]: Connected"); + m_log.Info("[" + callbot.FirstName + " " + callbot.LastName + "]: Connected"); numbots++; break; case EventType.DISCONNECTED: - m_log.Info("[" + callbot.firstname + " " + callbot.lastname + "]: Disconnected"); + m_log.Info("[" + callbot.FirstName + " " + callbot.LastName + "]: Disconnected"); m_td[m_lBot.IndexOf(callbot)].Abort(); numbots--; if (numbots <= 0) @@ -223,17 +216,17 @@ namespace pCampBot Environment.Exit(0); } */ - - private void HandleAddBots(string module, string[] cmd) - { - int newbots = 0; - - if (cmd.Length > 2) - { - Int32.TryParse(cmd[2], out newbots); - } - if (newbots > 0) - addbots(newbots); - } +// +// private void HandleAddBots(string module, string[] cmd) +// { +// int newbots = 0; +// +// if (cmd.Length > 2) +// { +// Int32.TryParse(cmd[2], out newbots); +// } +// if (newbots > 0) +// addbots(newbots); +// } } } diff --git a/OpenSim/Tools/pCampBot/PhysicsBot.cs b/OpenSim/Tools/pCampBot/PhysicsBot.cs index de54836..1531b27 100644 --- a/OpenSim/Tools/pCampBot/PhysicsBot.cs +++ b/OpenSim/Tools/pCampBot/PhysicsBot.cs @@ -45,10 +45,11 @@ namespace pCampBot public delegate void AnEvent(PhysicsBot callbot, EventType someevent); // event delegate for bot events public IConfig startupConfig; // bot config, passed from BotManager - public string firstname; - public string lastname; - public string password; - public string loginURI; + public string FirstName { get; private set; } + public string LastName { get; private set; } + public string Name { get; private set; } + public string Password { get; private set; } + public string LoginUri { get; private set; } public string saveDir; public string wear; @@ -60,16 +61,28 @@ namespace pCampBot protected Random somthing = new Random(Environment.TickCount);// We do stuff randomly here - //New instance of a SecondLife client + /// + /// New instance of a SecondLife client + /// public GridClient client = new GridClient(); protected string[] talkarray; + /// - /// + /// Constructor /// - /// nini config for the bot - public PhysicsBot(IConfig bsconfig) + /// + /// + /// + /// + /// + public PhysicsBot(IConfig bsconfig, string firstName, string lastName, string password, string loginUri) { + FirstName = firstName; + LastName = lastName; + Name = string.Format("{0} {1}", FirstName, LastName); + Password = password; + LoginUri = loginUri; startupConfig = bsconfig; readconfig(); talkarray = readexcuses(); @@ -116,10 +129,6 @@ namespace pCampBot /// public void readconfig() { - firstname = startupConfig.GetString("firstname", "random"); - lastname = startupConfig.GetString("lastname", "random"); - password = startupConfig.GetString("password", "12345"); - loginURI = startupConfig.GetString("loginuri"); wear = startupConfig.GetString("wear","no"); } @@ -136,7 +145,7 @@ namespace pCampBot ///
public void startup() { - client.Settings.LOGIN_SERVER = loginURI; + client.Settings.LOGIN_SERVER = LoginUri; client.Settings.ALWAYS_DECODE_OBJECTS = false; client.Settings.AVATAR_TRACKING = false; client.Settings.OBJECT_TRACKING = false; @@ -153,10 +162,10 @@ namespace pCampBot client.Throttle.Total = 400000; client.Network.LoginProgress += this.Network_LoginProgress; client.Network.SimConnected += this.Network_SimConnected; - client.Network.Disconnected += this.Network_OnDisconnected; +// client.Network.Disconnected += this.Network_OnDisconnected; client.Objects.ObjectUpdate += Objects_NewPrim; //client.Assets.OnAssetReceived += Asset_ReceivedCallback; - if (client.Network.Login(firstname, lastname, password, "pCampBot", "Your name")) + if (client.Network.Login(FirstName, LastName, Password, "pCampBot", "Your name")) { if (OnConnected != null) { @@ -180,7 +189,9 @@ namespace pCampBot } else { - MainConsole.Instance.Output(firstname + " " + lastname + " Can't login: " + client.Network.LoginMessage); + MainConsole.Instance.OutputFormat( + "{0} {1} cannot login: {2}", FirstName, LastName, client.Network.LoginMessage); + if (OnDisconnected != null) { OnDisconnected(this, EventType.DISCONNECTED); @@ -190,7 +201,7 @@ namespace pCampBot public void SaveDefaultAppearance() { - saveDir = "MyAppearance/" + firstname + "_" + lastname; + saveDir = "MyAppearance/" + FirstName + "_" + LastName; if (!Directory.Exists(saveDir)) { Directory.CreateDirectory(saveDir); diff --git a/OpenSim/Tools/pCampBot/README.txt b/OpenSim/Tools/pCampBot/README.txt index 7ecbde1..c4fcf33 100644 --- a/OpenSim/Tools/pCampBot/README.txt +++ b/OpenSim/Tools/pCampBot/README.txt @@ -1,10 +1,13 @@ This is the PhysicsCamperbot libslBot tester. -This is designed to be run in standalone mode with authorize accounts -turned off as a way to stress test the simulator. It creates -clients that log in, randomly jump/walk around, and say excuses from +This is designed to stress test the simulator. It creates +clients that log in, randomly jump/walk around, and can say excuses from the BOFH. +Bots must have accounts already created. Each bot will have the same firstname and password +but their lastname will be appended with _ starting from 0. So if you have two bots called ima bot, their +first names will be ima_bot_0 and ima_bot_1. + *** WARNING *** Using this bot on a public grid could get you banned permanently, so just say No! to griefing! @@ -21,19 +24,8 @@ pCampBot.exe will end up in the regular opensim/bin folder ----- Running the bot ----- -windows: pCampBot.exe -botcount -loginuri -*nix: mono pCampBot.exe -botcount -loginuri - -The names it produces are random by default, however, you can specify -either a firstname or a lastname in the command line also. - -ex: pCampBot.exe -botcount -loginuri -lastname - -If you specify both a firstname *and* a lastname, you'll likely run -into trouble unless you're only running a single bot. In that case, -there's also a password option. - -pCampBot.exe -botcount 1 -loginuri http://somegrid.com:8002 -firstname SomeDude -lastname SomeDude -password GobbleDeGook +windows: pCampBot.exe -botcount -loginuri -firstname -lastname -password +*nix: mono pCampBot.exe -botcount -loginuri -firstname -lastname -password ----- Commands ----- @@ -41,4 +33,3 @@ The bot has console commands: help - lists the console commands and what they do shutdown - gracefully shuts down the bots quit - forcefully shuts things down leaving stuff unclean - addbots N - adds N number of random bots. (replace 'N' with a number) diff --git a/OpenSim/Tools/pCampBot/pCampBot.cs b/OpenSim/Tools/pCampBot/pCampBot.cs index 77110bf..a69fbf0 100644 --- a/OpenSim/Tools/pCampBot/pCampBot.cs +++ b/OpenSim/Tools/pCampBot/pCampBot.cs @@ -95,9 +95,9 @@ namespace pCampBot "Spawns a set of bots to test an OpenSim region\n\n" + " -l, -loginuri loginuri for sim to log into (required)\n" + " -n, -botcount number of bots to start (default: 1)\n" + - " -firstname first name for the bot(s) (default: random string)\n" + - " -lastname lastname for the bot(s) (default: random string)\n" + - " -password password for the bots(s) (default: random string)\n" + + " -firstname first name for the bots\n" + + " -lastname lastname for the bots. Each lastname will have _ appended, e.g. Ima Bot_0\n" + + " -password password for the bots\n" + " -wear set appearance folder to load from (default: no)\n" + " -h, -help show this message" ); -- cgit v1.1 From 43e07efbc843ba1edd0c0369c50da331b5a1b2d6 Mon Sep 17 00:00:00 2001 From: Justin Clark-Casey (justincc) Date: Mon, 31 Oct 2011 22:27:12 +0000 Subject: Fix bot disconnection --- OpenSim/Tools/pCampBot/PhysicsBot.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/pCampBot/PhysicsBot.cs b/OpenSim/Tools/pCampBot/PhysicsBot.cs index 1531b27..03c6f85 100644 --- a/OpenSim/Tools/pCampBot/PhysicsBot.cs +++ b/OpenSim/Tools/pCampBot/PhysicsBot.cs @@ -162,7 +162,7 @@ namespace pCampBot client.Throttle.Total = 400000; client.Network.LoginProgress += this.Network_LoginProgress; client.Network.SimConnected += this.Network_SimConnected; -// client.Network.Disconnected += this.Network_OnDisconnected; + client.Network.Disconnected += this.Network_OnDisconnected; client.Objects.ObjectUpdate += Objects_NewPrim; //client.Assets.OnAssetReceived += Asset_ReceivedCallback; if (client.Network.Login(FirstName, LastName, Password, "pCampBot", "Your name")) -- cgit v1.1 From d366a08ebbc861a9db8ab27dd7f375a349d297ff Mon Sep 17 00:00:00 2001 From: Justin Clark-Casey (justincc) Date: Mon, 31 Oct 2011 22:52:49 +0000 Subject: Stop individual bots attempting to download the same asset more than once --- OpenSim/Tools/pCampBot/PhysicsBot.cs | 50 ++++++++++++++++++++++++++---------- 1 file changed, 36 insertions(+), 14 deletions(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/pCampBot/PhysicsBot.cs b/OpenSim/Tools/pCampBot/PhysicsBot.cs index 03c6f85..0344a82 100644 --- a/OpenSim/Tools/pCampBot/PhysicsBot.cs +++ b/OpenSim/Tools/pCampBot/PhysicsBot.cs @@ -56,6 +56,11 @@ namespace pCampBot public event AnEvent OnConnected; public event AnEvent OnDisconnected; + /// + /// Track the assets we have and have not received so we don't endlessly repeat requests. + /// + public Dictionary AssetsReceived { get; private set; } + protected Timer m_action; // Action Timer protected List objectIDs = new List(); @@ -86,6 +91,8 @@ namespace pCampBot startupConfig = bsconfig; readconfig(); talkarray = readexcuses(); + + AssetsReceived = new Dictionary(); } //We do our actions here. This is where one would @@ -164,7 +171,7 @@ namespace pCampBot client.Network.SimConnected += this.Network_SimConnected; client.Network.Disconnected += this.Network_OnDisconnected; client.Objects.ObjectUpdate += Objects_NewPrim; - //client.Assets.OnAssetReceived += Asset_ReceivedCallback; + if (client.Network.Login(FirstName, LastName, Password, "pCampBot", "Your name")) { if (OnConnected != null) @@ -227,7 +234,7 @@ namespace pCampBot { if (asset.Decode()) { - File.WriteAllBytes(Path.Combine(saveDir, String.Format("{1}.{0}", + File.WriteAllBytes(Path.Combine(saveDir, String.Format("{1}.{0}", asset.AssetType.ToString().ToLower(), asset.WearableType)), asset.AssetData); } @@ -393,40 +400,55 @@ namespace pCampBot { if (prim.Textures.DefaultTexture.TextureID != UUID.Zero) { - client.Assets.RequestImage(prim.Textures.DefaultTexture.TextureID, ImageType.Normal, Asset_TextureCallback_Texture); + GetTexture(prim.Textures.DefaultTexture.TextureID); } for (int i = 0; i < prim.Textures.FaceTextures.Length; i++) { - if (prim.Textures.FaceTextures[i] != null) + UUID textureID = prim.Textures.FaceTextures[i].TextureID; + + if (textureID != null && textureID != UUID.Zero) { - if (prim.Textures.FaceTextures[i].TextureID != UUID.Zero) - { - client.Assets.RequestImage(prim.Textures.FaceTextures[i].TextureID, ImageType.Normal, Asset_TextureCallback_Texture); - } + GetTexture(textureID); } } } if (prim.Sculpt.SculptTexture != UUID.Zero) { - client.Assets.RequestImage(prim.Sculpt.SculptTexture, ImageType.Normal, Asset_TextureCallback_Texture); + GetTexture(prim.Sculpt.SculptTexture); } } } + private void GetTexture(UUID textureID) + { + lock (AssetsReceived) + { + // Don't request assets more than once. + if (AssetsReceived.ContainsKey(textureID)) + return; + + AssetsReceived[textureID] = false; + client.Assets.RequestImage(textureID, ImageType.Normal, Asset_TextureCallback_Texture); + } + } + public void Asset_TextureCallback_Texture(TextureRequestState state, AssetTexture assetTexture) { //TODO: Implement texture saving and applying } - public void Asset_ReceivedCallback(AssetDownload transfer,Asset asset) + public void Asset_ReceivedCallback(AssetDownload transfer, Asset asset) { - if (wear == "save") - { - SaveAsset((AssetWearable) asset); - } + lock (AssetsReceived) + AssetsReceived[asset.AssetID] = true; + +// if (wear == "save") +// { +// SaveAsset((AssetWearable) asset); +// } } public string[] readexcuses() -- cgit v1.1 From 210868a832439bb226dfcf153ca66563300dc2cf Mon Sep 17 00:00:00 2001 From: Justin Clark-Casey (justincc) Date: Mon, 31 Oct 2011 23:10:10 +0000 Subject: Remove OpenSim.TestSuite Hasn't been touched since 2009 and wasn't more than another copy of pCampBot --- OpenSim/Tools/pCampBot/BotManager.cs | 4 +++- OpenSim/Tools/pCampBot/PhysicsBot.cs | 7 ++++++- 2 files changed, 9 insertions(+), 2 deletions(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/pCampBot/BotManager.cs b/OpenSim/Tools/pCampBot/BotManager.cs index 0aaa226..a4b7f16 100644 --- a/OpenSim/Tools/pCampBot/BotManager.cs +++ b/OpenSim/Tools/pCampBot/BotManager.cs @@ -165,18 +165,20 @@ namespace pCampBot ///
/// /// - public void handlebotEvent(PhysicsBot callbot, EventType eventt) + private void handlebotEvent(PhysicsBot callbot, EventType eventt) { switch (eventt) { case EventType.CONNECTED: m_log.Info("[" + callbot.FirstName + " " + callbot.LastName + "]: Connected"); numbots++; +// m_log.InfoFormat("NUMBOTS {0}", numbots); break; case EventType.DISCONNECTED: m_log.Info("[" + callbot.FirstName + " " + callbot.LastName + "]: Disconnected"); m_td[m_lBot.IndexOf(callbot)].Abort(); numbots--; +// m_log.InfoFormat("NUMBOTS {0}", numbots); if (numbots <= 0) Environment.Exit(0); break; diff --git a/OpenSim/Tools/pCampBot/PhysicsBot.cs b/OpenSim/Tools/pCampBot/PhysicsBot.cs index 0344a82..0c399e3 100644 --- a/OpenSim/Tools/pCampBot/PhysicsBot.cs +++ b/OpenSim/Tools/pCampBot/PhysicsBot.cs @@ -29,19 +29,23 @@ using System; using System.Collections.Generic; using System.Text; using System.IO; +using System.Reflection; using System.Threading; using System.Timers; +using log4net; using OpenMetaverse; using OpenMetaverse.Assets; using Nini.Config; using OpenSim.Framework; using OpenSim.Framework.Console; -using Timer=System.Timers.Timer; +using Timer = System.Timers.Timer; namespace pCampBot { public class PhysicsBot { + private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); + public delegate void AnEvent(PhysicsBot callbot, EventType someevent); // event delegate for bot events public IConfig startupConfig; // bot config, passed from BotManager @@ -384,6 +388,7 @@ namespace pCampBot public void Network_OnDisconnected(object sender, DisconnectedEventArgs args) { +// m_log.ErrorFormat("Fired Network_OnDisconnected"); if (OnDisconnected != null) { OnDisconnected(this, EventType.DISCONNECTED); -- cgit v1.1 From b951c7fb1e5a284a9bf95054cb168e64ebfe717d Mon Sep 17 00:00:00 2001 From: Justin Clark-Casey (justincc) Date: Mon, 31 Oct 2011 23:22:55 +0000 Subject: Make bots share a cache so that asset downloads attempts are only made once instead of once for each bot --- OpenSim/Tools/pCampBot/BotManager.cs | 15 +++++++++++---- OpenSim/Tools/pCampBot/PhysicsBot.cs | 29 +++++++++++++---------------- 2 files changed, 24 insertions(+), 20 deletions(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/pCampBot/BotManager.cs b/OpenSim/Tools/pCampBot/BotManager.cs index a4b7f16..03bb820 100644 --- a/OpenSim/Tools/pCampBot/BotManager.cs +++ b/OpenSim/Tools/pCampBot/BotManager.cs @@ -53,13 +53,20 @@ namespace pCampBot protected bool m_verbose = true; protected Random somthing = new Random(Environment.TickCount); protected int numbots = 0; - private IConfig Config; + public IConfig Config { get; private set; } + + /// + /// Track the assets we have and have not received so we don't endlessly repeat requests. + /// + public Dictionary AssetsReceived { get; private set; } /// /// Constructor Creates MainConsole.Instance to take commands and provide the place to write data /// public BotManager() { + AssetsReceived = new Dictionary(); + m_console = CreateConsole(); MainConsole.Instance = m_console; @@ -113,7 +120,7 @@ namespace pCampBot for (int i = 0; i < botcount; i++) { string lastName = string.Format("{0}_{1}", lastNameStem, i); - startupBot(i, cs, firstName, lastName, password, loginUri); + startupBot(i, this, firstName, lastName, password, loginUri); } } @@ -146,9 +153,9 @@ namespace pCampBot /// Last name /// Password /// Login URI - public void startupBot(int pos, IConfig cs, string firstName, string lastName, string password, string loginUri) + public void startupBot(int pos, BotManager bm, string firstName, string lastName, string password, string loginUri) { - PhysicsBot pb = new PhysicsBot(cs, firstName, lastName, password, loginUri); + PhysicsBot pb = new PhysicsBot(bm, firstName, lastName, password, loginUri); pb.OnConnected += handlebotEvent; pb.OnDisconnected += handlebotEvent; diff --git a/OpenSim/Tools/pCampBot/PhysicsBot.cs b/OpenSim/Tools/pCampBot/PhysicsBot.cs index 0c399e3..2070bfd 100644 --- a/OpenSim/Tools/pCampBot/PhysicsBot.cs +++ b/OpenSim/Tools/pCampBot/PhysicsBot.cs @@ -47,7 +47,9 @@ namespace pCampBot private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); public delegate void AnEvent(PhysicsBot callbot, EventType someevent); // event delegate for bot events - public IConfig startupConfig; // bot config, passed from BotManager + + public BotManager BotManager { get; private set; } + private IConfig startupConfig; // bot config, passed from BotManager public string FirstName { get; private set; } public string LastName { get; private set; } @@ -60,11 +62,6 @@ namespace pCampBot public event AnEvent OnConnected; public event AnEvent OnDisconnected; - /// - /// Track the assets we have and have not received so we don't endlessly repeat requests. - /// - public Dictionary AssetsReceived { get; private set; } - protected Timer m_action; // Action Timer protected List objectIDs = new List(); @@ -80,23 +77,23 @@ namespace pCampBot /// /// Constructor /// - /// + /// /// /// /// /// - public PhysicsBot(IConfig bsconfig, string firstName, string lastName, string password, string loginUri) + public PhysicsBot(BotManager bm, string firstName, string lastName, string password, string loginUri) { FirstName = firstName; LastName = lastName; Name = string.Format("{0} {1}", FirstName, LastName); Password = password; LoginUri = loginUri; - startupConfig = bsconfig; + + BotManager = bm; + startupConfig = bm.Config; readconfig(); talkarray = readexcuses(); - - AssetsReceived = new Dictionary(); } //We do our actions here. This is where one would @@ -428,13 +425,13 @@ namespace pCampBot private void GetTexture(UUID textureID) { - lock (AssetsReceived) + lock (BotManager.AssetsReceived) { // Don't request assets more than once. - if (AssetsReceived.ContainsKey(textureID)) + if (BotManager.AssetsReceived.ContainsKey(textureID)) return; - AssetsReceived[textureID] = false; + BotManager.AssetsReceived[textureID] = false; client.Assets.RequestImage(textureID, ImageType.Normal, Asset_TextureCallback_Texture); } } @@ -447,8 +444,8 @@ namespace pCampBot public void Asset_ReceivedCallback(AssetDownload transfer, Asset asset) { - lock (AssetsReceived) - AssetsReceived[asset.AssetID] = true; + lock (BotManager.AssetsReceived) + BotManager.AssetsReceived[asset.AssetID] = true; // if (wear == "save") // { -- cgit v1.1 From 87ec8a4ecbafca79841117ba03cced0aa9f82193 Mon Sep 17 00:00:00 2001 From: Justin Clark-Casey (justincc) Date: Tue, 1 Nov 2011 18:36:29 +0000 Subject: Retain a reference to an action thread rather than starting an infinite loop via a timer, so that we can actually abort the action thread on shutdown --- OpenSim/Tools/pCampBot/PhysicsBot.cs | 28 ++++++++++++++++++++-------- 1 file changed, 20 insertions(+), 8 deletions(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/pCampBot/PhysicsBot.cs b/OpenSim/Tools/pCampBot/PhysicsBot.cs index 2070bfd..945697b 100644 --- a/OpenSim/Tools/pCampBot/PhysicsBot.cs +++ b/OpenSim/Tools/pCampBot/PhysicsBot.cs @@ -62,7 +62,11 @@ namespace pCampBot public event AnEvent OnConnected; public event AnEvent OnDisconnected; - protected Timer m_action; // Action Timer + /// + /// Keep a track of the continuously acting thread so that we can abort it. + /// + private Thread m_actionThread; + protected List objectIDs = new List(); protected Random somthing = new Random(Environment.TickCount);// We do stuff randomly here @@ -98,8 +102,7 @@ namespace pCampBot //We do our actions here. This is where one would //add additional steps and/or things the bot should do - - void m_action_Elapsed(object sender, ElapsedEventArgs e) + private void Action() { while (true) { @@ -145,6 +148,9 @@ namespace pCampBot ///
public void shutdown() { + if (m_actionThread != null) + m_actionThread.Abort(); + client.Network.Logout(); } @@ -177,11 +183,10 @@ namespace pCampBot { if (OnConnected != null) { - m_action = new Timer(somthing.Next(1000, 10000)); - m_action.Enabled = true; - m_action.AutoReset = false; - m_action.Elapsed += new ElapsedEventHandler(m_action_Elapsed); - m_action.Start(); + Thread.Sleep(somthing.Next(1000, 10000)); + m_actionThread = new Thread(Action); + m_actionThread.Start(); + // OnConnected(this, EventType.CONNECTED); if (wear == "save") { @@ -386,6 +391,13 @@ namespace pCampBot public void Network_OnDisconnected(object sender, DisconnectedEventArgs args) { // 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) +// && OnDisconnected != null) if (OnDisconnected != null) { OnDisconnected(this, EventType.DISCONNECTED); -- cgit v1.1 From 12bd0ebd3416a60faeec77bfcd3cb48c33ed5cce Mon Sep 17 00:00:00 2001 From: Justin Clark-Casey (justincc) Date: Tue, 1 Nov 2011 21:15:47 +0000 Subject: stop recording the threads on which we happen to start bots. These are pointless since they terminate quickly --- OpenSim/Tools/pCampBot/BotManager.cs | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/pCampBot/BotManager.cs b/OpenSim/Tools/pCampBot/BotManager.cs index 03bb820..bfb664f 100644 --- a/OpenSim/Tools/pCampBot/BotManager.cs +++ b/OpenSim/Tools/pCampBot/BotManager.cs @@ -49,7 +49,6 @@ namespace pCampBot protected CommandConsole m_console; protected List m_lBot; - protected Thread[] m_td; protected bool m_verbose = true; protected Random somthing = new Random(Environment.TickCount); protected int numbots = 0; @@ -110,7 +109,6 @@ namespace pCampBot public void dobotStartup(int botcount, IConfig cs) { Config = cs; - m_td = new Thread[botcount]; string firstName = cs.GetString("firstname"); string lastNameStem = cs.GetString("lastname"); @@ -160,11 +158,12 @@ namespace pCampBot pb.OnConnected += handlebotEvent; pb.OnDisconnected += handlebotEvent; - m_td[pos] = new Thread(pb.startup); - m_td[pos].Name = pb.Name; - m_td[pos].IsBackground = true; - m_td[pos].Start(); m_lBot.Add(pb); + + Thread pbThread = new Thread(pb.startup); + pbThread.Name = pb.Name; + pbThread.IsBackground = true; + pbThread.Start(); } /// @@ -183,7 +182,6 @@ namespace pCampBot break; case EventType.DISCONNECTED: m_log.Info("[" + callbot.FirstName + " " + callbot.LastName + "]: Disconnected"); - m_td[m_lBot.IndexOf(callbot)].Abort(); numbots--; // m_log.InfoFormat("NUMBOTS {0}", numbots); if (numbots <= 0) -- cgit v1.1 From 53f3b76a84e6fb90b1f197977054a16ec86ccc7f Mon Sep 17 00:00:00 2001 From: Justin Clark-Casey (justincc) Date: Tue, 1 Nov 2011 21:18:28 +0000 Subject: get rid of unused m_verbose field --- OpenSim/Tools/pCampBot/BotManager.cs | 1 - 1 file changed, 1 deletion(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/pCampBot/BotManager.cs b/OpenSim/Tools/pCampBot/BotManager.cs index bfb664f..d2b7ded 100644 --- a/OpenSim/Tools/pCampBot/BotManager.cs +++ b/OpenSim/Tools/pCampBot/BotManager.cs @@ -49,7 +49,6 @@ namespace pCampBot protected CommandConsole m_console; protected List m_lBot; - protected bool m_verbose = true; protected Random somthing = new Random(Environment.TickCount); protected int numbots = 0; public IConfig Config { get; private set; } -- cgit v1.1 From 40750b44a09c9970497657c3a847af2d92c8b385 Mon Sep 17 00:00:00 2001 From: Justin Clark-Casey (justincc) Date: Tue, 1 Nov 2011 21:47:14 +0000 Subject: Listen only for non SimShutdown Network.Disconnect firing so that we don't quite the program before all bots have actually logged off. --- OpenSim/Tools/pCampBot/PhysicsBot.cs | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/pCampBot/PhysicsBot.cs b/OpenSim/Tools/pCampBot/PhysicsBot.cs index 945697b..5bcd35d 100644 --- a/OpenSim/Tools/pCampBot/PhysicsBot.cs +++ b/OpenSim/Tools/pCampBot/PhysicsBot.cs @@ -398,7 +398,13 @@ namespace pCampBot // (args.Reason == NetworkManager.DisconnectType.SimShutdown // || args.Reason == NetworkManager.DisconnectType.NetworkTimeout) // && OnDisconnected != null) - if (OnDisconnected != null) + + if ( + (args.Reason == NetworkManager.DisconnectType.ClientInitiated + || args.Reason == NetworkManager.DisconnectType.ServerInitiated + || args.Reason == NetworkManager.DisconnectType.NetworkTimeout) + && OnDisconnected != null) +// if (OnDisconnected != null) { OnDisconnected(this, EventType.DISCONNECTED); } -- cgit v1.1 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/Tools') 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 From 9456a540c50b90d2c2cdb1b556e9d6190f817426 Mon Sep 17 00:00:00 2001 From: Justin Clark-Casey (justincc) Date: Tue, 1 Nov 2011 23:23:45 +0000 Subject: Add "appearance send" command to allow manual sending of appearance. --- OpenSim/Tools/pCampBot/PhysicsBot.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/pCampBot/PhysicsBot.cs b/OpenSim/Tools/pCampBot/PhysicsBot.cs index 14e9cca..a8b2426 100644 --- a/OpenSim/Tools/pCampBot/PhysicsBot.cs +++ b/OpenSim/Tools/pCampBot/PhysicsBot.cs @@ -124,11 +124,11 @@ namespace pCampBot } // TODO: unused: Vector3 pos = client.Self.SimPosition; - Vector3 newpos = new Vector3(somthing.Next(255), somthing.Next(255), somthing.Next(255)); + Vector3 newpos = new Vector3(somthing.Next(1, 254), somthing.Next(1, 254), somthing.Next(1, 254)); client.Self.Movement.TurnToward(newpos); client.Self.Movement.AtPos = true; - Thread.Sleep(somthing.Next(3000,13000)); + Thread.Sleep(somthing.Next(3000, 13000)); client.Self.Movement.AtPos = false; client.Self.Jump(true); -- cgit v1.1 From 66c60c56a0bac01e0f4f2a9d5c673a48ff94642b Mon Sep 17 00:00:00 2001 From: Justin Clark-Casey (justincc) Date: Thu, 3 Nov 2011 21:16:24 +0000 Subject: Separate out physics testing actions into a separate PhysicsBehaviour class --- OpenSim/Tools/pCampBot/BotManager.cs | 16 ++- OpenSim/Tools/pCampBot/Interfaces/IBehaviour.cs | 37 ++++++ OpenSim/Tools/pCampBot/PhysicsBehaviour.cs | 97 +++++++++++++++ OpenSim/Tools/pCampBot/PhysicsBot.cs | 152 ++++++++++-------------- OpenSim/Tools/pCampBot/pCampBot.cs | 14 ++- 5 files changed, 221 insertions(+), 95 deletions(-) create mode 100644 OpenSim/Tools/pCampBot/Interfaces/IBehaviour.cs create mode 100644 OpenSim/Tools/pCampBot/PhysicsBehaviour.cs (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/pCampBot/BotManager.cs b/OpenSim/Tools/pCampBot/BotManager.cs index b05bd6d..0505c97 100644 --- a/OpenSim/Tools/pCampBot/BotManager.cs +++ b/OpenSim/Tools/pCampBot/BotManager.cs @@ -37,6 +37,7 @@ using log4net.Repository; using Nini.Config; using OpenSim.Framework; using OpenSim.Framework.Console; +using pCampBot.Interfaces; namespace pCampBot { @@ -119,10 +120,14 @@ namespace pCampBot string password = cs.GetString("password"); string loginUri = cs.GetString("loginuri"); + // Hardcoded for new + List behaviours = new List(); + behaviours.Add(new PhysicsBehaviour()); + for (int i = 0; i < botcount; i++) { string lastName = string.Format("{0}_{1}", lastNameStem, i); - startupBot(i, this, firstName, lastName, password, loginUri); + startupBot(i, this, behaviours, firstName, lastName, password, loginUri); } } @@ -150,14 +155,17 @@ namespace pCampBot /// This starts up the bot and stores the thread for the bot in the thread array /// /// The position in the thread array to stick the bot's thread - /// Configuration of the bot + /// + /// Behaviours for this bot to perform. /// First name /// Last name /// Password /// Login URI - public void startupBot(int pos, BotManager bm, string firstName, string lastName, string password, string loginUri) + public void startupBot( + int pos, BotManager bm, List behaviours, + string firstName, string lastName, string password, string loginUri) { - PhysicsBot pb = new PhysicsBot(bm, firstName, lastName, password, loginUri); + PhysicsBot pb = new PhysicsBot(bm, behaviours, firstName, lastName, password, loginUri); pb.OnConnected += handlebotEvent; pb.OnDisconnected += handlebotEvent; diff --git a/OpenSim/Tools/pCampBot/Interfaces/IBehaviour.cs b/OpenSim/Tools/pCampBot/Interfaces/IBehaviour.cs new file mode 100644 index 0000000..f9eaa1c --- /dev/null +++ b/OpenSim/Tools/pCampBot/Interfaces/IBehaviour.cs @@ -0,0 +1,37 @@ +/* + * Copyright (c) Contributors, http://opensimulator.org/ + * See CONTRIBUTORS.TXT for a full list of copyright holders. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the OpenSimulator Project nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +using pCampBot; +using System; + +namespace pCampBot.Interfaces +{ + public interface IBehaviour + { + void Action(PhysicsBot bot); + } +} \ No newline at end of file diff --git a/OpenSim/Tools/pCampBot/PhysicsBehaviour.cs b/OpenSim/Tools/pCampBot/PhysicsBehaviour.cs new file mode 100644 index 0000000..e76c0b3 --- /dev/null +++ b/OpenSim/Tools/pCampBot/PhysicsBehaviour.cs @@ -0,0 +1,97 @@ +/* + * Copyright (c) Contributors, http://opensimulator.org/ + * See CONTRIBUTORS.TXT for a full list of copyright holders. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the OpenSimulator Project nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +using System; +using System.IO; +using System.Threading; +using OpenMetaverse; +using OpenSim.Framework; +using pCampBot.Interfaces; + +namespace pCampBot +{ + /// + /// This is a behaviour designed to stress physics by moving and bouncing around bots a whole lot. + /// + /// + /// TODO: talkarray should be in a separate behaviour. + /// + public class PhysicsBehaviour : IBehaviour + { + private string[] talkarray; + + public PhysicsBehaviour() + { + talkarray = readexcuses(); + } + + public void Action(PhysicsBot bot) + { + int walkorrun = bot.Random.Next(4); // Randomize between walking and running. The greater this number, + // the greater the bot's chances to walk instead of run. + bot.Client.Self.Jump(false); + if (walkorrun == 0) + { + bot.Client.Self.Movement.AlwaysRun = true; + } + else + { + bot.Client.Self.Movement.AlwaysRun = false; + } + + // TODO: unused: Vector3 pos = client.Self.SimPosition; + Vector3 newpos = new Vector3(bot.Random.Next(1, 254), bot.Random.Next(1, 254), bot.Random.Next(1, 254)); + bot.Client.Self.Movement.TurnToward(newpos); + + bot.Client.Self.Movement.AtPos = true; + Thread.Sleep(bot.Random.Next(3000, 13000)); + bot.Client.Self.Movement.AtPos = false; + bot.Client.Self.Jump(true); + + string randomf = talkarray[bot.Random.Next(talkarray.Length)]; + if (talkarray.Length > 1 && randomf.Length > 1) + bot.Client.Self.Chat(randomf, 0, ChatType.Normal); + + Thread.Sleep(bot.Random.Next(1000, 10000)); + } + + private string[] readexcuses() + { + string allexcuses = ""; + + string file = Path.Combine(Util.configDir(), "pCampBotSentences.txt"); + if (File.Exists(file)) + { + StreamReader csr = File.OpenText(file); + allexcuses = csr.ReadToEnd(); + csr.Close(); + } + + return allexcuses.Split(Environment.NewLine.ToCharArray()); + } + } +} \ No newline at end of file diff --git a/OpenSim/Tools/pCampBot/PhysicsBot.cs b/OpenSim/Tools/pCampBot/PhysicsBot.cs index a8b2426..c1bd49f 100644 --- a/OpenSim/Tools/pCampBot/PhysicsBot.cs +++ b/OpenSim/Tools/pCampBot/PhysicsBot.cs @@ -36,6 +36,7 @@ using log4net; using OpenMetaverse; using OpenMetaverse.Assets; using Nini.Config; +using pCampBot.Interfaces; using OpenSim.Framework; using OpenSim.Framework.Console; using Timer = System.Timers.Timer; @@ -52,6 +53,11 @@ namespace pCampBot private IConfig startupConfig; // bot config, passed from BotManager /// + /// Behaviours implemented by this bot. + /// + public List Behaviours { get; private set; } + + /// /// Is this bot connected to the grid? /// public bool IsConnected { get; private set; } @@ -74,25 +80,33 @@ namespace pCampBot protected List objectIDs = new List(); - protected Random somthing = new Random(Environment.TickCount);// We do stuff randomly here + /// + /// Random number generator. + /// + public Random Random { get; private set; } /// /// New instance of a SecondLife client /// - public GridClient client = new GridClient(); - - protected string[] talkarray; + public GridClient Client { get; private set; } /// /// Constructor /// /// + /// Behaviours for this bot to perform /// /// /// /// - public PhysicsBot(BotManager bm, string firstName, string lastName, string password, string loginUri) + /// + public PhysicsBot( + BotManager bm, List behaviours, + string firstName, string lastName, string password, string loginUri) { + Client = new GridClient(); + + Random = new Random(Environment.TickCount);// We do stuff randomly here FirstName = firstName; LastName = lastName; Name = string.Format("{0} {1}", FirstName, LastName); @@ -102,7 +116,8 @@ namespace pCampBot BotManager = bm; startupConfig = bm.Config; readconfig(); - talkarray = readexcuses(); + + Behaviours = behaviours; } //We do our actions here. This is where one would @@ -110,34 +125,7 @@ namespace pCampBot private void Action() { while (true) - { - int walkorrun = somthing.Next(4); // Randomize between walking and running. The greater this number, - // the greater the bot's chances to walk instead of run. - client.Self.Jump(false); - if (walkorrun == 0) - { - client.Self.Movement.AlwaysRun = true; - } - else - { - client.Self.Movement.AlwaysRun = false; - } - - // TODO: unused: Vector3 pos = client.Self.SimPosition; - Vector3 newpos = new Vector3(somthing.Next(1, 254), somthing.Next(1, 254), somthing.Next(1, 254)); - client.Self.Movement.TurnToward(newpos); - - client.Self.Movement.AtPos = true; - Thread.Sleep(somthing.Next(3000, 13000)); - client.Self.Movement.AtPos = false; - client.Self.Jump(true); - - string randomf = talkarray[somthing.Next(talkarray.Length)]; - if (talkarray.Length > 1 && randomf.Length > 1) - client.Self.Chat(randomf, 0, ChatType.Normal); - - Thread.Sleep(somthing.Next(1000, 10000)); - } + Behaviours.ForEach(b => b.Action(this)); } /// @@ -145,7 +133,7 @@ namespace pCampBot /// public void readconfig() { - wear = startupConfig.GetString("wear","no"); + wear = startupConfig.GetString("wear", "no"); } /// @@ -156,7 +144,7 @@ namespace pCampBot if (m_actionThread != null) m_actionThread.Abort(); - client.Network.Logout(); + Client.Network.Logout(); } /// @@ -164,50 +152,50 @@ namespace pCampBot /// public void startup() { - client.Settings.LOGIN_SERVER = LoginUri; - client.Settings.ALWAYS_DECODE_OBJECTS = false; - client.Settings.AVATAR_TRACKING = false; - client.Settings.OBJECT_TRACKING = false; - client.Settings.SEND_AGENT_THROTTLE = true; - client.Settings.SEND_PINGS = true; - client.Settings.STORE_LAND_PATCHES = false; - client.Settings.USE_ASSET_CACHE = false; - client.Settings.MULTIPLE_SIMS = true; - client.Throttle.Asset = 100000; - client.Throttle.Land = 100000; - client.Throttle.Task = 100000; - client.Throttle.Texture = 100000; - client.Throttle.Wind = 100000; - client.Throttle.Total = 400000; - client.Network.LoginProgress += this.Network_LoginProgress; - client.Network.SimConnected += this.Network_SimConnected; - client.Network.Disconnected += this.Network_OnDisconnected; - client.Objects.ObjectUpdate += Objects_NewPrim; - - if (client.Network.Login(FirstName, LastName, Password, "pCampBot", "Your name")) + Client.Settings.LOGIN_SERVER = LoginUri; + Client.Settings.ALWAYS_DECODE_OBJECTS = false; + Client.Settings.AVATAR_TRACKING = false; + Client.Settings.OBJECT_TRACKING = false; + Client.Settings.SEND_AGENT_THROTTLE = true; + Client.Settings.SEND_PINGS = true; + Client.Settings.STORE_LAND_PATCHES = false; + Client.Settings.USE_ASSET_CACHE = false; + Client.Settings.MULTIPLE_SIMS = true; + Client.Throttle.Asset = 100000; + Client.Throttle.Land = 100000; + Client.Throttle.Task = 100000; + Client.Throttle.Texture = 100000; + Client.Throttle.Wind = 100000; + Client.Throttle.Total = 400000; + Client.Network.LoginProgress += this.Network_LoginProgress; + Client.Network.SimConnected += this.Network_SimConnected; + Client.Network.Disconnected += this.Network_OnDisconnected; + Client.Objects.ObjectUpdate += Objects_NewPrim; + + if (Client.Network.Login(FirstName, LastName, Password, "pCampBot", "Your name")) { IsConnected = true; - Thread.Sleep(somthing.Next(1000, 10000)); + Thread.Sleep(Random.Next(1000, 10000)); m_actionThread = new Thread(Action); m_actionThread.Start(); // OnConnected(this, EventType.CONNECTED); if (wear == "save") { - client.Appearance.SetPreviousAppearance(); + Client.Appearance.SetPreviousAppearance(); SaveDefaultAppearance(); } else if (wear != "no") { MakeDefaultAppearance(wear); } - client.Self.Jump(true); + Client.Self.Jump(true); } else { MainConsole.Instance.OutputFormat( - "{0} {1} cannot login: {2}", FirstName, LastName, client.Network.LoginMessage); + "{0} {1} cannot login: {2}", FirstName, LastName, Client.Network.LoginMessage); if (OnDisconnected != null) { @@ -227,11 +215,11 @@ namespace pCampBot Array wtypes = Enum.GetValues(typeof(WearableType)); foreach (WearableType wtype in wtypes) { - UUID wearable = client.Appearance.GetWearableAsset(wtype); + UUID wearable = Client.Appearance.GetWearableAsset(wtype); if (wearable != UUID.Zero) { - client.Assets.RequestAsset(wearable, AssetType.Clothing, false, Asset_ReceivedCallback); - client.Assets.RequestAsset(wearable, AssetType.Bodypart, false, Asset_ReceivedCallback); + Client.Assets.RequestAsset(wearable, AssetType.Clothing, false, Asset_ReceivedCallback); + Client.Assets.RequestAsset(wearable, AssetType.Bodypart, false, Asset_ReceivedCallback); } } } @@ -306,11 +294,11 @@ namespace pCampBot UUID assetID = UUID.Random(); AssetClothing asset = new AssetClothing(assetID, File.ReadAllBytes(clothing[i])); asset.Decode(); - asset.Owner = client.Self.AgentID; + asset.Owner = Client.Self.AgentID; asset.WearableType = GetWearableType(clothing[i]); asset.Encode(); - transid = client.Assets.RequestUpload(asset,true); - client.Inventory.RequestCreateItem(clothfolder.UUID, "MyClothing" + i.ToString(), "MyClothing", AssetType.Clothing, + transid = Client.Assets.RequestUpload(asset,true); + Client.Inventory.RequestCreateItem(clothfolder.UUID, "MyClothing" + i.ToString(), "MyClothing", AssetType.Clothing, transid, InventoryType.Wearable, asset.WearableType, PermissionMask.All, delegate(bool success, InventoryItem item) { if (success) @@ -328,11 +316,11 @@ namespace pCampBot UUID assetID = UUID.Random(); AssetBodypart asset = new AssetBodypart(assetID, File.ReadAllBytes(bodyparts[i])); asset.Decode(); - asset.Owner = client.Self.AgentID; + asset.Owner = Client.Self.AgentID; asset.WearableType = GetWearableType(bodyparts[i]); asset.Encode(); - transid = client.Assets.RequestUpload(asset,true); - client.Inventory.RequestCreateItem(clothfolder.UUID, "MyBodyPart" + i.ToString(), "MyBodyPart", AssetType.Bodypart, + transid = Client.Assets.RequestUpload(asset,true); + Client.Inventory.RequestCreateItem(clothfolder.UUID, "MyBodyPart" + i.ToString(), "MyBodyPart", AssetType.Bodypart, transid, InventoryType.Wearable, asset.WearableType, PermissionMask.All, delegate(bool success, InventoryItem item) { if (success) @@ -352,7 +340,7 @@ namespace pCampBot else { MainConsole.Instance.Output(String.Format("Sending {0} wearables...",listwearables.Count)); - client.Appearance.WearOutfit(listwearables, false); + Client.Appearance.WearOutfit(listwearables, false); } } catch (Exception ex) @@ -363,8 +351,8 @@ namespace pCampBot public InventoryFolder FindClothingFolder() { - UUID rootfolder = client.Inventory.Store.RootFolder.UUID; - List listfolders = client.Inventory.Store.GetContents(rootfolder); + UUID rootfolder = Client.Inventory.Store.RootFolder.UUID; + List listfolders = Client.Inventory.Store.GetContents(rootfolder); InventoryFolder clothfolder = new InventoryFolder(UUID.Random()); foreach (InventoryBase folder in listfolders) { @@ -453,10 +441,9 @@ namespace pCampBot return; BotManager.AssetsReceived[textureID] = false; - client.Assets.RequestImage(textureID, ImageType.Normal, Asset_TextureCallback_Texture); + Client.Assets.RequestImage(textureID, ImageType.Normal, Asset_TextureCallback_Texture); } } - public void Asset_TextureCallback_Texture(TextureRequestState state, AssetTexture assetTexture) { @@ -473,20 +460,5 @@ namespace pCampBot // SaveAsset((AssetWearable) asset); // } } - - public string[] readexcuses() - { - string allexcuses = ""; - - string file = Path.Combine(Util.configDir(), "pCampBotSentences.txt"); - if (File.Exists(file)) - { - StreamReader csr = File.OpenText(file); - allexcuses = csr.ReadToEnd(); - csr.Close(); - } - - return allexcuses.Split(Environment.NewLine.ToCharArray()); - } } } diff --git a/OpenSim/Tools/pCampBot/pCampBot.cs b/OpenSim/Tools/pCampBot/pCampBot.cs index a69fbf0..cae96e1 100644 --- a/OpenSim/Tools/pCampBot/pCampBot.cs +++ b/OpenSim/Tools/pCampBot/pCampBot.cs @@ -26,6 +26,8 @@ */ using System; +using System.Reflection; +using log4net; using Nini.Config; using OpenSim.Framework; using OpenSim.Framework.Console; @@ -44,6 +46,8 @@ namespace pCampBot public class pCampBot { + private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); + [STAThread] public static void Main(string[] args) { @@ -60,9 +64,17 @@ namespace pCampBot //startup specified number of bots. 1 is the default bm.dobotStartup(botcount, config); + while (true) { - MainConsole.Instance.Prompt(); + try + { + MainConsole.Instance.Prompt(); + } + catch (Exception e) + { + m_log.ErrorFormat("Command error: {0}", e); + } } } } -- cgit v1.1 From 3ea379e4cd2c96e3a21705c752175e9d25b364b7 Mon Sep 17 00:00:00 2001 From: Justin Clark-Casey (justincc) Date: Thu, 3 Nov 2011 21:25:27 +0000 Subject: Move PhysicsBehaviour into a spearate behaviours folder --- .../Tools/pCampBot/Behaviours/PhysicsBehaviour.cs | 97 ++++++++++++++++++++++ OpenSim/Tools/pCampBot/Interfaces/IBehaviour.cs | 1 - OpenSim/Tools/pCampBot/PhysicsBehaviour.cs | 97 ---------------------- OpenSim/Tools/pCampBot/PhysicsBot.cs | 4 +- 4 files changed, 99 insertions(+), 100 deletions(-) create mode 100644 OpenSim/Tools/pCampBot/Behaviours/PhysicsBehaviour.cs delete mode 100644 OpenSim/Tools/pCampBot/PhysicsBehaviour.cs (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/pCampBot/Behaviours/PhysicsBehaviour.cs b/OpenSim/Tools/pCampBot/Behaviours/PhysicsBehaviour.cs new file mode 100644 index 0000000..e76c0b3 --- /dev/null +++ b/OpenSim/Tools/pCampBot/Behaviours/PhysicsBehaviour.cs @@ -0,0 +1,97 @@ +/* + * Copyright (c) Contributors, http://opensimulator.org/ + * See CONTRIBUTORS.TXT for a full list of copyright holders. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the OpenSimulator Project nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +using System; +using System.IO; +using System.Threading; +using OpenMetaverse; +using OpenSim.Framework; +using pCampBot.Interfaces; + +namespace pCampBot +{ + /// + /// This is a behaviour designed to stress physics by moving and bouncing around bots a whole lot. + /// + /// + /// TODO: talkarray should be in a separate behaviour. + /// + public class PhysicsBehaviour : IBehaviour + { + private string[] talkarray; + + public PhysicsBehaviour() + { + talkarray = readexcuses(); + } + + public void Action(PhysicsBot bot) + { + int walkorrun = bot.Random.Next(4); // Randomize between walking and running. The greater this number, + // the greater the bot's chances to walk instead of run. + bot.Client.Self.Jump(false); + if (walkorrun == 0) + { + bot.Client.Self.Movement.AlwaysRun = true; + } + else + { + bot.Client.Self.Movement.AlwaysRun = false; + } + + // TODO: unused: Vector3 pos = client.Self.SimPosition; + Vector3 newpos = new Vector3(bot.Random.Next(1, 254), bot.Random.Next(1, 254), bot.Random.Next(1, 254)); + bot.Client.Self.Movement.TurnToward(newpos); + + bot.Client.Self.Movement.AtPos = true; + Thread.Sleep(bot.Random.Next(3000, 13000)); + bot.Client.Self.Movement.AtPos = false; + bot.Client.Self.Jump(true); + + string randomf = talkarray[bot.Random.Next(talkarray.Length)]; + if (talkarray.Length > 1 && randomf.Length > 1) + bot.Client.Self.Chat(randomf, 0, ChatType.Normal); + + Thread.Sleep(bot.Random.Next(1000, 10000)); + } + + private string[] readexcuses() + { + string allexcuses = ""; + + string file = Path.Combine(Util.configDir(), "pCampBotSentences.txt"); + if (File.Exists(file)) + { + StreamReader csr = File.OpenText(file); + allexcuses = csr.ReadToEnd(); + csr.Close(); + } + + return allexcuses.Split(Environment.NewLine.ToCharArray()); + } + } +} \ No newline at end of file diff --git a/OpenSim/Tools/pCampBot/Interfaces/IBehaviour.cs b/OpenSim/Tools/pCampBot/Interfaces/IBehaviour.cs index f9eaa1c..8a1015d 100644 --- a/OpenSim/Tools/pCampBot/Interfaces/IBehaviour.cs +++ b/OpenSim/Tools/pCampBot/Interfaces/IBehaviour.cs @@ -25,7 +25,6 @@ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -using pCampBot; using System; namespace pCampBot.Interfaces diff --git a/OpenSim/Tools/pCampBot/PhysicsBehaviour.cs b/OpenSim/Tools/pCampBot/PhysicsBehaviour.cs deleted file mode 100644 index e76c0b3..0000000 --- a/OpenSim/Tools/pCampBot/PhysicsBehaviour.cs +++ /dev/null @@ -1,97 +0,0 @@ -/* - * Copyright (c) Contributors, http://opensimulator.org/ - * See CONTRIBUTORS.TXT for a full list of copyright holders. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * * Neither the name of the OpenSimulator Project nor the - * names of its contributors may be used to endorse or promote products - * derived from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -using System; -using System.IO; -using System.Threading; -using OpenMetaverse; -using OpenSim.Framework; -using pCampBot.Interfaces; - -namespace pCampBot -{ - /// - /// This is a behaviour designed to stress physics by moving and bouncing around bots a whole lot. - /// - /// - /// TODO: talkarray should be in a separate behaviour. - /// - public class PhysicsBehaviour : IBehaviour - { - private string[] talkarray; - - public PhysicsBehaviour() - { - talkarray = readexcuses(); - } - - public void Action(PhysicsBot bot) - { - int walkorrun = bot.Random.Next(4); // Randomize between walking and running. The greater this number, - // the greater the bot's chances to walk instead of run. - bot.Client.Self.Jump(false); - if (walkorrun == 0) - { - bot.Client.Self.Movement.AlwaysRun = true; - } - else - { - bot.Client.Self.Movement.AlwaysRun = false; - } - - // TODO: unused: Vector3 pos = client.Self.SimPosition; - Vector3 newpos = new Vector3(bot.Random.Next(1, 254), bot.Random.Next(1, 254), bot.Random.Next(1, 254)); - bot.Client.Self.Movement.TurnToward(newpos); - - bot.Client.Self.Movement.AtPos = true; - Thread.Sleep(bot.Random.Next(3000, 13000)); - bot.Client.Self.Movement.AtPos = false; - bot.Client.Self.Jump(true); - - string randomf = talkarray[bot.Random.Next(talkarray.Length)]; - if (talkarray.Length > 1 && randomf.Length > 1) - bot.Client.Self.Chat(randomf, 0, ChatType.Normal); - - Thread.Sleep(bot.Random.Next(1000, 10000)); - } - - private string[] readexcuses() - { - string allexcuses = ""; - - string file = Path.Combine(Util.configDir(), "pCampBotSentences.txt"); - if (File.Exists(file)) - { - StreamReader csr = File.OpenText(file); - allexcuses = csr.ReadToEnd(); - csr.Close(); - } - - return allexcuses.Split(Environment.NewLine.ToCharArray()); - } - } -} \ No newline at end of file diff --git a/OpenSim/Tools/pCampBot/PhysicsBot.cs b/OpenSim/Tools/pCampBot/PhysicsBot.cs index c1bd49f..05a510a 100644 --- a/OpenSim/Tools/pCampBot/PhysicsBot.cs +++ b/OpenSim/Tools/pCampBot/PhysicsBot.cs @@ -36,9 +36,9 @@ using log4net; using OpenMetaverse; using OpenMetaverse.Assets; using Nini.Config; -using pCampBot.Interfaces; using OpenSim.Framework; using OpenSim.Framework.Console; +using pCampBot.Interfaces; using Timer = System.Timers.Timer; namespace pCampBot @@ -105,7 +105,7 @@ namespace pCampBot string firstName, string lastName, string password, string loginUri) { Client = new GridClient(); - + Random = new Random(Environment.TickCount);// We do stuff randomly here FirstName = firstName; LastName = lastName; -- cgit v1.1 From 5a67940acc17c80c419781fddc9efa0c18ce1f15 Mon Sep 17 00:00:00 2001 From: Justin Clark-Casey (justincc) Date: Thu, 3 Nov 2011 22:31:31 +0000 Subject: Add click/grab behaviour to pCampbot, which gets bots to randomly click things. This can be specified on pCampbot.exe by using g in the list of behaviours for the new -behaviours,-b switch e.g. -b p,g to get both existing physics and grabbing behaviours. grabbing is primitive, it attempts grabs on random prims whether they're actually signalled as clickable or not. behaviour is currently primitive overall, behaviours are just executed in a list --- .../Tools/pCampBot/Behaviours/GrabbingBehaviour.cs | 56 ++++++++++++++++++++++ .../Tools/pCampBot/Behaviours/PhysicsBehaviour.cs | 2 +- OpenSim/Tools/pCampBot/BotManager.cs | 16 +++++-- OpenSim/Tools/pCampBot/PhysicsBot.cs | 31 +++++++++++- OpenSim/Tools/pCampBot/pCampBot.cs | 8 ++-- 5 files changed, 105 insertions(+), 8 deletions(-) create mode 100644 OpenSim/Tools/pCampBot/Behaviours/GrabbingBehaviour.cs (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/pCampBot/Behaviours/GrabbingBehaviour.cs b/OpenSim/Tools/pCampBot/Behaviours/GrabbingBehaviour.cs new file mode 100644 index 0000000..00313b8 --- /dev/null +++ b/OpenSim/Tools/pCampBot/Behaviours/GrabbingBehaviour.cs @@ -0,0 +1,56 @@ +/* + * Copyright (c) Contributors, http://opensimulator.org/ + * See CONTRIBUTORS.TXT for a full list of copyright holders. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the OpenSimulator Project nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +using OpenMetaverse; +using System; +using System.Collections.Generic; +using System.Linq; +using pCampBot.Interfaces; + +namespace pCampBot +{ + /// + /// Click (grab) on random objects in the scene. + /// + /// + /// The viewer itself does not give the option of grabbing objects that haven't been signalled as grabbable. + /// + public class GrabbingBehaviour : IBehaviour + { + public void Action(PhysicsBot bot) + { + Dictionary objects = bot.Objects; + + Primitive prim = objects.ElementAt(bot.Random.Next(0, objects.Count)).Value; + + // This appears to be a typical message sent when a viewer user clicks a clickable object + bot.Client.Self.Grab(prim.LocalID); + bot.Client.Self.GrabUpdate(prim.ID, Vector3.Zero); + bot.Client.Self.DeGrab(prim.LocalID); + } + } +} \ No newline at end of file diff --git a/OpenSim/Tools/pCampBot/Behaviours/PhysicsBehaviour.cs b/OpenSim/Tools/pCampBot/Behaviours/PhysicsBehaviour.cs index e76c0b3..bd4a7a2 100644 --- a/OpenSim/Tools/pCampBot/Behaviours/PhysicsBehaviour.cs +++ b/OpenSim/Tools/pCampBot/Behaviours/PhysicsBehaviour.cs @@ -35,7 +35,7 @@ using pCampBot.Interfaces; namespace pCampBot { /// - /// This is a behaviour designed to stress physics by moving and bouncing around bots a whole lot. + /// Stress physics by moving and bouncing around bots a whole lot. /// /// /// TODO: talkarray should be in a separate behaviour. diff --git a/OpenSim/Tools/pCampBot/BotManager.cs b/OpenSim/Tools/pCampBot/BotManager.cs index 0505c97..dac6e0e 100644 --- a/OpenSim/Tools/pCampBot/BotManager.cs +++ b/OpenSim/Tools/pCampBot/BotManager.cs @@ -120,13 +120,23 @@ namespace pCampBot string password = cs.GetString("password"); string loginUri = cs.GetString("loginuri"); - // Hardcoded for new - List behaviours = new List(); - behaviours.Add(new PhysicsBehaviour()); + HashSet behaviourSwitches = new HashSet(); + Array.ForEach( + cs.GetString("behaviours", "p").Split(new char[] { ',' }), b => behaviourSwitches.Add(b)); for (int i = 0; i < botcount; i++) { string lastName = string.Format("{0}_{1}", lastNameStem, i); + + List behaviours = new List(); + + // Hard-coded for now + if (behaviourSwitches.Contains("p")) + behaviours.Add(new PhysicsBehaviour()); + + if (behaviourSwitches.Contains("g")) + behaviours.Add(new GrabbingBehaviour()); + startupBot(i, this, behaviours, firstName, lastName, password, loginUri); } } diff --git a/OpenSim/Tools/pCampBot/PhysicsBot.cs b/OpenSim/Tools/pCampBot/PhysicsBot.cs index 05a510a..6e40ca7 100644 --- a/OpenSim/Tools/pCampBot/PhysicsBot.cs +++ b/OpenSim/Tools/pCampBot/PhysicsBot.cs @@ -55,9 +55,28 @@ namespace pCampBot /// /// Behaviours implemented by this bot. /// + /// + /// Lock this list before manipulating it. + /// public List Behaviours { get; private set; } /// + /// Objects that the bot has discovered. + /// + /// + /// Returns a list copy. Inserting new objects manually will have no effect. + /// + public Dictionary Objects + { + get + { + lock (m_objects) + return new Dictionary(m_objects); + } + } + private Dictionary m_objects = new Dictionary(); + + /// /// Is this bot connected to the grid? /// public bool IsConnected { get; private set; } @@ -125,7 +144,14 @@ namespace pCampBot private void Action() { while (true) - Behaviours.ForEach(b => b.Action(this)); + lock (Behaviours) + Behaviours.ForEach( + b => + { + // m_log.DebugFormat("[pCAMPBOT]: For {0} performing action {1}", Name, b.GetType()); + b.Action(this); + } + ); } /// @@ -407,6 +433,9 @@ namespace pCampBot if (prim != null) { + lock (m_objects) + m_objects[prim.ID] = prim; + if (prim.Textures != null) { if (prim.Textures.DefaultTexture.TextureID != UUID.Zero) diff --git a/OpenSim/Tools/pCampBot/pCampBot.cs b/OpenSim/Tools/pCampBot/pCampBot.cs index cae96e1..4d3b06d 100644 --- a/OpenSim/Tools/pCampBot/pCampBot.cs +++ b/OpenSim/Tools/pCampBot/pCampBot.cs @@ -84,12 +84,13 @@ namespace pCampBot //Set up our nifty config.. thanks to nini ArgvConfigSource cs = new ArgvConfigSource(args); - cs.AddSwitch("Startup", "botcount","n"); - cs.AddSwitch("Startup", "loginuri","l"); + cs.AddSwitch("Startup", "botcount", "n"); + cs.AddSwitch("Startup", "loginuri", "l"); cs.AddSwitch("Startup", "firstname"); cs.AddSwitch("Startup", "lastname"); cs.AddSwitch("Startup", "password"); - cs.AddSwitch("Startup", "help","h"); + cs.AddSwitch("Startup", "behaviours", "b"); + cs.AddSwitch("Startup", "help", "h"); cs.AddSwitch("Startup", "wear"); IConfig ol = cs.Configs["Startup"]; @@ -110,6 +111,7 @@ namespace pCampBot " -firstname first name for the bots\n" + " -lastname lastname for the bots. Each lastname will have _ appended, e.g. Ima Bot_0\n" + " -password password for the bots\n" + + " -b, behaviours behaviours for bots. Current options p (physics), g (grab). Comma separated, e.g. p,g. Default is p", " -wear set appearance folder to load from (default: no)\n" + " -h, -help show this message" ); -- cgit v1.1 From ca2c25ece2d9a65b0cb5292ee52f10776c7f71c3 Mon Sep 17 00:00:00 2001 From: Justin Clark-Casey (justincc) Date: Thu, 3 Nov 2011 22:35:21 +0000 Subject: Move one of the old physics sleeps out into the main bot loop, so leaving out PhysicsBehaviour doesn't result in continuous other behaviours --- OpenSim/Tools/pCampBot/PhysicsBot.cs | 2 ++ 1 file changed, 2 insertions(+) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/pCampBot/PhysicsBot.cs b/OpenSim/Tools/pCampBot/PhysicsBot.cs index 6e40ca7..1b7c9a7 100644 --- a/OpenSim/Tools/pCampBot/PhysicsBot.cs +++ b/OpenSim/Tools/pCampBot/PhysicsBot.cs @@ -150,6 +150,8 @@ namespace pCampBot { // m_log.DebugFormat("[pCAMPBOT]: For {0} performing action {1}", Name, b.GetType()); b.Action(this); + + Thread.Sleep(Random.Next(1000, 10000)); } ); } -- cgit v1.1 From f26fdbd8da89ee35a23886defc13b44bc63b1349 Mon Sep 17 00:00:00 2001 From: Justin Clark-Casey (justincc) Date: Thu, 3 Nov 2011 22:39:06 +0000 Subject: Rename PhysicsBot => Bot since it doesn't just exercise physics anymore --- .../Tools/pCampBot/Behaviours/GrabbingBehaviour.cs | 2 +- .../Tools/pCampBot/Behaviours/PhysicsBehaviour.cs | 2 +- OpenSim/Tools/pCampBot/Bot.cs | 495 +++++++++++++++++++++ OpenSim/Tools/pCampBot/BotManager.cs | 12 +- OpenSim/Tools/pCampBot/Interfaces/IBehaviour.cs | 2 +- OpenSim/Tools/pCampBot/PhysicsBot.cs | 495 --------------------- 6 files changed, 504 insertions(+), 504 deletions(-) create mode 100644 OpenSim/Tools/pCampBot/Bot.cs delete mode 100644 OpenSim/Tools/pCampBot/PhysicsBot.cs (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/pCampBot/Behaviours/GrabbingBehaviour.cs b/OpenSim/Tools/pCampBot/Behaviours/GrabbingBehaviour.cs index 00313b8..7084ab4 100644 --- a/OpenSim/Tools/pCampBot/Behaviours/GrabbingBehaviour.cs +++ b/OpenSim/Tools/pCampBot/Behaviours/GrabbingBehaviour.cs @@ -41,7 +41,7 @@ namespace pCampBot /// public class GrabbingBehaviour : IBehaviour { - public void Action(PhysicsBot bot) + public void Action(Bot bot) { Dictionary objects = bot.Objects; diff --git a/OpenSim/Tools/pCampBot/Behaviours/PhysicsBehaviour.cs b/OpenSim/Tools/pCampBot/Behaviours/PhysicsBehaviour.cs index bd4a7a2..8d1d1ce 100644 --- a/OpenSim/Tools/pCampBot/Behaviours/PhysicsBehaviour.cs +++ b/OpenSim/Tools/pCampBot/Behaviours/PhysicsBehaviour.cs @@ -49,7 +49,7 @@ namespace pCampBot talkarray = readexcuses(); } - public void Action(PhysicsBot bot) + public void Action(Bot bot) { int walkorrun = bot.Random.Next(4); // Randomize between walking and running. The greater this number, // the greater the bot's chances to walk instead of run. diff --git a/OpenSim/Tools/pCampBot/Bot.cs b/OpenSim/Tools/pCampBot/Bot.cs new file mode 100644 index 0000000..bf01065 --- /dev/null +++ b/OpenSim/Tools/pCampBot/Bot.cs @@ -0,0 +1,495 @@ +/* + * Copyright (c) Contributors, http://opensimulator.org/ + * See CONTRIBUTORS.TXT for a full list of copyright holders. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the OpenSimulator Project nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +using System; +using System.Collections.Generic; +using System.Text; +using System.IO; +using System.Reflection; +using System.Threading; +using System.Timers; +using log4net; +using OpenMetaverse; +using OpenMetaverse.Assets; +using Nini.Config; +using OpenSim.Framework; +using OpenSim.Framework.Console; +using pCampBot.Interfaces; +using Timer = System.Timers.Timer; + +namespace pCampBot +{ + public class Bot + { + private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); + + public delegate void AnEvent(Bot callbot, EventType someevent); // event delegate for bot events + + public BotManager BotManager { get; private set; } + private IConfig startupConfig; // bot config, passed from BotManager + + /// + /// Behaviours implemented by this bot. + /// + /// + /// Lock this list before manipulating it. + /// + public List Behaviours { get; private set; } + + /// + /// Objects that the bot has discovered. + /// + /// + /// Returns a list copy. Inserting new objects manually will have no effect. + /// + public Dictionary Objects + { + get + { + lock (m_objects) + return new Dictionary(m_objects); + } + } + private Dictionary m_objects = new Dictionary(); + + /// + /// 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; } + public string Password { get; private set; } + public string LoginUri { get; private set; } + public string saveDir; + public string wear; + + public event AnEvent OnConnected; + public event AnEvent OnDisconnected; + + /// + /// Keep a track of the continuously acting thread so that we can abort it. + /// + private Thread m_actionThread; + + protected List objectIDs = new List(); + + /// + /// Random number generator. + /// + public Random Random { get; private set; } + + /// + /// New instance of a SecondLife client + /// + public GridClient Client { get; private set; } + + /// + /// Constructor + /// + /// + /// Behaviours for this bot to perform + /// + /// + /// + /// + /// + public Bot( + BotManager bm, List behaviours, + string firstName, string lastName, string password, string loginUri) + { + Client = new GridClient(); + + Random = new Random(Environment.TickCount);// We do stuff randomly here + FirstName = firstName; + LastName = lastName; + Name = string.Format("{0} {1}", FirstName, LastName); + Password = password; + LoginUri = loginUri; + + BotManager = bm; + startupConfig = bm.Config; + readconfig(); + + Behaviours = behaviours; + } + + //We do our actions here. This is where one would + //add additional steps and/or things the bot should do + private void Action() + { + while (true) + lock (Behaviours) + Behaviours.ForEach( + b => + { + // m_log.DebugFormat("[pCAMPBOT]: For {0} performing action {1}", Name, b.GetType()); + b.Action(this); + + Thread.Sleep(Random.Next(1000, 10000)); + } + ); + } + + /// + /// Read the Nini config and initialize + /// + public void readconfig() + { + wear = startupConfig.GetString("wear", "no"); + } + + /// + /// Tells LibSecondLife to logout and disconnect. Raises the disconnect events once it finishes. + /// + public void shutdown() + { + if (m_actionThread != null) + m_actionThread.Abort(); + + Client.Network.Logout(); + } + + /// + /// This is the bot startup loop. + /// + public void startup() + { + Client.Settings.LOGIN_SERVER = LoginUri; + Client.Settings.ALWAYS_DECODE_OBJECTS = false; + Client.Settings.AVATAR_TRACKING = false; + Client.Settings.OBJECT_TRACKING = false; + Client.Settings.SEND_AGENT_THROTTLE = true; + Client.Settings.SEND_PINGS = true; + Client.Settings.STORE_LAND_PATCHES = false; + Client.Settings.USE_ASSET_CACHE = false; + Client.Settings.MULTIPLE_SIMS = true; + Client.Throttle.Asset = 100000; + Client.Throttle.Land = 100000; + Client.Throttle.Task = 100000; + Client.Throttle.Texture = 100000; + Client.Throttle.Wind = 100000; + Client.Throttle.Total = 400000; + Client.Network.LoginProgress += this.Network_LoginProgress; + Client.Network.SimConnected += this.Network_SimConnected; + Client.Network.Disconnected += this.Network_OnDisconnected; + Client.Objects.ObjectUpdate += Objects_NewPrim; + + if (Client.Network.Login(FirstName, LastName, Password, "pCampBot", "Your name")) + { + IsConnected = true; + + Thread.Sleep(Random.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); + } + else + { + MainConsole.Instance.OutputFormat( + "{0} {1} cannot login: {2}", FirstName, LastName, Client.Network.LoginMessage); + + if (OnDisconnected != null) + { + OnDisconnected(this, EventType.DISCONNECTED); + } + } + } + + public void SaveDefaultAppearance() + { + saveDir = "MyAppearance/" + FirstName + "_" + LastName; + if (!Directory.Exists(saveDir)) + { + Directory.CreateDirectory(saveDir); + } + + Array wtypes = Enum.GetValues(typeof(WearableType)); + foreach (WearableType wtype in wtypes) + { + UUID wearable = Client.Appearance.GetWearableAsset(wtype); + if (wearable != UUID.Zero) + { + Client.Assets.RequestAsset(wearable, AssetType.Clothing, false, Asset_ReceivedCallback); + Client.Assets.RequestAsset(wearable, AssetType.Bodypart, false, Asset_ReceivedCallback); + } + } + } + + public void SaveAsset(AssetWearable asset) + { + if (asset != null) + { + try + { + if (asset.Decode()) + { + File.WriteAllBytes(Path.Combine(saveDir, String.Format("{1}.{0}", + asset.AssetType.ToString().ToLower(), + asset.WearableType)), asset.AssetData); + } + else + { + MainConsole.Instance.Output(String.Format("Failed to decode {0} asset {1}", asset.AssetType, asset.AssetID)); + } + } + catch (Exception e) + { + MainConsole.Instance.Output(String.Format("Exception: {0}",e.ToString())); + } + } + } + + public WearableType GetWearableType(string path) + { + string type = ((((path.Split('/'))[2]).Split('.'))[0]).Trim(); + switch (type) + { + case "Eyes": + return WearableType.Eyes; + case "Hair": + return WearableType.Hair; + case "Pants": + return WearableType.Pants; + case "Shape": + return WearableType.Shape; + case "Shirt": + return WearableType.Shirt; + case "Skin": + return WearableType.Skin; + default: + return WearableType.Shape; + } + } + + public void MakeDefaultAppearance(string wear) + { + try + { + if (wear == "yes") + { + //TODO: Implement random outfit picking + MainConsole.Instance.Output("Picks a random outfit. Not yet implemented."); + } + else if (wear != "save") + saveDir = "MyAppearance/" + wear; + saveDir = saveDir + "/"; + + string[] clothing = Directory.GetFiles(saveDir, "*.clothing", SearchOption.TopDirectoryOnly); + string[] bodyparts = Directory.GetFiles(saveDir, "*.bodypart", SearchOption.TopDirectoryOnly); + InventoryFolder clothfolder = FindClothingFolder(); + UUID transid = UUID.Random(); + List listwearables = new List(); + + for (int i = 0; i < clothing.Length; i++) + { + UUID assetID = UUID.Random(); + AssetClothing asset = new AssetClothing(assetID, File.ReadAllBytes(clothing[i])); + asset.Decode(); + asset.Owner = Client.Self.AgentID; + asset.WearableType = GetWearableType(clothing[i]); + asset.Encode(); + transid = Client.Assets.RequestUpload(asset,true); + Client.Inventory.RequestCreateItem(clothfolder.UUID, "MyClothing" + i.ToString(), "MyClothing", AssetType.Clothing, + transid, InventoryType.Wearable, asset.WearableType, PermissionMask.All, delegate(bool success, InventoryItem item) + { + if (success) + { + listwearables.Add(item); + } + else + MainConsole.Instance.Output(String.Format("Failed to create item {0}",item.Name)); + } + ); + } + + for (int i = 0; i < bodyparts.Length; i++) + { + UUID assetID = UUID.Random(); + AssetBodypart asset = new AssetBodypart(assetID, File.ReadAllBytes(bodyparts[i])); + asset.Decode(); + asset.Owner = Client.Self.AgentID; + asset.WearableType = GetWearableType(bodyparts[i]); + asset.Encode(); + transid = Client.Assets.RequestUpload(asset,true); + Client.Inventory.RequestCreateItem(clothfolder.UUID, "MyBodyPart" + i.ToString(), "MyBodyPart", AssetType.Bodypart, + transid, InventoryType.Wearable, asset.WearableType, PermissionMask.All, delegate(bool success, InventoryItem item) + { + if (success) + { + listwearables.Add(item); + } + else + MainConsole.Instance.Output(String.Format("Failed to create item {0}",item.Name)); + } + ); + } + + Thread.Sleep(1000); + + if (listwearables == null || listwearables.Count == 0) + MainConsole.Instance.Output("Nothing to send on this folder!"); + else + { + MainConsole.Instance.Output(String.Format("Sending {0} wearables...",listwearables.Count)); + Client.Appearance.WearOutfit(listwearables, false); + } + } + catch (Exception ex) + { + Console.WriteLine(ex.ToString()); + } + } + + public InventoryFolder FindClothingFolder() + { + UUID rootfolder = Client.Inventory.Store.RootFolder.UUID; + List listfolders = Client.Inventory.Store.GetContents(rootfolder); + InventoryFolder clothfolder = new InventoryFolder(UUID.Random()); + foreach (InventoryBase folder in listfolders) + { + if (folder.Name == "Clothing") + { + clothfolder = (InventoryFolder)folder; + break; + } + } + return clothfolder; + } + + public void Network_LoginProgress(object sender, LoginProgressEventArgs args) + { + if (args.Status == LoginStatus.Success) + { + if (OnConnected != null) + { + OnConnected(this, EventType.CONNECTED); + } + } + } + + public void Network_SimConnected(object sender, SimConnectedEventArgs args) + { + } + + public void Network_OnDisconnected(object sender, DisconnectedEventArgs args) + { +// m_log.ErrorFormat("Fired Network_OnDisconnected"); + +// if ( +// (args.Reason == NetworkManager.DisconnectType.SimShutdown +// || args.Reason == NetworkManager.DisconnectType.NetworkTimeout) +// && OnDisconnected != null) + + if ( + (args.Reason == NetworkManager.DisconnectType.ClientInitiated + || args.Reason == NetworkManager.DisconnectType.ServerInitiated + || args.Reason == NetworkManager.DisconnectType.NetworkTimeout) + && OnDisconnected != null) +// if (OnDisconnected != null) + { + IsConnected = false; + OnDisconnected(this, EventType.DISCONNECTED); + } + } + + public void Objects_NewPrim(object sender, PrimEventArgs args) + { + Primitive prim = args.Prim; + + if (prim != null) + { + lock (m_objects) + m_objects[prim.ID] = prim; + + if (prim.Textures != null) + { + if (prim.Textures.DefaultTexture.TextureID != UUID.Zero) + { + GetTexture(prim.Textures.DefaultTexture.TextureID); + } + + for (int i = 0; i < prim.Textures.FaceTextures.Length; i++) + { + UUID textureID = prim.Textures.FaceTextures[i].TextureID; + + if (textureID != null && textureID != UUID.Zero) + { + GetTexture(textureID); + } + } + } + + if (prim.Sculpt.SculptTexture != UUID.Zero) + { + GetTexture(prim.Sculpt.SculptTexture); + } + } + } + + private void GetTexture(UUID textureID) + { + lock (BotManager.AssetsReceived) + { + // Don't request assets more than once. + if (BotManager.AssetsReceived.ContainsKey(textureID)) + return; + + BotManager.AssetsReceived[textureID] = false; + Client.Assets.RequestImage(textureID, ImageType.Normal, Asset_TextureCallback_Texture); + } + } + + public void Asset_TextureCallback_Texture(TextureRequestState state, AssetTexture assetTexture) + { + //TODO: Implement texture saving and applying + } + + public void Asset_ReceivedCallback(AssetDownload transfer, Asset asset) + { + lock (BotManager.AssetsReceived) + BotManager.AssetsReceived[asset.AssetID] = true; + +// if (wear == "save") +// { +// SaveAsset((AssetWearable) asset); +// } + } + } +} diff --git a/OpenSim/Tools/pCampBot/BotManager.cs b/OpenSim/Tools/pCampBot/BotManager.cs index dac6e0e..704770a 100644 --- a/OpenSim/Tools/pCampBot/BotManager.cs +++ b/OpenSim/Tools/pCampBot/BotManager.cs @@ -49,7 +49,7 @@ namespace pCampBot private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); protected CommandConsole m_console; - protected List m_lBot; + protected List m_lBot; protected Random somthing = new Random(Environment.TickCount); protected int numbots = 0; public IConfig Config { get; private set; } @@ -103,7 +103,7 @@ namespace pCampBot // "add bots ", // "Add more bots", HandleAddBots); - m_lBot = new List(); + m_lBot = new List(); } /// @@ -175,7 +175,7 @@ namespace pCampBot int pos, BotManager bm, List behaviours, string firstName, string lastName, string password, string loginUri) { - PhysicsBot pb = new PhysicsBot(bm, behaviours, firstName, lastName, password, loginUri); + Bot pb = new Bot(bm, behaviours, firstName, lastName, password, loginUri); pb.OnConnected += handlebotEvent; pb.OnDisconnected += handlebotEvent; @@ -194,7 +194,7 @@ namespace pCampBot /// /// /// - private void handlebotEvent(PhysicsBot callbot, EventType eventt) + private void handlebotEvent(Bot callbot, EventType eventt) { switch (eventt) { @@ -219,7 +219,7 @@ namespace pCampBot public void doBotShutdown() { lock (m_lBot) - foreach (PhysicsBot pb in m_lBot) + foreach (Bot pb in m_lBot) pb.shutdown(); } @@ -245,7 +245,7 @@ namespace pCampBot lock (m_lBot) { - foreach (PhysicsBot pb in m_lBot) + foreach (Bot pb in m_lBot) { MainConsole.Instance.OutputFormat( outputFormat, pb.Name, (pb.IsConnected ? "Connected" : "Disconnected")); diff --git a/OpenSim/Tools/pCampBot/Interfaces/IBehaviour.cs b/OpenSim/Tools/pCampBot/Interfaces/IBehaviour.cs index 8a1015d..d4ae0f0 100644 --- a/OpenSim/Tools/pCampBot/Interfaces/IBehaviour.cs +++ b/OpenSim/Tools/pCampBot/Interfaces/IBehaviour.cs @@ -31,6 +31,6 @@ namespace pCampBot.Interfaces { public interface IBehaviour { - void Action(PhysicsBot bot); + void Action(Bot bot); } } \ No newline at end of file diff --git a/OpenSim/Tools/pCampBot/PhysicsBot.cs b/OpenSim/Tools/pCampBot/PhysicsBot.cs deleted file mode 100644 index 1b7c9a7..0000000 --- a/OpenSim/Tools/pCampBot/PhysicsBot.cs +++ /dev/null @@ -1,495 +0,0 @@ -/* - * Copyright (c) Contributors, http://opensimulator.org/ - * See CONTRIBUTORS.TXT for a full list of copyright holders. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * * Neither the name of the OpenSimulator Project nor the - * names of its contributors may be used to endorse or promote products - * derived from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -using System; -using System.Collections.Generic; -using System.Text; -using System.IO; -using System.Reflection; -using System.Threading; -using System.Timers; -using log4net; -using OpenMetaverse; -using OpenMetaverse.Assets; -using Nini.Config; -using OpenSim.Framework; -using OpenSim.Framework.Console; -using pCampBot.Interfaces; -using Timer = System.Timers.Timer; - -namespace pCampBot -{ - public class PhysicsBot - { - private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); - - public delegate void AnEvent(PhysicsBot callbot, EventType someevent); // event delegate for bot events - - public BotManager BotManager { get; private set; } - private IConfig startupConfig; // bot config, passed from BotManager - - /// - /// Behaviours implemented by this bot. - /// - /// - /// Lock this list before manipulating it. - /// - public List Behaviours { get; private set; } - - /// - /// Objects that the bot has discovered. - /// - /// - /// Returns a list copy. Inserting new objects manually will have no effect. - /// - public Dictionary Objects - { - get - { - lock (m_objects) - return new Dictionary(m_objects); - } - } - private Dictionary m_objects = new Dictionary(); - - /// - /// 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; } - public string Password { get; private set; } - public string LoginUri { get; private set; } - public string saveDir; - public string wear; - - public event AnEvent OnConnected; - public event AnEvent OnDisconnected; - - /// - /// Keep a track of the continuously acting thread so that we can abort it. - /// - private Thread m_actionThread; - - protected List objectIDs = new List(); - - /// - /// Random number generator. - /// - public Random Random { get; private set; } - - /// - /// New instance of a SecondLife client - /// - public GridClient Client { get; private set; } - - /// - /// Constructor - /// - /// - /// Behaviours for this bot to perform - /// - /// - /// - /// - /// - public PhysicsBot( - BotManager bm, List behaviours, - string firstName, string lastName, string password, string loginUri) - { - Client = new GridClient(); - - Random = new Random(Environment.TickCount);// We do stuff randomly here - FirstName = firstName; - LastName = lastName; - Name = string.Format("{0} {1}", FirstName, LastName); - Password = password; - LoginUri = loginUri; - - BotManager = bm; - startupConfig = bm.Config; - readconfig(); - - Behaviours = behaviours; - } - - //We do our actions here. This is where one would - //add additional steps and/or things the bot should do - private void Action() - { - while (true) - lock (Behaviours) - Behaviours.ForEach( - b => - { - // m_log.DebugFormat("[pCAMPBOT]: For {0} performing action {1}", Name, b.GetType()); - b.Action(this); - - Thread.Sleep(Random.Next(1000, 10000)); - } - ); - } - - /// - /// Read the Nini config and initialize - /// - public void readconfig() - { - wear = startupConfig.GetString("wear", "no"); - } - - /// - /// Tells LibSecondLife to logout and disconnect. Raises the disconnect events once it finishes. - /// - public void shutdown() - { - if (m_actionThread != null) - m_actionThread.Abort(); - - Client.Network.Logout(); - } - - /// - /// This is the bot startup loop. - /// - public void startup() - { - Client.Settings.LOGIN_SERVER = LoginUri; - Client.Settings.ALWAYS_DECODE_OBJECTS = false; - Client.Settings.AVATAR_TRACKING = false; - Client.Settings.OBJECT_TRACKING = false; - Client.Settings.SEND_AGENT_THROTTLE = true; - Client.Settings.SEND_PINGS = true; - Client.Settings.STORE_LAND_PATCHES = false; - Client.Settings.USE_ASSET_CACHE = false; - Client.Settings.MULTIPLE_SIMS = true; - Client.Throttle.Asset = 100000; - Client.Throttle.Land = 100000; - Client.Throttle.Task = 100000; - Client.Throttle.Texture = 100000; - Client.Throttle.Wind = 100000; - Client.Throttle.Total = 400000; - Client.Network.LoginProgress += this.Network_LoginProgress; - Client.Network.SimConnected += this.Network_SimConnected; - Client.Network.Disconnected += this.Network_OnDisconnected; - Client.Objects.ObjectUpdate += Objects_NewPrim; - - if (Client.Network.Login(FirstName, LastName, Password, "pCampBot", "Your name")) - { - IsConnected = true; - - Thread.Sleep(Random.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); - } - else - { - MainConsole.Instance.OutputFormat( - "{0} {1} cannot login: {2}", FirstName, LastName, Client.Network.LoginMessage); - - if (OnDisconnected != null) - { - OnDisconnected(this, EventType.DISCONNECTED); - } - } - } - - public void SaveDefaultAppearance() - { - saveDir = "MyAppearance/" + FirstName + "_" + LastName; - if (!Directory.Exists(saveDir)) - { - Directory.CreateDirectory(saveDir); - } - - Array wtypes = Enum.GetValues(typeof(WearableType)); - foreach (WearableType wtype in wtypes) - { - UUID wearable = Client.Appearance.GetWearableAsset(wtype); - if (wearable != UUID.Zero) - { - Client.Assets.RequestAsset(wearable, AssetType.Clothing, false, Asset_ReceivedCallback); - Client.Assets.RequestAsset(wearable, AssetType.Bodypart, false, Asset_ReceivedCallback); - } - } - } - - public void SaveAsset(AssetWearable asset) - { - if (asset != null) - { - try - { - if (asset.Decode()) - { - File.WriteAllBytes(Path.Combine(saveDir, String.Format("{1}.{0}", - asset.AssetType.ToString().ToLower(), - asset.WearableType)), asset.AssetData); - } - else - { - MainConsole.Instance.Output(String.Format("Failed to decode {0} asset {1}", asset.AssetType, asset.AssetID)); - } - } - catch (Exception e) - { - MainConsole.Instance.Output(String.Format("Exception: {0}",e.ToString())); - } - } - } - - public WearableType GetWearableType(string path) - { - string type = ((((path.Split('/'))[2]).Split('.'))[0]).Trim(); - switch (type) - { - case "Eyes": - return WearableType.Eyes; - case "Hair": - return WearableType.Hair; - case "Pants": - return WearableType.Pants; - case "Shape": - return WearableType.Shape; - case "Shirt": - return WearableType.Shirt; - case "Skin": - return WearableType.Skin; - default: - return WearableType.Shape; - } - } - - public void MakeDefaultAppearance(string wear) - { - try - { - if (wear == "yes") - { - //TODO: Implement random outfit picking - MainConsole.Instance.Output("Picks a random outfit. Not yet implemented."); - } - else if (wear != "save") - saveDir = "MyAppearance/" + wear; - saveDir = saveDir + "/"; - - string[] clothing = Directory.GetFiles(saveDir, "*.clothing", SearchOption.TopDirectoryOnly); - string[] bodyparts = Directory.GetFiles(saveDir, "*.bodypart", SearchOption.TopDirectoryOnly); - InventoryFolder clothfolder = FindClothingFolder(); - UUID transid = UUID.Random(); - List listwearables = new List(); - - for (int i = 0; i < clothing.Length; i++) - { - UUID assetID = UUID.Random(); - AssetClothing asset = new AssetClothing(assetID, File.ReadAllBytes(clothing[i])); - asset.Decode(); - asset.Owner = Client.Self.AgentID; - asset.WearableType = GetWearableType(clothing[i]); - asset.Encode(); - transid = Client.Assets.RequestUpload(asset,true); - Client.Inventory.RequestCreateItem(clothfolder.UUID, "MyClothing" + i.ToString(), "MyClothing", AssetType.Clothing, - transid, InventoryType.Wearable, asset.WearableType, PermissionMask.All, delegate(bool success, InventoryItem item) - { - if (success) - { - listwearables.Add(item); - } - else - MainConsole.Instance.Output(String.Format("Failed to create item {0}",item.Name)); - } - ); - } - - for (int i = 0; i < bodyparts.Length; i++) - { - UUID assetID = UUID.Random(); - AssetBodypart asset = new AssetBodypart(assetID, File.ReadAllBytes(bodyparts[i])); - asset.Decode(); - asset.Owner = Client.Self.AgentID; - asset.WearableType = GetWearableType(bodyparts[i]); - asset.Encode(); - transid = Client.Assets.RequestUpload(asset,true); - Client.Inventory.RequestCreateItem(clothfolder.UUID, "MyBodyPart" + i.ToString(), "MyBodyPart", AssetType.Bodypart, - transid, InventoryType.Wearable, asset.WearableType, PermissionMask.All, delegate(bool success, InventoryItem item) - { - if (success) - { - listwearables.Add(item); - } - else - MainConsole.Instance.Output(String.Format("Failed to create item {0}",item.Name)); - } - ); - } - - Thread.Sleep(1000); - - if (listwearables == null || listwearables.Count == 0) - MainConsole.Instance.Output("Nothing to send on this folder!"); - else - { - MainConsole.Instance.Output(String.Format("Sending {0} wearables...",listwearables.Count)); - Client.Appearance.WearOutfit(listwearables, false); - } - } - catch (Exception ex) - { - Console.WriteLine(ex.ToString()); - } - } - - public InventoryFolder FindClothingFolder() - { - UUID rootfolder = Client.Inventory.Store.RootFolder.UUID; - List listfolders = Client.Inventory.Store.GetContents(rootfolder); - InventoryFolder clothfolder = new InventoryFolder(UUID.Random()); - foreach (InventoryBase folder in listfolders) - { - if (folder.Name == "Clothing") - { - clothfolder = (InventoryFolder)folder; - break; - } - } - return clothfolder; - } - - public void Network_LoginProgress(object sender, LoginProgressEventArgs args) - { - if (args.Status == LoginStatus.Success) - { - if (OnConnected != null) - { - OnConnected(this, EventType.CONNECTED); - } - } - } - - public void Network_SimConnected(object sender, SimConnectedEventArgs args) - { - } - - public void Network_OnDisconnected(object sender, DisconnectedEventArgs args) - { -// m_log.ErrorFormat("Fired Network_OnDisconnected"); - -// if ( -// (args.Reason == NetworkManager.DisconnectType.SimShutdown -// || args.Reason == NetworkManager.DisconnectType.NetworkTimeout) -// && OnDisconnected != null) - - if ( - (args.Reason == NetworkManager.DisconnectType.ClientInitiated - || args.Reason == NetworkManager.DisconnectType.ServerInitiated - || args.Reason == NetworkManager.DisconnectType.NetworkTimeout) - && OnDisconnected != null) -// if (OnDisconnected != null) - { - IsConnected = false; - OnDisconnected(this, EventType.DISCONNECTED); - } - } - - public void Objects_NewPrim(object sender, PrimEventArgs args) - { - Primitive prim = args.Prim; - - if (prim != null) - { - lock (m_objects) - m_objects[prim.ID] = prim; - - if (prim.Textures != null) - { - if (prim.Textures.DefaultTexture.TextureID != UUID.Zero) - { - GetTexture(prim.Textures.DefaultTexture.TextureID); - } - - for (int i = 0; i < prim.Textures.FaceTextures.Length; i++) - { - UUID textureID = prim.Textures.FaceTextures[i].TextureID; - - if (textureID != null && textureID != UUID.Zero) - { - GetTexture(textureID); - } - } - } - - if (prim.Sculpt.SculptTexture != UUID.Zero) - { - GetTexture(prim.Sculpt.SculptTexture); - } - } - } - - private void GetTexture(UUID textureID) - { - lock (BotManager.AssetsReceived) - { - // Don't request assets more than once. - if (BotManager.AssetsReceived.ContainsKey(textureID)) - return; - - BotManager.AssetsReceived[textureID] = false; - Client.Assets.RequestImage(textureID, ImageType.Normal, Asset_TextureCallback_Texture); - } - } - - public void Asset_TextureCallback_Texture(TextureRequestState state, AssetTexture assetTexture) - { - //TODO: Implement texture saving and applying - } - - public void Asset_ReceivedCallback(AssetDownload transfer, Asset asset) - { - lock (BotManager.AssetsReceived) - BotManager.AssetsReceived[asset.AssetID] = true; - -// if (wear == "save") -// { -// SaveAsset((AssetWearable) asset); -// } - } - } -} -- cgit v1.1 From e4bdf1e78ff452136908adb6556143ab6cb8fa74 Mon Sep 17 00:00:00 2001 From: Justin Clark-Casey (justincc) Date: Thu, 3 Nov 2011 22:50:40 +0000 Subject: actually remove the sleep from PhysicsBehaviour that I shifted to Bot a couple of commits ago --- OpenSim/Tools/pCampBot/Behaviours/PhysicsBehaviour.cs | 2 -- 1 file changed, 2 deletions(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/pCampBot/Behaviours/PhysicsBehaviour.cs b/OpenSim/Tools/pCampBot/Behaviours/PhysicsBehaviour.cs index 8d1d1ce..3ce08bf 100644 --- a/OpenSim/Tools/pCampBot/Behaviours/PhysicsBehaviour.cs +++ b/OpenSim/Tools/pCampBot/Behaviours/PhysicsBehaviour.cs @@ -75,8 +75,6 @@ namespace pCampBot string randomf = talkarray[bot.Random.Next(talkarray.Length)]; if (talkarray.Length > 1 && randomf.Length > 1) bot.Client.Self.Chat(randomf, 0, ChatType.Normal); - - Thread.Sleep(bot.Random.Next(1000, 10000)); } private string[] readexcuses() -- cgit v1.1 From 69a405713583ca309ee4c5310ae87a942e614ebe Mon Sep 17 00:00:00 2001 From: Justin Clark-Casey (justincc) Date: Thu, 3 Nov 2011 22:52:14 +0000 Subject: remove the pointless check of the face texture struct against null in Bot.Objects_NewPrim() --- OpenSim/Tools/pCampBot/Bot.cs | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/pCampBot/Bot.cs b/OpenSim/Tools/pCampBot/Bot.cs index bf01065..1b30766 100644 --- a/OpenSim/Tools/pCampBot/Bot.cs +++ b/OpenSim/Tools/pCampBot/Bot.cs @@ -449,10 +449,8 @@ namespace pCampBot { UUID textureID = prim.Textures.FaceTextures[i].TextureID; - if (textureID != null && textureID != UUID.Zero) - { + if (textureID != UUID.Zero) GetTexture(textureID); - } } } -- cgit v1.1 From 674b521fdd24f10964cc4f256486eca6fd6c2cc9 Mon Sep 17 00:00:00 2001 From: Justin Clark-Casey (justincc) Date: Wed, 9 Nov 2011 20:21:48 +0000 Subject: In pCampBot, don't try and pull down Primitive faces or sculpts set to null --- OpenSim/Tools/pCampBot/Bot.cs | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/pCampBot/Bot.cs b/OpenSim/Tools/pCampBot/Bot.cs index 1b30766..669c99b 100644 --- a/OpenSim/Tools/pCampBot/Bot.cs +++ b/OpenSim/Tools/pCampBot/Bot.cs @@ -447,17 +447,20 @@ namespace pCampBot for (int i = 0; i < prim.Textures.FaceTextures.Length; i++) { - UUID textureID = prim.Textures.FaceTextures[i].TextureID; + Primitive.TextureEntryFace face = prim.Textures.FaceTextures[i]; - if (textureID != UUID.Zero) - GetTexture(textureID); + if (face != null) + { + UUID textureID = prim.Textures.FaceTextures[i].TextureID; + + if (textureID != UUID.Zero) + GetTexture(textureID); + } } } - if (prim.Sculpt.SculptTexture != UUID.Zero) - { + if (prim.Sculpt != null && prim.Sculpt.SculptTexture != UUID.Zero) GetTexture(prim.Sculpt.SculptTexture); - } } } -- cgit v1.1 From bbab7b6b4d1053d62037e7e05c37f9cb607db4da Mon Sep 17 00:00:00 2001 From: Justin Clark-Casey (justincc) Date: Wed, 9 Nov 2011 21:22:54 +0000 Subject: Use IsConnected status to determine whether all pCampBots have disconnected, rather than maintaining a separate count Checking IsConnected is more reliable. --- OpenSim/Tools/pCampBot/Bot.cs | 22 ++++++++++++++-------- OpenSim/Tools/pCampBot/BotManager.cs | 16 ++++++++-------- 2 files changed, 22 insertions(+), 16 deletions(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/pCampBot/Bot.cs b/OpenSim/Tools/pCampBot/Bot.cs index 669c99b..7f941a4 100644 --- a/OpenSim/Tools/pCampBot/Bot.cs +++ b/OpenSim/Tools/pCampBot/Bot.cs @@ -222,7 +222,7 @@ namespace pCampBot } else { - MainConsole.Instance.OutputFormat( + m_log.ErrorFormat( "{0} {1} cannot login: {2}", FirstName, LastName, Client.Network.LoginMessage); if (OnDisconnected != null) @@ -266,12 +266,12 @@ namespace pCampBot } else { - MainConsole.Instance.Output(String.Format("Failed to decode {0} asset {1}", asset.AssetType, asset.AssetID)); + m_log.WarnFormat("Failed to decode {0} asset {1}", asset.AssetType, asset.AssetID); } } catch (Exception e) { - MainConsole.Instance.Output(String.Format("Exception: {0}",e.ToString())); + m_log.ErrorFormat("Exception: {0}{1}", e.Message, e.StackTrace); } } } @@ -305,7 +305,7 @@ namespace pCampBot if (wear == "yes") { //TODO: Implement random outfit picking - MainConsole.Instance.Output("Picks a random outfit. Not yet implemented."); + m_log.DebugFormat("Picks a random outfit. Not yet implemented."); } else if (wear != "save") saveDir = "MyAppearance/" + wear; @@ -334,7 +334,9 @@ namespace pCampBot listwearables.Add(item); } else - MainConsole.Instance.Output(String.Format("Failed to create item {0}",item.Name)); + { + m_log.WarnFormat("Failed to create item {0}", item.Name); + } } ); } @@ -356,7 +358,9 @@ namespace pCampBot listwearables.Add(item); } else - MainConsole.Instance.Output(String.Format("Failed to create item {0}",item.Name)); + { + m_log.WarnFormat("Failed to create item {0}", item.Name); + } } ); } @@ -364,10 +368,12 @@ namespace pCampBot Thread.Sleep(1000); if (listwearables == null || listwearables.Count == 0) - MainConsole.Instance.Output("Nothing to send on this folder!"); + { + m_log.DebugFormat("Nothing to send on this folder!"); + } else { - MainConsole.Instance.Output(String.Format("Sending {0} wearables...",listwearables.Count)); + m_log.DebugFormat("Sending {0} wearables...", listwearables.Count); Client.Appearance.WearOutfit(listwearables, false); } } diff --git a/OpenSim/Tools/pCampBot/BotManager.cs b/OpenSim/Tools/pCampBot/BotManager.cs index 704770a..c4c6f8f 100644 --- a/OpenSim/Tools/pCampBot/BotManager.cs +++ b/OpenSim/Tools/pCampBot/BotManager.cs @@ -51,7 +51,6 @@ namespace pCampBot protected CommandConsole m_console; protected List m_lBot; protected Random somthing = new Random(Environment.TickCount); - protected int numbots = 0; public IConfig Config { get; private set; } /// @@ -200,16 +199,17 @@ namespace pCampBot { case EventType.CONNECTED: m_log.Info("[" + callbot.FirstName + " " + callbot.LastName + "]: Connected"); - numbots++; -// m_log.InfoFormat("NUMBOTS {0}", numbots); break; case EventType.DISCONNECTED: m_log.Info("[" + callbot.FirstName + " " + callbot.LastName + "]: Disconnected"); - numbots--; -// m_log.InfoFormat("NUMBOTS {0}", numbots); - if (numbots <= 0) - Environment.Exit(0); - break; + + lock (m_lBot) + { + if (m_lBot.TrueForAll(b => !b.IsConnected)) + Environment.Exit(0); + + break; + } } } -- cgit v1.1 From f31a58bd999db3d333da42c4fb15e35e989d9717 Mon Sep 17 00:00:00 2001 From: Justin Clark-Casey (justincc) Date: Thu, 10 Nov 2011 19:40:45 +0000 Subject: Remove unused index parameter from BotManager.startupBot(). Rename startupBot() => StartBot() --- OpenSim/Tools/pCampBot/BotManager.cs | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/pCampBot/BotManager.cs b/OpenSim/Tools/pCampBot/BotManager.cs index c4c6f8f..c77e144 100644 --- a/OpenSim/Tools/pCampBot/BotManager.cs +++ b/OpenSim/Tools/pCampBot/BotManager.cs @@ -136,7 +136,7 @@ namespace pCampBot if (behaviourSwitches.Contains("g")) behaviours.Add(new GrabbingBehaviour()); - startupBot(i, this, behaviours, firstName, lastName, password, loginUri); + StartBot(this, behaviours, firstName, lastName, password, loginUri); } } @@ -156,22 +156,21 @@ namespace pCampBot // int newlen = len + botcount; // for (int i = len; i < newlen; i++) // { -// startupBot(i, Config); +// startupBot(Config); // } // } /// /// This starts up the bot and stores the thread for the bot in the thread array /// - /// The position in the thread array to stick the bot's thread /// /// Behaviours for this bot to perform. /// First name /// Last name /// Password /// Login URI - public void startupBot( - int pos, BotManager bm, List behaviours, + public void StartBot( + BotManager bm, List behaviours, string firstName, string lastName, string password, string loginUri) { Bot pb = new Bot(bm, behaviours, firstName, lastName, password, loginUri); -- cgit v1.1 From 9cba179dff66f7def8f68334893c6db9a65a613e Mon Sep 17 00:00:00 2001 From: Justin Clark-Casey (justincc) Date: Thu, 10 Nov 2011 20:03:36 +0000 Subject: launch pCampbot shutdown console comand asynchronously --- OpenSim/Tools/pCampBot/BotManager.cs | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/pCampBot/BotManager.cs b/OpenSim/Tools/pCampBot/BotManager.cs index c77e144..f5dd5e0 100644 --- a/OpenSim/Tools/pCampBot/BotManager.cs +++ b/OpenSim/Tools/pCampBot/BotManager.cs @@ -233,8 +233,11 @@ namespace pCampBot private void HandleShutdown(string module, string[] cmd) { - m_log.Warn("[BOTMANAGER]: Shutting down bots"); - doBotShutdown(); + Util.FireAndForget(o => + { + m_log.Warn("[BOTMANAGER]: Shutting down bots"); + doBotShutdown(); + }); } private void HandleShowStatus(string module, string[] cmd) -- cgit v1.1 From e394f83df0d4af9f7efb826dbb49fe0eabedabdc Mon Sep 17 00:00:00 2001 From: Justin Clark-Casey (justincc) Date: Wed, 23 Nov 2011 18:00:41 +0000 Subject: Change random number generator property name in pCampbot --- OpenSim/Tools/pCampBot/BotManager.cs | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/pCampBot/BotManager.cs b/OpenSim/Tools/pCampBot/BotManager.cs index f5dd5e0..056f991 100644 --- a/OpenSim/Tools/pCampBot/BotManager.cs +++ b/OpenSim/Tools/pCampBot/BotManager.cs @@ -50,7 +50,12 @@ namespace pCampBot protected CommandConsole m_console; protected List m_lBot; - protected Random somthing = new Random(Environment.TickCount); + + /// + /// Random number generator. + /// + public Random Rng { get; private set; } + public IConfig Config { get; private set; } /// @@ -63,6 +68,7 @@ namespace pCampBot /// public BotManager() { + Rng = new Random(Environment.TickCount); AssetsReceived = new Dictionary(); m_console = CreateConsole(); -- cgit v1.1 From e9f2a9bddbb47ac8c80aeccea0022ad534cbd552 Mon Sep 17 00:00:00 2001 From: Justin Clark-Casey (justincc) Date: Wed, 23 Nov 2011 21:19:10 +0000 Subject: get pCampBot to extract nearby and store nearby region information --- OpenSim/Tools/pCampBot/Bot.cs | 12 ++++++++ OpenSim/Tools/pCampBot/BotManager.cs | 54 +++++++++++++++++++++++++++++++++--- 2 files changed, 62 insertions(+), 4 deletions(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/pCampBot/Bot.cs b/OpenSim/Tools/pCampBot/Bot.cs index 7f941a4..7c16bf4 100644 --- a/OpenSim/Tools/pCampBot/Bot.cs +++ b/OpenSim/Tools/pCampBot/Bot.cs @@ -218,7 +218,19 @@ namespace pCampBot { MakeDefaultAppearance(wear); } + Client.Self.Jump(true); + + // Extract nearby region information. + Client.Grid.GridRegion += BotManager.Grid_GridRegion; + uint xUint, yUint; + Utils.LongToUInts(Client.Network.CurrentSim.Handle, out xUint, out yUint); + ushort minX, minY, maxX, maxY; + minX = (ushort)Math.Min(0, xUint - 5); + minY = (ushort)Math.Min(0, yUint - 5); + maxX = (ushort)(xUint + 5); + maxY = (ushort)(yUint + 5); + Client.Grid.RequestMapBlocks(GridLayerType.Terrain, minX, minY, maxX, maxY, false); } else { diff --git a/OpenSim/Tools/pCampBot/BotManager.cs b/OpenSim/Tools/pCampBot/BotManager.cs index 056f991..f372f9b 100644 --- a/OpenSim/Tools/pCampBot/BotManager.cs +++ b/OpenSim/Tools/pCampBot/BotManager.cs @@ -55,7 +55,7 @@ namespace pCampBot /// Random number generator. /// public Random Rng { get; private set; } - + public IConfig Config { get; private set; } /// @@ -64,12 +64,18 @@ namespace pCampBot public Dictionary AssetsReceived { get; private set; } /// + /// The regions that we know about. + /// + public Dictionary RegionsKnown { get; private set; } + + /// /// Constructor Creates MainConsole.Instance to take commands and provide the place to write data /// public BotManager() { Rng = new Random(Environment.TickCount); AssetsReceived = new Dictionary(); + RegionsKnown = new Dictionary(); m_console = CreateConsole(); MainConsole.Instance = m_console; @@ -99,6 +105,11 @@ namespace pCampBot "Shutdown bots and exit", HandleShutdown); + m_console.Commands.AddCommand("bot", false, "show regions", + "show regions", + "Show regions known to bots", + HandleShowRegions); + m_console.Commands.AddCommand("bot", false, "show status", "show status", "Shows the status of all bots", @@ -246,17 +257,33 @@ namespace pCampBot }); } + private void HandleShowRegions(string module, string[] cmd) + { + string outputFormat = "{0,-30} {1, -20} {2, -5} {3, -5}"; + MainConsole.Instance.OutputFormat(outputFormat, "Name", "Handle", "X", "Y"); + + lock (RegionsKnown) + { + foreach (GridRegion region in RegionsKnown.Values) + { + MainConsole.Instance.OutputFormat( + outputFormat, region.Name, region.RegionHandle, region.X, region.Y); + } + } + } + private void HandleShowStatus(string module, string[] cmd) { - string outputFormat = "{0,-30} {1,-14}"; - MainConsole.Instance.OutputFormat(outputFormat, "Name", "Status"); + string outputFormat = "{0,-30} {1, -30} {2,-14}"; + MainConsole.Instance.OutputFormat(outputFormat, "Name", "Region", "Status"); lock (m_lBot) { foreach (Bot pb in m_lBot) { MainConsole.Instance.OutputFormat( - outputFormat, pb.Name, (pb.IsConnected ? "Connected" : "Disconnected")); + outputFormat, + pb.Name, pb.Client.Network.CurrentSim.Name, pb.IsConnected ? "Connected" : "Disconnected"); } } } @@ -280,5 +307,24 @@ namespace pCampBot // if (newbots > 0) // addbots(newbots); // } + + internal void Grid_GridRegion(object o, GridRegionEventArgs args) + { + lock (RegionsKnown) + { + GridRegion newRegion = args.Region; + + if (RegionsKnown.ContainsKey(newRegion.RegionHandle)) + { + return; + } + else + { + m_log.DebugFormat( + "[BOT MANAGER]: Adding {0} {1} to known regions", newRegion.Name, newRegion.RegionHandle); + RegionsKnown[newRegion.RegionHandle] = newRegion; + } + } + } } } -- cgit v1.1 From 9ae0641871418813ad4e9dd4591396e0b023140b Mon Sep 17 00:00:00 2001 From: Justin Clark-Casey (justincc) Date: Wed, 23 Nov 2011 21:33:10 +0000 Subject: Rename Bot.BotManager to Manager --- OpenSim/Tools/pCampBot/Bot.cs | 25 ++++++++++++++++--------- 1 file changed, 16 insertions(+), 9 deletions(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/pCampBot/Bot.cs b/OpenSim/Tools/pCampBot/Bot.cs index 7c16bf4..7a73e3f 100644 --- a/OpenSim/Tools/pCampBot/Bot.cs +++ b/OpenSim/Tools/pCampBot/Bot.cs @@ -49,8 +49,15 @@ namespace pCampBot public delegate void AnEvent(Bot callbot, EventType someevent); // event delegate for bot events - public BotManager BotManager { get; private set; } - private IConfig startupConfig; // bot config, passed from BotManager + /// + /// Bot manager. + /// + public BotManager Manager { get; private set; } + + /// + /// Bot config, passed from BotManager. + /// + private IConfig startupConfig; /// /// Behaviours implemented by this bot. @@ -132,7 +139,7 @@ namespace pCampBot Password = password; LoginUri = loginUri; - BotManager = bm; + Manager = bm; startupConfig = bm.Config; readconfig(); @@ -222,7 +229,7 @@ namespace pCampBot Client.Self.Jump(true); // Extract nearby region information. - Client.Grid.GridRegion += BotManager.Grid_GridRegion; + Client.Grid.GridRegion += Manager.Grid_GridRegion; uint xUint, yUint; Utils.LongToUInts(Client.Network.CurrentSim.Handle, out xUint, out yUint); ushort minX, minY, maxX, maxY; @@ -484,13 +491,13 @@ namespace pCampBot private void GetTexture(UUID textureID) { - lock (BotManager.AssetsReceived) + lock (Manager.AssetsReceived) { // Don't request assets more than once. - if (BotManager.AssetsReceived.ContainsKey(textureID)) + if (Manager.AssetsReceived.ContainsKey(textureID)) return; - BotManager.AssetsReceived[textureID] = false; + Manager.AssetsReceived[textureID] = false; Client.Assets.RequestImage(textureID, ImageType.Normal, Asset_TextureCallback_Texture); } } @@ -502,8 +509,8 @@ namespace pCampBot public void Asset_ReceivedCallback(AssetDownload transfer, Asset asset) { - lock (BotManager.AssetsReceived) - BotManager.AssetsReceived[asset.AssetID] = true; + lock (Manager.AssetsReceived) + Manager.AssetsReceived[asset.AssetID] = true; // if (wear == "save") // { -- cgit v1.1 From 1126efdcd062c46e7e6212c86b692d11e570d8b3 Mon Sep 17 00:00:00 2001 From: Justin Clark-Casey (justincc) Date: Wed, 23 Nov 2011 21:33:54 +0000 Subject: In pCampbot, change "show status" command to "show bots" --- OpenSim/Tools/pCampBot/BotManager.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/pCampBot/BotManager.cs b/OpenSim/Tools/pCampBot/BotManager.cs index f372f9b..836d3f7 100644 --- a/OpenSim/Tools/pCampBot/BotManager.cs +++ b/OpenSim/Tools/pCampBot/BotManager.cs @@ -110,8 +110,8 @@ namespace pCampBot "Show regions known to bots", HandleShowRegions); - m_console.Commands.AddCommand("bot", false, "show status", - "show status", + m_console.Commands.AddCommand("bot", false, "show bots", + "show bots", "Shows the status of all bots", HandleShowStatus); -- cgit v1.1 From d145750e878c75e7d7a78eb9ef8dddaab81cc159 Mon Sep 17 00:00:00 2001 From: Justin Clark-Casey (justincc) Date: Wed, 23 Nov 2011 22:05:11 +0000 Subject: Add teleport behaviour to pCampBot This teleports the bot to any other regions +/- 5 on the x or y axis. Quite aggressive at the moment since teleports keep occuring at a 1-10secs random interval. No checking yet to see if teleport was successful. --- .../Tools/pCampBot/Behaviours/TeleportBehaviour.cs | 73 ++++++++++++++++++++++ OpenSim/Tools/pCampBot/BotManager.cs | 3 + OpenSim/Tools/pCampBot/pCampBot.cs | 2 +- 3 files changed, 77 insertions(+), 1 deletion(-) create mode 100644 OpenSim/Tools/pCampBot/Behaviours/TeleportBehaviour.cs (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/pCampBot/Behaviours/TeleportBehaviour.cs b/OpenSim/Tools/pCampBot/Behaviours/TeleportBehaviour.cs new file mode 100644 index 0000000..4624494 --- /dev/null +++ b/OpenSim/Tools/pCampBot/Behaviours/TeleportBehaviour.cs @@ -0,0 +1,73 @@ +/* + * Copyright (c) Contributors, http://opensimulator.org/ + * See CONTRIBUTORS.TXT for a full list of copyright holders. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the OpenSimulator Project nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +using System; +using System.Collections.Generic; +using System.Linq; +using System.Reflection; +using log4net; +using OpenMetaverse; +using pCampBot.Interfaces; + +namespace pCampBot +{ + /// + /// Teleport to a random region on the grid. + /// + public class TeleportBehaviour : IBehaviour + { + private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); + + public void Action(Bot bot) + { + Random rng = bot.Manager.Rng; + GridRegion[] knownRegions; + + lock (bot.Manager.RegionsKnown) + { + if (bot.Manager.RegionsKnown.Count == 0) + { + m_log.DebugFormat( + "[TELEPORT BEHAVIOUR]: Ignoring teleport action for {0} since no regions are known yet", bot.Name); + return; + } + + knownRegions = bot.Manager.RegionsKnown.Values.ToArray(); + } + + Simulator sourceRegion = bot.Client.Network.CurrentSim; + GridRegion destRegion = knownRegions[rng.Next(knownRegions.Length)]; + Vector3 destPosition = new Vector3(rng.Next(255), rng.Next(255), 50); + + m_log.DebugFormat( + "[TELEPORT BEHAVIOUR]: Teleporting {0} from {1} {2} to {3} {4}", + bot.Name, sourceRegion.Name, bot.Client.Self.SimPosition, destRegion.Name, destPosition); + + bot.Client.Self.Teleport(destRegion.RegionHandle, destPosition); + } + } +} \ No newline at end of file diff --git a/OpenSim/Tools/pCampBot/BotManager.cs b/OpenSim/Tools/pCampBot/BotManager.cs index 836d3f7..c67b3e4 100644 --- a/OpenSim/Tools/pCampBot/BotManager.cs +++ b/OpenSim/Tools/pCampBot/BotManager.cs @@ -153,6 +153,9 @@ namespace pCampBot if (behaviourSwitches.Contains("g")) behaviours.Add(new GrabbingBehaviour()); + if (behaviourSwitches.Contains("t")) + behaviours.Add(new TeleportBehaviour()); + StartBot(this, behaviours, firstName, lastName, password, loginUri); } } diff --git a/OpenSim/Tools/pCampBot/pCampBot.cs b/OpenSim/Tools/pCampBot/pCampBot.cs index 4d3b06d..e7288d5 100644 --- a/OpenSim/Tools/pCampBot/pCampBot.cs +++ b/OpenSim/Tools/pCampBot/pCampBot.cs @@ -111,7 +111,7 @@ namespace pCampBot " -firstname first name for the bots\n" + " -lastname lastname for the bots. Each lastname will have _ appended, e.g. Ima Bot_0\n" + " -password password for the bots\n" + - " -b, behaviours behaviours for bots. Current options p (physics), g (grab). Comma separated, e.g. p,g. Default is p", + " -b, behaviours behaviours for bots. Current options p (physics), g (grab), t (teleport). Comma separated, e.g. p,g. Default is p", " -wear set appearance folder to load from (default: no)\n" + " -h, -help show this message" ); -- cgit v1.1 From ed7ddeecf2df370638feb0a83b70a0883a711650 Mon Sep 17 00:00:00 2001 From: Justin Clark-Casey (justincc) Date: Wed, 23 Nov 2011 22:18:10 +0000 Subject: Print out what behaviours are active when pCampBot starts up --- .../Tools/pCampBot/Behaviours/GrabbingBehaviour.cs | 2 ++ .../Tools/pCampBot/Behaviours/PhysicsBehaviour.cs | 2 ++ .../Tools/pCampBot/Behaviours/TeleportBehaviour.cs | 2 ++ OpenSim/Tools/pCampBot/BotManager.cs | 39 +++++++++++++++------- OpenSim/Tools/pCampBot/Interfaces/IBehaviour.cs | 9 +++++ 5 files changed, 42 insertions(+), 12 deletions(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/pCampBot/Behaviours/GrabbingBehaviour.cs b/OpenSim/Tools/pCampBot/Behaviours/GrabbingBehaviour.cs index 7084ab4..0a6d5d2 100644 --- a/OpenSim/Tools/pCampBot/Behaviours/GrabbingBehaviour.cs +++ b/OpenSim/Tools/pCampBot/Behaviours/GrabbingBehaviour.cs @@ -41,6 +41,8 @@ namespace pCampBot /// public class GrabbingBehaviour : IBehaviour { + public string Name { get { return "Grabbing"; } } + public void Action(Bot bot) { Dictionary objects = bot.Objects; diff --git a/OpenSim/Tools/pCampBot/Behaviours/PhysicsBehaviour.cs b/OpenSim/Tools/pCampBot/Behaviours/PhysicsBehaviour.cs index 3ce08bf..f782bb5 100644 --- a/OpenSim/Tools/pCampBot/Behaviours/PhysicsBehaviour.cs +++ b/OpenSim/Tools/pCampBot/Behaviours/PhysicsBehaviour.cs @@ -42,6 +42,8 @@ namespace pCampBot /// public class PhysicsBehaviour : IBehaviour { + public string Name { get { return "Physics"; } } + private string[] talkarray; public PhysicsBehaviour() diff --git a/OpenSim/Tools/pCampBot/Behaviours/TeleportBehaviour.cs b/OpenSim/Tools/pCampBot/Behaviours/TeleportBehaviour.cs index 4624494..fc2ed2c 100644 --- a/OpenSim/Tools/pCampBot/Behaviours/TeleportBehaviour.cs +++ b/OpenSim/Tools/pCampBot/Behaviours/TeleportBehaviour.cs @@ -42,6 +42,8 @@ namespace pCampBot { private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); + public string Name { get { return "Teleport"; } } + public void Action(Bot bot) { Random rng = bot.Manager.Rng; diff --git a/OpenSim/Tools/pCampBot/BotManager.cs b/OpenSim/Tools/pCampBot/BotManager.cs index c67b3e4..29cb1ba 100644 --- a/OpenSim/Tools/pCampBot/BotManager.cs +++ b/OpenSim/Tools/pCampBot/BotManager.cs @@ -27,6 +27,7 @@ using System; using System.Collections.Generic; +using System.Linq; using System.Reflection; using System.Threading; using OpenMetaverse; @@ -48,7 +49,14 @@ namespace pCampBot { private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); + /// + /// Command console + /// protected CommandConsole m_console; + + /// + /// Created bots, whether active or inactive. + /// protected List m_lBot; /// @@ -56,6 +64,9 @@ namespace pCampBot /// public Random Rng { get; private set; } + /// + /// Overall configuration. + /// public IConfig Config { get; private set; } /// @@ -140,22 +151,26 @@ namespace pCampBot Array.ForEach( cs.GetString("behaviours", "p").Split(new char[] { ',' }), b => behaviourSwitches.Add(b)); + List behaviours = new List(); + + // Hard-coded for now + if (behaviourSwitches.Contains("p")) + behaviours.Add(new PhysicsBehaviour()); + + if (behaviourSwitches.Contains("g")) + behaviours.Add(new GrabbingBehaviour()); + + if (behaviourSwitches.Contains("t")) + behaviours.Add(new TeleportBehaviour()); + + MainConsole.Instance.OutputFormat( + "[BOT MANAGER]: Bots configured for behaviours {0}", + string.Join(",", behaviours.ConvertAll(b => b.Name).ToArray())); + for (int i = 0; i < botcount; i++) { string lastName = string.Format("{0}_{1}", lastNameStem, i); - List behaviours = new List(); - - // Hard-coded for now - if (behaviourSwitches.Contains("p")) - behaviours.Add(new PhysicsBehaviour()); - - if (behaviourSwitches.Contains("g")) - behaviours.Add(new GrabbingBehaviour()); - - if (behaviourSwitches.Contains("t")) - behaviours.Add(new TeleportBehaviour()); - StartBot(this, behaviours, firstName, lastName, password, loginUri); } } diff --git a/OpenSim/Tools/pCampBot/Interfaces/IBehaviour.cs b/OpenSim/Tools/pCampBot/Interfaces/IBehaviour.cs index d4ae0f0..912216f 100644 --- a/OpenSim/Tools/pCampBot/Interfaces/IBehaviour.cs +++ b/OpenSim/Tools/pCampBot/Interfaces/IBehaviour.cs @@ -31,6 +31,15 @@ namespace pCampBot.Interfaces { public interface IBehaviour { + /// + /// Name of this behaviour. + /// + string Name { get; } + + /// + /// Action to take when this behaviour is invoked. + /// + /// void Action(Bot bot); } } \ No newline at end of file -- cgit v1.1 From bdcfd6afee5651bd5fc3b4e6a2dfeeb47b983661 Mon Sep 17 00:00:00 2001 From: Justin Clark-Casey (justincc) Date: Thu, 24 Nov 2011 17:35:33 +0000 Subject: Add disabled CrossBehaviour to pCampBot, which is designed to cross test bots between neighbouring regions. Not yet enabled since there is a bug where the initial cross will work but all subsequent movements on the receiving simulator appear to fail. --- .../Tools/pCampBot/Behaviours/PhysicsBehaviour.cs | 1 - OpenSim/Tools/pCampBot/Bot.cs | 2 -- OpenSim/Tools/pCampBot/BotManager.cs | 3 +++ OpenSim/Tools/pCampBot/pCampBot.cs | 26 +++++++++++++--------- 4 files changed, 18 insertions(+), 14 deletions(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/pCampBot/Behaviours/PhysicsBehaviour.cs b/OpenSim/Tools/pCampBot/Behaviours/PhysicsBehaviour.cs index f782bb5..25529d0 100644 --- a/OpenSim/Tools/pCampBot/Behaviours/PhysicsBehaviour.cs +++ b/OpenSim/Tools/pCampBot/Behaviours/PhysicsBehaviour.cs @@ -73,7 +73,6 @@ namespace pCampBot Thread.Sleep(bot.Random.Next(3000, 13000)); bot.Client.Self.Movement.AtPos = false; bot.Client.Self.Jump(true); - string randomf = talkarray[bot.Random.Next(talkarray.Length)]; if (talkarray.Length > 1 && randomf.Length > 1) bot.Client.Self.Chat(randomf, 0, ChatType.Normal); diff --git a/OpenSim/Tools/pCampBot/Bot.cs b/OpenSim/Tools/pCampBot/Bot.cs index 7a73e3f..409734e 100644 --- a/OpenSim/Tools/pCampBot/Bot.cs +++ b/OpenSim/Tools/pCampBot/Bot.cs @@ -226,8 +226,6 @@ namespace pCampBot MakeDefaultAppearance(wear); } - Client.Self.Jump(true); - // Extract nearby region information. Client.Grid.GridRegion += Manager.Grid_GridRegion; uint xUint, yUint; diff --git a/OpenSim/Tools/pCampBot/BotManager.cs b/OpenSim/Tools/pCampBot/BotManager.cs index 29cb1ba..d91990f 100644 --- a/OpenSim/Tools/pCampBot/BotManager.cs +++ b/OpenSim/Tools/pCampBot/BotManager.cs @@ -163,6 +163,9 @@ namespace pCampBot if (behaviourSwitches.Contains("t")) behaviours.Add(new TeleportBehaviour()); +// if (behaviourSwitches.Contains("c")) +// behaviours.Add(new CrossBehaviour()); + MainConsole.Instance.OutputFormat( "[BOT MANAGER]: Bots configured for behaviours {0}", string.Join(",", behaviours.ConvertAll(b => b.Name).ToArray())); diff --git a/OpenSim/Tools/pCampBot/pCampBot.cs b/OpenSim/Tools/pCampBot/pCampBot.cs index e7288d5..3f43cff 100644 --- a/OpenSim/Tools/pCampBot/pCampBot.cs +++ b/OpenSim/Tools/pCampBot/pCampBot.cs @@ -104,17 +104,21 @@ namespace pCampBot // name, to load an specific folder, or save, to save an avatar with some already existing wearables // worn to the folder MyAppearance/FirstName_LastName, and the load it. Console.WriteLine( - "usage: pCampBot <-loginuri loginuri> [OPTIONS]\n" + - "Spawns a set of bots to test an OpenSim region\n\n" + - " -l, -loginuri loginuri for sim to log into (required)\n" + - " -n, -botcount number of bots to start (default: 1)\n" + - " -firstname first name for the bots\n" + - " -lastname lastname for the bots. Each lastname will have _ appended, e.g. Ima Bot_0\n" + - " -password password for the bots\n" + - " -b, behaviours behaviours for bots. Current options p (physics), g (grab), t (teleport). Comma separated, e.g. p,g. Default is p", - " -wear set appearance folder to load from (default: no)\n" + - " -h, -help show this message" - ); + "usage: pCampBot <-loginuri loginuri> [OPTIONS]\n" + + "Spawns a set of bots to test an OpenSim region\n\n" + + " -l, -loginuri loginuri for sim to log into (required)\n" + + " -n, -botcount number of bots to start (default: 1)\n" + + " -firstname first name for the bots\n" + + " -lastname lastname for the bots. Each lastname will have _ appended, e.g. Ima Bot_0\n" + + " -password password for the bots\n" + + " -b, behaviours behaviours for bots. Comma separated, e.g. p,g. Default is p\n", + " current options are:" + + " p (physics)" + + " g (grab)" + + " t (teleport)" + +// " c (cross)" + + " -wear set appearance folder to load from (default: no)\n" + + " -h, -help show this message"); } } } -- cgit v1.1 From 2ae5b40ca6bb3d33310f0f66569bf150548a2de6 Mon Sep 17 00:00:00 2001 From: Justin Clark-Casey (justincc) Date: Thu, 24 Nov 2011 22:36:45 +0000 Subject: On pCampBot, add bot as a property on behaviours instead of passing it in every time --- .../Tools/pCampBot/Behaviours/AbstractBehaviour.cs | 49 ++++++++++++++++++++++ .../Tools/pCampBot/Behaviours/GrabbingBehaviour.cs | 16 +++---- .../Tools/pCampBot/Behaviours/PhysicsBehaviour.cs | 31 +++++++------- .../Tools/pCampBot/Behaviours/TeleportBehaviour.cs | 22 +++++----- OpenSim/Tools/pCampBot/Bot.cs | 4 +- OpenSim/Tools/pCampBot/BotManager.cs | 38 ++++++++--------- OpenSim/Tools/pCampBot/Interfaces/IBehaviour.cs | 11 ++++- 7 files changed, 115 insertions(+), 56 deletions(-) create mode 100644 OpenSim/Tools/pCampBot/Behaviours/AbstractBehaviour.cs (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/pCampBot/Behaviours/AbstractBehaviour.cs b/OpenSim/Tools/pCampBot/Behaviours/AbstractBehaviour.cs new file mode 100644 index 0000000..9a9371d --- /dev/null +++ b/OpenSim/Tools/pCampBot/Behaviours/AbstractBehaviour.cs @@ -0,0 +1,49 @@ +/* + * Copyright (c) Contributors, http://opensimulator.org/ + * See CONTRIBUTORS.TXT for a full list of copyright holders. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the OpenSimulator Project nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +using OpenMetaverse; +using System; +using System.Collections.Generic; +using System.Linq; +using pCampBot.Interfaces; + +namespace pCampBot +{ + public class AbstractBehaviour : IBehaviour + { + public string Name { get; protected set; } + + public Bot Bot { get; protected set; } + + public virtual void Action() {} + + public virtual void Initialize(Bot bot) + { + Bot = bot; + } + } +} diff --git a/OpenSim/Tools/pCampBot/Behaviours/GrabbingBehaviour.cs b/OpenSim/Tools/pCampBot/Behaviours/GrabbingBehaviour.cs index 0a6d5d2..6ad02b2 100644 --- a/OpenSim/Tools/pCampBot/Behaviours/GrabbingBehaviour.cs +++ b/OpenSim/Tools/pCampBot/Behaviours/GrabbingBehaviour.cs @@ -39,20 +39,20 @@ namespace pCampBot /// /// The viewer itself does not give the option of grabbing objects that haven't been signalled as grabbable. /// - public class GrabbingBehaviour : IBehaviour + public class GrabbingBehaviour : AbstractBehaviour { - public string Name { get { return "Grabbing"; } } + public GrabbingBehaviour() { Name = "Grabbing"; } - public void Action(Bot bot) + public override void Action() { - Dictionary objects = bot.Objects; + Dictionary objects = Bot.Objects; - Primitive prim = objects.ElementAt(bot.Random.Next(0, objects.Count)).Value; + Primitive prim = objects.ElementAt(Bot.Random.Next(0, objects.Count)).Value; // This appears to be a typical message sent when a viewer user clicks a clickable object - bot.Client.Self.Grab(prim.LocalID); - bot.Client.Self.GrabUpdate(prim.ID, Vector3.Zero); - bot.Client.Self.DeGrab(prim.LocalID); + Bot.Client.Self.Grab(prim.LocalID); + Bot.Client.Self.GrabUpdate(prim.ID, Vector3.Zero); + Bot.Client.Self.DeGrab(prim.LocalID); } } } \ No newline at end of file diff --git a/OpenSim/Tools/pCampBot/Behaviours/PhysicsBehaviour.cs b/OpenSim/Tools/pCampBot/Behaviours/PhysicsBehaviour.cs index 25529d0..daa7485 100644 --- a/OpenSim/Tools/pCampBot/Behaviours/PhysicsBehaviour.cs +++ b/OpenSim/Tools/pCampBot/Behaviours/PhysicsBehaviour.cs @@ -40,42 +40,41 @@ namespace pCampBot /// /// TODO: talkarray should be in a separate behaviour. /// - public class PhysicsBehaviour : IBehaviour + public class PhysicsBehaviour : AbstractBehaviour { - public string Name { get { return "Physics"; } } - private string[] talkarray; public PhysicsBehaviour() { + Name = "Physics"; talkarray = readexcuses(); } - public void Action(Bot bot) + public override void Action() { - int walkorrun = bot.Random.Next(4); // Randomize between walking and running. The greater this number, + int walkorrun = Bot.Random.Next(4); // Randomize between walking and running. The greater this number, // the greater the bot's chances to walk instead of run. - bot.Client.Self.Jump(false); + Bot.Client.Self.Jump(false); if (walkorrun == 0) { - bot.Client.Self.Movement.AlwaysRun = true; + Bot.Client.Self.Movement.AlwaysRun = true; } else { - bot.Client.Self.Movement.AlwaysRun = false; + Bot.Client.Self.Movement.AlwaysRun = false; } // TODO: unused: Vector3 pos = client.Self.SimPosition; - Vector3 newpos = new Vector3(bot.Random.Next(1, 254), bot.Random.Next(1, 254), bot.Random.Next(1, 254)); - bot.Client.Self.Movement.TurnToward(newpos); + Vector3 newpos = new Vector3(Bot.Random.Next(1, 254), Bot.Random.Next(1, 254), Bot.Random.Next(1, 254)); + Bot.Client.Self.Movement.TurnToward(newpos); - bot.Client.Self.Movement.AtPos = true; - Thread.Sleep(bot.Random.Next(3000, 13000)); - bot.Client.Self.Movement.AtPos = false; - bot.Client.Self.Jump(true); - string randomf = talkarray[bot.Random.Next(talkarray.Length)]; + Bot.Client.Self.Movement.AtPos = true; + Thread.Sleep(Bot.Random.Next(3000, 13000)); + Bot.Client.Self.Movement.AtPos = false; + Bot.Client.Self.Jump(true); + string randomf = talkarray[Bot.Random.Next(talkarray.Length)]; if (talkarray.Length > 1 && randomf.Length > 1) - bot.Client.Self.Chat(randomf, 0, ChatType.Normal); + Bot.Client.Self.Chat(randomf, 0, ChatType.Normal); } private string[] readexcuses() diff --git a/OpenSim/Tools/pCampBot/Behaviours/TeleportBehaviour.cs b/OpenSim/Tools/pCampBot/Behaviours/TeleportBehaviour.cs index fc2ed2c..fbb4e96 100644 --- a/OpenSim/Tools/pCampBot/Behaviours/TeleportBehaviour.cs +++ b/OpenSim/Tools/pCampBot/Behaviours/TeleportBehaviour.cs @@ -38,38 +38,38 @@ namespace pCampBot /// /// Teleport to a random region on the grid. /// - public class TeleportBehaviour : IBehaviour + public class TeleportBehaviour : AbstractBehaviour { private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); - public string Name { get { return "Teleport"; } } + public TeleportBehaviour() { Name = "Teleport"; } - public void Action(Bot bot) + public override void Action() { - Random rng = bot.Manager.Rng; + Random rng = Bot.Manager.Rng; GridRegion[] knownRegions; - lock (bot.Manager.RegionsKnown) + lock (Bot.Manager.RegionsKnown) { - if (bot.Manager.RegionsKnown.Count == 0) + if (Bot.Manager.RegionsKnown.Count == 0) { m_log.DebugFormat( - "[TELEPORT BEHAVIOUR]: Ignoring teleport action for {0} since no regions are known yet", bot.Name); + "[TELEPORT BEHAVIOUR]: Ignoring teleport action for {0} since no regions are known yet", Bot.Name); return; } - knownRegions = bot.Manager.RegionsKnown.Values.ToArray(); + knownRegions = Bot.Manager.RegionsKnown.Values.ToArray(); } - Simulator sourceRegion = bot.Client.Network.CurrentSim; + Simulator sourceRegion = Bot.Client.Network.CurrentSim; GridRegion destRegion = knownRegions[rng.Next(knownRegions.Length)]; Vector3 destPosition = new Vector3(rng.Next(255), rng.Next(255), 50); m_log.DebugFormat( "[TELEPORT BEHAVIOUR]: Teleporting {0} from {1} {2} to {3} {4}", - bot.Name, sourceRegion.Name, bot.Client.Self.SimPosition, destRegion.Name, destPosition); + Bot.Name, sourceRegion.Name, Bot.Client.Self.SimPosition, destRegion.Name, destPosition); - bot.Client.Self.Teleport(destRegion.RegionHandle, destPosition); + Bot.Client.Self.Teleport(destRegion.RegionHandle, destPosition); } } } \ No newline at end of file diff --git a/OpenSim/Tools/pCampBot/Bot.cs b/OpenSim/Tools/pCampBot/Bot.cs index 409734e..0bd0bcc 100644 --- a/OpenSim/Tools/pCampBot/Bot.cs +++ b/OpenSim/Tools/pCampBot/Bot.cs @@ -130,6 +130,8 @@ namespace pCampBot BotManager bm, List behaviours, string firstName, string lastName, string password, string loginUri) { + behaviours.ForEach(b => b.Initialize(this)); + Client = new GridClient(); Random = new Random(Environment.TickCount);// We do stuff randomly here @@ -156,7 +158,7 @@ namespace pCampBot b => { // m_log.DebugFormat("[pCAMPBOT]: For {0} performing action {1}", Name, b.GetType()); - b.Action(this); + b.Action(); Thread.Sleep(Random.Next(1000, 10000)); } diff --git a/OpenSim/Tools/pCampBot/BotManager.cs b/OpenSim/Tools/pCampBot/BotManager.cs index d91990f..6481e97 100644 --- a/OpenSim/Tools/pCampBot/BotManager.cs +++ b/OpenSim/Tools/pCampBot/BotManager.cs @@ -151,29 +151,29 @@ namespace pCampBot Array.ForEach( cs.GetString("behaviours", "p").Split(new char[] { ',' }), b => behaviourSwitches.Add(b)); - List behaviours = new List(); - - // Hard-coded for now - if (behaviourSwitches.Contains("p")) - behaviours.Add(new PhysicsBehaviour()); - - if (behaviourSwitches.Contains("g")) - behaviours.Add(new GrabbingBehaviour()); - - if (behaviourSwitches.Contains("t")) - behaviours.Add(new TeleportBehaviour()); - -// if (behaviourSwitches.Contains("c")) -// behaviours.Add(new CrossBehaviour()); - - MainConsole.Instance.OutputFormat( - "[BOT MANAGER]: Bots configured for behaviours {0}", - string.Join(",", behaviours.ConvertAll(b => b.Name).ToArray())); - for (int i = 0; i < botcount; i++) { string lastName = string.Format("{0}_{1}", lastNameStem, i); + List behaviours = new List(); + + // Hard-coded for now + if (behaviourSwitches.Contains("p")) + behaviours.Add(new PhysicsBehaviour()); + + if (behaviourSwitches.Contains("g")) + behaviours.Add(new GrabbingBehaviour()); + + if (behaviourSwitches.Contains("t")) + behaviours.Add(new TeleportBehaviour()); + + if (behaviourSwitches.Contains("c")) + behaviours.Add(new CrossBehaviour()); + + MainConsole.Instance.OutputFormat( + "[BOT MANAGER]: Bot {0} {1} configured for behaviours {2}", + firstName, lastName, string.Join(",", behaviours.ConvertAll(b => b.Name).ToArray())); + StartBot(this, behaviours, firstName, lastName, password, loginUri); } } diff --git a/OpenSim/Tools/pCampBot/Interfaces/IBehaviour.cs b/OpenSim/Tools/pCampBot/Interfaces/IBehaviour.cs index 912216f..9c984be 100644 --- a/OpenSim/Tools/pCampBot/Interfaces/IBehaviour.cs +++ b/OpenSim/Tools/pCampBot/Interfaces/IBehaviour.cs @@ -37,9 +37,18 @@ namespace pCampBot.Interfaces string Name { get; } /// + /// Initialize the behaviour for this bot. + /// + /// + /// This must be invoked before Action() is called. + /// + /// + void Initialize(Bot bot); + + /// /// Action to take when this behaviour is invoked. /// /// - void Action(Bot bot); + void Action(); } } \ No newline at end of file -- cgit v1.1 From 0a0aa77cfd64eeebe0fadecd999e5a0d4ee3739e Mon Sep 17 00:00:00 2001 From: Justin Clark-Casey (justincc) Date: Thu, 24 Nov 2011 22:46:43 +0000 Subject: Adding missing CrossBehaviour.cs file to fix build --- .../Tools/pCampBot/Behaviours/CrossBehaviour.cs | 169 +++++++++++++++++++++ 1 file changed, 169 insertions(+) create mode 100644 OpenSim/Tools/pCampBot/Behaviours/CrossBehaviour.cs (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/pCampBot/Behaviours/CrossBehaviour.cs b/OpenSim/Tools/pCampBot/Behaviours/CrossBehaviour.cs new file mode 100644 index 0000000..1e01c64 --- /dev/null +++ b/OpenSim/Tools/pCampBot/Behaviours/CrossBehaviour.cs @@ -0,0 +1,169 @@ +/* + * Copyright (c) Contributors, http://opensimulator.org/ + * See CONTRIBUTORS.TXT for a full list of copyright holders. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the OpenSimulator Project nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +using System; +using System.Collections.Generic; +using System.Reflection; +using System.Threading; +using log4net; +using OpenMetaverse; +using OpenSim.Framework; +using pCampBot.Interfaces; + +namespace pCampBot +{ + /// + /// Get the bot to make a region crossing. + /// + public class CrossBehaviour : AbstractBehaviour + { + private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); + + public AutoResetEvent m_regionCrossedMutex = new AutoResetEvent(false); + + public const int m_regionCrossingTimeout = 1000 * 60; + + public CrossBehaviour() { Name = "Cross"; } + + public override void Action() + { + GridClient client = Bot.Client; + +// // Fly to make the border cross easier. +// client.Self.Movement.Fly = true; +// client.Self.Movement.Fly = false; + + // Seek out neighbouring region + Simulator currentSim = client.Network.CurrentSim; + ulong currentHandle = currentSim.Handle; + uint currentX, currentY; + Utils.LongToUInts(currentHandle, out currentX, out currentY); + + List candidateRegions = new List(); + TryAddRegion(Utils.UIntsToLong(Math.Max(0, currentX - Constants.RegionSize), currentY), candidateRegions); // West + TryAddRegion(Utils.UIntsToLong(currentX + Constants.RegionSize, currentY), candidateRegions); // East + TryAddRegion(Utils.UIntsToLong(currentX, Math.Max(0, currentY - Constants.RegionSize)), candidateRegions); // South + TryAddRegion(Utils.UIntsToLong(currentX, currentY + Constants.RegionSize), candidateRegions); // North + + if (candidateRegions.Count != 0) + { + GridRegion destRegion = candidateRegions[Bot.Manager.Rng.Next(candidateRegions.Count)]; + + uint targetX, targetY; + Utils.LongToUInts(destRegion.RegionHandle, out targetX, out targetY); + + Vector3 pos = client.Self.SimPosition; + if (targetX < currentX) + pos.X = -1; + else if (targetX > currentX) + pos.X = Constants.RegionSize + 1; + + if (targetY < currentY) + pos.Y = -1; + else if (targetY > currentY) + pos.Y = Constants.RegionSize + 1; + + m_log.DebugFormat( + "[CROSS BEHAVIOUR]: {0} moving to cross from {1} into {2}, target {3}", + Bot.Name, currentSim.Name, destRegion.Name, pos); + + // Face in the direction of the candidate region + client.Self.Movement.TurnToward(pos); + + // Listen for event so that we know when we've crossed the region boundary + Bot.Client.Self.RegionCrossed += Self_RegionCrossed; + + // Start moving + Bot.Client.Self.Movement.AtPos = true; + + // Stop when reach region target or border cross detected + if (!m_regionCrossedMutex.WaitOne(m_regionCrossingTimeout)) + { + m_log.ErrorFormat( + "[CROSS BEHAVIOUR]: {0} failed to cross from {1} into {2} with {3}ms", + Bot.Name, currentSim.Name, destRegion.Name, m_regionCrossingTimeout); + } + else + { + m_log.DebugFormat( + "[CROSS BEHAVIOUR]: {0} crossed from {1} into {2}", + Bot.Name, currentSim.Name, destRegion.Name); + } + + Bot.Client.Self.RegionCrossed -= Self_RegionCrossed; + + // We will hackishly carry on travelling into the region for a little bit. + Thread.Sleep(6000); + + m_log.DebugFormat( + "[CROSS BEHAVIOUR]: {0} stopped moving after cross from {1} into {2}", + Bot.Name, currentSim.Name, destRegion.Name); + + Bot.Client.Self.Movement.AtPos = false; + } + else + { + m_log.DebugFormat( + "[CROSS BEHAVIOUR]: No candidate region for {0} to cross into from {1}. Ignoring.", + Bot.Name, currentSim.Name); + } + } + + private bool TryAddRegion(ulong handle, List regions) + { + Dictionary knownRegions = Bot.Manager.RegionsKnown; + + lock (knownRegions) + { + if (knownRegions.Count == 0) + return false; + + m_log.DebugFormat("[CROSS BEHAVIOUR]: Looking for region with handle {0} in known regions", handle); + + if (knownRegions.ContainsKey(handle)) + { + GridRegion region = knownRegions[handle]; + m_log.DebugFormat( + "[CROSS BEHAVIOUR]: Adding region {0} to crossing candidates for {1}", region.Name, Bot.Name); + + regions.Add(region); + + return true; + } + else + { + return false; + } + } + } + + internal void Self_RegionCrossed(object o, RegionCrossedEventArgs args) + { + m_regionCrossedMutex.Set(); + } + } +} \ No newline at end of file -- cgit v1.1 From 84023c8162b5736ba2e9d492c5a569bb71eb255b Mon Sep 17 00:00:00 2001 From: Justin Clark-Casey (justincc) Date: Wed, 14 Dec 2011 16:43:49 +0000 Subject: Fix off by one bug in objects GrabbingBehaviour of pCampBot.exe Also fix usage message. --- OpenSim/Tools/pCampBot/Behaviours/GrabbingBehaviour.cs | 2 +- OpenSim/Tools/pCampBot/pCampBot.cs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/pCampBot/Behaviours/GrabbingBehaviour.cs b/OpenSim/Tools/pCampBot/Behaviours/GrabbingBehaviour.cs index 6ad02b2..701881e 100644 --- a/OpenSim/Tools/pCampBot/Behaviours/GrabbingBehaviour.cs +++ b/OpenSim/Tools/pCampBot/Behaviours/GrabbingBehaviour.cs @@ -47,7 +47,7 @@ namespace pCampBot { Dictionary objects = Bot.Objects; - Primitive prim = objects.ElementAt(Bot.Random.Next(0, objects.Count)).Value; + Primitive prim = objects.ElementAt(Bot.Random.Next(0, objects.Count - 1)).Value; // This appears to be a typical message sent when a viewer user clicks a clickable object Bot.Client.Self.Grab(prim.LocalID); diff --git a/OpenSim/Tools/pCampBot/pCampBot.cs b/OpenSim/Tools/pCampBot/pCampBot.cs index 3f43cff..6249fae 100644 --- a/OpenSim/Tools/pCampBot/pCampBot.cs +++ b/OpenSim/Tools/pCampBot/pCampBot.cs @@ -111,7 +111,7 @@ namespace pCampBot " -firstname first name for the bots\n" + " -lastname lastname for the bots. Each lastname will have _ appended, e.g. Ima Bot_0\n" + " -password password for the bots\n" + - " -b, behaviours behaviours for bots. Comma separated, e.g. p,g. Default is p\n", + " -b, behaviours behaviours for bots. Comma separated, e.g. p,g. Default is p\n" + " current options are:" + " p (physics)" + " g (grab)" + -- cgit v1.1 From fa79588a20fb4bcc79a24214b7c055efaff97f77 Mon Sep 17 00:00:00 2001 From: Justin Clark-Casey (justincc) Date: Tue, 3 Jan 2012 15:42:36 +0000 Subject: minor: add missing newlines to pCampbot usage statement --- OpenSim/Tools/pCampBot/pCampBot.cs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/pCampBot/pCampBot.cs b/OpenSim/Tools/pCampBot/pCampBot.cs index 6249fae..a73fcbe 100644 --- a/OpenSim/Tools/pCampBot/pCampBot.cs +++ b/OpenSim/Tools/pCampBot/pCampBot.cs @@ -112,10 +112,10 @@ namespace pCampBot " -lastname lastname for the bots. Each lastname will have _ appended, e.g. Ima Bot_0\n" + " -password password for the bots\n" + " -b, behaviours behaviours for bots. Comma separated, e.g. p,g. Default is p\n" + - " current options are:" + - " p (physics)" + - " g (grab)" + - " t (teleport)" + + " current options are:\n" + + " p (physics)\n" + + " g (grab)\n" + + " t (teleport)\n" + // " c (cross)" + " -wear set appearance folder to load from (default: no)\n" + " -h, -help show this message"); -- cgit v1.1 From a181fae72276073d7b3cd9c15e1448a3fabbb8f9 Mon Sep 17 00:00:00 2001 From: Justin Clark-Casey (justincc) Date: Wed, 29 Feb 2012 03:00:56 +0000 Subject: Don't start pCampbot if the user doesn't supply bot firstname, lastname stub and password --- OpenSim/Tools/pCampBot/pCampBot.cs | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/pCampBot/pCampBot.cs b/OpenSim/Tools/pCampBot/pCampBot.cs index a73fcbe..ec5ad04 100644 --- a/OpenSim/Tools/pCampBot/pCampBot.cs +++ b/OpenSim/Tools/pCampBot/pCampBot.cs @@ -56,6 +56,10 @@ namespace pCampBot { Help(); } + else if (config.Get("firstname") == null || config.Get("lastname") == null || config.Get("password") == null) + { + Console.WriteLine("ERROR: You must supply a firstname, lastname and password for the bots."); + } else { int botcount = config.GetInt("botcount", 1); -- cgit v1.1 From 94971bf3b9fd53b571701e7d9a3a94628763da71 Mon Sep 17 00:00:00 2001 From: Justin Clark-Casey (justincc) Date: Fri, 2 Mar 2012 01:31:28 +0000 Subject: Provide feedback on bot login states in pCampbot --- OpenSim/Tools/pCampBot/Bot.cs | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/pCampBot/Bot.cs b/OpenSim/Tools/pCampBot/Bot.cs index 0bd0bcc..da090dd 100644 --- a/OpenSim/Tools/pCampBot/Bot.cs +++ b/OpenSim/Tools/pCampBot/Bot.cs @@ -420,6 +420,8 @@ namespace pCampBot public void Network_LoginProgress(object sender, LoginProgressEventArgs args) { + m_log.DebugFormat("[BOT]: Bot {0} {1} in Network_LoginProcess", Name, args.Status); + if (args.Status == LoginStatus.Success) { if (OnConnected != null) @@ -431,10 +433,15 @@ namespace pCampBot public void Network_SimConnected(object sender, SimConnectedEventArgs args) { + m_log.DebugFormat( + "[BOT]: Bot {0} connected to {1} at {2}", Name, args.Simulator.Name, args.Simulator.IPEndPoint); } public void Network_OnDisconnected(object sender, DisconnectedEventArgs args) { + m_log.DebugFormat( + "[BOT]: Bot {0} disconnected reason {1}, message {2}", Name, args.Reason, args.Message); + // m_log.ErrorFormat("Fired Network_OnDisconnected"); // if ( -- cgit v1.1 From ec48a2f32ba991b89705b8212b0df8a79e961156 Mon Sep 17 00:00:00 2001 From: Justin Clark-Casey (justincc) Date: Fri, 2 Mar 2012 01:54:48 +0000 Subject: minor: Rename pCampbot console prompt to "pCampbot" rather than "Region" --- OpenSim/Tools/pCampBot/BotManager.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/pCampBot/BotManager.cs b/OpenSim/Tools/pCampBot/BotManager.cs index 6481e97..0f501b7 100644 --- a/OpenSim/Tools/pCampBot/BotManager.cs +++ b/OpenSim/Tools/pCampBot/BotManager.cs @@ -266,7 +266,7 @@ namespace pCampBot /// protected CommandConsole CreateConsole() { - return new LocalConsole("Region"); + return new LocalConsole("pCampbot"); } private void HandleShutdown(string module, string[] cmd) -- cgit v1.1 From ab4e6a02a52bfd473ea3c2050774103ec8eb3934 Mon Sep 17 00:00:00 2001 From: Justin Clark-Casey (justincc) Date: Fri, 11 May 2012 00:37:20 +0100 Subject: If a bot is not connected, show region name "(none)" instead of throwing an exception in the "show bots" command of pCampbot --- OpenSim/Tools/pCampBot/BotManager.cs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/pCampBot/BotManager.cs b/OpenSim/Tools/pCampBot/BotManager.cs index 0f501b7..fd32a6a 100644 --- a/OpenSim/Tools/pCampBot/BotManager.cs +++ b/OpenSim/Tools/pCampBot/BotManager.cs @@ -302,9 +302,11 @@ namespace pCampBot { foreach (Bot pb in m_lBot) { + Simulator currentSim = pb.Client.Network.CurrentSim; + MainConsole.Instance.OutputFormat( outputFormat, - pb.Name, pb.Client.Network.CurrentSim.Name, pb.IsConnected ? "Connected" : "Disconnected"); + pb.Name, currentSim != null ? currentSim.Name : "(none)", pb.IsConnected ? "Connected" : "Disconnected"); } } } -- cgit v1.1 From dc39ec82fa8343657ad9b45a7d9cfeb27bf26e79 Mon Sep 17 00:00:00 2001 From: Justin Clark-Casey (justincc) Date: Fri, 11 May 2012 00:53:21 +0100 Subject: Change bot.IsConnected to be ConnectionState with Disconnected, Connecting, Connnected and Disconnecting states --- OpenSim/Tools/pCampBot/Bot.cs | 23 ++++++++++++++++++++--- OpenSim/Tools/pCampBot/BotManager.cs | 4 ++-- 2 files changed, 22 insertions(+), 5 deletions(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/pCampBot/Bot.cs b/OpenSim/Tools/pCampBot/Bot.cs index da090dd..2b4a171 100644 --- a/OpenSim/Tools/pCampBot/Bot.cs +++ b/OpenSim/Tools/pCampBot/Bot.cs @@ -43,6 +43,14 @@ using Timer = System.Timers.Timer; namespace pCampBot { + public enum ConnectionState + { + Disconnected, + Connecting, + Connected, + Disconnecting + } + public class Bot { private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); @@ -86,7 +94,7 @@ namespace pCampBot /// /// Is this bot connected to the grid? /// - public bool IsConnected { get; private set; } + public ConnectionState ConnectionState { get; private set; } public string FirstName { get; private set; } public string LastName { get; private set; } @@ -130,6 +138,8 @@ namespace pCampBot BotManager bm, List behaviours, string firstName, string lastName, string password, string loginUri) { + ConnectionState = ConnectionState.Disconnected; + behaviours.ForEach(b => b.Initialize(this)); Client = new GridClient(); @@ -178,6 +188,8 @@ namespace pCampBot /// public void shutdown() { + ConnectionState = ConnectionState.Disconnecting; + if (m_actionThread != null) m_actionThread.Abort(); @@ -209,9 +221,11 @@ namespace pCampBot Client.Network.Disconnected += this.Network_OnDisconnected; Client.Objects.ObjectUpdate += Objects_NewPrim; + ConnectionState = ConnectionState.Connecting; + if (Client.Network.Login(FirstName, LastName, Password, "pCampBot", "Your name")) { - IsConnected = true; + ConnectionState = ConnectionState.Connected; Thread.Sleep(Random.Next(1000, 10000)); m_actionThread = new Thread(Action); @@ -241,6 +255,8 @@ namespace pCampBot } else { + ConnectionState = ConnectionState.Disconnected; + m_log.ErrorFormat( "{0} {1} cannot login: {2}", FirstName, LastName, Client.Network.LoginMessage); @@ -439,6 +455,8 @@ namespace pCampBot public void Network_OnDisconnected(object sender, DisconnectedEventArgs args) { + ConnectionState = ConnectionState.Disconnected; + m_log.DebugFormat( "[BOT]: Bot {0} disconnected reason {1}, message {2}", Name, args.Reason, args.Message); @@ -456,7 +474,6 @@ namespace pCampBot && OnDisconnected != null) // if (OnDisconnected != null) { - IsConnected = false; OnDisconnected(this, EventType.DISCONNECTED); } } diff --git a/OpenSim/Tools/pCampBot/BotManager.cs b/OpenSim/Tools/pCampBot/BotManager.cs index fd32a6a..d4bbc2a 100644 --- a/OpenSim/Tools/pCampBot/BotManager.cs +++ b/OpenSim/Tools/pCampBot/BotManager.cs @@ -242,7 +242,7 @@ namespace pCampBot lock (m_lBot) { - if (m_lBot.TrueForAll(b => !b.IsConnected)) + if (m_lBot.TrueForAll(b => b.ConnectionState == ConnectionState.Disconnected)) Environment.Exit(0); break; @@ -306,7 +306,7 @@ namespace pCampBot MainConsole.Instance.OutputFormat( outputFormat, - pb.Name, currentSim != null ? currentSim.Name : "(none)", pb.IsConnected ? "Connected" : "Disconnected"); + pb.Name, currentSim != null ? currentSim.Name : "(none)", pb.ConnectionState); } } } -- cgit v1.1 From 93b615c51df3dec8276aead52141534a7ed32ff9 Mon Sep 17 00:00:00 2001 From: Justin Clark-Casey (justincc) Date: Fri, 11 May 2012 01:37:03 +0100 Subject: Do each bot shutdown on its own threads to prevent one slow shutdown holding up all the rest. This does increase the aggressiveness of shutdown Also prevents the bot list being locked for a long period, which was preventing commands such as "show bots" from working during shutdown --- OpenSim/Tools/pCampBot/BotManager.cs | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/pCampBot/BotManager.cs b/OpenSim/Tools/pCampBot/BotManager.cs index d4bbc2a..d06c55b 100644 --- a/OpenSim/Tools/pCampBot/BotManager.cs +++ b/OpenSim/Tools/pCampBot/BotManager.cs @@ -251,13 +251,21 @@ namespace pCampBot } /// - /// Shutting down all bots + /// Shut down all bots /// + /// + /// We launch each shutdown on its own thread so that a slow shutting down bot doesn't hold up all the others. + /// public void doBotShutdown() { lock (m_lBot) - foreach (Bot pb in m_lBot) - pb.shutdown(); + { + foreach (Bot bot in m_lBot) + { + Bot thisBot = bot; + Util.FireAndForget(o => thisBot.shutdown()); + } + } } /// @@ -271,11 +279,8 @@ namespace pCampBot private void HandleShutdown(string module, string[] cmd) { - Util.FireAndForget(o => - { - m_log.Warn("[BOTMANAGER]: Shutting down bots"); - doBotShutdown(); - }); + m_log.Info("[BOTMANAGER]: Shutting down bots"); + doBotShutdown(); } private void HandleShowRegions(string module, string[] cmd) -- cgit v1.1 From 0ddf3c5289f32fc5ed3283d493f305286058e48c Mon Sep 17 00:00:00 2001 From: Justin Clark-Casey (justincc) Date: Fri, 11 May 2012 01:56:00 +0100 Subject: Do bot startup on another thread so console is responsive during this process --- OpenSim/Tools/pCampBot/BotManager.cs | 1 + OpenSim/Tools/pCampBot/pCampBot.cs | 5 ++++- 2 files changed, 5 insertions(+), 1 deletion(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/pCampBot/BotManager.cs b/OpenSim/Tools/pCampBot/BotManager.cs index d06c55b..6d4bdb1 100644 --- a/OpenSim/Tools/pCampBot/BotManager.cs +++ b/OpenSim/Tools/pCampBot/BotManager.cs @@ -222,6 +222,7 @@ namespace pCampBot Thread pbThread = new Thread(pb.startup); pbThread.Name = pb.Name; pbThread.IsBackground = true; + pbThread.Start(); } diff --git a/OpenSim/Tools/pCampBot/pCampBot.cs b/OpenSim/Tools/pCampBot/pCampBot.cs index ec5ad04..52e7501 100644 --- a/OpenSim/Tools/pCampBot/pCampBot.cs +++ b/OpenSim/Tools/pCampBot/pCampBot.cs @@ -27,6 +27,7 @@ using System; using System.Reflection; +using System.Threading; using log4net; using Nini.Config; using OpenSim.Framework; @@ -67,7 +68,9 @@ namespace pCampBot BotManager bm = new BotManager(); //startup specified number of bots. 1 is the default - bm.dobotStartup(botcount, config); + Thread startBotThread = new Thread(o => bm.dobotStartup(botcount, config)); + startBotThread.Name = "Initial start bots thread"; + startBotThread.Start(); while (true) { -- cgit v1.1 From 9c392f6a6894d532917a3b4b44720fa1e6e30be7 Mon Sep 17 00:00:00 2001 From: Justin Clark-Casey (justincc) Date: Fri, 11 May 2012 02:05:32 +0100 Subject: Stagger multiple bot logins by 5 seconds to make this part of the test more 'realistic' TODO: Need to make this value configurable by a command line parameter to pCampbot --- OpenSim/Tools/pCampBot/BotManager.cs | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/pCampBot/BotManager.cs b/OpenSim/Tools/pCampBot/BotManager.cs index 6d4bdb1..b9eabbf 100644 --- a/OpenSim/Tools/pCampBot/BotManager.cs +++ b/OpenSim/Tools/pCampBot/BotManager.cs @@ -49,6 +49,14 @@ namespace pCampBot { private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); + public const int DefaultLoginDelay = 5000; + + /// + /// Delay between logins of multiple bots. + /// + /// TODO: This value needs to be configurable by a command line argument. + public int LoginDelay { get; set; } + /// /// Command console /// @@ -84,6 +92,8 @@ namespace pCampBot /// public BotManager() { + LoginDelay = DefaultLoginDelay; + Rng = new Random(Environment.TickCount); AssetsReceived = new Dictionary(); RegionsKnown = new Dictionary(); @@ -224,6 +234,9 @@ namespace pCampBot pbThread.IsBackground = true; pbThread.Start(); + + // Stagger logins + Thread.Sleep(LoginDelay); } /// -- cgit v1.1 From f231ac39de7348965b5c4c04d8b29a885501c90d Mon Sep 17 00:00:00 2001 From: Justin Clark-Casey (justincc) Date: Fri, 11 May 2012 02:23:18 +0100 Subject: Increase minimum period between bot actions to 3 seconds, so that teleport doesn't fall under the minimum 2 second limits that clients take to process it --- OpenSim/Tools/pCampBot/Bot.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/pCampBot/Bot.cs b/OpenSim/Tools/pCampBot/Bot.cs index 2b4a171..95dba9f 100644 --- a/OpenSim/Tools/pCampBot/Bot.cs +++ b/OpenSim/Tools/pCampBot/Bot.cs @@ -167,10 +167,10 @@ namespace pCampBot Behaviours.ForEach( b => { + Thread.Sleep(Random.Next(3000, 10000)); + // m_log.DebugFormat("[pCAMPBOT]: For {0} performing action {1}", Name, b.GetType()); b.Action(); - - Thread.Sleep(Random.Next(1000, 10000)); } ); } -- cgit v1.1 From 480216f50f40bdb9709f9c6eec189a2ca027f395 Mon Sep 17 00:00:00 2001 From: Justin Clark-Casey (justincc) Date: Fri, 11 May 2012 02:38:29 +0100 Subject: Print out more information on connecting bots --- OpenSim/Tools/pCampBot/Bot.cs | 2 +- OpenSim/Tools/pCampBot/BotManager.cs | 26 ++++++++++++++++++-------- 2 files changed, 19 insertions(+), 9 deletions(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/pCampBot/Bot.cs b/OpenSim/Tools/pCampBot/Bot.cs index 95dba9f..b6cd287 100644 --- a/OpenSim/Tools/pCampBot/Bot.cs +++ b/OpenSim/Tools/pCampBot/Bot.cs @@ -168,7 +168,7 @@ namespace pCampBot b => { Thread.Sleep(Random.Next(3000, 10000)); - + // m_log.DebugFormat("[pCAMPBOT]: For {0} performing action {1}", Name, b.GetType()); b.Action(); } diff --git a/OpenSim/Tools/pCampBot/BotManager.cs b/OpenSim/Tools/pCampBot/BotManager.cs index b9eabbf..d615b3f 100644 --- a/OpenSim/Tools/pCampBot/BotManager.cs +++ b/OpenSim/Tools/pCampBot/BotManager.cs @@ -161,28 +161,34 @@ namespace pCampBot Array.ForEach( cs.GetString("behaviours", "p").Split(new char[] { ',' }), b => behaviourSwitches.Add(b)); + MainConsole.Instance.OutputFormat( + "[BOT MANAGER]: Starting {0} bots connecting to {1}, named {2} {3}_", + botcount, + loginUri, + firstName, + lastNameStem); + + MainConsole.Instance.OutputFormat("[BOT MANAGER]: Delay between logins is {0}ms", LoginDelay); + for (int i = 0; i < botcount; i++) { string lastName = string.Format("{0}_{1}", lastNameStem, i); + // We must give each bot its own list of instantiated behaviours since they store state. List behaviours = new List(); - + // Hard-coded for now if (behaviourSwitches.Contains("p")) behaviours.Add(new PhysicsBehaviour()); - + if (behaviourSwitches.Contains("g")) behaviours.Add(new GrabbingBehaviour()); - + if (behaviourSwitches.Contains("t")) behaviours.Add(new TeleportBehaviour()); - + if (behaviourSwitches.Contains("c")) behaviours.Add(new CrossBehaviour()); - - MainConsole.Instance.OutputFormat( - "[BOT MANAGER]: Bot {0} {1} configured for behaviours {2}", - firstName, lastName, string.Join(",", behaviours.ConvertAll(b => b.Name).ToArray())); StartBot(this, behaviours, firstName, lastName, password, loginUri); } @@ -221,6 +227,10 @@ namespace pCampBot BotManager bm, List behaviours, string firstName, string lastName, string password, string loginUri) { + MainConsole.Instance.OutputFormat( + "[BOT MANAGER]: Starting bot {0} {1}, behaviours are {2}", + firstName, lastName, string.Join(",", behaviours.ConvertAll(b => b.Name).ToArray())); + Bot pb = new Bot(bm, behaviours, firstName, lastName, password, loginUri); pb.OnConnected += handlebotEvent; -- cgit v1.1 From 565c73751cd1ac9b09393a0801591ced04d7e635 Mon Sep 17 00:00:00 2001 From: Justin Clark-Casey (justincc) Date: Fri, 18 May 2012 00:49:39 +0100 Subject: Invoke log4net configurator in pCampBot.exe in order to get OpenSim sylte logging --- OpenSim/Tools/pCampBot/pCampBot.cs | 3 +++ 1 file changed, 3 insertions(+) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/pCampBot/pCampBot.cs b/OpenSim/Tools/pCampBot/pCampBot.cs index 52e7501..9e82577 100644 --- a/OpenSim/Tools/pCampBot/pCampBot.cs +++ b/OpenSim/Tools/pCampBot/pCampBot.cs @@ -29,6 +29,7 @@ using System; using System.Reflection; using System.Threading; using log4net; +using log4net.Config; using Nini.Config; using OpenSim.Framework; using OpenSim.Framework.Console; @@ -52,6 +53,8 @@ namespace pCampBot [STAThread] public static void Main(string[] args) { + XmlConfigurator.Configure(); + IConfig config = ParseConfig(args); if (config.Get("help") != null || config.Get("loginuri") == null) { -- cgit v1.1 From c215b1ad169cb8c3add70622f610e980ee9cfa31 Mon Sep 17 00:00:00 2001 From: Justin Clark-Casey (justincc) Date: Fri, 8 Jun 2012 03:53:03 +0100 Subject: If logging a client out due to ack timeout, do this asynchronously rather than synchronously on the outgoing packet loop. This is the same async behaviour as normal logouts. This is necessary because the event queue will sleep the thread for 5 seconds on an ack timeout logout as the client isn't around to pick up the final event queue messages. --- OpenSim/Tools/pCampBot/Bot.cs | 3 +++ 1 file changed, 3 insertions(+) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/pCampBot/Bot.cs b/OpenSim/Tools/pCampBot/Bot.cs index b6cd287..daaa3c0 100644 --- a/OpenSim/Tools/pCampBot/Bot.cs +++ b/OpenSim/Tools/pCampBot/Bot.cs @@ -480,6 +480,9 @@ namespace pCampBot public void Objects_NewPrim(object sender, PrimEventArgs args) { +// if (Name.EndsWith("4")) +// throw new Exception("Aaargh"); + Primitive prim = args.Prim; if (prim != null) -- cgit v1.1 From 916e3bf886ee622e2f18d6eb74f90fee8c630471 Mon Sep 17 00:00:00 2001 From: Justin Clark-Casey (justincc) Date: Wed, 11 Jul 2012 22:54:22 +0100 Subject: Where possible, use the system Encoding.ASCII and Encoding.UTF8 rather than constructing fresh copies. The encodings are thread-safe and already used in such a manner in other places. This isn't done where Byte Order Mark output is suppressed, since Encoding.UTF8 is constructed to output the BOM. --- OpenSim/Tools/Compiler/Program.cs | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/Compiler/Program.cs b/OpenSim/Tools/Compiler/Program.cs index 249e18b..6c59c31 100644 --- a/OpenSim/Tools/Compiler/Program.cs +++ b/OpenSim/Tools/Compiler/Program.cs @@ -28,6 +28,7 @@ using System; using System.Collections.Generic; using System.IO; +using System.Text; using Microsoft.CSharp; using OpenSim.Region.ScriptEngine.Shared.CodeTools; using System.CodeDom.Compiler; @@ -201,12 +202,8 @@ namespace OpenSim.Tools.LSL.Compiler // Convert to base64 // string filetext = System.Convert.ToBase64String(data); - - System.Text.ASCIIEncoding enc = new System.Text.ASCIIEncoding(); - - Byte[] buf = enc.GetBytes(filetext); - - FileStream sfs = File.Create(OutFile+".text"); + Byte[] buf = Encoding.ASCII.GetBytes(filetext); + FileStream sfs = File.Create(OutFile + ".text"); sfs.Write(buf, 0, buf.Length); sfs.Close(); @@ -222,9 +219,9 @@ namespace OpenSim.Tools.LSL.Compiler // } // } - buf = enc.GetBytes(posmap); + buf = Encoding.ASCII.GetBytes(posmap); - FileStream mfs = File.Create(OutFile+".map"); + FileStream mfs = File.Create(OutFile + ".map"); mfs.Write(buf, 0, buf.Length); mfs.Close(); -- cgit v1.1 From 5f500c89ce9df27910fa6007d4d87aa238a8a2ba Mon Sep 17 00:00:00 2001 From: Justin Clark-Casey (justincc) Date: Wed, 1 Aug 2012 22:30:34 +0100 Subject: Fix a bug in pCampbot grabbing behaviour where an exception would be thrown if the bot was not yet aware of any objects. --- OpenSim/Tools/pCampBot/Behaviours/GrabbingBehaviour.cs | 3 +++ 1 file changed, 3 insertions(+) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/pCampBot/Behaviours/GrabbingBehaviour.cs b/OpenSim/Tools/pCampBot/Behaviours/GrabbingBehaviour.cs index 701881e..66a336a 100644 --- a/OpenSim/Tools/pCampBot/Behaviours/GrabbingBehaviour.cs +++ b/OpenSim/Tools/pCampBot/Behaviours/GrabbingBehaviour.cs @@ -47,6 +47,9 @@ namespace pCampBot { Dictionary objects = Bot.Objects; + if (objects.Count <= 0) + return; + Primitive prim = objects.ElementAt(Bot.Random.Next(0, objects.Count - 1)).Value; // This appears to be a typical message sent when a viewer user clicks a clickable object -- cgit v1.1 From df62d113abf5d9264caca7f2e554d061c260e522 Mon Sep 17 00:00:00 2001 From: Diva Canto Date: Wed, 14 Nov 2012 21:18:18 -0800 Subject: The last few AssemblyInfos. Finished! --- OpenSim/Tools/Compiler/Properties/AssemblyInfo.cs | 33 ++++++++++++++++++++++ OpenSim/Tools/Configger/Properties/AssemblyInfo.cs | 33 ++++++++++++++++++++++ OpenSim/Tools/pCampBot/Properties/AssemblyInfo.cs | 33 ++++++++++++++++++++++ 3 files changed, 99 insertions(+) create mode 100644 OpenSim/Tools/Compiler/Properties/AssemblyInfo.cs create mode 100644 OpenSim/Tools/Configger/Properties/AssemblyInfo.cs create mode 100644 OpenSim/Tools/pCampBot/Properties/AssemblyInfo.cs (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/Compiler/Properties/AssemblyInfo.cs b/OpenSim/Tools/Compiler/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..e1a1fda --- /dev/null +++ b/OpenSim/Tools/Compiler/Properties/AssemblyInfo.cs @@ -0,0 +1,33 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("OpenSim.Tools.lslc")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("http://opensimulator.org")] +[assembly: AssemblyProduct("OpenSim")] +[assembly: AssemblyCopyright("OpenSimulator developers")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("002864e7-b2a2-41d2-add8-82f653663160")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +[assembly: AssemblyVersion("0.7.5.*")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/OpenSim/Tools/Configger/Properties/AssemblyInfo.cs b/OpenSim/Tools/Configger/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..62a2f2d --- /dev/null +++ b/OpenSim/Tools/Configger/Properties/AssemblyInfo.cs @@ -0,0 +1,33 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("OpenSim.Tools.Configger")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("http://opensimulator.org")] +[assembly: AssemblyProduct("OpenSim")] +[assembly: AssemblyCopyright("OpenSimulator developers")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("67d7fdf2-554c-40f0-8f9d-f71373c20926")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +[assembly: AssemblyVersion("0.7.5.*")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/OpenSim/Tools/pCampBot/Properties/AssemblyInfo.cs b/OpenSim/Tools/pCampBot/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..20598f1 --- /dev/null +++ b/OpenSim/Tools/pCampBot/Properties/AssemblyInfo.cs @@ -0,0 +1,33 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("pCampBot")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("http://opensimulator.org")] +[assembly: AssemblyProduct("OpenSim")] +[assembly: AssemblyCopyright("OpenSimulator developers")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("84a69c60-76d3-4846-bd5b-0e1083774039")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +[assembly: AssemblyVersion("0.7.5.*")] +[assembly: AssemblyFileVersion("1.0.0.0")] -- cgit v1.1 From 1f1da230976451d30d920c237d53c699ba96b9d9 Mon Sep 17 00:00:00 2001 From: Justin Clark-Casey (justincc) Date: Tue, 5 Feb 2013 00:23:17 +0000 Subject: Bump version and assembly version numbers from 0.7.5 to 0.7.6 This is mostly Bluewall's work but I am also bumping the general version number OpenSimulator 0.7.5 remains in the release candidate stage. I'm doing this because master is significantly adding things that will not be in 0.7.5 This update should not cause issues with existing external binary DLLs because our DLLs do not have strong names and so the exact version match requirement is not in force. --- OpenSim/Tools/Compiler/Properties/AssemblyInfo.cs | 2 +- OpenSim/Tools/Configger/Properties/AssemblyInfo.cs | 2 +- OpenSim/Tools/pCampBot/Properties/AssemblyInfo.cs | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/Compiler/Properties/AssemblyInfo.cs b/OpenSim/Tools/Compiler/Properties/AssemblyInfo.cs index e1a1fda..b98e2d2 100644 --- a/OpenSim/Tools/Compiler/Properties/AssemblyInfo.cs +++ b/OpenSim/Tools/Compiler/Properties/AssemblyInfo.cs @@ -29,5 +29,5 @@ using System.Runtime.InteropServices; // Build Number // Revision // -[assembly: AssemblyVersion("0.7.5.*")] +[assembly: AssemblyVersion("0.7.6.*")] [assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/OpenSim/Tools/Configger/Properties/AssemblyInfo.cs b/OpenSim/Tools/Configger/Properties/AssemblyInfo.cs index 62a2f2d..89aafa3 100644 --- a/OpenSim/Tools/Configger/Properties/AssemblyInfo.cs +++ b/OpenSim/Tools/Configger/Properties/AssemblyInfo.cs @@ -29,5 +29,5 @@ using System.Runtime.InteropServices; // Build Number // Revision // -[assembly: AssemblyVersion("0.7.5.*")] +[assembly: AssemblyVersion("0.7.6.*")] [assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/OpenSim/Tools/pCampBot/Properties/AssemblyInfo.cs b/OpenSim/Tools/pCampBot/Properties/AssemblyInfo.cs index 20598f1..c4d278a 100644 --- a/OpenSim/Tools/pCampBot/Properties/AssemblyInfo.cs +++ b/OpenSim/Tools/pCampBot/Properties/AssemblyInfo.cs @@ -29,5 +29,5 @@ using System.Runtime.InteropServices; // Build Number // Revision // -[assembly: AssemblyVersion("0.7.5.*")] +[assembly: AssemblyVersion("0.7.6.*")] [assembly: AssemblyFileVersion("1.0.0.0")] -- cgit v1.1 From 4779f7d7d5ce0e284d9ed15104389f8479b11545 Mon Sep 17 00:00:00 2001 From: Diva Canto Date: Tue, 19 Feb 2013 17:14:55 -0800 Subject: Deleted all AssemblyFileVersion directives --- OpenSim/Tools/Compiler/Properties/AssemblyInfo.cs | 2 +- OpenSim/Tools/Configger/Properties/AssemblyInfo.cs | 2 +- OpenSim/Tools/pCampBot/Properties/AssemblyInfo.cs | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/Compiler/Properties/AssemblyInfo.cs b/OpenSim/Tools/Compiler/Properties/AssemblyInfo.cs index b98e2d2..088be45 100644 --- a/OpenSim/Tools/Compiler/Properties/AssemblyInfo.cs +++ b/OpenSim/Tools/Compiler/Properties/AssemblyInfo.cs @@ -30,4 +30,4 @@ using System.Runtime.InteropServices; // Revision // [assembly: AssemblyVersion("0.7.6.*")] -[assembly: AssemblyFileVersion("1.0.0.0")] + diff --git a/OpenSim/Tools/Configger/Properties/AssemblyInfo.cs b/OpenSim/Tools/Configger/Properties/AssemblyInfo.cs index 89aafa3..0348628 100644 --- a/OpenSim/Tools/Configger/Properties/AssemblyInfo.cs +++ b/OpenSim/Tools/Configger/Properties/AssemblyInfo.cs @@ -30,4 +30,4 @@ using System.Runtime.InteropServices; // Revision // [assembly: AssemblyVersion("0.7.6.*")] -[assembly: AssemblyFileVersion("1.0.0.0")] + diff --git a/OpenSim/Tools/pCampBot/Properties/AssemblyInfo.cs b/OpenSim/Tools/pCampBot/Properties/AssemblyInfo.cs index c4d278a..78f3603 100644 --- a/OpenSim/Tools/pCampBot/Properties/AssemblyInfo.cs +++ b/OpenSim/Tools/pCampBot/Properties/AssemblyInfo.cs @@ -30,4 +30,4 @@ using System.Runtime.InteropServices; // Revision // [assembly: AssemblyVersion("0.7.6.*")] -[assembly: AssemblyFileVersion("1.0.0.0")] + -- cgit v1.1 From 5f4c4df227025c6b6156ce8238b56553dca4b5ae Mon Sep 17 00:00:00 2001 From: Melanie Date: Tue, 26 Mar 2013 03:40:06 +0000 Subject: Phase 1 of implementing a transfer permission. Overwrite libOMV's PermissionMask with our own and add export permissions as well as a new definition for "All" as meaning "all conventional permissions" rather than "all possible permissions" --- OpenSim/Tools/pCampBot/Bot.cs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/pCampBot/Bot.cs b/OpenSim/Tools/pCampBot/Bot.cs index daaa3c0..9821180 100644 --- a/OpenSim/Tools/pCampBot/Bot.cs +++ b/OpenSim/Tools/pCampBot/Bot.cs @@ -40,6 +40,7 @@ using OpenSim.Framework; using OpenSim.Framework.Console; using pCampBot.Interfaces; using Timer = System.Timers.Timer; +using PermissionMask = OpenSim.Framework.PermissionMask; namespace pCampBot { @@ -362,7 +363,7 @@ namespace pCampBot asset.Encode(); transid = Client.Assets.RequestUpload(asset,true); Client.Inventory.RequestCreateItem(clothfolder.UUID, "MyClothing" + i.ToString(), "MyClothing", AssetType.Clothing, - transid, InventoryType.Wearable, asset.WearableType, PermissionMask.All, delegate(bool success, InventoryItem item) + transid, InventoryType.Wearable, asset.WearableType, (OpenMetaverse.PermissionMask)PermissionMask.All, delegate(bool success, InventoryItem item) { if (success) { @@ -386,7 +387,7 @@ namespace pCampBot asset.Encode(); transid = Client.Assets.RequestUpload(asset,true); Client.Inventory.RequestCreateItem(clothfolder.UUID, "MyBodyPart" + i.ToString(), "MyBodyPart", AssetType.Bodypart, - transid, InventoryType.Wearable, asset.WearableType, PermissionMask.All, delegate(bool success, InventoryItem item) + transid, InventoryType.Wearable, asset.WearableType, (OpenMetaverse.PermissionMask)PermissionMask.All, delegate(bool success, InventoryItem item) { if (success) { -- cgit v1.1 From 3194ffdab8d54723ad1546846c1d45472d6a8464 Mon Sep 17 00:00:00 2001 From: Diva Canto Date: Wed, 7 Aug 2013 08:01:59 -0700 Subject: Fixed incomplete commit r/23317 -- see_into_region. Put the guard around estate bans also, and delete the obsolete config var. --- OpenSim/Tools/Configger/ConfigurationLoader.cs | 1 - 1 file changed, 1 deletion(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/Configger/ConfigurationLoader.cs b/OpenSim/Tools/Configger/ConfigurationLoader.cs index 28bcc99..72ba185 100644 --- a/OpenSim/Tools/Configger/ConfigurationLoader.cs +++ b/OpenSim/Tools/Configger/ConfigurationLoader.cs @@ -239,7 +239,6 @@ namespace OpenSim.Tools.Configger config.Set("physics", "OpenDynamicsEngine"); config.Set("meshing", "Meshmerizer"); config.Set("physical_prim", true); - config.Set("see_into_this_sim_from_neighbor", true); config.Set("serverside_object_permissions", true); config.Set("storage_plugin", "OpenSim.Data.SQLite.dll"); config.Set("storage_connection_string", "URI=file:OpenSim.db,version=3"); -- cgit v1.1 From e5b1688913d0fb9e72f67d0b476778a733ddb4b5 Mon Sep 17 00:00:00 2001 From: Justin Clark-Casey (justincc) Date: Mon, 12 Aug 2013 18:48:18 +0100 Subject: Add none behaviour to pCampbot when one wants bots to just stand around --- OpenSim/Tools/pCampBot/Behaviours/NoneBehaviour.cs | 43 ++++++++++++++++++++++ OpenSim/Tools/pCampBot/BotManager.cs | 17 +++++---- OpenSim/Tools/pCampBot/pCampBot.cs | 7 ++-- 3 files changed, 57 insertions(+), 10 deletions(-) create mode 100644 OpenSim/Tools/pCampBot/Behaviours/NoneBehaviour.cs (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/pCampBot/Behaviours/NoneBehaviour.cs b/OpenSim/Tools/pCampBot/Behaviours/NoneBehaviour.cs new file mode 100644 index 0000000..9cf8a54 --- /dev/null +++ b/OpenSim/Tools/pCampBot/Behaviours/NoneBehaviour.cs @@ -0,0 +1,43 @@ +/* + * Copyright (c) Contributors, http://opensimulator.org/ + * See CONTRIBUTORS.TXT for a full list of copyright holders. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the OpenSimulator Project nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +using OpenMetaverse; +using System; +using System.Collections.Generic; +using System.Linq; +using pCampBot.Interfaces; + +namespace pCampBot +{ + /// + /// Do nothing + /// + public class NoneBehaviour : AbstractBehaviour + { + public NoneBehaviour() { Name = "None"; } + } +} \ No newline at end of file diff --git a/OpenSim/Tools/pCampBot/BotManager.cs b/OpenSim/Tools/pCampBot/BotManager.cs index d615b3f..1a46380 100644 --- a/OpenSim/Tools/pCampBot/BotManager.cs +++ b/OpenSim/Tools/pCampBot/BotManager.cs @@ -177,18 +177,21 @@ namespace pCampBot // We must give each bot its own list of instantiated behaviours since they store state. List behaviours = new List(); - // Hard-coded for now - if (behaviourSwitches.Contains("p")) - behaviours.Add(new PhysicsBehaviour()); - + // Hard-coded for now + if (behaviourSwitches.Contains("c")) + behaviours.Add(new CrossBehaviour()); + if (behaviourSwitches.Contains("g")) behaviours.Add(new GrabbingBehaviour()); + + if (behaviourSwitches.Contains("n")) + behaviours.Add(new NoneBehaviour()); + + if (behaviourSwitches.Contains("p")) + behaviours.Add(new PhysicsBehaviour()); if (behaviourSwitches.Contains("t")) behaviours.Add(new TeleportBehaviour()); - - if (behaviourSwitches.Contains("c")) - behaviours.Add(new CrossBehaviour()); StartBot(this, behaviours, firstName, lastName, password, loginUri); } diff --git a/OpenSim/Tools/pCampBot/pCampBot.cs b/OpenSim/Tools/pCampBot/pCampBot.cs index 9e82577..2707a49 100644 --- a/OpenSim/Tools/pCampBot/pCampBot.cs +++ b/OpenSim/Tools/pCampBot/pCampBot.cs @@ -123,9 +123,10 @@ namespace pCampBot " -password password for the bots\n" + " -b, behaviours behaviours for bots. Comma separated, e.g. p,g. Default is p\n" + " current options are:\n" + - " p (physics)\n" + - " g (grab)\n" + - " t (teleport)\n" + + " p (physics - bots constantly move and jump around)\n" + + " g (grab - bots randomly click prims whether set clickable or not)\n" + + " n (none - bots do nothing)\n" + + " t (teleport - bots regularly teleport between regions on the grid)\n" + // " c (cross)" + " -wear set appearance folder to load from (default: no)\n" + " -h, -help show this message"); -- cgit v1.1 From c49ea491a3d081ff788cc33ca29030690db3a939 Mon Sep 17 00:00:00 2001 From: Justin Clark-Casey (justincc) Date: Mon, 12 Aug 2013 22:49:17 +0100 Subject: Make show bots pCampbot console command print connected, connecting, etc. bot totals at end. --- OpenSim/Tools/pCampBot/BotManager.cs | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/pCampBot/BotManager.cs b/OpenSim/Tools/pCampBot/BotManager.cs index 1a46380..74bd36a 100644 --- a/OpenSim/Tools/pCampBot/BotManager.cs +++ b/OpenSim/Tools/pCampBot/BotManager.cs @@ -330,17 +330,30 @@ namespace pCampBot string outputFormat = "{0,-30} {1, -30} {2,-14}"; MainConsole.Instance.OutputFormat(outputFormat, "Name", "Region", "Status"); + Dictionary totals = new Dictionary(); + foreach (object o in Enum.GetValues(typeof(ConnectionState))) + totals[(ConnectionState)o] = 0; + lock (m_lBot) { foreach (Bot pb in m_lBot) { Simulator currentSim = pb.Client.Network.CurrentSim; + totals[pb.ConnectionState]++; MainConsole.Instance.OutputFormat( outputFormat, pb.Name, currentSim != null ? currentSim.Name : "(none)", pb.ConnectionState); } } + + ConsoleDisplayList cdl = new ConsoleDisplayList(); + + foreach (KeyValuePair kvp in totals) + cdl.AddRow(kvp.Key, kvp.Value); + + + MainConsole.Instance.OutputFormat("\n{0}", cdl.ToString()); } /* -- cgit v1.1 From 5933f9448d839b9f6db391dedc493bb5cc951d66 Mon Sep 17 00:00:00 2001 From: Justin Clark-Casey (justincc) Date: Tue, 13 Aug 2013 23:54:50 +0100 Subject: Add a SendAgentUpdates setting to a new pCampbot.ini.example file which can control whether bots send agent updates pCampbot.ini.example is used by copying to pCampbot.ini, like other ini files --- OpenSim/Tools/pCampBot/Bot.cs | 20 +------------------- OpenSim/Tools/pCampBot/BotManager.cs | 35 ++++++++++++++++++++--------------- OpenSim/Tools/pCampBot/pCampBot.cs | 35 +++++++++++++++++++++++++++++------ 3 files changed, 50 insertions(+), 40 deletions(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/pCampBot/Bot.cs b/OpenSim/Tools/pCampBot/Bot.cs index 9821180..c56d29b 100644 --- a/OpenSim/Tools/pCampBot/Bot.cs +++ b/OpenSim/Tools/pCampBot/Bot.cs @@ -64,11 +64,6 @@ namespace pCampBot public BotManager Manager { get; private set; } /// - /// Bot config, passed from BotManager. - /// - private IConfig startupConfig; - - /// /// Behaviours implemented by this bot. /// /// @@ -153,9 +148,6 @@ namespace pCampBot LoginUri = loginUri; Manager = bm; - startupConfig = bm.Config; - readconfig(); - Behaviours = behaviours; } @@ -177,14 +169,6 @@ namespace pCampBot } /// - /// Read the Nini config and initialize - /// - public void readconfig() - { - wear = startupConfig.GetString("wear", "no"); - } - - /// /// Tells LibSecondLife to logout and disconnect. Raises the disconnect events once it finishes. /// public void shutdown() @@ -207,6 +191,7 @@ namespace pCampBot Client.Settings.AVATAR_TRACKING = false; Client.Settings.OBJECT_TRACKING = false; Client.Settings.SEND_AGENT_THROTTLE = true; + Client.Settings.SEND_AGENT_UPDATES = false; Client.Settings.SEND_PINGS = true; Client.Settings.STORE_LAND_PATCHES = false; Client.Settings.USE_ASSET_CACHE = false; @@ -481,9 +466,6 @@ namespace pCampBot public void Objects_NewPrim(object sender, PrimEventArgs args) { -// if (Name.EndsWith("4")) -// throw new Exception("Aaargh"); - Primitive prim = args.Prim; if (prim != null) diff --git a/OpenSim/Tools/pCampBot/BotManager.cs b/OpenSim/Tools/pCampBot/BotManager.cs index 74bd36a..16b02b9 100644 --- a/OpenSim/Tools/pCampBot/BotManager.cs +++ b/OpenSim/Tools/pCampBot/BotManager.cs @@ -63,6 +63,11 @@ namespace pCampBot protected CommandConsole m_console; /// + /// Controls whether bots start out sending agent updates on connection. + /// + public bool BotsInitSendAgentUpdates { get; set; } + + /// /// Created bots, whether active or inactive. /// protected List m_lBot; @@ -73,11 +78,6 @@ namespace pCampBot public Random Rng { get; private set; } /// - /// Overall configuration. - /// - public IConfig Config { get; private set; } - - /// /// Track the assets we have and have not received so we don't endlessly repeat requests. /// public Dictionary AssetsReceived { get; private set; } @@ -92,6 +92,8 @@ namespace pCampBot /// public BotManager() { + BotsInitSendAgentUpdates = true; + LoginDelay = DefaultLoginDelay; Rng = new Random(Environment.TickCount); @@ -148,18 +150,17 @@ namespace pCampBot /// /// How many bots to start up /// The configuration for the bots to use - public void dobotStartup(int botcount, IConfig cs) + public void dobotStartup(int botcount, IConfig startupConfig) { - Config = cs; - - string firstName = cs.GetString("firstname"); - string lastNameStem = cs.GetString("lastname"); - string password = cs.GetString("password"); - string loginUri = cs.GetString("loginuri"); + string firstName = startupConfig.GetString("firstname"); + string lastNameStem = startupConfig.GetString("lastname"); + string password = startupConfig.GetString("password"); + string loginUri = startupConfig.GetString("loginuri"); + string wearSetting = startupConfig.GetString("wear", "no"); HashSet behaviourSwitches = new HashSet(); Array.ForEach( - cs.GetString("behaviours", "p").Split(new char[] { ',' }), b => behaviourSwitches.Add(b)); + startupConfig.GetString("behaviours", "p").Split(new char[] { ',' }), b => behaviourSwitches.Add(b)); MainConsole.Instance.OutputFormat( "[BOT MANAGER]: Starting {0} bots connecting to {1}, named {2} {3}_", @@ -169,6 +170,7 @@ namespace pCampBot lastNameStem); MainConsole.Instance.OutputFormat("[BOT MANAGER]: Delay between logins is {0}ms", LoginDelay); + MainConsole.Instance.OutputFormat("[BOT MANAGER]: BotsSendAgentUpdates is {0}", BotsInitSendAgentUpdates); for (int i = 0; i < botcount; i++) { @@ -193,7 +195,7 @@ namespace pCampBot if (behaviourSwitches.Contains("t")) behaviours.Add(new TeleportBehaviour()); - StartBot(this, behaviours, firstName, lastName, password, loginUri); + StartBot(this, behaviours, firstName, lastName, password, loginUri, wearSetting); } } @@ -226,15 +228,18 @@ namespace pCampBot /// Last name /// Password /// Login URI + /// public void StartBot( BotManager bm, List behaviours, - string firstName, string lastName, string password, string loginUri) + string firstName, string lastName, string password, string loginUri, string wearSetting) { MainConsole.Instance.OutputFormat( "[BOT MANAGER]: Starting bot {0} {1}, behaviours are {2}", firstName, lastName, string.Join(",", behaviours.ConvertAll(b => b.Name).ToArray())); Bot pb = new Bot(bm, behaviours, firstName, lastName, password, loginUri); + pb.wear = wearSetting; + pb.Client.Settings.SEND_AGENT_UPDATES = BotsInitSendAgentUpdates; pb.OnConnected += handlebotEvent; pb.OnDisconnected += handlebotEvent; diff --git a/OpenSim/Tools/pCampBot/pCampBot.cs b/OpenSim/Tools/pCampBot/pCampBot.cs index 2707a49..e43037d 100644 --- a/OpenSim/Tools/pCampBot/pCampBot.cs +++ b/OpenSim/Tools/pCampBot/pCampBot.cs @@ -26,6 +26,7 @@ */ using System; +using System.IO; using System.Reflection; using System.Threading; using log4net; @@ -50,28 +51,50 @@ namespace pCampBot { private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); + public const string ConfigFileName = "pCampbot.ini"; + [STAThread] public static void Main(string[] args) { XmlConfigurator.Configure(); - IConfig config = ParseConfig(args); - if (config.Get("help") != null || config.Get("loginuri") == null) + IConfig commandLineConfig = ParseConfig(args); + if (commandLineConfig.Get("help") != null || commandLineConfig.Get("loginuri") == null) { Help(); } - else if (config.Get("firstname") == null || config.Get("lastname") == null || config.Get("password") == null) + else if ( + commandLineConfig.Get("firstname") == null + || commandLineConfig.Get("lastname") == null + || commandLineConfig.Get("password") == null) { Console.WriteLine("ERROR: You must supply a firstname, lastname and password for the bots."); } else { - int botcount = config.GetInt("botcount", 1); - BotManager bm = new BotManager(); + string iniFilePath = Path.GetFullPath(Path.Combine(Util.configDir(), ConfigFileName)); + + if (File.Exists(iniFilePath)) + { + m_log.InfoFormat("[PCAMPBOT]: Reading configuration settings from {0}", iniFilePath); + + IConfigSource configSource = new IniConfigSource(iniFilePath); + + IConfig botConfig = configSource.Configs["Bot"]; + + if (botConfig != null) + { + bm.BotsInitSendAgentUpdates + = botConfig.GetBoolean("SendAgentUpdates", bm.BotsInitSendAgentUpdates); + } + } + + int botcount = commandLineConfig.GetInt("botcount", 1); + //startup specified number of bots. 1 is the default - Thread startBotThread = new Thread(o => bm.dobotStartup(botcount, config)); + Thread startBotThread = new Thread(o => bm.dobotStartup(botcount, commandLineConfig)); startBotThread.Name = "Initial start bots thread"; startBotThread.Start(); -- cgit v1.1 From 2146b201694a128764e66680d151b68d83610880 Mon Sep 17 00:00:00 2001 From: Justin Clark-Casey (justincc) Date: Wed, 14 Aug 2013 16:51:51 +0100 Subject: Add the ability to explicitly specify a login start location to pCampbot via the -start parameter --- OpenSim/Tools/pCampBot/Bot.cs | 7 +++-- OpenSim/Tools/pCampBot/BotManager.cs | 60 +++++++++++++++++++++++++++++++----- OpenSim/Tools/pCampBot/pCampBot.cs | 36 ++++++++++++---------- 3 files changed, 76 insertions(+), 27 deletions(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/pCampBot/Bot.cs b/OpenSim/Tools/pCampBot/Bot.cs index c56d29b..79344e8 100644 --- a/OpenSim/Tools/pCampBot/Bot.cs +++ b/OpenSim/Tools/pCampBot/Bot.cs @@ -97,6 +97,8 @@ namespace pCampBot public string Name { get; private set; } public string Password { get; private set; } public string LoginUri { get; private set; } + public string StartLocation { get; private set; } + public string saveDir; public string wear; @@ -132,7 +134,7 @@ namespace pCampBot /// public Bot( BotManager bm, List behaviours, - string firstName, string lastName, string password, string loginUri) + string firstName, string lastName, string password, string startLocation, string loginUri) { ConnectionState = ConnectionState.Disconnected; @@ -146,6 +148,7 @@ namespace pCampBot Name = string.Format("{0} {1}", FirstName, LastName); Password = password; LoginUri = loginUri; + StartLocation = startLocation; Manager = bm; Behaviours = behaviours; @@ -209,7 +212,7 @@ namespace pCampBot ConnectionState = ConnectionState.Connecting; - if (Client.Network.Login(FirstName, LastName, Password, "pCampBot", "Your name")) + if (Client.Network.Login(FirstName, LastName, Password, "pCampBot", StartLocation, "Your name")) { ConnectionState = ConnectionState.Connected; diff --git a/OpenSim/Tools/pCampBot/BotManager.cs b/OpenSim/Tools/pCampBot/BotManager.cs index 16b02b9..57bd737 100644 --- a/OpenSim/Tools/pCampBot/BotManager.cs +++ b/OpenSim/Tools/pCampBot/BotManager.cs @@ -65,7 +65,7 @@ namespace pCampBot /// /// Controls whether bots start out sending agent updates on connection. /// - public bool BotsInitSendAgentUpdates { get; set; } + public bool InitBotSendAgentUpdates { get; set; } /// /// Created bots, whether active or inactive. @@ -92,7 +92,7 @@ namespace pCampBot /// public BotManager() { - BotsInitSendAgentUpdates = true; + InitBotSendAgentUpdates = true; LoginDelay = DefaultLoginDelay; @@ -156,21 +156,25 @@ namespace pCampBot string lastNameStem = startupConfig.GetString("lastname"); string password = startupConfig.GetString("password"); string loginUri = startupConfig.GetString("loginuri"); + string startLocation = startupConfig.GetString("start", "last"); string wearSetting = startupConfig.GetString("wear", "no"); + string startUri = ParseInputStartLocationToUri(startLocation); + HashSet behaviourSwitches = new HashSet(); Array.ForEach( startupConfig.GetString("behaviours", "p").Split(new char[] { ',' }), b => behaviourSwitches.Add(b)); MainConsole.Instance.OutputFormat( - "[BOT MANAGER]: Starting {0} bots connecting to {1}, named {2} {3}_", + "[BOT MANAGER]: Starting {0} bots connecting to {1}, location {2}, named {3} {4}_", botcount, loginUri, + startUri, firstName, lastNameStem); MainConsole.Instance.OutputFormat("[BOT MANAGER]: Delay between logins is {0}ms", LoginDelay); - MainConsole.Instance.OutputFormat("[BOT MANAGER]: BotsSendAgentUpdates is {0}", BotsInitSendAgentUpdates); + MainConsole.Instance.OutputFormat("[BOT MANAGER]: BotsSendAgentUpdates is {0}", InitBotSendAgentUpdates); for (int i = 0; i < botcount; i++) { @@ -195,8 +199,47 @@ namespace pCampBot if (behaviourSwitches.Contains("t")) behaviours.Add(new TeleportBehaviour()); - StartBot(this, behaviours, firstName, lastName, password, loginUri, wearSetting); + StartBot(this, behaviours, firstName, lastName, password, loginUri, startUri, wearSetting); + } + } + + /// + /// Parses the command line start location to a start string/uri that the login mechanism will recognize. + /// + /// + /// The input start location to URI. + /// + /// + /// Start location. + /// + private string ParseInputStartLocationToUri(string startLocation) + { + if (startLocation == "home" || startLocation == "last") + return startLocation; + + string regionName; + + // Just a region name or only one (!) extra component. Like a viewer, we will stick 128/128/0 on the end + Vector3 startPos = new Vector3(128, 128, 0); + + string[] startLocationComponents = startLocation.Split('/'); + + regionName = startLocationComponents[0]; + + if (startLocationComponents.Length >= 2) + { + float.TryParse(startLocationComponents[1], out startPos.X); + + if (startLocationComponents.Length >= 3) + { + float.TryParse(startLocationComponents[2], out startPos.Y); + + if (startLocationComponents.Length >= 4) + float.TryParse(startLocationComponents[3], out startPos.Z); + } } + + return string.Format("uri:{0}&{1}&{2}&{3}", regionName, startPos.X, startPos.Y, startPos.Z); } // /// @@ -228,18 +271,19 @@ namespace pCampBot /// Last name /// Password /// Login URI + /// Location to start the bot. Can be "last", "home" or a specific sim name. /// public void StartBot( BotManager bm, List behaviours, - string firstName, string lastName, string password, string loginUri, string wearSetting) + string firstName, string lastName, string password, string loginUri, string startLocation, string wearSetting) { MainConsole.Instance.OutputFormat( "[BOT MANAGER]: Starting bot {0} {1}, behaviours are {2}", firstName, lastName, string.Join(",", behaviours.ConvertAll(b => b.Name).ToArray())); - Bot pb = new Bot(bm, behaviours, firstName, lastName, password, loginUri); + Bot pb = new Bot(bm, behaviours, firstName, lastName, password, startLocation, loginUri); pb.wear = wearSetting; - pb.Client.Settings.SEND_AGENT_UPDATES = BotsInitSendAgentUpdates; + pb.Client.Settings.SEND_AGENT_UPDATES = InitBotSendAgentUpdates; pb.OnConnected += handlebotEvent; pb.OnDisconnected += handlebotEvent; diff --git a/OpenSim/Tools/pCampBot/pCampBot.cs b/OpenSim/Tools/pCampBot/pCampBot.cs index e43037d..9c9ed3b 100644 --- a/OpenSim/Tools/pCampBot/pCampBot.cs +++ b/OpenSim/Tools/pCampBot/pCampBot.cs @@ -86,8 +86,8 @@ namespace pCampBot if (botConfig != null) { - bm.BotsInitSendAgentUpdates - = botConfig.GetBoolean("SendAgentUpdates", bm.BotsInitSendAgentUpdates); + bm.InitBotSendAgentUpdates + = botConfig.GetBoolean("SendAgentUpdates", bm.InitBotSendAgentUpdates); } } @@ -119,6 +119,7 @@ namespace pCampBot cs.AddSwitch("Startup", "botcount", "n"); cs.AddSwitch("Startup", "loginuri", "l"); + cs.AddSwitch("Startup", "start", "s"); cs.AddSwitch("Startup", "firstname"); cs.AddSwitch("Startup", "lastname"); cs.AddSwitch("Startup", "password"); @@ -137,22 +138,23 @@ namespace pCampBot // name, to load an specific folder, or save, to save an avatar with some already existing wearables // worn to the folder MyAppearance/FirstName_LastName, and the load it. Console.WriteLine( - "usage: pCampBot <-loginuri loginuri> [OPTIONS]\n" + - "Spawns a set of bots to test an OpenSim region\n\n" + - " -l, -loginuri loginuri for sim to log into (required)\n" + - " -n, -botcount number of bots to start (default: 1)\n" + - " -firstname first name for the bots\n" + - " -lastname lastname for the bots. Each lastname will have _ appended, e.g. Ima Bot_0\n" + - " -password password for the bots\n" + - " -b, behaviours behaviours for bots. Comma separated, e.g. p,g. Default is p\n" + - " current options are:\n" + - " p (physics - bots constantly move and jump around)\n" + - " g (grab - bots randomly click prims whether set clickable or not)\n" + - " n (none - bots do nothing)\n" + - " t (teleport - bots regularly teleport between regions on the grid)\n" + + "usage: pCampBot <-loginuri loginuri> [OPTIONS]\n" + + "Spawns a set of bots to test an OpenSim region\n\n" + + " -l, -loginuri loginuri for grid/standalone (required)\n" + + " -s, -start start location for bots. Can be \"last\", \"home\" or a specific location with or without co-ords (e.g. \"region1\" or \"region2/50/30/90\"\n" + + " -n, -botcount number of bots to start (default: 1)\n" + + " -firstname first name for the bots\n" + + " -lastname lastname for the bots. Each lastname will have _ appended, e.g. Ima Bot_0\n" + + " -password password for the bots\n" + + " -b, behaviours behaviours for bots. Comma separated, e.g. p,g. Default is p\n" + + " current options are:\n" + + " p (physics - bots constantly move and jump around)\n" + + " g (grab - bots randomly click prims whether set clickable or not)\n" + + " n (none - bots do nothing)\n" + + " t (teleport - bots regularly teleport between regions on the grid)\n" // " c (cross)" + - " -wear set appearance folder to load from (default: no)\n" + - " -h, -help show this message"); + + " -wear set appearance folder to load from (default: no)\n" + + " -h, -help show this message.\n"); } } } -- cgit v1.1 From 3a62f39044403e7bf453c7b5b1fe825a48e908f3 Mon Sep 17 00:00:00 2001 From: Justin Clark-Casey (justincc) Date: Wed, 14 Aug 2013 18:26:11 +0100 Subject: Add a -form switch to pCampbot to allow one to login a sequence of bots starting from numbers other than 0 --- OpenSim/Tools/pCampBot/BotManager.cs | 3 ++- OpenSim/Tools/pCampBot/pCampBot.cs | 9 ++++++--- 2 files changed, 8 insertions(+), 4 deletions(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/pCampBot/BotManager.cs b/OpenSim/Tools/pCampBot/BotManager.cs index 57bd737..0fdfa0e 100644 --- a/OpenSim/Tools/pCampBot/BotManager.cs +++ b/OpenSim/Tools/pCampBot/BotManager.cs @@ -157,6 +157,7 @@ namespace pCampBot string password = startupConfig.GetString("password"); string loginUri = startupConfig.GetString("loginuri"); string startLocation = startupConfig.GetString("start", "last"); + int fromBotNumber = startupConfig.GetInt("from", 0); string wearSetting = startupConfig.GetString("wear", "no"); string startUri = ParseInputStartLocationToUri(startLocation); @@ -178,7 +179,7 @@ namespace pCampBot for (int i = 0; i < botcount; i++) { - string lastName = string.Format("{0}_{1}", lastNameStem, i); + string lastName = string.Format("{0}_{1}", lastNameStem, i + fromBotNumber); // We must give each bot its own list of instantiated behaviours since they store state. List behaviours = new List(); diff --git a/OpenSim/Tools/pCampBot/pCampBot.cs b/OpenSim/Tools/pCampBot/pCampBot.cs index 9c9ed3b..c8b6304 100644 --- a/OpenSim/Tools/pCampBot/pCampBot.cs +++ b/OpenSim/Tools/pCampBot/pCampBot.cs @@ -118,6 +118,7 @@ namespace pCampBot ArgvConfigSource cs = new ArgvConfigSource(args); cs.AddSwitch("Startup", "botcount", "n"); + cs.AddSwitch("Startup", "from", "f"); cs.AddSwitch("Startup", "loginuri", "l"); cs.AddSwitch("Startup", "start", "s"); cs.AddSwitch("Startup", "firstname"); @@ -137,15 +138,17 @@ namespace pCampBot // You can either say no, to not load anything, yes, to load one of the default wearables, a folder // name, to load an specific folder, or save, to save an avatar with some already existing wearables // worn to the folder MyAppearance/FirstName_LastName, and the load it. + Console.WriteLine( "usage: pCampBot <-loginuri loginuri> [OPTIONS]\n" + "Spawns a set of bots to test an OpenSim region\n\n" + " -l, -loginuri loginuri for grid/standalone (required)\n" - + " -s, -start start location for bots. Can be \"last\", \"home\" or a specific location with or without co-ords (e.g. \"region1\" or \"region2/50/30/90\"\n" - + " -n, -botcount number of bots to start (default: 1)\n" + + " -s, -start optional start location for bots. Can be \"last\", \"home\" or a specific location with or without co-ords (e.g. \"region1\" or \"region2/50/30/90\"\n" + " -firstname first name for the bots\n" + " -lastname lastname for the bots. Each lastname will have _ appended, e.g. Ima Bot_0\n" + " -password password for the bots\n" + + " -n, -botcount optional number of bots to start (default: 1)\n" + + " -f, -from optional starting number for login bot names, e.g. 25 will login Ima Bot_25, Ima Bot_26, etc. (default: 0)" + " -b, behaviours behaviours for bots. Comma separated, e.g. p,g. Default is p\n" + " current options are:\n" + " p (physics - bots constantly move and jump around)\n" @@ -153,7 +156,7 @@ namespace pCampBot + " n (none - bots do nothing)\n" + " t (teleport - bots regularly teleport between regions on the grid)\n" // " c (cross)" + - + " -wear set appearance folder to load from (default: no)\n" + + " -wear optional folder from which to load appearance data, \"no\" if there is no such folder (default: no)\n" + " -h, -help show this message.\n"); } } -- cgit v1.1 From 97c514daa5a3b4e4137bf01b7bee3fffc13a75d7 Mon Sep 17 00:00:00 2001 From: Justin Clark-Casey (justincc) Date: Wed, 14 Aug 2013 19:21:07 +0100 Subject: Shutdown a bot's actions by making it check for disconnecting state rather than aborting the thread. Aborting the thread appears to be causing shutdown issues. --- OpenSim/Tools/pCampBot/Bot.cs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/pCampBot/Bot.cs b/OpenSim/Tools/pCampBot/Bot.cs index 79344e8..dac8ccb 100644 --- a/OpenSim/Tools/pCampBot/Bot.cs +++ b/OpenSim/Tools/pCampBot/Bot.cs @@ -158,7 +158,7 @@ namespace pCampBot //add additional steps and/or things the bot should do private void Action() { - while (true) + while (ConnectionState != ConnectionState.Disconnecting) lock (Behaviours) Behaviours.ForEach( b => @@ -178,8 +178,8 @@ namespace pCampBot { ConnectionState = ConnectionState.Disconnecting; - if (m_actionThread != null) - m_actionThread.Abort(); +// if (m_actionThread != null) +// m_actionThread.Abort(); Client.Network.Logout(); } -- cgit v1.1 From 225cf0d0102d05721bd01120928b9d1d85c811a7 Mon Sep 17 00:00:00 2001 From: Justin Clark-Casey (justincc) Date: Wed, 14 Aug 2013 19:53:10 +0100 Subject: Add pCampbot RequestObjectTextures ini setting to control whether textures are requested for received objects. --- OpenSim/Tools/pCampBot/BotManager.cs | 7 +++++++ OpenSim/Tools/pCampBot/pCampBot.cs | 2 ++ 2 files changed, 9 insertions(+) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/pCampBot/BotManager.cs b/OpenSim/Tools/pCampBot/BotManager.cs index 0fdfa0e..5988584 100644 --- a/OpenSim/Tools/pCampBot/BotManager.cs +++ b/OpenSim/Tools/pCampBot/BotManager.cs @@ -68,6 +68,11 @@ namespace pCampBot public bool InitBotSendAgentUpdates { get; set; } /// + /// Controls whether bots request textures for the object information they receive + /// + public bool InitBotRequestObjectTextures { get; set; } + + /// /// Created bots, whether active or inactive. /// protected List m_lBot; @@ -93,6 +98,7 @@ namespace pCampBot public BotManager() { InitBotSendAgentUpdates = true; + InitBotRequestObjectTextures = true; LoginDelay = DefaultLoginDelay; @@ -176,6 +182,7 @@ namespace pCampBot MainConsole.Instance.OutputFormat("[BOT MANAGER]: Delay between logins is {0}ms", LoginDelay); MainConsole.Instance.OutputFormat("[BOT MANAGER]: BotsSendAgentUpdates is {0}", InitBotSendAgentUpdates); + MainConsole.Instance.OutputFormat("[BOT MANAGER]: InitBotRequestObjectTextures is {0}", InitBotRequestObjectTextures); for (int i = 0; i < botcount; i++) { diff --git a/OpenSim/Tools/pCampBot/pCampBot.cs b/OpenSim/Tools/pCampBot/pCampBot.cs index c8b6304..b02f917 100644 --- a/OpenSim/Tools/pCampBot/pCampBot.cs +++ b/OpenSim/Tools/pCampBot/pCampBot.cs @@ -88,6 +88,8 @@ namespace pCampBot { bm.InitBotSendAgentUpdates = botConfig.GetBoolean("SendAgentUpdates", bm.InitBotSendAgentUpdates); + bm.InitBotRequestObjectTextures + = botConfig.GetBoolean("RequestObjectTextures", bm.InitBotRequestObjectTextures); } } -- cgit v1.1 From 2c67aa0f41193bf2271b75f060093f44819cdeae Mon Sep 17 00:00:00 2001 From: Justin Clark-Casey (justincc) Date: Wed, 14 Aug 2013 21:07:29 +0100 Subject: If pCampbot has been asked to shutdown, don't carry on logging in queued bots --- OpenSim/Tools/pCampBot/BotManager.cs | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/pCampBot/BotManager.cs b/OpenSim/Tools/pCampBot/BotManager.cs index 5988584..397a98e 100644 --- a/OpenSim/Tools/pCampBot/BotManager.cs +++ b/OpenSim/Tools/pCampBot/BotManager.cs @@ -52,6 +52,11 @@ namespace pCampBot public const int DefaultLoginDelay = 5000; /// + /// True if pCampbot is in the process of shutting down. + /// + public bool ShuttingDown { get; private set; } + + /// /// Delay between logins of multiple bots. /// /// TODO: This value needs to be configurable by a command line argument. @@ -186,6 +191,9 @@ namespace pCampBot for (int i = 0; i < botcount; i++) { + if (ShuttingDown) + break; + string lastName = string.Format("{0}_{1}", lastNameStem, i + fromBotNumber); // We must give each bot its own list of instantiated behaviours since they store state. @@ -363,7 +371,9 @@ namespace pCampBot private void HandleShutdown(string module, string[] cmd) { - m_log.Info("[BOTMANAGER]: Shutting down bots"); + MainConsole.Instance.Output("Shutting down"); + + ShuttingDown = true; doBotShutdown(); } -- cgit v1.1 From 5011c657b5b8127927c75c4e1db496c15a394b3a Mon Sep 17 00:00:00 2001 From: Justin Clark-Casey (justincc) Date: Wed, 14 Aug 2013 23:37:07 +0100 Subject: Actually implement the bot request object textures switch started in 225cf0d. Forgot to propogate it down to bot level. --- OpenSim/Tools/pCampBot/Bot.cs | 8 ++++++++ OpenSim/Tools/pCampBot/BotManager.cs | 1 + 2 files changed, 9 insertions(+) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/pCampBot/Bot.cs b/OpenSim/Tools/pCampBot/Bot.cs index dac8ccb..32bf32b 100644 --- a/OpenSim/Tools/pCampBot/Bot.cs +++ b/OpenSim/Tools/pCampBot/Bot.cs @@ -59,6 +59,11 @@ namespace pCampBot public delegate void AnEvent(Bot callbot, EventType someevent); // event delegate for bot events /// + /// Controls whether bots request textures for the object information they receive + /// + public bool RequestObjectTextures { get; set; } + + /// /// Bot manager. /// public BotManager Manager { get; private set; } @@ -469,6 +474,9 @@ namespace pCampBot public void Objects_NewPrim(object sender, PrimEventArgs args) { + if (!RequestObjectTextures) + return; + Primitive prim = args.Prim; if (prim != null) diff --git a/OpenSim/Tools/pCampBot/BotManager.cs b/OpenSim/Tools/pCampBot/BotManager.cs index 397a98e..dee02c3 100644 --- a/OpenSim/Tools/pCampBot/BotManager.cs +++ b/OpenSim/Tools/pCampBot/BotManager.cs @@ -300,6 +300,7 @@ namespace pCampBot Bot pb = new Bot(bm, behaviours, firstName, lastName, password, startLocation, loginUri); pb.wear = wearSetting; pb.Client.Settings.SEND_AGENT_UPDATES = InitBotSendAgentUpdates; + pb.RequestObjectTextures = InitBotRequestObjectTextures; pb.OnConnected += handlebotEvent; pb.OnDisconnected += handlebotEvent; -- cgit v1.1 From a90a5f52dd5f053a83a09fdd70ca08148ef641ce Mon Sep 17 00:00:00 2001 From: Justin Clark-Casey (justincc) Date: Mon, 19 Aug 2013 19:38:20 +0100 Subject: Show number of connections each bot has established in "show bots" command. --- OpenSim/Tools/pCampBot/Bot.cs | 15 ++++++++++++++- OpenSim/Tools/pCampBot/BotManager.cs | 17 ++++++++++------- 2 files changed, 24 insertions(+), 8 deletions(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/pCampBot/Bot.cs b/OpenSim/Tools/pCampBot/Bot.cs index 32bf32b..be7a5a1 100644 --- a/OpenSim/Tools/pCampBot/Bot.cs +++ b/OpenSim/Tools/pCampBot/Bot.cs @@ -97,6 +97,19 @@ namespace pCampBot /// public ConnectionState ConnectionState { get; private set; } + /// + /// The number of connections that this bot has to different simulators. + /// + /// Includes both root and child connections. + public int ConnectionsCount + { + get + { + lock (Client.Network.Simulators) + return Client.Network.Simulators.Count; + } + } + public string FirstName { get; private set; } public string LastName { get; private set; } public string Name { get; private set; } @@ -144,7 +157,7 @@ namespace pCampBot ConnectionState = ConnectionState.Disconnected; behaviours.ForEach(b => b.Initialize(this)); - + Client = new GridClient(); Random = new Random(Environment.TickCount);// We do stuff randomly here diff --git a/OpenSim/Tools/pCampBot/BotManager.cs b/OpenSim/Tools/pCampBot/BotManager.cs index dee02c3..8f31bdf 100644 --- a/OpenSim/Tools/pCampBot/BotManager.cs +++ b/OpenSim/Tools/pCampBot/BotManager.cs @@ -395,8 +395,11 @@ namespace pCampBot private void HandleShowStatus(string module, string[] cmd) { - string outputFormat = "{0,-30} {1, -30} {2,-14}"; - MainConsole.Instance.OutputFormat(outputFormat, "Name", "Region", "Status"); + ConsoleDisplayTable cdt = new ConsoleDisplayTable(); + cdt.AddColumn("Name", 30); + cdt.AddColumn("Region", 30); + cdt.AddColumn("Status", 14); + cdt.AddColumn("Connections", 11); Dictionary totals = new Dictionary(); foreach (object o in Enum.GetValues(typeof(ConnectionState))) @@ -409,19 +412,19 @@ namespace pCampBot Simulator currentSim = pb.Client.Network.CurrentSim; totals[pb.ConnectionState]++; - MainConsole.Instance.OutputFormat( - outputFormat, - pb.Name, currentSim != null ? currentSim.Name : "(none)", pb.ConnectionState); + cdt.AddRow( + pb.Name, currentSim != null ? currentSim.Name : "(none)", pb.ConnectionState, pb.ConnectionsCount); } } + MainConsole.Instance.Output(cdt.ToString()); + ConsoleDisplayList cdl = new ConsoleDisplayList(); foreach (KeyValuePair kvp in totals) cdl.AddRow(kvp.Key, kvp.Value); - - MainConsole.Instance.OutputFormat("\n{0}", cdl.ToString()); + MainConsole.Instance.Output(cdl.ToString()); } /* -- cgit v1.1 From 49b7cbda72cdaae8b5a7a89c94915851997b0b13 Mon Sep 17 00:00:00 2001 From: Justin Clark-Casey (justincc) Date: Mon, 19 Aug 2013 20:29:17 +0100 Subject: Create a separate pCampbot "disconnect" console command which disconnects connected bots. "quit" console command now requires bots to be separate disconnected first before quitting. This is to prepare the way for disconnecting/reconnecting different numbers of bots in a pCampbot session. And hopefully resolves bug where console appears not to be reset if Environment.Exit(0) is called on a different thread --- OpenSim/Tools/pCampBot/BotManager.cs | 110 +++++++++++++++++++++-------------- 1 file changed, 67 insertions(+), 43 deletions(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/pCampBot/BotManager.cs b/OpenSim/Tools/pCampBot/BotManager.cs index 8f31bdf..5c0dc81 100644 --- a/OpenSim/Tools/pCampBot/BotManager.cs +++ b/OpenSim/Tools/pCampBot/BotManager.cs @@ -52,9 +52,9 @@ namespace pCampBot public const int DefaultLoginDelay = 5000; /// - /// True if pCampbot is in the process of shutting down. + /// Is pCampbot in the process of disconnecting bots? /// - public bool ShuttingDown { get; private set; } + public bool DisconnectingBots { get; private set; } /// /// Delay between logins of multiple bots. @@ -139,6 +139,11 @@ namespace pCampBot "Shutdown bots and exit", HandleShutdown); + m_console.Commands.AddCommand("bot", false, "disconnect", + "disconnect", + "Disconnect all bots", + HandleDisconnect); + m_console.Commands.AddCommand("bot", false, "show regions", "show regions", "Show regions known to bots", @@ -191,31 +196,37 @@ namespace pCampBot for (int i = 0; i < botcount; i++) { - if (ShuttingDown) - break; + lock (m_lBot) + { + if (DisconnectingBots) + break; + + string lastName = string.Format("{0}_{1}", lastNameStem, i + fromBotNumber); - string lastName = string.Format("{0}_{1}", lastNameStem, i + fromBotNumber); + // We must give each bot its own list of instantiated behaviours since they store state. + List behaviours = new List(); + + // Hard-coded for now + if (behaviourSwitches.Contains("c")) + behaviours.Add(new CrossBehaviour()); - // We must give each bot its own list of instantiated behaviours since they store state. - List behaviours = new List(); - - // Hard-coded for now - if (behaviourSwitches.Contains("c")) - behaviours.Add(new CrossBehaviour()); + if (behaviourSwitches.Contains("g")) + behaviours.Add(new GrabbingBehaviour()); - if (behaviourSwitches.Contains("g")) - behaviours.Add(new GrabbingBehaviour()); + if (behaviourSwitches.Contains("n")) + behaviours.Add(new NoneBehaviour()); - if (behaviourSwitches.Contains("n")) - behaviours.Add(new NoneBehaviour()); + if (behaviourSwitches.Contains("p")) + behaviours.Add(new PhysicsBehaviour()); + + if (behaviourSwitches.Contains("t")) + behaviours.Add(new TeleportBehaviour()); - if (behaviourSwitches.Contains("p")) - behaviours.Add(new PhysicsBehaviour()); - - if (behaviourSwitches.Contains("t")) - behaviours.Add(new TeleportBehaviour()); + StartBot(this, behaviours, firstName, lastName, password, loginUri, startUri, wearSetting); + } - StartBot(this, behaviours, firstName, lastName, password, loginUri, startUri, wearSetting); + // Stagger logins + Thread.Sleep(LoginDelay); } } @@ -305,17 +316,13 @@ namespace pCampBot pb.OnConnected += handlebotEvent; pb.OnDisconnected += handlebotEvent; - lock (m_lBot) - m_lBot.Add(pb); + m_lBot.Add(pb); Thread pbThread = new Thread(pb.startup); pbThread.Name = pb.Name; pbThread.IsBackground = true; pbThread.Start(); - - // Stagger logins - Thread.Sleep(LoginDelay); } /// @@ -328,18 +335,16 @@ namespace pCampBot switch (eventt) { case EventType.CONNECTED: + { m_log.Info("[" + callbot.FirstName + " " + callbot.LastName + "]: Connected"); break; + } + case EventType.DISCONNECTED: + { m_log.Info("[" + callbot.FirstName + " " + callbot.LastName + "]: Disconnected"); - - lock (m_lBot) - { - if (m_lBot.TrueForAll(b => b.ConnectionState == ConnectionState.Disconnected)) - Environment.Exit(0); - - break; - } + break; + } } } @@ -349,15 +354,12 @@ namespace pCampBot /// /// We launch each shutdown on its own thread so that a slow shutting down bot doesn't hold up all the others. /// - public void doBotShutdown() + private void ShutdownBots() { - lock (m_lBot) + foreach (Bot bot in m_lBot) { - foreach (Bot bot in m_lBot) - { - Bot thisBot = bot; - Util.FireAndForget(o => thisBot.shutdown()); - } + Bot thisBot = bot; + Util.FireAndForget(o => thisBot.shutdown()); } } @@ -370,12 +372,34 @@ namespace pCampBot return new LocalConsole("pCampbot"); } + private void HandleDisconnect(string module, string[] cmd) + { + MainConsole.Instance.Output("Disconnecting bots"); + + lock (m_lBot) + { + DisconnectingBots = true; + + ShutdownBots(); + } + } + private void HandleShutdown(string module, string[] cmd) { + lock (m_lBot) + { + int connectedBots = m_lBot.Count(b => b.ConnectionState == ConnectionState.Connected); + + if (connectedBots > 0) + { + MainConsole.Instance.OutputFormat("Please disconnect {0} connected bots first", connectedBots); + return; + } + } + MainConsole.Instance.Output("Shutting down"); - ShuttingDown = true; - doBotShutdown(); + Environment.Exit(0); } private void HandleShowRegions(string module, string[] cmd) -- cgit v1.1 From 2fa42f24fd0e80adc16320a404e3e85ca6d1baa1 Mon Sep 17 00:00:00 2001 From: Justin Clark-Casey (justincc) Date: Mon, 19 Aug 2013 21:00:31 +0100 Subject: Make it possible to disconnected a specified number of bots via the pCampbot console command "disconnect []" Bots disconnected are ascending from last in numeric order. Temporarily no way to reconnect bots. --- OpenSim/Tools/pCampBot/BotManager.cs | 101 +++++++++++++++++++---------------- 1 file changed, 55 insertions(+), 46 deletions(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/pCampBot/BotManager.cs b/OpenSim/Tools/pCampBot/BotManager.cs index 5c0dc81..157c69c 100644 --- a/OpenSim/Tools/pCampBot/BotManager.cs +++ b/OpenSim/Tools/pCampBot/BotManager.cs @@ -80,7 +80,7 @@ namespace pCampBot /// /// Created bots, whether active or inactive. /// - protected List m_lBot; + protected List m_bots; /// /// Random number generator. @@ -130,35 +130,30 @@ namespace pCampBot } } - m_console.Commands.AddCommand("bot", false, "shutdown", - "shutdown", - "Shutdown bots and exit", HandleShutdown); + m_console.Commands.AddCommand( + "bot", false, "shutdown", "shutdown", "Shutdown bots and exit", HandleShutdown); - m_console.Commands.AddCommand("bot", false, "quit", - "quit", - "Shutdown bots and exit", - HandleShutdown); + m_console.Commands.AddCommand( + "bot", false, "quit", "quit", "Shutdown bots and exit", HandleShutdown); - m_console.Commands.AddCommand("bot", false, "disconnect", - "disconnect", - "Disconnect all bots", - HandleDisconnect); + m_console.Commands.AddCommand( + "bot", false, "disconnect", "disconnect []", "Disconnect bots", + "Disconnecting bots will interupt any bot connection process, including connection on startup.\n" + + "If an is given, then the last connected bots by postfix number are disconnected.\n" + + "If no is given, then all currently connected bots are disconnected.", + HandleDisconnect); - m_console.Commands.AddCommand("bot", false, "show regions", - "show regions", - "Show regions known to bots", - HandleShowRegions); + m_console.Commands.AddCommand( + "bot", false, "show regions", "show regions", "Show regions known to bots", HandleShowRegions); - m_console.Commands.AddCommand("bot", false, "show bots", - "show bots", - "Shows the status of all bots", - HandleShowStatus); + m_console.Commands.AddCommand( + "bot", false, "show bots", "show bots", "Shows the status of all bots", HandleShowStatus); // m_console.Commands.AddCommand("bot", false, "add bots", // "add bots ", // "Add more bots", HandleAddBots); - m_lBot = new List(); + m_bots = new List(); } /// @@ -196,7 +191,7 @@ namespace pCampBot for (int i = 0; i < botcount; i++) { - lock (m_lBot) + lock (m_bots) { if (DisconnectingBots) break; @@ -316,7 +311,7 @@ namespace pCampBot pb.OnConnected += handlebotEvent; pb.OnDisconnected += handlebotEvent; - m_lBot.Add(pb); + m_bots.Add(pb); Thread pbThread = new Thread(pb.startup); pbThread.Name = pb.Name; @@ -349,21 +344,6 @@ namespace pCampBot } /// - /// Shut down all bots - /// - /// - /// We launch each shutdown on its own thread so that a slow shutting down bot doesn't hold up all the others. - /// - private void ShutdownBots() - { - foreach (Bot bot in m_lBot) - { - Bot thisBot = bot; - Util.FireAndForget(o => thisBot.shutdown()); - } - } - - /// /// Standard CreateConsole routine /// /// @@ -374,21 +354,50 @@ namespace pCampBot private void HandleDisconnect(string module, string[] cmd) { - MainConsole.Instance.Output("Disconnecting bots"); - - lock (m_lBot) + lock (m_bots) { + int botsToDisconnect; + int connectedBots = m_bots.Count(b => b.ConnectionState == ConnectionState.Connected); + + if (cmd.Length == 1) + { + botsToDisconnect = connectedBots; + } + else + { + if (!ConsoleUtil.TryParseConsoleNaturalInt(MainConsole.Instance, cmd[1], out botsToDisconnect)) + return; + + botsToDisconnect = Math.Min(botsToDisconnect, connectedBots); + } + DisconnectingBots = true; - ShutdownBots(); + MainConsole.Instance.OutputFormat("Disconnecting {0} bots", botsToDisconnect); + + int disconnectedBots = 0; + + for (int i = m_bots.Count - 1; i >= 0; i--) + { + if (disconnectedBots >= botsToDisconnect) + break; + + Bot thisBot = m_bots[i]; + + if (thisBot.ConnectionState == ConnectionState.Connected) + { + Util.FireAndForget(o => thisBot.shutdown()); + disconnectedBots++; + } + } } } private void HandleShutdown(string module, string[] cmd) { - lock (m_lBot) + lock (m_bots) { - int connectedBots = m_lBot.Count(b => b.ConnectionState == ConnectionState.Connected); + int connectedBots = m_bots.Count(b => b.ConnectionState == ConnectionState.Connected); if (connectedBots > 0) { @@ -429,9 +438,9 @@ namespace pCampBot foreach (object o in Enum.GetValues(typeof(ConnectionState))) totals[(ConnectionState)o] = 0; - lock (m_lBot) + lock (m_bots) { - foreach (Bot pb in m_lBot) + foreach (Bot pb in m_bots) { Simulator currentSim = pb.Client.Network.CurrentSim; totals[pb.ConnectionState]++; -- cgit v1.1 From 079cd4e94f820bad83fcbf8373ef268ecb82d9a6 Mon Sep 17 00:00:00 2001 From: Justin Clark-Casey (justincc) Date: Mon, 19 Aug 2013 21:17:59 +0100 Subject: refactor: restructure pCampbot multi-bot connection code. --- OpenSim/Tools/pCampBot/BotManager.cs | 70 ++++++++++++++++++++++++++++++------ 1 file changed, 60 insertions(+), 10 deletions(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/pCampBot/BotManager.cs b/OpenSim/Tools/pCampBot/BotManager.cs index 157c69c..2cbadef 100644 --- a/OpenSim/Tools/pCampBot/BotManager.cs +++ b/OpenSim/Tools/pCampBot/BotManager.cs @@ -98,6 +98,46 @@ namespace pCampBot public Dictionary RegionsKnown { get; private set; } /// + /// First name for bots + /// + private string m_firstName; + + /// + /// Last name stem for bots + /// + private string m_lastNameStem; + + /// + /// Password for bots + /// + private string m_password; + + /// + /// Login URI for bots. + /// + private string m_loginUri; + + /// + /// Start location for bots. + /// + private string m_startUri; + + /// + /// Postfix bot number at which bot sequence starts. + /// + private int m_fromBotNumber; + + /// + /// Wear setting for bots. + /// + private string m_wearSetting; + + /// + /// Behaviour switches for bots. + /// + private HashSet m_behaviourSwitches = new HashSet(); + + /// /// Constructor Creates MainConsole.Instance to take commands and provide the place to write data /// public BotManager() @@ -163,20 +203,26 @@ namespace pCampBot /// The configuration for the bots to use public void dobotStartup(int botcount, IConfig startupConfig) { - string firstName = startupConfig.GetString("firstname"); - string lastNameStem = startupConfig.GetString("lastname"); - string password = startupConfig.GetString("password"); - string loginUri = startupConfig.GetString("loginuri"); - string startLocation = startupConfig.GetString("start", "last"); - int fromBotNumber = startupConfig.GetInt("from", 0); - string wearSetting = startupConfig.GetString("wear", "no"); + m_firstName = startupConfig.GetString("firstname"); + m_lastNameStem = startupConfig.GetString("lastname"); + m_password = startupConfig.GetString("password"); + m_loginUri = startupConfig.GetString("loginuri"); + m_fromBotNumber = startupConfig.GetInt("from", 0); + m_wearSetting = startupConfig.GetString("wear", "no"); - string startUri = ParseInputStartLocationToUri(startLocation); + m_startUri = ParseInputStartLocationToUri(startupConfig.GetString("start", "last")); - HashSet behaviourSwitches = new HashSet(); Array.ForEach( - startupConfig.GetString("behaviours", "p").Split(new char[] { ',' }), b => behaviourSwitches.Add(b)); + startupConfig.GetString("behaviours", "p").Split(new char[] { ',' }), b => m_behaviourSwitches.Add(b)); + + ConnectBots( + botcount, m_firstName, m_lastNameStem, m_password, m_loginUri, m_startUri, m_fromBotNumber, m_wearSetting, m_behaviourSwitches); + } + private void ConnectBots( + int botcount, string firstName, string lastNameStem, string password, string loginUri, string startUri, int fromBotNumber, string wearSetting, + HashSet behaviourSwitches) + { MainConsole.Instance.OutputFormat( "[BOT MANAGER]: Starting {0} bots connecting to {1}, location {2}, named {3} {4}_", botcount, @@ -194,7 +240,11 @@ namespace pCampBot lock (m_bots) { if (DisconnectingBots) + { + MainConsole.Instance.Output( + "[BOT MANAGER]: Aborting bot connection due to user-initiated disconnection"); break; + } string lastName = string.Format("{0}_{1}", lastNameStem, i + fromBotNumber); -- cgit v1.1 From ea3f024b8a546608fce825d4aa9f165eaecfeed5 Mon Sep 17 00:00:00 2001 From: Justin Clark-Casey (justincc) Date: Mon, 19 Aug 2013 21:25:17 +0100 Subject: refactor: start bot connection thread within BotManager rather than externally --- OpenSim/Tools/pCampBot/BotManager.cs | 27 ++++++++++++++++++++++++++- OpenSim/Tools/pCampBot/pCampBot.cs | 5 +---- 2 files changed, 27 insertions(+), 5 deletions(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/pCampBot/BotManager.cs b/OpenSim/Tools/pCampBot/BotManager.cs index 2cbadef..fe6048a 100644 --- a/OpenSim/Tools/pCampBot/BotManager.cs +++ b/OpenSim/Tools/pCampBot/BotManager.cs @@ -52,6 +52,11 @@ namespace pCampBot public const int DefaultLoginDelay = 5000; /// + /// Is pCampbot in the process of connecting bots? + /// + public bool ConnectingBots { get; private set; } + + /// /// Is pCampbot in the process of disconnecting bots? /// public bool DisconnectingBots { get; private set; } @@ -219,7 +224,25 @@ namespace pCampBot botcount, m_firstName, m_lastNameStem, m_password, m_loginUri, m_startUri, m_fromBotNumber, m_wearSetting, m_behaviourSwitches); } - private void ConnectBots( + private bool ConnectBots( + int botcount, string firstName, string lastNameStem, string password, string loginUri, string startUri, int fromBotNumber, string wearSetting, + HashSet behaviourSwitches) + { + ConnectingBots = true; + + Thread startBotThread + = new Thread( + o => ConnectBotsInternal( + botcount, firstName, lastNameStem, password, loginUri, startUri, fromBotNumber, wearSetting, + behaviourSwitches)); + + startBotThread.Name = "Bots connection thread"; + startBotThread.Start(); + + return true; + } + + private void ConnectBotsInternal( int botcount, string firstName, string lastNameStem, string password, string loginUri, string startUri, int fromBotNumber, string wearSetting, HashSet behaviourSwitches) { @@ -273,6 +296,8 @@ namespace pCampBot // Stagger logins Thread.Sleep(LoginDelay); } + + ConnectingBots = false; } /// diff --git a/OpenSim/Tools/pCampBot/pCampBot.cs b/OpenSim/Tools/pCampBot/pCampBot.cs index b02f917..e58b130 100644 --- a/OpenSim/Tools/pCampBot/pCampBot.cs +++ b/OpenSim/Tools/pCampBot/pCampBot.cs @@ -95,10 +95,7 @@ namespace pCampBot int botcount = commandLineConfig.GetInt("botcount", 1); - //startup specified number of bots. 1 is the default - Thread startBotThread = new Thread(o => bm.dobotStartup(botcount, commandLineConfig)); - startBotThread.Name = "Initial start bots thread"; - startBotThread.Start(); + bm.dobotStartup(botcount, commandLineConfig); while (true) { -- cgit v1.1 From 589b1a2eaf9058c3577b17ae76580a79ba855978 Mon Sep 17 00:00:00 2001 From: Justin Clark-Casey (justincc) Date: Mon, 19 Aug 2013 23:50:18 +0100 Subject: Make it possible to reconnect pCampbots with the console command "connect []". If no n is given then all available bots are connected --- OpenSim/Tools/pCampBot/Bot.cs | 96 ++++++++++++++++++------- OpenSim/Tools/pCampBot/BotManager.cs | 136 +++++++++++++++++++++-------------- OpenSim/Tools/pCampBot/pCampBot.cs | 3 +- 3 files changed, 155 insertions(+), 80 deletions(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/pCampBot/Bot.cs b/OpenSim/Tools/pCampBot/Bot.cs index be7a5a1..f7af26e 100644 --- a/OpenSim/Tools/pCampBot/Bot.cs +++ b/OpenSim/Tools/pCampBot/Bot.cs @@ -158,8 +158,6 @@ namespace pCampBot behaviours.ForEach(b => b.Initialize(this)); - Client = new GridClient(); - Random = new Random(Environment.TickCount);// We do stuff randomly here FirstName = firstName; LastName = lastName; @@ -170,6 +168,59 @@ namespace pCampBot Manager = bm; Behaviours = behaviours; + + // Only calling for use as a template. + CreateLibOmvClient(); + } + + private void CreateLibOmvClient() + { + GridClient newClient = new GridClient(); + + if (Client != null) + { + newClient.Settings.LOGIN_SERVER = Client.Settings.LOGIN_SERVER; + newClient.Settings.ALWAYS_DECODE_OBJECTS = Client.Settings.ALWAYS_DECODE_OBJECTS; + newClient.Settings.AVATAR_TRACKING = Client.Settings.AVATAR_TRACKING; + newClient.Settings.OBJECT_TRACKING = Client.Settings.OBJECT_TRACKING; + newClient.Settings.SEND_AGENT_THROTTLE = Client.Settings.SEND_AGENT_THROTTLE; + newClient.Settings.SEND_AGENT_UPDATES = Client.Settings.SEND_AGENT_UPDATES; + newClient.Settings.SEND_PINGS = Client.Settings.SEND_PINGS; + newClient.Settings.STORE_LAND_PATCHES = Client.Settings.STORE_LAND_PATCHES; + newClient.Settings.USE_ASSET_CACHE = Client.Settings.USE_ASSET_CACHE; + newClient.Settings.MULTIPLE_SIMS = Client.Settings.MULTIPLE_SIMS; + newClient.Throttle.Asset = Client.Throttle.Asset; + newClient.Throttle.Land = Client.Throttle.Land; + newClient.Throttle.Task = Client.Throttle.Task; + newClient.Throttle.Texture = Client.Throttle.Texture; + newClient.Throttle.Wind = Client.Throttle.Wind; + newClient.Throttle.Total = Client.Throttle.Total; + } + else + { + newClient.Settings.LOGIN_SERVER = LoginUri; + newClient.Settings.ALWAYS_DECODE_OBJECTS = false; + newClient.Settings.AVATAR_TRACKING = false; + newClient.Settings.OBJECT_TRACKING = false; + newClient.Settings.SEND_AGENT_THROTTLE = true; + newClient.Settings.SEND_PINGS = true; + newClient.Settings.STORE_LAND_PATCHES = false; + newClient.Settings.USE_ASSET_CACHE = false; + newClient.Settings.MULTIPLE_SIMS = true; + newClient.Throttle.Asset = 100000; + newClient.Throttle.Land = 100000; + newClient.Throttle.Task = 100000; + newClient.Throttle.Texture = 100000; + newClient.Throttle.Wind = 100000; + newClient.Throttle.Total = 400000; + } + + newClient.Network.LoginProgress += this.Network_LoginProgress; + newClient.Network.SimConnected += this.Network_SimConnected; + newClient.Network.Disconnected += this.Network_OnDisconnected; + newClient.Objects.ObjectUpdate += Objects_NewPrim; + + Client = newClient; } //We do our actions here. This is where one would @@ -192,7 +243,7 @@ namespace pCampBot /// /// Tells LibSecondLife to logout and disconnect. Raises the disconnect events once it finishes. /// - public void shutdown() + public void Disconnect() { ConnectionState = ConnectionState.Disconnecting; @@ -202,34 +253,27 @@ namespace pCampBot Client.Network.Logout(); } + public void Connect() + { + Thread connectThread = new Thread(ConnectInternal); + connectThread.Name = Name; + connectThread.IsBackground = true; + + connectThread.Start(); + } + /// /// This is the bot startup loop. /// - public void startup() + private void ConnectInternal() { - Client.Settings.LOGIN_SERVER = LoginUri; - Client.Settings.ALWAYS_DECODE_OBJECTS = false; - Client.Settings.AVATAR_TRACKING = false; - Client.Settings.OBJECT_TRACKING = false; - Client.Settings.SEND_AGENT_THROTTLE = true; - Client.Settings.SEND_AGENT_UPDATES = false; - Client.Settings.SEND_PINGS = true; - Client.Settings.STORE_LAND_PATCHES = false; - Client.Settings.USE_ASSET_CACHE = false; - Client.Settings.MULTIPLE_SIMS = true; - Client.Throttle.Asset = 100000; - Client.Throttle.Land = 100000; - Client.Throttle.Task = 100000; - Client.Throttle.Texture = 100000; - Client.Throttle.Wind = 100000; - Client.Throttle.Total = 400000; - Client.Network.LoginProgress += this.Network_LoginProgress; - Client.Network.SimConnected += this.Network_SimConnected; - Client.Network.Disconnected += this.Network_OnDisconnected; - Client.Objects.ObjectUpdate += Objects_NewPrim; - ConnectionState = ConnectionState.Connecting; + // Current create a new client on each connect. libomv doesn't seem to process new sim + // information (e.g. EstablishAgentCommunication events) if connecting after a disceonnect with the same + // client + CreateLibOmvClient(); + if (Client.Network.Login(FirstName, LastName, Password, "pCampBot", StartLocation, "Your name")) { ConnectionState = ConnectionState.Connected; @@ -474,6 +518,8 @@ namespace pCampBot // || args.Reason == NetworkManager.DisconnectType.NetworkTimeout) // && OnDisconnected != null) + + if ( (args.Reason == NetworkManager.DisconnectType.ClientInitiated || args.Reason == NetworkManager.DisconnectType.ServerInitiated diff --git a/OpenSim/Tools/pCampBot/BotManager.cs b/OpenSim/Tools/pCampBot/BotManager.cs index fe6048a..f40a84d 100644 --- a/OpenSim/Tools/pCampBot/BotManager.cs +++ b/OpenSim/Tools/pCampBot/BotManager.cs @@ -182,6 +182,12 @@ namespace pCampBot "bot", false, "quit", "quit", "Shutdown bots and exit", HandleShutdown); m_console.Commands.AddCommand( + "bot", false, "connect", "connect []", "Connect bots", + "If an is given, then the first disconnected bots by postfix number are connected.\n" + + "If no is given, then all currently disconnected bots are connected.", + HandleConnect); + + m_console.Commands.AddCommand( "bot", false, "disconnect", "disconnect []", "Disconnect bots", "Disconnecting bots will interupt any bot connection process, including connection on startup.\n" + "If an is given, then the last connected bots by postfix number are disconnected.\n" @@ -206,7 +212,7 @@ namespace pCampBot /// /// How many bots to start up /// The configuration for the bots to use - public void dobotStartup(int botcount, IConfig startupConfig) + public void CreateBots(int botcount, IConfig startupConfig) { m_firstName = startupConfig.GetString("firstname"); m_lastNameStem = startupConfig.GetString("lastname"); @@ -220,39 +226,55 @@ namespace pCampBot Array.ForEach( startupConfig.GetString("behaviours", "p").Split(new char[] { ',' }), b => m_behaviourSwitches.Add(b)); - ConnectBots( - botcount, m_firstName, m_lastNameStem, m_password, m_loginUri, m_startUri, m_fromBotNumber, m_wearSetting, m_behaviourSwitches); + for (int i = 0; i < botcount; i++) + { + lock (m_bots) + { + string lastName = string.Format("{0}_{1}", m_lastNameStem, i + m_fromBotNumber); + + // We must give each bot its own list of instantiated behaviours since they store state. + List behaviours = new List(); + + // Hard-coded for now + if (m_behaviourSwitches.Contains("c")) + behaviours.Add(new CrossBehaviour()); + + if (m_behaviourSwitches.Contains("g")) + behaviours.Add(new GrabbingBehaviour()); + + if (m_behaviourSwitches.Contains("n")) + behaviours.Add(new NoneBehaviour()); + + if (m_behaviourSwitches.Contains("p")) + behaviours.Add(new PhysicsBehaviour()); + + if (m_behaviourSwitches.Contains("t")) + behaviours.Add(new TeleportBehaviour()); + + CreateBot(this, behaviours, m_firstName, lastName, m_password, m_loginUri, m_startUri, m_wearSetting); + } + } } - private bool ConnectBots( - int botcount, string firstName, string lastNameStem, string password, string loginUri, string startUri, int fromBotNumber, string wearSetting, - HashSet behaviourSwitches) + public void ConnectBots(int botcount) { ConnectingBots = true; - Thread startBotThread - = new Thread( - o => ConnectBotsInternal( - botcount, firstName, lastNameStem, password, loginUri, startUri, fromBotNumber, wearSetting, - behaviourSwitches)); - - startBotThread.Name = "Bots connection thread"; - startBotThread.Start(); + Thread connectBotThread = new Thread(o => ConnectBotsInternal(botcount)); - return true; + connectBotThread.Name = "Bots connection thread"; + connectBotThread.Start(); } - private void ConnectBotsInternal( - int botcount, string firstName, string lastNameStem, string password, string loginUri, string startUri, int fromBotNumber, string wearSetting, - HashSet behaviourSwitches) + private void ConnectBotsInternal(int botcount) { MainConsole.Instance.OutputFormat( "[BOT MANAGER]: Starting {0} bots connecting to {1}, location {2}, named {3} {4}_", botcount, - loginUri, - startUri, - firstName, - lastNameStem); + m_loginUri, + m_startUri, + m_firstName, + m_lastNameStem); MainConsole.Instance.OutputFormat("[BOT MANAGER]: Delay between logins is {0}ms", LoginDelay); MainConsole.Instance.OutputFormat("[BOT MANAGER]: BotsSendAgentUpdates is {0}", InitBotSendAgentUpdates); @@ -269,28 +291,7 @@ namespace pCampBot break; } - string lastName = string.Format("{0}_{1}", lastNameStem, i + fromBotNumber); - - // We must give each bot its own list of instantiated behaviours since they store state. - List behaviours = new List(); - - // Hard-coded for now - if (behaviourSwitches.Contains("c")) - behaviours.Add(new CrossBehaviour()); - - if (behaviourSwitches.Contains("g")) - behaviours.Add(new GrabbingBehaviour()); - - if (behaviourSwitches.Contains("n")) - behaviours.Add(new NoneBehaviour()); - - if (behaviourSwitches.Contains("p")) - behaviours.Add(new PhysicsBehaviour()); - - if (behaviourSwitches.Contains("t")) - behaviours.Add(new TeleportBehaviour()); - - StartBot(this, behaviours, firstName, lastName, password, loginUri, startUri, wearSetting); + m_bots[i].Connect(); } // Stagger logins @@ -360,7 +361,7 @@ namespace pCampBot // } /// - /// This starts up the bot and stores the thread for the bot in the thread array + /// This creates a bot but does not start it. /// /// /// Behaviours for this bot to perform. @@ -370,12 +371,12 @@ namespace pCampBot /// Login URI /// Location to start the bot. Can be "last", "home" or a specific sim name. /// - public void StartBot( + public void CreateBot( BotManager bm, List behaviours, string firstName, string lastName, string password, string loginUri, string startLocation, string wearSetting) { MainConsole.Instance.OutputFormat( - "[BOT MANAGER]: Starting bot {0} {1}, behaviours are {2}", + "[BOT MANAGER]: Creating bot {0} {1}, behaviours are {2}", firstName, lastName, string.Join(",", behaviours.ConvertAll(b => b.Name).ToArray())); Bot pb = new Bot(bm, behaviours, firstName, lastName, password, startLocation, loginUri); @@ -387,12 +388,6 @@ namespace pCampBot pb.OnDisconnected += handlebotEvent; m_bots.Add(pb); - - Thread pbThread = new Thread(pb.startup); - pbThread.Name = pb.Name; - pbThread.IsBackground = true; - - pbThread.Start(); } /// @@ -427,6 +422,37 @@ namespace pCampBot return new LocalConsole("pCampbot"); } + private void HandleConnect(string module, string[] cmd) + { + if (ConnectingBots) + { + MainConsole.Instance.Output("Still connecting bots. Please wait for previous process to complete."); + return; + } + + lock (m_bots) + { + int botsToConnect; + int disconnectedBots = m_bots.Count(b => b.ConnectionState == ConnectionState.Disconnected); + + if (cmd.Length == 1) + { + botsToConnect = disconnectedBots; + } + else + { + if (!ConsoleUtil.TryParseConsoleNaturalInt(MainConsole.Instance, cmd[1], out botsToConnect)) + return; + + botsToConnect = Math.Min(botsToConnect, disconnectedBots); + } + + MainConsole.Instance.OutputFormat("Connecting {0} bots", botsToConnect); + + ConnectBots(botsToConnect); + } + } + private void HandleDisconnect(string module, string[] cmd) { lock (m_bots) @@ -461,10 +487,12 @@ namespace pCampBot if (thisBot.ConnectionState == ConnectionState.Connected) { - Util.FireAndForget(o => thisBot.shutdown()); + Util.FireAndForget(o => thisBot.Disconnect()); disconnectedBots++; } } + + DisconnectingBots = false; } } diff --git a/OpenSim/Tools/pCampBot/pCampBot.cs b/OpenSim/Tools/pCampBot/pCampBot.cs index e58b130..ada39ee 100644 --- a/OpenSim/Tools/pCampBot/pCampBot.cs +++ b/OpenSim/Tools/pCampBot/pCampBot.cs @@ -95,7 +95,8 @@ namespace pCampBot int botcount = commandLineConfig.GetInt("botcount", 1); - bm.dobotStartup(botcount, commandLineConfig); + bm.CreateBots(botcount, commandLineConfig); + bm.ConnectBots(botcount); while (true) { -- cgit v1.1 From a3dd7db4a341f34e0df5b7fa4bddda4049e50acd Mon Sep 17 00:00:00 2001 From: Justin Clark-Casey (justincc) Date: Tue, 20 Aug 2013 00:08:47 +0100 Subject: Add -connect (-c) switch to pCampbot command line options. Now, bots will only connect at startup if this switch is specified. If it is not specified, then a separate "connect" command is required on the pCampbot command line --- OpenSim/Tools/pCampBot/pCampBot.cs | 25 +++++++++++++++---------- 1 file changed, 15 insertions(+), 10 deletions(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/pCampBot/pCampBot.cs b/OpenSim/Tools/pCampBot/pCampBot.cs index ada39ee..fc67398 100644 --- a/OpenSim/Tools/pCampBot/pCampBot.cs +++ b/OpenSim/Tools/pCampBot/pCampBot.cs @@ -94,9 +94,12 @@ namespace pCampBot } int botcount = commandLineConfig.GetInt("botcount", 1); + bool startConnected = commandLineConfig.Get("connect") != null; bm.CreateBots(botcount, commandLineConfig); - bm.ConnectBots(botcount); + + if (startConnected) + bm.ConnectBots(botcount); while (true) { @@ -117,6 +120,7 @@ namespace pCampBot //Set up our nifty config.. thanks to nini ArgvConfigSource cs = new ArgvConfigSource(args); + cs.AddSwitch("Startup", "connect", "c"); cs.AddSwitch("Startup", "botcount", "n"); cs.AddSwitch("Startup", "from", "f"); cs.AddSwitch("Startup", "loginuri", "l"); @@ -143,20 +147,21 @@ namespace pCampBot "usage: pCampBot <-loginuri loginuri> [OPTIONS]\n" + "Spawns a set of bots to test an OpenSim region\n\n" + " -l, -loginuri loginuri for grid/standalone (required)\n" - + " -s, -start optional start location for bots. Can be \"last\", \"home\" or a specific location with or without co-ords (e.g. \"region1\" or \"region2/50/30/90\"\n" - + " -firstname first name for the bots\n" - + " -lastname lastname for the bots. Each lastname will have _ appended, e.g. Ima Bot_0\n" - + " -password password for the bots\n" - + " -n, -botcount optional number of bots to start (default: 1)\n" - + " -f, -from optional starting number for login bot names, e.g. 25 will login Ima Bot_25, Ima Bot_26, etc. (default: 0)" - + " -b, behaviours behaviours for bots. Comma separated, e.g. p,g. Default is p\n" + + " -s, -start start location for bots (optional). Can be \"last\", \"home\" or a specific location with or without co-ords (e.g. \"region1\" or \"region2/50/30/90\"\n" + + " -firstname first name for the bots (required)\n" + + " -lastname lastname for the bots (required). Each lastname will have _ appended, e.g. Ima Bot_0\n" + + " -password password for the bots (required)\n" + + " -n, -botcount number of bots to start (default: 1) (optional)\n" + + " -f, -from starting number for login bot names, e.g. 25 will login Ima Bot_25, Ima Bot_26, etc. (default: 0) (optional)\n" + + " -c, -connect connect all bots at startup (optional)\n" + + " -b, behaviours behaviours for bots. Comma separated, e.g. p,g. Default is p (required)\n" + " current options are:\n" + " p (physics - bots constantly move and jump around)\n" + " g (grab - bots randomly click prims whether set clickable or not)\n" + " n (none - bots do nothing)\n" + " t (teleport - bots regularly teleport between regions on the grid)\n" -// " c (cross)" + - + " -wear optional folder from which to load appearance data, \"no\" if there is no such folder (default: no)\n" +// " c (cross)\n" + + + " -wear folder from which to load appearance data, \"no\" if there is no such folder (default: no) (optional)\n" + " -h, -help show this message.\n"); } } -- cgit v1.1 From 56d1d67a34bbd3e597168ab9bfa43be6a34e580a Mon Sep 17 00:00:00 2001 From: Justin Clark-Casey (justincc) Date: Tue, 20 Aug 2013 17:01:12 +0100 Subject: Add pCampbot console commands to sit all bots on ground and stand all bots --- OpenSim/Tools/pCampBot/Bot.cs | 24 ++++++++++++ OpenSim/Tools/pCampBot/BotManager.cs | 74 +++++++++++++----------------------- 2 files changed, 51 insertions(+), 47 deletions(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/pCampBot/Bot.cs b/OpenSim/Tools/pCampBot/Bot.cs index f7af26e..27c086e 100644 --- a/OpenSim/Tools/pCampBot/Bot.cs +++ b/OpenSim/Tools/pCampBot/Bot.cs @@ -318,6 +318,30 @@ namespace pCampBot } } + /// + /// Sit this bot on the ground. + /// + public void SitOnGround() + { + if (ConnectionState == ConnectionState.Connected) + Client.Self.SitOnGround(); + } + + /// + /// Stand this bot + /// + public void Stand() + { + if (ConnectionState == ConnectionState.Connected) + { + // Unlike sit on ground, here libomv checks whether we have SEND_AGENT_UPDATES enabled. + bool prevUpdatesSetting = Client.Settings.SEND_AGENT_UPDATES; + Client.Settings.SEND_AGENT_UPDATES = true; + Client.Self.Stand(); + Client.Settings.SEND_AGENT_UPDATES = prevUpdatesSetting; + } + } + public void SaveDefaultAppearance() { saveDir = "MyAppearance/" + FirstName + "_" + LastName; diff --git a/OpenSim/Tools/pCampBot/BotManager.cs b/OpenSim/Tools/pCampBot/BotManager.cs index f40a84d..f5b5256 100644 --- a/OpenSim/Tools/pCampBot/BotManager.cs +++ b/OpenSim/Tools/pCampBot/BotManager.cs @@ -195,14 +195,18 @@ namespace pCampBot HandleDisconnect); m_console.Commands.AddCommand( - "bot", false, "show regions", "show regions", "Show regions known to bots", HandleShowRegions); + "bot", false, "sit", "sit", "Sit all bots on the ground.", + HandleSit); + + m_console.Commands.AddCommand( + "bot", false, "stand", "stand", "Stand all bots.", + HandleStand); m_console.Commands.AddCommand( - "bot", false, "show bots", "show bots", "Shows the status of all bots", HandleShowStatus); + "bot", false, "show regions", "show regions", "Show regions known to bots", HandleShowRegions); -// m_console.Commands.AddCommand("bot", false, "add bots", -// "add bots ", -// "Add more bots", HandleAddBots); + m_console.Commands.AddCommand( + "bot", false, "show bots", "show bots", "Shows the status of all bots", HandleShowBotsStatus); m_bots = new List(); } @@ -340,26 +344,6 @@ namespace pCampBot return string.Format("uri:{0}&{1}&{2}&{3}", regionName, startPos.X, startPos.Y, startPos.Z); } -// /// -// /// Add additional bots (and threads) to our bot pool -// /// -// /// How Many of them to add -// public void addbots(int botcount) -// { -// int len = m_td.Length; -// Thread[] m_td2 = new Thread[len + botcount]; -// for (int i = 0; i < len; i++) -// { -// m_td2[i] = m_td[i]; -// } -// m_td = m_td2; -// int newlen = len + botcount; -// for (int i = len; i < newlen; i++) -// { -// startupBot(Config); -// } -// } - /// /// This creates a bot but does not start it. /// @@ -496,6 +480,22 @@ namespace pCampBot } } + private void HandleSit(string module, string[] cmd) + { + lock (m_bots) + { + m_bots.ForEach(b => b.SitOnGround()); + } + } + + private void HandleStand(string module, string[] cmd) + { + lock (m_bots) + { + m_bots.ForEach(b => b.Stand()); + } + } + private void HandleShutdown(string module, string[] cmd) { lock (m_bots) @@ -529,7 +529,7 @@ namespace pCampBot } } - private void HandleShowStatus(string module, string[] cmd) + private void HandleShowBotsStatus(string module, string[] cmd) { ConsoleDisplayTable cdt = new ConsoleDisplayTable(); cdt.AddColumn("Name", 30); @@ -563,26 +563,6 @@ namespace pCampBot MainConsole.Instance.Output(cdl.ToString()); } - /* - private void HandleQuit(string module, string[] cmd) - { - m_console.Warn("DANGER", "This should only be used to quit the program if you've already used the shutdown command and the program hasn't quit"); - Environment.Exit(0); - } - */ -// -// private void HandleAddBots(string module, string[] cmd) -// { -// int newbots = 0; -// -// if (cmd.Length > 2) -// { -// Int32.TryParse(cmd[2], out newbots); -// } -// if (newbots > 0) -// addbots(newbots); -// } - internal void Grid_GridRegion(object o, GridRegionEventArgs args) { lock (RegionsKnown) @@ -602,4 +582,4 @@ namespace pCampBot } } } -} +} \ No newline at end of file -- cgit v1.1 From a3e1b278a1d82e231f85bf0bf181ed79bbdaa7f2 Mon Sep 17 00:00:00 2001 From: Justin Clark-Casey (justincc) Date: Tue, 20 Aug 2013 18:41:09 +0100 Subject: Add pCampbot "show bot" console command to show more detailed information on a particular bot (e.g. what sims they are connected to) --- OpenSim/Tools/pCampBot/Bot.cs | 11 +++++++- OpenSim/Tools/pCampBot/BotManager.cs | 49 +++++++++++++++++++++++++++++++++++- 2 files changed, 58 insertions(+), 2 deletions(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/pCampBot/Bot.cs b/OpenSim/Tools/pCampBot/Bot.cs index 27c086e..d418288 100644 --- a/OpenSim/Tools/pCampBot/Bot.cs +++ b/OpenSim/Tools/pCampBot/Bot.cs @@ -97,11 +97,20 @@ namespace pCampBot /// public ConnectionState ConnectionState { get; private set; } + public List Simulators + { + get + { + lock (Client.Network.Simulators) + return new List(Client.Network.Simulators); + } + } + /// /// The number of connections that this bot has to different simulators. /// /// Includes both root and child connections. - public int ConnectionsCount + public int SimulatorsCount { get { diff --git a/OpenSim/Tools/pCampBot/BotManager.cs b/OpenSim/Tools/pCampBot/BotManager.cs index f5b5256..303c8dd 100644 --- a/OpenSim/Tools/pCampBot/BotManager.cs +++ b/OpenSim/Tools/pCampBot/BotManager.cs @@ -208,6 +208,10 @@ namespace pCampBot m_console.Commands.AddCommand( "bot", false, "show bots", "show bots", "Shows the status of all bots", HandleShowBotsStatus); + m_console.Commands.AddCommand( + "bot", false, "show bot", "show bot ", + "Shows the detailed status and settings of a particular bot.", HandleShowBotStatus); + m_bots = new List(); } @@ -549,7 +553,7 @@ namespace pCampBot totals[pb.ConnectionState]++; cdt.AddRow( - pb.Name, currentSim != null ? currentSim.Name : "(none)", pb.ConnectionState, pb.ConnectionsCount); + pb.Name, currentSim != null ? currentSim.Name : "(none)", pb.ConnectionState, pb.SimulatorsCount); } } @@ -563,6 +567,49 @@ namespace pCampBot MainConsole.Instance.Output(cdl.ToString()); } + private void HandleShowBotStatus(string module, string[] cmd) + { + if (cmd.Length != 4) + { + MainConsole.Instance.Output("Usage: show bot "); + return; + } + + string name = string.Format("{0} {1}", cmd[2], cmd[3]); + + Bot bot; + + lock (m_bots) + bot = m_bots.Find(b => b.Name == name); + + if (bot == null) + { + MainConsole.Instance.Output("No bot found with name {0}", name); + return; + } + + ConsoleDisplayList cdl = new ConsoleDisplayList(); + cdl.AddRow("Name", bot.Name); + cdl.AddRow("Status", bot.ConnectionState); + + Simulator currentSim = bot.Client.Network.CurrentSim; + cdl.AddRow("Region", currentSim != null ? currentSim.Name : "(none)"); + + List connectedSimulators = bot.Simulators; + List simulatorNames = connectedSimulators.ConvertAll(cs => cs.Name); + cdl.AddRow("Connections", string.Join(", ", simulatorNames)); + + MainConsole.Instance.Output(cdl.ToString()); + + MainConsole.Instance.Output("Settings"); + + ConsoleDisplayList statusCdl = new ConsoleDisplayList(); + GridClient botClient = bot.Client; + statusCdl.AddRow("SEND_AGENT_UPDATES", botClient.Settings.SEND_AGENT_UPDATES); + + MainConsole.Instance.Output(statusCdl.ToString()); + } + internal void Grid_GridRegion(object o, GridRegionEventArgs args) { lock (RegionsKnown) -- cgit v1.1 From 4a81465b91b6506200157f8679ae9192cd43b45f Mon Sep 17 00:00:00 2001 From: Justin Clark-Casey (justincc) Date: Tue, 20 Aug 2013 18:47:52 +0100 Subject: Fix build break from last commit a3e1b27 on mono 2.4.3 Looks like this level of mono doesn't have a string.Join() which will take a list rather than an array (or some implicit conversion isn't happening) --- OpenSim/Tools/pCampBot/BotManager.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/pCampBot/BotManager.cs b/OpenSim/Tools/pCampBot/BotManager.cs index 303c8dd..13912ae 100644 --- a/OpenSim/Tools/pCampBot/BotManager.cs +++ b/OpenSim/Tools/pCampBot/BotManager.cs @@ -597,7 +597,7 @@ namespace pCampBot List connectedSimulators = bot.Simulators; List simulatorNames = connectedSimulators.ConvertAll(cs => cs.Name); - cdl.AddRow("Connections", string.Join(", ", simulatorNames)); + cdl.AddRow("Connections", string.Join(", ", simulatorNames.ToArray())); MainConsole.Instance.Output(cdl.ToString()); -- cgit v1.1 From 66a7dc3a0de599068ea257cc2cefbbe4b95599c7 Mon Sep 17 00:00:00 2001 From: Justin Clark-Casey (justincc) Date: Thu, 22 Aug 2013 20:12:14 +0100 Subject: In pCampbot, don't try and reconnect bots that are already connected on console "connect" command --- OpenSim/Tools/pCampBot/BotManager.cs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/pCampBot/BotManager.cs b/OpenSim/Tools/pCampBot/BotManager.cs index 13912ae..245c460 100644 --- a/OpenSim/Tools/pCampBot/BotManager.cs +++ b/OpenSim/Tools/pCampBot/BotManager.cs @@ -299,7 +299,8 @@ namespace pCampBot break; } - m_bots[i].Connect(); + if (m_bots[i].ConnectionState == ConnectionState.Disconnected) + m_bots[i].Connect(); } // Stagger logins -- cgit v1.1 From 51c7fb1969f4850750de4b37827e5e2e9d85f3e0 Mon Sep 17 00:00:00 2001 From: Justin Clark-Casey (justincc) Date: Thu, 22 Aug 2013 23:11:05 +0100 Subject: Add "set bots" command to make it possible to set SEND_AGENT_UPDATES on all bots whilst pCampbot is running --- OpenSim/Tools/pCampBot/BotManager.cs | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/pCampBot/BotManager.cs b/OpenSim/Tools/pCampBot/BotManager.cs index 245c460..c335a6e 100644 --- a/OpenSim/Tools/pCampBot/BotManager.cs +++ b/OpenSim/Tools/pCampBot/BotManager.cs @@ -203,6 +203,9 @@ namespace pCampBot HandleStand); m_console.Commands.AddCommand( + "bot", false, "set bots", "set bots ", "Set a setting for all bots.", HandleSetBots); + + m_console.Commands.AddCommand( "bot", false, "show regions", "show regions", "Show regions known to bots", HandleShowRegions); m_console.Commands.AddCommand( @@ -519,6 +522,30 @@ namespace pCampBot Environment.Exit(0); } + private void HandleSetBots(string module, string[] cmd) + { + string key = cmd[2]; + string rawValue = cmd[3]; + + if (key == "SEND_AGENT_UPDATES") + { + bool newSendAgentUpdatesSetting; + + if (!ConsoleUtil.TryParseConsoleBool(MainConsole.Instance, rawValue, out newSendAgentUpdatesSetting)) + return; + + MainConsole.Instance.OutputFormat( + "Setting SEND_AGENT_UPDATES to {0} for all bots", newSendAgentUpdatesSetting); + + lock (m_bots) + m_bots.ForEach(b => b.Client.Settings.SEND_AGENT_UPDATES = newSendAgentUpdatesSetting); + } + else + { + MainConsole.Instance.Output("Error: Only setting currently available is SEND_AGENT_UPDATES"); + } + } + private void HandleShowRegions(string module, string[] cmd) { string outputFormat = "{0,-30} {1, -20} {2, -5} {3, -5}"; -- cgit v1.1 From 70f89ae65b09e9c2f0dc63cb416fea4cceb7dd13 Mon Sep 17 00:00:00 2001 From: Justin Clark-Casey (justincc) Date: Thu, 22 Aug 2013 23:43:33 +0100 Subject: Make it possible to adjust the pCampbot login delay via the [BotManager] LoginDelay parameter of pCampbot.ini --- OpenSim/Tools/pCampBot/pCampBot.cs | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/pCampBot/pCampBot.cs b/OpenSim/Tools/pCampBot/pCampBot.cs index fc67398..aee5864 100644 --- a/OpenSim/Tools/pCampBot/pCampBot.cs +++ b/OpenSim/Tools/pCampBot/pCampBot.cs @@ -82,6 +82,13 @@ namespace pCampBot IConfigSource configSource = new IniConfigSource(iniFilePath); + IConfig botManagerConfig = configSource.Configs["BotManager"]; + + if (botManagerConfig != null) + { + bm.LoginDelay = botManagerConfig.GetInt("LoginDelay", bm.LoginDelay); + } + IConfig botConfig = configSource.Configs["Bot"]; if (botConfig != null) -- cgit v1.1 From 13556cf1296d3c928d6eb286a6a1c9058c9ab5e7 Mon Sep 17 00:00:00 2001 From: Justin Clark-Casey (justincc) Date: Thu, 22 Aug 2013 23:49:19 +0100 Subject: Fix a further bug in pCampbot connect where ignoring already connected bots was wrongly counted as a connect Also, only sleep when we actually perform a connection --- OpenSim/Tools/pCampBot/BotManager.cs | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/pCampBot/BotManager.cs b/OpenSim/Tools/pCampBot/BotManager.cs index c335a6e..50a77ed 100644 --- a/OpenSim/Tools/pCampBot/BotManager.cs +++ b/OpenSim/Tools/pCampBot/BotManager.cs @@ -277,11 +277,11 @@ namespace pCampBot connectBotThread.Start(); } - private void ConnectBotsInternal(int botcount) + private void ConnectBotsInternal(int botCount) { MainConsole.Instance.OutputFormat( "[BOT MANAGER]: Starting {0} bots connecting to {1}, location {2}, named {3} {4}_", - botcount, + botCount, m_loginUri, m_startUri, m_firstName, @@ -291,7 +291,9 @@ namespace pCampBot MainConsole.Instance.OutputFormat("[BOT MANAGER]: BotsSendAgentUpdates is {0}", InitBotSendAgentUpdates); MainConsole.Instance.OutputFormat("[BOT MANAGER]: InitBotRequestObjectTextures is {0}", InitBotRequestObjectTextures); - for (int i = 0; i < botcount; i++) + int connectedBots = 0; + + for (int i = 0; i < m_bots.Count; i++) { lock (m_bots) { @@ -303,11 +305,17 @@ namespace pCampBot } if (m_bots[i].ConnectionState == ConnectionState.Disconnected) + { m_bots[i].Connect(); - } + connectedBots++; - // Stagger logins - Thread.Sleep(LoginDelay); + if (connectedBots >= botCount) + break; + + // Stagger logins + Thread.Sleep(LoginDelay); + } + } } ConnectingBots = false; -- cgit v1.1 From 050617ae0ec13075db36449e8e5a4616c8bcd96e Mon Sep 17 00:00:00 2001 From: Justin Clark-Casey (justincc) Date: Fri, 23 Aug 2013 01:13:19 +0100 Subject: Make pCampbot "show bot" command take the bot number instead of the full bot name Shorter and can do this because bot names are uniform --- OpenSim/Tools/pCampBot/BotManager.cs | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/pCampBot/BotManager.cs b/OpenSim/Tools/pCampBot/BotManager.cs index 50a77ed..5c3835b 100644 --- a/OpenSim/Tools/pCampBot/BotManager.cs +++ b/OpenSim/Tools/pCampBot/BotManager.cs @@ -212,7 +212,7 @@ namespace pCampBot "bot", false, "show bots", "show bots", "Shows the status of all bots", HandleShowBotsStatus); m_console.Commands.AddCommand( - "bot", false, "show bot", "show bot ", + "bot", false, "show bot", "show bot ", "Shows the detailed status and settings of a particular bot.", HandleShowBotStatus); m_bots = new List(); @@ -605,13 +605,18 @@ namespace pCampBot private void HandleShowBotStatus(string module, string[] cmd) { - if (cmd.Length != 4) + if (cmd.Length != 3) { - MainConsole.Instance.Output("Usage: show bot "); + MainConsole.Instance.Output("Usage: show bot "); return; } - string name = string.Format("{0} {1}", cmd[2], cmd[3]); + int botNumber; + + if (!ConsoleUtil.TryParseConsoleInt(MainConsole.Instance, cmd[2], out botNumber)) + return; + + string name = string.Format("{0} {1}_{2}", m_firstName, m_lastNameStem, botNumber); Bot bot; -- cgit v1.1 From 1a623bb266e78c9dc2648038de7b67d81b5a417e Mon Sep 17 00:00:00 2001 From: Justin Clark-Casey (justincc) Date: Fri, 23 Aug 2013 20:58:22 +0100 Subject: Rename pCampbot.ini -> pCampBot.ini (and example file) to be consistent with other capitalizations of pCampBot --- OpenSim/Tools/pCampBot/pCampBot.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/pCampBot/pCampBot.cs b/OpenSim/Tools/pCampBot/pCampBot.cs index aee5864..781bb00 100644 --- a/OpenSim/Tools/pCampBot/pCampBot.cs +++ b/OpenSim/Tools/pCampBot/pCampBot.cs @@ -51,7 +51,7 @@ namespace pCampBot { private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); - public const string ConfigFileName = "pCampbot.ini"; + public const string ConfigFileName = "pCampBot.ini"; [STAThread] public static void Main(string[] args) -- cgit v1.1 From 9c652079361f496c46640ed67e964ee6164ce06e Mon Sep 17 00:00:00 2001 From: Justin Clark-Casey (justincc) Date: Tue, 3 Sep 2013 17:07:57 +0100 Subject: Show behaviours of pCampbot bots in "show bots" and "show bot" console commands --- .../Tools/pCampBot/Behaviours/AbstractBehaviour.cs | 5 +++++ .../Tools/pCampBot/Behaviours/CrossBehaviour.cs | 6 +++++- .../Tools/pCampBot/Behaviours/GrabbingBehaviour.cs | 6 +++++- OpenSim/Tools/pCampBot/Behaviours/NoneBehaviour.cs | 6 +++++- .../Tools/pCampBot/Behaviours/PhysicsBehaviour.cs | 1 + .../Tools/pCampBot/Behaviours/TeleportBehaviour.cs | 6 +++++- OpenSim/Tools/pCampBot/BotManager.cs | 22 ++++++++++++++-------- OpenSim/Tools/pCampBot/Interfaces/IBehaviour.cs | 5 +++++ 8 files changed, 45 insertions(+), 12 deletions(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/pCampBot/Behaviours/AbstractBehaviour.cs b/OpenSim/Tools/pCampBot/Behaviours/AbstractBehaviour.cs index 9a9371d..66d5542 100644 --- a/OpenSim/Tools/pCampBot/Behaviours/AbstractBehaviour.cs +++ b/OpenSim/Tools/pCampBot/Behaviours/AbstractBehaviour.cs @@ -35,6 +35,11 @@ namespace pCampBot { public class AbstractBehaviour : IBehaviour { + /// + /// Abbreviated name of this behaviour. + /// + public string AbbreviatedName { get; protected set; } + public string Name { get; protected set; } public Bot Bot { get; protected set; } diff --git a/OpenSim/Tools/pCampBot/Behaviours/CrossBehaviour.cs b/OpenSim/Tools/pCampBot/Behaviours/CrossBehaviour.cs index 1e01c64..4d806fc 100644 --- a/OpenSim/Tools/pCampBot/Behaviours/CrossBehaviour.cs +++ b/OpenSim/Tools/pCampBot/Behaviours/CrossBehaviour.cs @@ -47,7 +47,11 @@ namespace pCampBot public const int m_regionCrossingTimeout = 1000 * 60; - public CrossBehaviour() { Name = "Cross"; } + public CrossBehaviour() + { + AbbreviatedName = "c"; + Name = "Cross"; + } public override void Action() { diff --git a/OpenSim/Tools/pCampBot/Behaviours/GrabbingBehaviour.cs b/OpenSim/Tools/pCampBot/Behaviours/GrabbingBehaviour.cs index 66a336a..6acc27d 100644 --- a/OpenSim/Tools/pCampBot/Behaviours/GrabbingBehaviour.cs +++ b/OpenSim/Tools/pCampBot/Behaviours/GrabbingBehaviour.cs @@ -41,7 +41,11 @@ namespace pCampBot /// public class GrabbingBehaviour : AbstractBehaviour { - public GrabbingBehaviour() { Name = "Grabbing"; } + public GrabbingBehaviour() + { + AbbreviatedName = "g"; + Name = "Grabbing"; + } public override void Action() { diff --git a/OpenSim/Tools/pCampBot/Behaviours/NoneBehaviour.cs b/OpenSim/Tools/pCampBot/Behaviours/NoneBehaviour.cs index 9cf8a54..9a3075c 100644 --- a/OpenSim/Tools/pCampBot/Behaviours/NoneBehaviour.cs +++ b/OpenSim/Tools/pCampBot/Behaviours/NoneBehaviour.cs @@ -38,6 +38,10 @@ namespace pCampBot /// public class NoneBehaviour : AbstractBehaviour { - public NoneBehaviour() { Name = "None"; } + public NoneBehaviour() + { + AbbreviatedName = "n"; + Name = "None"; + } } } \ No newline at end of file diff --git a/OpenSim/Tools/pCampBot/Behaviours/PhysicsBehaviour.cs b/OpenSim/Tools/pCampBot/Behaviours/PhysicsBehaviour.cs index daa7485..47b4d46 100644 --- a/OpenSim/Tools/pCampBot/Behaviours/PhysicsBehaviour.cs +++ b/OpenSim/Tools/pCampBot/Behaviours/PhysicsBehaviour.cs @@ -46,6 +46,7 @@ namespace pCampBot public PhysicsBehaviour() { + AbbreviatedName = "p"; Name = "Physics"; talkarray = readexcuses(); } diff --git a/OpenSim/Tools/pCampBot/Behaviours/TeleportBehaviour.cs b/OpenSim/Tools/pCampBot/Behaviours/TeleportBehaviour.cs index fbb4e96..5f7edda 100644 --- a/OpenSim/Tools/pCampBot/Behaviours/TeleportBehaviour.cs +++ b/OpenSim/Tools/pCampBot/Behaviours/TeleportBehaviour.cs @@ -42,7 +42,11 @@ namespace pCampBot { private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); - public TeleportBehaviour() { Name = "Teleport"; } + public TeleportBehaviour() + { + AbbreviatedName = "t"; + Name = "Teleport"; + } public override void Action() { diff --git a/OpenSim/Tools/pCampBot/BotManager.cs b/OpenSim/Tools/pCampBot/BotManager.cs index 5c3835b..35a24d1 100644 --- a/OpenSim/Tools/pCampBot/BotManager.cs +++ b/OpenSim/Tools/pCampBot/BotManager.cs @@ -572,10 +572,11 @@ namespace pCampBot private void HandleShowBotsStatus(string module, string[] cmd) { ConsoleDisplayTable cdt = new ConsoleDisplayTable(); - cdt.AddColumn("Name", 30); - cdt.AddColumn("Region", 30); - cdt.AddColumn("Status", 14); - cdt.AddColumn("Connections", 11); + cdt.AddColumn("Name", 24); + cdt.AddColumn("Region", 24); + cdt.AddColumn("Status", 13); + cdt.AddColumn("Conns", 5); + cdt.AddColumn("Behaviours", 20); Dictionary totals = new Dictionary(); foreach (object o in Enum.GetValues(typeof(ConnectionState))) @@ -583,13 +584,17 @@ namespace pCampBot lock (m_bots) { - foreach (Bot pb in m_bots) + foreach (Bot bot in m_bots) { - Simulator currentSim = pb.Client.Network.CurrentSim; - totals[pb.ConnectionState]++; + Simulator currentSim = bot.Client.Network.CurrentSim; + totals[bot.ConnectionState]++; cdt.AddRow( - pb.Name, currentSim != null ? currentSim.Name : "(none)", pb.ConnectionState, pb.SimulatorsCount); + bot.Name, + currentSim != null ? currentSim.Name : "(none)", + bot.ConnectionState, + bot.SimulatorsCount, + string.Join(",", bot.Behaviours.ConvertAll(behaviour => behaviour.AbbreviatedName))); } } @@ -645,6 +650,7 @@ namespace pCampBot MainConsole.Instance.Output("Settings"); ConsoleDisplayList statusCdl = new ConsoleDisplayList(); + statusCdl.AddRow("Behaviours", string.Join(", ", bot.Behaviours.ConvertAll(b => b.Name))); GridClient botClient = bot.Client; statusCdl.AddRow("SEND_AGENT_UPDATES", botClient.Settings.SEND_AGENT_UPDATES); diff --git a/OpenSim/Tools/pCampBot/Interfaces/IBehaviour.cs b/OpenSim/Tools/pCampBot/Interfaces/IBehaviour.cs index 9c984be..f8a661b 100644 --- a/OpenSim/Tools/pCampBot/Interfaces/IBehaviour.cs +++ b/OpenSim/Tools/pCampBot/Interfaces/IBehaviour.cs @@ -32,6 +32,11 @@ namespace pCampBot.Interfaces public interface IBehaviour { /// + /// Abbreviated name of this behaviour. + /// + string AbbreviatedName { get; } + + /// /// Name of this behaviour. /// string Name { get; } -- cgit v1.1 From a89c56dcf1e2645554f8b81b6f1e517b829cc3a4 Mon Sep 17 00:00:00 2001 From: Justin Clark-Casey (justincc) Date: Tue, 3 Sep 2013 17:53:29 +0100 Subject: Fix build break from last commit 9c65207. Mono 2.4 lacks string.join(string, List), or some auto casting is missing --- OpenSim/Tools/pCampBot/BotManager.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/pCampBot/BotManager.cs b/OpenSim/Tools/pCampBot/BotManager.cs index 35a24d1..7d4af13 100644 --- a/OpenSim/Tools/pCampBot/BotManager.cs +++ b/OpenSim/Tools/pCampBot/BotManager.cs @@ -594,7 +594,7 @@ namespace pCampBot currentSim != null ? currentSim.Name : "(none)", bot.ConnectionState, bot.SimulatorsCount, - string.Join(",", bot.Behaviours.ConvertAll(behaviour => behaviour.AbbreviatedName))); + string.Join(",", bot.Behaviours.ConvertAll(behaviour => behaviour.AbbreviatedName).ToArray())); } } -- cgit v1.1 From 01cb8033a42514728835a18a38f2a18349e83638 Mon Sep 17 00:00:00 2001 From: Justin Clark-Casey (justincc) Date: Tue, 3 Sep 2013 17:55:20 +0100 Subject: And fix break in "show bot" from commit 9c65207 --- OpenSim/Tools/pCampBot/BotManager.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/pCampBot/BotManager.cs b/OpenSim/Tools/pCampBot/BotManager.cs index 7d4af13..3e446af 100644 --- a/OpenSim/Tools/pCampBot/BotManager.cs +++ b/OpenSim/Tools/pCampBot/BotManager.cs @@ -650,7 +650,7 @@ namespace pCampBot MainConsole.Instance.Output("Settings"); ConsoleDisplayList statusCdl = new ConsoleDisplayList(); - statusCdl.AddRow("Behaviours", string.Join(", ", bot.Behaviours.ConvertAll(b => b.Name))); + statusCdl.AddRow("Behaviours", string.Join(", ", bot.Behaviours.ConvertAll(b => b.Name).ToArray())); GridClient botClient = bot.Client; statusCdl.AddRow("SEND_AGENT_UPDATES", botClient.Settings.SEND_AGENT_UPDATES); -- cgit v1.1 From 9bd62715704685738c55c6de8127b16cc6695bdb Mon Sep 17 00:00:00 2001 From: Justin Clark-Casey (justincc) Date: Tue, 3 Sep 2013 18:51:55 +0100 Subject: Add ability to adjust pCampbot bot behaviours whilst running with "add behaviour " console commad --- OpenSim/Tools/pCampBot/Bot.cs | 51 ++++++++---- OpenSim/Tools/pCampBot/BotManager.cs | 147 ++++++++++++++++++++++++++++------- 2 files changed, 157 insertions(+), 41 deletions(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/pCampBot/Bot.cs b/OpenSim/Tools/pCampBot/Bot.cs index d418288..6037516 100644 --- a/OpenSim/Tools/pCampBot/Bot.cs +++ b/OpenSim/Tools/pCampBot/Bot.cs @@ -72,9 +72,10 @@ namespace pCampBot /// Behaviours implemented by this bot. /// /// - /// Lock this list before manipulating it. + /// Indexed by abbreviated name. There can only be one instance of a particular behaviour. + /// Lock this structure before manipulating it. /// - public List Behaviours { get; private set; } + public Dictionary Behaviours { get; private set; } /// /// Objects that the bot has discovered. @@ -165,8 +166,6 @@ namespace pCampBot { ConnectionState = ConnectionState.Disconnected; - behaviours.ForEach(b => b.Initialize(this)); - Random = new Random(Environment.TickCount);// We do stuff randomly here FirstName = firstName; LastName = lastName; @@ -176,12 +175,31 @@ namespace pCampBot StartLocation = startLocation; Manager = bm; - Behaviours = behaviours; + + Behaviours = new Dictionary(); + foreach (IBehaviour behaviour in behaviours) + AddBehaviour(behaviour); // Only calling for use as a template. CreateLibOmvClient(); } + public bool AddBehaviour(IBehaviour behaviour) + { + lock (Behaviours) + { + if (!Behaviours.ContainsKey(behaviour.AbbreviatedName)) + { + behaviour.Initialize(this); + Behaviours.Add(behaviour.AbbreviatedName, behaviour); + + return true; + } + } + + return false; + } + private void CreateLibOmvClient() { GridClient newClient = new GridClient(); @@ -237,16 +255,21 @@ namespace pCampBot private void Action() { while (ConnectionState != ConnectionState.Disconnecting) + { lock (Behaviours) - Behaviours.ForEach( - b => - { - Thread.Sleep(Random.Next(3000, 10000)); - - // m_log.DebugFormat("[pCAMPBOT]: For {0} performing action {1}", Name, b.GetType()); - b.Action(); - } - ); + { + foreach (IBehaviour behaviour in Behaviours.Values) + { + Thread.Sleep(Random.Next(3000, 10000)); + + // m_log.DebugFormat("[pCAMPBOT]: For {0} performing action {1}", Name, b.GetType()); + behaviour.Action(); + } + } + + // XXX: This is a really shitty way of yielding so that behaviours can be added/removed + Thread.Sleep(100); + } } /// diff --git a/OpenSim/Tools/pCampBot/BotManager.cs b/OpenSim/Tools/pCampBot/BotManager.cs index 3e446af..51c5ff4 100644 --- a/OpenSim/Tools/pCampBot/BotManager.cs +++ b/OpenSim/Tools/pCampBot/BotManager.cs @@ -140,7 +140,7 @@ namespace pCampBot /// /// Behaviour switches for bots. /// - private HashSet m_behaviourSwitches = new HashSet(); + private HashSet m_defaultBehaviourSwitches = new HashSet(); /// /// Constructor Creates MainConsole.Instance to take commands and provide the place to write data @@ -195,6 +195,18 @@ namespace pCampBot HandleDisconnect); m_console.Commands.AddCommand( + "bot", false, "add behaviour", "add behaviour ", + "Add a behaviour to a bot", + "Can be performed on connected or disconnected bots.", + HandleAddBehaviour); + +// m_console.Commands.AddCommand( +// "bot", false, "remove behaviour", "remove behaviour ", +// "Remove a behaviour from a bot", +// "Can be performed on connected or disconnected bots.", +// HandleRemoveBehaviour); + + m_console.Commands.AddCommand( "bot", false, "sit", "sit", "Sit all bots on the ground.", HandleSit); @@ -235,7 +247,7 @@ namespace pCampBot m_startUri = ParseInputStartLocationToUri(startupConfig.GetString("start", "last")); Array.ForEach( - startupConfig.GetString("behaviours", "p").Split(new char[] { ',' }), b => m_behaviourSwitches.Add(b)); + startupConfig.GetString("behaviours", "p").Split(new char[] { ',' }), b => m_defaultBehaviourSwitches.Add(b)); for (int i = 0; i < botcount; i++) { @@ -243,28 +255,50 @@ namespace pCampBot { string lastName = string.Format("{0}_{1}", m_lastNameStem, i + m_fromBotNumber); - // We must give each bot its own list of instantiated behaviours since they store state. - List behaviours = new List(); - - // Hard-coded for now - if (m_behaviourSwitches.Contains("c")) - behaviours.Add(new CrossBehaviour()); + CreateBot( + this, + CreateBehavioursFromAbbreviatedNames(m_defaultBehaviourSwitches), + m_firstName, lastName, m_password, m_loginUri, m_startUri, m_wearSetting); + } + } + } + + private List CreateBehavioursFromAbbreviatedNames(HashSet abbreviatedNames) + { + // We must give each bot its own list of instantiated behaviours since they store state. + List behaviours = new List(); + + // Hard-coded for now + foreach (string abName in abbreviatedNames) + { + IBehaviour newBehaviour = null; + + if (abName == "c") + newBehaviour = new CrossBehaviour(); + + if (abName == "g") + newBehaviour = new GrabbingBehaviour(); - if (m_behaviourSwitches.Contains("g")) - behaviours.Add(new GrabbingBehaviour()); + if (abName == "n") + newBehaviour = new NoneBehaviour(); - if (m_behaviourSwitches.Contains("n")) - behaviours.Add(new NoneBehaviour()); + if (abName == "p") + newBehaviour = new PhysicsBehaviour(); - if (m_behaviourSwitches.Contains("p")) - behaviours.Add(new PhysicsBehaviour()); - - if (m_behaviourSwitches.Contains("t")) - behaviours.Add(new TeleportBehaviour()); + if (abName == "t") + newBehaviour = new TeleportBehaviour(); - CreateBot(this, behaviours, m_firstName, lastName, m_password, m_loginUri, m_startUri, m_wearSetting); + if (newBehaviour != null) + { + behaviours.Add(newBehaviour); + } + else + { + MainConsole.Instance.OutputFormat("No behaviour with abbreviated name {0} found", abName); } } + + return behaviours; } public void ConnectBots(int botcount) @@ -453,6 +487,44 @@ namespace pCampBot } } + private void HandleAddBehaviour(string module, string[] cmd) + { + if (cmd.Length != 4) + { + MainConsole.Instance.OutputFormat("Usage: add behaviour "); + return; + } + + string rawBehaviours = cmd[2]; + int botNumber; + + if (!ConsoleUtil.TryParseConsoleNaturalInt(MainConsole.Instance, cmd[3], out botNumber)) + return; + + Bot bot = GetBotFromNumber(botNumber); + + if (bot == null) + { + MainConsole.Instance.OutputFormat("Error: No bot found with number {0}", botNumber); + return; + } + + HashSet rawAbbreviatedSwitchesToAdd = new HashSet(); + Array.ForEach(rawBehaviours.Split(new char[] { ',' }), b => rawAbbreviatedSwitchesToAdd.Add(b)); + + List behavioursAdded = new List(); + + foreach (IBehaviour behaviour in CreateBehavioursFromAbbreviatedNames(rawAbbreviatedSwitchesToAdd)) + { + if (bot.AddBehaviour(behaviour)) + behavioursAdded.Add(behaviour); + } + + MainConsole.Instance.OutputFormat( + "Added behaviours {0} to bot {1}", + string.Join(", ", behavioursAdded.ConvertAll(b => b.Name).ToArray()), bot.Name); + } + private void HandleDisconnect(string module, string[] cmd) { lock (m_bots) @@ -594,7 +666,7 @@ namespace pCampBot currentSim != null ? currentSim.Name : "(none)", bot.ConnectionState, bot.SimulatorsCount, - string.Join(",", bot.Behaviours.ConvertAll(behaviour => behaviour.AbbreviatedName).ToArray())); + string.Join(",", bot.Behaviours.Keys.ToArray())); } } @@ -621,16 +693,11 @@ namespace pCampBot if (!ConsoleUtil.TryParseConsoleInt(MainConsole.Instance, cmd[2], out botNumber)) return; - string name = string.Format("{0} {1}_{2}", m_firstName, m_lastNameStem, botNumber); - - Bot bot; - - lock (m_bots) - bot = m_bots.Find(b => b.Name == name); + Bot bot = GetBotFromNumber(botNumber); if (bot == null) { - MainConsole.Instance.Output("No bot found with name {0}", name); + MainConsole.Instance.OutputFormat("Error: No bot found with number {0}", botNumber); return; } @@ -650,13 +717,39 @@ namespace pCampBot MainConsole.Instance.Output("Settings"); ConsoleDisplayList statusCdl = new ConsoleDisplayList(); - statusCdl.AddRow("Behaviours", string.Join(", ", bot.Behaviours.ConvertAll(b => b.Name).ToArray())); + + statusCdl.AddRow( + "Behaviours", + string.Join(", ", bot.Behaviours.Values.ToList().ConvertAll(b => b.Name).ToArray())); + GridClient botClient = bot.Client; statusCdl.AddRow("SEND_AGENT_UPDATES", botClient.Settings.SEND_AGENT_UPDATES); MainConsole.Instance.Output(statusCdl.ToString()); } + /// + /// Get a specific bot from its number. + /// + /// null if no bot was found + /// + private Bot GetBotFromNumber(int botNumber) + { + string name = GenerateBotNameFromNumber(botNumber); + + Bot bot; + + lock (m_bots) + bot = m_bots.Find(b => b.Name == name); + + return bot; + } + + private string GenerateBotNameFromNumber(int botNumber) + { + return string.Format("{0} {1}_{2}", m_firstName, m_lastNameStem, botNumber); + } + internal void Grid_GridRegion(object o, GridRegionEventArgs args) { lock (RegionsKnown) -- cgit v1.1 From 1a2627031d8a80b1d5e21fd2d13e4dc2b123c0b4 Mon Sep 17 00:00:00 2001 From: Justin Clark-Casey (justincc) Date: Tue, 3 Sep 2013 19:05:54 +0100 Subject: Add pCampbot "remove behaviour" console command for removing bot behaviours during operation. Doesn't currently work very well as stopping physics, for instance, can leave bot travelling in old direction --- OpenSim/Tools/pCampBot/Bot.cs | 12 ++++++++ OpenSim/Tools/pCampBot/BotManager.cs | 53 ++++++++++++++++++++++++++++++++---- 2 files changed, 60 insertions(+), 5 deletions(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/pCampBot/Bot.cs b/OpenSim/Tools/pCampBot/Bot.cs index 6037516..0bd8151 100644 --- a/OpenSim/Tools/pCampBot/Bot.cs +++ b/OpenSim/Tools/pCampBot/Bot.cs @@ -184,6 +184,12 @@ namespace pCampBot CreateLibOmvClient(); } + public bool TryGetBehaviour(string abbreviatedName, out IBehaviour behaviour) + { + lock (Behaviours) + return Behaviours.TryGetValue(abbreviatedName, out behaviour); + } + public bool AddBehaviour(IBehaviour behaviour) { lock (Behaviours) @@ -200,6 +206,12 @@ namespace pCampBot return false; } + public bool RemoveBehaviour(string abbreviatedName) + { + lock (Behaviours) + return Behaviours.Remove(abbreviatedName); + } + private void CreateLibOmvClient() { GridClient newClient = new GridClient(); diff --git a/OpenSim/Tools/pCampBot/BotManager.cs b/OpenSim/Tools/pCampBot/BotManager.cs index 51c5ff4..6433c2e 100644 --- a/OpenSim/Tools/pCampBot/BotManager.cs +++ b/OpenSim/Tools/pCampBot/BotManager.cs @@ -200,11 +200,11 @@ namespace pCampBot "Can be performed on connected or disconnected bots.", HandleAddBehaviour); -// m_console.Commands.AddCommand( -// "bot", false, "remove behaviour", "remove behaviour ", -// "Remove a behaviour from a bot", -// "Can be performed on connected or disconnected bots.", -// HandleRemoveBehaviour); + m_console.Commands.AddCommand( + "bot", false, "remove behaviour", "remove behaviour ", + "Remove a behaviour from a bot", + "Can be performed on connected or disconnected bots.", + HandleRemoveBehaviour); m_console.Commands.AddCommand( "bot", false, "sit", "sit", "Sit all bots on the ground.", @@ -525,6 +525,49 @@ namespace pCampBot string.Join(", ", behavioursAdded.ConvertAll(b => b.Name).ToArray()), bot.Name); } + private void HandleRemoveBehaviour(string module, string[] cmd) + { + if (cmd.Length != 4) + { + MainConsole.Instance.OutputFormat("Usage: remove behaviour "); + return; + } + + string rawBehaviours = cmd[2]; + int botNumber; + + if (!ConsoleUtil.TryParseConsoleNaturalInt(MainConsole.Instance, cmd[3], out botNumber)) + return; + + Bot bot = GetBotFromNumber(botNumber); + + if (bot == null) + { + MainConsole.Instance.OutputFormat("Error: No bot found with number {0}", botNumber); + return; + } + + HashSet abbreviatedBehavioursToRemove = new HashSet(); + List behavioursRemoved = new List(); + + Array.ForEach(rawBehaviours.Split(new char[] { ',' }), b => abbreviatedBehavioursToRemove.Add(b)); + + foreach (string b in abbreviatedBehavioursToRemove) + { + IBehaviour behaviour; + + if (bot.TryGetBehaviour(b, out behaviour)) + { + bot.RemoveBehaviour(b); + behavioursRemoved.Add(behaviour); + } + } + + MainConsole.Instance.OutputFormat( + "Removed behaviours {0} to bot {1}", + string.Join(", ", behavioursRemoved.ConvertAll(b => b.Name).ToArray()), bot.Name); + } + private void HandleDisconnect(string module, string[] cmd) { lock (m_bots) -- cgit v1.1 From 3dbe7313d1c3fc28f0642531fbb6e238a98ac821 Mon Sep 17 00:00:00 2001 From: Justin Clark-Casey (justincc) Date: Tue, 3 Sep 2013 19:33:17 +0100 Subject: Add Close() method to IBehaviour to allow behaviours to cleanup when removed or bot it disconnected. In this case, it is used to turn off jump when physics testing behaviour is removed. --- OpenSim/Tools/pCampBot/Behaviours/AbstractBehaviour.cs | 2 ++ OpenSim/Tools/pCampBot/Behaviours/PhysicsBehaviour.cs | 5 +++++ OpenSim/Tools/pCampBot/Bot.cs | 16 +++++++++++++++- OpenSim/Tools/pCampBot/Interfaces/IBehaviour.cs | 8 ++++++++ 4 files changed, 30 insertions(+), 1 deletion(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/pCampBot/Behaviours/AbstractBehaviour.cs b/OpenSim/Tools/pCampBot/Behaviours/AbstractBehaviour.cs index 66d5542..9bc8512 100644 --- a/OpenSim/Tools/pCampBot/Behaviours/AbstractBehaviour.cs +++ b/OpenSim/Tools/pCampBot/Behaviours/AbstractBehaviour.cs @@ -50,5 +50,7 @@ namespace pCampBot { Bot = bot; } + + public virtual void Close() {} } } diff --git a/OpenSim/Tools/pCampBot/Behaviours/PhysicsBehaviour.cs b/OpenSim/Tools/pCampBot/Behaviours/PhysicsBehaviour.cs index 47b4d46..65a7c90 100644 --- a/OpenSim/Tools/pCampBot/Behaviours/PhysicsBehaviour.cs +++ b/OpenSim/Tools/pCampBot/Behaviours/PhysicsBehaviour.cs @@ -78,6 +78,11 @@ namespace pCampBot Bot.Client.Self.Chat(randomf, 0, ChatType.Normal); } + public override void Close() + { + Bot.Client.Self.Jump(false); + } + private string[] readexcuses() { string allexcuses = ""; diff --git a/OpenSim/Tools/pCampBot/Bot.cs b/OpenSim/Tools/pCampBot/Bot.cs index 0bd8151..f871b77 100644 --- a/OpenSim/Tools/pCampBot/Bot.cs +++ b/OpenSim/Tools/pCampBot/Bot.cs @@ -209,7 +209,17 @@ namespace pCampBot public bool RemoveBehaviour(string abbreviatedName) { lock (Behaviours) - return Behaviours.Remove(abbreviatedName); + { + IBehaviour behaviour; + + if (!Behaviours.TryGetValue(abbreviatedName, out behaviour)) + return false; + + behaviour.Close(); + Behaviours.Remove(abbreviatedName); + + return true; + } } private void CreateLibOmvClient() @@ -282,6 +292,10 @@ namespace pCampBot // XXX: This is a really shitty way of yielding so that behaviours can be added/removed Thread.Sleep(100); } + + lock (Behaviours) + foreach (IBehaviour b in Behaviours.Values) + b.Close(); } /// diff --git a/OpenSim/Tools/pCampBot/Interfaces/IBehaviour.cs b/OpenSim/Tools/pCampBot/Interfaces/IBehaviour.cs index f8a661b..0ed4825 100644 --- a/OpenSim/Tools/pCampBot/Interfaces/IBehaviour.cs +++ b/OpenSim/Tools/pCampBot/Interfaces/IBehaviour.cs @@ -51,6 +51,14 @@ namespace pCampBot.Interfaces void Initialize(Bot bot); /// + /// Close down this behaviour. + /// + /// + /// This is triggered if a behaviour is removed via explicit command and when a bot is disconnected + /// + void Close(); + + /// /// Action to take when this behaviour is invoked. /// /// -- cgit v1.1 From 76bd2e2d727a15e5d3bc9045bdef6faaeca4a08f Mon Sep 17 00:00:00 2001 From: Justin Clark-Casey (justincc) Date: Tue, 3 Sep 2013 19:41:12 +0100 Subject: Consistently give responsibility for thread sleeping to behaviours rather than controlling from the main action loop This is to avoid excessive and inconsistent delays between behaviours that currently need to embed sleeps in other actions (e.g. physics) and other behaviours. Might need a more sophisticated approach in the long term. --- OpenSim/Tools/pCampBot/Behaviours/GrabbingBehaviour.cs | 3 +++ OpenSim/Tools/pCampBot/Behaviours/TeleportBehaviour.cs | 3 +++ OpenSim/Tools/pCampBot/Bot.cs | 2 +- 3 files changed, 7 insertions(+), 1 deletion(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/pCampBot/Behaviours/GrabbingBehaviour.cs b/OpenSim/Tools/pCampBot/Behaviours/GrabbingBehaviour.cs index 6acc27d..59f6244 100644 --- a/OpenSim/Tools/pCampBot/Behaviours/GrabbingBehaviour.cs +++ b/OpenSim/Tools/pCampBot/Behaviours/GrabbingBehaviour.cs @@ -29,6 +29,7 @@ using OpenMetaverse; using System; using System.Collections.Generic; using System.Linq; +using System.Threading; using pCampBot.Interfaces; namespace pCampBot @@ -60,6 +61,8 @@ namespace pCampBot Bot.Client.Self.Grab(prim.LocalID); Bot.Client.Self.GrabUpdate(prim.ID, Vector3.Zero); Bot.Client.Self.DeGrab(prim.LocalID); + + Thread.Sleep(1000); } } } \ No newline at end of file diff --git a/OpenSim/Tools/pCampBot/Behaviours/TeleportBehaviour.cs b/OpenSim/Tools/pCampBot/Behaviours/TeleportBehaviour.cs index 5f7edda..81f250d 100644 --- a/OpenSim/Tools/pCampBot/Behaviours/TeleportBehaviour.cs +++ b/OpenSim/Tools/pCampBot/Behaviours/TeleportBehaviour.cs @@ -29,6 +29,7 @@ using System; using System.Collections.Generic; using System.Linq; using System.Reflection; +using System.Threading; using log4net; using OpenMetaverse; using pCampBot.Interfaces; @@ -74,6 +75,8 @@ namespace pCampBot Bot.Name, sourceRegion.Name, Bot.Client.Self.SimPosition, destRegion.Name, destPosition); Bot.Client.Self.Teleport(destRegion.RegionHandle, destPosition); + + Thread.Sleep(Bot.Random.Next(3000, 10000)); } } } \ No newline at end of file diff --git a/OpenSim/Tools/pCampBot/Bot.cs b/OpenSim/Tools/pCampBot/Bot.cs index f871b77..d0a4ef3 100644 --- a/OpenSim/Tools/pCampBot/Bot.cs +++ b/OpenSim/Tools/pCampBot/Bot.cs @@ -282,7 +282,7 @@ namespace pCampBot { foreach (IBehaviour behaviour in Behaviours.Values) { - Thread.Sleep(Random.Next(3000, 10000)); +// Thread.Sleep(Random.Next(3000, 10000)); // m_log.DebugFormat("[pCAMPBOT]: For {0} performing action {1}", Name, b.GetType()); behaviour.Action(); -- cgit v1.1 From 9c3c9b7f5f62a7ed892f691180b765a9190cbbcc Mon Sep 17 00:00:00 2001 From: Justin Clark-Casey (justincc) Date: Tue, 3 Sep 2013 19:57:34 +0100 Subject: Make pCampbot "add behaviour" and "remove behaviour" console commands work for all bots if no bot number is given --- OpenSim/Tools/pCampBot/BotManager.cs | 123 ++++++++++++++++++++++------------- 1 file changed, 78 insertions(+), 45 deletions(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/pCampBot/BotManager.cs b/OpenSim/Tools/pCampBot/BotManager.cs index 6433c2e..3c1b11e 100644 --- a/OpenSim/Tools/pCampBot/BotManager.cs +++ b/OpenSim/Tools/pCampBot/BotManager.cs @@ -195,15 +195,17 @@ namespace pCampBot HandleDisconnect); m_console.Commands.AddCommand( - "bot", false, "add behaviour", "add behaviour ", + "bot", false, "add behaviour", "add behaviour []", "Add a behaviour to a bot", - "Can be performed on connected or disconnected bots.", + "If no bot number is specified then behaviour is added to all bots.\n" + + "Can be performed on connected or disconnected bots.", HandleAddBehaviour); m_console.Commands.AddCommand( - "bot", false, "remove behaviour", "remove behaviour ", + "bot", false, "remove behaviour", "remove behaviour []", "Remove a behaviour from a bot", - "Can be performed on connected or disconnected bots.", + "If no bot number is specified then behaviour is added to all bots.\n" + + "Can be performed on connected or disconnected bots.", HandleRemoveBehaviour); m_console.Commands.AddCommand( @@ -224,7 +226,7 @@ namespace pCampBot "bot", false, "show bots", "show bots", "Shows the status of all bots", HandleShowBotsStatus); m_console.Commands.AddCommand( - "bot", false, "show bot", "show bot ", + "bot", false, "show bot", "show bot ", "Shows the detailed status and settings of a particular bot.", HandleShowBotStatus); m_bots = new List(); @@ -489,83 +491,114 @@ namespace pCampBot private void HandleAddBehaviour(string module, string[] cmd) { - if (cmd.Length != 4) + if (cmd.Length < 3 || cmd.Length > 4) { - MainConsole.Instance.OutputFormat("Usage: add behaviour "); + MainConsole.Instance.OutputFormat("Usage: add behaviour []"); return; } string rawBehaviours = cmd[2]; - int botNumber; - - if (!ConsoleUtil.TryParseConsoleNaturalInt(MainConsole.Instance, cmd[3], out botNumber)) - return; - Bot bot = GetBotFromNumber(botNumber); + List botsToEffect = new List(); - if (bot == null) + if (cmd.Length == 3) { - MainConsole.Instance.OutputFormat("Error: No bot found with number {0}", botNumber); - return; + lock (m_bots) + botsToEffect.AddRange(m_bots); } + else + { + int botNumber; + if (!ConsoleUtil.TryParseConsoleNaturalInt(MainConsole.Instance, cmd[3], out botNumber)) + return; + + Bot bot = GetBotFromNumber(botNumber); + + if (bot == null) + { + MainConsole.Instance.OutputFormat("Error: No bot found with number {0}", botNumber); + return; + } + + botsToEffect.Add(bot); + } + HashSet rawAbbreviatedSwitchesToAdd = new HashSet(); Array.ForEach(rawBehaviours.Split(new char[] { ',' }), b => rawAbbreviatedSwitchesToAdd.Add(b)); - List behavioursAdded = new List(); - - foreach (IBehaviour behaviour in CreateBehavioursFromAbbreviatedNames(rawAbbreviatedSwitchesToAdd)) + foreach (Bot bot in botsToEffect) { - if (bot.AddBehaviour(behaviour)) - behavioursAdded.Add(behaviour); - } + List behavioursAdded = new List(); - MainConsole.Instance.OutputFormat( - "Added behaviours {0} to bot {1}", - string.Join(", ", behavioursAdded.ConvertAll(b => b.Name).ToArray()), bot.Name); + foreach (IBehaviour behaviour in CreateBehavioursFromAbbreviatedNames(rawAbbreviatedSwitchesToAdd)) + { + if (bot.AddBehaviour(behaviour)) + behavioursAdded.Add(behaviour); + } + + MainConsole.Instance.OutputFormat( + "Added behaviours {0} to bot {1}", + string.Join(", ", behavioursAdded.ConvertAll(b => b.Name).ToArray()), bot.Name); + } } private void HandleRemoveBehaviour(string module, string[] cmd) { - if (cmd.Length != 4) + if (cmd.Length < 3 || cmd.Length > 4) { - MainConsole.Instance.OutputFormat("Usage: remove behaviour "); + MainConsole.Instance.OutputFormat("Usage: remove behaviour []"); return; } string rawBehaviours = cmd[2]; - int botNumber; - - if (!ConsoleUtil.TryParseConsoleNaturalInt(MainConsole.Instance, cmd[3], out botNumber)) - return; - Bot bot = GetBotFromNumber(botNumber); + List botsToEffect = new List(); - if (bot == null) + if (cmd.Length == 3) { - MainConsole.Instance.OutputFormat("Error: No bot found with number {0}", botNumber); - return; + lock (m_bots) + botsToEffect.AddRange(m_bots); } + else + { + int botNumber; + if (!ConsoleUtil.TryParseConsoleNaturalInt(MainConsole.Instance, cmd[3], out botNumber)) + return; - HashSet abbreviatedBehavioursToRemove = new HashSet(); - List behavioursRemoved = new List(); + Bot bot = GetBotFromNumber(botNumber); + + if (bot == null) + { + MainConsole.Instance.OutputFormat("Error: No bot found with number {0}", botNumber); + return; + } + botsToEffect.Add(bot); + } + + HashSet abbreviatedBehavioursToRemove = new HashSet(); Array.ForEach(rawBehaviours.Split(new char[] { ',' }), b => abbreviatedBehavioursToRemove.Add(b)); - foreach (string b in abbreviatedBehavioursToRemove) + foreach (Bot bot in botsToEffect) { - IBehaviour behaviour; + List behavioursRemoved = new List(); - if (bot.TryGetBehaviour(b, out behaviour)) + foreach (string b in abbreviatedBehavioursToRemove) { - bot.RemoveBehaviour(b); - behavioursRemoved.Add(behaviour); + IBehaviour behaviour; + + if (bot.TryGetBehaviour(b, out behaviour)) + { + bot.RemoveBehaviour(b); + behavioursRemoved.Add(behaviour); + } } - } - MainConsole.Instance.OutputFormat( - "Removed behaviours {0} to bot {1}", - string.Join(", ", behavioursRemoved.ConvertAll(b => b.Name).ToArray()), bot.Name); + MainConsole.Instance.OutputFormat( + "Removed behaviours {0} to bot {1}", + string.Join(", ", behavioursRemoved.ConvertAll(b => b.Name).ToArray()), bot.Name); + } } private void HandleDisconnect(string module, string[] cmd) -- cgit v1.1 From b781a23c445bea0fd199eb756ebf6143959256a6 Mon Sep 17 00:00:00 2001 From: Justin Clark-Casey (justincc) Date: Tue, 3 Sep 2013 19:58:27 +0100 Subject: In pCampbot PhysicsBehaviour.Close(), only cancel jumping if bot is connected --- OpenSim/Tools/pCampBot/Behaviours/PhysicsBehaviour.cs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/pCampBot/Behaviours/PhysicsBehaviour.cs b/OpenSim/Tools/pCampBot/Behaviours/PhysicsBehaviour.cs index 65a7c90..6fd2b7c 100644 --- a/OpenSim/Tools/pCampBot/Behaviours/PhysicsBehaviour.cs +++ b/OpenSim/Tools/pCampBot/Behaviours/PhysicsBehaviour.cs @@ -80,7 +80,8 @@ namespace pCampBot public override void Close() { - Bot.Client.Self.Jump(false); + if (Bot.ConnectionState == ConnectionState.Connected) + Bot.Client.Self.Jump(false); } private string[] readexcuses() -- cgit v1.1 From 42bdf446585007029faf4cd21abd289487f0f797 Mon Sep 17 00:00:00 2001 From: Justin Clark-Casey (justincc) Date: Fri, 4 Oct 2013 23:33:47 +0100 Subject: Bump OPenSimulator version and assembly versions up to 0.8.0 Dev --- OpenSim/Tools/Compiler/Properties/AssemblyInfo.cs | 2 +- OpenSim/Tools/Configger/Properties/AssemblyInfo.cs | 2 +- OpenSim/Tools/pCampBot/Properties/AssemblyInfo.cs | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/Compiler/Properties/AssemblyInfo.cs b/OpenSim/Tools/Compiler/Properties/AssemblyInfo.cs index 088be45..7006211 100644 --- a/OpenSim/Tools/Compiler/Properties/AssemblyInfo.cs +++ b/OpenSim/Tools/Compiler/Properties/AssemblyInfo.cs @@ -29,5 +29,5 @@ using System.Runtime.InteropServices; // Build Number // Revision // -[assembly: AssemblyVersion("0.7.6.*")] +[assembly: AssemblyVersion("0.8.0.*")] diff --git a/OpenSim/Tools/Configger/Properties/AssemblyInfo.cs b/OpenSim/Tools/Configger/Properties/AssemblyInfo.cs index 0348628..bfcd4fb 100644 --- a/OpenSim/Tools/Configger/Properties/AssemblyInfo.cs +++ b/OpenSim/Tools/Configger/Properties/AssemblyInfo.cs @@ -29,5 +29,5 @@ using System.Runtime.InteropServices; // Build Number // Revision // -[assembly: AssemblyVersion("0.7.6.*")] +[assembly: AssemblyVersion("0.8.0.*")] diff --git a/OpenSim/Tools/pCampBot/Properties/AssemblyInfo.cs b/OpenSim/Tools/pCampBot/Properties/AssemblyInfo.cs index 78f3603..731e2c3 100644 --- a/OpenSim/Tools/pCampBot/Properties/AssemblyInfo.cs +++ b/OpenSim/Tools/pCampBot/Properties/AssemblyInfo.cs @@ -29,5 +29,5 @@ using System.Runtime.InteropServices; // Build Number // Revision // -[assembly: AssemblyVersion("0.7.6.*")] +[assembly: AssemblyVersion("0.8.0.*")] -- cgit v1.1 From 39de7614ec14babe092a2dd47072fd4a5015fdbb Mon Sep 17 00:00:00 2001 From: Justin Clark-Casey (justincc) Date: Mon, 28 Oct 2013 18:03:34 +0000 Subject: Remove legacy sqlite lines added internally by OpenSimulator to the [Startup] section. These are long unused but confusingly will be seen in the [Startup] section on a "config save". --- OpenSim/Tools/Configger/ConfigurationLoader.cs | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/Configger/ConfigurationLoader.cs b/OpenSim/Tools/Configger/ConfigurationLoader.cs index 72ba185..0b6ee9c 100644 --- a/OpenSim/Tools/Configger/ConfigurationLoader.cs +++ b/OpenSim/Tools/Configger/ConfigurationLoader.cs @@ -240,8 +240,6 @@ namespace OpenSim.Tools.Configger config.Set("meshing", "Meshmerizer"); config.Set("physical_prim", true); config.Set("serverside_object_permissions", true); - config.Set("storage_plugin", "OpenSim.Data.SQLite.dll"); - config.Set("storage_connection_string", "URI=file:OpenSim.db,version=3"); config.Set("storage_prim_inventories", true); config.Set("startup_console_commands_file", String.Empty); config.Set("shutdown_console_commands_file", String.Empty); @@ -253,6 +251,5 @@ namespace OpenSim.Tools.Configger return defaultConfig; } - } -} +} \ No newline at end of file -- cgit v1.1 From 0e07fad2e16ef135c71440ae3c6c909c4eee4a86 Mon Sep 17 00:00:00 2001 From: Justin Clark-Casey (justincc) Date: Thu, 31 Oct 2013 20:19:57 +0000 Subject: minor: update pCampbot usage/help statement --- OpenSim/Tools/pCampBot/pCampBot.cs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/pCampBot/pCampBot.cs b/OpenSim/Tools/pCampBot/pCampBot.cs index 781bb00..1fb0e03 100644 --- a/OpenSim/Tools/pCampBot/pCampBot.cs +++ b/OpenSim/Tools/pCampBot/pCampBot.cs @@ -151,17 +151,17 @@ namespace pCampBot // worn to the folder MyAppearance/FirstName_LastName, and the load it. Console.WriteLine( - "usage: pCampBot <-loginuri loginuri> [OPTIONS]\n" + "Usage: pCampBot -loginuri -firstname -lastname -password [OPTIONS]\n" + "Spawns a set of bots to test an OpenSim region\n\n" + " -l, -loginuri loginuri for grid/standalone (required)\n" - + " -s, -start start location for bots (optional). Can be \"last\", \"home\" or a specific location with or without co-ords (e.g. \"region1\" or \"region2/50/30/90\"\n" + + " -s, -start start location for bots (default: last) (optional). Can be \"last\", \"home\" or a specific location with or without co-ords (e.g. \"region1\" or \"region2/50/30/90\"\n" + " -firstname first name for the bots (required)\n" + " -lastname lastname for the bots (required). Each lastname will have _ appended, e.g. Ima Bot_0\n" + " -password password for the bots (required)\n" + " -n, -botcount number of bots to start (default: 1) (optional)\n" - + " -f, -from starting number for login bot names, e.g. 25 will login Ima Bot_25, Ima Bot_26, etc. (default: 0) (optional)\n" + + " -f, -from starting number for login bot names, e.g. 25 will login Ima Bot_25, Ima Bot_26, etc. (default: 0) (optional)\n" + " -c, -connect connect all bots at startup (optional)\n" - + " -b, behaviours behaviours for bots. Comma separated, e.g. p,g. Default is p (required)\n" + + " -b, behaviours behaviours for bots. Comma separated, e.g. p,g (default: p) (optional)\n" + " current options are:\n" + " p (physics - bots constantly move and jump around)\n" + " g (grab - bots randomly click prims whether set clickable or not)\n" -- cgit v1.1 From cc7065f9ee0598640ac24e2672f8a0ba8744fd40 Mon Sep 17 00:00:00 2001 From: Justin Clark-Casey (justincc) Date: Fri, 1 Nov 2013 00:04:18 +0000 Subject: minor: change "bot" pCampBot help cateogry to "Bots" --- OpenSim/Tools/pCampBot/BotManager.cs | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/pCampBot/BotManager.cs b/OpenSim/Tools/pCampBot/BotManager.cs index 3c1b11e..abc71cb 100644 --- a/OpenSim/Tools/pCampBot/BotManager.cs +++ b/OpenSim/Tools/pCampBot/BotManager.cs @@ -176,57 +176,57 @@ namespace pCampBot } m_console.Commands.AddCommand( - "bot", false, "shutdown", "shutdown", "Shutdown bots and exit", HandleShutdown); + "Bots", false, "shutdown", "shutdown", "Shutdown bots and exit", HandleShutdown); m_console.Commands.AddCommand( - "bot", false, "quit", "quit", "Shutdown bots and exit", HandleShutdown); + "Bots", false, "quit", "quit", "Shutdown bots and exit", HandleShutdown); m_console.Commands.AddCommand( - "bot", false, "connect", "connect []", "Connect bots", + "Bots", false, "connect", "connect []", "Connect bots", "If an is given, then the first disconnected bots by postfix number are connected.\n" + "If no is given, then all currently disconnected bots are connected.", HandleConnect); m_console.Commands.AddCommand( - "bot", false, "disconnect", "disconnect []", "Disconnect bots", + "Bots", false, "disconnect", "disconnect []", "Disconnect bots", "Disconnecting bots will interupt any bot connection process, including connection on startup.\n" + "If an is given, then the last connected bots by postfix number are disconnected.\n" + "If no is given, then all currently connected bots are disconnected.", HandleDisconnect); m_console.Commands.AddCommand( - "bot", false, "add behaviour", "add behaviour []", + "Bots", false, "add behaviour", "add behaviour []", "Add a behaviour to a bot", "If no bot number is specified then behaviour is added to all bots.\n" + "Can be performed on connected or disconnected bots.", HandleAddBehaviour); m_console.Commands.AddCommand( - "bot", false, "remove behaviour", "remove behaviour []", + "Bots", false, "remove behaviour", "remove behaviour []", "Remove a behaviour from a bot", "If no bot number is specified then behaviour is added to all bots.\n" + "Can be performed on connected or disconnected bots.", HandleRemoveBehaviour); m_console.Commands.AddCommand( - "bot", false, "sit", "sit", "Sit all bots on the ground.", + "Bots", false, "sit", "sit", "Sit all bots on the ground.", HandleSit); m_console.Commands.AddCommand( - "bot", false, "stand", "stand", "Stand all bots.", + "Bots", false, "stand", "stand", "Stand all bots.", HandleStand); m_console.Commands.AddCommand( - "bot", false, "set bots", "set bots ", "Set a setting for all bots.", HandleSetBots); + "Bots", false, "set bots", "set bots ", "Set a setting for all bots.", HandleSetBots); m_console.Commands.AddCommand( - "bot", false, "show regions", "show regions", "Show regions known to bots", HandleShowRegions); + "Bots", false, "show regions", "show regions", "Show regions known to bots", HandleShowRegions); m_console.Commands.AddCommand( - "bot", false, "show bots", "show bots", "Shows the status of all bots", HandleShowBotsStatus); + "Bots", false, "show bots", "show bots", "Shows the status of all bots", HandleShowBotsStatus); m_console.Commands.AddCommand( - "bot", false, "show bot", "show bot ", + "Bots", false, "show bot", "show bot ", "Shows the detailed status and settings of a particular bot.", HandleShowBotStatus); m_bots = new List(); -- cgit v1.1 From c6395240f0dd7767cb9f14f2ad8b6cccadf1351a Mon Sep 17 00:00:00 2001 From: Justin Clark-Casey (justincc) Date: Fri, 1 Nov 2013 02:04:04 +0000 Subject: For individual bots, seed random number generator with a random number from BotManager rather than Environment.Tickcount Otherwise, since bots are now created all at once, a bunch will get exactly the same tickcount and hence number sequences --- OpenSim/Tools/pCampBot/Bot.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/pCampBot/Bot.cs b/OpenSim/Tools/pCampBot/Bot.cs index d0a4ef3..ccc24fa 100644 --- a/OpenSim/Tools/pCampBot/Bot.cs +++ b/OpenSim/Tools/pCampBot/Bot.cs @@ -166,7 +166,7 @@ namespace pCampBot { ConnectionState = ConnectionState.Disconnected; - Random = new Random(Environment.TickCount);// We do stuff randomly here + Random = new Random(bm.Rng.Next()); FirstName = firstName; LastName = lastName; Name = string.Format("{0} {1}", FirstName, LastName); -- cgit v1.1 From 2d315ec207292ef05bab5e4f662599e755d7acbf Mon Sep 17 00:00:00 2001 From: Justin Clark-Casey (justincc) Date: Tue, 5 Nov 2013 20:58:52 +0000 Subject: Fix a race condition where pCampbot actions could continue even if a bot had disconnected. --- OpenSim/Tools/pCampBot/Bot.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/pCampBot/Bot.cs b/OpenSim/Tools/pCampBot/Bot.cs index ccc24fa..70aa2cb 100644 --- a/OpenSim/Tools/pCampBot/Bot.cs +++ b/OpenSim/Tools/pCampBot/Bot.cs @@ -276,7 +276,7 @@ namespace pCampBot //add additional steps and/or things the bot should do private void Action() { - while (ConnectionState != ConnectionState.Disconnecting) + while (ConnectionState == ConnectionState.Connected) { lock (Behaviours) { -- cgit v1.1 From caf2abe311a9f7a703ba7444601c34d96053edcf Mon Sep 17 00:00:00 2001 From: Justin Clark-Casey (justincc) Date: Tue, 5 Nov 2013 23:32:26 +0000 Subject: Record individual region bot disconnects in pCampbot log --- OpenSim/Tools/pCampBot/Bot.cs | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/pCampBot/Bot.cs b/OpenSim/Tools/pCampBot/Bot.cs index 70aa2cb..de464ab 100644 --- a/OpenSim/Tools/pCampBot/Bot.cs +++ b/OpenSim/Tools/pCampBot/Bot.cs @@ -264,9 +264,10 @@ namespace pCampBot newClient.Throttle.Total = 400000; } - newClient.Network.LoginProgress += this.Network_LoginProgress; - newClient.Network.SimConnected += this.Network_SimConnected; - newClient.Network.Disconnected += this.Network_OnDisconnected; + newClient.Network.LoginProgress += Network_LoginProgress; + newClient.Network.SimConnected += Network_SimConnected; + newClient.Network.SimDisconnected += Network_SimDisconnected; + newClient.Network.Disconnected += Network_OnDisconnected; newClient.Objects.ObjectUpdate += Objects_NewPrim; Client = newClient; @@ -583,7 +584,13 @@ namespace pCampBot public void Network_SimConnected(object sender, SimConnectedEventArgs args) { m_log.DebugFormat( - "[BOT]: Bot {0} connected to {1} at {2}", Name, args.Simulator.Name, args.Simulator.IPEndPoint); + "[BOT]: Bot {0} connected to region {1} at {2}", Name, args.Simulator.Name, args.Simulator.IPEndPoint); + } + + public void Network_SimDisconnected(object sender, SimDisconnectedEventArgs args) + { + m_log.DebugFormat( + "[BOT]: Bot {0} disconnected from region {1} at {2}", Name, args.Simulator.Name, args.Simulator.IPEndPoint); } public void Network_OnDisconnected(object sender, DisconnectedEventArgs args) @@ -591,7 +598,7 @@ namespace pCampBot ConnectionState = ConnectionState.Disconnected; m_log.DebugFormat( - "[BOT]: Bot {0} disconnected reason {1}, message {2}", Name, args.Reason, args.Message); + "[BOT]: Bot {0} disconnected from grid, reason {1}, message {2}", Name, args.Reason, args.Message); // m_log.ErrorFormat("Fired Network_OnDisconnected"); -- cgit v1.1 From 869a23e2234ce9b565249c5850324ca2de2f06ba Mon Sep 17 00:00:00 2001 From: justincc Date: Wed, 13 Nov 2013 01:07:14 +0000 Subject: Update OpenSim.32BitLaunch.exe and Robust.32BitLaunch.exe to .NET 4 versions. Also fixes some issues in associated solution files --- .../OpenSim.32BitLaunch/OpenSim.32BitLaunch.csproj | 141 +++++++++++++------- .../Robust.32BitLaunch/Robust.32BitLaunch.csproj | 147 +++++++++++++-------- .../Robust.32BitLaunch/Robust.32BitLaunch.sln | 40 +++--- 3 files changed, 202 insertions(+), 126 deletions(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/OpenSim.32BitLaunch/OpenSim.32BitLaunch.csproj b/OpenSim/Tools/OpenSim.32BitLaunch/OpenSim.32BitLaunch.csproj index d829e69..4625c33 100644 --- a/OpenSim/Tools/OpenSim.32BitLaunch/OpenSim.32BitLaunch.csproj +++ b/OpenSim/Tools/OpenSim.32BitLaunch/OpenSim.32BitLaunch.csproj @@ -1,58 +1,97 @@ - - - - Debug - AnyCPU - 9.0.30729 - 2.0 - {595D67F3-B413-4A43-8568-5B5930E3B31D} - Exe - Properties - OpenSim._32BitLaunch - OpenSim.32BitLaunch - v2.0 - 512 - - - true - full - false - ..\..\..\bin\ - DEBUG;TRACE - prompt - 4 - x86 - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - - - - - - - - - - - - {438A9556-0000-0000-0000-000000000000} - OpenSim - - - + + + + Debug + AnyCPU + 9.0.30729 + 2.0 + {595D67F3-B413-4A43-8568-5B5930E3B31D} + Exe + Properties + OpenSim._32BitLaunch + OpenSim.32BitLaunch + v4.0 + 512 + + + + + 3.5 + publish\ + true + Disk + false + Foreground + 7 + Days + false + false + true + 0 + 1.0.0.%2a + false + false + true + + + true + full + false + ..\..\..\bin\ + DEBUG;TRACE + prompt + 4 + x86 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + False + .exe + ..\..\..\bin\OpenSim.exe + + + + + + + + + + False + Microsoft .NET Framework 4 %28x86 and x64%29 + true + + + False + .NET Framework 3.5 SP1 Client Profile + false + + + False + .NET Framework 3.5 SP1 + false + + + False + Windows Installer 3.1 + true + + + + --> \ No newline at end of file diff --git a/OpenSim/Tools/Robust.32BitLaunch/Robust.32BitLaunch.csproj b/OpenSim/Tools/Robust.32BitLaunch/Robust.32BitLaunch.csproj index 481b3f8..9618c08 100644 --- a/OpenSim/Tools/Robust.32BitLaunch/Robust.32BitLaunch.csproj +++ b/OpenSim/Tools/Robust.32BitLaunch/Robust.32BitLaunch.csproj @@ -1,62 +1,99 @@ - - - - Debug - AnyCPU - 9.0.30729 - 2.0 - {595D67F3-B413-4A43-8568-5B5930E3B31D} - Exe - Properties - Robust._32BitLaunch - Robust.32BitLaunch - v3.5 - 512 - - - true - full - false - ..\..\..\bin\ - DEBUG;TRACE - prompt - 4 - x86 - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - - False - ..\..\..\bin\log4net.dll - - - False - ..\..\..\bin\Robust.exe - - - - 3.5 - - - - - - - - - + + + + Debug + AnyCPU + 9.0.30729 + 2.0 + {595D67F3-B413-4A43-8568-5B5930E3B31D} + Exe + Properties + Robust._32BitLaunch + Robust.32BitLaunch + v4.0 + 512 + + + + + 3.5 + publish\ + true + Disk + false + Foreground + 7 + Days + false + false + true + 0 + 1.0.0.%2a + false + false + true + + + true + full + false + ..\..\..\bin\ + DEBUG;TRACE + prompt + 4 + x86 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + False + ..\..\..\bin\log4net.dll + + + False + ..\..\..\bin\Robust.exe + + + + + + + + + + False + Microsoft .NET Framework 4 %28x86 and x64%29 + true + + + False + .NET Framework 3.5 SP1 Client Profile + false + + + False + .NET Framework 3.5 SP1 + false + + + False + Windows Installer 3.1 + true + + + + --> \ No newline at end of file diff --git a/OpenSim/Tools/Robust.32BitLaunch/Robust.32BitLaunch.sln b/OpenSim/Tools/Robust.32BitLaunch/Robust.32BitLaunch.sln index c7c97b1..a48a2d3 100644 --- a/OpenSim/Tools/Robust.32BitLaunch/Robust.32BitLaunch.sln +++ b/OpenSim/Tools/Robust.32BitLaunch/Robust.32BitLaunch.sln @@ -1,20 +1,20 @@ - -Microsoft Visual Studio Solution File, Format Version 10.00 -# Visual C# Express 2008 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Robust.32BitLaunch", "Robust.32BitLaunch.csproj", "{595D67F3-B413-4A43-8568-5B5930E3B31D}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {595D67F3-B413-4A43-8568-5B5930E3B31D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {595D67F3-B413-4A43-8568-5B5930E3B31D}.Debug|Any CPU.Build.0 = Debug|Any CPU - {595D67F3-B413-4A43-8568-5B5930E3B31D}.Release|Any CPU.ActiveCfg = Release|Any CPU - {595D67F3-B413-4A43-8568-5B5930E3B31D}.Release|Any CPU.Build.0 = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal + +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual C# Express 2010 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Robust.32BitLaunch", "Robust.32BitLaunch.csproj", "{595D67F3-B413-4A43-8568-5B5930E3B31D}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {595D67F3-B413-4A43-8568-5B5930E3B31D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {595D67F3-B413-4A43-8568-5B5930E3B31D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {595D67F3-B413-4A43-8568-5B5930E3B31D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {595D67F3-B413-4A43-8568-5B5930E3B31D}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal -- cgit v1.1 From d27e188fe26c3ac8c53204f8c16b84ff0c132124 Mon Sep 17 00:00:00 2001 From: Diva Canto Date: Fri, 21 Feb 2014 10:04:12 -0800 Subject: Added 2 new behavirors to pCampBot. These are part of a systematic study I'm doing for understanding the load that AgentUpdate packets incur on the server. --- .../Tools/pCampBot/Behaviours/PhysicsBehaviour2.cs | 86 ++++++++++++++++++++++ .../Tools/pCampBot/Behaviours/TwitchyBehaviour.cs | 73 ++++++++++++++++++ 2 files changed, 159 insertions(+) create mode 100644 OpenSim/Tools/pCampBot/Behaviours/PhysicsBehaviour2.cs create mode 100644 OpenSim/Tools/pCampBot/Behaviours/TwitchyBehaviour.cs (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/pCampBot/Behaviours/PhysicsBehaviour2.cs b/OpenSim/Tools/pCampBot/Behaviours/PhysicsBehaviour2.cs new file mode 100644 index 0000000..326396d --- /dev/null +++ b/OpenSim/Tools/pCampBot/Behaviours/PhysicsBehaviour2.cs @@ -0,0 +1,86 @@ +/* + * Copyright (c) Contributors, http://opensimulator.org/ + * See CONTRIBUTORS.TXT for a full list of copyright holders. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the OpenSimulator Project nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +using OpenMetaverse; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Reflection; +using System.Threading; +using log4net; +using pCampBot.Interfaces; + +namespace pCampBot +{ + /// + /// This behavior is for the systematic study of some performance improvements made + /// for OSCC'13. + /// Walk around, sending AgentUpdate packets all the time. + /// + public class PhysicsBehaviour2 : AbstractBehaviour + { + private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); + + public PhysicsBehaviour2() + { + AbbreviatedName = "ph2"; + Name = "Physics2"; + } + + private const int TIME_WALKING = 5 * 10; // 5 seconds + private int counter = 0; + + public override void Action() + { + + if (counter >= TIME_WALKING) + { + counter = 0; + + Vector3 target = new Vector3(Bot.Random.Next(1, 254), Bot.Random.Next(1, 254), Bot.Client.Self.SimPosition.Z); + MyTurnToward(target); + + Bot.Client.Self.Movement.AtPos = true; + + } + else + counter++; + // In any case, send an update + Bot.Client.Self.Movement.SendUpdate(); + } + + private void MyTurnToward(Vector3 target) + { + Quaternion between = Vector3.RotationBetween(Vector3.UnitX, Vector3.Normalize(target - Bot.Client.Self.SimPosition)); + Quaternion rot = between ; + + Bot.Client.Self.Movement.BodyRotation = rot; + Bot.Client.Self.Movement.HeadRotation = rot; + Bot.Client.Self.Movement.Camera.LookAt(Bot.Client.Self.SimPosition, target); + } + } +} \ No newline at end of file diff --git a/OpenSim/Tools/pCampBot/Behaviours/TwitchyBehaviour.cs b/OpenSim/Tools/pCampBot/Behaviours/TwitchyBehaviour.cs new file mode 100644 index 0000000..ae40bae --- /dev/null +++ b/OpenSim/Tools/pCampBot/Behaviours/TwitchyBehaviour.cs @@ -0,0 +1,73 @@ +/* + * Copyright (c) Contributors, http://opensimulator.org/ + * See CONTRIBUTORS.TXT for a full list of copyright holders. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the OpenSimulator Project nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +using OpenMetaverse; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Reflection; +using log4net; +using pCampBot.Interfaces; + +namespace pCampBot +{ + /// + /// This behavior is for the systematic study of some performance improvements made + /// for OSCC'13. + /// Do nothing, but send AgentUpdate packets all the time that have only slightly + /// different state. The delta of difference will be filtered by OpenSim early on + /// in the packet processing pipeline. These filters did not exist before OSCC'13. + /// + public class TwitchyBehaviour : AbstractBehaviour + { + private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); + + public TwitchyBehaviour() + { + AbbreviatedName = "tw"; + Name = "Twitchy"; + } + + private const float TWITCH = 0.0001f; + private int direction = 1; + + public override void Action() + { + Bot.Client.Self.Movement.BodyRotation = new Quaternion(Bot.Client.Self.Movement.BodyRotation.X + direction * TWITCH, + Bot.Client.Self.Movement.BodyRotation.Y, + Bot.Client.Self.Movement.BodyRotation.Z, + Bot.Client.Self.Movement.BodyRotation.W); + + //m_log.DebugFormat("[TWITCH]: BodyRot {0}", Bot.Client.Self.Movement.BodyRotation); + direction = -direction; + + Bot.Client.Self.Movement.SendUpdate(); + + } + + } +} \ No newline at end of file -- cgit v1.1 From cddf1ec0dcae54c50f2ba59039eca196fd678410 Mon Sep 17 00:00:00 2001 From: Diva Canto Date: Fri, 21 Feb 2014 10:06:08 -0800 Subject: Added 2 new behaviors to pCampBot --- OpenSim/Tools/pCampBot/BotManager.cs | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/pCampBot/BotManager.cs b/OpenSim/Tools/pCampBot/BotManager.cs index abc71cb..3647831 100644 --- a/OpenSim/Tools/pCampBot/BotManager.cs +++ b/OpenSim/Tools/pCampBot/BotManager.cs @@ -290,6 +290,12 @@ namespace pCampBot if (abName == "t") newBehaviour = new TeleportBehaviour(); + if (abName == "tw") + newBehaviour = new TwitchyBehaviour(); + + if (abName == "ph2") + newBehaviour = new PhysicsBehaviour2(); + if (newBehaviour != null) { behaviours.Add(newBehaviour); -- cgit v1.1 From ca78c8326e364c41cb09ea4eec976125de96c40b Mon Sep 17 00:00:00 2001 From: Oren Hurvitz Date: Wed, 23 Apr 2014 08:32:56 +0300 Subject: Eliminated 'Obsolete' warning: don't call do-nothing function SetPreviousAppearance() --- OpenSim/Tools/pCampBot/Bot.cs | 1 - 1 file changed, 1 deletion(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/pCampBot/Bot.cs b/OpenSim/Tools/pCampBot/Bot.cs index de464ab..3c07a7c 100644 --- a/OpenSim/Tools/pCampBot/Bot.cs +++ b/OpenSim/Tools/pCampBot/Bot.cs @@ -344,7 +344,6 @@ namespace pCampBot // OnConnected(this, EventType.CONNECTED); if (wear == "save") { - Client.Appearance.SetPreviousAppearance(); SaveDefaultAppearance(); } else if (wear != "no") -- cgit v1.1 From 3db9b847bfc9d1b2619e3467ba4bc34d9d4e5edc Mon Sep 17 00:00:00 2001 From: Diva Canto Date: Wed, 7 May 2014 16:59:11 -0700 Subject: Allow Tools.Configger to take -inifile as argument --- OpenSim/Tools/Configger/ConfigurationLoader.cs | 12 ++++++------ OpenSim/Tools/Configger/Main.cs | 5 +++-- 2 files changed, 9 insertions(+), 8 deletions(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/Configger/ConfigurationLoader.cs b/OpenSim/Tools/Configger/ConfigurationLoader.cs index 0b6ee9c..4820e0b 100644 --- a/OpenSim/Tools/Configger/ConfigurationLoader.cs +++ b/OpenSim/Tools/Configger/ConfigurationLoader.cs @@ -64,14 +64,14 @@ namespace OpenSim.Tools.Configger /// /// /// A configuration that gets passed to modules - public IConfigSource LoadConfigSettings() + public IConfigSource LoadConfigSettings(IConfig startupConfig) { bool iniFileExists = false; List sources = new List(); - string iniFileName = "OpenSim.ini"; - string iniFilePath = Path.Combine(".", iniFileName); + string iniFileName = startupConfig.GetString("inifile", Path.Combine(".", "OpenSim.ini")); + Console.WriteLine("---> " + iniFileName + " <---"); if (IsUri(iniFileName)) { @@ -80,10 +80,10 @@ namespace OpenSim.Tools.Configger } else { - if (File.Exists(iniFilePath)) + if (File.Exists(iniFileName)) { - if (!sources.Contains(iniFilePath)) - sources.Add(iniFilePath); + if (!sources.Contains(iniFileName)) + sources.Add(iniFileName); } } diff --git a/OpenSim/Tools/Configger/Main.cs b/OpenSim/Tools/Configger/Main.cs index 61a12e3..d7d918b 100644 --- a/OpenSim/Tools/Configger/Main.cs +++ b/OpenSim/Tools/Configger/Main.cs @@ -35,15 +35,16 @@ namespace OpenSim.Tools.Configger public static int Main(string[] args) { ArgvConfigSource argvConfig = new ArgvConfigSource(args); + argvConfig.AddSwitch("Startup", "format", "f"); + argvConfig.AddSwitch("Startup", "inifile"); IConfig startupConfig = argvConfig.Configs["Startup"]; string format = startupConfig.GetString("format", "ini"); ConfigurationLoader loader = new ConfigurationLoader(); - - IConfigSource s = loader.LoadConfigSettings(); + IConfigSource s = loader.LoadConfigSettings(startupConfig); if (format == "mysql") { -- cgit v1.1 From 093705efd17ae015ee1383ab8086aca33d3f2168 Mon Sep 17 00:00:00 2001 From: Diva Canto Date: Wed, 7 May 2014 17:19:57 -0700 Subject: Delete extraneous console message in the Configger. --- OpenSim/Tools/Configger/ConfigurationLoader.cs | 1 - 1 file changed, 1 deletion(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/Configger/ConfigurationLoader.cs b/OpenSim/Tools/Configger/ConfigurationLoader.cs index 4820e0b..f1d3649 100644 --- a/OpenSim/Tools/Configger/ConfigurationLoader.cs +++ b/OpenSim/Tools/Configger/ConfigurationLoader.cs @@ -71,7 +71,6 @@ namespace OpenSim.Tools.Configger List sources = new List(); string iniFileName = startupConfig.GetString("inifile", Path.Combine(".", "OpenSim.ini")); - Console.WriteLine("---> " + iniFileName + " <---"); if (IsUri(iniFileName)) { -- cgit v1.1 From 5450b1b0247bb3907f60f2b3f9b0582903de4f83 Mon Sep 17 00:00:00 2001 From: Justin Clark-Casey (justincc) Date: Tue, 17 Jun 2014 18:37:15 +0100 Subject: Change assembly versions to 0.8.1 --- OpenSim/Tools/Compiler/Properties/AssemblyInfo.cs | 2 +- OpenSim/Tools/Configger/Properties/AssemblyInfo.cs | 2 +- OpenSim/Tools/pCampBot/Properties/AssemblyInfo.cs | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/Compiler/Properties/AssemblyInfo.cs b/OpenSim/Tools/Compiler/Properties/AssemblyInfo.cs index 7006211..7e92d76 100644 --- a/OpenSim/Tools/Compiler/Properties/AssemblyInfo.cs +++ b/OpenSim/Tools/Compiler/Properties/AssemblyInfo.cs @@ -29,5 +29,5 @@ using System.Runtime.InteropServices; // Build Number // Revision // -[assembly: AssemblyVersion("0.8.0.*")] +[assembly: AssemblyVersion("0.8.1.*")] diff --git a/OpenSim/Tools/Configger/Properties/AssemblyInfo.cs b/OpenSim/Tools/Configger/Properties/AssemblyInfo.cs index bfcd4fb..c470703 100644 --- a/OpenSim/Tools/Configger/Properties/AssemblyInfo.cs +++ b/OpenSim/Tools/Configger/Properties/AssemblyInfo.cs @@ -29,5 +29,5 @@ using System.Runtime.InteropServices; // Build Number // Revision // -[assembly: AssemblyVersion("0.8.0.*")] +[assembly: AssemblyVersion("0.8.1.*")] diff --git a/OpenSim/Tools/pCampBot/Properties/AssemblyInfo.cs b/OpenSim/Tools/pCampBot/Properties/AssemblyInfo.cs index 731e2c3..c0c2b5d 100644 --- a/OpenSim/Tools/pCampBot/Properties/AssemblyInfo.cs +++ b/OpenSim/Tools/pCampBot/Properties/AssemblyInfo.cs @@ -29,5 +29,5 @@ using System.Runtime.InteropServices; // Build Number // Revision // -[assembly: AssemblyVersion("0.8.0.*")] +[assembly: AssemblyVersion("0.8.1.*")] -- cgit v1.1 From 3fe9c7c49d9c39ad879c1175c01c8cacced56046 Mon Sep 17 00:00:00 2001 From: Aleric Inglewood Date: Sat, 24 May 2014 02:36:12 +0200 Subject: Fix looking up line number and colum when there is no exact match. When a compile error reports a colum/error that is not an exact match in the positionMap dictionary, the last position in the map with a line number and position before the reported error should be returned. The old code had the following problems: 1) It returns l,c - which are line and column of the C# file, not LSL. 2) It doesn't set l to 'line' when the map has an entry with 'line'. 3) It sorts the map without taking columns into account, which may result in a random order of the columns. With my mono implementation the columns were reversed in order. For example, if the map contains the following lines: 99,5,49,10 100,30,50,10 100,40,1,0 101,5,51,10 and a translation of 100,35 was requested, then the old code would compare '100' with the keys in the first column - setting l to that key while it is smaller. Hence, l is set to 99. Then it finds the key 100 and doesn't update l. Because of the reversed sort order, it first compares the column 35 with 40, finding that it is smaller and therefore it stops; returning 99,1 instead of finding the correct 100,30 entry and returning 50,10. This patch causes 50,10 to be returned. The remaining problems after this patch are: 1) The sorting might not be necessary at all. 2) The is code duplication (I fixed both instances, but really there should be no code duplication imho). --- OpenSim/Tools/Compiler/Program.cs | 39 ++++++++++++++++----------------------- 1 file changed, 16 insertions(+), 23 deletions(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/Compiler/Program.cs b/OpenSim/Tools/Compiler/Program.cs index 6c59c31..b9c960b 100644 --- a/OpenSim/Tools/Compiler/Program.cs +++ b/OpenSim/Tools/Compiler/Program.cs @@ -255,12 +255,13 @@ namespace OpenSim.Tools.LSL.Compiler return FindErrorPosition(line, col, null); } - private class kvpSorter : IComparer> + private class kvpSorter : IComparer> { - public int Compare(KeyValuePair a, - KeyValuePair b) + public int Compare(KeyValuePair a, + KeyValuePair b) { - return a.Key.CompareTo(b.Key); + int kc = a.Key.CompareTo(b.Key); + return (kc != 0) ? kc : a.Value.CompareTo(b.Value); } } @@ -277,32 +278,24 @@ namespace OpenSim.Tools.LSL.Compiler out ret)) return ret; - List> sorted = - new List>(positionMap.Keys); + List> sorted = + new List>(positionMap.Keys); sorted.Sort(new kvpSorter()); - int l = 1; - int c = 1; + int l = sorted[0].Key; + int c = sorted[0].Value; foreach (KeyValuePair cspos in sorted) { - if (cspos.Key >= line) - { - if (cspos.Key > line) - return new KeyValuePair(l, c); - if (cspos.Value > col) - return new KeyValuePair(l, c); - c = cspos.Value; - if (c == 0) - c++; - } - else - { - l = cspos.Key; - } + if (cspos.Key >= line && + !(cspos.Key == line && cspos.Value <= col)) + break; + l = cspos.Key; + c = cspos.Value; } - return new KeyValuePair(l, c); + positionMap.TryGetValue(new KeyValuePair(l, c), out ret); + return ret; } } } -- cgit v1.1 From c90b986d8b1ee55505b01056c4a772cfc5b210b6 Mon Sep 17 00:00:00 2001 From: Aleric Inglewood Date: Wed, 28 May 2014 18:51:17 +0200 Subject: Improved line map heuristics. If the C# column can't be found in the positionMap (but the line can), use the map immediately after it while correcting for the offset, unless that results in an LSL position before the previous LSL position in the positionMap. The idea behind this heuristic is that in most, if not all cases C# consumes more characters than LSL (for example LSL_Types.LSLInteger instead of just 'integer'). Thus if the distance between the columns of two markers differ in the C# and LSL file, the distance in the C# file will be larger. Moreover, we can assume that every time this happens we will have a marker at the beginning of the longer 'keyword', because those keywords were generated by us in the first place. For example: C#: LSL_Types.LSLInteger f2(LSL_Types.LSLString s) ^ ^ 1 2 will always have markers at the beginning of the long keywords 'LSL_Types.LSLInteger' and 'LSL_Types.LSLString'. If an error is generated in between (for example at the beginning of the function name 'f2') then the correct position is found by using an offset relative to 2 rather than 1. Note that a case where this isn't working correctly is when the user adds extra spaces. For example: LSL: integer f2( string s) would still use the start of 'string' as reference and then go backwards 3 characters only because the corresponding C# still looks like C#: LSL_Types.LSLInteger f2(LSL_Types.LSLString s) ^ ^ only 3 chars difference and the reported error at 'f2' would be here: LSL: integer f2( string s) ^ This can only be fixed by generating a mapping for 'f2' itself, or generating a mapping whenever the amount of spaces is changed. --- OpenSim/Tools/Compiler/Program.cs | 56 ++++++++++++++++++++++++++++----------- 1 file changed, 40 insertions(+), 16 deletions(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/Compiler/Program.cs b/OpenSim/Tools/Compiler/Program.cs index b9c960b..b010eaf 100644 --- a/OpenSim/Tools/Compiler/Program.cs +++ b/OpenSim/Tools/Compiler/Program.cs @@ -255,13 +255,13 @@ namespace OpenSim.Tools.LSL.Compiler return FindErrorPosition(line, col, null); } - private class kvpSorter : IComparer> + private class kvpSorter : IComparer, KeyValuePair>> { - public int Compare(KeyValuePair a, - KeyValuePair b) + public int Compare(KeyValuePair, KeyValuePair> a, + KeyValuePair, KeyValuePair> b) { - int kc = a.Key.CompareTo(b.Key); - return (kc != 0) ? kc : a.Value.CompareTo(b.Value); + int kc = a.Key.Key.CompareTo(b.Key.Key); + return (kc != 0) ? kc : a.Key.Value.CompareTo(b.Key.Value); } } @@ -278,24 +278,48 @@ namespace OpenSim.Tools.LSL.Compiler out ret)) return ret; - List> sorted = - new List>(positionMap.Keys); + var sorted = new List, KeyValuePair>>(positionMap); sorted.Sort(new kvpSorter()); - int l = sorted[0].Key; - int c = sorted[0].Value; + int l = 1; + int c = 1; + int pl = 1; - foreach (KeyValuePair cspos in sorted) + foreach (KeyValuePair, KeyValuePair> posmap in sorted) { - if (cspos.Key >= line && - !(cspos.Key == line && cspos.Value <= col)) + //m_log.DebugFormat("[Compiler]: Scanning line map {0},{1} --> {2},{3}", posmap.Key.Key, posmap.Key.Value, posmap.Value.Key, posmap.Value.Value); + int nl = posmap.Value.Key + line - posmap.Key.Key; // New, translated LSL line and column. + int nc = posmap.Value.Value + col - posmap.Key.Value; + // Keep going until we find the first point passed line,col. + if (posmap.Key.Key > line) + { + //m_log.DebugFormat("[Compiler]: Line is larger than requested {0},{1}, returning {2},{3}", line, col, l, c); + if (pl < line) + { + //m_log.DebugFormat("[Compiler]: Previous line ({0}) is less than requested line ({1}), setting column to 1.", pl, line); + c = 1; + } break; - l = cspos.Key; - c = cspos.Value; + } + if (posmap.Key.Key == line && posmap.Key.Value > col) + { + // Never move l,c backwards. + if (nl > l || (nl == l && nc > c)) + { + //m_log.DebugFormat("[Compiler]: Using offset relative to this: {0} + {1} - {2}, {3} + {4} - {5} = {6}, {7}", + // posmap.Value.Key, line, posmap.Key.Key, posmap.Value.Value, col, posmap.Key.Value, nl, nc); + l = nl; + c = nc; + } + //m_log.DebugFormat("[Compiler]: Column is larger than requested {0},{1}, returning {2},{3}", line, col, l, c); + break; + } + pl = posmap.Key.Key; + l = posmap.Value.Key; + c = posmap.Value.Value; } - positionMap.TryGetValue(new KeyValuePair(l, c), out ret); - return ret; + return new KeyValuePair(l, c); } } } -- cgit v1.1 From 470161ae2ef67b18fa4432de144a6402a5075814 Mon Sep 17 00:00:00 2001 From: Oren Hurvitz Date: Mon, 30 Jun 2014 18:03:41 +0300 Subject: Write some pCampBot messages to the log --- OpenSim/Tools/pCampBot/Bot.cs | 2 +- OpenSim/Tools/pCampBot/BotManager.cs | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/pCampBot/Bot.cs b/OpenSim/Tools/pCampBot/Bot.cs index 3c07a7c..c743568 100644 --- a/OpenSim/Tools/pCampBot/Bot.cs +++ b/OpenSim/Tools/pCampBot/Bot.cs @@ -333,7 +333,7 @@ namespace pCampBot // client CreateLibOmvClient(); - if (Client.Network.Login(FirstName, LastName, Password, "pCampBot", StartLocation, "Your name")) + if (Client.Network.Login(FirstName, LastName, Password, "pCampBot", StartLocation, "pCampBot")) { ConnectionState = ConnectionState.Connected; diff --git a/OpenSim/Tools/pCampBot/BotManager.cs b/OpenSim/Tools/pCampBot/BotManager.cs index 3647831..8abab1d 100644 --- a/OpenSim/Tools/pCampBot/BotManager.cs +++ b/OpenSim/Tools/pCampBot/BotManager.cs @@ -321,7 +321,7 @@ namespace pCampBot private void ConnectBotsInternal(int botCount) { - MainConsole.Instance.OutputFormat( + m_log.InfoFormat( "[BOT MANAGER]: Starting {0} bots connecting to {1}, location {2}, named {3} {4}_", botCount, m_loginUri, @@ -329,9 +329,9 @@ namespace pCampBot m_firstName, m_lastNameStem); - MainConsole.Instance.OutputFormat("[BOT MANAGER]: Delay between logins is {0}ms", LoginDelay); - MainConsole.Instance.OutputFormat("[BOT MANAGER]: BotsSendAgentUpdates is {0}", InitBotSendAgentUpdates); - MainConsole.Instance.OutputFormat("[BOT MANAGER]: InitBotRequestObjectTextures is {0}", InitBotRequestObjectTextures); + m_log.DebugFormat("[BOT MANAGER]: Delay between logins is {0}ms", LoginDelay); + m_log.DebugFormat("[BOT MANAGER]: BotsSendAgentUpdates is {0}", InitBotSendAgentUpdates); + m_log.DebugFormat("[BOT MANAGER]: InitBotRequestObjectTextures is {0}", InitBotRequestObjectTextures); int connectedBots = 0; -- cgit v1.1 From 46c1d4e3191842b6a2ac3a91e027a7b6a2c8c44e Mon Sep 17 00:00:00 2001 From: Oren Hurvitz Date: Tue, 1 Jul 2014 15:26:22 +0300 Subject: pCamBot: download Meshes The "Sculpt" field in prims is used for both Sculpties (where the assets are Textures), and real meshes. Meshes require a different download URL than textures. --- OpenSim/Tools/pCampBot/Bot.cs | 40 ++++++++++++++++++++++++++++++++-------- 1 file changed, 32 insertions(+), 8 deletions(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/pCampBot/Bot.cs b/OpenSim/Tools/pCampBot/Bot.cs index c743568..bd5eb81 100644 --- a/OpenSim/Tools/pCampBot/Bot.cs +++ b/OpenSim/Tools/pCampBot/Bot.cs @@ -635,7 +635,7 @@ namespace pCampBot { if (prim.Textures.DefaultTexture.TextureID != UUID.Zero) { - GetTexture(prim.Textures.DefaultTexture.TextureID); + GetTextureOrMesh(prim.Textures.DefaultTexture.TextureID, true); } for (int i = 0; i < prim.Textures.FaceTextures.Length; i++) @@ -647,32 +647,56 @@ namespace pCampBot UUID textureID = prim.Textures.FaceTextures[i].TextureID; if (textureID != UUID.Zero) - GetTexture(textureID); + GetTextureOrMesh(textureID, true); } } } if (prim.Sculpt != null && prim.Sculpt.SculptTexture != UUID.Zero) - GetTexture(prim.Sculpt.SculptTexture); + { + bool mesh = (prim.Sculpt.Type == SculptType.Mesh); + GetTextureOrMesh(prim.Sculpt.SculptTexture, !mesh); + } } } - private void GetTexture(UUID textureID) + private void GetTextureOrMesh(UUID assetID, bool texture) { lock (Manager.AssetsReceived) { // Don't request assets more than once. - if (Manager.AssetsReceived.ContainsKey(textureID)) + if (Manager.AssetsReceived.ContainsKey(assetID)) return; - Manager.AssetsReceived[textureID] = false; - Client.Assets.RequestImage(textureID, ImageType.Normal, Asset_TextureCallback_Texture); + Manager.AssetsReceived[assetID] = false; + } + + try + { + if (texture) + Client.Assets.RequestImage(assetID, ImageType.Normal, Asset_TextureCallback_Texture); + else + Client.Assets.RequestMesh(assetID, Asset_MeshCallback); + } + catch (Exception e) + { + m_log.Warn(string.Format("Error requesting {0} {1}", texture ? "texture" : "mesh", assetID), e); } } public void Asset_TextureCallback_Texture(TextureRequestState state, AssetTexture assetTexture) { - //TODO: Implement texture saving and applying + if (state == TextureRequestState.Finished) + { + lock (Manager.AssetsReceived) + Manager.AssetsReceived[assetTexture.AssetID] = true; + } + } + + private void Asset_MeshCallback(bool success, AssetMesh assetMesh) + { + lock (Manager.AssetsReceived) + Manager.AssetsReceived[assetMesh.AssetID] = success; } public void Asset_ReceivedCallback(AssetDownload transfer, Asset asset) -- cgit v1.1 From e57e9e95d4cd8fd431eab79d41169827dfcbf8ab Mon Sep 17 00:00:00 2001 From: Justin Clark-Casey (justincc) Date: Tue, 5 Aug 2014 01:06:22 +0100 Subject: Allow "show bots" pCampbot console command to quickly report status by not locking entire bot list for almost 100% of connection time. --- OpenSim/Tools/pCampBot/BotManager.cs | 38 +++++++++++++++++++----------------- 1 file changed, 20 insertions(+), 18 deletions(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/pCampBot/BotManager.cs b/OpenSim/Tools/pCampBot/BotManager.cs index 8abab1d..f54d586 100644 --- a/OpenSim/Tools/pCampBot/BotManager.cs +++ b/OpenSim/Tools/pCampBot/BotManager.cs @@ -333,31 +333,33 @@ namespace pCampBot m_log.DebugFormat("[BOT MANAGER]: BotsSendAgentUpdates is {0}", InitBotSendAgentUpdates); m_log.DebugFormat("[BOT MANAGER]: InitBotRequestObjectTextures is {0}", InitBotRequestObjectTextures); - int connectedBots = 0; + List botsToConnect = new List(); - for (int i = 0; i < m_bots.Count; i++) + lock (m_bots) { - lock (m_bots) + foreach (Bot bot in m_bots) { - if (DisconnectingBots) - { - MainConsole.Instance.Output( - "[BOT MANAGER]: Aborting bot connection due to user-initiated disconnection"); + if (bot.ConnectionState == ConnectionState.Disconnected) + botsToConnect.Add(bot); + + if (botsToConnect.Count >= botCount) break; - } + } + } - if (m_bots[i].ConnectionState == ConnectionState.Disconnected) - { - m_bots[i].Connect(); - connectedBots++; + foreach (Bot bot in botsToConnect) + { + if (DisconnectingBots) + { + MainConsole.Instance.Output( + "[BOT MANAGER]: Aborting bot connection due to user-initiated disconnection"); + break; + } - if (connectedBots >= botCount) - break; + bot.Connect(); - // Stagger logins - Thread.Sleep(LoginDelay); - } - } + // Stagger logins + Thread.Sleep(LoginDelay); } ConnectingBots = false; -- cgit v1.1 From fcc665a56725eaa1e92b096fdbd0190d7a20b2ec Mon Sep 17 00:00:00 2001 From: Justin Clark-Casey (justincc) Date: Tue, 5 Aug 2014 01:15:07 +0100 Subject: Put pCampbot "disconnect" command on separate thread like "connect" so that we can continue to run status commands whilst bots are disconnecting. --- OpenSim/Tools/pCampBot/BotManager.cs | 62 ++++++++++++++++++++---------------- 1 file changed, 35 insertions(+), 27 deletions(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/pCampBot/BotManager.cs b/OpenSim/Tools/pCampBot/BotManager.cs index f54d586..a872dbc 100644 --- a/OpenSim/Tools/pCampBot/BotManager.cs +++ b/OpenSim/Tools/pCampBot/BotManager.cs @@ -611,45 +611,53 @@ namespace pCampBot private void HandleDisconnect(string module, string[] cmd) { + List connectedBots; + int botsToDisconnectCount; + lock (m_bots) + connectedBots = m_bots.FindAll(b => b.ConnectionState == ConnectionState.Connected); + + if (cmd.Length == 1) { - int botsToDisconnect; - int connectedBots = m_bots.Count(b => b.ConnectionState == ConnectionState.Connected); + botsToDisconnectCount = connectedBots.Count; + } + else + { + if (!ConsoleUtil.TryParseConsoleNaturalInt(MainConsole.Instance, cmd[1], out botsToDisconnectCount)) + return; - if (cmd.Length == 1) - { - botsToDisconnect = connectedBots; - } - else - { - if (!ConsoleUtil.TryParseConsoleNaturalInt(MainConsole.Instance, cmd[1], out botsToDisconnect)) - return; + botsToDisconnectCount = Math.Min(botsToDisconnectCount, connectedBots.Count); + } - botsToDisconnect = Math.Min(botsToDisconnect, connectedBots); - } + Thread disconnectBotThread = new Thread(o => DisconnectBotsInternal(connectedBots, botsToDisconnectCount)); - DisconnectingBots = true; + disconnectBotThread.Name = "Bots disconnection thread"; + disconnectBotThread.Start(); + } - MainConsole.Instance.OutputFormat("Disconnecting {0} bots", botsToDisconnect); + private void DisconnectBotsInternal(List connectedBots, int disconnectCount) + { + DisconnectingBots = true; - int disconnectedBots = 0; + MainConsole.Instance.OutputFormat("Disconnecting {0} bots", disconnectCount); - for (int i = m_bots.Count - 1; i >= 0; i--) - { - if (disconnectedBots >= botsToDisconnect) - break; + int disconnectedBots = 0; - Bot thisBot = m_bots[i]; + for (int i = connectedBots.Count - 1; i >= 0; i--) + { + if (disconnectedBots >= disconnectCount) + break; - if (thisBot.ConnectionState == ConnectionState.Connected) - { - Util.FireAndForget(o => thisBot.Disconnect()); - disconnectedBots++; - } - } + Bot thisBot = connectedBots[i]; - DisconnectingBots = false; + if (thisBot.ConnectionState == ConnectionState.Connected) + { + thisBot.Disconnect(); + disconnectedBots++; + } } + + DisconnectingBots = false; } private void HandleSit(string module, string[] cmd) -- cgit v1.1 From 0e71e3889c4d3b12575fc8d40bde2e70dc7f5e56 Mon Sep 17 00:00:00 2001 From: Justin Clark-Casey (justincc) Date: Tue, 5 Aug 2014 01:37:10 +0100 Subject: Go back to disconnecting bots in parallel since serially is too slow. However, disconnecting now halts any current connection, with the possible exception of the single currently connecting bot. --- OpenSim/Tools/pCampBot/BotManager.cs | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/pCampBot/BotManager.cs b/OpenSim/Tools/pCampBot/BotManager.cs index a872dbc..12cde18 100644 --- a/OpenSim/Tools/pCampBot/BotManager.cs +++ b/OpenSim/Tools/pCampBot/BotManager.cs @@ -349,7 +349,7 @@ namespace pCampBot foreach (Bot bot in botsToConnect) { - if (DisconnectingBots) + if (!ConnectingBots) { MainConsole.Instance.Output( "[BOT MANAGER]: Aborting bot connection due to user-initiated disconnection"); @@ -629,6 +629,8 @@ namespace pCampBot botsToDisconnectCount = Math.Min(botsToDisconnectCount, connectedBots.Count); } + DisconnectingBots = true; + Thread disconnectBotThread = new Thread(o => DisconnectBotsInternal(connectedBots, botsToDisconnectCount)); disconnectBotThread.Name = "Bots disconnection thread"; @@ -637,7 +639,7 @@ namespace pCampBot private void DisconnectBotsInternal(List connectedBots, int disconnectCount) { - DisconnectingBots = true; + ConnectingBots = false; MainConsole.Instance.OutputFormat("Disconnecting {0} bots", disconnectCount); @@ -652,7 +654,7 @@ namespace pCampBot if (thisBot.ConnectionState == ConnectionState.Connected) { - thisBot.Disconnect(); + ThreadPool.QueueUserWorkItem(o => thisBot.Disconnect()); disconnectedBots++; } } -- cgit v1.1 From f1cec684e2014e406e312c94dcc44a6174fea9f1 Mon Sep 17 00:00:00 2001 From: Justin Clark-Casey (justincc) Date: Tue, 12 Aug 2014 18:46:09 +0100 Subject: For pCampbot, set max number of permitted connections to an endpoint to int.MaxValue This is to avoid issues where many bots connect to a single end point with multiple regions, where each region requires a long-lived poll connection for each bot. --- OpenSim/Tools/pCampBot/BotManager.cs | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/pCampBot/BotManager.cs b/OpenSim/Tools/pCampBot/BotManager.cs index 12cde18..69dd950 100644 --- a/OpenSim/Tools/pCampBot/BotManager.cs +++ b/OpenSim/Tools/pCampBot/BotManager.cs @@ -147,6 +147,10 @@ namespace pCampBot /// public BotManager() { + // We set this to avoid issues with bots running out of HTTP connections if many are run from a single machine + // to multiple regions. + Settings.MAX_HTTP_CONNECTIONS = int.MaxValue; + InitBotSendAgentUpdates = true; InitBotRequestObjectTextures = true; -- cgit v1.1 From f1f935ed9543141cc5861a7204b6df85a7358ab4 Mon Sep 17 00:00:00 2001 From: Justin Clark-Casey (justincc) Date: Wed, 13 Aug 2014 19:53:42 +0100 Subject: Add 'server' stats information to pCampbot, as used elsewhere in OpenSimulator This adds the "show stats", "stats record", etc. commands and information on available Threadpool threads, etc. It also adds the Watchdog which logs warnings if time between executions is unexpectedly large. --- OpenSim/Tools/pCampBot/BotManager.cs | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/pCampBot/BotManager.cs b/OpenSim/Tools/pCampBot/BotManager.cs index 69dd950..b199931 100644 --- a/OpenSim/Tools/pCampBot/BotManager.cs +++ b/OpenSim/Tools/pCampBot/BotManager.cs @@ -38,6 +38,7 @@ using log4net.Repository; using Nini.Config; using OpenSim.Framework; using OpenSim.Framework.Console; +using OpenSim.Framework.Monitoring; using pCampBot.Interfaces; namespace pCampBot @@ -143,6 +144,11 @@ namespace pCampBot private HashSet m_defaultBehaviourSwitches = new HashSet(); /// + /// Collects general information on this server (which reveals this to be a misnamed class). + /// + private ServerStatsCollector m_serverStatsCollector; + + /// /// Constructor Creates MainConsole.Instance to take commands and provide the place to write data /// public BotManager() @@ -151,6 +157,12 @@ namespace pCampBot // to multiple regions. Settings.MAX_HTTP_CONNECTIONS = int.MaxValue; +// System.Threading.ThreadPool.SetMaxThreads(600, 240); +// +// int workerThreads, iocpThreads; +// System.Threading.ThreadPool.GetMaxThreads(out workerThreads, out iocpThreads); +// Console.WriteLine("ThreadPool.GetMaxThreads {0} {1}", workerThreads, iocpThreads); + InitBotSendAgentUpdates = true; InitBotRequestObjectTextures = true; @@ -234,6 +246,14 @@ namespace pCampBot "Shows the detailed status and settings of a particular bot.", HandleShowBotStatus); m_bots = new List(); + + Watchdog.Enabled = true; + StatsManager.RegisterConsoleCommands(m_console); + + m_serverStatsCollector = new ServerStatsCollector(); + m_serverStatsCollector.Initialise(null); + m_serverStatsCollector.Enabled = true; + m_serverStatsCollector.Start(); } /// @@ -697,6 +717,8 @@ namespace pCampBot MainConsole.Instance.Output("Shutting down"); + m_serverStatsCollector.Close(); + Environment.Exit(0); } -- cgit v1.1 From 21176a3a901dd2190a1847acf576b938c0885e23 Mon Sep 17 00:00:00 2001 From: Justin Clark-Casey (justincc) Date: Wed, 13 Aug 2014 22:38:27 +0100 Subject: Terminate 'nothing' behaviour (and potentially others) by signalling using an event rather than polling connection state every 100ms This kind of polling is very expensive with many bots/polling threads and appears to be the primary cause of bot falloff from the client end at higher loads. Where inbound packet threads can't run in time due to contention and simulator disconnect timeout occurs. --- .../Tools/pCampBot/Behaviours/AbstractBehaviour.cs | 14 ++++-- OpenSim/Tools/pCampBot/Behaviours/NoneBehaviour.cs | 10 ++++ .../Tools/pCampBot/Behaviours/PhysicsBehaviour.cs | 2 + OpenSim/Tools/pCampBot/Bot.cs | 58 ++++++++++------------ OpenSim/Tools/pCampBot/Interfaces/IBehaviour.cs | 8 +++ 5 files changed, 56 insertions(+), 36 deletions(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/pCampBot/Behaviours/AbstractBehaviour.cs b/OpenSim/Tools/pCampBot/Behaviours/AbstractBehaviour.cs index 9bc8512..c1ba36b 100644 --- a/OpenSim/Tools/pCampBot/Behaviours/AbstractBehaviour.cs +++ b/OpenSim/Tools/pCampBot/Behaviours/AbstractBehaviour.cs @@ -29,11 +29,12 @@ using OpenMetaverse; using System; using System.Collections.Generic; using System.Linq; +using System.Threading; using pCampBot.Interfaces; namespace pCampBot { - public class AbstractBehaviour : IBehaviour + public abstract class AbstractBehaviour : IBehaviour { /// /// Abbreviated name of this behaviour. @@ -44,13 +45,20 @@ namespace pCampBot public Bot Bot { get; protected set; } - public virtual void Action() {} + public abstract void Action(); + + public virtual void Interrupt() {} + + protected AutoResetEvent m_interruptEvent = new AutoResetEvent(false); public virtual void Initialize(Bot bot) { Bot = bot; } - public virtual void Close() {} + public virtual void Close() + { + Interrupt(); + } } } diff --git a/OpenSim/Tools/pCampBot/Behaviours/NoneBehaviour.cs b/OpenSim/Tools/pCampBot/Behaviours/NoneBehaviour.cs index 9a3075c..4a7237c 100644 --- a/OpenSim/Tools/pCampBot/Behaviours/NoneBehaviour.cs +++ b/OpenSim/Tools/pCampBot/Behaviours/NoneBehaviour.cs @@ -43,5 +43,15 @@ namespace pCampBot AbbreviatedName = "n"; Name = "None"; } + + public override void Action() + { + m_interruptEvent.WaitOne(); + } + + public override void Interrupt() + { + m_interruptEvent.Set(); + } } } \ No newline at end of file diff --git a/OpenSim/Tools/pCampBot/Behaviours/PhysicsBehaviour.cs b/OpenSim/Tools/pCampBot/Behaviours/PhysicsBehaviour.cs index 6fd2b7c..98ab931 100644 --- a/OpenSim/Tools/pCampBot/Behaviours/PhysicsBehaviour.cs +++ b/OpenSim/Tools/pCampBot/Behaviours/PhysicsBehaviour.cs @@ -82,6 +82,8 @@ namespace pCampBot { if (Bot.ConnectionState == ConnectionState.Connected) Bot.Client.Self.Jump(false); + + base.Close(); } private string[] readexcuses() diff --git a/OpenSim/Tools/pCampBot/Bot.cs b/OpenSim/Tools/pCampBot/Bot.cs index bd5eb81..fd9ae3f 100644 --- a/OpenSim/Tools/pCampBot/Bot.cs +++ b/OpenSim/Tools/pCampBot/Bot.cs @@ -192,15 +192,15 @@ namespace pCampBot public bool AddBehaviour(IBehaviour behaviour) { - lock (Behaviours) - { - if (!Behaviours.ContainsKey(behaviour.AbbreviatedName)) - { - behaviour.Initialize(this); - Behaviours.Add(behaviour.AbbreviatedName, behaviour); + Dictionary updatedBehaviours = new Dictionary(Behaviours); - return true; - } + if (!updatedBehaviours.ContainsKey(behaviour.AbbreviatedName)) + { + behaviour.Initialize(this); + updatedBehaviours.Add(behaviour.AbbreviatedName, behaviour); + Behaviours = updatedBehaviours; + + return true; } return false; @@ -208,18 +208,17 @@ namespace pCampBot public bool RemoveBehaviour(string abbreviatedName) { - lock (Behaviours) - { - IBehaviour behaviour; + Dictionary updatedBehaviours = new Dictionary(Behaviours); + IBehaviour behaviour; - if (!Behaviours.TryGetValue(abbreviatedName, out behaviour)) - return false; + if (!updatedBehaviours.TryGetValue(abbreviatedName, out behaviour)) + return false; - behaviour.Close(); - Behaviours.Remove(abbreviatedName); + behaviour.Close(); + updatedBehaviours.Remove(abbreviatedName); + Behaviours = updatedBehaviours; - return true; - } + return true; } private void CreateLibOmvClient() @@ -279,24 +278,17 @@ namespace pCampBot { while (ConnectionState == ConnectionState.Connected) { - lock (Behaviours) + foreach (IBehaviour behaviour in Behaviours.Values) { - foreach (IBehaviour behaviour in Behaviours.Values) - { // Thread.Sleep(Random.Next(3000, 10000)); - - // m_log.DebugFormat("[pCAMPBOT]: For {0} performing action {1}", Name, b.GetType()); - behaviour.Action(); - } + + // m_log.DebugFormat("[pCAMPBOT]: For {0} performing action {1}", Name, b.GetType()); + behaviour.Action(); } - - // XXX: This is a really shitty way of yielding so that behaviours can be added/removed - Thread.Sleep(100); } - lock (Behaviours) - foreach (IBehaviour b in Behaviours.Values) - b.Close(); + foreach (IBehaviour b in Behaviours.Values) + b.Close(); } /// @@ -305,9 +297,9 @@ namespace pCampBot public void Disconnect() { ConnectionState = ConnectionState.Disconnecting; - -// if (m_actionThread != null) -// m_actionThread.Abort(); + + foreach (IBehaviour behaviour in Behaviours.Values) + behaviour.Interrupt(); Client.Network.Logout(); } diff --git a/OpenSim/Tools/pCampBot/Interfaces/IBehaviour.cs b/OpenSim/Tools/pCampBot/Interfaces/IBehaviour.cs index 0ed4825..660c630 100644 --- a/OpenSim/Tools/pCampBot/Interfaces/IBehaviour.cs +++ b/OpenSim/Tools/pCampBot/Interfaces/IBehaviour.cs @@ -51,6 +51,14 @@ namespace pCampBot.Interfaces void Initialize(Bot bot); /// + /// Interrupt the behaviour. + /// + /// + /// This should cause the current Action call() to terminate if this is active. + /// + void Interrupt(); + + /// /// Close down this behaviour. /// /// -- cgit v1.1 From 1d2933ca51feaad829ad5163903d18d8d3b16371 Mon Sep 17 00:00:00 2001 From: Justin Clark-Casey (justincc) Date: Fri, 15 Aug 2014 22:41:00 +0100 Subject: Resolve a small race condition on removing bot behaviours that might leave previous behaviour active Also closes behaviours on disconnect instead of interrupt, though this makes no practical difference. If existing behaviour is None, other added behavious will not take affect until None is removed (as this is an infinite wait until interrupted). --- OpenSim/Tools/pCampBot/Bot.cs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/pCampBot/Bot.cs b/OpenSim/Tools/pCampBot/Bot.cs index fd9ae3f..c043186 100644 --- a/OpenSim/Tools/pCampBot/Bot.cs +++ b/OpenSim/Tools/pCampBot/Bot.cs @@ -214,10 +214,11 @@ namespace pCampBot if (!updatedBehaviours.TryGetValue(abbreviatedName, out behaviour)) return false; - behaviour.Close(); updatedBehaviours.Remove(abbreviatedName); Behaviours = updatedBehaviours; + behaviour.Close(); + return true; } @@ -299,7 +300,7 @@ namespace pCampBot ConnectionState = ConnectionState.Disconnecting; foreach (IBehaviour behaviour in Behaviours.Values) - behaviour.Interrupt(); + behaviour.Close(); Client.Network.Logout(); } -- cgit v1.1 From 3a643e24560a8200dd99a855d1cc7ed1d3b4b9c5 Mon Sep 17 00:00:00 2001 From: Justin Clark-Casey (justincc) Date: Fri, 15 Aug 2014 22:43:55 +0100 Subject: Don't allow the last behavior to be removed from a pCampbot bot If you want to stop existing behavious, add the None behaviour. --- OpenSim/Tools/pCampBot/Bot.cs | 3 +++ OpenSim/Tools/pCampBot/BotManager.cs | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/pCampBot/Bot.cs b/OpenSim/Tools/pCampBot/Bot.cs index c043186..45a6682 100644 --- a/OpenSim/Tools/pCampBot/Bot.cs +++ b/OpenSim/Tools/pCampBot/Bot.cs @@ -208,6 +208,9 @@ namespace pCampBot public bool RemoveBehaviour(string abbreviatedName) { + if (Behaviours.Count <= 0) + return false; + Dictionary updatedBehaviours = new Dictionary(Behaviours); IBehaviour behaviour; diff --git a/OpenSim/Tools/pCampBot/BotManager.cs b/OpenSim/Tools/pCampBot/BotManager.cs index b199931..b10f552 100644 --- a/OpenSim/Tools/pCampBot/BotManager.cs +++ b/OpenSim/Tools/pCampBot/BotManager.cs @@ -628,7 +628,7 @@ namespace pCampBot } MainConsole.Instance.OutputFormat( - "Removed behaviours {0} to bot {1}", + "Removed behaviours {0} from bot {1}", string.Join(", ", behavioursRemoved.ConvertAll(b => b.Name).ToArray()), bot.Name); } } -- cgit v1.1 From ce74418c20bdd96b8dc74f8d2567758d4659ab87 Mon Sep 17 00:00:00 2001 From: Justin Clark-Casey (justincc) Date: Tue, 19 Aug 2014 00:57:49 +0100 Subject: minor:Give console feedback when we sit or stand pCampbot bots. Also only write console lines for actually connected bots. --- OpenSim/Tools/pCampBot/BotManager.cs | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/pCampBot/BotManager.cs b/OpenSim/Tools/pCampBot/BotManager.cs index b10f552..29739dc 100644 --- a/OpenSim/Tools/pCampBot/BotManager.cs +++ b/OpenSim/Tools/pCampBot/BotManager.cs @@ -690,7 +690,14 @@ namespace pCampBot { lock (m_bots) { - m_bots.ForEach(b => b.SitOnGround()); + foreach (Bot bot in m_bots) + { + if (bot.ConnectionState == ConnectionState.Connected) + { + MainConsole.Instance.OutputFormat("Sitting bot {0} on ground.", bot.Name); + bot.SitOnGround(); + } + } } } @@ -698,7 +705,14 @@ namespace pCampBot { lock (m_bots) { - m_bots.ForEach(b => b.Stand()); + foreach (Bot bot in m_bots) + { + if (bot.ConnectionState == ConnectionState.Connected) + { + MainConsole.Instance.OutputFormat("Standing bot {0} from ground.", bot.Name); + bot.Stand(); + } + } } } -- cgit v1.1 From 3e5bc75f89998e9b1bba5e7e5f4042e883afb522 Mon Sep 17 00:00:00 2001 From: BlueWall Date: Wed, 3 Sep 2014 13:00:09 -0400 Subject: Remove the 32 bit launchers as discussed at OpenSimulator Office Hour 9//2/14 http://opensimulator.org/wiki/Chat_log_from_the_meeting_on_2014-09-02. Find the binaries, sources and README in ./share/32BitLaunch if needed. --- .../OpenSim.32BitLaunch/OpenSim.32BitLaunch.csproj | 97 --------------------- OpenSim/Tools/OpenSim.32BitLaunch/Program.cs | 59 ------------- .../OpenSim.32BitLaunch/Properties/AssemblyInfo.cs | 63 -------------- OpenSim/Tools/Robust.32BitLaunch/Program.cs | 60 ------------- .../Robust.32BitLaunch/Properties/AssemblyInfo.cs | 63 -------------- .../Robust.32BitLaunch/Robust.32BitLaunch.csproj | 99 ---------------------- .../Robust.32BitLaunch/Robust.32BitLaunch.sln | 20 ----- 7 files changed, 461 deletions(-) delete mode 100644 OpenSim/Tools/OpenSim.32BitLaunch/OpenSim.32BitLaunch.csproj delete mode 100644 OpenSim/Tools/OpenSim.32BitLaunch/Program.cs delete mode 100644 OpenSim/Tools/OpenSim.32BitLaunch/Properties/AssemblyInfo.cs delete mode 100644 OpenSim/Tools/Robust.32BitLaunch/Program.cs delete mode 100644 OpenSim/Tools/Robust.32BitLaunch/Properties/AssemblyInfo.cs delete mode 100644 OpenSim/Tools/Robust.32BitLaunch/Robust.32BitLaunch.csproj delete mode 100644 OpenSim/Tools/Robust.32BitLaunch/Robust.32BitLaunch.sln (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/OpenSim.32BitLaunch/OpenSim.32BitLaunch.csproj b/OpenSim/Tools/OpenSim.32BitLaunch/OpenSim.32BitLaunch.csproj deleted file mode 100644 index 4625c33..0000000 --- a/OpenSim/Tools/OpenSim.32BitLaunch/OpenSim.32BitLaunch.csproj +++ /dev/null @@ -1,97 +0,0 @@ - - - - Debug - AnyCPU - 9.0.30729 - 2.0 - {595D67F3-B413-4A43-8568-5B5930E3B31D} - Exe - Properties - OpenSim._32BitLaunch - OpenSim.32BitLaunch - v4.0 - 512 - - - - - 3.5 - publish\ - true - Disk - false - Foreground - 7 - Days - false - false - true - 0 - 1.0.0.%2a - false - false - true - - - true - full - false - ..\..\..\bin\ - DEBUG;TRACE - prompt - 4 - x86 - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - - - False - .exe - ..\..\..\bin\OpenSim.exe - - - - - - - - - - False - Microsoft .NET Framework 4 %28x86 and x64%29 - true - - - False - .NET Framework 3.5 SP1 Client Profile - false - - - False - .NET Framework 3.5 SP1 - false - - - False - Windows Installer 3.1 - true - - - - - \ No newline at end of file diff --git a/OpenSim/Tools/OpenSim.32BitLaunch/Program.cs b/OpenSim/Tools/OpenSim.32BitLaunch/Program.cs deleted file mode 100644 index 52806b8..0000000 --- a/OpenSim/Tools/OpenSim.32BitLaunch/Program.cs +++ /dev/null @@ -1,59 +0,0 @@ -/* - * Copyright (c) Contributors, http://opensimulator.org/ - * See CONTRIBUTORS.TXT for a full list of copyright holders. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * * Neither the name of the OpenSimulator Project nor the - * names of its contributors may be used to endorse or promote products - * derived from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -using System; - -namespace OpenSim._32BitLaunch -{ - class Program - { - static void Main(string[] args) - { - log4net.Config.XmlConfigurator.Configure(); - - System.Console.WriteLine("32-bit OpenSim executor"); - System.Console.WriteLine("-----------------------"); - System.Console.WriteLine(""); - System.Console.WriteLine("This application is compiled for 32-bit CPU and will run under WOW32 or similar."); - System.Console.WriteLine("All 64-bit incompatibilities should be gone."); - System.Console.WriteLine(""); - System.Threading.Thread.Sleep(300); - try - { - global::OpenSim.Application.Main(args); - } - catch (Exception ex) - { - System.Console.WriteLine("OpenSim threw an exception:"); - System.Console.WriteLine(ex.ToString()); - System.Console.WriteLine(""); - System.Console.WriteLine("Application will now terminate!"); - System.Console.WriteLine(""); - } - } - } -} diff --git a/OpenSim/Tools/OpenSim.32BitLaunch/Properties/AssemblyInfo.cs b/OpenSim/Tools/OpenSim.32BitLaunch/Properties/AssemblyInfo.cs deleted file mode 100644 index e81870f..0000000 --- a/OpenSim/Tools/OpenSim.32BitLaunch/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,63 +0,0 @@ -/* - * Copyright (c) Contributors, http://opensimulator.org/ - * See CONTRIBUTORS.TXT for a full list of copyright holders. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * * Neither the name of the OpenSimulator Project nor the - * names of its contributors may be used to endorse or promote products - * derived from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("OpenSim.32BitLaunch")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("http://opensimulator.org")] -[assembly: AssemblyProduct("OpenSim.32BitLaunch")] -[assembly: AssemblyCopyright("Copyright (c) 2008")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("5072e919-46ab-47e6-8a63-08108324ccdf")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("0.6.3.*")] -[assembly: AssemblyVersion("0.6.3.*")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/OpenSim/Tools/Robust.32BitLaunch/Program.cs b/OpenSim/Tools/Robust.32BitLaunch/Program.cs deleted file mode 100644 index 490414c..0000000 --- a/OpenSim/Tools/Robust.32BitLaunch/Program.cs +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Copyright (c) Contributors, http://opensimulator.org/ - * See CONTRIBUTORS.TXT for a full list of copyright holders. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * * Neither the name of the OpenSimulator Project nor the - * names of its contributors may be used to endorse or promote products - * derived from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -using System; -using log4net; - -namespace Robust._32BitLaunch -{ - class Program - { - static void Main(string[] args) - { - log4net.Config.XmlConfigurator.Configure(); - - System.Console.WriteLine("32-bit OpenSim executor"); - System.Console.WriteLine("-----------------------"); - System.Console.WriteLine(""); - System.Console.WriteLine("This application is compiled for 32-bit CPU and will run under WOW32 or similar."); - System.Console.WriteLine("All 64-bit incompatibilities should be gone."); - System.Console.WriteLine(""); - System.Threading.Thread.Sleep(300); - try - { - global::OpenSim.Server.OpenSimServer.Main(args); - } - catch (Exception ex) - { - System.Console.WriteLine("OpenSim threw an exception:"); - System.Console.WriteLine(ex.ToString()); - System.Console.WriteLine(""); - System.Console.WriteLine("Application will now terminate!"); - System.Console.WriteLine(""); - } - } - } -} diff --git a/OpenSim/Tools/Robust.32BitLaunch/Properties/AssemblyInfo.cs b/OpenSim/Tools/Robust.32BitLaunch/Properties/AssemblyInfo.cs deleted file mode 100644 index cf80f47..0000000 --- a/OpenSim/Tools/Robust.32BitLaunch/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,63 +0,0 @@ -/* - * Copyright (c) Contributors, http://opensimulator.org/ - * See CONTRIBUTORS.TXT for a full list of copyright holders. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * * Neither the name of the OpenSimulator Project nor the - * names of its contributors may be used to endorse or promote products - * derived from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("Robust.32BitLaunch")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("http://opensimulator.org")] -[assembly: AssemblyProduct("Robust.32BitLaunch")] -[assembly: AssemblyCopyright("Copyright (c) 2008")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("5072e919-46ab-47e6-8a63-08108324ccdf")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("0.6.3.*")] -[assembly: AssemblyVersion("0.6.3.*")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/OpenSim/Tools/Robust.32BitLaunch/Robust.32BitLaunch.csproj b/OpenSim/Tools/Robust.32BitLaunch/Robust.32BitLaunch.csproj deleted file mode 100644 index 9618c08..0000000 --- a/OpenSim/Tools/Robust.32BitLaunch/Robust.32BitLaunch.csproj +++ /dev/null @@ -1,99 +0,0 @@ - - - - Debug - AnyCPU - 9.0.30729 - 2.0 - {595D67F3-B413-4A43-8568-5B5930E3B31D} - Exe - Properties - Robust._32BitLaunch - Robust.32BitLaunch - v4.0 - 512 - - - - - 3.5 - publish\ - true - Disk - false - Foreground - 7 - Days - false - false - true - 0 - 1.0.0.%2a - false - false - true - - - true - full - false - ..\..\..\bin\ - DEBUG;TRACE - prompt - 4 - x86 - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - - False - ..\..\..\bin\log4net.dll - - - False - ..\..\..\bin\Robust.exe - - - - - - - - - - False - Microsoft .NET Framework 4 %28x86 and x64%29 - true - - - False - .NET Framework 3.5 SP1 Client Profile - false - - - False - .NET Framework 3.5 SP1 - false - - - False - Windows Installer 3.1 - true - - - - - \ No newline at end of file diff --git a/OpenSim/Tools/Robust.32BitLaunch/Robust.32BitLaunch.sln b/OpenSim/Tools/Robust.32BitLaunch/Robust.32BitLaunch.sln deleted file mode 100644 index a48a2d3..0000000 --- a/OpenSim/Tools/Robust.32BitLaunch/Robust.32BitLaunch.sln +++ /dev/null @@ -1,20 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 11.00 -# Visual C# Express 2010 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Robust.32BitLaunch", "Robust.32BitLaunch.csproj", "{595D67F3-B413-4A43-8568-5B5930E3B31D}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {595D67F3-B413-4A43-8568-5B5930E3B31D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {595D67F3-B413-4A43-8568-5B5930E3B31D}.Debug|Any CPU.Build.0 = Debug|Any CPU - {595D67F3-B413-4A43-8568-5B5930E3B31D}.Release|Any CPU.ActiveCfg = Release|Any CPU - {595D67F3-B413-4A43-8568-5B5930E3B31D}.Release|Any CPU.Build.0 = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal -- cgit v1.1 From c73b02d5832ea5dd4fc238dfaf610e4103bab205 Mon Sep 17 00:00:00 2001 From: Justin Clark-Casey (justincc) Date: Mon, 22 Sep 2014 23:13:19 +0100 Subject: Replace two connecting bots state booleans in pCampbot with a single state machine. Also adds "show status" command to pCampbot that currently just shows bot connecting state --- OpenSim/Tools/pCampBot/BotManager.cs | 78 +++++++++++++++++++++++++----------- 1 file changed, 55 insertions(+), 23 deletions(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/pCampBot/BotManager.cs b/OpenSim/Tools/pCampBot/BotManager.cs index 29739dc..c7d8f05 100644 --- a/OpenSim/Tools/pCampBot/BotManager.cs +++ b/OpenSim/Tools/pCampBot/BotManager.cs @@ -43,6 +43,14 @@ using pCampBot.Interfaces; namespace pCampBot { + public enum BotManagerBotConnectingState + { + Initializing, + Ready, + Connecting, + Disconnecting + } + /// /// Thread/Bot manager for the application /// @@ -53,14 +61,14 @@ namespace pCampBot public const int DefaultLoginDelay = 5000; /// - /// Is pCampbot in the process of connecting bots? + /// Is pCampbot ready to connect or currently in the process of connecting or disconnecting bots? /// - public bool ConnectingBots { get; private set; } + public BotManagerBotConnectingState BotConnectingState { get; private set; } /// - /// Is pCampbot in the process of disconnecting bots? + /// Used to control locking as we can't lock an enum. /// - public bool DisconnectingBots { get; private set; } + private object BotConnectingStateChangeObject = new object(); /// /// Delay between logins of multiple bots. @@ -239,12 +247,15 @@ namespace pCampBot "Bots", false, "show regions", "show regions", "Show regions known to bots", HandleShowRegions); m_console.Commands.AddCommand( - "Bots", false, "show bots", "show bots", "Shows the status of all bots", HandleShowBotsStatus); + "Bots", false, "show bots", "show bots", "Shows the status of all bots.", HandleShowBotsStatus); m_console.Commands.AddCommand( "Bots", false, "show bot", "show bot ", "Shows the detailed status and settings of a particular bot.", HandleShowBotStatus); + m_console.Commands.AddCommand( + "Bots", false, "show status", "show status", "Shows pCampbot status.", HandleShowStatus); + m_bots = new List(); Watchdog.Enabled = true; @@ -254,6 +265,8 @@ namespace pCampBot m_serverStatsCollector.Initialise(null); m_serverStatsCollector.Enabled = true; m_serverStatsCollector.Start(); + + BotConnectingState = BotManagerBotConnectingState.Ready; } /// @@ -335,7 +348,17 @@ namespace pCampBot public void ConnectBots(int botcount) { - ConnectingBots = true; + lock (BotConnectingStateChangeObject) + { + if (BotConnectingState != BotManagerBotConnectingState.Ready) + { + MainConsole.Instance.OutputFormat( + "Bot connecting status is {0}. Please wait for previous process to complete.", BotConnectingState); + return; + } + + BotConnectingState = BotManagerBotConnectingState.Connecting; + } Thread connectBotThread = new Thread(o => ConnectBotsInternal(botcount)); @@ -373,11 +396,14 @@ namespace pCampBot foreach (Bot bot in botsToConnect) { - if (!ConnectingBots) + lock (BotConnectingStateChangeObject) { - MainConsole.Instance.Output( - "[BOT MANAGER]: Aborting bot connection due to user-initiated disconnection"); - break; + if (BotConnectingState != BotManagerBotConnectingState.Connecting) + { + MainConsole.Instance.Output( + "[BOT MANAGER]: Aborting bot connection due to user-initiated disconnection"); + return; + } } bot.Connect(); @@ -386,7 +412,11 @@ namespace pCampBot Thread.Sleep(LoginDelay); } - ConnectingBots = false; + lock (BotConnectingStateChangeObject) + { + if (BotConnectingState == BotManagerBotConnectingState.Connecting) + BotConnectingState = BotManagerBotConnectingState.Ready; + } } /// @@ -491,13 +521,7 @@ namespace pCampBot } private void HandleConnect(string module, string[] cmd) - { - if (ConnectingBots) - { - MainConsole.Instance.Output("Still connecting bots. Please wait for previous process to complete."); - return; - } - + { lock (m_bots) { int botsToConnect; @@ -653,7 +677,8 @@ namespace pCampBot botsToDisconnectCount = Math.Min(botsToDisconnectCount, connectedBots.Count); } - DisconnectingBots = true; + lock (BotConnectingStateChangeObject) + BotConnectingState = BotManagerBotConnectingState.Disconnecting; Thread disconnectBotThread = new Thread(o => DisconnectBotsInternal(connectedBots, botsToDisconnectCount)); @@ -662,9 +687,7 @@ namespace pCampBot } private void DisconnectBotsInternal(List connectedBots, int disconnectCount) - { - ConnectingBots = false; - + { MainConsole.Instance.OutputFormat("Disconnecting {0} bots", disconnectCount); int disconnectedBots = 0; @@ -683,7 +706,8 @@ namespace pCampBot } } - DisconnectingBots = false; + lock (BotConnectingStateChangeObject) + BotConnectingState = BotManagerBotConnectingState.Ready; } private void HandleSit(string module, string[] cmd) @@ -775,6 +799,14 @@ namespace pCampBot } } + private void HandleShowStatus(string module, string[] cmd) + { + ConsoleDisplayList cdl = new ConsoleDisplayList(); + cdl.AddRow("Bot connecting state", BotConnectingState); + + MainConsole.Instance.Output(cdl.ToString()); + } + private void HandleShowBotsStatus(string module, string[] cmd) { ConsoleDisplayTable cdt = new ConsoleDisplayTable(); -- cgit v1.1 From 6ac12a42ec81dbd7538c61554e410893000e5fb3 Mon Sep 17 00:00:00 2001 From: Justin Clark-Casey (justincc) Date: Wed, 24 Sep 2014 23:03:39 +0100 Subject: Add "debug lludp packet" command to pCampbot. This allows one to log the packets received by a particular bot that are not duplicates of already received packets. Similar to the OpenSimulator command at the same name but currently any positive level logs all received packets. No facility yet for logging outgoing packets. For debug purposes. --- OpenSim/Tools/pCampBot/Bot.cs | 39 +++++++++++++++++++++++++++++++++ OpenSim/Tools/pCampBot/BotManager.cs | 42 ++++++++++++++++++++++++++++++++++++ 2 files changed, 81 insertions(+) (limited to 'OpenSim/Tools') 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; using log4net; using OpenMetaverse; using OpenMetaverse.Assets; +using OpenMetaverse.Packets; using Nini.Config; using OpenSim.Framework; using OpenSim.Framework.Console; @@ -56,6 +57,27 @@ namespace pCampBot { private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); + public int PacketDebugLevel + { + get { return m_packetDebugLevel; } + set + { + if (value == m_packetDebugLevel) + return; + + m_packetDebugLevel = value; + + if (Client != null) + { + if (m_packetDebugLevel <= 0) + Client.Network.UnregisterCallback(PacketType.Default, PacketReceivedDebugHandler); + else + Client.Network.RegisterCallback(PacketType.Default, PacketReceivedDebugHandler, false); + } + } + } + private int m_packetDebugLevel; + public delegate void AnEvent(Bot callbot, EventType someevent); // event delegate for bot events /// @@ -231,6 +253,9 @@ namespace pCampBot if (Client != null) { + // Remove any registered debug handlers + Client.Network.UnregisterCallback(PacketType.Default, PacketReceivedDebugHandler); + newClient.Settings.LOGIN_SERVER = Client.Settings.LOGIN_SERVER; newClient.Settings.ALWAYS_DECODE_OBJECTS = Client.Settings.ALWAYS_DECODE_OBJECTS; newClient.Settings.AVATAR_TRACKING = Client.Settings.AVATAR_TRACKING; @@ -273,6 +298,9 @@ namespace pCampBot newClient.Network.Disconnected += Network_OnDisconnected; newClient.Objects.ObjectUpdate += Objects_NewPrim; + if (m_packetDebugLevel > 0) + newClient.Network.RegisterCallback(PacketType.Default, PacketReceivedDebugHandler); + Client = newClient; } @@ -705,5 +733,16 @@ namespace pCampBot // SaveAsset((AssetWearable) asset); // } } + + private void PacketReceivedDebugHandler(object o, PacketReceivedEventArgs args) + { + Packet p = args.Packet; + Header h = p.Header; + Simulator s = args.Simulator; + + m_log.DebugFormat( + "[BOT]: Bot {0} received from {1} packet {2} #{3}, rel {4}, res {5}", + Name, s.Name, p.Type, h.Sequence, h.Reliable, h.Resent); + } } } 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 "Shows the detailed status and settings of a particular bot.", HandleShowBotStatus); m_console.Commands.AddCommand( + "Debug", + false, + "debug lludp packet", + "debug lludp packet ", + "Turn on received packet logging.", + "If level > 0 then all received packets that are not duplicates are logged.\n" + + "If level <= 0 then no received packets are logged.", + HandleDebugLludpPacketCommand); + + m_console.Commands.AddCommand( "Bots", false, "show status", "show status", "Shows pCampbot status.", HandleShowStatus); m_bots = new List(); @@ -784,6 +794,38 @@ namespace pCampBot } } + private void HandleDebugLludpPacketCommand(string module, string[] args) + { + if (args.Length != 6) + { + MainConsole.Instance.OutputFormat("Usage: debug lludp packet "); + return; + } + + int level; + + if (!ConsoleUtil.TryParseConsoleInt(MainConsole.Instance, args[3], out level)) + return; + + string botFirstName = args[4]; + string botLastName = args[5]; + + Bot bot; + + lock (m_bots) + bot = m_bots.FirstOrDefault(b => b.FirstName == botFirstName && b.LastName == botLastName); + + if (bot == null) + { + MainConsole.Instance.OutputFormat("No bot named {0} {1}", botFirstName, botLastName); + return; + } + + bot.PacketDebugLevel = level; + + MainConsole.Instance.OutputFormat("Set debug level of {0} to {1}", bot.Name, bot.PacketDebugLevel); + } + private void HandleShowRegions(string module, string[] cmd) { string outputFormat = "{0,-30} {1, -20} {2, -5} {3, -5}"; -- cgit v1.1 From b53be022f26cb32c36070ffb028378d587e8762f Mon Sep 17 00:00:00 2001 From: Justin Clark-Casey (justincc) Date: Wed, 29 Oct 2014 00:29:11 +0000 Subject: On pCampbot, if we add the none (n) behaviour then make it actually stop any bots in motion. Previously, adding this behaviour after physics (p) would leave the bot to drift off for ever in its last movement direction. --- OpenSim/Tools/pCampBot/Behaviours/NoneBehaviour.cs | 3 +++ 1 file changed, 3 insertions(+) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/pCampBot/Behaviours/NoneBehaviour.cs b/OpenSim/Tools/pCampBot/Behaviours/NoneBehaviour.cs index 4a7237c..0d43781 100644 --- a/OpenSim/Tools/pCampBot/Behaviours/NoneBehaviour.cs +++ b/OpenSim/Tools/pCampBot/Behaviours/NoneBehaviour.cs @@ -46,7 +46,10 @@ namespace pCampBot public override void Action() { + Bot.Client.Self.Jump(false); + Bot.Client.Self.Movement.Stop = true; m_interruptEvent.WaitOne(); + Bot.Client.Self.Movement.Stop = false; } public override void Interrupt() -- cgit v1.1 From 4b8215c8933ecc358cd33b04f849ca3a40750fe2 Mon Sep 17 00:00:00 2001 From: Justin Clark-Casey (justincc) Date: Tue, 20 Jan 2015 00:18:25 +0000 Subject: minor: comment out unusued logging objects in some pCampbot behaviour classes --- OpenSim/Tools/pCampBot/Behaviours/PhysicsBehaviour2.cs | 2 +- OpenSim/Tools/pCampBot/Behaviours/TwitchyBehaviour.cs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/pCampBot/Behaviours/PhysicsBehaviour2.cs b/OpenSim/Tools/pCampBot/Behaviours/PhysicsBehaviour2.cs index 326396d..1ec2046 100644 --- a/OpenSim/Tools/pCampBot/Behaviours/PhysicsBehaviour2.cs +++ b/OpenSim/Tools/pCampBot/Behaviours/PhysicsBehaviour2.cs @@ -43,7 +43,7 @@ namespace pCampBot /// public class PhysicsBehaviour2 : AbstractBehaviour { - private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); +// private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); public PhysicsBehaviour2() { diff --git a/OpenSim/Tools/pCampBot/Behaviours/TwitchyBehaviour.cs b/OpenSim/Tools/pCampBot/Behaviours/TwitchyBehaviour.cs index ae40bae..7b4639d 100644 --- a/OpenSim/Tools/pCampBot/Behaviours/TwitchyBehaviour.cs +++ b/OpenSim/Tools/pCampBot/Behaviours/TwitchyBehaviour.cs @@ -44,7 +44,7 @@ namespace pCampBot /// public class TwitchyBehaviour : AbstractBehaviour { - private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); +// private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); public TwitchyBehaviour() { -- cgit v1.1 From da32512ea449c2de2d4a6069f899fbd4a8bb03fa Mon Sep 17 00:00:00 2001 From: Diva Canto Date: Wed, 29 Apr 2015 18:47:17 -0700 Subject: Updated all occurrences of AssemblyVersion("0.8.1.*") to AssemblyVersion("0.8.2.*") --- OpenSim/Tools/Compiler/Properties/AssemblyInfo.cs | 2 +- OpenSim/Tools/Configger/Properties/AssemblyInfo.cs | 2 +- OpenSim/Tools/pCampBot/Properties/AssemblyInfo.cs | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/Compiler/Properties/AssemblyInfo.cs b/OpenSim/Tools/Compiler/Properties/AssemblyInfo.cs index 7e92d76..b97c977 100644 --- a/OpenSim/Tools/Compiler/Properties/AssemblyInfo.cs +++ b/OpenSim/Tools/Compiler/Properties/AssemblyInfo.cs @@ -29,5 +29,5 @@ using System.Runtime.InteropServices; // Build Number // Revision // -[assembly: AssemblyVersion("0.8.1.*")] +[assembly: AssemblyVersion("0.8.2.*")] diff --git a/OpenSim/Tools/Configger/Properties/AssemblyInfo.cs b/OpenSim/Tools/Configger/Properties/AssemblyInfo.cs index c470703..e88f0f5 100644 --- a/OpenSim/Tools/Configger/Properties/AssemblyInfo.cs +++ b/OpenSim/Tools/Configger/Properties/AssemblyInfo.cs @@ -29,5 +29,5 @@ using System.Runtime.InteropServices; // Build Number // Revision // -[assembly: AssemblyVersion("0.8.1.*")] +[assembly: AssemblyVersion("0.8.2.*")] diff --git a/OpenSim/Tools/pCampBot/Properties/AssemblyInfo.cs b/OpenSim/Tools/pCampBot/Properties/AssemblyInfo.cs index c0c2b5d..87af19a 100644 --- a/OpenSim/Tools/pCampBot/Properties/AssemblyInfo.cs +++ b/OpenSim/Tools/pCampBot/Properties/AssemblyInfo.cs @@ -29,5 +29,5 @@ using System.Runtime.InteropServices; // Build Number // Revision // -[assembly: AssemblyVersion("0.8.1.*")] +[assembly: AssemblyVersion("0.8.2.*")] -- cgit v1.1 From cc1fc400d86440c49c62888a9fc39dd162f3c8e4 Mon Sep 17 00:00:00 2001 From: Diva Canto Date: Thu, 7 May 2015 12:37:49 -0700 Subject: pCampbot: added behavior that mimic initial inventory download. It's not exactly what the viewer does, but it's close enough, and the elapsed time can be measured. --- .../Behaviours/InventoryDownloadBehaviour.cs | 121 +++++++++++++++++++++ OpenSim/Tools/pCampBot/BotManager.cs | 3 + 2 files changed, 124 insertions(+) create mode 100644 OpenSim/Tools/pCampBot/Behaviours/InventoryDownloadBehaviour.cs (limited to 'OpenSim/Tools') diff --git a/OpenSim/Tools/pCampBot/Behaviours/InventoryDownloadBehaviour.cs b/OpenSim/Tools/pCampBot/Behaviours/InventoryDownloadBehaviour.cs new file mode 100644 index 0000000..521415c --- /dev/null +++ b/OpenSim/Tools/pCampBot/Behaviours/InventoryDownloadBehaviour.cs @@ -0,0 +1,121 @@ +/* + * Copyright (c) Contributors, http://opensimulator.org/ + * See CONTRIBUTORS.TXT for a full list of copyright holders. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the OpenSimulator Project nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +using OpenMetaverse; +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.Threading; +using System.Linq; +using pCampBot.Interfaces; + +namespace pCampBot +{ + /// + /// Do nothing + /// + public class InventoryDownloadBehaviour : AbstractBehaviour + { + private bool m_initialized; + private int m_Requests = 2; + private Stopwatch m_StopWatch = new Stopwatch(); + private List m_processed = new List(); + + public InventoryDownloadBehaviour() + { + AbbreviatedName = "inv"; + Name = "Inventory"; + } + + public override void Action() + { + if (!m_initialized) + { + m_initialized = true; + Bot.Client.Settings.HTTP_INVENTORY = true; + Bot.Client.Settings.FETCH_MISSING_INVENTORY = true; + Bot.Client.Inventory.FolderUpdated += Inventory_FolderUpdated; + Console.WriteLine("Lib owner is " + Bot.Client.Inventory.Store.LibraryRootNode.Data.OwnerID); + m_StopWatch.Start(); + Bot.Client.Inventory.RequestFolderContents(Bot.Client.Inventory.Store.RootFolder.UUID, Bot.Client.Self.AgentID, true, true, InventorySortOrder.ByDate); + Bot.Client.Inventory.RequestFolderContents(Bot.Client.Inventory.Store.LibraryRootNode.Data.UUID, Bot.Client.Inventory.Store.LibraryRootNode.Data.OwnerID, true, true, InventorySortOrder.ByDate); + } + + Thread.Sleep(1000); + Console.WriteLine("Total items: " + Bot.Client.Inventory.Store.Items.Count + "; Total requests: " + m_Requests + "; Time: " + m_StopWatch.Elapsed); + + } + + void Inventory_FolderUpdated(object sender, FolderUpdatedEventArgs e) + { + if (e.Success) + { + //Console.WriteLine("Folder " + e.FolderID + " updated"); + bool fetch = false; + lock (m_processed) + { + if (!m_processed.Contains(e.FolderID)) + { + m_processed.Add(e.FolderID); + fetch = true; + } + } + + if (fetch) + { + List m_foldersToFetch = new List(); + foreach (InventoryBase item in Bot.Client.Inventory.Store.GetContents(e.FolderID)) + { + if (item is InventoryFolder) + { + InventoryFolder f = new InventoryFolder(item.UUID); + f.OwnerID = item.OwnerID; + m_foldersToFetch.Add(f); + } + } + if (m_foldersToFetch.Count > 0) + { + m_Requests += 1; + Bot.Client.Inventory.RequestFolderContentsCap(m_foldersToFetch, Bot.Client.Network.CurrentSim.Caps.CapabilityURI("FetchInventoryDescendents2"), true, true, InventorySortOrder.ByDate); + } + } + + if (Bot.Client.Inventory.Store.Items.Count >= 15739) + { + m_StopWatch.Stop(); + Console.WriteLine("Stop! Total items: " + Bot.Client.Inventory.Store.Items.Count + "; Total requests: " + m_Requests + "; Time: " + m_StopWatch.Elapsed); + } + } + + } + + public override void Interrupt() + { + m_interruptEvent.Set(); + } + } +} \ No newline at end of file diff --git a/OpenSim/Tools/pCampBot/BotManager.cs b/OpenSim/Tools/pCampBot/BotManager.cs index 46094d6..0af9592 100644 --- a/OpenSim/Tools/pCampBot/BotManager.cs +++ b/OpenSim/Tools/pCampBot/BotManager.cs @@ -343,6 +343,9 @@ namespace pCampBot if (abName == "ph2") newBehaviour = new PhysicsBehaviour2(); + if (abName == "inv") + newBehaviour = new InventoryDownloadBehaviour(); + if (newBehaviour != null) { behaviours.Add(newBehaviour); -- cgit v1.1