mirror of
https://github.com/opensim/opensim.git
synced 2026-08-09 18:55:58 +08:00
Make the "All Estates" option work from the client (this makes chosen changes to all the estates that the user owns).
This applies to adding/removing estate users, groups, managers and bans. This is the application of the AllEstates_0.5.patch from http://opensimulator.org/mantis/view.php?id=5420 Thanks very much, Snoopy!
This commit is contained in:
@@ -200,12 +200,13 @@ namespace OpenSim.Region.CoreModules.World.Estate
|
||||
}
|
||||
Scene.RegionInfo.RegionSettings.Save();
|
||||
TriggerRegionInfoChange();
|
||||
sendRegionHandshakeToAll();
|
||||
sendRegionInfoPacketToAll();
|
||||
}
|
||||
|
||||
private void handleCommitEstateTerrainTextureRequest(IClientAPI remoteClient)
|
||||
{
|
||||
sendRegionHandshakeToAll();
|
||||
// sendRegionHandshakeToAll();
|
||||
}
|
||||
|
||||
public void setRegionTerrainSettings(float WaterHeight,
|
||||
@@ -274,8 +275,25 @@ namespace OpenSim.Region.CoreModules.World.Estate
|
||||
{
|
||||
if (Scene.Permissions.CanIssueEstateCommand(remote_client.AgentId, true) || Scene.Permissions.BypassPermissions())
|
||||
{
|
||||
if ((estateAccessType & 1) != 0) // All estates
|
||||
{
|
||||
List<int> estateIDs = Scene.EstateDataService.GetEstatesByOwner(Scene.RegionInfo.EstateSettings.EstateOwner);
|
||||
EstateSettings estateSettings;
|
||||
|
||||
foreach (int estateID in estateIDs)
|
||||
{
|
||||
if (estateID != Scene.RegionInfo.EstateSettings.EstateID)
|
||||
{
|
||||
estateSettings = Scene.EstateDataService.LoadEstateSettings(estateID);
|
||||
estateSettings.AddEstateUser(user);
|
||||
estateSettings.Save();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Scene.RegionInfo.EstateSettings.AddEstateUser(user);
|
||||
Scene.RegionInfo.EstateSettings.Save();
|
||||
|
||||
TriggerEstateInfoChange();
|
||||
remote_client.SendEstateList(invoice, (int)Constants.EstateAccessCodex.AccessOptions, Scene.RegionInfo.EstateSettings.EstateAccess, Scene.RegionInfo.EstateSettings.EstateID);
|
||||
}
|
||||
@@ -289,10 +307,26 @@ namespace OpenSim.Region.CoreModules.World.Estate
|
||||
{
|
||||
if (Scene.Permissions.CanIssueEstateCommand(remote_client.AgentId, true) || Scene.Permissions.BypassPermissions())
|
||||
{
|
||||
if ((estateAccessType & 1) != 0) // All estates
|
||||
{
|
||||
List<int> estateIDs = Scene.EstateDataService.GetEstatesByOwner(Scene.RegionInfo.EstateSettings.EstateOwner);
|
||||
EstateSettings estateSettings;
|
||||
|
||||
foreach (int estateID in estateIDs)
|
||||
{
|
||||
if (estateID != Scene.RegionInfo.EstateSettings.EstateID)
|
||||
{
|
||||
estateSettings = Scene.EstateDataService.LoadEstateSettings(estateID);
|
||||
estateSettings.RemoveEstateUser(user);
|
||||
estateSettings.Save();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Scene.RegionInfo.EstateSettings.RemoveEstateUser(user);
|
||||
Scene.RegionInfo.EstateSettings.Save();
|
||||
TriggerEstateInfoChange();
|
||||
|
||||
TriggerEstateInfoChange();
|
||||
remote_client.SendEstateList(invoice, (int)Constants.EstateAccessCodex.AccessOptions, Scene.RegionInfo.EstateSettings.EstateAccess, Scene.RegionInfo.EstateSettings.EstateID);
|
||||
}
|
||||
else
|
||||
@@ -304,8 +338,25 @@ namespace OpenSim.Region.CoreModules.World.Estate
|
||||
{
|
||||
if (Scene.Permissions.CanIssueEstateCommand(remote_client.AgentId, true) || Scene.Permissions.BypassPermissions())
|
||||
{
|
||||
if ((estateAccessType & 1) != 0) // All estates
|
||||
{
|
||||
List<int> estateIDs = Scene.EstateDataService.GetEstatesByOwner(Scene.RegionInfo.EstateSettings.EstateOwner);
|
||||
EstateSettings estateSettings;
|
||||
|
||||
foreach (int estateID in estateIDs)
|
||||
{
|
||||
if (estateID != Scene.RegionInfo.EstateSettings.EstateID)
|
||||
{
|
||||
estateSettings = Scene.EstateDataService.LoadEstateSettings(estateID);
|
||||
estateSettings.AddEstateGroup(user);
|
||||
estateSettings.Save();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Scene.RegionInfo.EstateSettings.AddEstateGroup(user);
|
||||
Scene.RegionInfo.EstateSettings.Save();
|
||||
|
||||
TriggerEstateInfoChange();
|
||||
remote_client.SendEstateList(invoice, (int)Constants.EstateAccessCodex.AllowedGroups, Scene.RegionInfo.EstateSettings.EstateGroups, Scene.RegionInfo.EstateSettings.EstateID);
|
||||
}
|
||||
@@ -318,10 +369,26 @@ namespace OpenSim.Region.CoreModules.World.Estate
|
||||
{
|
||||
if (Scene.Permissions.CanIssueEstateCommand(remote_client.AgentId, true) || Scene.Permissions.BypassPermissions())
|
||||
{
|
||||
if ((estateAccessType & 1) != 0) // All estates
|
||||
{
|
||||
List<int> estateIDs = Scene.EstateDataService.GetEstatesByOwner(Scene.RegionInfo.EstateSettings.EstateOwner);
|
||||
EstateSettings estateSettings;
|
||||
|
||||
foreach (int estateID in estateIDs)
|
||||
{
|
||||
if (estateID != Scene.RegionInfo.EstateSettings.EstateID)
|
||||
{
|
||||
estateSettings = Scene.EstateDataService.LoadEstateSettings(estateID);
|
||||
estateSettings.RemoveEstateGroup(user);
|
||||
estateSettings.Save();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Scene.RegionInfo.EstateSettings.RemoveEstateGroup(user);
|
||||
Scene.RegionInfo.EstateSettings.Save();
|
||||
TriggerEstateInfoChange();
|
||||
|
||||
TriggerEstateInfoChange();
|
||||
remote_client.SendEstateList(invoice, (int)Constants.EstateAccessCodex.AllowedGroups, Scene.RegionInfo.EstateSettings.EstateGroups, Scene.RegionInfo.EstateSettings.EstateID);
|
||||
}
|
||||
else
|
||||
@@ -349,6 +416,29 @@ namespace OpenSim.Region.CoreModules.World.Estate
|
||||
if (!alreadyInList)
|
||||
{
|
||||
|
||||
if ((estateAccessType & 1) != 0) // All estates
|
||||
{
|
||||
List<int> estateIDs = Scene.EstateDataService.GetEstatesByOwner(Scene.RegionInfo.EstateSettings.EstateOwner);
|
||||
EstateSettings estateSettings;
|
||||
|
||||
foreach (int estateID in estateIDs)
|
||||
{
|
||||
if (estateID != Scene.RegionInfo.EstateSettings.EstateID)
|
||||
{
|
||||
EstateBan bitem = new EstateBan();
|
||||
|
||||
bitem.BannedUserID = user;
|
||||
bitem.EstateID = (uint)estateID;
|
||||
bitem.BannedHostAddress = "0.0.0.0";
|
||||
bitem.BannedHostIPMask = "0.0.0.0";
|
||||
|
||||
estateSettings = Scene.EstateDataService.LoadEstateSettings(estateID);
|
||||
estateSettings.AddBan(bitem);
|
||||
estateSettings.Save();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
EstateBan item = new EstateBan();
|
||||
|
||||
item.BannedUserID = user;
|
||||
@@ -358,6 +448,7 @@ namespace OpenSim.Region.CoreModules.World.Estate
|
||||
|
||||
Scene.RegionInfo.EstateSettings.AddBan(item);
|
||||
Scene.RegionInfo.EstateSettings.Save();
|
||||
|
||||
TriggerEstateInfoChange();
|
||||
|
||||
ScenePresence s = Scene.GetScenePresence(user);
|
||||
@@ -403,8 +494,25 @@ namespace OpenSim.Region.CoreModules.World.Estate
|
||||
|
||||
if (alreadyInList && listitem != null)
|
||||
{
|
||||
if ((estateAccessType & 1) != 0) // All estates
|
||||
{
|
||||
List<int> estateIDs = Scene.EstateDataService.GetEstatesByOwner(Scene.RegionInfo.EstateSettings.EstateOwner);
|
||||
EstateSettings estateSettings;
|
||||
|
||||
foreach (int estateID in estateIDs)
|
||||
{
|
||||
if (estateID != Scene.RegionInfo.EstateSettings.EstateID)
|
||||
{
|
||||
estateSettings = Scene.EstateDataService.LoadEstateSettings(estateID);
|
||||
estateSettings.RemoveBan(user);
|
||||
estateSettings.Save();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Scene.RegionInfo.EstateSettings.RemoveBan(listitem.BannedUserID);
|
||||
Scene.RegionInfo.EstateSettings.Save();
|
||||
|
||||
TriggerEstateInfoChange();
|
||||
}
|
||||
else
|
||||
@@ -424,8 +532,25 @@ namespace OpenSim.Region.CoreModules.World.Estate
|
||||
{
|
||||
if (Scene.Permissions.CanIssueEstateCommand(remote_client.AgentId, true) || Scene.Permissions.BypassPermissions())
|
||||
{
|
||||
if ((estateAccessType & 1) != 0) // All estates
|
||||
{
|
||||
List<int> estateIDs = Scene.EstateDataService.GetEstatesByOwner(Scene.RegionInfo.EstateSettings.EstateOwner);
|
||||
EstateSettings estateSettings;
|
||||
|
||||
foreach (int estateID in estateIDs)
|
||||
{
|
||||
if (estateID != Scene.RegionInfo.EstateSettings.EstateID)
|
||||
{
|
||||
estateSettings = Scene.EstateDataService.LoadEstateSettings(estateID);
|
||||
estateSettings.AddEstateManager(user);
|
||||
estateSettings.Save();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Scene.RegionInfo.EstateSettings.AddEstateManager(user);
|
||||
Scene.RegionInfo.EstateSettings.Save();
|
||||
|
||||
TriggerEstateInfoChange();
|
||||
remote_client.SendEstateList(invoice, (int)Constants.EstateAccessCodex.EstateManagers, Scene.RegionInfo.EstateSettings.EstateManagers, Scene.RegionInfo.EstateSettings.EstateID);
|
||||
}
|
||||
@@ -438,10 +563,26 @@ namespace OpenSim.Region.CoreModules.World.Estate
|
||||
{
|
||||
if (Scene.Permissions.CanIssueEstateCommand(remote_client.AgentId, true) || Scene.Permissions.BypassPermissions())
|
||||
{
|
||||
if ((estateAccessType & 1) != 0) // All estates
|
||||
{
|
||||
List<int> estateIDs = Scene.EstateDataService.GetEstatesByOwner(Scene.RegionInfo.EstateSettings.EstateOwner);
|
||||
EstateSettings estateSettings;
|
||||
|
||||
foreach (int estateID in estateIDs)
|
||||
{
|
||||
if (estateID != Scene.RegionInfo.EstateSettings.EstateID)
|
||||
{
|
||||
estateSettings = Scene.EstateDataService.LoadEstateSettings(estateID);
|
||||
estateSettings.RemoveEstateManager(user);
|
||||
estateSettings.Save();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Scene.RegionInfo.EstateSettings.RemoveEstateManager(user);
|
||||
Scene.RegionInfo.EstateSettings.Save();
|
||||
TriggerEstateInfoChange();
|
||||
|
||||
TriggerEstateInfoChange();
|
||||
remote_client.SendEstateList(invoice, (int)Constants.EstateAccessCodex.EstateManagers, Scene.RegionInfo.EstateSettings.EstateManagers, Scene.RegionInfo.EstateSettings.EstateID);
|
||||
}
|
||||
else
|
||||
|
||||
@@ -469,8 +469,8 @@ namespace OpenSim.Region.CoreModules
|
||||
m_SunFixedHour = FixedSunHour;
|
||||
m_SunFixed = FixedSun;
|
||||
|
||||
m_log.DebugFormat("[SUN]: Sun Settings Update: Fixed Sun? : {0}", m_SunFixed.ToString());
|
||||
m_log.DebugFormat("[SUN]: Sun Settings Update: Sun Hour : {0}", m_SunFixedHour.ToString());
|
||||
// m_log.DebugFormat("[SUN]: Sun Settings Update: Fixed Sun? : {0}", m_SunFixed.ToString());
|
||||
// m_log.DebugFormat("[SUN]: Sun Settings Update: Sun Hour : {0}", m_SunFixedHour.ToString());
|
||||
|
||||
receivedEstateToolsSunUpdate = true;
|
||||
|
||||
@@ -480,7 +480,7 @@ namespace OpenSim.Region.CoreModules
|
||||
// When sun settings are updated, we should update all clients with new settings.
|
||||
SunUpdateToAllClients();
|
||||
|
||||
m_log.DebugFormat("[SUN]: PosTime : {0}", PosTime.ToString());
|
||||
// m_log.DebugFormat("[SUN]: PosTime : {0}", PosTime.ToString());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user