a few changes to last patch

0.9.1.0-post-fixes
UbitUmarov 2018-09-30 05:11:34 +01:00
parent 5751add537
commit 0f1bc23039
1 changed files with 28 additions and 28 deletions

View File

@ -2139,59 +2139,60 @@ namespace OpenSim.Region.CoreModules.World.Land
public void ClientOnParcelGodMark(IClientAPI client, UUID god, int landID) public void ClientOnParcelGodMark(IClientAPI client, UUID god, int landID)
{ {
ILandObject land = null;
List<ILandObject> Land = ((Scene)client.Scene).LandChannel.AllParcels();
((Scene)client.Scene).TryGetScenePresence(client.AgentId, out ScenePresence sp); ((Scene)client.Scene).TryGetScenePresence(client.AgentId, out ScenePresence sp);
if (sp == null) if (sp == null)
return; return;
if (sp.IsChildAgent || sp.IsDeleted || sp.IsInTransit || sp.IsNPC) if (sp.IsChildAgent || sp.IsDeleted || sp.IsInTransit || sp.IsNPC)
return; return;
if (!sp.IsGod) if (!sp.IsGod)
{ {
client.SendAlertMessage("Request denied. You're not priviliged."); client.SendAlertMessage("Request denied. You're not priviliged.");
return; return;
} }
if (!sp.IsViewerUIGod)
ILandObject land = null;
List<ILandObject> Lands = ((Scene)client.Scene).LandChannel.AllParcels();
foreach (ILandObject landObject in Lands)
{ {
client.SendAlertMessage("Please activate God Mode."); if (landObject.LandData.LocalID == landID)
return; {
land = landObject;
break;
}
} }
if (land == null)
return;
bool GodParcelOwner = false; bool validParcelOwner = false;
if (m_scene.UserAccountService.GetUserAccount(m_scene.RegionInfo.ScopeID, DefaultGodParcelOwner) != null) if (DefaultGodParcelOwner != UUID.Zero && m_scene.UserAccountService.GetUserAccount(m_scene.RegionInfo.ScopeID, DefaultGodParcelOwner) != null)
GodParcelOwner = true; validParcelOwner = true;
bool GodParcelGroup = false; bool validParcelGroup = false;
if (m_groupManager != null) if (m_groupManager != null)
{ {
if (DefaultGodParcelGroup != UUID.Zero && m_groupManager.GetGroupRecord(DefaultGodParcelGroup) != null) if (DefaultGodParcelGroup != UUID.Zero && m_groupManager.GetGroupRecord(DefaultGodParcelGroup) != null)
GodParcelGroup = true; validParcelGroup = true;
} }
if (!GodParcelOwner && !GodParcelGroup) if (!validParcelOwner && !validParcelGroup)
{ {
client.SendAlertMessage("Please check ini files.\n[LandManagement] config section."); client.SendAlertMessage("Please check ini files.\n[LandManagement] config section.");
return; return;
} }
foreach (ILandObject landObject in Land) land.LandData.AnyAVSounds = true;
{ land.LandData.SeeAVs = true;
if (landObject.LandData.LocalID == landID) land.LandData.GroupAVSounds = true;
land = landObject;
}
if (land == null)
return;
land.LandData.AnyAVSounds = false;
land.LandData.AuthBuyerID = UUID.Zero; land.LandData.AuthBuyerID = UUID.Zero;
land.LandData.Category = ParcelCategory.Linden; land.LandData.Category = ParcelCategory.None;
land.LandData.ClaimDate = Util.UnixTimeSinceEpoch(); land.LandData.ClaimDate = Util.UnixTimeSinceEpoch();
land.LandData.Description = String.Empty; land.LandData.Description = String.Empty;
land.LandData.Dwell = 0; land.LandData.Dwell = 0;
land.LandData.Flags = (uint)ParcelFlags.None; land.LandData.Flags = (uint)ParcelFlags.AllowFly | (uint)ParcelFlags.AllowLandmark |
land.LandData.GroupAVSounds = false; (uint)ParcelFlags.AllowAPrimitiveEntry |
(uint)ParcelFlags.AllowDeedToGroup |
(uint)ParcelFlags.CreateObjects | (uint)ParcelFlags.AllowOtherScripts |
(uint)ParcelFlags.AllowVoiceChat;
land.LandData.LandingType = (byte)LandingType.Direct; land.LandData.LandingType = (byte)LandingType.Direct;
land.LandData.LastDwellTimeMS = Util.GetTimeStampMS(); land.LandData.LastDwellTimeMS = Util.GetTimeStampMS();
land.LandData.MediaAutoScale = 0; land.LandData.MediaAutoScale = 0;
@ -2210,11 +2211,10 @@ namespace OpenSim.Region.CoreModules.World.Land
land.LandData.PassHours = 0; land.LandData.PassHours = 0;
land.LandData.PassPrice = 0; land.LandData.PassPrice = 0;
land.LandData.SalePrice = 0; land.LandData.SalePrice = 0;
land.LandData.SeeAVs = false;
land.LandData.SnapshotID = UUID.Zero; land.LandData.SnapshotID = UUID.Zero;
land.LandData.Status = ParcelStatus.Leased; land.LandData.Status = ParcelStatus.Leased;
if (GodParcelOwner) if (validParcelOwner)
{ {
land.LandData.OwnerID = DefaultGodParcelOwner; land.LandData.OwnerID = DefaultGodParcelOwner;
land.LandData.IsGroupOwned = false; land.LandData.IsGroupOwned = false;
@ -2225,7 +2225,7 @@ namespace OpenSim.Region.CoreModules.World.Land
land.LandData.IsGroupOwned = true; land.LandData.IsGroupOwned = true;
} }
if (GodParcelGroup) if (validParcelGroup)
land.LandData.GroupID = DefaultGodParcelGroup; land.LandData.GroupID = DefaultGodParcelGroup;
else else
land.LandData.GroupID = UUID.Zero; land.LandData.GroupID = UUID.Zero;