diff options
author | Teravus Ovares | 2008-05-14 06:58:32 +0000 |
---|---|---|
committer | Teravus Ovares | 2008-05-14 06:58:32 +0000 |
commit | 5b4d7922ea304f638b6a9bd0a324abefd1403ec1 (patch) | |
tree | 2f8be6c0b270ecc33b56e1d716d1977e9a3d9620 | |
parent | More formatting cleanup. Minor refactoring. (diff) | |
download | opensim-SC_OLD-5b4d7922ea304f638b6a9bd0a324abefd1403ec1.zip opensim-SC_OLD-5b4d7922ea304f638b6a9bd0a324abefd1403ec1.tar.gz opensim-SC_OLD-5b4d7922ea304f638b6a9bd0a324abefd1403ec1.tar.bz2 opensim-SC_OLD-5b4d7922ea304f638b6a9bd0a324abefd1403ec1.tar.xz |
* Adding the very bare minimum for the client to register user as having the group OpenSimulator Tester. This allows us to start examining and implementing the vary many unhandled group packets.
-rw-r--r-- | OpenSim/Framework/IClientAPI.cs | 3 | ||||
-rw-r--r-- | OpenSim/Framework/LLGroup.cs | 52 | ||||
-rw-r--r-- | OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs | 24 | ||||
-rw-r--r-- | OpenSim/Region/Environment/Modules/Avatar/Groups/GroupsModule.cs | 47 | ||||
-rw-r--r-- | OpenSim/Region/Environment/Modules/World/NPC/NPCAvatar.cs | 6 | ||||
-rw-r--r-- | OpenSim/Region/Examples/SimpleModule/MyNpcCharacter.cs | 5 |
6 files changed, 99 insertions, 38 deletions
diff --git a/OpenSim/Framework/IClientAPI.cs b/OpenSim/Framework/IClientAPI.cs index 690b04e..098e721 100644 --- a/OpenSim/Framework/IClientAPI.cs +++ b/OpenSim/Framework/IClientAPI.cs | |||
@@ -973,6 +973,9 @@ namespace OpenSim.Framework | |||
973 | LLVector3 CameraAtOffset, LLVector3 CameraEyeOffset, bool ForceMouseLook); | 973 | LLVector3 CameraAtOffset, LLVector3 CameraEyeOffset, bool ForceMouseLook); |
974 | 974 | ||
975 | void SendAdminResponse(LLUUID Token, uint AdminLevel); | 975 | void SendAdminResponse(LLUUID Token, uint AdminLevel); |
976 | |||
977 | void SendGroupMembership(GroupData[] GroupMembership); | ||
978 | |||
976 | 979 | ||
977 | byte[] GetThrottlesPacked(float multiplier); | 980 | byte[] GetThrottlesPacked(float multiplier); |
978 | 981 | ||
diff --git a/OpenSim/Framework/LLGroup.cs b/OpenSim/Framework/LLGroup.cs new file mode 100644 index 0000000..73d009a --- /dev/null +++ b/OpenSim/Framework/LLGroup.cs | |||
@@ -0,0 +1,52 @@ | |||
1 | using System; | ||
2 | using System.Collections; | ||
3 | using libsecondlife; | ||
4 | using System.Collections.Generic; | ||
5 | using System.Text; | ||
6 | |||
7 | namespace OpenSim.Framework | ||
8 | { | ||
9 | public class GroupData | ||
10 | { | ||
11 | public string ActiveGroupTitle; | ||
12 | public LLUUID GroupID; | ||
13 | public List<LLUUID> GroupMembers; | ||
14 | public string groupName; | ||
15 | public uint groupPowers = (uint)(GroupPowers.LandAllowLandmark | GroupPowers.LandAllowSetHome); | ||
16 | public List<string> GroupTitles; | ||
17 | public bool AcceptNotices = true; | ||
18 | public bool AllowPublish = true; | ||
19 | public string Charter = "Cool Group Yeah!"; | ||
20 | public int contribution = 0; | ||
21 | public LLUUID FounderID = LLUUID.Zero; | ||
22 | public int groupMembershipCost = 0; | ||
23 | public int groupRollsCount = 1; | ||
24 | public LLUUID GroupPicture = LLUUID.Zero; | ||
25 | public bool MaturePublish = true; | ||
26 | public int MembershipFee = 0; | ||
27 | public bool OpenEnrollment = true; | ||
28 | public bool ShowInList = true; | ||
29 | |||
30 | public GroupData() | ||
31 | { | ||
32 | GroupTitles = new List<string>(); | ||
33 | GroupMembers = new List<LLUUID>(); | ||
34 | } | ||
35 | |||
36 | public GroupPowers ActiveGroupPowers | ||
37 | { | ||
38 | set { groupPowers = (uint)value; } | ||
39 | get { return (GroupPowers)groupPowers; } | ||
40 | } | ||
41 | } | ||
42 | |||
43 | public class GroupList | ||
44 | { | ||
45 | public List<LLUUID> m_GroupList; | ||
46 | |||
47 | public GroupList() | ||
48 | { | ||
49 | m_GroupList = new List<LLUUID>(); | ||
50 | } | ||
51 | } | ||
52 | } | ||
diff --git a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs index 32432b4..395d555 100644 --- a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs +++ b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs | |||
@@ -5758,6 +5758,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
5758 | 5758 | ||
5759 | OutPacket(avatarSitResponse, ThrottleOutPacketType.Task); | 5759 | OutPacket(avatarSitResponse, ThrottleOutPacketType.Task); |
5760 | } | 5760 | } |
5761 | |||
5761 | public void SendAdminResponse(LLUUID Token, uint AdminLevel) | 5762 | public void SendAdminResponse(LLUUID Token, uint AdminLevel) |
5762 | { | 5763 | { |
5763 | GrantGodlikePowersPacket respondPacket = new GrantGodlikePowersPacket(); | 5764 | GrantGodlikePowersPacket respondPacket = new GrantGodlikePowersPacket(); |
@@ -5773,6 +5774,29 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
5773 | respondPacket.AgentData = adb; | 5774 | respondPacket.AgentData = adb; |
5774 | OutPacket(respondPacket, ThrottleOutPacketType.Task); | 5775 | OutPacket(respondPacket, ThrottleOutPacketType.Task); |
5775 | } | 5776 | } |
5777 | |||
5778 | public void SendGroupMembership(GroupData[] GroupMembership) | ||
5779 | { | ||
5780 | AgentGroupDataUpdatePacket Groupupdate = new AgentGroupDataUpdatePacket(); | ||
5781 | AgentGroupDataUpdatePacket.GroupDataBlock[] Groups = new AgentGroupDataUpdatePacket.GroupDataBlock[GroupMembership.Length]; | ||
5782 | for (int i = 0; i < GroupMembership.Length; i++) | ||
5783 | { | ||
5784 | AgentGroupDataUpdatePacket.GroupDataBlock Group = new AgentGroupDataUpdatePacket.GroupDataBlock(); | ||
5785 | Group.AcceptNotices = GroupMembership[i].AcceptNotices; | ||
5786 | Group.Contribution = GroupMembership[i].contribution; | ||
5787 | Group.GroupID = GroupMembership[i].GroupID; | ||
5788 | Group.GroupInsigniaID = GroupMembership[i].GroupPicture; | ||
5789 | Group.GroupName = Helpers.StringToField(GroupMembership[i].groupName); | ||
5790 | Group.GroupPowers = GroupMembership[i].groupPowers; | ||
5791 | Groups[i] = Group; | ||
5792 | Groupupdate.GroupData = Groups; | ||
5793 | |||
5794 | } | ||
5795 | Groupupdate.AgentData.AgentID = AgentId; | ||
5796 | OutPacket(Groupupdate, ThrottleOutPacketType.Task); | ||
5797 | |||
5798 | } | ||
5799 | |||
5776 | public ClientInfo GetClientInfo() | 5800 | public ClientInfo GetClientInfo() |
5777 | { | 5801 | { |
5778 | //MainLog.Instance.Verbose("CLIENT", "GetClientInfo BGN"); | 5802 | //MainLog.Instance.Verbose("CLIENT", "GetClientInfo BGN"); |
diff --git a/OpenSim/Region/Environment/Modules/Avatar/Groups/GroupsModule.cs b/OpenSim/Region/Environment/Modules/Avatar/Groups/GroupsModule.cs index 0030350..5e87b49 100644 --- a/OpenSim/Region/Environment/Modules/Avatar/Groups/GroupsModule.cs +++ b/OpenSim/Region/Environment/Modules/Avatar/Groups/GroupsModule.cs | |||
@@ -29,6 +29,7 @@ using System; | |||
29 | using System.Collections.Generic; | 29 | using System.Collections.Generic; |
30 | using System.Reflection; | 30 | using System.Reflection; |
31 | using libsecondlife; | 31 | using libsecondlife; |
32 | using libsecondlife.Packets; | ||
32 | using log4net; | 33 | using log4net; |
33 | using Nini.Config; | 34 | using Nini.Config; |
34 | using OpenSim.Framework; | 35 | using OpenSim.Framework; |
@@ -98,12 +99,6 @@ namespace OpenSim.Region.Environment.Modules.Avatar.Groups | |||
98 | 99 | ||
99 | private void OnNewClient(IClientAPI client) | 100 | private void OnNewClient(IClientAPI client) |
100 | { | 101 | { |
101 | // All friends establishment protocol goes over instant message | ||
102 | // There's no way to send a message from the sim | ||
103 | // to a user to 'add a friend' without causing dialog box spam | ||
104 | // | ||
105 | // The base set of friends are added when the user signs on in their XMLRPC response | ||
106 | // Generated by LoginService. The friends are retreived from the database by the UserManager | ||
107 | 102 | ||
108 | // Subscribe to instant messages | 103 | // Subscribe to instant messages |
109 | client.OnInstantMessage += OnInstantMessage; | 104 | client.OnInstantMessage += OnInstantMessage; |
@@ -140,6 +135,12 @@ namespace OpenSim.Region.Environment.Modules.Avatar.Groups | |||
140 | } | 135 | } |
141 | } | 136 | } |
142 | m_log.Info("[GROUP]: Adding " + client.Name + " to OpenSimulator Tester group"); | 137 | m_log.Info("[GROUP]: Adding " + client.Name + " to OpenSimulator Tester group"); |
138 | GroupData[] updateGroups = new GroupData[1]; | ||
139 | updateGroups[0] = OpenSimulatorGroup; | ||
140 | |||
141 | client.SendGroupMembership(updateGroups); | ||
142 | |||
143 | |||
143 | } | 144 | } |
144 | 145 | ||
145 | private void OnAgentDataUpdateRequest(IClientAPI remoteClient, LLUUID AgentID, LLUUID SessionID) | 146 | private void OnAgentDataUpdateRequest(IClientAPI remoteClient, LLUUID AgentID, LLUUID SessionID) |
@@ -150,8 +151,8 @@ namespace OpenSim.Region.Environment.Modules.Avatar.Groups | |||
150 | 151 | ||
151 | LLUUID ActiveGroupID = LLUUID.Zero; | 152 | LLUUID ActiveGroupID = LLUUID.Zero; |
152 | uint ActiveGroupPowers = 0; | 153 | uint ActiveGroupPowers = 0; |
153 | string ActiveGroupName = ""; | 154 | string ActiveGroupName = "OpenSimulator Tester"; |
154 | string ActiveGroupTitle = ""; | 155 | string ActiveGroupTitle = "I IZ N0T"; |
155 | 156 | ||
156 | bool foundUser = false; | 157 | bool foundUser = false; |
157 | 158 | ||
@@ -240,35 +241,5 @@ namespace OpenSim.Region.Environment.Modules.Avatar.Groups | |||
240 | } | 241 | } |
241 | } | 242 | } |
242 | 243 | ||
243 | public class GroupData | ||
244 | { | ||
245 | public string ActiveGroupTitle; | ||
246 | public LLUUID GroupID; | ||
247 | public List<LLUUID> GroupMembers; | ||
248 | public string groupName; | ||
249 | public uint groupPowers = (uint) (GroupPowers.LandAllowLandmark | GroupPowers.LandAllowSetHome); | ||
250 | public List<string> GroupTitles; | ||
251 | |||
252 | public GroupData() | ||
253 | { | ||
254 | GroupTitles = new List<string>(); | ||
255 | GroupMembers = new List<LLUUID>(); | ||
256 | } | ||
257 | 244 | ||
258 | public GroupPowers ActiveGroupPowers | ||
259 | { | ||
260 | set { groupPowers = (uint) value; } | ||
261 | get { return (GroupPowers) groupPowers; } | ||
262 | } | ||
263 | } | ||
264 | |||
265 | public class GroupList | ||
266 | { | ||
267 | public List<LLUUID> m_GroupList; | ||
268 | |||
269 | public GroupList() | ||
270 | { | ||
271 | m_GroupList = new List<LLUUID>(); | ||
272 | } | ||
273 | } | ||
274 | } \ No newline at end of file | 245 | } \ No newline at end of file |
diff --git a/OpenSim/Region/Environment/Modules/World/NPC/NPCAvatar.cs b/OpenSim/Region/Environment/Modules/World/NPC/NPCAvatar.cs index 3126f1c..f37e12a 100644 --- a/OpenSim/Region/Environment/Modules/World/NPC/NPCAvatar.cs +++ b/OpenSim/Region/Environment/Modules/World/NPC/NPCAvatar.cs | |||
@@ -102,6 +102,12 @@ namespace OpenSim.Region.Environment.Modules.World.NPC | |||
102 | { | 102 | { |
103 | 103 | ||
104 | } | 104 | } |
105 | |||
106 | public void SendGroupMembership(GroupData[] GroupMembership) | ||
107 | { | ||
108 | |||
109 | } | ||
110 | |||
105 | public LLUUID GetDefaultAnimation(string name) | 111 | public LLUUID GetDefaultAnimation(string name) |
106 | { | 112 | { |
107 | return LLUUID.Zero; | 113 | return LLUUID.Zero; |
diff --git a/OpenSim/Region/Examples/SimpleModule/MyNpcCharacter.cs b/OpenSim/Region/Examples/SimpleModule/MyNpcCharacter.cs index 68f3ecb..6087857 100644 --- a/OpenSim/Region/Examples/SimpleModule/MyNpcCharacter.cs +++ b/OpenSim/Region/Examples/SimpleModule/MyNpcCharacter.cs | |||
@@ -583,6 +583,11 @@ namespace OpenSim.Region.Examples.SimpleModule | |||
583 | 583 | ||
584 | } | 584 | } |
585 | 585 | ||
586 | public void SendGroupMembership(GroupData[] GroupMembership) | ||
587 | { | ||
588 | |||
589 | } | ||
590 | |||
586 | private void Update() | 591 | private void Update() |
587 | { | 592 | { |
588 | frame++; | 593 | frame++; |