diff options
Diffstat (limited to 'OpenSim/Region/Environment')
-rw-r--r-- | OpenSim/Region/Environment/EstateManager.cs | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/OpenSim/Region/Environment/EstateManager.cs b/OpenSim/Region/Environment/EstateManager.cs index ec556a6..ba4f0c6 100644 --- a/OpenSim/Region/Environment/EstateManager.cs +++ b/OpenSim/Region/Environment/EstateManager.cs | |||
@@ -221,10 +221,35 @@ namespace OpenSim.Region.Environment | |||
221 | SetRegionDebug(remote_client, packet); | 221 | SetRegionDebug(remote_client, packet); |
222 | } | 222 | } |
223 | break; | 223 | break; |
224 | case "teleporthomeuser": | ||
225 | if (m_scene.PermissionsMngr.GenericEstatePermission(remote_client.AgentId)) | ||
226 | { | ||
227 | TeleportOneUserHome(remote_client,packet); | ||
228 | } | ||
229 | break; | ||
224 | default: | 230 | default: |
225 | m_log.Error("EstateOwnerMessage: Unknown method requested\n" + packet.ToString()); | 231 | m_log.Error("EstateOwnerMessage: Unknown method requested\n" + packet.ToString()); |
226 | break; | 232 | break; |
227 | } | 233 | } |
234 | |||
235 | |||
236 | } | ||
237 | |||
238 | private void TeleportOneUserHome(object remove_client,EstateOwnerMessagePacket packet) | ||
239 | { | ||
240 | LLUUID invoice = packet.MethodData.Invoice; | ||
241 | LLUUID SenderID = packet.AgentData.AgentID; | ||
242 | LLUUID Prey = LLUUID.Zero; | ||
243 | |||
244 | Helpers.TryParse(Helpers.FieldToUTF8String(packet.ParamList[1].Parameter),out Prey); | ||
245 | if (Prey != LLUUID.Zero) | ||
246 | { | ||
247 | ScenePresence s = m_scene.GetScenePresence(Prey); | ||
248 | if (s != null) | ||
249 | { | ||
250 | m_scene.TeleportClientHome(Prey, s.ControllingClient); | ||
251 | } | ||
252 | } | ||
228 | } | 253 | } |
229 | 254 | ||
230 | private void SetRegionDebug(IClientAPI remote_client, EstateOwnerMessagePacket packet) | 255 | private void SetRegionDebug(IClientAPI remote_client, EstateOwnerMessagePacket packet) |