diff options
author | Teravus Ovares | 2008-05-18 03:21:22 +0000 |
---|---|---|
committer | Teravus Ovares | 2008-05-18 03:21:22 +0000 |
commit | 2bd03b7c8c3b14ea5e7b709aa9e1a3d63ed67e09 (patch) | |
tree | bf74f24df560c0fffaf90b98f0d4e50bb0248107 /OpenSim | |
parent | Thank you very kindly, Melanie for: (diff) | |
download | opensim-SC-2bd03b7c8c3b14ea5e7b709aa9e1a3d63ed67e09.zip opensim-SC-2bd03b7c8c3b14ea5e7b709aa9e1a3d63ed67e09.tar.gz opensim-SC-2bd03b7c8c3b14ea5e7b709aa9e1a3d63ed67e09.tar.bz2 opensim-SC-2bd03b7c8c3b14ea5e7b709aa9e1a3d63ed67e09.tar.xz |
* Group type stuff. Nothing spectacular. two packets, sorta almost semi half tiny amount implemented.
Diffstat (limited to '')
9 files changed, 157 insertions, 12 deletions
diff --git a/OpenSim/Framework/IClientAPI.cs b/OpenSim/Framework/IClientAPI.cs index 098943c..109e70b 100644 --- a/OpenSim/Framework/IClientAPI.cs +++ b/OpenSim/Framework/IClientAPI.cs | |||
@@ -813,8 +813,9 @@ namespace OpenSim.Framework | |||
813 | event EstateBlueBoxMessageRequest OnEstateBlueBoxMessageRequest; | 813 | event EstateBlueBoxMessageRequest OnEstateBlueBoxMessageRequest; |
814 | event EstateDebugRegionRequest OnEstateDebugRegionRequest; | 814 | event EstateDebugRegionRequest OnEstateDebugRegionRequest; |
815 | event EstateTeleportOneUserHomeRequest OnEstateTeleportOneUserHomeRequest; | 815 | event EstateTeleportOneUserHomeRequest OnEstateTeleportOneUserHomeRequest; |
816 | event UUIDNameRequest OnUUIDGroupNameRequest; | ||
816 | 817 | ||
817 | 818 | event RequestObjectPropertiesFamily OnObjectGroupRequest; | |
818 | 819 | ||
819 | [Obsolete("IClientAPI.OutPacket SHOULD NOT EXIST outside of LLClientView please refactor appropriately.")] | 820 | [Obsolete("IClientAPI.OutPacket SHOULD NOT EXIST outside of LLClientView please refactor appropriately.")] |
820 | void OutPacket(Packet newPack, ThrottleOutPacketType packType); | 821 | void OutPacket(Packet newPack, ThrottleOutPacketType packType); |
@@ -983,6 +984,7 @@ namespace OpenSim.Framework | |||
983 | 984 | ||
984 | void SendGroupMembership(GroupData[] GroupMembership); | 985 | void SendGroupMembership(GroupData[] GroupMembership); |
985 | 986 | ||
987 | void SendGroupNameReply(LLUUID groupLLUID, string GroupName); | ||
986 | 988 | ||
987 | byte[] GetThrottlesPacked(float multiplier); | 989 | byte[] GetThrottlesPacked(float multiplier); |
988 | 990 | ||
diff --git a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs index a86941f..fa608a9 100644 --- a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs +++ b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs | |||
@@ -249,6 +249,10 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
249 | 249 | ||
250 | private ForceReleaseControls handlerForceReleaseControls = null; | 250 | private ForceReleaseControls handlerForceReleaseControls = null; |
251 | 251 | ||
252 | private UUIDNameRequest handlerUUIDGroupNameRequest = null; | ||
253 | |||
254 | private RequestObjectPropertiesFamily handlerObjectGroupRequest = null; | ||
255 | |||
252 | /* Properties */ | 256 | /* Properties */ |
253 | 257 | ||
254 | public LLUUID SecureSessionId | 258 | public LLUUID SecureSessionId |
@@ -828,12 +832,16 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
828 | 832 | ||
829 | public event UUIDNameRequest OnTeleportHomeRequest; | 833 | public event UUIDNameRequest OnTeleportHomeRequest; |
830 | 834 | ||
835 | public event UUIDNameRequest OnUUIDGroupNameRequest; | ||
836 | |||
831 | public event ScriptAnswer OnScriptAnswer; | 837 | public event ScriptAnswer OnScriptAnswer; |
832 | public event RequestPayPrice OnRequestPayPrice; | 838 | public event RequestPayPrice OnRequestPayPrice; |
833 | public event AgentSit OnUndo; | 839 | public event AgentSit OnUndo; |
834 | 840 | ||
835 | public event ForceReleaseControls OnForceReleaseControls; | 841 | public event ForceReleaseControls OnForceReleaseControls; |
836 | 842 | ||
843 | public event RequestObjectPropertiesFamily OnObjectGroupRequest; | ||
844 | |||
837 | public event DetailedEstateDataRequest OnDetailedEstateDataRequest; | 845 | public event DetailedEstateDataRequest OnDetailedEstateDataRequest; |
838 | public event SetEstateFlagsRequest OnSetEstateFlagsRequest; | 846 | public event SetEstateFlagsRequest OnSetEstateFlagsRequest; |
839 | public event SetEstateTerrainBaseTexture OnSetEstateTerrainBaseTexture; | 847 | public event SetEstateTerrainBaseTexture OnSetEstateTerrainBaseTexture; |
@@ -3044,6 +3052,8 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
3044 | AddLocalPacketHandler(PacketType.MultipleObjectUpdate, MultipleObjUpdate); | 3052 | AddLocalPacketHandler(PacketType.MultipleObjectUpdate, MultipleObjUpdate); |
3045 | AddLocalPacketHandler(PacketType.MoneyTransferRequest, HandleMoneyTransferRequest); | 3053 | AddLocalPacketHandler(PacketType.MoneyTransferRequest, HandleMoneyTransferRequest); |
3046 | AddLocalPacketHandler(PacketType.ParcelBuy, HandleParcelBuyRequest); | 3054 | AddLocalPacketHandler(PacketType.ParcelBuy, HandleParcelBuyRequest); |
3055 | AddLocalPacketHandler(PacketType.UUIDGroupNameRequest, HandleUUIDGroupNameRequest); | ||
3056 | AddLocalPacketHandler(PacketType.ObjectGroup, HandleObjectGroupRequest); | ||
3047 | } | 3057 | } |
3048 | 3058 | ||
3049 | private bool HandleMoneyTransferRequest(IClientAPI sender, Packet Pack) | 3059 | private bool HandleMoneyTransferRequest(IClientAPI sender, Packet Pack) |
@@ -3090,6 +3100,39 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
3090 | 3100 | ||
3091 | } | 3101 | } |
3092 | 3102 | ||
3103 | private bool HandleUUIDGroupNameRequest(IClientAPI sender, Packet Pack) | ||
3104 | { | ||
3105 | UUIDGroupNameRequestPacket upack = (UUIDGroupNameRequestPacket) Pack; | ||
3106 | |||
3107 | for (int i=0;i< upack.UUIDNameBlock.Length; i++) | ||
3108 | { | ||
3109 | handlerUUIDGroupNameRequest = OnUUIDGroupNameRequest; | ||
3110 | if (handlerUUIDGroupNameRequest != null) | ||
3111 | { | ||
3112 | handlerUUIDGroupNameRequest(upack.UUIDNameBlock[i].ID,this); | ||
3113 | } | ||
3114 | } | ||
3115 | |||
3116 | return true; | ||
3117 | } | ||
3118 | |||
3119 | public bool HandleObjectGroupRequest(IClientAPI sender, Packet Pack) | ||
3120 | { | ||
3121 | |||
3122 | ObjectGroupPacket ogpack = (ObjectGroupPacket)Pack; | ||
3123 | handlerObjectGroupRequest = OnObjectGroupRequest; | ||
3124 | if (handlerObjectGroupRequest != null) | ||
3125 | { | ||
3126 | for (int i = 0; i < ogpack.ObjectData.Length; i++) | ||
3127 | { | ||
3128 | handlerObjectGroupRequest(this, ogpack.AgentData.GroupID, ogpack.ObjectData[i].ObjectLocalID, LLUUID.Zero); | ||
3129 | } | ||
3130 | } | ||
3131 | return true; | ||
3132 | } | ||
3133 | |||
3134 | |||
3135 | |||
3093 | private bool HandleViewerEffect(IClientAPI sender, Packet Pack) | 3136 | private bool HandleViewerEffect(IClientAPI sender, Packet Pack) |
3094 | { | 3137 | { |
3095 | ViewerEffectPacket viewer = (ViewerEffectPacket)Pack; | 3138 | ViewerEffectPacket viewer = (ViewerEffectPacket)Pack; |
@@ -5838,7 +5881,17 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
5838 | OutPacket(Groupupdate, ThrottleOutPacketType.Task); | 5881 | OutPacket(Groupupdate, ThrottleOutPacketType.Task); |
5839 | 5882 | ||
5840 | } | 5883 | } |
5841 | 5884 | public void SendGroupNameReply(LLUUID groupLLUID, string GroupName) | |
5885 | { | ||
5886 | UUIDGroupNameReplyPacket pack = new UUIDGroupNameReplyPacket(); | ||
5887 | UUIDGroupNameReplyPacket.UUIDNameBlockBlock[] uidnameblock = new UUIDGroupNameReplyPacket.UUIDNameBlockBlock[1]; | ||
5888 | UUIDGroupNameReplyPacket.UUIDNameBlockBlock uidnamebloc = new UUIDGroupNameReplyPacket.UUIDNameBlockBlock(); | ||
5889 | uidnamebloc.ID = groupLLUID; | ||
5890 | uidnamebloc.GroupName = Helpers.StringToField(GroupName); | ||
5891 | uidnameblock[0] = uidnamebloc; | ||
5892 | pack.UUIDNameBlock = uidnameblock; | ||
5893 | OutPacket(pack, ThrottleOutPacketType.Task); | ||
5894 | } | ||
5842 | public ClientInfo GetClientInfo() | 5895 | public ClientInfo GetClientInfo() |
5843 | { | 5896 | { |
5844 | //MainLog.Instance.Verbose("CLIENT", "GetClientInfo BGN"); | 5897 | //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 8f3eb62..a83730e 100644 --- a/OpenSim/Region/Environment/Modules/Avatar/Groups/GroupsModule.cs +++ b/OpenSim/Region/Environment/Modules/Avatar/Groups/GroupsModule.cs | |||
@@ -44,6 +44,9 @@ namespace OpenSim.Region.Environment.Modules.Avatar.Groups | |||
44 | private Dictionary<LLUUID, GroupList> m_grouplistmap = new Dictionary<LLUUID, GroupList>(); | 44 | private Dictionary<LLUUID, GroupList> m_grouplistmap = new Dictionary<LLUUID, GroupList>(); |
45 | private Dictionary<LLUUID, GroupData> m_groupmap = new Dictionary<LLUUID, GroupData>(); | 45 | private Dictionary<LLUUID, GroupData> m_groupmap = new Dictionary<LLUUID, GroupData>(); |
46 | private Dictionary<LLUUID, IClientAPI> m_iclientmap = new Dictionary<LLUUID, IClientAPI>(); | 46 | private Dictionary<LLUUID, IClientAPI> m_iclientmap = new Dictionary<LLUUID, IClientAPI>(); |
47 | private Dictionary<LLUUID, GroupData> m_groupUUIDGroup = new Dictionary<LLUUID, GroupData>(); | ||
48 | private LLUUID opensimulatorGroupID = new LLUUID("00000000-68f9-1111-024e-222222111123"); | ||
49 | |||
47 | private List<Scene> m_scene = new List<Scene>(); | 50 | private List<Scene> m_scene = new List<Scene>(); |
48 | 51 | ||
49 | #region IRegionModule Members | 52 | #region IRegionModule Members |
@@ -57,6 +60,18 @@ namespace OpenSim.Region.Environment.Modules.Avatar.Groups | |||
57 | scene.EventManager.OnNewClient += OnNewClient; | 60 | scene.EventManager.OnNewClient += OnNewClient; |
58 | scene.EventManager.OnClientClosed += OnClientClosed; | 61 | scene.EventManager.OnClientClosed += OnClientClosed; |
59 | scene.EventManager.OnGridInstantMessageToGroupsModule += OnGridInstantMessage; | 62 | scene.EventManager.OnGridInstantMessageToGroupsModule += OnGridInstantMessage; |
63 | lock (m_groupUUIDGroup) | ||
64 | { | ||
65 | |||
66 | GroupData OpenSimulatorGroup = new GroupData(); | ||
67 | OpenSimulatorGroup.ActiveGroupTitle = "OpenSimulator Tester"; | ||
68 | OpenSimulatorGroup.GroupID = opensimulatorGroupID; | ||
69 | OpenSimulatorGroup.groupName = "OpenSimulator Testing"; | ||
70 | OpenSimulatorGroup.ActiveGroupPowers = GroupPowers.LandAllowSetHome; | ||
71 | OpenSimulatorGroup.GroupTitles.Add("OpenSimulator Tester"); | ||
72 | if (!m_groupUUIDGroup.ContainsKey(opensimulatorGroupID)) | ||
73 | m_groupUUIDGroup.Add(opensimulatorGroupID, OpenSimulatorGroup); | ||
74 | } | ||
60 | //scene.EventManager. | 75 | //scene.EventManager. |
61 | } | 76 | } |
62 | 77 | ||
@@ -102,6 +117,7 @@ namespace OpenSim.Region.Environment.Modules.Avatar.Groups | |||
102 | // Subscribe to instant messages | 117 | // Subscribe to instant messages |
103 | client.OnInstantMessage += OnInstantMessage; | 118 | client.OnInstantMessage += OnInstantMessage; |
104 | client.OnAgentDataUpdateRequest += OnAgentDataUpdateRequest; | 119 | client.OnAgentDataUpdateRequest += OnAgentDataUpdateRequest; |
120 | client.OnUUIDGroupNameRequest += HandleUUIDGroupNameRequest; | ||
105 | lock (m_iclientmap) | 121 | lock (m_iclientmap) |
106 | { | 122 | { |
107 | if (!m_iclientmap.ContainsKey(client.AgentId)) | 123 | if (!m_iclientmap.ContainsKey(client.AgentId)) |
@@ -109,13 +125,18 @@ namespace OpenSim.Region.Environment.Modules.Avatar.Groups | |||
109 | m_iclientmap.Add(client.AgentId, client); | 125 | m_iclientmap.Add(client.AgentId, client); |
110 | } | 126 | } |
111 | } | 127 | } |
112 | GroupData OpenSimulatorGroup = new GroupData(); | 128 | GroupData OpenSimulatorGroup = null; |
113 | OpenSimulatorGroup.ActiveGroupTitle = "OpenSimulator Tester"; | 129 | lock (m_groupUUIDGroup) |
114 | OpenSimulatorGroup.GroupID = new LLUUID("00000000-68f9-1111-024e-222222111120"); | 130 | { |
115 | OpenSimulatorGroup.GroupMembers.Add(client.AgentId); | 131 | OpenSimulatorGroup = m_groupUUIDGroup[opensimulatorGroupID]; |
116 | OpenSimulatorGroup.groupName = "OpenSimulator Testing"; | 132 | if (!OpenSimulatorGroup.GroupMembers.Contains(client.AgentId)) |
117 | OpenSimulatorGroup.ActiveGroupPowers = GroupPowers.LandAllowSetHome; | 133 | { |
118 | OpenSimulatorGroup.GroupTitles.Add("OpenSimulator Tester"); | 134 | OpenSimulatorGroup.GroupMembers.Add(client.AgentId); |
135 | m_groupUUIDGroup[opensimulatorGroupID] = OpenSimulatorGroup; | ||
136 | } | ||
137 | |||
138 | } | ||
139 | |||
119 | lock (m_groupmap) | 140 | lock (m_groupmap) |
120 | { | 141 | { |
121 | if (!m_groupmap.ContainsKey(client.AgentId)) | 142 | if (!m_groupmap.ContainsKey(client.AgentId)) |
@@ -124,7 +145,7 @@ namespace OpenSim.Region.Environment.Modules.Avatar.Groups | |||
124 | } | 145 | } |
125 | } | 146 | } |
126 | GroupList testGroupList = new GroupList(); | 147 | GroupList testGroupList = new GroupList(); |
127 | testGroupList.m_GroupList.Add(new LLUUID("00000000-68f9-1111-024e-222222111120")); | 148 | testGroupList.m_GroupList.Add(OpenSimulatorGroup.GroupID); |
128 | 149 | ||
129 | lock (m_grouplistmap) | 150 | lock (m_grouplistmap) |
130 | { | 151 | { |
@@ -133,7 +154,7 @@ namespace OpenSim.Region.Environment.Modules.Avatar.Groups | |||
133 | m_grouplistmap.Add(client.AgentId, testGroupList); | 154 | m_grouplistmap.Add(client.AgentId, testGroupList); |
134 | } | 155 | } |
135 | } | 156 | } |
136 | m_log.Info("[GROUP]: Adding " + client.Name + " to OpenSimulator Tester group"); | 157 | m_log.Info("[GROUP]: Adding " + client.Name + " to " + OpenSimulatorGroup.groupName + " "); |
137 | GroupData[] updateGroups = new GroupData[1]; | 158 | GroupData[] updateGroups = new GroupData[1]; |
138 | updateGroups[0] = OpenSimulatorGroup; | 159 | updateGroups[0] = OpenSimulatorGroup; |
139 | 160 | ||
@@ -201,7 +222,22 @@ namespace OpenSim.Region.Environment.Modules.Avatar.Groups | |||
201 | new LLVector3(msg.Position.x, msg.Position.y, msg.Position.z), new LLUUID(msg.RegionID), | 222 | new LLVector3(msg.Position.x, msg.Position.y, msg.Position.z), new LLUUID(msg.RegionID), |
202 | msg.binaryBucket); | 223 | msg.binaryBucket); |
203 | } | 224 | } |
225 | private void HandleUUIDGroupNameRequest(LLUUID id,IClientAPI remote_client) | ||
226 | { | ||
227 | string groupnamereply = "Unknown"; | ||
228 | LLUUID groupUUID = LLUUID.Zero; | ||
204 | 229 | ||
230 | lock (m_groupUUIDGroup) | ||
231 | { | ||
232 | if (m_groupUUIDGroup.ContainsKey(id)) | ||
233 | { | ||
234 | GroupData grp = m_groupUUIDGroup[id]; | ||
235 | groupnamereply = grp.groupName; | ||
236 | groupUUID = grp.GroupID; | ||
237 | } | ||
238 | } | ||
239 | remote_client.SendGroupNameReply(groupUUID, groupnamereply); | ||
240 | } | ||
205 | private void OnClientClosed(LLUUID agentID) | 241 | private void OnClientClosed(LLUUID agentID) |
206 | { | 242 | { |
207 | lock (m_iclientmap) | 243 | lock (m_iclientmap) |
diff --git a/OpenSim/Region/Environment/Modules/World/NPC/NPCAvatar.cs b/OpenSim/Region/Environment/Modules/World/NPC/NPCAvatar.cs index 815a505..71ea0e4 100644 --- a/OpenSim/Region/Environment/Modules/World/NPC/NPCAvatar.cs +++ b/OpenSim/Region/Environment/Modules/World/NPC/NPCAvatar.cs | |||
@@ -236,6 +236,7 @@ namespace OpenSim.Region.Environment.Modules.World.NPC | |||
236 | public event RequestAsset OnRequestAsset; | 236 | public event RequestAsset OnRequestAsset; |
237 | 237 | ||
238 | public event UUIDNameRequest OnNameFromUUIDRequest; | 238 | public event UUIDNameRequest OnNameFromUUIDRequest; |
239 | public event UUIDNameRequest OnUUIDGroupNameRequest; | ||
239 | 240 | ||
240 | public event ParcelPropertiesRequest OnParcelPropertiesRequest; | 241 | public event ParcelPropertiesRequest OnParcelPropertiesRequest; |
241 | public event ParcelDivideRequest OnParcelDivideRequest; | 242 | public event ParcelDivideRequest OnParcelDivideRequest; |
@@ -270,6 +271,8 @@ namespace OpenSim.Region.Environment.Modules.World.NPC | |||
270 | 271 | ||
271 | public event ForceReleaseControls OnForceReleaseControls; | 272 | public event ForceReleaseControls OnForceReleaseControls; |
272 | 273 | ||
274 | public event RequestObjectPropertiesFamily OnObjectGroupRequest; | ||
275 | |||
273 | public event DetailedEstateDataRequest OnDetailedEstateDataRequest; | 276 | public event DetailedEstateDataRequest OnDetailedEstateDataRequest; |
274 | public event SetEstateFlagsRequest OnSetEstateFlagsRequest; | 277 | public event SetEstateFlagsRequest OnSetEstateFlagsRequest; |
275 | public event SetEstateTerrainBaseTexture OnSetEstateTerrainBaseTexture; | 278 | public event SetEstateTerrainBaseTexture OnSetEstateTerrainBaseTexture; |
@@ -756,6 +759,10 @@ namespace OpenSim.Region.Environment.Modules.World.NPC | |||
756 | public void sendLandParcelOverlay(byte[] data, int sequence_id) | 759 | public void sendLandParcelOverlay(byte[] data, int sequence_id) |
757 | { | 760 | { |
758 | } | 761 | } |
762 | |||
763 | public void SendGroupNameReply(LLUUID groupLLUID, string GroupName) | ||
764 | { | ||
765 | } | ||
759 | #endregion | 766 | #endregion |
760 | } | 767 | } |
761 | } | 768 | } |
diff --git a/OpenSim/Region/Environment/Scenes/InnerScene.cs b/OpenSim/Region/Environment/Scenes/InnerScene.cs index 352fdf9..7a460a2 100644 --- a/OpenSim/Region/Environment/Scenes/InnerScene.cs +++ b/OpenSim/Region/Environment/Scenes/InnerScene.cs | |||
@@ -330,7 +330,30 @@ namespace OpenSim.Region.Environment.Scenes | |||
330 | 330 | ||
331 | 331 | ||
332 | } | 332 | } |
333 | public void HandleObjectGroupUpdate( | ||
334 | IClientAPI remoteClient, LLUUID GroupID, uint objectLocalID, LLUUID Garbage) | ||
335 | { | ||
336 | List<EntityBase> EntityList = GetEntities(); | ||
333 | 337 | ||
338 | foreach (EntityBase obj in EntityList) | ||
339 | { | ||
340 | if (obj is SceneObjectGroup) | ||
341 | { | ||
342 | if (((SceneObjectGroup)obj).LocalId == objectLocalID) | ||
343 | { | ||
344 | SceneObjectGroup group = (SceneObjectGroup)obj; | ||
345 | |||
346 | if (m_parentScene.ExternalChecks.ExternalChecksCanEditObject(group.UUID, remoteClient.AgentId)) | ||
347 | group.SetGroup(GroupID, remoteClient); | ||
348 | else | ||
349 | remoteClient.SendAgentAlertMessage("You don't have permission to set the group", false); | ||
350 | |||
351 | } | ||
352 | } | ||
353 | } | ||
354 | |||
355 | |||
356 | } | ||
334 | /// <summary> | 357 | /// <summary> |
335 | /// Event Handling routine for Attach Object | 358 | /// Event Handling routine for Attach Object |
336 | /// </summary> | 359 | /// </summary> |
diff --git a/OpenSim/Region/Environment/Scenes/Scene.cs b/OpenSim/Region/Environment/Scenes/Scene.cs index a798f40..d4b85c2 100644 --- a/OpenSim/Region/Environment/Scenes/Scene.cs +++ b/OpenSim/Region/Environment/Scenes/Scene.cs | |||
@@ -1651,6 +1651,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
1651 | 1651 | ||
1652 | client.OnSetStartLocationRequest += SetHomeRezPoint; | 1652 | client.OnSetStartLocationRequest += SetHomeRezPoint; |
1653 | client.OnUndo += m_innerScene.HandleUndo; | 1653 | client.OnUndo += m_innerScene.HandleUndo; |
1654 | client.OnObjectGroupRequest += m_innerScene.HandleObjectGroupUpdate; | ||
1654 | 1655 | ||
1655 | EventManager.TriggerOnNewClient(client); | 1656 | EventManager.TriggerOnNewClient(client); |
1656 | } | 1657 | } |
diff --git a/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs b/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs index 635a989..44e4c81 100644 --- a/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs +++ b/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs | |||
@@ -2510,5 +2510,16 @@ namespace OpenSim.Region.Environment.Scenes | |||
2510 | } | 2510 | } |
2511 | } | 2511 | } |
2512 | } | 2512 | } |
2513 | public void SetGroup(LLUUID GroupID, IClientAPI client) | ||
2514 | { | ||
2515 | lock (m_parts) | ||
2516 | { | ||
2517 | foreach (SceneObjectPart part in m_parts.Values) | ||
2518 | { | ||
2519 | part.SetGroup(GroupID, client); | ||
2520 | } | ||
2521 | } | ||
2522 | ScheduleGroupForFullUpdate(); | ||
2523 | } | ||
2513 | } | 2524 | } |
2514 | } | 2525 | } |
diff --git a/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs b/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs index a7b7692..a23083c 100644 --- a/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs +++ b/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs | |||
@@ -2760,13 +2760,19 @@ namespace OpenSim.Region.Environment.Scenes | |||
2760 | public void GetProperties(IClientAPI client) | 2760 | public void GetProperties(IClientAPI client) |
2761 | { | 2761 | { |
2762 | 2762 | ||
2763 | client.SendObjectPropertiesReply(LLUUID.Zero, (ulong)CreationDate, CreatorID, LLUUID.Zero, LLUUID.Zero, | 2763 | client.SendObjectPropertiesReply(LLUUID.Zero, (ulong)CreationDate, CreatorID, LLUUID.Zero, GroupID, |
2764 | LLUUID.Zero, (short)InventorySerial, LastOwnerID, UUID, OwnerID, | 2764 | LLUUID.Zero, (short)InventorySerial, LastOwnerID, UUID, OwnerID, |
2765 | ParentGroup.RootPart.TouchName, new byte[0], ParentGroup.RootPart.SitName, Name, Description, | 2765 | ParentGroup.RootPart.TouchName, new byte[0], ParentGroup.RootPart.SitName, Name, Description, |
2766 | ParentGroup.RootPart.OwnerMask, ParentGroup.RootPart.NextOwnerMask, ParentGroup.RootPart.GroupMask, ParentGroup.RootPart.EveryoneMask, | 2766 | ParentGroup.RootPart.OwnerMask, ParentGroup.RootPart.NextOwnerMask, ParentGroup.RootPart.GroupMask, ParentGroup.RootPart.EveryoneMask, |
2767 | ParentGroup.RootPart.BaseMask); | 2767 | ParentGroup.RootPart.BaseMask); |
2768 | 2768 | ||
2769 | } | 2769 | } |
2770 | public void SetGroup(LLUUID groupID, IClientAPI client) | ||
2771 | { | ||
2772 | GroupID = groupID; | ||
2773 | GetProperties(client); | ||
2774 | m_updateFlag = 2; | ||
2775 | } | ||
2770 | 2776 | ||
2771 | } | 2777 | } |
2772 | } | 2778 | } |
diff --git a/OpenSim/Region/Examples/SimpleModule/MyNpcCharacter.cs b/OpenSim/Region/Examples/SimpleModule/MyNpcCharacter.cs index ca8636f..93ab411 100644 --- a/OpenSim/Region/Examples/SimpleModule/MyNpcCharacter.cs +++ b/OpenSim/Region/Examples/SimpleModule/MyNpcCharacter.cs | |||
@@ -140,6 +140,7 @@ namespace OpenSim.Region.Examples.SimpleModule | |||
140 | public event RequestAsset OnRequestAsset; | 140 | public event RequestAsset OnRequestAsset; |
141 | 141 | ||
142 | public event UUIDNameRequest OnNameFromUUIDRequest; | 142 | public event UUIDNameRequest OnNameFromUUIDRequest; |
143 | public event UUIDNameRequest OnUUIDGroupNameRequest; | ||
143 | 144 | ||
144 | public event ParcelPropertiesRequest OnParcelPropertiesRequest; | 145 | public event ParcelPropertiesRequest OnParcelPropertiesRequest; |
145 | public event ParcelDivideRequest OnParcelDivideRequest; | 146 | public event ParcelDivideRequest OnParcelDivideRequest; |
@@ -173,6 +174,7 @@ namespace OpenSim.Region.Examples.SimpleModule | |||
173 | public event AgentSit OnUndo; | 174 | public event AgentSit OnUndo; |
174 | 175 | ||
175 | public event ForceReleaseControls OnForceReleaseControls; | 176 | public event ForceReleaseControls OnForceReleaseControls; |
177 | public event RequestObjectPropertiesFamily OnObjectGroupRequest; | ||
176 | 178 | ||
177 | public event DetailedEstateDataRequest OnDetailedEstateDataRequest; | 179 | public event DetailedEstateDataRequest OnDetailedEstateDataRequest; |
178 | public event SetEstateFlagsRequest OnSetEstateFlagsRequest; | 180 | public event SetEstateFlagsRequest OnSetEstateFlagsRequest; |
@@ -754,5 +756,9 @@ namespace OpenSim.Region.Examples.SimpleModule | |||
754 | public void sendLandParcelOverlay(byte[] data, int sequence_id) | 756 | public void sendLandParcelOverlay(byte[] data, int sequence_id) |
755 | { | 757 | { |
756 | } | 758 | } |
759 | |||
760 | public void SendGroupNameReply(LLUUID groupLLUID, string GroupName) | ||
761 | { | ||
762 | } | ||
757 | } | 763 | } |
758 | } | 764 | } |