diff options
Diffstat (limited to 'OpenSim/Region/ClientStack/Linden/UDP')
-rw-r--r-- | OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs | 31 |
1 files changed, 22 insertions, 9 deletions
diff --git a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs index 6dd2ffd..0bb5dc6 100644 --- a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs +++ b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs | |||
@@ -421,9 +421,9 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
421 | } | 421 | } |
422 | public UUID AgentId { get { return m_agentId; } } | 422 | public UUID AgentId { get { return m_agentId; } } |
423 | public ISceneAgent SceneAgent { get; set; } | 423 | public ISceneAgent SceneAgent { get; set; } |
424 | public UUID ActiveGroupId { get { return m_activeGroupID; } private set { m_activeGroupID = value; } } | 424 | public UUID ActiveGroupId { get { return m_activeGroupID; } set { m_activeGroupID = value; } } |
425 | public string ActiveGroupName { get { return m_activeGroupName; } private set { m_activeGroupName = value; } } | 425 | public string ActiveGroupName { get { return m_activeGroupName; } set { m_activeGroupName = value; } } |
426 | public ulong ActiveGroupPowers { get { return m_activeGroupPowers; } private set { m_activeGroupPowers = value; } } | 426 | public ulong ActiveGroupPowers { get { return m_activeGroupPowers; } set { m_activeGroupPowers = value; } } |
427 | public bool IsGroupMember(UUID groupID) { return m_groupPowers.ContainsKey(groupID); } | 427 | public bool IsGroupMember(UUID groupID) { return m_groupPowers.ContainsKey(groupID); } |
428 | 428 | ||
429 | public int PingTimeMS | 429 | public int PingTimeMS |
@@ -953,7 +953,6 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
953 | /// Send an instant message to this client | 953 | /// Send an instant message to this client |
954 | /// </summary> | 954 | /// </summary> |
955 | // | 955 | // |
956 | // Don't remove transaction ID! Groups and item gives need to set it! | ||
957 | public void SendInstantMessage(GridInstantMessage im) | 956 | public void SendInstantMessage(GridInstantMessage im) |
958 | { | 957 | { |
959 | if (((Scene)(m_scene)).Permissions.CanInstantMessage(new UUID(im.fromAgentID), new UUID(im.toAgentID))) | 958 | if (((Scene)(m_scene)).Permissions.CanInstantMessage(new UUID(im.fromAgentID), new UUID(im.toAgentID))) |
@@ -962,14 +961,11 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
962 | = (ImprovedInstantMessagePacket)PacketPool.Instance.GetPacket(PacketType.ImprovedInstantMessage); | 961 | = (ImprovedInstantMessagePacket)PacketPool.Instance.GetPacket(PacketType.ImprovedInstantMessage); |
963 | 962 | ||
964 | msg.AgentData.AgentID = new UUID(im.fromAgentID); | 963 | msg.AgentData.AgentID = new UUID(im.fromAgentID); |
965 | msg.AgentData.SessionID = UUID.Zero; | 964 | msg.AgentData.SessionID = new UUID(im.imSessionID); |
966 | msg.MessageBlock.FromAgentName = Util.StringToBytes256(im.fromAgentName); | 965 | msg.MessageBlock.FromAgentName = Util.StringToBytes256(im.fromAgentName); |
967 | msg.MessageBlock.Dialog = im.dialog; | 966 | msg.MessageBlock.Dialog = im.dialog; |
968 | msg.MessageBlock.FromGroup = im.fromGroup; | 967 | msg.MessageBlock.FromGroup = im.fromGroup; |
969 | if (im.imSessionID == UUID.Zero.Guid) | 968 | msg.MessageBlock.ID = new UUID(im.ID); |
970 | msg.MessageBlock.ID = new UUID(im.fromAgentID) ^ new UUID(im.toAgentID); | ||
971 | else | ||
972 | msg.MessageBlock.ID = new UUID(im.imSessionID); | ||
973 | msg.MessageBlock.Offline = im.offline; | 969 | msg.MessageBlock.Offline = im.offline; |
974 | msg.MessageBlock.ParentEstateID = im.ParentEstateID; | 970 | msg.MessageBlock.ParentEstateID = im.ParentEstateID; |
975 | msg.MessageBlock.Position = im.Position; | 971 | msg.MessageBlock.Position = im.Position; |
@@ -5786,6 +5782,23 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
5786 | OutPacket(packet, ThrottleOutPacketType.Task); | 5782 | OutPacket(packet, ThrottleOutPacketType.Task); |
5787 | } | 5783 | } |
5788 | 5784 | ||
5785 | public Dictionary<UUID, ulong> GetGroupPowers() | ||
5786 | { | ||
5787 | lock(m_groupPowers) | ||
5788 | { | ||
5789 | return new Dictionary<UUID, ulong>(m_groupPowers); | ||
5790 | } | ||
5791 | } | ||
5792 | |||
5793 | public void SetGroupPowers(Dictionary<UUID, ulong> powers) | ||
5794 | { | ||
5795 | lock(m_groupPowers) | ||
5796 | { | ||
5797 | m_groupPowers.Clear(); | ||
5798 | m_groupPowers = powers; | ||
5799 | } | ||
5800 | } | ||
5801 | |||
5789 | public ulong GetGroupPowers(UUID groupID) | 5802 | public ulong GetGroupPowers(UUID groupID) |
5790 | { | 5803 | { |
5791 | if (groupID == ActiveGroupId) | 5804 | if (groupID == ActiveGroupId) |