diff options
Diffstat (limited to 'OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs')
-rw-r--r-- | OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs | 27 |
1 files changed, 19 insertions, 8 deletions
diff --git a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs index 7d90a68..515d0ea 100644 --- a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs +++ b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs | |||
@@ -3912,7 +3912,8 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
3912 | return false; | 3912 | return false; |
3913 | } | 3913 | } |
3914 | 3914 | ||
3915 | public void SendEstateManagersList(UUID invoice, UUID[] EstateManagers, uint estateID) | 3915 | public void SendEstateList(UUID invoice, int code, UUID[] Data, uint estateID) |
3916 | |||
3916 | { | 3917 | { |
3917 | EstateOwnerMessagePacket packet = new EstateOwnerMessagePacket(); | 3918 | EstateOwnerMessagePacket packet = new EstateOwnerMessagePacket(); |
3918 | packet.AgentData.TransactionID = UUID.Random(); | 3919 | packet.AgentData.TransactionID = UUID.Random(); |
@@ -3921,26 +3922,36 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
3921 | packet.MethodData.Invoice = invoice; | 3922 | packet.MethodData.Invoice = invoice; |
3922 | packet.MethodData.Method = Utils.StringToBytes("setaccess"); | 3923 | packet.MethodData.Method = Utils.StringToBytes("setaccess"); |
3923 | 3924 | ||
3924 | EstateOwnerMessagePacket.ParamListBlock[] returnblock = new EstateOwnerMessagePacket.ParamListBlock[6 + EstateManagers.Length]; | 3925 | EstateOwnerMessagePacket.ParamListBlock[] returnblock = new EstateOwnerMessagePacket.ParamListBlock[6 + Data.Length]; |
3925 | 3926 | ||
3926 | for (int i = 0; i < (6 + EstateManagers.Length); i++) | 3927 | for (int i = 0; i < (6 + Data.Length); i++) |
3927 | { | 3928 | { |
3928 | returnblock[i] = new EstateOwnerMessagePacket.ParamListBlock(); | 3929 | returnblock[i] = new EstateOwnerMessagePacket.ParamListBlock(); |
3929 | } | 3930 | } |
3930 | int j = 0; | 3931 | int j = 0; |
3931 | 3932 | ||
3932 | returnblock[j].Parameter = Utils.StringToBytes(estateID.ToString()); j++; | 3933 | returnblock[j].Parameter = Utils.StringToBytes(estateID.ToString()); j++; |
3933 | returnblock[j].Parameter = Utils.StringToBytes(((int)Constants.EstateAccessCodex.EstateManagers).ToString()); j++; | 3934 | returnblock[j].Parameter = Utils.StringToBytes(code.ToString()); j++; |
3935 | returnblock[j].Parameter = Utils.StringToBytes("0"); j++; | ||
3934 | returnblock[j].Parameter = Utils.StringToBytes("0"); j++; | 3936 | returnblock[j].Parameter = Utils.StringToBytes("0"); j++; |
3935 | returnblock[j].Parameter = Utils.StringToBytes("0"); j++; | 3937 | returnblock[j].Parameter = Utils.StringToBytes("0"); j++; |
3936 | returnblock[j].Parameter = Utils.StringToBytes("0"); j++; | 3938 | returnblock[j].Parameter = Utils.StringToBytes("0"); j++; |
3937 | returnblock[j].Parameter = Utils.StringToBytes(EstateManagers.Length.ToString()); j++; | 3939 | |
3938 | for (int i = 0; i < EstateManagers.Length; i++) | 3940 | j = 2; // Agents |
3941 | if ((code & 2) != 0) | ||
3942 | j = 3; // Groups | ||
3943 | if ((code & 8) != 0) | ||
3944 | j = 5; // Managers | ||
3945 | |||
3946 | returnblock[j].Parameter = Utils.StringToBytes(Data.Length.ToString()); | ||
3947 | j = 6; | ||
3948 | |||
3949 | for (int i = 0; i < Data.Length; i++) | ||
3939 | { | 3950 | { |
3940 | returnblock[j].Parameter = EstateManagers[i].GetBytes(); j++; | 3951 | returnblock[j].Parameter = Data[i].GetBytes(); j++; |
3941 | } | 3952 | } |
3942 | packet.ParamList = returnblock; | 3953 | packet.ParamList = returnblock; |
3943 | packet.Header.Reliable = false; | 3954 | packet.Header.Reliable = true; |
3944 | OutPacket(packet, ThrottleOutPacketType.Task); | 3955 | OutPacket(packet, ThrottleOutPacketType.Task); |
3945 | } | 3956 | } |
3946 | 3957 | ||