diff --git a/OpenSim/Region/Application/OpenSim.cs b/OpenSim/Region/Application/OpenSim.cs
index 5ff9a38982..ae4aad313b 100644
--- a/OpenSim/Region/Application/OpenSim.cs
+++ b/OpenSim/Region/Application/OpenSim.cs
@@ -1045,6 +1045,19 @@ namespace OpenSim
MainConsole.Instance.Output("Shared Module: " + module.Name);
}
+ m_sceneManager.ForEachScene(
+ delegate(Scene scene)
+ {
+ m_log.Error("The currently loaded modules in " + scene.RegionInfo.RegionName + " are:");
+ foreach (IRegionModule module in scene.Modules.Values)
+ {
+ if (!module.IsSharedModule)
+ {
+ m_log.Error("Region Module: " + module.Name);
+ }
+ }
+ });
+
MainConsole.Instance.Output("");
break;
diff --git a/OpenSim/Region/CoreModules/World/WorldMap/WorldMapModule.cs b/OpenSim/Region/CoreModules/World/WorldMap/WorldMapModule.cs
index 0fb346ab04..b49f23c589 100644
--- a/OpenSim/Region/CoreModules/World/WorldMap/WorldMapModule.cs
+++ b/OpenSim/Region/CoreModules/World/WorldMap/WorldMapModule.cs
@@ -1180,7 +1180,7 @@ namespace OpenSim.Region.CoreModules.World.WorldMap
else
{
OSDArray responsearr = new OSDArray(); // Don't preallocate. MT (m_scene.GetRootAgentCount());
- m_scene.ForEachScenePresence(delegate(ScenePresence sp)
+ m_scene.ForEachRootScenePresence(delegate(ScenePresence sp)
{
OSDMap responsemapdata = new OSDMap();
responsemapdata["X"] = OSD.FromInteger((int)(xstart + sp.AbsolutePosition.X));
diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs
index 0360942d89..c162519afa 100644
--- a/OpenSim/Region/Framework/Scenes/Scene.cs
+++ b/OpenSim/Region/Framework/Scenes/Scene.cs
@@ -86,7 +86,6 @@ namespace OpenSim.Region.Framework.Scenes
public bool m_allowScriptCrossings;
public bool m_useFlySlow;
public bool m_usePreJump;
- public bool m_seeIntoRegionFromNeighbor;
protected float m_defaultDrawDistance = 255.0f;
public float DefaultDrawDistance
@@ -660,14 +659,6 @@ namespace OpenSim.Region.Framework.Scenes
m_physics_enabled = !RegionInfo.RegionSettings.DisablePhysics;
- // Old
- /*
- m_simulatorVersion = simulatorVersion
- + " (OS " + Util.GetOperatingSystemInformation() + ")"
- + " ChilTasks:" + m_seeIntoRegionFromNeighbor.ToString()
- + " PhysPrim:" + m_physicalPrim.ToString();
- */
-
m_simulatorVersion = simulatorVersion + " (" + Util.GetRuntimeInformation() + ")";
#region Region Config
@@ -714,7 +705,6 @@ namespace OpenSim.Region.Framework.Scenes
m_clampPrimSize = true;
}
- m_seeIntoRegionFromNeighbor = startupConfig.GetBoolean("see_into_this_sim_from_neighbor", true);
m_trustBinaries = startupConfig.GetBoolean("TrustBinaries", m_trustBinaries);
m_allowScriptCrossings = startupConfig.GetBoolean("AllowScriptCrossing", m_allowScriptCrossings);
m_dontPersistBefore =
@@ -4201,33 +4191,6 @@ namespace OpenSim.Region.Framework.Scenes
}
}
- public override void Show(string[] showParams)
- {
- base.Show(showParams);
-
- switch (showParams[0])
- {
- case "users":
- m_log.Error("Current Region: " + RegionInfo.RegionName);
- m_log.ErrorFormat("{0,-16}{1,-16}{2,-25}{3,-25}{4,-16}{5,-16}{6,-16}", "Firstname", "Lastname",
- "Agent ID", "Session ID", "Circuit", "IP", "World");
-
- ForEachScenePresence(delegate(ScenePresence sp)
- {
- m_log.ErrorFormat("{0,-16}{1,-16}{2,-25}{3,-25}{4,-16},{5,-16}{6,-16}",
- sp.Firstname,
- sp.Lastname,
- sp.UUID,
- sp.ControllingClient.AgentId,
- "Unknown",
- "Unknown",
- RegionInfo.RegionName);
- });
-
- break;
- }
- }
-
#region Script Handling Methods
///
diff --git a/OpenSim/Region/Framework/Scenes/SceneBase.cs b/OpenSim/Region/Framework/Scenes/SceneBase.cs
index bf861b8539..73e9392b1a 100644
--- a/OpenSim/Region/Framework/Scenes/SceneBase.cs
+++ b/OpenSim/Region/Framework/Scenes/SceneBase.cs
@@ -457,27 +457,6 @@ namespace OpenSim.Region.Framework.Scenes
#endregion
- ///
- /// Shows various details about the sim based on the parameters supplied by the console command in openSimMain.
- ///
- /// What to show
- public virtual void Show(string[] showParams)
- {
- switch (showParams[0])
- {
- case "modules":
- m_log.Error("The currently loaded modules in " + RegionInfo.RegionName + " are:");
- foreach (IRegionModule module in Modules.Values)
- {
- if (!module.IsSharedModule)
- {
- m_log.Error("Region Module: " + module.Name);
- }
- }
- break;
- }
- }
-
///
/// Call this from a region module to add a command to the OpenSim console.
///
diff --git a/OpenSim/Region/Framework/Scenes/ScenePresence.cs b/OpenSim/Region/Framework/Scenes/ScenePresence.cs
index d8939fcc77..bba746fd4b 100644
--- a/OpenSim/Region/Framework/Scenes/ScenePresence.cs
+++ b/OpenSim/Region/Framework/Scenes/ScenePresence.cs
@@ -2927,7 +2927,7 @@ namespace OpenSim.Region.Framework.Scenes
// only send update from root agents to other clients; children are only "listening posts"
if (IsChildAgent)
{
- m_log.Warn("[SCENE PRESENCE] attempt to send avatar data from a child agent");
+ m_log.Warn("[SCENE PRESENCE]: Attempt to send avatar data from a child agent");
return;
}
@@ -2984,10 +2984,10 @@ namespace OpenSim.Region.Framework.Scenes
// only send update from root agents to other clients; children are only "listening posts"
if (IsChildAgent)
{
- m_log.Warn("[SCENE PRESENCE] attempt to send avatar data from a child agent");
+ m_log.Warn("[SCENE PRESENCE]: Attempt to send avatar data from a child agent");
return;
}
-
+
int count = 0;
m_scene.ForEachScenePresence(delegate(ScenePresence scenePresence)
{
diff --git a/OpenSim/Region/Framework/Scenes/SceneViewer.cs b/OpenSim/Region/Framework/Scenes/SceneViewer.cs
index 8a0d288aaf..092b76e86b 100644
--- a/OpenSim/Region/Framework/Scenes/SceneViewer.cs
+++ b/OpenSim/Region/Framework/Scenes/SceneViewer.cs
@@ -84,7 +84,7 @@ namespace OpenSim.Region.Framework.Scenes
{
if (m_pendingObjects == null)
{
- if (!m_presence.IsChildAgent || (m_presence.Scene.m_seeIntoRegionFromNeighbor))
+ if (!m_presence.IsChildAgent)
{
m_pendingObjects = new Queue();
diff --git a/OpenSim/Region/OptionalModules/Avatar/Appearance/AppearanceInfoModule.cs b/OpenSim/Region/OptionalModules/Avatar/Appearance/AppearanceInfoModule.cs
index 2cef8a9f8b..f8120aaa39 100644
--- a/OpenSim/Region/OptionalModules/Avatar/Appearance/AppearanceInfoModule.cs
+++ b/OpenSim/Region/OptionalModules/Avatar/Appearance/AppearanceInfoModule.cs
@@ -98,7 +98,24 @@ namespace OpenSim.Region.OptionalModules.Avatar.Appearance
"Show appearance information for each avatar in the simulator.",
"At the moment this actually just checks that we have all the required baked textures. If not, then appearance is 'corrupt' and other avatars will continue to see a cloud.",
ShowAppearanceInfo);
- }
+
+ scene.AddCommand(
+ this, "appearance send",
+ "appearance send",
+ "Send appearance data for each avatar in the simulator to viewers.",
+ SendAppearance);
+ }
+
+ private void SendAppearance(string module, string[] cmd)
+ {
+ lock (m_scenes)
+ {
+ foreach (Scene scene in m_scenes.Values)
+ {
+ scene.ForEachRootScenePresence(sp => scene.AvatarFactory.SendAppearance(sp.UUID));
+ }
+ }
+ }
protected void ShowAppearanceInfo(string module, string[] cmd)
{
diff --git a/OpenSim/TestSuite/BotManager.cs b/OpenSim/TestSuite/BotManager.cs
deleted file mode 100644
index 55ba687290..0000000000
--- a/OpenSim/TestSuite/BotManager.cs
+++ /dev/null
@@ -1,170 +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.Threading;
-using OpenMetaverse;
-using log4net;
-using Nini.Config;
-using OpenSim.Framework;
-using OpenSim.Framework.Console;
-
-namespace OpenSim.TestSuite
-{
- ///
- /// Thread/Bot manager for the application
- ///
- public class BotManager
- {
- private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
-
- 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;
- protected IConfig Previous_config;
-
- ///
- /// Constructor Creates MainConsole.Instance to take commands and provide the place to write data
- ///
- public BotManager()
- {
- m_log.Info("In bot manager");
- 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].Name = "CampBot_" + pos;
- 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
- ///
- ///
- ///
- 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();
- }
- }
- }
-}
diff --git a/OpenSim/TestSuite/Main.cs b/OpenSim/TestSuite/Main.cs
deleted file mode 100644
index ee75bf5fab..0000000000
--- a/OpenSim/TestSuite/Main.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 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 Nini.Config;
-
-namespace OpenSim.TestSuite
-{
- ///
- /// Event Types from the BOT. Add new events here
- ///
- public enum EventType : int
- {
- NONE = 0,
- CONNECTED = 1,
- DISCONNECTED = 2
- }
-
- public class TestSuite
- {
- public static void Main(string[] args)
- {
- // TODO: config parser
-
- // TODO: load tests from addings
-
- // TODO: create base bot cloud for use in tests
-
- IConfig config = ParseConfig(args);
- if (config.Get("help") != null || config.Get("loginuri") == null)
- {
- Help();
- }
- else
- {
- // TODO: unused: int botcount = config.GetInt("botcount", 1);
-
- // BotManager bm = new BotManager();
-
- Utils.TestPass("Completed Startup");
- }
- }
-
- private static IConfig ParseConfig(String[] args)
- {
- //Set up our nifty config.. thanks to nini
- ArgvConfigSource cs = new ArgvConfigSource(args);
-
- // TODO: unused: 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(
- "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" +
- // TODO: unused: " -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"
- );
- }
- }
-}
diff --git a/OpenSim/TestSuite/PhysicsBot.cs b/OpenSim/TestSuite/PhysicsBot.cs
deleted file mode 100644
index fac42756a8..0000000000
--- a/OpenSim/TestSuite/PhysicsBot.cs
+++ /dev/null
@@ -1,196 +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 System.Timers;
-using OpenMetaverse;
-using Nini.Config;
-using OpenSim.Framework;
-using OpenSim.Framework.Console;
-using Timer=System.Timers.Timer;
-
-namespace OpenSim.TestSuite
-{
- 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(Environment.TickCount);// We do stuff randomly here
-
- //New instance of a SecondLife client
- public GridClient client = new GridClient();
-
- 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, 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
- {
- client.Self.Movement.AlwaysRun = false;
- }
-
- // 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++)
- {
- client.Self.Movement.AtPos = true;
- Thread.Sleep(somthing.Next(25, 75)); // Makes sure the bots keep walking for this time.
- }
- 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(1, 10)); // Apparently its better without it right now.
- }
-
- ///
- /// 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");
- }
-
- ///
- /// 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.LoginProgress += this.Network_LoginProgress;
- client.Network.SimConnected += this.Network_SimConnected;
- client.Network.Disconnected += 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 ElapsedEventHandler(m_action_Elapsed);
- m_action.Start();
- OnConnected(this, EventType.CONNECTED);
- client.Self.Jump(true);
- }
- }
- else
- {
- MainConsole.Instance.Output(firstname + " " + lastname + "Can't login: " + client.Network.LoginMessage);
- if (OnDisconnected != null)
- {
- OnDisconnected(this, EventType.DISCONNECTED);
- }
- }
- }
-
- 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)
- {
- if (OnDisconnected != null)
- {
- OnDisconnected(this, EventType.DISCONNECTED);
- }
- }
-
- 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/TestSuite/README.txt b/OpenSim/TestSuite/README.txt
deleted file mode 100644
index cdfa4a7840..0000000000
--- a/OpenSim/TestSuite/README.txt
+++ /dev/null
@@ -1,25 +0,0 @@
-OpenSim Test Suite
-------------------------------------------------------------
-
-The eventual goal of the OpenSim Test Suite is to provide a framework
-and a set of tests to do system level regression testing of OpenSim.
-In short:
-
-OpenSim Test Suite will have Test Modules (Mono Addins?) that will
-verify certain paths in the code. Some early modules may be (subject
-to change):
-
- * Login Tests
- - Attempt to Log in 1, 5, 20 bots.
- * Basic Walk Tests
- - Attempt to Log in and move about in well known tracks
- - Repeat with 5, 20 bots
- * Basic Construct Tests
- - Construct Simple Objects in World
- - Ensure bots can see other objects constructed
- * Basic Asset Tests
- - Construct Simple Objects in World with Textures
- - Pull Objects and Textures
-
-
-
\ No newline at end of file
diff --git a/OpenSim/TestSuite/Util.cs b/OpenSim/TestSuite/Util.cs
deleted file mode 100644
index e050c0709b..0000000000
--- a/OpenSim/TestSuite/Util.cs
+++ /dev/null
@@ -1,81 +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.TestSuite
-{
- public class Utils
- {
- enum Result
- {
- Fail = 0,
- Pass = 1,
- Skip = 3
- }
-
- private static String ResultToString(Result r)
- {
- if (r == Result.Pass)
- {
- return "PASS";
- }
- else if (r == Result.Fail)
- {
- return "FAIL";
- }
- else if (r == Result.Skip)
- {
- return "SKIP";
- }
- else
- {
- return "UNKNOWN";
- }
- }
-
- private static void TestResult(Result r, String msg)
- {
- Console.WriteLine("[{0}]: {1}", ResultToString(r), msg);
- }
-
- public static void TestFail(String msg)
- {
- TestResult(Result.Fail, msg);
- }
-
- public static void TestPass(String msg)
- {
- TestResult(Result.Pass, msg);
- }
-
- public static void TestSkip(String msg)
- {
- TestResult(Result.Skip, msg);
- }
- }
-}
diff --git a/OpenSim/Tools/pCampBot/BotManager.cs b/OpenSim/Tools/pCampBot/BotManager.cs
index 614b350011..b05bd6d958 100644
--- a/OpenSim/Tools/pCampBot/BotManager.cs
+++ b/OpenSim/Tools/pCampBot/BotManager.cs
@@ -49,17 +49,22 @@ 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;
- protected IConfig Previous_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;
@@ -81,16 +86,21 @@ 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, "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);
m_lBot = new List();
}
@@ -102,69 +112,63 @@ namespace pCampBot
/// The configuration for the bots to use
public void dobotStartup(int botcount, IConfig cs)
{
- Previous_config = cs;
- m_td = new Thread[botcount];
+ Config = cs;
+
+ 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, this, 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, BotManager bm, string firstName, string lastName, string password, string loginUri)
{
- PhysicsBot pb = new PhysicsBot(cs);
+ PhysicsBot pb = new PhysicsBot(bm, 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].IsBackground = true;
- m_td[pos].Start();
- m_lBot.Add(pb);
- }
+ lock (m_lBot)
+ 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;
+ Thread pbThread = new Thread(pb.startup);
+ pbThread.Name = pb.Name;
+ pbThread.IsBackground = true;
+ pbThread.Start();
}
///
@@ -172,19 +176,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");
+ 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();
+ m_log.Info("[" + callbot.FirstName + " " + callbot.LastName + "]: Disconnected");
numbots--;
- if (numbots >1)
+// m_log.InfoFormat("NUMBOTS {0}", numbots);
+ if (numbots <= 0)
Environment.Exit(0);
break;
}
@@ -195,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();
}
///
@@ -216,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)
{
@@ -223,17 +242,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 5d4af3144c..a8b24266a2 100644
--- a/OpenSim/Tools/pCampBot/PhysicsBot.cs
+++ b/OpenSim/Tools/pCampBot/PhysicsBot.cs
@@ -29,56 +29,85 @@ 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
{
- public delegate void AnEvent(PhysicsBot callbot, EventType someevent); // event delegate for bot events
- public IConfig startupConfig; // bot config, passed from BotManager
+ private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
- public string firstname;
- public string lastname;
- public string password;
- public string loginURI;
+ 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
+
+ ///
+ /// 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;
- 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
- //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(BotManager bm, string firstName, string lastName, string password, string loginUri)
{
- startupConfig = bsconfig;
+ FirstName = firstName;
+ LastName = lastName;
+ Name = string.Format("{0} {1}", FirstName, LastName);
+ Password = password;
+ LoginUri = loginUri;
+
+ BotManager = bm;
+ startupConfig = bm.Config;
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, ElapsedEventArgs e)
+ private void Action()
{
while (true)
{
@@ -95,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);
@@ -116,10 +145,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");
}
@@ -128,6 +153,9 @@ namespace pCampBot
///
public void shutdown()
{
+ if (m_actionThread != null)
+ m_actionThread.Abort();
+
client.Network.Logout();
}
@@ -136,7 +164,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;
@@ -155,32 +183,32 @@ 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 (client.Network.Login(FirstName, LastName, Password, "pCampBot", "Your name"))
{
- if (OnConnected != null)
+ IsConnected = true;
+
+ Thread.Sleep(somthing.Next(1000, 10000));
+ m_actionThread = new Thread(Action);
+ m_actionThread.Start();
+
+// OnConnected(this, EventType.CONNECTED);
+ if (wear == "save")
{
- 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);
- if (wear == "save")
- {
- client.Appearance.SetPreviousAppearance();
- SaveDefaultAppearance();
- }
- else if (wear != "no")
- {
- MakeDefaultAppearance(wear);
- }
- client.Self.Jump(true);
+ client.Appearance.SetPreviousAppearance();
+ SaveDefaultAppearance();
}
+ else if (wear != "no")
+ {
+ MakeDefaultAppearance(wear);
+ }
+ client.Self.Jump(true);
}
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 +218,7 @@ namespace pCampBot
public void SaveDefaultAppearance()
{
- saveDir = "MyAppearance/" + firstname + "_" + lastname;
+ saveDir = "MyAppearance/" + FirstName + "_" + LastName;
if (!Directory.Exists(saveDir))
{
Directory.CreateDirectory(saveDir);
@@ -216,7 +244,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);
}
@@ -366,8 +394,21 @@ namespace pCampBot
public void Network_OnDisconnected(object sender, DisconnectedEventArgs args)
{
- if (OnDisconnected != null)
+// 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);
}
}
@@ -382,39 +423,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)
- {
- if (prim.Textures.FaceTextures[i].TextureID != UUID.Zero)
- {
- client.Assets.RequestImage(prim.Textures.FaceTextures[i].TextureID, ImageType.Normal, Asset_TextureCallback_Texture);
- }
+ UUID textureID = prim.Textures.FaceTextures[i].TextureID;
+ if (textureID != null && textureID != UUID.Zero)
+ {
+ 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 (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)
+ public void Asset_ReceivedCallback(AssetDownload transfer, Asset asset)
{
- if (wear == "save")
- {
- SaveAsset((AssetWearable) asset);
- }
+ lock (BotManager.AssetsReceived)
+ BotManager.AssetsReceived[asset.AssetID] = true;
+
+// if (wear == "save")
+// {
+// SaveAsset((AssetWearable) asset);
+// }
}
public string[] readexcuses()
diff --git a/OpenSim/Tools/pCampBot/README.txt b/OpenSim/Tools/pCampBot/README.txt
index 7ecbde1ba9..c4fcf3393a 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 77110bf6b8..a69fbf03c9 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"
);
diff --git a/bin/OpenSimDefaults.ini b/bin/OpenSimDefaults.ini
index 3540a6e0da..e9d871717f 100644
--- a/bin/OpenSimDefaults.ini
+++ b/bin/OpenSimDefaults.ini
@@ -170,9 +170,6 @@
; Objects will always be considered for persistance in the next sweep if the first change occurred this number of seconds ago
MaximumTimeBeforePersistenceConsidered = 600
- ; Should avatars in neighbor sims see objects in this sim?
- see_into_this_sim_from_neighbor = true
-
; ##
; ## PHYSICS
; ##
diff --git a/bin/PumaCode.SvnDotNet.dll b/bin/PumaCode.SvnDotNet.dll
deleted file mode 100755
index ff91789f3d..0000000000
Binary files a/bin/PumaCode.SvnDotNet.dll and /dev/null differ
diff --git a/prebuild.xml b/prebuild.xml
index 49086ae368..a6f11c4114 100644
--- a/prebuild.xml
+++ b/prebuild.xml
@@ -2581,34 +2581,6 @@
-
-
-
-
- ../../bin/
-
-
-
-
- ../../bin/
-
-
-
- ../../bin/
-
-
-
-
-
-
-
-
-
-
-
-
-
-