diff options
Diffstat (limited to 'OpenSim/Region/CoreModules')
-rw-r--r-- | OpenSim/Region/CoreModules/World/Land/LandManagementModule.cs | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/OpenSim/Region/CoreModules/World/Land/LandManagementModule.cs b/OpenSim/Region/CoreModules/World/Land/LandManagementModule.cs index 9bcaf32..4f24415 100644 --- a/OpenSim/Region/CoreModules/World/Land/LandManagementModule.cs +++ b/OpenSim/Region/CoreModules/World/Land/LandManagementModule.cs | |||
@@ -367,10 +367,18 @@ namespace OpenSim.Region.CoreModules.World.Land | |||
367 | private void ForceAvatarToPosition(ScenePresence avatar, Vector3? position) | 367 | private void ForceAvatarToPosition(ScenePresence avatar, Vector3? position) |
368 | { | 368 | { |
369 | if (m_scene.Permissions.IsGod(avatar.UUID)) return; | 369 | if (m_scene.Permissions.IsGod(avatar.UUID)) return; |
370 | if (position.HasValue) | 370 | |
371 | { | 371 | if (!position.HasValue) |
372 | forcedPosition[avatar.ControllingClient.AgentId] = (Vector3)position; | 372 | return; |
373 | } | 373 | |
374 | bool isFlying = avatar.PhysicsActor.Flying; | ||
375 | avatar.RemoveFromPhysicalScene(); | ||
376 | |||
377 | avatar.AbsolutePosition = (Vector3)position; | ||
378 | |||
379 | avatar.AddToPhysicalScene(isFlying); | ||
380 | |||
381 | forcedPosition[avatar.ControllingClient.AgentId] = (Vector3)position; | ||
374 | } | 382 | } |
375 | 383 | ||
376 | public void SendYouAreRestrictedNotice(ScenePresence avatar) | 384 | public void SendYouAreRestrictedNotice(ScenePresence avatar) |