diff options
author | Melanie Thielker | 2008-07-18 02:40:47 +0000 |
---|---|---|
committer | Melanie Thielker | 2008-07-18 02:40:47 +0000 |
commit | 263633e274082135b21b8183b92280b768d18883 (patch) | |
tree | f6104eef3633a8b454a4e8ac09d15182970c6bae /OpenSim/Region/ClientStack/LindenUDP | |
parent | added region port number to output of "show regions" command (diff) | |
download | opensim-SC_OLD-263633e274082135b21b8183b92280b768d18883.zip opensim-SC_OLD-263633e274082135b21b8183b92280b768d18883.tar.gz opensim-SC_OLD-263633e274082135b21b8183b92280b768d18883.tar.bz2 opensim-SC_OLD-263633e274082135b21b8183b92280b768d18883.tar.xz |
Patch #9151
Makes the estate dialog fully functional. Implements all client facing functionality. Moves estate data from estate_settings.xml, which is used to provide defaults, to the region data store. Creates one estate for each region, and places the region in it. Converts all region bans to estate bans.
Diffstat (limited to 'OpenSim/Region/ClientStack/LindenUDP')
-rw-r--r-- | OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs | 64 |
1 files changed, 42 insertions, 22 deletions
diff --git a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs index b170f28..2c05097 100644 --- a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs +++ b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs | |||
@@ -166,6 +166,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
166 | private GenericCall4 handlerDeRezObject = null; //OnDeRezObject; | 166 | private GenericCall4 handlerDeRezObject = null; //OnDeRezObject; |
167 | private ModifyTerrain handlerModifyTerrain = null; | 167 | private ModifyTerrain handlerModifyTerrain = null; |
168 | private BakeTerrain handlerBakeTerrain = null; | 168 | private BakeTerrain handlerBakeTerrain = null; |
169 | private EstateChangeInfo handlerEstateChangeInfo = null; | ||
169 | private Action<IClientAPI> handlerRegionHandShakeReply = null; //OnRegionHandShakeReply; | 170 | private Action<IClientAPI> handlerRegionHandShakeReply = null; //OnRegionHandShakeReply; |
170 | private GenericCall2 handlerRequestWearables = null; //OnRequestWearables; | 171 | private GenericCall2 handlerRequestWearables = null; //OnRequestWearables; |
171 | private Action<IClientAPI> handlerRequestAvatarsData = null; //OnRequestAvatarsData; | 172 | private Action<IClientAPI> handlerRequestAvatarsData = null; //OnRequestAvatarsData; |
@@ -920,6 +921,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
920 | public event CommitEstateTerrainTextureRequest OnCommitEstateTerrainTextureRequest; | 921 | public event CommitEstateTerrainTextureRequest OnCommitEstateTerrainTextureRequest; |
921 | public event SetRegionTerrainSettings OnSetRegionTerrainSettings; | 922 | public event SetRegionTerrainSettings OnSetRegionTerrainSettings; |
922 | public event BakeTerrain OnBakeTerrain; | 923 | public event BakeTerrain OnBakeTerrain; |
924 | public event EstateChangeInfo OnEstateChangeInfo; | ||
923 | public event EstateRestartSimRequest OnEstateRestartSimRequest; | 925 | public event EstateRestartSimRequest OnEstateRestartSimRequest; |
924 | public event EstateChangeCovenantRequest OnEstateChangeCovenantRequest; | 926 | public event EstateChangeCovenantRequest OnEstateChangeCovenantRequest; |
925 | public event UpdateEstateAccessDeltaRequest OnUpdateEstateAccessDeltaRequest; | 927 | public event UpdateEstateAccessDeltaRequest OnUpdateEstateAccessDeltaRequest; |
@@ -2614,18 +2616,17 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
2614 | this.OutPacket(packet, ThrottleOutPacketType.Task); | 2616 | this.OutPacket(packet, ThrottleOutPacketType.Task); |
2615 | } | 2617 | } |
2616 | 2618 | ||
2617 | public void SendBannedUserList(LLUUID invoice, List<RegionBanListItem> banlist, uint estateID) | 2619 | public void SendBannedUserList(LLUUID invoice, EstateBan[] bl, uint estateID) |
2618 | { | 2620 | { |
2619 | RegionBanListItem[] bl = banlist.ToArray(); | 2621 | List<LLUUID>BannedUsers = new List<LLUUID>(); |
2620 | |||
2621 | LLUUID[] BannedUsers = new LLUUID[bl.Length]; | ||
2622 | |||
2623 | 2622 | ||
2624 | for (int i = 0; i < bl.Length; i++) | 2623 | for (int i = 0; i < bl.Length; i++) |
2625 | { | 2624 | { |
2626 | if (bl[i] == null) | 2625 | if (bl[i] == null) |
2627 | continue; | 2626 | continue; |
2628 | BannedUsers[i] = bl[i].bannedUUID; | 2627 | if (bl[i].bannedUUID == LLUUID.Zero) |
2628 | continue; | ||
2629 | BannedUsers.Add(bl[i].bannedUUID); | ||
2629 | } | 2630 | } |
2630 | 2631 | ||
2631 | EstateOwnerMessagePacket packet = new EstateOwnerMessagePacket(); | 2632 | EstateOwnerMessagePacket packet = new EstateOwnerMessagePacket(); |
@@ -2635,9 +2636,9 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
2635 | packet.MethodData.Invoice = invoice; | 2636 | packet.MethodData.Invoice = invoice; |
2636 | packet.MethodData.Method = Helpers.StringToField("setaccess"); | 2637 | packet.MethodData.Method = Helpers.StringToField("setaccess"); |
2637 | 2638 | ||
2638 | EstateOwnerMessagePacket.ParamListBlock[] returnblock = new EstateOwnerMessagePacket.ParamListBlock[6 + BannedUsers.Length]; | 2639 | EstateOwnerMessagePacket.ParamListBlock[] returnblock = new EstateOwnerMessagePacket.ParamListBlock[6 + BannedUsers.Count]; |
2639 | 2640 | ||
2640 | for (int i = 0; i < (6 + BannedUsers.Length); i++) | 2641 | for (int i = 0; i < (6 + BannedUsers.Count); i++) |
2641 | { | 2642 | { |
2642 | returnblock[i] = new EstateOwnerMessagePacket.ParamListBlock(); | 2643 | returnblock[i] = new EstateOwnerMessagePacket.ParamListBlock(); |
2643 | } | 2644 | } |
@@ -2647,12 +2648,12 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
2647 | returnblock[j].Parameter = Helpers.StringToField(((int)Constants.EstateAccessCodex.EstateBans).ToString()); j++; | 2648 | returnblock[j].Parameter = Helpers.StringToField(((int)Constants.EstateAccessCodex.EstateBans).ToString()); j++; |
2648 | returnblock[j].Parameter = Helpers.StringToField("0"); j++; | 2649 | returnblock[j].Parameter = Helpers.StringToField("0"); j++; |
2649 | returnblock[j].Parameter = Helpers.StringToField("0"); j++; | 2650 | returnblock[j].Parameter = Helpers.StringToField("0"); j++; |
2650 | returnblock[j].Parameter = Helpers.StringToField(BannedUsers.Length.ToString()); j++; | 2651 | returnblock[j].Parameter = Helpers.StringToField(BannedUsers.Count.ToString()); j++; |
2651 | returnblock[j].Parameter = Helpers.StringToField("0"); j++; | 2652 | returnblock[j].Parameter = Helpers.StringToField("0"); j++; |
2652 | 2653 | ||
2653 | for (int i = 0; i < BannedUsers.Length; i++) | 2654 | foreach (LLUUID banned in BannedUsers) |
2654 | { | 2655 | { |
2655 | returnblock[j].Parameter = BannedUsers[i].GetBytes(); j++; | 2656 | returnblock[j].Parameter = banned.GetBytes(); j++; |
2656 | } | 2657 | } |
2657 | packet.ParamList = returnblock; | 2658 | packet.ParamList = returnblock; |
2658 | packet.Header.Reliable = false; | 2659 | packet.Header.Reliable = false; |
@@ -2687,11 +2688,11 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
2687 | this.OutPacket(rinfopack, ThrottleOutPacketType.Task); | 2688 | this.OutPacket(rinfopack, ThrottleOutPacketType.Task); |
2688 | } | 2689 | } |
2689 | 2690 | ||
2690 | public void SendEstateCovenantInformation() | 2691 | public void SendEstateCovenantInformation(LLUUID covenant) |
2691 | { | 2692 | { |
2692 | EstateCovenantReplyPacket einfopack = new EstateCovenantReplyPacket(); | 2693 | EstateCovenantReplyPacket einfopack = new EstateCovenantReplyPacket(); |
2693 | EstateCovenantReplyPacket.DataBlock edata = new EstateCovenantReplyPacket.DataBlock(); | 2694 | EstateCovenantReplyPacket.DataBlock edata = new EstateCovenantReplyPacket.DataBlock(); |
2694 | edata.CovenantID = m_scene.RegionInfo.CovenantID; | 2695 | edata.CovenantID = covenant; |
2695 | edata.CovenantTimestamp = 0; | 2696 | edata.CovenantTimestamp = 0; |
2696 | edata.EstateOwnerID = m_scene.RegionInfo.MasterAvatarAssignedUUID; | 2697 | edata.EstateOwnerID = m_scene.RegionInfo.MasterAvatarAssignedUUID; |
2697 | edata.EstateName = | 2698 | edata.EstateName = |
@@ -2700,7 +2701,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
2700 | this.OutPacket(einfopack, ThrottleOutPacketType.Task); | 2701 | this.OutPacket(einfopack, ThrottleOutPacketType.Task); |
2701 | } | 2702 | } |
2702 | 2703 | ||
2703 | public void SendDetailedEstateData(LLUUID invoice, string estateName, uint estateID) | 2704 | public void SendDetailedEstateData(LLUUID invoice, string estateName, uint estateID, uint parentEstate, uint estateFlags, uint sunPosition, LLUUID covenant) |
2704 | { | 2705 | { |
2705 | EstateOwnerMessagePacket packet = new EstateOwnerMessagePacket(); | 2706 | EstateOwnerMessagePacket packet = new EstateOwnerMessagePacket(); |
2706 | packet.MethodData.Invoice = invoice; | 2707 | packet.MethodData.Invoice = invoice; |
@@ -2718,13 +2719,12 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
2718 | returnblock[1].Parameter = Helpers.StringToField(m_scene.RegionInfo.MasterAvatarAssignedUUID.ToString()); | 2719 | returnblock[1].Parameter = Helpers.StringToField(m_scene.RegionInfo.MasterAvatarAssignedUUID.ToString()); |
2719 | returnblock[2].Parameter = Helpers.StringToField(estateID.ToString()); | 2720 | returnblock[2].Parameter = Helpers.StringToField(estateID.ToString()); |
2720 | 2721 | ||
2721 | // TODO: Resolve Magic numbers here | 2722 | returnblock[3].Parameter = Helpers.StringToField(estateFlags.ToString()); |
2722 | returnblock[3].Parameter = Helpers.StringToField("269516800"); | 2723 | returnblock[4].Parameter = Helpers.StringToField(sunPosition.ToString()); |
2723 | returnblock[4].Parameter = Helpers.StringToField("0"); | 2724 | returnblock[5].Parameter = Helpers.StringToField(parentEstate.ToString()); |
2724 | returnblock[5].Parameter = Helpers.StringToField("1"); | 2725 | returnblock[6].Parameter = Helpers.StringToField(covenant.ToString()); |
2725 | returnblock[6].Parameter = Helpers.StringToField(m_scene.RegionInfo.RegionID.ToString()); | 2726 | returnblock[7].Parameter = Helpers.StringToField("1160895077"); // what is this? |
2726 | returnblock[7].Parameter = Helpers.StringToField("1160895077"); | 2727 | returnblock[8].Parameter = Helpers.StringToField("1"); // what is this? |
2727 | returnblock[8].Parameter = Helpers.StringToField("1"); | ||
2728 | 2728 | ||
2729 | packet.ParamList = returnblock; | 2729 | packet.ParamList = returnblock; |
2730 | packet.Header.Reliable = false; | 2730 | packet.Header.Reliable = false; |
@@ -5959,10 +5959,14 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
5959 | tmp = Helpers.FieldToUTF8String(messagePacket.ParamList[2].Parameter); | 5959 | tmp = Helpers.FieldToUTF8String(messagePacket.ParamList[2].Parameter); |
5960 | if (!tmp.Contains(".")) tmp += ".00"; | 5960 | if (!tmp.Contains(".")) tmp += ".00"; |
5961 | float TerrainLowerLimit = (float)Convert.ToDecimal(tmp); | 5961 | float TerrainLowerLimit = (float)Convert.ToDecimal(tmp); |
5962 | bool UseEstateSun = convertParamStringToBool(messagePacket.ParamList[3].Parameter); | ||
5962 | bool UseFixedSun = convertParamStringToBool(messagePacket.ParamList[4].Parameter); | 5963 | bool UseFixedSun = convertParamStringToBool(messagePacket.ParamList[4].Parameter); |
5963 | float SunHour = (float)Convert.ToDecimal(Helpers.FieldToUTF8String(messagePacket.ParamList[5].Parameter)); | 5964 | float SunHour = (float)Convert.ToDecimal(Helpers.FieldToUTF8String(messagePacket.ParamList[5].Parameter)); |
5965 | bool UseGlobal = convertParamStringToBool(messagePacket.ParamList[6].Parameter); | ||
5966 | bool EstateFixedSun = convertParamStringToBool(messagePacket.ParamList[7].Parameter); | ||
5967 | float EstateSunHour = (float)Convert.ToDecimal(Helpers.FieldToUTF8String(messagePacket.ParamList[8].Parameter)); | ||
5964 | 5968 | ||
5965 | OnSetRegionTerrainSettings(WaterHeight, TerrainRaiseLimit, TerrainLowerLimit, UseFixedSun, SunHour); | 5969 | OnSetRegionTerrainSettings(WaterHeight, TerrainRaiseLimit, TerrainLowerLimit, UseEstateSun, UseFixedSun, SunHour, UseGlobal, EstateFixedSun, EstateSunHour); |
5966 | 5970 | ||
5967 | } | 5971 | } |
5968 | catch (Exception ex) | 5972 | catch (Exception ex) |
@@ -6076,6 +6080,22 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
6076 | } | 6080 | } |
6077 | break; | 6081 | break; |
6078 | 6082 | ||
6083 | case "estatechangeinfo": | ||
6084 | if (((Scene)m_scene).ExternalChecks.ExternalChecksCanIssueEstateCommand(this.AgentId)) | ||
6085 | { | ||
6086 | LLUUID invoice = messagePacket.MethodData.Invoice; | ||
6087 | LLUUID SenderID = messagePacket.AgentData.AgentID; | ||
6088 | UInt32 param1 = Convert.ToUInt32(Helpers.FieldToUTF8String(messagePacket.ParamList[1].Parameter)); | ||
6089 | UInt32 param2 = Convert.ToUInt32(Helpers.FieldToUTF8String(messagePacket.ParamList[2].Parameter)); | ||
6090 | |||
6091 | handlerEstateChangeInfo = OnEstateChangeInfo; | ||
6092 | if (handlerEstateChangeInfo != null) | ||
6093 | { | ||
6094 | handlerEstateChangeInfo(this, invoice, SenderID, param1, param2); | ||
6095 | } | ||
6096 | } | ||
6097 | break; | ||
6098 | |||
6079 | default: | 6099 | default: |
6080 | m_log.Error("EstateOwnerMessage: Unknown method requested\n" + messagePacket.ToString()); | 6100 | m_log.Error("EstateOwnerMessage: Unknown method requested\n" + messagePacket.ToString()); |
6081 | break; | 6101 | break; |