mirror of
https://github.com/opensim/opensim.git
synced 2026-08-09 02:36:00 +08:00
Implement XMLRPCAdmin command admin_teleport_agent.
This allows someone with access to this command on the XMLRPCAdmin interface to teleport an avatar to an arbitrary region and/or position.
This commit is contained in:
@@ -4206,7 +4206,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
/// <param name="action"></param>
|
||||
public void ForEachRootScenePresence(Action<ScenePresence> action)
|
||||
{
|
||||
if(m_sceneGraph != null)
|
||||
if (m_sceneGraph != null)
|
||||
{
|
||||
m_sceneGraph.ForEachAvatar(action);
|
||||
}
|
||||
@@ -4286,9 +4286,9 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
return m_sceneGraph.GetGroupByPrim(localID);
|
||||
}
|
||||
|
||||
public override bool TryGetScenePresence(UUID avatarId, out ScenePresence avatar)
|
||||
public override bool TryGetScenePresence(UUID agentID, out ScenePresence sp)
|
||||
{
|
||||
return m_sceneGraph.TryGetScenePresence(avatarId, out avatar);
|
||||
return m_sceneGraph.TryGetScenePresence(agentID, out sp);
|
||||
}
|
||||
|
||||
public bool TryGetAvatarByName(string avatarName, out ScenePresence avatar)
|
||||
|
||||
@@ -191,6 +191,12 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
return false;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Try to get a scene presence from the scene
|
||||
/// </summary>
|
||||
/// <param name="agentID"></param>
|
||||
/// <param name="scenePresence">null if there is no scene presence with the given agent id</param>
|
||||
/// <returns>true if there was a scene presence with the given id, false otherwise.</returns>
|
||||
public abstract bool TryGetScenePresence(UUID agentID, out ScenePresence scenePresence);
|
||||
|
||||
#endregion
|
||||
|
||||
@@ -545,6 +545,23 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
return false;
|
||||
}
|
||||
|
||||
public bool TryGetRootScenePresence(UUID avatarId, out ScenePresence avatar)
|
||||
{
|
||||
lock (m_localScenes)
|
||||
{
|
||||
foreach (Scene scene in m_localScenes)
|
||||
{
|
||||
avatar = scene.GetScenePresence(avatarId);
|
||||
|
||||
if (avatar != null && !avatar.IsChildAgent)
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
avatar = null;
|
||||
return false;
|
||||
}
|
||||
|
||||
public bool TryGetAvatarsScene(UUID avatarId, out Scene scene)
|
||||
{
|
||||
ScenePresence avatar = null;
|
||||
@@ -590,6 +607,22 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
return false;
|
||||
}
|
||||
|
||||
public bool TryGetRootScenePresenceByName(string firstName, string lastName, out ScenePresence sp)
|
||||
{
|
||||
lock (m_localScenes)
|
||||
{
|
||||
foreach (Scene scene in m_localScenes)
|
||||
{
|
||||
sp = scene.GetScenePresence(firstName, lastName);
|
||||
if (sp != null && !sp.IsChildAgent)
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
sp = null;
|
||||
return false;
|
||||
}
|
||||
|
||||
public void ForEachScene(Action<Scene> action)
|
||||
{
|
||||
lock (m_localScenes)
|
||||
|
||||
Reference in New Issue
Block a user