diff options
Diffstat (limited to 'OpenSim/Region/ClientStack')
-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; |