mirror of
https://github.com/opensim/opensim.git
synced 2026-08-05 17:05:55 +08:00
implement serverside checks for media texture navigation in order to stop naughty clients
This commit is contained in:
@@ -82,6 +82,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
public delegate bool DeleteUserInventoryHandler(UUID itemID, UUID userID);
|
||||
public delegate bool TeleportHandler(UUID userID, Scene scene);
|
||||
public delegate bool ControlPrimMediaHandler(UUID userID, UUID primID, int face);
|
||||
public delegate bool InteractWithPrimMediaHandler(UUID userID, UUID primID, int face);
|
||||
#endregion
|
||||
|
||||
public class ScenePermissions
|
||||
@@ -141,6 +142,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
public event DeleteUserInventoryHandler OnDeleteUserInventory;
|
||||
public event TeleportHandler OnTeleport;
|
||||
public event ControlPrimMediaHandler OnControlPrimMedia;
|
||||
public event InteractWithPrimMediaHandler OnInteractWithPrimMedia;
|
||||
#endregion
|
||||
|
||||
#region Object Permission Checks
|
||||
@@ -963,6 +965,21 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
public bool CanInteractWithPrimMedia(UUID userID, UUID primID, int face)
|
||||
{
|
||||
InteractWithPrimMediaHandler handler = OnInteractWithPrimMedia;
|
||||
if (handler != null)
|
||||
{
|
||||
Delegate[] list = handler.GetInvocationList();
|
||||
foreach (InteractWithPrimMediaHandler h in list)
|
||||
{
|
||||
if (h(userID, primID, face) == false)
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user