Merge branch 'master' into presence-refactor

This brings presence-refactor up to master again
slimupdates
Melanie 2010-02-22 03:00:59 +00:00
commit 1f45e6c649
39 changed files with 405 additions and 5161 deletions

View File

@ -128,6 +128,7 @@ what it is today.
* YZh * YZh
* Zackary Geers aka Kunnis Basiat * Zackary Geers aka Kunnis Basiat
* Zha Ewry * Zha Ewry
* ziah
= LSL Devs = = LSL Devs =

View File

@ -524,7 +524,7 @@ namespace OpenSim.Data.Tests
} }
} }
[Test] //[Test]
public void T016_RandomSogWithSceneParts() public void T016_RandomSogWithSceneParts()
{ {
PropertyScrambler<SceneObjectPart> scrambler = PropertyScrambler<SceneObjectPart> scrambler =

View File

@ -69,7 +69,7 @@ namespace OpenSim.Framework
private static UUID HAIR_ASSET = new UUID("d342e6c0-b9d2-11dc-95ff-0800200c9a66"); private static UUID HAIR_ASSET = new UUID("d342e6c0-b9d2-11dc-95ff-0800200c9a66");
private static UUID HAIR_ITEM = new UUID("d342e6c1-b9d2-11dc-95ff-0800200c9a66"); private static UUID HAIR_ITEM = new UUID("d342e6c1-b9d2-11dc-95ff-0800200c9a66");
public readonly static int VISUALPARAM_COUNT = 218; public readonly static int VISUALPARAM_COUNT = 218;
protected UUID m_owner; protected UUID m_owner;
@ -361,7 +361,7 @@ namespace OpenSim.Framework
// This sets Visual Params with *less* weirder values then default. Instead of a ugly alien, it looks like a fat scientist // This sets Visual Params with *less* weirder values then default. Instead of a ugly alien, it looks like a fat scientist
SetDefaultParams(m_visualparams); SetDefaultParams(m_visualparams);
SetDefaultWearables(); SetDefaultWearables();
m_texture = GetDefaultTexture(); m_texture = GetDefaultTexture();
} }
public AvatarAppearance(UUID avatarID, AvatarWearable[] wearables, byte[] visualParams) public AvatarAppearance(UUID avatarID, AvatarWearable[] wearables, byte[] visualParams)

View File

@ -38,7 +38,7 @@ namespace OpenSim.Framework.Console
{ {
/// <summary> /// <summary>
/// A console that uses cursor control and color /// A console that uses cursor control and color
/// </summary> /// </summary>
public class LocalConsole : CommandConsole public class LocalConsole : CommandConsole
{ {
// private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); // private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
@ -100,8 +100,8 @@ namespace OpenSim.Framework.Console
private int SetCursorTop(int top) private int SetCursorTop(int top)
{ {
// From at least mono 2.4.2.3, window resizing can give mono an invalid row and column values. If we try // From at least mono 2.4.2.3, window resizing can give mono an invalid row and column values. If we try
// to set a cursor row position with a currently invalid column, mono will throw an exception. // to set a cursor row position with a currently invalid column, mono will throw an exception.
// Therefore, we need to make sure that the column position is valid first. // Therefore, we need to make sure that the column position is valid first.
int left = System.Console.CursorLeft; int left = System.Console.CursorLeft;
if (left < 0) if (left < 0)
@ -129,12 +129,12 @@ namespace OpenSim.Framework.Console
/// </param> /// </param>
/// <returns> /// <returns>
/// The new cursor column. /// The new cursor column.
/// </returns> /// </returns>
private int SetCursorLeft(int left) private int SetCursorLeft(int left)
{ {
// From at least mono 2.4.2.3, window resizing can give mono an invalid row and column values. If we try // From at least mono 2.4.2.3, window resizing can give mono an invalid row and column values. If we try
// to set a cursor column position with a currently invalid row, mono will throw an exception. // to set a cursor column position with a currently invalid row, mono will throw an exception.
// Therefore, we need to make sure that the row position is valid first. // Therefore, we need to make sure that the row position is valid first.
int top = System.Console.CursorTop; int top = System.Console.CursorTop;
if (top < 0) if (top < 0)
@ -183,7 +183,7 @@ namespace OpenSim.Framework.Console
System.Console.Write("{0}", prompt); System.Console.Write("{0}", prompt);
SetCursorTop(new_y); SetCursorTop(new_y);
SetCursorLeft(new_x); SetCursorLeft(new_x);
} }
} }

View File

@ -302,9 +302,9 @@ namespace OpenSim.Framework.Console
if (!UUID.TryParse(post["ID"].ToString(), out id)) if (!UUID.TryParse(post["ID"].ToString(), out id))
return reply; return reply;
lock(m_Connections) lock (m_Connections)
{ {
if(!m_Connections.ContainsKey(id)) if (!m_Connections.ContainsKey(id))
return reply; return reply;
} }

View File

@ -483,7 +483,6 @@ namespace OpenSim.Framework
else else
m_externalHostName = externalName; m_externalHostName = externalName;
m_regionType = config.GetString("RegionType", String.Empty); m_regionType = config.GetString("RegionType", String.Empty);
// Prim stuff // Prim stuff

View File

@ -589,11 +589,17 @@ namespace OpenSim.Framework
public static IPAddress GetLocalHost() public static IPAddress GetLocalHost()
{ {
string dnsAddress = "localhost"; IPAddress[] iplist = GetLocalHosts();
IPAddress[] hosts = Dns.GetHostEntry(dnsAddress).AddressList; if (iplist.Length == 0) // No accessible external interfaces
{
IPAddress[] loopback = Dns.GetHostAddresses("localhost");
IPAddress localhost = loopback[0];
foreach (IPAddress host in hosts) return localhost;
}
foreach (IPAddress host in iplist)
{ {
if (!IPAddress.IsLoopback(host) && host.AddressFamily == AddressFamily.InterNetwork) if (!IPAddress.IsLoopback(host) && host.AddressFamily == AddressFamily.InterNetwork)
{ {
@ -601,15 +607,15 @@ namespace OpenSim.Framework
} }
} }
if (hosts.Length > 0) if (iplist.Length > 0)
{ {
foreach (IPAddress host in hosts) foreach (IPAddress host in iplist)
{ {
if (host.AddressFamily == AddressFamily.InterNetwork) if (host.AddressFamily == AddressFamily.InterNetwork)
return host; return host;
} }
// Well all else failed... // Well all else failed...
return hosts[0]; return iplist[0];
} }
return null; return null;

View File

@ -194,6 +194,8 @@ namespace OpenSim
PrintFileToConsole("startuplogo.txt"); PrintFileToConsole("startuplogo.txt");
m_log.InfoFormat("[NETWORK]: Using {0} as SYSTEMIP", Util.GetLocalHost().ToString());
// For now, start at the 'root' level by default // For now, start at the 'root' level by default
if (m_sceneManager.Scenes.Count == 1) // If there is only one region, select it if (m_sceneManager.Scenes.Count == 1) // If there is only one region, select it
ChangeSelectedRegion("region", ChangeSelectedRegion("region",
@ -417,7 +419,7 @@ namespace OpenSim
// kick client... // kick client...
if (alert != null) if (alert != null)
presence.ControllingClient.Kick(alert); presence.ControllingClient.Kick(alert);
else else
presence.ControllingClient.Kick("\nThe OpenSim manager kicked you out.\n"); presence.ControllingClient.Kick("\nThe OpenSim manager kicked you out.\n");
// ...and close on our side // ...and close on our side
@ -624,7 +626,6 @@ namespace OpenSim
} }
} }
/// <summary> /// <summary>
/// Load, Unload, and list Region modules in use /// Load, Unload, and list Region modules in use
/// </summary> /// </summary>
@ -924,7 +925,6 @@ namespace OpenSim
scene.RegionInfo.RegionLocX, scene.RegionInfo.RegionLocX,
scene.RegionInfo.RegionLocY, scene.RegionInfo.RegionLocY,
scene.RegionInfo.InternalEndPoint.Port)); scene.RegionInfo.InternalEndPoint.Port));
}); });
break; break;

File diff suppressed because it is too large Load Diff

View File

@ -330,7 +330,7 @@ namespace OpenSim.Region.CoreModules.Asset
//m_log.DebugFormat("[XXX] name = {0} (this module's name: {1}", name, Name); //m_log.DebugFormat("[XXX] name = {0} (this module's name: {1}", name, Name);
if (name != Name) if (name != Name)
return; return;
long maxSize = DefaultMaxSize; long maxSize = DefaultMaxSize;
int maxCount = DefaultMaxCount; int maxCount = DefaultMaxCount;

View File

@ -69,7 +69,7 @@ namespace Flotsam.RegionModules.AssetCache
private readonly List<char> m_InvalidChars = new List<char>(); private readonly List<char> m_InvalidChars = new List<char>();
private int m_LogLevel = 1; private int m_LogLevel = 0;
private ulong m_HitRateDisplay = 1; // How often to display hit statistics, given in requests private ulong m_HitRateDisplay = 1; // How often to display hit statistics, given in requests
private static ulong m_Requests; private static ulong m_Requests;
@ -156,7 +156,7 @@ namespace Flotsam.RegionModules.AssetCache
m_WaitOnInprogressTimeout = assetConfig.GetInt("WaitOnInprogressTimeout", 3000); m_WaitOnInprogressTimeout = assetConfig.GetInt("WaitOnInprogressTimeout", 3000);
#endif #endif
m_LogLevel = assetConfig.GetInt("LogLevel", 1); m_LogLevel = assetConfig.GetInt("LogLevel", 0);
m_HitRateDisplay = (ulong)assetConfig.GetInt("HitRateDisplay", 1000); m_HitRateDisplay = (ulong)assetConfig.GetInt("HitRateDisplay", 1000);
m_FileExpiration = TimeSpan.FromHours(assetConfig.GetDouble("FileCacheTimeout", m_DefaultFileExpiration)); m_FileExpiration = TimeSpan.FromHours(assetConfig.GetDouble("FileCacheTimeout", m_DefaultFileExpiration));

View File

@ -159,7 +159,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Combat.CombatModule
avatar.Invulnerable = true; avatar.Invulnerable = true;
} }
} }
catch (Exception ex) catch (Exception)
{ {
} }
} }

View File

@ -131,7 +131,20 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver
{ {
if (CheckPresence(userInfo.PrincipalID)) if (CheckPresence(userInfo.PrincipalID))
{ {
new InventoryArchiveWriteRequest(id, this, m_aScene, userInfo, invPath, saveStream).Execute(); try
{
new InventoryArchiveWriteRequest(id, this, m_aScene, userInfo, invPath, saveStream).Execute();
}
catch (EntryPointNotFoundException e)
{
m_log.ErrorFormat(
"[ARCHIVER]: Mismatch between Mono and zlib1g library version when trying to create compression stream."
+ "If you've manually installed Mono, have you appropriately updated zlib1g as well?");
m_log.Error(e);
return false;
}
return true; return true;
} }
else else
@ -156,7 +169,20 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver
{ {
if (CheckPresence(userInfo.PrincipalID)) if (CheckPresence(userInfo.PrincipalID))
{ {
new InventoryArchiveWriteRequest(id, this, m_aScene, userInfo, invPath, savePath).Execute(); try
{
new InventoryArchiveWriteRequest(id, this, m_aScene, userInfo, invPath, savePath).Execute();
}
catch (EntryPointNotFoundException e)
{
m_log.ErrorFormat(
"[ARCHIVER]: Mismatch between Mono and zlib1g library version when trying to create compression stream."
+ "If you've manually installed Mono, have you appropriately updated zlib1g as well?");
m_log.Error(e);
return false;
}
return true; return true;
} }
else else
@ -181,8 +207,22 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver
{ {
if (CheckPresence(userInfo.PrincipalID)) if (CheckPresence(userInfo.PrincipalID))
{ {
InventoryArchiveReadRequest request = InventoryArchiveReadRequest request;
new InventoryArchiveReadRequest(m_aScene, userInfo, invPath, loadStream);
try
{
request = new InventoryArchiveReadRequest(m_aScene, userInfo, invPath, loadStream);
}
catch (EntryPointNotFoundException e)
{
m_log.ErrorFormat(
"[ARCHIVER]: Mismatch between Mono and zlib1g library version when trying to create compression stream."
+ "If you've manually installed Mono, have you appropriately updated zlib1g as well?");
m_log.Error(e);
return false;
}
UpdateClientWithLoadedNodes(userInfo, request.Execute()); UpdateClientWithLoadedNodes(userInfo, request.Execute());
return true; return true;
@ -209,8 +249,22 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver
{ {
if (CheckPresence(userInfo.PrincipalID)) if (CheckPresence(userInfo.PrincipalID))
{ {
InventoryArchiveReadRequest request = InventoryArchiveReadRequest request;
new InventoryArchiveReadRequest(m_aScene, userInfo, invPath, loadPath);
try
{
request = new InventoryArchiveReadRequest(m_aScene, userInfo, invPath, loadPath);
}
catch (EntryPointNotFoundException e)
{
m_log.ErrorFormat(
"[ARCHIVER]: Mismatch between Mono and zlib1g library version when trying to create compression stream."
+ "If you've manually installed Mono, have you appropriately updated zlib1g as well?");
m_log.Error(e);
return false;
}
UpdateClientWithLoadedNodes(userInfo, request.Execute()); UpdateClientWithLoadedNodes(userInfo, request.Execute());
return true; return true;

View File

@ -224,7 +224,7 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Asset
m_Cache.Cache(a); m_Cache.Cache(a);
// if (null == a) // if (null == a)
// m_log.WarnFormat("[LOCAL ASSET SERVICES CONNECTOR]: Could not asynchronously find asset with id {0}", id); // m_log.WarnFormat("[LOCAL ASSET SERVICES CONNECTOR]: Could not asynchronously find asset with id {0}", id);
Util.FireAndForget(delegate { handler(assetID, s, a); }); Util.FireAndForget(delegate { handler(assetID, s, a); });
}); });

View File

@ -108,7 +108,7 @@ namespace OpenSim.Region.CoreModules.World
{ {
foreach (Scene s in m_SceneList) foreach (Scene s in m_SceneList)
{ {
if(!ProcessCommand(s, cmd)) if (!ProcessCommand(s, cmd))
break; break;
} }
} }

View File

@ -74,7 +74,19 @@ namespace OpenSim.Region.CoreModules.World.Archiver
public ArchiveReadRequest(Scene scene, string loadPath, bool merge, Guid requestId) public ArchiveReadRequest(Scene scene, string loadPath, bool merge, Guid requestId)
{ {
m_scene = scene; m_scene = scene;
m_loadStream = new GZipStream(GetStream(loadPath), CompressionMode.Decompress);
try
{
m_loadStream = new GZipStream(GetStream(loadPath), CompressionMode.Decompress);
}
catch (EntryPointNotFoundException e)
{
m_log.ErrorFormat(
"[ARCHIVER]: Mismatch between Mono and zlib1g library version when trying to create compression stream."
+ "If you've manually installed Mono, have you appropriately updated zlib1g as well?");
m_log.Error(e);
}
m_errorMessage = String.Empty; m_errorMessage = String.Empty;
m_merge = merge; m_merge = merge;
m_requestId = requestId; m_requestId = requestId;

View File

@ -65,7 +65,19 @@ namespace OpenSim.Region.CoreModules.World.Archiver
public ArchiveWriteRequestPreparation(Scene scene, string savePath, Guid requestId) public ArchiveWriteRequestPreparation(Scene scene, string savePath, Guid requestId)
{ {
m_scene = scene; m_scene = scene;
m_saveStream = new GZipStream(new FileStream(savePath, FileMode.Create), CompressionMode.Compress);
try
{
m_saveStream = new GZipStream(new FileStream(savePath, FileMode.Create), CompressionMode.Compress);
}
catch (EntryPointNotFoundException e)
{
m_log.ErrorFormat(
"[ARCHIVER]: Mismatch between Mono and zlib1g library version when trying to create compression stream."
+ "If you've manually installed Mono, have you appropriately updated zlib1g as well?");
m_log.Error(e);
}
m_requestId = requestId; m_requestId = requestId;
} }

View File

@ -99,7 +99,7 @@ namespace OpenSim.Region.CoreModules.World.Archiver.Tests
Quaternion rotationOffset = new Quaternion(20, 30, 40, 50); Quaternion rotationOffset = new Quaternion(20, 30, 40, 50);
Vector3 offsetPosition = new Vector3(5, 10, 15); Vector3 offsetPosition = new Vector3(5, 10, 15);
return new SceneObjectPart(ownerId, shape, groupPosition, rotationOffset, offsetPosition) { Name = partName }; return new SceneObjectPart(ownerId, shape, groupPosition, rotationOffset, offsetPosition) { Name = partName };
} }
protected SceneObjectPart CreateSceneObjectPart2() protected SceneObjectPart CreateSceneObjectPart2()
@ -112,7 +112,7 @@ namespace OpenSim.Region.CoreModules.World.Archiver.Tests
Vector3 offsetPosition = new Vector3(20, 25, 30); Vector3 offsetPosition = new Vector3(20, 25, 30);
return new SceneObjectPart(ownerId, shape, groupPosition, rotationOffset, offsetPosition) { Name = partName }; return new SceneObjectPart(ownerId, shape, groupPosition, rotationOffset, offsetPosition) { Name = partName };
} }
/// <summary> /// <summary>
/// Test saving a V0.2 OpenSim Region Archive. /// Test saving a V0.2 OpenSim Region Archive.
@ -231,7 +231,7 @@ namespace OpenSim.Region.CoreModules.World.Archiver.Tests
foreach (string name in names) foreach (string name in names)
{ {
if (name.EndsWith(".Resources.test-sound.wav")) if (name.EndsWith(".Resources.test-sound.wav"))
soundDataResourceName = name; soundDataResourceName = name;
} }
Assert.That(soundDataResourceName, Is.Not.Null); Assert.That(soundDataResourceName, Is.Not.Null);
@ -259,7 +259,7 @@ namespace OpenSim.Region.CoreModules.World.Archiver.Tests
= new TaskInventoryItem { AssetID = soundUuid, ItemID = soundItemUuid, Name = soundItemName }; = new TaskInventoryItem { AssetID = soundUuid, ItemID = soundItemUuid, Name = soundItemName };
part1.Inventory.AddInventoryItem(item1, true); part1.Inventory.AddInventoryItem(item1, true);
} }
} }
m_scene.AddNewSceneObject(object1, false); m_scene.AddNewSceneObject(object1, false);
@ -306,15 +306,15 @@ namespace OpenSim.Region.CoreModules.World.Archiver.Tests
/// Test loading the region settings of a V0.2 OpenSim Region Archive. /// Test loading the region settings of a V0.2 OpenSim Region Archive.
/// </summary> /// </summary>
[Test] [Test]
public void TestLoadOarV0_2RegionSettings() public void TestLoadOarV0_2RegionSettings()
{ {
TestHelper.InMethod(); TestHelper.InMethod();
//log4net.Config.XmlConfigurator.Configure(); //log4net.Config.XmlConfigurator.Configure();
MemoryStream archiveWriteStream = new MemoryStream(); MemoryStream archiveWriteStream = new MemoryStream();
TarArchiveWriter tar = new TarArchiveWriter(archiveWriteStream); TarArchiveWriter tar = new TarArchiveWriter(archiveWriteStream);
tar.WriteDir(ArchiveConstants.TERRAINS_PATH); tar.WriteDir(ArchiveConstants.TERRAINS_PATH);
tar.WriteFile(ArchiveConstants.CONTROL_FILE_PATH, ArchiveWriteRequestExecution.Create0p2ControlFile()); tar.WriteFile(ArchiveConstants.CONTROL_FILE_PATH, ArchiveWriteRequestExecution.Create0p2ControlFile());
RegionSettings rs = new RegionSettings(); RegionSettings rs = new RegionSettings();
@ -329,11 +329,11 @@ namespace OpenSim.Region.CoreModules.World.Archiver.Tests
rs.DisablePhysics = true; rs.DisablePhysics = true;
rs.DisableScripts = true; rs.DisableScripts = true;
rs.Elevation1NW = 15.9; rs.Elevation1NW = 15.9;
rs.Elevation1NE = 45.3; rs.Elevation1NE = 45.3;
rs.Elevation1SE = 49; rs.Elevation1SE = 49;
rs.Elevation1SW = 1.9; rs.Elevation1SW = 1.9;
rs.Elevation2NW = 4.5; rs.Elevation2NW = 4.5;
rs.Elevation2NE = 19.2; rs.Elevation2NE = 19.2;
rs.Elevation2SE = 9.2; rs.Elevation2SE = 9.2;
rs.Elevation2SW = 2.1; rs.Elevation2SW = 2.1;
rs.FixedSun = true; rs.FixedSun = true;
@ -411,7 +411,7 @@ namespace OpenSim.Region.CoreModules.World.Archiver.Tests
// Quaternion part2RotationOffset = new Quaternion(60, 70, 80, 90); // Quaternion part2RotationOffset = new Quaternion(60, 70, 80, 90);
// Vector3 part2OffsetPosition = new Vector3(20, 25, 30); // Vector3 part2OffsetPosition = new Vector3(20, 25, 30);
SceneObjectPart part2 = CreateSceneObjectPart2(); SceneObjectPart part2 = CreateSceneObjectPart2();
// Create an oar file that we can use for the merge // Create an oar file that we can use for the merge
{ {
@ -420,9 +420,9 @@ namespace OpenSim.Region.CoreModules.World.Archiver.Tests
TerrainModule terrainModule = new TerrainModule(); TerrainModule terrainModule = new TerrainModule();
Scene scene = SceneSetupHelpers.SetupScene(); Scene scene = SceneSetupHelpers.SetupScene();
SceneSetupHelpers.SetupSceneModules(scene, archiverModule, serialiserModule, terrainModule); SceneSetupHelpers.SetupSceneModules(scene, archiverModule, serialiserModule, terrainModule);
m_scene.AddNewSceneObject(new SceneObjectGroup(part2), false); m_scene.AddNewSceneObject(new SceneObjectGroup(part2), false);
// Write out this scene // Write out this scene
scene.EventManager.OnOarFileSaved += SaveCompleted; scene.EventManager.OnOarFileSaved += SaveCompleted;

View File

@ -65,7 +65,7 @@ namespace OpenSim.Region.Framework.Interfaces
/// The UUID of the texture updater, not the texture UUID. If you need the texture UUID then you will need /// The UUID of the texture updater, not the texture UUID. If you need the texture UUID then you will need
/// to obtain it directly from the SceneObjectPart. For instance, if ALL_SIDES is set then this texture /// to obtain it directly from the SceneObjectPart. For instance, if ALL_SIDES is set then this texture
/// can be obtained as SceneObjectPart.Shape.Textures.DefaultTexture.TextureID /// can be obtained as SceneObjectPart.Shape.Textures.DefaultTexture.TextureID
/// </returns> /// </returns>
UUID AddDynamicTextureData(UUID simID, UUID primID, string contentType, string data, string extraParams, UUID AddDynamicTextureData(UUID simID, UUID primID, string contentType, string data, string extraParams,
int updateTimer, bool SetBlending, byte AlphaValue); int updateTimer, bool SetBlending, byte AlphaValue);

View File

@ -150,7 +150,7 @@ namespace OpenSim.Region.Framework.Interfaces
/// <returns> /// <returns>
/// A list of inventory items with that name. /// A list of inventory items with that name.
/// If no inventory item has that name then an empty list is returned. /// If no inventory item has that name then an empty list is returned.
/// </returns> /// </returns>
IList<TaskInventoryItem> GetInventoryItems(string name); IList<TaskInventoryItem> GetInventoryItems(string name);
/// <summary> /// <summary>

View File

@ -62,7 +62,7 @@ namespace OpenSim.Region.Framework.Interfaces
/// <param name="name">name to filter on</param> /// <param name="name">name to filter on</param>
/// <param name="id">key to filter on (user given, could be totally faked)</param> /// <param name="id">key to filter on (user given, could be totally faked)</param>
/// <param name="msg">msg to filter on</param> /// <param name="msg">msg to filter on</param>
/// <returns>number of the scripts handle</returns> /// <returns>number of the scripts handle</returns>
int Listen(uint LocalID, UUID itemID, UUID hostID, int channel, string name, UUID id, string msg); int Listen(uint LocalID, UUID itemID, UUID hostID, int channel, string name, UUID id, string msg);
/// <summary> /// <summary>
@ -77,19 +77,19 @@ namespace OpenSim.Region.Framework.Interfaces
/// <param name="channel">channel to sent on</param> /// <param name="channel">channel to sent on</param>
/// <param name="name">name of sender (object or avatar)</param> /// <param name="name">name of sender (object or avatar)</param>
/// <param name="id">key of sender (object or avatar)</param> /// <param name="id">key of sender (object or avatar)</param>
/// <param name="msg">msg to sent</param> /// <param name="msg">msg to sent</param>
void DeliverMessage(ChatTypeEnum type, int channel, string name, UUID id, string msg); void DeliverMessage(ChatTypeEnum type, int channel, string name, UUID id, string msg);
/// <summary> /// <summary>
/// Are there any listen events ready to be dispatched? /// Are there any listen events ready to be dispatched?
/// </summary> /// </summary>
/// <returns>boolean indication</returns> /// <returns>boolean indication</returns>
bool HasMessages(); bool HasMessages();
/// <summary> /// <summary>
/// Pop the first availlable listen event from the queue /// Pop the first availlable listen event from the queue
/// </summary> /// </summary>
/// <returns>ListenerInfo with filter filled in</returns> /// <returns>ListenerInfo with filter filled in</returns>
IWorldCommListenerInfo GetNextMessage(); IWorldCommListenerInfo GetNextMessage();
void ListenControl(UUID itemID, int handle, int active); void ListenControl(UUID itemID, int handle, int active);

View File

@ -209,7 +209,7 @@ namespace OpenSim.Region.Framework.Scenes
/// Triggered when an object or attachment enters a scene /// Triggered when an object or attachment enters a scene
/// </summary> /// </summary>
public event OnIncomingSceneObjectDelegate OnIncomingSceneObject; public event OnIncomingSceneObjectDelegate OnIncomingSceneObject;
public delegate void OnIncomingSceneObjectDelegate(SceneObjectGroup so); public delegate void OnIncomingSceneObjectDelegate(SceneObjectGroup so);
public delegate void NewInventoryItemUploadComplete(UUID avatarID, UUID assetID, string name, int userlevel); public delegate void NewInventoryItemUploadComplete(UUID avatarID, UUID assetID, string name, int userlevel);
@ -413,7 +413,7 @@ namespace OpenSim.Region.Framework.Scenes
} }
} }
} }
} }
public void TriggerGetScriptRunning(IClientAPI controllingClient, UUID objectID, UUID itemID) public void TriggerGetScriptRunning(IClientAPI controllingClient, UUID objectID, UUID itemID)
{ {
@ -433,7 +433,7 @@ namespace OpenSim.Region.Framework.Scenes
e.Message, e.StackTrace); e.Message, e.StackTrace);
} }
} }
} }
} }
public void TriggerOnScriptChangedEvent(uint localID, uint change) public void TriggerOnScriptChangedEvent(uint localID, uint change)
@ -454,7 +454,7 @@ namespace OpenSim.Region.Framework.Scenes
e.Message, e.StackTrace); e.Message, e.StackTrace);
} }
} }
} }
} }
public void TriggerOnClientMovement(ScenePresence avatar) public void TriggerOnClientMovement(ScenePresence avatar)
@ -475,7 +475,7 @@ namespace OpenSim.Region.Framework.Scenes
e.Message, e.StackTrace); e.Message, e.StackTrace);
} }
} }
} }
} }
public void TriggerPermissionError(UUID user, string reason) public void TriggerPermissionError(UUID user, string reason)
@ -496,7 +496,7 @@ namespace OpenSim.Region.Framework.Scenes
e.Message, e.StackTrace); e.Message, e.StackTrace);
} }
} }
} }
} }
public void TriggerOnPluginConsole(string[] args) public void TriggerOnPluginConsole(string[] args)
@ -517,7 +517,7 @@ namespace OpenSim.Region.Framework.Scenes
e.Message, e.StackTrace); e.Message, e.StackTrace);
} }
} }
} }
} }
public void TriggerOnFrame() public void TriggerOnFrame()
@ -538,11 +538,11 @@ namespace OpenSim.Region.Framework.Scenes
e.Message, e.StackTrace); e.Message, e.StackTrace);
} }
} }
} }
} }
public void TriggerOnNewClient(IClientAPI client) public void TriggerOnNewClient(IClientAPI client)
{ {
OnNewClientDelegate handlerNewClient = OnNewClient; OnNewClientDelegate handlerNewClient = OnNewClient;
if (handlerNewClient != null) if (handlerNewClient != null)
{ {
@ -559,10 +559,10 @@ namespace OpenSim.Region.Framework.Scenes
e.Message, e.StackTrace); e.Message, e.StackTrace);
} }
} }
} }
if (client is IClientCore) if (client is IClientCore)
{ {
OnClientConnectCoreDelegate handlerClientConnect = OnClientConnect; OnClientConnectCoreDelegate handlerClientConnect = OnClientConnect;
if (handlerClientConnect != null) if (handlerClientConnect != null)
{ {
@ -579,7 +579,7 @@ namespace OpenSim.Region.Framework.Scenes
e.Message, e.StackTrace); e.Message, e.StackTrace);
} }
} }
} }
} }
} }
@ -601,11 +601,11 @@ namespace OpenSim.Region.Framework.Scenes
e.Message, e.StackTrace); e.Message, e.StackTrace);
} }
} }
} }
} }
public void TriggerOnRemovePresence(UUID agentId) public void TriggerOnRemovePresence(UUID agentId)
{ {
OnRemovePresenceDelegate handlerRemovePresence = OnRemovePresence; OnRemovePresenceDelegate handlerRemovePresence = OnRemovePresence;
if (handlerRemovePresence != null) if (handlerRemovePresence != null)
{ {
@ -622,11 +622,11 @@ namespace OpenSim.Region.Framework.Scenes
e.Message, e.StackTrace); e.Message, e.StackTrace);
} }
} }
} }
} }
public void TriggerOnBackup(IRegionDataStore dstore) public void TriggerOnBackup(IRegionDataStore dstore)
{ {
OnBackupDelegate handlerOnAttach = OnBackup; OnBackupDelegate handlerOnAttach = OnBackup;
if (handlerOnAttach != null) if (handlerOnAttach != null)
{ {
@ -643,7 +643,7 @@ namespace OpenSim.Region.Framework.Scenes
e.Message, e.StackTrace); e.Message, e.StackTrace);
} }
} }
} }
} }
public void TriggerParcelPrimCountUpdate() public void TriggerParcelPrimCountUpdate()
@ -664,7 +664,7 @@ namespace OpenSim.Region.Framework.Scenes
e.Message, e.StackTrace); e.Message, e.StackTrace);
} }
} }
} }
} }
public void TriggerMoneyTransfer(Object sender, MoneyTransferArgs args) public void TriggerMoneyTransfer(Object sender, MoneyTransferArgs args)
@ -685,7 +685,7 @@ namespace OpenSim.Region.Framework.Scenes
e.Message, e.StackTrace); e.Message, e.StackTrace);
} }
} }
} }
} }
public void TriggerTerrainTick() public void TriggerTerrainTick()
@ -706,7 +706,7 @@ namespace OpenSim.Region.Framework.Scenes
e.Message, e.StackTrace); e.Message, e.StackTrace);
} }
} }
} }
} }
public void TriggerParcelPrimCountAdd(SceneObjectGroup obj) public void TriggerParcelPrimCountAdd(SceneObjectGroup obj)
@ -727,7 +727,7 @@ namespace OpenSim.Region.Framework.Scenes
e.Message, e.StackTrace); e.Message, e.StackTrace);
} }
} }
} }
} }
public void TriggerObjectBeingRemovedFromScene(SceneObjectGroup obj) public void TriggerObjectBeingRemovedFromScene(SceneObjectGroup obj)
@ -748,11 +748,11 @@ namespace OpenSim.Region.Framework.Scenes
e.Message, e.StackTrace); e.Message, e.StackTrace);
} }
} }
} }
} }
public void TriggerShutdown() public void TriggerShutdown()
{ {
OnShutdownDelegate handlerShutdown = OnShutdown; OnShutdownDelegate handlerShutdown = OnShutdown;
if (handlerShutdown != null) if (handlerShutdown != null)
{ {
@ -769,11 +769,11 @@ namespace OpenSim.Region.Framework.Scenes
e.Message, e.StackTrace); e.Message, e.StackTrace);
} }
} }
} }
} }
public void TriggerObjectGrab(uint localID, uint originalID, Vector3 offsetPos, IClientAPI remoteClient, SurfaceTouchEventArgs surfaceArgs) public void TriggerObjectGrab(uint localID, uint originalID, Vector3 offsetPos, IClientAPI remoteClient, SurfaceTouchEventArgs surfaceArgs)
{ {
ObjectGrabDelegate handlerObjectGrab = OnObjectGrab; ObjectGrabDelegate handlerObjectGrab = OnObjectGrab;
if (handlerObjectGrab != null) if (handlerObjectGrab != null)
{ {
@ -790,11 +790,11 @@ namespace OpenSim.Region.Framework.Scenes
e.Message, e.StackTrace); e.Message, e.StackTrace);
} }
} }
} }
} }
public void TriggerObjectGrabbing(uint localID, uint originalID, Vector3 offsetPos, IClientAPI remoteClient, SurfaceTouchEventArgs surfaceArgs) public void TriggerObjectGrabbing(uint localID, uint originalID, Vector3 offsetPos, IClientAPI remoteClient, SurfaceTouchEventArgs surfaceArgs)
{ {
ObjectGrabDelegate handlerObjectGrabbing = OnObjectGrabbing; ObjectGrabDelegate handlerObjectGrabbing = OnObjectGrabbing;
if (handlerObjectGrabbing != null) if (handlerObjectGrabbing != null)
{ {
@ -811,11 +811,11 @@ namespace OpenSim.Region.Framework.Scenes
e.Message, e.StackTrace); e.Message, e.StackTrace);
} }
} }
} }
} }
public void TriggerObjectDeGrab(uint localID, uint originalID, IClientAPI remoteClient, SurfaceTouchEventArgs surfaceArgs) public void TriggerObjectDeGrab(uint localID, uint originalID, IClientAPI remoteClient, SurfaceTouchEventArgs surfaceArgs)
{ {
ObjectDeGrabDelegate handlerObjectDeGrab = OnObjectDeGrab; ObjectDeGrabDelegate handlerObjectDeGrab = OnObjectDeGrab;
if (handlerObjectDeGrab != null) if (handlerObjectDeGrab != null)
{ {
@ -832,11 +832,11 @@ namespace OpenSim.Region.Framework.Scenes
e.Message, e.StackTrace); e.Message, e.StackTrace);
} }
} }
} }
} }
public void TriggerScriptReset(uint localID, UUID itemID) public void TriggerScriptReset(uint localID, UUID itemID)
{ {
ScriptResetDelegate handlerScriptReset = OnScriptReset; ScriptResetDelegate handlerScriptReset = OnScriptReset;
if (handlerScriptReset != null) if (handlerScriptReset != null)
{ {
@ -853,11 +853,11 @@ namespace OpenSim.Region.Framework.Scenes
e.Message, e.StackTrace); e.Message, e.StackTrace);
} }
} }
} }
} }
public void TriggerRezScript(uint localID, UUID itemID, string script, int startParam, bool postOnRez, string engine, int stateSource) public void TriggerRezScript(uint localID, UUID itemID, string script, int startParam, bool postOnRez, string engine, int stateSource)
{ {
NewRezScript handlerRezScript = OnRezScript; NewRezScript handlerRezScript = OnRezScript;
if (handlerRezScript != null) if (handlerRezScript != null)
{ {
@ -874,7 +874,7 @@ namespace OpenSim.Region.Framework.Scenes
e.Message, e.StackTrace); e.Message, e.StackTrace);
} }
} }
} }
} }
public void TriggerStartScript(uint localID, UUID itemID) public void TriggerStartScript(uint localID, UUID itemID)
@ -895,7 +895,7 @@ namespace OpenSim.Region.Framework.Scenes
e.Message, e.StackTrace); e.Message, e.StackTrace);
} }
} }
} }
} }
public void TriggerStopScript(uint localID, UUID itemID) public void TriggerStopScript(uint localID, UUID itemID)
@ -916,11 +916,11 @@ namespace OpenSim.Region.Framework.Scenes
e.Message, e.StackTrace); e.Message, e.StackTrace);
} }
} }
} }
} }
public void TriggerRemoveScript(uint localID, UUID itemID) public void TriggerRemoveScript(uint localID, UUID itemID)
{ {
RemoveScript handlerRemoveScript = OnRemoveScript; RemoveScript handlerRemoveScript = OnRemoveScript;
if (handlerRemoveScript != null) if (handlerRemoveScript != null)
{ {
@ -937,7 +937,7 @@ namespace OpenSim.Region.Framework.Scenes
e.Message, e.StackTrace); e.Message, e.StackTrace);
} }
} }
} }
} }
public bool TriggerGroupMove(UUID groupID, Vector3 delta) public bool TriggerGroupMove(UUID groupID, Vector3 delta)
@ -1036,7 +1036,7 @@ namespace OpenSim.Region.Framework.Scenes
e.Message, e.StackTrace); e.Message, e.StackTrace);
} }
} }
} }
} }
public void TriggerLandObjectAdded(ILandObject newParcel) public void TriggerLandObjectAdded(ILandObject newParcel)
@ -1057,7 +1057,7 @@ namespace OpenSim.Region.Framework.Scenes
e.Message, e.StackTrace); e.Message, e.StackTrace);
} }
} }
} }
} }
public void TriggerLandObjectRemoved(UUID globalID) public void TriggerLandObjectRemoved(UUID globalID)
@ -1078,7 +1078,7 @@ namespace OpenSim.Region.Framework.Scenes
e.Message, e.StackTrace); e.Message, e.StackTrace);
} }
} }
} }
} }
public void TriggerLandObjectUpdated(uint localParcelID, ILandObject newParcel) public void TriggerLandObjectUpdated(uint localParcelID, ILandObject newParcel)
@ -1104,7 +1104,7 @@ namespace OpenSim.Region.Framework.Scenes
e.Message, e.StackTrace); e.Message, e.StackTrace);
} }
} }
} }
} }
public void TriggerIncomingInstantMessage(GridInstantMessage message) public void TriggerIncomingInstantMessage(GridInstantMessage message)
@ -1125,7 +1125,7 @@ namespace OpenSim.Region.Framework.Scenes
e.Message, e.StackTrace); e.Message, e.StackTrace);
} }
} }
} }
} }
public void TriggerUnhandledInstantMessage(GridInstantMessage message) public void TriggerUnhandledInstantMessage(GridInstantMessage message)
@ -1146,7 +1146,7 @@ namespace OpenSim.Region.Framework.Scenes
e.Message, e.StackTrace); e.Message, e.StackTrace);
} }
} }
} }
} }
public void TriggerClientClosed(UUID ClientID, Scene scene) public void TriggerClientClosed(UUID ClientID, Scene scene)
@ -1167,7 +1167,7 @@ namespace OpenSim.Region.Framework.Scenes
e.Message, e.StackTrace); e.Message, e.StackTrace);
} }
} }
} }
} }
public void TriggerOnMakeChildAgent(ScenePresence presence) public void TriggerOnMakeChildAgent(ScenePresence presence)
@ -1188,7 +1188,7 @@ namespace OpenSim.Region.Framework.Scenes
e.Message, e.StackTrace); e.Message, e.StackTrace);
} }
} }
} }
} }
public void TriggerOnMakeRootAgent(ScenePresence presence) public void TriggerOnMakeRootAgent(ScenePresence presence)
@ -1209,7 +1209,7 @@ namespace OpenSim.Region.Framework.Scenes
e.Message, e.StackTrace); e.Message, e.StackTrace);
} }
} }
} }
} }
public void TriggerOnIncomingSceneObject(SceneObjectGroup so) public void TriggerOnIncomingSceneObject(SceneObjectGroup so)
@ -1229,12 +1229,12 @@ namespace OpenSim.Region.Framework.Scenes
"[EVENT MANAGER]: Delegate for TriggerOnIncomingSceneObject failed - continuing. {0} {1}", "[EVENT MANAGER]: Delegate for TriggerOnIncomingSceneObject failed - continuing. {0} {1}",
e.Message, e.StackTrace); e.Message, e.StackTrace);
} }
} }
} }
} }
public void TriggerOnRegisterCaps(UUID agentID, Caps caps) public void TriggerOnRegisterCaps(UUID agentID, Caps caps)
{ {
RegisterCapsEvent handlerRegisterCaps = OnRegisterCaps; RegisterCapsEvent handlerRegisterCaps = OnRegisterCaps;
if (handlerRegisterCaps != null) if (handlerRegisterCaps != null)
{ {
@ -1251,7 +1251,7 @@ namespace OpenSim.Region.Framework.Scenes
e.Message, e.StackTrace); e.Message, e.StackTrace);
} }
} }
} }
} }
public void TriggerOnDeregisterCaps(UUID agentID, Caps caps) public void TriggerOnDeregisterCaps(UUID agentID, Caps caps)
@ -1272,7 +1272,7 @@ namespace OpenSim.Region.Framework.Scenes
e.Message, e.StackTrace); e.Message, e.StackTrace);
} }
} }
} }
} }
public void TriggerOnNewInventoryItemUploadComplete(UUID agentID, UUID AssetID, String AssetName, int userlevel) public void TriggerOnNewInventoryItemUploadComplete(UUID agentID, UUID AssetID, String AssetName, int userlevel)
@ -1293,7 +1293,7 @@ namespace OpenSim.Region.Framework.Scenes
e.Message, e.StackTrace); e.Message, e.StackTrace);
} }
} }
} }
} }
public void TriggerLandBuy(Object sender, LandBuyArgs args) public void TriggerLandBuy(Object sender, LandBuyArgs args)
@ -1314,7 +1314,7 @@ namespace OpenSim.Region.Framework.Scenes
e.Message, e.StackTrace); e.Message, e.StackTrace);
} }
} }
} }
} }
public void TriggerValidateLandBuy(Object sender, LandBuyArgs args) public void TriggerValidateLandBuy(Object sender, LandBuyArgs args)
@ -1335,11 +1335,11 @@ namespace OpenSim.Region.Framework.Scenes
e.Message, e.StackTrace); e.Message, e.StackTrace);
} }
} }
} }
} }
public void TriggerAtTargetEvent(uint localID, uint handle, Vector3 targetpos, Vector3 currentpos) public void TriggerAtTargetEvent(uint localID, uint handle, Vector3 targetpos, Vector3 currentpos)
{ {
ScriptAtTargetEvent handlerScriptAtTargetEvent = OnScriptAtTargetEvent; ScriptAtTargetEvent handlerScriptAtTargetEvent = OnScriptAtTargetEvent;
if (handlerScriptAtTargetEvent != null) if (handlerScriptAtTargetEvent != null)
{ {
@ -1356,7 +1356,7 @@ namespace OpenSim.Region.Framework.Scenes
e.Message, e.StackTrace); e.Message, e.StackTrace);
} }
} }
} }
} }
public void TriggerNotAtTargetEvent(uint localID) public void TriggerNotAtTargetEvent(uint localID)
@ -1377,11 +1377,11 @@ namespace OpenSim.Region.Framework.Scenes
e.Message, e.StackTrace); e.Message, e.StackTrace);
} }
} }
} }
} }
public void TriggerAtRotTargetEvent(uint localID, uint handle, Quaternion targetrot, Quaternion currentrot) public void TriggerAtRotTargetEvent(uint localID, uint handle, Quaternion targetrot, Quaternion currentrot)
{ {
ScriptAtRotTargetEvent handlerScriptAtRotTargetEvent = OnScriptAtRotTargetEvent; ScriptAtRotTargetEvent handlerScriptAtRotTargetEvent = OnScriptAtRotTargetEvent;
if (handlerScriptAtRotTargetEvent != null) if (handlerScriptAtRotTargetEvent != null)
{ {
@ -1398,7 +1398,7 @@ namespace OpenSim.Region.Framework.Scenes
e.Message, e.StackTrace); e.Message, e.StackTrace);
} }
} }
} }
} }
public void TriggerNotAtRotTargetEvent(uint localID) public void TriggerNotAtRotTargetEvent(uint localID)
@ -1419,7 +1419,7 @@ namespace OpenSim.Region.Framework.Scenes
e.Message, e.StackTrace); e.Message, e.StackTrace);
} }
} }
} }
} }
public void TriggerRequestChangeWaterHeight(float height) public void TriggerRequestChangeWaterHeight(float height)
@ -1440,7 +1440,7 @@ namespace OpenSim.Region.Framework.Scenes
e.Message, e.StackTrace); e.Message, e.StackTrace);
} }
} }
} }
} }
public void TriggerAvatarKill(uint KillerObjectLocalID, ScenePresence DeadAvatar) public void TriggerAvatarKill(uint KillerObjectLocalID, ScenePresence DeadAvatar)
@ -1461,7 +1461,7 @@ namespace OpenSim.Region.Framework.Scenes
e.Message, e.StackTrace); e.Message, e.StackTrace);
} }
} }
} }
} }
public void TriggerSignificantClientMovement(IClientAPI client) public void TriggerSignificantClientMovement(IClientAPI client)
@ -1482,7 +1482,7 @@ namespace OpenSim.Region.Framework.Scenes
e.Message, e.StackTrace); e.Message, e.StackTrace);
} }
} }
} }
} }
public void TriggerOnChatFromWorld(Object sender, OSChatMessage chat) public void TriggerOnChatFromWorld(Object sender, OSChatMessage chat)
@ -1503,7 +1503,7 @@ namespace OpenSim.Region.Framework.Scenes
e.Message, e.StackTrace); e.Message, e.StackTrace);
} }
} }
} }
} }
public void TriggerOnChatFromClient(Object sender, OSChatMessage chat) public void TriggerOnChatFromClient(Object sender, OSChatMessage chat)
@ -1524,7 +1524,7 @@ namespace OpenSim.Region.Framework.Scenes
e.Message, e.StackTrace); e.Message, e.StackTrace);
} }
} }
} }
} }
public void TriggerOnChatBroadcast(Object sender, OSChatMessage chat) public void TriggerOnChatBroadcast(Object sender, OSChatMessage chat)
@ -1545,7 +1545,7 @@ namespace OpenSim.Region.Framework.Scenes
e.Message, e.StackTrace); e.Message, e.StackTrace);
} }
} }
} }
} }
internal void TriggerControlEvent(uint p, UUID scriptUUID, UUID avatarID, uint held, uint _changed) internal void TriggerControlEvent(uint p, UUID scriptUUID, UUID avatarID, uint held, uint _changed)
@ -1566,7 +1566,7 @@ namespace OpenSim.Region.Framework.Scenes
e.Message, e.StackTrace); e.Message, e.StackTrace);
} }
} }
} }
} }
public void TriggerNoticeNoLandDataFromStorage() public void TriggerNoticeNoLandDataFromStorage()
@ -1587,7 +1587,7 @@ namespace OpenSim.Region.Framework.Scenes
e.Message, e.StackTrace); e.Message, e.StackTrace);
} }
} }
} }
} }
public void TriggerIncomingLandDataFromStorage(List<LandData> landData) public void TriggerIncomingLandDataFromStorage(List<LandData> landData)
@ -1608,7 +1608,7 @@ namespace OpenSim.Region.Framework.Scenes
e.Message, e.StackTrace); e.Message, e.StackTrace);
} }
} }
} }
} }
public void TriggerSetAllowForcefulBan(bool allow) public void TriggerSetAllowForcefulBan(bool allow)
@ -1629,7 +1629,7 @@ namespace OpenSim.Region.Framework.Scenes
e.Message, e.StackTrace); e.Message, e.StackTrace);
} }
} }
} }
} }
public void TriggerRequestParcelPrimCountUpdate() public void TriggerRequestParcelPrimCountUpdate()
@ -1650,7 +1650,7 @@ namespace OpenSim.Region.Framework.Scenes
e.Message, e.StackTrace); e.Message, e.StackTrace);
} }
} }
} }
} }
public void TriggerParcelPrimCountTainted() public void TriggerParcelPrimCountTainted()
@ -1671,7 +1671,7 @@ namespace OpenSim.Region.Framework.Scenes
e.Message, e.StackTrace); e.Message, e.StackTrace);
} }
} }
} }
} }
// this lets us keep track of nasty script events like timer, etc. // this lets us keep track of nasty script events like timer, etc.
@ -1710,7 +1710,7 @@ namespace OpenSim.Region.Framework.Scenes
e.Message, e.StackTrace); e.Message, e.StackTrace);
} }
} }
} }
} }
public float GetCurrentTimeAsSunLindenHour() public float GetCurrentTimeAsSunLindenHour()
@ -1737,7 +1737,7 @@ namespace OpenSim.Region.Framework.Scenes
} }
public void TriggerOarFileLoaded(Guid requestId, string message) public void TriggerOarFileLoaded(Guid requestId, string message)
{ {
OarFileLoaded handlerOarFileLoaded = OnOarFileLoaded; OarFileLoaded handlerOarFileLoaded = OnOarFileLoaded;
if (handlerOarFileLoaded != null) if (handlerOarFileLoaded != null)
{ {
@ -1754,7 +1754,7 @@ namespace OpenSim.Region.Framework.Scenes
e.Message, e.StackTrace); e.Message, e.StackTrace);
} }
} }
} }
} }
public void TriggerOarFileSaved(Guid requestId, string message) public void TriggerOarFileSaved(Guid requestId, string message)
@ -1775,7 +1775,7 @@ namespace OpenSim.Region.Framework.Scenes
e.Message, e.StackTrace); e.Message, e.StackTrace);
} }
} }
} }
} }
public void TriggerEmptyScriptCompileQueue(int numScriptsFailed, string message) public void TriggerEmptyScriptCompileQueue(int numScriptsFailed, string message)
@ -1796,7 +1796,7 @@ namespace OpenSim.Region.Framework.Scenes
e.Message, e.StackTrace); e.Message, e.StackTrace);
} }
} }
} }
} }
public void TriggerScriptCollidingStart(uint localId, ColliderArgs colliders) public void TriggerScriptCollidingStart(uint localId, ColliderArgs colliders)
@ -1817,7 +1817,7 @@ namespace OpenSim.Region.Framework.Scenes
e.Message, e.StackTrace); e.Message, e.StackTrace);
} }
} }
} }
} }
public void TriggerScriptColliding(uint localId, ColliderArgs colliders) public void TriggerScriptColliding(uint localId, ColliderArgs colliders)
@ -1838,7 +1838,7 @@ namespace OpenSim.Region.Framework.Scenes
e.Message, e.StackTrace); e.Message, e.StackTrace);
} }
} }
} }
} }
public void TriggerScriptCollidingEnd(uint localId, ColliderArgs colliders) public void TriggerScriptCollidingEnd(uint localId, ColliderArgs colliders)
@ -1859,7 +1859,7 @@ namespace OpenSim.Region.Framework.Scenes
e.Message, e.StackTrace); e.Message, e.StackTrace);
} }
} }
} }
} }
public void TriggerScriptLandCollidingStart(uint localId, ColliderArgs colliders) public void TriggerScriptLandCollidingStart(uint localId, ColliderArgs colliders)
@ -1880,7 +1880,7 @@ namespace OpenSim.Region.Framework.Scenes
e.Message, e.StackTrace); e.Message, e.StackTrace);
} }
} }
} }
} }
public void TriggerScriptLandColliding(uint localId, ColliderArgs colliders) public void TriggerScriptLandColliding(uint localId, ColliderArgs colliders)
@ -1901,7 +1901,7 @@ namespace OpenSim.Region.Framework.Scenes
e.Message, e.StackTrace); e.Message, e.StackTrace);
} }
} }
} }
} }
public void TriggerScriptLandCollidingEnd(uint localId, ColliderArgs colliders) public void TriggerScriptLandCollidingEnd(uint localId, ColliderArgs colliders)
@ -1922,11 +1922,11 @@ namespace OpenSim.Region.Framework.Scenes
e.Message, e.StackTrace); e.Message, e.StackTrace);
} }
} }
} }
} }
public void TriggerSetRootAgentScene(UUID agentID, Scene scene) public void TriggerSetRootAgentScene(UUID agentID, Scene scene)
{ {
OnSetRootAgentSceneDelegate handlerSetRootAgentScene = OnSetRootAgentScene; OnSetRootAgentSceneDelegate handlerSetRootAgentScene = OnSetRootAgentScene;
if (handlerSetRootAgentScene != null) if (handlerSetRootAgentScene != null)
{ {
@ -1943,7 +1943,7 @@ namespace OpenSim.Region.Framework.Scenes
e.Message, e.StackTrace); e.Message, e.StackTrace);
} }
} }
} }
} }
public void TriggerOnRegionUp(GridRegion otherRegion) public void TriggerOnRegionUp(GridRegion otherRegion)
@ -1964,7 +1964,7 @@ namespace OpenSim.Region.Framework.Scenes
e.Message, e.StackTrace); e.Message, e.StackTrace);
} }
} }
} }
} }
} }
} }

View File

@ -2384,7 +2384,7 @@ namespace OpenSim.Region.Framework.Scenes
AttachObject( AttachObject(
sp.ControllingClient, grp.LocalId, (uint)0, grp.GroupRotation, grp.AbsolutePosition, false); sp.ControllingClient, grp.LocalId, (uint)0, grp.GroupRotation, grp.AbsolutePosition, false);
RootPrim.RemFlag(PrimFlags.TemporaryOnRez); RootPrim.RemFlag(PrimFlags.TemporaryOnRez);
grp.SendGroupFullUpdate(); grp.SendGroupFullUpdate();
} }
else else
{ {

View File

@ -262,7 +262,7 @@ namespace OpenSim.Region.Framework.Scenes
/// Returns a new unallocated local ID /// Returns a new unallocated local ID
/// </summary> /// </summary>
/// <returns>A brand new local ID</returns> /// <returns>A brand new local ID</returns>
protected internal uint AllocateLocalId() public uint AllocateLocalId()
{ {
uint myID; uint myID;

View File

@ -642,7 +642,7 @@ namespace OpenSim.Region.Framework.Scenes
// it get cleaned up // it get cleaned up
// //
group.RootPart.RemFlag(PrimFlags.TemporaryOnRez); group.RootPart.RemFlag(PrimFlags.TemporaryOnRez);
group.HasGroupChanged = false; group.HasGroupChanged = false;
} }
else else
{ {

View File

@ -546,7 +546,7 @@ namespace OpenSim.Region.Framework.Scenes
if (m_rootPart.Shape.PCode != 9 || m_rootPart.Shape.State == 0) if (m_rootPart.Shape.PCode != 9 || m_rootPart.Shape.State == 0)
m_rootPart.ParentID = 0; m_rootPart.ParentID = 0;
if (m_rootPart.LocalId==0) if (m_rootPart.LocalId == 0)
m_rootPart.LocalId = m_scene.AllocateLocalId(); m_rootPart.LocalId = m_scene.AllocateLocalId();
// No need to lock here since the object isn't yet in a scene // No need to lock here since the object isn't yet in a scene
@ -1505,6 +1505,9 @@ namespace OpenSim.Region.Framework.Scenes
/// <param name="part"></param> /// <param name="part"></param>
internal void SendPartFullUpdate(IClientAPI remoteClient, SceneObjectPart part, uint clientFlags) internal void SendPartFullUpdate(IClientAPI remoteClient, SceneObjectPart part, uint clientFlags)
{ {
// m_log.DebugFormat(
// "[SOG]: Sendinging part full update to {0} for {1} {2}", remoteClient.Name, part.Name, part.LocalId);
if (m_rootPart.UUID == part.UUID) if (m_rootPart.UUID == part.UUID)
{ {
if (IsAttachment) if (IsAttachment)
@ -2297,7 +2300,6 @@ namespace OpenSim.Region.Framework.Scenes
AttachToBackup(); AttachToBackup();
// Here's the deal, this is ABSOLUTELY CRITICAL so the physics scene gets the update about the // Here's the deal, this is ABSOLUTELY CRITICAL so the physics scene gets the update about the
// position of linkset prims. IF YOU CHANGE THIS, YOU MUST TEST colliding with just linked and // position of linkset prims. IF YOU CHANGE THIS, YOU MUST TEST colliding with just linked and
// unmoved prims! // unmoved prims!
@ -2312,9 +2314,10 @@ namespace OpenSim.Region.Framework.Scenes
/// an independent SceneObjectGroup. /// an independent SceneObjectGroup.
/// </summary> /// </summary>
/// <param name="partID"></param> /// <param name="partID"></param>
public void DelinkFromGroup(uint partID) /// <returns>The object group of the newly delinked prim. Null if part could not be found</returns>
public SceneObjectGroup DelinkFromGroup(uint partID)
{ {
DelinkFromGroup(partID, true); return DelinkFromGroup(partID, true);
} }
/// <summary> /// <summary>
@ -2323,28 +2326,39 @@ namespace OpenSim.Region.Framework.Scenes
/// </summary> /// </summary>
/// <param name="partID"></param> /// <param name="partID"></param>
/// <param name="sendEvents"></param> /// <param name="sendEvents"></param>
public void DelinkFromGroup(uint partID, bool sendEvents) /// <returns>The object group of the newly delinked prim. Null if part could not be found</returns>
public SceneObjectGroup DelinkFromGroup(uint partID, bool sendEvents)
{ {
SceneObjectPart linkPart = GetChildPart(partID); SceneObjectPart linkPart = GetChildPart(partID);
if (linkPart != null) if (linkPart != null)
{ {
DelinkFromGroup(linkPart, sendEvents); return DelinkFromGroup(linkPart, sendEvents);
} }
else else
{ {
m_log.InfoFormat("[SCENE OBJECT GROUP]: " + m_log.WarnFormat("[SCENE OBJECT GROUP]: " +
"DelinkFromGroup(): Child prim {0} not found in object {1}, {2}", "DelinkFromGroup(): Child prim {0} not found in object {1}, {2}",
partID, LocalId, UUID); partID, LocalId, UUID);
return null;
} }
} }
public void DelinkFromGroup(SceneObjectPart linkPart, bool sendEvents) /// <summary>
/// Delink the given prim from this group. The delinked prim is established as
/// an independent SceneObjectGroup.
/// </summary>
/// <param name="partID"></param>
/// <param name="sendEvents"></param>
/// <returns>The object group of the newly delinked prim.</returns>
public SceneObjectGroup DelinkFromGroup(SceneObjectPart linkPart, bool sendEvents)
{ {
linkPart.ClearUndoState();
// m_log.DebugFormat( // m_log.DebugFormat(
// "[SCENE OBJECT GROUP]: Delinking part {0}, {1} from group with root part {2}, {3}", // "[SCENE OBJECT GROUP]: Delinking part {0}, {1} from group with root part {2}, {3}",
// linkPart.Name, linkPart.UUID, RootPart.Name, RootPart.UUID); // linkPart.Name, linkPart.UUID, RootPart.Name, RootPart.UUID);
linkPart.ClearUndoState();
Quaternion worldRot = linkPart.GetWorldRotation(); Quaternion worldRot = linkPart.GetWorldRotation();
@ -2397,6 +2411,8 @@ namespace OpenSim.Region.Framework.Scenes
//HasGroupChanged = true; //HasGroupChanged = true;
//ScheduleGroupForFullUpdate(); //ScheduleGroupForFullUpdate();
return objectGroup;
} }
/// <summary> /// <summary>
@ -2435,7 +2451,6 @@ namespace OpenSim.Region.Framework.Scenes
part.LinkNum = linkNum; part.LinkNum = linkNum;
part.OffsetPosition = part.GroupPosition - AbsolutePosition; part.OffsetPosition = part.GroupPosition - AbsolutePosition;
Quaternion rootRotation = m_rootPart.RotationOffset; Quaternion rootRotation = m_rootPart.RotationOffset;

View File

@ -4531,7 +4531,7 @@ namespace OpenSim.Region.Framework.Scenes
else else
{ {
// m_log.DebugFormat( // m_log.DebugFormat(
// "[SCENE OBJECT PART]: Scheduling part {0} {1} for full update in aggregateScriptEvents()", Name, LocalId); // "[SCENE OBJECT PART]: Scheduling part {0} {1} for full update in aggregateScriptEvents()", Name, LocalId);
ScheduleFullUpdate(); ScheduleFullUpdate();
} }
} }

View File

@ -313,7 +313,7 @@ namespace OpenSim.Region.Framework.Scenes
} }
); );
} }
} }
private void RestoreSavedScriptState(UUID oldID, UUID newID) private void RestoreSavedScriptState(UUID oldID, UUID newID)
{ {
@ -578,7 +578,7 @@ namespace OpenSim.Region.Framework.Scenes
m_items.TryGetValue(itemId, out item); m_items.TryGetValue(itemId, out item);
return item; return item;
} }
/// <summary> /// <summary>
/// Get inventory items by name. /// Get inventory items by name.
@ -587,7 +587,7 @@ namespace OpenSim.Region.Framework.Scenes
/// <returns> /// <returns>
/// A list of inventory items with that name. /// A list of inventory items with that name.
/// If no inventory item has that name then an empty list is returned. /// If no inventory item has that name then an empty list is returned.
/// </returns> /// </returns>
public IList<TaskInventoryItem> GetInventoryItems(string name) public IList<TaskInventoryItem> GetInventoryItems(string name)
{ {
IList<TaskInventoryItem> items = new List<TaskInventoryItem>(); IList<TaskInventoryItem> items = new List<TaskInventoryItem>();

View File

@ -650,7 +650,7 @@ namespace OpenSim.Region.Framework.Scenes
#region Constructor(s) #region Constructor(s)
public ScenePresence() public ScenePresence()
{ {
m_sendCourseLocationsMethod = SendCoarseLocationsDefault; m_sendCourseLocationsMethod = SendCoarseLocationsDefault;
CreateSceneViewer(); CreateSceneViewer();
m_animator = new ScenePresenceAnimator(this); m_animator = new ScenePresenceAnimator(this);
@ -1241,14 +1241,6 @@ namespace OpenSim.Region.Framework.Scenes
} }
else else
{ {
if (m_pos.X < 0)
m_pos.X = 128;
if (m_pos.Y < 0)
m_pos.Y = 128;
if (m_pos.X > Scene.WestBorders[0].BorderLine.X)
m_pos.X = 128;
if (m_pos.Y > Scene.NorthBorders[0].BorderLine.Y)
m_pos.Y = 128;
m_LastFinitePos = m_pos; m_LastFinitePos = m_pos;
} }
@ -2818,16 +2810,19 @@ namespace OpenSim.Region.Framework.Scenes
{ {
if (!needsTransit) if (!needsTransit)
{ {
Vector3 pos = AbsolutePosition; if (m_requestedSitTargetUUID == UUID.Zero)
if (AbsolutePosition.X < 0) {
pos.X += Velocity.Y; Vector3 pos = AbsolutePosition;
else if (AbsolutePosition.X > Constants.RegionSize) if (AbsolutePosition.X < 0)
pos.X -= Velocity.Y; pos.X += Velocity.X;
if (AbsolutePosition.Y < 0) else if (AbsolutePosition.X > Constants.RegionSize)
pos.Y += Velocity.Y; pos.X -= Velocity.X;
else if (AbsolutePosition.Y > Constants.RegionSize) if (AbsolutePosition.Y < 0)
pos.Y -= Velocity.Y; pos.Y += Velocity.Y;
AbsolutePosition = pos; else if (AbsolutePosition.Y > Constants.RegionSize)
pos.Y -= Velocity.Y;
AbsolutePosition = pos;
}
} }
} }
else if (neighbor > 0) else if (neighbor > 0)
@ -3292,7 +3287,7 @@ namespace OpenSim.Region.Framework.Scenes
m_physicsActor.OnCollisionUpdate += PhysicsCollisionUpdate; m_physicsActor.OnCollisionUpdate += PhysicsCollisionUpdate;
m_physicsActor.OnOutOfBounds += OutOfBoundsCall; // Called for PhysicsActors when there's something wrong m_physicsActor.OnOutOfBounds += OutOfBoundsCall; // Called for PhysicsActors when there's something wrong
m_physicsActor.SubscribeEvents(500); m_physicsActor.SubscribeEvents(500);
m_physicsActor.LocalID = LocalId; m_physicsActor.LocalID = LocalId;
} }
private void OutOfBoundsCall(Vector3 pos) private void OutOfBoundsCall(Vector3 pos)
@ -3384,7 +3379,7 @@ namespace OpenSim.Region.Framework.Scenes
} }
if (m_health <= 0) if (m_health <= 0)
m_scene.EventManager.TriggerAvatarKill(killerObj, this); m_scene.EventManager.TriggerAvatarKill(killerObj, this);
} }
} }
public void setHealthWithUpdate(float health) public void setHealthWithUpdate(float health)

View File

@ -50,7 +50,6 @@ using OpenSim.Region.Framework.Scenes;
using Caps = OpenSim.Framework.Capabilities.Caps; using Caps = OpenSim.Framework.Capabilities.Caps;
using System.Text.RegularExpressions; using System.Text.RegularExpressions;
namespace OpenSim.Region.OptionalModules.Avatar.Voice.FreeSwitchVoice namespace OpenSim.Region.OptionalModules.Avatar.Voice.FreeSwitchVoice
{ {
public class FreeSwitchVoiceModule : IRegionModule, IVoiceModule public class FreeSwitchVoiceModule : IRegionModule, IVoiceModule
@ -76,7 +75,7 @@ namespace OpenSim.Region.OptionalModules.Avatar.Voice.FreeSwitchVoice
// SLVoice client will do a GET on this prefix // SLVoice client will do a GET on this prefix
private static string m_freeSwitchAPIPrefix; private static string m_freeSwitchAPIPrefix;
// We need to return some information to SLVoice // We need to return some information to SLVoice
// figured those out via curl // figured those out via curl
// http://vd1.vivox.com/api2/viv_get_prelogin.php // http://vd1.vivox.com/api2/viv_get_prelogin.php
// //
@ -102,9 +101,9 @@ namespace OpenSim.Region.OptionalModules.Avatar.Voice.FreeSwitchVoice
private readonly Dictionary<string, string> m_UUIDName = new Dictionary<string, string>(); private readonly Dictionary<string, string> m_UUIDName = new Dictionary<string, string>();
private Dictionary<string, string> m_ParcelAddress = new Dictionary<string, string>(); private Dictionary<string, string> m_ParcelAddress = new Dictionary<string, string>();
private Scene m_scene; private Scene m_scene;
private IConfig m_config; private IConfig m_config;
@ -136,9 +135,9 @@ namespace OpenSim.Region.OptionalModules.Avatar.Voice.FreeSwitchVoice
m_freeSwitchServerUser = m_config.GetString("freeswitch_server_user", String.Empty); m_freeSwitchServerUser = m_config.GetString("freeswitch_server_user", String.Empty);
m_freeSwitchServerPass = m_config.GetString("freeswitch_server_pass", String.Empty); m_freeSwitchServerPass = m_config.GetString("freeswitch_server_pass", String.Empty);
m_freeSwitchAPIPrefix = m_config.GetString("freeswitch_api_prefix", String.Empty); m_freeSwitchAPIPrefix = m_config.GetString("freeswitch_api_prefix", String.Empty);
// XXX: get IP address of HTTP server. (This can be this OpenSim server or another, or could be a dedicated grid service or may live on the freeswitch server) // XXX: get IP address of HTTP server. (This can be this OpenSim server or another, or could be a dedicated grid service or may live on the freeswitch server)
string serviceIP = m_config.GetString("freeswitch_service_server", String.Empty); string serviceIP = m_config.GetString("freeswitch_service_server", String.Empty);
int servicePort = m_config.GetInt("freeswitch_service_port", 80); int servicePort = m_config.GetInt("freeswitch_service_port", 80);
IPAddress serviceIPAddress = IPAddress.Parse(serviceIP); IPAddress serviceIPAddress = IPAddress.Parse(serviceIP);
@ -156,7 +155,7 @@ namespace OpenSim.Region.OptionalModules.Avatar.Voice.FreeSwitchVoice
// m_freeSwitchSubscribeRetry = m_config.GetInt("freeswitch_subscribe_retry", 120); // m_freeSwitchSubscribeRetry = m_config.GetInt("freeswitch_subscribe_retry", 120);
m_freeSwitchUrlResetPassword = m_config.GetString("freeswitch_password_reset_url", String.Empty); m_freeSwitchUrlResetPassword = m_config.GetString("freeswitch_password_reset_url", String.Empty);
m_freeSwitchContext = m_config.GetString("freeswitch_context", "default"); m_freeSwitchContext = m_config.GetString("freeswitch_context", "default");
if (String.IsNullOrEmpty(m_freeSwitchServerUser) || if (String.IsNullOrEmpty(m_freeSwitchServerUser) ||
String.IsNullOrEmpty(m_freeSwitchServerPass) || String.IsNullOrEmpty(m_freeSwitchServerPass) ||
String.IsNullOrEmpty(m_freeSwitchRealm) || String.IsNullOrEmpty(m_freeSwitchRealm) ||
@ -182,9 +181,9 @@ namespace OpenSim.Region.OptionalModules.Avatar.Voice.FreeSwitchVoice
{ {
MainServer.Instance.AddHTTPHandler(String.Format("{0}/viv_get_prelogin.php", m_freeSwitchAPIPrefix), MainServer.Instance.AddHTTPHandler(String.Format("{0}/viv_get_prelogin.php", m_freeSwitchAPIPrefix),
FreeSwitchSLVoiceGetPreloginHTTPHandler); FreeSwitchSLVoiceGetPreloginHTTPHandler);
// RestStreamHandler h = new // RestStreamHandler h = new
// RestStreamHandler("GET", // RestStreamHandler("GET",
// String.Format("{0}/viv_get_prelogin.php", m_freeSwitchAPIPrefix), FreeSwitchSLVoiceGetPreloginHTTPHandler); // String.Format("{0}/viv_get_prelogin.php", m_freeSwitchAPIPrefix), FreeSwitchSLVoiceGetPreloginHTTPHandler);
// MainServer.Instance.AddStreamHandler(h); // MainServer.Instance.AddStreamHandler(h);
@ -202,13 +201,9 @@ namespace OpenSim.Region.OptionalModules.Avatar.Voice.FreeSwitchVoice
MainServer.Instance.AddHTTPHandler(String.Format("{0}/viv_buddy.php", m_freeSwitchAPIPrefix), MainServer.Instance.AddHTTPHandler(String.Format("{0}/viv_buddy.php", m_freeSwitchAPIPrefix),
FreeSwitchSLVoiceBuddyHTTPHandler); FreeSwitchSLVoiceBuddyHTTPHandler);
} }
m_log.InfoFormat("[FreeSwitchVoice] using FreeSwitch server {0}", m_freeSwitchRealm); m_log.InfoFormat("[FreeSwitchVoice] using FreeSwitch server {0}", m_freeSwitchRealm);
m_FreeSwitchDirectory = new FreeSwitchDirectory(); m_FreeSwitchDirectory = new FreeSwitchDirectory();
m_FreeSwitchDialplan = new FreeSwitchDialplan(); m_FreeSwitchDialplan = new FreeSwitchDialplan();
@ -225,7 +220,7 @@ namespace OpenSim.Region.OptionalModules.Avatar.Voice.FreeSwitchVoice
} }
} }
if (m_pluginEnabled) if (m_pluginEnabled)
{ {
// we need to capture scene in an anonymous method // we need to capture scene in an anonymous method
// here as we need it later in the callbacks // here as we need it later in the callbacks
@ -233,8 +228,6 @@ namespace OpenSim.Region.OptionalModules.Avatar.Voice.FreeSwitchVoice
{ {
OnRegisterCaps(scene, agentID, caps); OnRegisterCaps(scene, agentID, caps);
}; };
try try
{ {
@ -254,16 +247,15 @@ namespace OpenSim.Region.OptionalModules.Avatar.Voice.FreeSwitchVoice
m_log.Error("[FreeSwitchVoice]: Certificate validation handler change not supported. You may get ssl certificate validation errors teleporting from your region to some SSL regions."); m_log.Error("[FreeSwitchVoice]: Certificate validation handler change not supported. You may get ssl certificate validation errors teleporting from your region to some SSL regions.");
} }
} }
} }
} }
public void PostInitialise() public void PostInitialise()
{ {
if (m_pluginEnabled) if (m_pluginEnabled)
{ {
m_log.Info("[FreeSwitchVoice] registering IVoiceModule with the scene"); m_log.Info("[FreeSwitchVoice] registering IVoiceModule with the scene");
// register the voice interface for this module, so the script engine can call us // register the voice interface for this module, so the script engine can call us
m_scene.RegisterModuleInterface<IVoiceModule>(this); m_scene.RegisterModuleInterface<IVoiceModule>(this);
} }
@ -282,15 +274,15 @@ namespace OpenSim.Region.OptionalModules.Avatar.Voice.FreeSwitchVoice
{ {
get { return true; } get { return true; }
} }
// <summary> // <summary>
// implementation of IVoiceModule, called by osSetParcelSIPAddress script function // implementation of IVoiceModule, called by osSetParcelSIPAddress script function
// </summary> // </summary>
public void setLandSIPAddress(string SIPAddress,UUID GlobalID) public void setLandSIPAddress(string SIPAddress,UUID GlobalID)
{ {
m_log.DebugFormat("[FreeSwitchVoice]: setLandSIPAddress parcel id {0}: setting sip address {1}", m_log.DebugFormat("[FreeSwitchVoice]: setLandSIPAddress parcel id {0}: setting sip address {1}",
GlobalID, SIPAddress); GlobalID, SIPAddress);
lock (m_ParcelAddress) lock (m_ParcelAddress)
{ {
if (m_ParcelAddress.ContainsKey(GlobalID.ToString())) if (m_ParcelAddress.ContainsKey(GlobalID.ToString()))
@ -303,18 +295,18 @@ namespace OpenSim.Region.OptionalModules.Avatar.Voice.FreeSwitchVoice
} }
} }
} }
// <summary> // <summary>
// OnRegisterCaps is invoked via the scene.EventManager // OnRegisterCaps is invoked via the scene.EventManager
// everytime OpenSim hands out capabilities to a client // everytime OpenSim hands out capabilities to a client
// (login, region crossing). We contribute two capabilities to // (login, region crossing). We contribute two capabilities to
// the set of capabilities handed back to the client: // the set of capabilities handed back to the client:
// ProvisionVoiceAccountRequest and ParcelVoiceInfoRequest. // ProvisionVoiceAccountRequest and ParcelVoiceInfoRequest.
// //
// ProvisionVoiceAccountRequest allows the client to obtain // ProvisionVoiceAccountRequest allows the client to obtain
// the voice account credentials for the avatar it is // the voice account credentials for the avatar it is
// controlling (e.g., user name, password, etc). // controlling (e.g., user name, password, etc).
// //
// ParcelVoiceInfoRequest is invoked whenever the client // ParcelVoiceInfoRequest is invoked whenever the client
// changes from one region or parcel to another. // changes from one region or parcel to another.
// //
@ -371,7 +363,7 @@ namespace OpenSim.Region.OptionalModules.Avatar.Voice.FreeSwitchVoice
{ {
System.Threading.Thread.Sleep(2000); System.Threading.Thread.Sleep(2000);
avatar = scene.GetScenePresence(agentID); avatar = scene.GetScenePresence(agentID);
if (avatar == null) if (avatar == null)
return "<llsd>undef</llsd>"; return "<llsd>undef</llsd>";
} }
@ -407,8 +399,8 @@ namespace OpenSim.Region.OptionalModules.Avatar.Voice.FreeSwitchVoice
// new LLSDVoiceAccountResponse(agentname, password, m_freeSwitchRealm, "http://etsvc02.hursley.ibm.com/api"); // new LLSDVoiceAccountResponse(agentname, password, m_freeSwitchRealm, "http://etsvc02.hursley.ibm.com/api");
LLSDVoiceAccountResponse voiceAccountResponse = LLSDVoiceAccountResponse voiceAccountResponse =
new LLSDVoiceAccountResponse(agentname, password, m_freeSwitchRealm, new LLSDVoiceAccountResponse(agentname, password, m_freeSwitchRealm,
String.Format("http://{0}:{1}{2}/", m_openSimWellKnownHTTPAddress, String.Format("http://{0}:{1}{2}/", m_openSimWellKnownHTTPAddress,
m_freeSwitchServicePort, m_freeSwitchAPIPrefix)); m_freeSwitchServicePort, m_freeSwitchAPIPrefix));
string r = LLSDHelpers.SerialiseLLSDReply(voiceAccountResponse); string r = LLSDHelpers.SerialiseLLSDReply(voiceAccountResponse);
@ -442,7 +434,7 @@ namespace OpenSim.Region.OptionalModules.Avatar.Voice.FreeSwitchVoice
string avatarName = avatar.Name; string avatarName = avatar.Name;
// - check whether we have a region channel in our cache // - check whether we have a region channel in our cache
// - if not: // - if not:
// create it and cache it // create it and cache it
// - send it to the client // - send it to the client
// - send channel_uri: as "sip:regionID@m_sipDomain" // - send channel_uri: as "sip:regionID@m_sipDomain"
@ -451,12 +443,10 @@ namespace OpenSim.Region.OptionalModules.Avatar.Voice.FreeSwitchVoice
LLSDParcelVoiceInfoResponse parcelVoiceInfo; LLSDParcelVoiceInfoResponse parcelVoiceInfo;
string channelUri; string channelUri;
if (null == scene.LandChannel) if (null == scene.LandChannel)
throw new Exception(String.Format("region \"{0}\": avatar \"{1}\": land data not yet available", throw new Exception(String.Format("region \"{0}\": avatar \"{1}\": land data not yet available",
scene.RegionInfo.RegionName, avatarName)); scene.RegionInfo.RegionName, avatarName));
// get channel_uri: check first whether estate // get channel_uri: check first whether estate
// settings allow voice, then whether parcel allows // settings allow voice, then whether parcel allows
// voice, if all do retrieve or obtain the parcel // voice, if all do retrieve or obtain the parcel
@ -493,22 +483,21 @@ namespace OpenSim.Region.OptionalModules.Avatar.Voice.FreeSwitchVoice
parcelVoiceInfo = new LLSDParcelVoiceInfoResponse(scene.RegionInfo.RegionName, land.LocalID, creds); parcelVoiceInfo = new LLSDParcelVoiceInfoResponse(scene.RegionInfo.RegionName, land.LocalID, creds);
string r = LLSDHelpers.SerialiseLLSDReply(parcelVoiceInfo); string r = LLSDHelpers.SerialiseLLSDReply(parcelVoiceInfo);
m_log.DebugFormat("[FreeSwitchVoice][PARCELVOICE]: region \"{0}\": Parcel \"{1}\" ({2}): avatar \"{3}\": {4}", m_log.DebugFormat("[FreeSwitchVoice][PARCELVOICE]: region \"{0}\": Parcel \"{1}\" ({2}): avatar \"{3}\": {4}",
scene.RegionInfo.RegionName, land.Name, land.LocalID, avatarName, r); scene.RegionInfo.RegionName, land.Name, land.LocalID, avatarName, r);
return r; return r;
} }
catch (Exception e) catch (Exception e)
{ {
m_log.ErrorFormat("[FreeSwitchVoice][PARCELVOICE]: region \"{0}\": avatar \"{1}\": {2}, retry later", m_log.ErrorFormat("[FreeSwitchVoice][PARCELVOICE]: region \"{0}\": avatar \"{1}\": {2}, retry later",
scene.RegionInfo.RegionName, avatarName, e.Message); scene.RegionInfo.RegionName, avatarName, e.Message);
m_log.DebugFormat("[FreeSwitchVoice][PARCELVOICE]: region \"{0}\": avatar \"{1}\": {2} failed", m_log.DebugFormat("[FreeSwitchVoice][PARCELVOICE]: region \"{0}\": avatar \"{1}\": {2} failed",
scene.RegionInfo.RegionName, avatarName, e.ToString()); scene.RegionInfo.RegionName, avatarName, e.ToString());
return "<llsd>undef</llsd>"; return "<llsd>undef</llsd>";
} }
} }
/// <summary> /// <summary>
/// Callback for a client request for ChatSessionRequest /// Callback for a client request for ChatSessionRequest
/// </summary> /// </summary>
@ -550,7 +539,6 @@ namespace OpenSim.Region.OptionalModules.Avatar.Voice.FreeSwitchVoice
string fwdresponsestr = ""; string fwdresponsestr = "";
int fwdresponsecode = 200; int fwdresponsecode = 200;
string fwdresponsecontenttype = "text/xml"; string fwdresponsecontenttype = "text/xml";
HttpWebRequest forwardreq = (HttpWebRequest)WebRequest.Create(forwardaddress); HttpWebRequest forwardreq = (HttpWebRequest)WebRequest.Create(forwardaddress);
forwardreq.Method = method; forwardreq.Method = method;
@ -577,7 +565,7 @@ namespace OpenSim.Region.OptionalModules.Avatar.Voice.FreeSwitchVoice
response["content_type"] = fwdresponsecontenttype; response["content_type"] = fwdresponsecontenttype;
response["str_response_string"] = fwdresponsestr; response["str_response_string"] = fwdresponsestr;
response["int_response_code"] = fwdresponsecode; response["int_response_code"] = fwdresponsecode;
return response; return response;
} }
@ -585,11 +573,11 @@ namespace OpenSim.Region.OptionalModules.Avatar.Voice.FreeSwitchVoice
public Hashtable FreeSwitchSLVoiceGetPreloginHTTPHandler(Hashtable request) public Hashtable FreeSwitchSLVoiceGetPreloginHTTPHandler(Hashtable request)
{ {
m_log.Debug("[FreeSwitchVoice] FreeSwitchSLVoiceGetPreloginHTTPHandler called"); m_log.Debug("[FreeSwitchVoice] FreeSwitchSLVoiceGetPreloginHTTPHandler called");
Hashtable response = new Hashtable(); Hashtable response = new Hashtable();
response["content_type"] = "text/xml"; response["content_type"] = "text/xml";
response["keepalive"] = false; response["keepalive"] = false;
response["str_response_string"] = String.Format( response["str_response_string"] = String.Format(
"<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n" + "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n" +
"<VCConfiguration>\r\n"+ "<VCConfiguration>\r\n"+
@ -607,9 +595,9 @@ namespace OpenSim.Region.OptionalModules.Avatar.Voice.FreeSwitchVoice
"</VCConfiguration>", "</VCConfiguration>",
m_freeSwitchRealm, m_freeSwitchSIPProxy, m_freeSwitchAttemptUseSTUN, m_freeSwitchRealm, m_freeSwitchSIPProxy, m_freeSwitchAttemptUseSTUN,
m_freeSwitchEchoServer, m_freeSwitchEchoPort, m_freeSwitchEchoServer, m_freeSwitchEchoPort,
m_freeSwitchDefaultWellKnownIP, m_freeSwitchDefaultTimeout, m_freeSwitchDefaultWellKnownIP, m_freeSwitchDefaultTimeout,
m_freeSwitchUrlResetPassword, ""); m_freeSwitchUrlResetPassword, "");
response["int_response_code"] = 200; response["int_response_code"] = 200;
m_log.DebugFormat("[FreeSwitchVoice] FreeSwitchSLVoiceGetPreloginHTTPHandler return {0}",response["str_response_string"]); m_log.DebugFormat("[FreeSwitchVoice] FreeSwitchSLVoiceGetPreloginHTTPHandler return {0}",response["str_response_string"]);
@ -624,7 +612,7 @@ namespace OpenSim.Region.OptionalModules.Avatar.Voice.FreeSwitchVoice
response["content-type"] = "text/xml"; response["content-type"] = "text/xml";
Hashtable requestBody = parseRequestBody((string)request["body"]); Hashtable requestBody = parseRequestBody((string)request["body"]);
if (!requestBody.ContainsKey("auth_token")) if (!requestBody.ContainsKey("auth_token"))
return response; return response;
@ -632,7 +620,7 @@ namespace OpenSim.Region.OptionalModules.Avatar.Voice.FreeSwitchVoice
//string[] auth_tokenvals = auth_token.Split(':'); //string[] auth_tokenvals = auth_token.Split(':');
//string username = auth_tokenvals[0]; //string username = auth_tokenvals[0];
int strcount = 0; int strcount = 0;
string[] ids = new string[strcount]; string[] ids = new string[strcount];
int iter = -1; int iter = -1;
@ -648,7 +636,7 @@ namespace OpenSim.Region.OptionalModules.Avatar.Voice.FreeSwitchVoice
} }
StringBuilder resp = new StringBuilder(); StringBuilder resp = new StringBuilder();
resp.Append("<?xml version=\"1.0\" encoding=\"iso-8859-1\" ?><response xmlns=\"http://www.vivox.com\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:schemaLocation= \"/xsd/buddy_list.xsd\">"); resp.Append("<?xml version=\"1.0\" encoding=\"iso-8859-1\" ?><response xmlns=\"http://www.vivox.com\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:schemaLocation= \"/xsd/buddy_list.xsd\">");
resp.Append(string.Format(@"<level0> resp.Append(string.Format(@"<level0>
<status>OK</status> <status>OK</status>
<cookie_name>lib_session</cookie_name> <cookie_name>lib_session</cookie_name>
@ -678,7 +666,7 @@ namespace OpenSim.Region.OptionalModules.Avatar.Voice.FreeSwitchVoice
<b2g_group_id></b2g_group_id> <b2g_group_id></b2g_group_id>
</level3>", ids[i],i,m_freeSwitchRealm,dt)); </level3>", ids[i],i,m_freeSwitchRealm,dt));
} }
resp.Append("</buddies><groups></groups></body></level0></response>"); resp.Append("</buddies><groups></groups></body></level0></response>");
response["str_response_string"] = resp.ToString(); response["str_response_string"] = resp.ToString();
@ -694,7 +682,7 @@ namespace OpenSim.Region.OptionalModules.Avatar.Voice.FreeSwitchVoice
string requestbody = (string)request["body"]; string requestbody = (string)request["body"];
string uri = (string)request["uri"]; string uri = (string)request["uri"];
string contenttype = (string)request["content-type"]; string contenttype = (string)request["content-type"];
Hashtable requestBody = parseRequestBody((string)request["body"]); Hashtable requestBody = parseRequestBody((string)request["body"]);
//string pwd = (string) requestBody["pwd"]; //string pwd = (string) requestBody["pwd"];
@ -712,7 +700,6 @@ namespace OpenSim.Region.OptionalModules.Avatar.Voice.FreeSwitchVoice
pos++; pos++;
if (s == userid) if (s == userid)
break; break;
} }
} }
} }
@ -735,7 +722,7 @@ namespace OpenSim.Region.OptionalModules.Avatar.Voice.FreeSwitchVoice
</body> </body>
</level0> </level0>
</response>", userid, pos, avatarName); </response>", userid, pos, avatarName);
response["int_response_code"] = 200; response["int_response_code"] = 200;
return response; return response;
/* /*
@ -752,13 +739,13 @@ namespace OpenSim.Region.OptionalModules.Avatar.Voice.FreeSwitchVoice
public Hashtable FreeSwitchConfigHTTPHandler(Hashtable request) public Hashtable FreeSwitchConfigHTTPHandler(Hashtable request)
{ {
m_log.DebugFormat("[FreeSwitchVoice] FreeSwitchConfigHTTPHandler called with {0}", (string)request["body"]); m_log.DebugFormat("[FreeSwitchVoice] FreeSwitchConfigHTTPHandler called with {0}", (string)request["body"]);
Hashtable response = new Hashtable(); Hashtable response = new Hashtable();
response["str_response_string"] = string.Empty; response["str_response_string"] = string.Empty;
// all the params come as NVPs in the request body // all the params come as NVPs in the request body
Hashtable requestBody = parseRequestBody((string) request["body"]); Hashtable requestBody = parseRequestBody((string) request["body"]);
// is this a dialplan or directory request // is this a dialplan or directory request
string section = (string) requestBody["section"]; string section = (string) requestBody["section"];
if (section == "directory") if (section == "directory")
@ -767,40 +754,39 @@ namespace OpenSim.Region.OptionalModules.Avatar.Voice.FreeSwitchVoice
response = m_FreeSwitchDialplan.HandleDialplanRequest(m_freeSwitchContext, m_freeSwitchRealm, requestBody); response = m_FreeSwitchDialplan.HandleDialplanRequest(m_freeSwitchContext, m_freeSwitchRealm, requestBody);
else else
m_log.WarnFormat("[FreeSwitchVoice]: section was {0}", section); m_log.WarnFormat("[FreeSwitchVoice]: section was {0}", section);
// XXX: re-generate dialplan: // XXX: re-generate dialplan:
// - conf == region UUID // - conf == region UUID
// - conf number = region port // - conf number = region port
// -> TODO Initialise(): keep track of regions via events // -> TODO Initialise(): keep track of regions via events
// re-generate accounts for all avatars // re-generate accounts for all avatars
// -> TODO Initialise(): keep track of avatars via events // -> TODO Initialise(): keep track of avatars via events
Regex normalizeEndLines = new Regex(@"\r\n", RegexOptions.Compiled | RegexOptions.Singleline | RegexOptions.Multiline); Regex normalizeEndLines = new Regex(@"\r\n", RegexOptions.Compiled | RegexOptions.Singleline | RegexOptions.Multiline);
m_log.DebugFormat("[FreeSwitchVoice] FreeSwitchConfigHTTPHandler return {0}",normalizeEndLines.Replace(((string)response["str_response_string"]), "")); m_log.DebugFormat("[FreeSwitchVoice] FreeSwitchConfigHTTPHandler return {0}",normalizeEndLines.Replace(((string)response["str_response_string"]), ""));
return response; return response;
} }
public Hashtable parseRequestBody(string body) public Hashtable parseRequestBody(string body)
{ {
Hashtable bodyParams = new Hashtable(); Hashtable bodyParams = new Hashtable();
// split string // split string
string [] nvps = body.Split(new Char [] {'&'}); string [] nvps = body.Split(new Char [] {'&'});
foreach (string s in nvps) { foreach (string s in nvps)
{
if (s.Trim() != "") if (s.Trim() != "")
{ {
string [] nvp = s.Split(new Char [] {'='}); string [] nvp = s.Split(new Char [] {'='});
bodyParams.Add(HttpUtility.UrlDecode(nvp[0]), HttpUtility.UrlDecode(nvp[1])); bodyParams.Add(HttpUtility.UrlDecode(nvp[0]), HttpUtility.UrlDecode(nvp[1]));
} }
} }
return bodyParams; return bodyParams;
} }
private string ChannelUri(Scene scene, LandData land) private string ChannelUri(Scene scene, LandData land)
{ {
string channelUri = null; string channelUri = null;
string landUUID; string landUUID;
@ -808,12 +794,12 @@ namespace OpenSim.Region.OptionalModules.Avatar.Voice.FreeSwitchVoice
// Create parcel voice channel. If no parcel exists, then the voice channel ID is the same // Create parcel voice channel. If no parcel exists, then the voice channel ID is the same
// as the directory ID. Otherwise, it reflects the parcel's ID. // as the directory ID. Otherwise, it reflects the parcel's ID.
lock (m_ParcelAddress) lock (m_ParcelAddress)
{ {
if (m_ParcelAddress.ContainsKey(land.GlobalID.ToString())) if (m_ParcelAddress.ContainsKey(land.GlobalID.ToString()))
{ {
m_log.DebugFormat("[FreeSwitchVoice]: parcel id {0}: using sip address {1}", m_log.DebugFormat("[FreeSwitchVoice]: parcel id {0}: using sip address {1}",
land.GlobalID, m_ParcelAddress[land.GlobalID.ToString()]); land.GlobalID, m_ParcelAddress[land.GlobalID.ToString()]);
return m_ParcelAddress[land.GlobalID.ToString()]; return m_ParcelAddress[land.GlobalID.ToString()];
} }
@ -823,22 +809,22 @@ namespace OpenSim.Region.OptionalModules.Avatar.Voice.FreeSwitchVoice
{ {
landName = String.Format("{0}:{1}", scene.RegionInfo.RegionName, land.Name); landName = String.Format("{0}:{1}", scene.RegionInfo.RegionName, land.Name);
landUUID = land.GlobalID.ToString(); landUUID = land.GlobalID.ToString();
m_log.DebugFormat("[FreeSwitchVoice]: Region:Parcel \"{0}\": parcel id {1}: using channel name {2}", m_log.DebugFormat("[FreeSwitchVoice]: Region:Parcel \"{0}\": parcel id {1}: using channel name {2}",
landName, land.LocalID, landUUID); landName, land.LocalID, landUUID);
} }
else else
{ {
landName = String.Format("{0}:{1}", scene.RegionInfo.RegionName, scene.RegionInfo.RegionName); landName = String.Format("{0}:{1}", scene.RegionInfo.RegionName, scene.RegionInfo.RegionName);
landUUID = scene.RegionInfo.RegionID.ToString(); landUUID = scene.RegionInfo.RegionID.ToString();
m_log.DebugFormat("[FreeSwitchVoice]: Region:Parcel \"{0}\": parcel id {1}: using channel name {2}", m_log.DebugFormat("[FreeSwitchVoice]: Region:Parcel \"{0}\": parcel id {1}: using channel name {2}",
landName, land.LocalID, landUUID); landName, land.LocalID, landUUID);
} }
System.Text.ASCIIEncoding encoding = new System.Text.ASCIIEncoding(); System.Text.ASCIIEncoding encoding = new System.Text.ASCIIEncoding();
// slvoice handles the sip address differently if it begins with confctl, hiding it from the user in the friends list. however it also disables // slvoice handles the sip address differently if it begins with confctl, hiding it from the user in the friends list. however it also disables
// the personal speech indicators as well unless some siren14-3d codec magic happens. we dont have siren143d so we'll settle for the personal speech indicator. // the personal speech indicators as well unless some siren14-3d codec magic happens. we dont have siren143d so we'll settle for the personal speech indicator.
channelUri = String.Format("sip:conf-{0}@{1}", "x" + Convert.ToBase64String(encoding.GetBytes(landUUID)), m_freeSwitchRealm); channelUri = String.Format("sip:conf-{0}@{1}", "x" + Convert.ToBase64String(encoding.GetBytes(landUUID)), m_freeSwitchRealm);
lock (m_ParcelAddress) lock (m_ParcelAddress)
{ {
if (!m_ParcelAddress.ContainsKey(land.GlobalID.ToString())) if (!m_ParcelAddress.ContainsKey(land.GlobalID.ToString()))
@ -849,14 +835,13 @@ namespace OpenSim.Region.OptionalModules.Avatar.Voice.FreeSwitchVoice
return channelUri; return channelUri;
} }
private static bool CustomCertificateValidation(object sender, X509Certificate cert, X509Chain chain, SslPolicyErrors error) private static bool CustomCertificateValidation(object sender, X509Certificate cert, X509Chain chain, SslPolicyErrors error)
{ {
return true; return true;
} }
} }
public class MonoCert : ICertificatePolicy public class MonoCert : ICertificatePolicy
{ {
#region ICertificatePolicy Members #region ICertificatePolicy Members

View File

@ -34,6 +34,9 @@ namespace OpenSim.Region.OptionalModules.Scripting.Minimodule
{ {
public interface IAvatar : IEntity public interface IAvatar : IEntity
{ {
bool IsChildAgent { get; }
//// <value> //// <value>
/// Array of worn attachments, empty but not null, if no attachments are worn /// Array of worn attachments, empty but not null, if no attachments are worn
/// </value> /// </value>

View File

@ -70,6 +70,11 @@ namespace OpenSim.Region.OptionalModules.Scripting.Minimodule
set { GetSP().TeleportWithMomentum(value); } set { GetSP().TeleportWithMomentum(value); }
} }
public bool IsChildAgent
{
get { return GetSP().IsChildAgent; }
}
#region IAvatar implementation #region IAvatar implementation
public IAvatarAttachment[] Attachments public IAvatarAttachment[] Attachments
{ {

View File

@ -121,19 +121,19 @@ namespace OpenSim.Region.Modules.SvnSerialiser
{ {
serialiser.LoadPrimsFromXml2( serialiser.LoadPrimsFromXml2(
scene, scene,
m_svndir + Slash.DirectorySeparatorChar + scene.RegionInfo.RegionID m_svndir + Slash.DirectorySeparatorChar + scene.RegionInfo.RegionID
+ Slash.DirectorySeparatorChar + "objects.xml"); + Slash.DirectorySeparatorChar + "objects.xml");
scene.RequestModuleInterface<ITerrainModule>().LoadFromFile( scene.RequestModuleInterface<ITerrainModule>().LoadFromFile(
m_svndir + Slash.DirectorySeparatorChar + scene.RegionInfo.RegionID m_svndir + Slash.DirectorySeparatorChar + scene.RegionInfo.RegionID
+ Slash.DirectorySeparatorChar + "heightmap.r32"); + Slash.DirectorySeparatorChar + "heightmap.r32");
m_log.Info("[SVNBACKUP]: Region load successful (" + scene.RegionInfo.RegionName + ")."); m_log.Info("[SVNBACKUP]: Region load successful (" + scene.RegionInfo.RegionName + ").");
} }
else else
{ {
m_log.ErrorFormat( m_log.ErrorFormat(
"[SVNBACKUP]: Region load of {0} failed - no serialisation module available", "[SVNBACKUP]: Region load of {0} failed - no serialisation module available",
scene.RegionInfo.RegionName); scene.RegionInfo.RegionName);
} }
} }

View File

@ -72,23 +72,23 @@ namespace OpenSim.Region.Physics.OdePlugin
// Vehicle properties // Vehicle properties
private Vehicle m_type = Vehicle.TYPE_NONE; // If a 'VEHICLE', and what kind private Vehicle m_type = Vehicle.TYPE_NONE; // If a 'VEHICLE', and what kind
// private Quaternion m_referenceFrame = Quaternion.Identity; // Axis modifier // private Quaternion m_referenceFrame = Quaternion.Identity; // Axis modifier
private VehicleFlag m_flags = (VehicleFlag) 0; // Boolean settings: private VehicleFlag m_flags = (VehicleFlag) 0; // Boolean settings:
// HOVER_TERRAIN_ONLY // HOVER_TERRAIN_ONLY
// HOVER_GLOBAL_HEIGHT // HOVER_GLOBAL_HEIGHT
// NO_DEFLECTION_UP // NO_DEFLECTION_UP
// HOVER_WATER_ONLY // HOVER_WATER_ONLY
// HOVER_UP_ONLY // HOVER_UP_ONLY
// LIMIT_MOTOR_UP // LIMIT_MOTOR_UP
// LIMIT_ROLL_ONLY // LIMIT_ROLL_ONLY
private VehicleFlag m_Hoverflags = (VehicleFlag)0; private VehicleFlag m_Hoverflags = (VehicleFlag)0;
private Vector3 m_BlockingEndPoint = Vector3.Zero; private Vector3 m_BlockingEndPoint = Vector3.Zero;
private Quaternion m_RollreferenceFrame = Quaternion.Identity; private Quaternion m_RollreferenceFrame = Quaternion.Identity;
// Linear properties // Linear properties
private Vector3 m_linearMotorDirection = Vector3.Zero; // velocity requested by LSL, decayed by time private Vector3 m_linearMotorDirection = Vector3.Zero; // velocity requested by LSL, decayed by time
private Vector3 m_linearMotorDirectionLASTSET = Vector3.Zero; // velocity requested by LSL private Vector3 m_linearMotorDirectionLASTSET = Vector3.Zero; // velocity requested by LSL
private Vector3 m_dir = Vector3.Zero; // velocity applied to body private Vector3 m_dir = Vector3.Zero; // velocity applied to body
private Vector3 m_linearFrictionTimescale = Vector3.Zero; private Vector3 m_linearFrictionTimescale = Vector3.Zero;
private float m_linearMotorDecayTimescale = 0; private float m_linearMotorDecayTimescale = 0;
private float m_linearMotorTimescale = 0; private float m_linearMotorTimescale = 0;
@ -98,14 +98,14 @@ namespace OpenSim.Region.Physics.OdePlugin
// private Vector3 m_linearMotorOffset = Vector3.Zero; // private Vector3 m_linearMotorOffset = Vector3.Zero;
//Angular properties //Angular properties
private Vector3 m_angularMotorDirection = Vector3.Zero; // angular velocity requested by LSL motor private Vector3 m_angularMotorDirection = Vector3.Zero; // angular velocity requested by LSL motor
private int m_angularMotorApply = 0; // application frame counter private int m_angularMotorApply = 0; // application frame counter
private Vector3 m_angularMotorVelocity = Vector3.Zero; // current angular motor velocity private Vector3 m_angularMotorVelocity = Vector3.Zero; // current angular motor velocity
private float m_angularMotorTimescale = 0; // motor angular velocity ramp up rate private float m_angularMotorTimescale = 0; // motor angular velocity ramp up rate
private float m_angularMotorDecayTimescale = 0; // motor angular velocity decay rate private float m_angularMotorDecayTimescale = 0; // motor angular velocity decay rate
private Vector3 m_angularFrictionTimescale = Vector3.Zero; // body angular velocity decay rate private Vector3 m_angularFrictionTimescale = Vector3.Zero; // body angular velocity decay rate
private Vector3 m_lastAngularVelocity = Vector3.Zero; // what was last applied to body private Vector3 m_lastAngularVelocity = Vector3.Zero; // what was last applied to body
// private Vector3 m_lastVertAttractor = Vector3.Zero; // what VA was last applied to body // private Vector3 m_lastVertAttractor = Vector3.Zero; // what VA was last applied to body
//Deflection properties //Deflection properties
// private float m_angularDeflectionEfficiency = 0; // private float m_angularDeflectionEfficiency = 0;
@ -123,14 +123,14 @@ namespace OpenSim.Region.Physics.OdePlugin
// private float m_VhoverEfficiency = 0f; // private float m_VhoverEfficiency = 0f;
private float m_VhoverTimescale = 0f; private float m_VhoverTimescale = 0f;
private float m_VhoverTargetHeight = -1.0f; // if <0 then no hover, else its the current target height private float m_VhoverTargetHeight = -1.0f; // if <0 then no hover, else its the current target height
private float m_VehicleBuoyancy = 0f; //KF: m_VehicleBuoyancy is set by VEHICLE_BUOYANCY for a vehicle. private float m_VehicleBuoyancy = 0f; //KF: m_VehicleBuoyancy is set by VEHICLE_BUOYANCY for a vehicle.
// Modifies gravity. Slider between -1 (double-gravity) and 1 (full anti-gravity) // Modifies gravity. Slider between -1 (double-gravity) and 1 (full anti-gravity)
// KF: So far I have found no good method to combine a script-requested .Z velocity and gravity. // KF: So far I have found no good method to combine a script-requested .Z velocity and gravity.
// Therefore only m_VehicleBuoyancy=1 (0g) will use the script-requested .Z velocity. // Therefore only m_VehicleBuoyancy=1 (0g) will use the script-requested .Z velocity.
//Attractor properties //Attractor properties
private float m_verticalAttractionEfficiency = 1.0f; // damped private float m_verticalAttractionEfficiency = 1.0f; // damped
private float m_verticalAttractionTimescale = 500f; // Timescale > 300 means no vert attractor. private float m_verticalAttractionTimescale = 500f; // Timescale > 300 means no vert attractor.
internal void ProcessFloatVehicleParam(Vehicle pParam, float pValue) internal void ProcessFloatVehicleParam(Vehicle pParam, float pValue)
{ {

View File

@ -8192,38 +8192,38 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
{ {
m_host.AddScriptLPS(1); m_host.AddScriptLPS(1);
if (m_ScriptEngine.Config.GetBoolean("AllowGodFunctions", false)) if (m_ScriptEngine.Config.GetBoolean("AllowGodFunctions", false))
{ {
if (World.Permissions.CanRunConsoleCommand(m_host.OwnerID)) if (World.Permissions.CanRunConsoleCommand(m_host.OwnerID))
{ {
lock (m_host.TaskInventory) lock (m_host.TaskInventory)
{ {
foreach (KeyValuePair<UUID, TaskInventoryItem> inv in m_host.TaskInventory) foreach (KeyValuePair<UUID, TaskInventoryItem> inv in m_host.TaskInventory)
{ {
if (inv.Value.Name == item) if (inv.Value.Name == item)
{ {
switch (mask) switch (mask)
{ {
case 0: case 0:
inv.Value.BasePermissions = (uint)value; inv.Value.BasePermissions = (uint)value;
break; break;
case 1: case 1:
inv.Value.CurrentPermissions = (uint)value; inv.Value.CurrentPermissions = (uint)value;
break; break;
case 2: case 2:
inv.Value.GroupPermissions = (uint)value; inv.Value.GroupPermissions = (uint)value;
break; break;
case 3: case 3:
inv.Value.EveryonePermissions = (uint)value; inv.Value.EveryonePermissions = (uint)value;
break; break;
case 4: case 4:
inv.Value.NextPermissions = (uint)value; inv.Value.NextPermissions = (uint)value;
break; break;
} }
} }
} }
} }
} }
} }
} }
public LSL_String llGetInventoryCreator(string item) public LSL_String llGetInventoryCreator(string item)

View File

@ -841,7 +841,7 @@ namespace OpenSim.Region.ScriptEngine.XEngine
ObjectRemoved handlerObjectRemoved = OnObjectRemoved; ObjectRemoved handlerObjectRemoved = OnObjectRemoved;
if (handlerObjectRemoved != null) if (handlerObjectRemoved != null)
{ {
SceneObjectPart part = m_Scene.GetSceneObjectPart(localID); SceneObjectPart part = m_Scene.GetSceneObjectPart(localID);
handlerObjectRemoved(part.UUID); handlerObjectRemoved(part.UUID);
} }

View File

@ -207,7 +207,7 @@ namespace OpenSim.Server.Handlers.Asset
if (!request.ContainsKey("PRINCIPAL")) if (!request.ContainsKey("PRINCIPAL"))
return FailureResult(); return FailureResult();
if(m_InventoryService.CreateUserInventory(new UUID(request["PRINCIPAL"].ToString()))) if (m_InventoryService.CreateUserInventory(new UUID(request["PRINCIPAL"].ToString())))
result["RESULT"] = "True"; result["RESULT"] = "True";
else else
result["RESULT"] = "False"; result["RESULT"] = "False";

View File

@ -81,12 +81,12 @@ namespace OpenSim.Services.AssetService
} }
public AssetBase Get(string id) public AssetBase Get(string id)
{ {
UUID assetID; UUID assetID;
if (!UUID.TryParse(id, out assetID)) if (!UUID.TryParse(id, out assetID))
{ {
m_log.WarnFormat("[ASSET SERVICE]: Could not parse requested sset id {0}", id); m_log.WarnFormat("[ASSET SERVICE]: Could not parse requested sset id {0}", id);
return null; return null;
} }

View File

@ -93,7 +93,7 @@ namespace OpenSim.Services.Connectors
} }
public AssetBase Get(string id) public AssetBase Get(string id)
{ {
string uri = m_ServerURI + "/assets/" + id; string uri = m_ServerURI + "/assets/" + id;
AssetBase asset = null; AssetBase asset = null;