Merge branch 'master' into careminster
Conflicts: OpenSim/Region/Framework/Interfaces/IEstateModule.csavinationmerge
commit
4a67e8b98f
|
@ -162,7 +162,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Friends
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void InitModule(IConfigSource config)
|
protected virtual void InitModule(IConfigSource config)
|
||||||
{
|
{
|
||||||
IConfig friendsConfig = config.Configs["Friends"];
|
IConfig friendsConfig = config.Configs["Friends"];
|
||||||
if (friendsConfig != null)
|
if (friendsConfig != null)
|
||||||
|
@ -546,7 +546,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Friends
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void OnInstantMessage(IClientAPI client, GridInstantMessage im)
|
protected virtual void OnInstantMessage(IClientAPI client, GridInstantMessage im)
|
||||||
{
|
{
|
||||||
if ((InstantMessageDialog)im.dialog == InstantMessageDialog.FriendshipOffered)
|
if ((InstantMessageDialog)im.dialog == InstantMessageDialog.FriendshipOffered)
|
||||||
{
|
{
|
||||||
|
|
|
@ -50,6 +50,8 @@ namespace OpenSim.Region.CoreModules.Avatar.Friends
|
||||||
{
|
{
|
||||||
private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
|
private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
|
||||||
|
|
||||||
|
private int m_levelHGFriends = 0;
|
||||||
|
|
||||||
IUserManagement m_uMan;
|
IUserManagement m_uMan;
|
||||||
public IUserManagement UserManagementModule
|
public IUserManagement UserManagementModule
|
||||||
{
|
{
|
||||||
|
@ -87,6 +89,21 @@ namespace OpenSim.Region.CoreModules.Avatar.Friends
|
||||||
m_StatusNotifier = new HGStatusNotifier(this);
|
m_StatusNotifier = new HGStatusNotifier(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected override void InitModule(IConfigSource config)
|
||||||
|
{
|
||||||
|
base.InitModule(config);
|
||||||
|
|
||||||
|
// Additionally to the base method
|
||||||
|
IConfig friendsConfig = config.Configs["HGFriendsModule"];
|
||||||
|
if (friendsConfig != null)
|
||||||
|
{
|
||||||
|
m_levelHGFriends = friendsConfig.GetInt("LevelHGFriends", 0);
|
||||||
|
|
||||||
|
// TODO: read in all config variables pertaining to
|
||||||
|
// HG friendship permissions
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region IFriendsSimConnector
|
#region IFriendsSimConnector
|
||||||
|
@ -105,6 +122,35 @@ namespace OpenSim.Region.CoreModules.Avatar.Friends
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
protected override void OnInstantMessage(IClientAPI client, GridInstantMessage im)
|
||||||
|
{
|
||||||
|
if ((InstantMessageDialog)im.dialog == InstantMessageDialog.FriendshipOffered)
|
||||||
|
{
|
||||||
|
// we got a friendship offer
|
||||||
|
UUID principalID = new UUID(im.fromAgentID);
|
||||||
|
UUID friendID = new UUID(im.toAgentID);
|
||||||
|
|
||||||
|
// Check if friendID is foreigner and if principalID has the permission
|
||||||
|
// to request friendships with foreigners. If not, return immediately.
|
||||||
|
if (!UserManagementModule.IsLocalGridUser(friendID))
|
||||||
|
{
|
||||||
|
ScenePresence avatar = null;
|
||||||
|
((Scene)client.Scene).TryGetScenePresence(principalID, out avatar);
|
||||||
|
|
||||||
|
if (avatar == null)
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (avatar.UserLevel < m_levelHGFriends)
|
||||||
|
{
|
||||||
|
client.SendAgentAlertMessage("Unable to send friendship invitation to foreigner. Insufficient permissions.", false);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
base.OnInstantMessage(client, im);
|
||||||
|
}
|
||||||
|
|
||||||
protected override void OnApproveFriendRequest(IClientAPI client, UUID friendID, List<UUID> callingCardFolders)
|
protected override void OnApproveFriendRequest(IClientAPI client, UUID friendID, List<UUID> callingCardFolders)
|
||||||
{
|
{
|
||||||
// Update the local cache. Yes, we need to do it right here
|
// Update the local cache. Yes, we need to do it right here
|
||||||
|
|
|
@ -168,12 +168,18 @@ namespace OpenSim.Region.CoreModules.World.Estate
|
||||||
sendRegionInfoPacketToAll();
|
sendRegionInfoPacketToAll();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setEstateTerrainBaseTexture(IClientAPI remoteClient, int corner, UUID texture)
|
public void setEstateTerrainBaseTexture(int level, UUID texture)
|
||||||
|
{
|
||||||
|
setEstateTerrainBaseTexture(null, level, texture);
|
||||||
|
sendRegionHandshakeToAll();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setEstateTerrainBaseTexture(IClientAPI remoteClient, int level, UUID texture)
|
||||||
{
|
{
|
||||||
if (texture == UUID.Zero)
|
if (texture == UUID.Zero)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
switch (corner)
|
switch (level)
|
||||||
{
|
{
|
||||||
case 0:
|
case 0:
|
||||||
Scene.RegionInfo.RegionSettings.TerrainTexture1 = texture;
|
Scene.RegionInfo.RegionSettings.TerrainTexture1 = texture;
|
||||||
|
@ -193,6 +199,11 @@ namespace OpenSim.Region.CoreModules.World.Estate
|
||||||
sendRegionInfoPacketToAll();
|
sendRegionInfoPacketToAll();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void setEstateTerrainTextureHeights(int corner, float lowValue, float highValue)
|
||||||
|
{
|
||||||
|
setEstateTerrainTextureHeights(null, corner, lowValue, highValue);
|
||||||
|
}
|
||||||
|
|
||||||
public void setEstateTerrainTextureHeights(IClientAPI client, int corner, float lowValue, float highValue)
|
public void setEstateTerrainTextureHeights(IClientAPI client, int corner, float lowValue, float highValue)
|
||||||
{
|
{
|
||||||
switch (corner)
|
switch (corner)
|
||||||
|
|
|
@ -447,7 +447,10 @@ namespace OpenSim.Region.CoreModules.World.Land
|
||||||
{
|
{
|
||||||
bool isMember;
|
bool isMember;
|
||||||
if (m_groupMemberCache.TryGetValue(avatar, out isMember))
|
if (m_groupMemberCache.TryGetValue(avatar, out isMember))
|
||||||
|
{
|
||||||
|
m_groupMemberCache.Update(avatar, isMember, m_groupMemberCacheTimeout);
|
||||||
return isMember;
|
return isMember;
|
||||||
|
}
|
||||||
|
|
||||||
IGroupsModule groupsModule = m_scene.RequestModuleInterface<IGroupsModule>();
|
IGroupsModule groupsModule = m_scene.RequestModuleInterface<IGroupsModule>();
|
||||||
if (groupsModule == null)
|
if (groupsModule == null)
|
||||||
|
|
|
@ -47,5 +47,8 @@ namespace OpenSim.Region.Framework.Interfaces
|
||||||
void sendRegionHandshakeToAll();
|
void sendRegionHandshakeToAll();
|
||||||
void TriggerEstateInfoChange();
|
void TriggerEstateInfoChange();
|
||||||
void TriggerRegionInfoChange();
|
void TriggerRegionInfoChange();
|
||||||
|
|
||||||
|
void setEstateTerrainBaseTexture(int level, UUID texture);
|
||||||
|
void setEstateTerrainTextureHeights(int corner, float lowValue, float highValue);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -3095,5 +3095,60 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
|
||||||
|
|
||||||
return ScriptBaseClass.TRUE;
|
return ScriptBaseClass.TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Sets terrain estate texture
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="level"></param>
|
||||||
|
/// <param name="texture"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
public void osSetTerrainTexture(int level, LSL_Key texture)
|
||||||
|
{
|
||||||
|
CheckThreatLevel(ThreatLevel.High, "osSetTerrainTexture");
|
||||||
|
|
||||||
|
m_host.AddScriptLPS(1);
|
||||||
|
//Check to make sure that the script's owner is the estate manager/master
|
||||||
|
//World.Permissions.GenericEstatePermission(
|
||||||
|
if (World.Permissions.IsGod(m_host.OwnerID))
|
||||||
|
{
|
||||||
|
if (level < 0 || level > 3)
|
||||||
|
return;
|
||||||
|
|
||||||
|
UUID textureID = new UUID();
|
||||||
|
if (!UUID.TryParse(texture, out textureID))
|
||||||
|
return;
|
||||||
|
|
||||||
|
// estate module is required
|
||||||
|
IEstateModule estate = World.RequestModuleInterface<IEstateModule>();
|
||||||
|
if (estate != null)
|
||||||
|
estate.setEstateTerrainBaseTexture(level, textureID);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Sets terrain heights of estate
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="corner"></param>
|
||||||
|
/// <param name="low"></param>
|
||||||
|
/// <param name="high"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
public void osSetTerrainTextureHeight(int corner, double low, double high)
|
||||||
|
{
|
||||||
|
CheckThreatLevel(ThreatLevel.High, "osSetTerrainTextureHeight");
|
||||||
|
|
||||||
|
m_host.AddScriptLPS(1);
|
||||||
|
//Check to make sure that the script's owner is the estate manager/master
|
||||||
|
//World.Permissions.GenericEstatePermission(
|
||||||
|
if (World.Permissions.IsGod(m_host.OwnerID))
|
||||||
|
{
|
||||||
|
if (corner < 0 || corner > 3)
|
||||||
|
return;
|
||||||
|
|
||||||
|
// estate module is required
|
||||||
|
IEstateModule estate = World.RequestModuleInterface<IEstateModule>();
|
||||||
|
if (estate != null)
|
||||||
|
estate.setEstateTerrainTextureHeights(corner, (float)low, (float)high);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -234,5 +234,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api.Interfaces
|
||||||
|
|
||||||
LSL_Integer osInviteToGroup(LSL_Key agentId);
|
LSL_Integer osInviteToGroup(LSL_Key agentId);
|
||||||
LSL_Integer osEjectFromGroup(LSL_Key agentId);
|
LSL_Integer osEjectFromGroup(LSL_Key agentId);
|
||||||
|
|
||||||
|
void osSetTerrainTexture(int level, LSL_Key texture);
|
||||||
|
void osSetTerrainTextureHeight(int corner, double low, double high);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -878,5 +878,15 @@ namespace OpenSim.Region.ScriptEngine.Shared.ScriptBase
|
||||||
{
|
{
|
||||||
return m_OSSL_Functions.osEjectFromGroup(agentId);
|
return m_OSSL_Functions.osEjectFromGroup(agentId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void osSetTerrainTexture(int level, LSL_Key texture)
|
||||||
|
{
|
||||||
|
m_OSSL_Functions.osSetTerrainTexture(level, texture);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void osSetTerrainTextureHeight(int corner, double low, double high)
|
||||||
|
{
|
||||||
|
m_OSSL_Functions.osSetTerrainTextureHeight(corner, low, high);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -116,29 +116,36 @@ namespace OpenSim.Services.Connectors
|
||||||
}
|
}
|
||||||
else if (replyData.ContainsKey("Result")&& (replyData["Result"].ToString().ToLower() == "failure"))
|
else if (replyData.ContainsKey("Result")&& (replyData["Result"].ToString().ToLower() == "failure"))
|
||||||
{
|
{
|
||||||
m_log.DebugFormat("[GRID CONNECTOR]: Registration failed: {0}", replyData["Message"].ToString());
|
m_log.ErrorFormat(
|
||||||
|
"[GRID CONNECTOR]: Registration failed: {0} when contacting {1}", replyData["Message"], uri);
|
||||||
|
|
||||||
return replyData["Message"].ToString();
|
return replyData["Message"].ToString();
|
||||||
}
|
}
|
||||||
else if (!replyData.ContainsKey("Result"))
|
else if (!replyData.ContainsKey("Result"))
|
||||||
{
|
{
|
||||||
m_log.DebugFormat("[GRID CONNECTOR]: reply data does not contain result field");
|
m_log.ErrorFormat(
|
||||||
|
"[GRID CONNECTOR]: reply data does not contain result field when contacting {0}", uri);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
m_log.DebugFormat("[GRID CONNECTOR]: unexpected result {0}", replyData["Result"].ToString());
|
m_log.ErrorFormat(
|
||||||
return "Unexpected result "+replyData["Result"].ToString();
|
"[GRID CONNECTOR]: unexpected result {0} when contacting {1}", replyData["Result"], uri);
|
||||||
}
|
|
||||||
|
|
||||||
|
return "Unexpected result " + replyData["Result"].ToString();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
m_log.DebugFormat("[GRID CONNECTOR]: RegisterRegion received null reply");
|
{
|
||||||
|
m_log.ErrorFormat(
|
||||||
|
"[GRID CONNECTOR]: RegisterRegion received null reply when contacting grid server at {0}", uri);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
{
|
{
|
||||||
m_log.DebugFormat("[GRID CONNECTOR]: Exception when contacting grid server at {0}: {1}", uri, e.Message);
|
m_log.ErrorFormat("[GRID CONNECTOR]: Exception when contacting grid server at {0}: {1}", uri, e.Message);
|
||||||
}
|
}
|
||||||
|
|
||||||
return "Error communicating with grid service";
|
return string.Format("Error communicating with the grid service at {0}", uri);
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool DeregisterRegion(UUID regionID)
|
public bool DeregisterRegion(UUID regionID)
|
||||||
|
|
|
@ -1129,7 +1129,7 @@
|
||||||
|
|
||||||
; Maximum number of llListen events we allow over the entire region.
|
; Maximum number of llListen events we allow over the entire region.
|
||||||
; Set this to 0 to have no limit imposed
|
; Set this to 0 to have no limit imposed
|
||||||
max_listeners_per_region = 1000
|
max_listens_per_region = 1000
|
||||||
|
|
||||||
; Maximum number of llListen events we allow per script
|
; Maximum number of llListen events we allow per script
|
||||||
; Set this to 0 to have no limit imposed.
|
; Set this to 0 to have no limit imposed.
|
||||||
|
|
|
@ -137,6 +137,10 @@
|
||||||
;; uncomment the next line. You may want to do this on sims that have licensed content.
|
;; uncomment the next line. You may want to do this on sims that have licensed content.
|
||||||
; OutboundPermission = False
|
; OutboundPermission = False
|
||||||
|
|
||||||
|
[HGFriendsModule]
|
||||||
|
; User level required to be able to send friendship invitations to foreign users
|
||||||
|
;LevelHGFriends = 0;
|
||||||
|
|
||||||
[UserAgentService]
|
[UserAgentService]
|
||||||
;
|
;
|
||||||
; === HG ONLY ===
|
; === HG ONLY ===
|
||||||
|
|
|
@ -61,6 +61,10 @@
|
||||||
;; uncomment the next line. You may want to do this on sims that have licensed content.
|
;; uncomment the next line. You may want to do this on sims that have licensed content.
|
||||||
; OutboundPermission = False
|
; OutboundPermission = False
|
||||||
|
|
||||||
|
[HGFriendsModule]
|
||||||
|
; User level required to be able to send friendship invitations to foreign users
|
||||||
|
;LevelHGFriends = 0;
|
||||||
|
|
||||||
[GridService]
|
[GridService]
|
||||||
;; For in-memory region storage (default)
|
;; For in-memory region storage (default)
|
||||||
StorageProvider = "OpenSim.Data.Null.dll:NullRegionData"
|
StorageProvider = "OpenSim.Data.Null.dll:NullRegionData"
|
||||||
|
|
Loading…
Reference in New Issue