diff options
author | Teravus Ovares | 2007-11-24 01:38:36 +0000 |
---|---|---|
committer | Teravus Ovares | 2007-11-24 01:38:36 +0000 |
commit | 52714c339e49e8f1f839b315cd6b4da1bb53e82a (patch) | |
tree | 73a7994d316638607dfcb79a64a7d4f13db4a875 /OpenSim | |
parent | *Shared Modules have feelings too! -- Shared Region Modules that are found in... (diff) | |
download | opensim-SC_OLD-52714c339e49e8f1f839b315cd6b4da1bb53e82a.zip opensim-SC_OLD-52714c339e49e8f1f839b315cd6b4da1bb53e82a.tar.gz opensim-SC_OLD-52714c339e49e8f1f839b315cd6b4da1bb53e82a.tar.bz2 opensim-SC_OLD-52714c339e49e8f1f839b315cd6b4da1bb53e82a.tar.xz |
* Hanling RequestGodlikePowers. On Request.. sends the sim owner's client the appropriate messages to make it think it's got god status. Will be used for finding more unimplemented packets....
Diffstat (limited to 'OpenSim')
-rw-r--r-- | OpenSim/Framework/IClientAPI.cs | 5 | ||||
-rw-r--r-- | OpenSim/Region/ClientStack/ClientView.API.cs | 3 | ||||
-rw-r--r-- | OpenSim/Region/ClientStack/ClientView.ProcessPackets.cs | 22 | ||||
-rw-r--r-- | OpenSim/Region/Environment/Scenes/Scene.cs | 32 | ||||
-rw-r--r-- | OpenSim/Region/Environment/Scenes/ScenePresence.cs | 19 | ||||
-rw-r--r-- | OpenSim/Region/Examples/SimpleApp/MyNpcCharacter.cs | 1 |
6 files changed, 64 insertions, 18 deletions
diff --git a/OpenSim/Framework/IClientAPI.cs b/OpenSim/Framework/IClientAPI.cs index 2c82d97..f7e3521 100644 --- a/OpenSim/Framework/IClientAPI.cs +++ b/OpenSim/Framework/IClientAPI.cs | |||
@@ -267,6 +267,8 @@ namespace OpenSim.Framework | |||
267 | 267 | ||
268 | public delegate void AddNewPrim(LLUUID ownerID, LLVector3 pos, LLQuaternion rot, PrimitiveBaseShape shape); | 268 | public delegate void AddNewPrim(LLUUID ownerID, LLVector3 pos, LLQuaternion rot, PrimitiveBaseShape shape); |
269 | 269 | ||
270 | public delegate void RequestGodlikePowers(LLUUID AgentID, LLUUID SessionID, LLUUID token, IClientAPI remote_client); | ||
271 | |||
270 | public delegate void CreateInventoryFolder( | 272 | public delegate void CreateInventoryFolder( |
271 | IClientAPI remoteClient, LLUUID folderID, ushort folderType, string folderName, LLUUID parentID); | 273 | IClientAPI remoteClient, LLUUID folderID, ushort folderType, string folderName, LLUUID parentID); |
272 | 274 | ||
@@ -329,6 +331,9 @@ namespace OpenSim.Framework | |||
329 | event AvatarPickerRequest OnAvatarPickerRequest; | 331 | event AvatarPickerRequest OnAvatarPickerRequest; |
330 | event Action<IClientAPI> OnRequestAvatarsData; | 332 | event Action<IClientAPI> OnRequestAvatarsData; |
331 | event AddNewPrim OnAddPrim; | 333 | event AddNewPrim OnAddPrim; |
334 | |||
335 | event RequestGodlikePowers OnRequestGodlikePowers; | ||
336 | |||
332 | event ObjectDuplicate OnObjectDuplicate; | 337 | event ObjectDuplicate OnObjectDuplicate; |
333 | event UpdateVector OnGrabObject; | 338 | event UpdateVector OnGrabObject; |
334 | event ObjectSelect OnDeGrabObject; | 339 | event ObjectSelect OnDeGrabObject; |
diff --git a/OpenSim/Region/ClientStack/ClientView.API.cs b/OpenSim/Region/ClientStack/ClientView.API.cs index 9182b5c..b046f0a 100644 --- a/OpenSim/Region/ClientStack/ClientView.API.cs +++ b/OpenSim/Region/ClientStack/ClientView.API.cs | |||
@@ -65,6 +65,7 @@ namespace OpenSim.Region.ClientStack | |||
65 | public event ObjectDuplicate OnObjectDuplicate; | 65 | public event ObjectDuplicate OnObjectDuplicate; |
66 | public event MoveObject OnGrabUpdate; | 66 | public event MoveObject OnGrabUpdate; |
67 | public event AddNewPrim OnAddPrim; | 67 | public event AddNewPrim OnAddPrim; |
68 | public event RequestGodlikePowers OnRequestGodlikePowers; | ||
68 | public event ObjectExtraParams OnUpdateExtraParams; | 69 | public event ObjectExtraParams OnUpdateExtraParams; |
69 | public event UpdateShape OnUpdatePrimShape; | 70 | public event UpdateShape OnUpdatePrimShape; |
70 | public event ObjectSelect OnObjectSelect; | 71 | public event ObjectSelect OnObjectSelect; |
@@ -246,7 +247,7 @@ namespace OpenSim.Region.ClientStack | |||
246 | 247 | ||
247 | OutPacket(reply, ThrottleOutPacketType.Task); | 248 | OutPacket(reply, ThrottleOutPacketType.Task); |
248 | } | 249 | } |
249 | 250 | ||
250 | /// <summary> | 251 | /// <summary> |
251 | /// | 252 | /// |
252 | /// </summary> | 253 | /// </summary> |
diff --git a/OpenSim/Region/ClientStack/ClientView.ProcessPackets.cs b/OpenSim/Region/ClientStack/ClientView.ProcessPackets.cs index 64f5b6d..ca7ba7f 100644 --- a/OpenSim/Region/ClientStack/ClientView.ProcessPackets.cs +++ b/OpenSim/Region/ClientStack/ClientView.ProcessPackets.cs | |||
@@ -1066,25 +1066,13 @@ namespace OpenSim.Region.ClientStack | |||
1066 | 1066 | ||
1067 | #region unimplemented handlers | 1067 | #region unimplemented handlers |
1068 | case PacketType.RequestGodlikePowers: | 1068 | case PacketType.RequestGodlikePowers: |
1069 | //RequestGodlikePowersPacket rglpPack = (RequestGodlikePowersPacket) Pack; | 1069 | RequestGodlikePowersPacket rglpPack = (RequestGodlikePowersPacket) Pack; |
1070 | //RequestGodlikePowersPacket.RequestBlockBlock rblock = rglpPack.RequestBlock; | 1070 | RequestGodlikePowersPacket.RequestBlockBlock rblock = rglpPack.RequestBlock; |
1071 | //LLUUID token = rblock.Token; | 1071 | LLUUID token = rblock.Token; |
1072 | //RequestGodlikePowersPacket.AgentDataBlock ablock = rglpPack.AgentData; | 1072 | RequestGodlikePowersPacket.AgentDataBlock ablock = rglpPack.AgentData; |
1073 | 1073 | ||
1074 | OnRequestGodlikePowers(ablock.AgentID, ablock.SessionID, token, this); | ||
1074 | 1075 | ||
1075 | //GrantGodlikePowersPacket respondPacket = new GrantGodlikePowersPacket(); | ||
1076 | //GrantGodlikePowersPacket.GrantDataBlock gdb = new GrantGodlikePowersPacket.GrantDataBlock(); | ||
1077 | //GrantGodlikePowersPacket.AgentDataBlock adb = new GrantGodlikePowersPacket.AgentDataBlock(); | ||
1078 | |||
1079 | //adb.AgentID = ablock.AgentID; | ||
1080 | //adb.SessionID = ablock.SessionID; | ||
1081 | |||
1082 | //gdb.GodLevel = (byte)100; | ||
1083 | //gdb.Token = token; | ||
1084 | //respondPacket.AgentData = (GrantGodlikePowersPacket.AgentDataBlock)ablock; | ||
1085 | //respondPacket.GrantData = gdb; | ||
1086 | //respondPacket.AgentData = adb; | ||
1087 | //OutPacket(respondPacket, ThrottleOutPacketType.Task); | ||
1088 | break; | 1076 | break; |
1089 | case PacketType.GodKickUser: | 1077 | case PacketType.GodKickUser: |
1090 | //GodKickUserPacket gkupack = (GodKickUserPacket) Pack; | 1078 | //GodKickUserPacket gkupack = (GodKickUserPacket) Pack; |
diff --git a/OpenSim/Region/Environment/Scenes/Scene.cs b/OpenSim/Region/Environment/Scenes/Scene.cs index 7bcd7bd..234b12a 100644 --- a/OpenSim/Region/Environment/Scenes/Scene.cs +++ b/OpenSim/Region/Environment/Scenes/Scene.cs | |||
@@ -830,6 +830,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
830 | new ParcelObjectOwnerRequest(m_LandManager.handleParcelObjectOwnersRequest); | 830 | new ParcelObjectOwnerRequest(m_LandManager.handleParcelObjectOwnersRequest); |
831 | 831 | ||
832 | client.OnEstateOwnerMessage += new EstateOwnerMessageRequest(m_estateManager.handleEstateOwnerMessage); | 832 | client.OnEstateOwnerMessage += new EstateOwnerMessageRequest(m_estateManager.handleEstateOwnerMessage); |
833 | client.OnRequestGodlikePowers += handleRequestGodlikePowers; | ||
833 | 834 | ||
834 | client.OnCreateNewInventoryItem += CreateNewInventoryItem; | 835 | client.OnCreateNewInventoryItem += CreateNewInventoryItem; |
835 | client.OnCreateNewInventoryFolder += CommsManager.UserProfileCache.HandleCreateInventoryFolder; | 836 | client.OnCreateNewInventoryFolder += CommsManager.UserProfileCache.HandleCreateInventoryFolder; |
@@ -1177,6 +1178,37 @@ namespace OpenSim.Region.Environment.Scenes | |||
1177 | } | 1178 | } |
1178 | } | 1179 | } |
1179 | 1180 | ||
1181 | public void handleRequestGodlikePowers(LLUUID agentID, LLUUID sessionID, LLUUID token, IClientAPI controllingclient) | ||
1182 | { | ||
1183 | // First check that this is the sim owner | ||
1184 | |||
1185 | if (agentID == RegionInfo.MasterAvatarAssignedUUID) | ||
1186 | { | ||
1187 | |||
1188 | // User needs to be logged into this sim | ||
1189 | if (m_scenePresences.ContainsKey(agentID)) | ||
1190 | { | ||
1191 | // Next we check for spoofing..... | ||
1192 | LLUUID testSessionID = m_scenePresences[agentID].ControllingClient.SessionId; | ||
1193 | if (sessionID == testSessionID) | ||
1194 | { | ||
1195 | if (sessionID == controllingclient.SessionId) | ||
1196 | { | ||
1197 | m_scenePresences[agentID].GrantGodlikePowers(agentID, testSessionID, token); | ||
1198 | |||
1199 | } | ||
1200 | |||
1201 | } | ||
1202 | |||
1203 | } | ||
1204 | } | ||
1205 | else | ||
1206 | { | ||
1207 | m_scenePresences[agentID].ControllingClient.SendAgentAlertMessage("Request for god powers denied", false); | ||
1208 | } | ||
1209 | |||
1210 | } | ||
1211 | |||
1180 | public void SendAlertToUser(string firstName, string lastName, string message, bool modal) | 1212 | public void SendAlertToUser(string firstName, string lastName, string message, bool modal) |
1181 | { | 1213 | { |
1182 | foreach (ScenePresence presence in m_scenePresences.Values) | 1214 | foreach (ScenePresence presence in m_scenePresences.Values) |
diff --git a/OpenSim/Region/Environment/Scenes/ScenePresence.cs b/OpenSim/Region/Environment/Scenes/ScenePresence.cs index 0cc3a7e..f91913d 100644 --- a/OpenSim/Region/Environment/Scenes/ScenePresence.cs +++ b/OpenSim/Region/Environment/Scenes/ScenePresence.cs | |||
@@ -1233,6 +1233,25 @@ namespace OpenSim.Region.Environment.Scenes | |||
1233 | ControllingClient.OutPacket(kupack, ThrottleOutPacketType.Task); | 1233 | ControllingClient.OutPacket(kupack, ThrottleOutPacketType.Task); |
1234 | 1234 | ||
1235 | } | 1235 | } |
1236 | public void GrantGodlikePowers(LLUUID agentID, LLUUID sessionID, LLUUID token) | ||
1237 | { | ||
1238 | GrantGodlikePowersPacket respondPacket = new GrantGodlikePowersPacket(); | ||
1239 | GrantGodlikePowersPacket.GrantDataBlock gdb = new GrantGodlikePowersPacket.GrantDataBlock(); | ||
1240 | GrantGodlikePowersPacket.AgentDataBlock adb = new GrantGodlikePowersPacket.AgentDataBlock(); | ||
1241 | |||
1242 | adb.AgentID = agentID; | ||
1243 | adb.SessionID = sessionID; // More security | ||
1244 | |||
1245 | gdb.GodLevel = (byte)100; | ||
1246 | gdb.Token = token; | ||
1247 | //respondPacket.AgentData = (GrantGodlikePowersPacket.AgentDataBlock)ablock; | ||
1248 | respondPacket.GrantData = gdb; | ||
1249 | respondPacket.AgentData = adb; | ||
1250 | ControllingClient.OutPacket(respondPacket, ThrottleOutPacketType.Task); | ||
1251 | |||
1252 | |||
1253 | |||
1254 | } | ||
1236 | /// <summary> | 1255 | /// <summary> |
1237 | /// | 1256 | /// |
1238 | /// </summary> | 1257 | /// </summary> |
diff --git a/OpenSim/Region/Examples/SimpleApp/MyNpcCharacter.cs b/OpenSim/Region/Examples/SimpleApp/MyNpcCharacter.cs index 65c8ee7..b8800a8 100644 --- a/OpenSim/Region/Examples/SimpleApp/MyNpcCharacter.cs +++ b/OpenSim/Region/Examples/SimpleApp/MyNpcCharacter.cs | |||
@@ -75,6 +75,7 @@ namespace SimpleApp | |||
75 | public event AvatarPickerRequest OnAvatarPickerRequest; | 75 | public event AvatarPickerRequest OnAvatarPickerRequest; |
76 | public event Action<IClientAPI> OnRequestAvatarsData; | 76 | public event Action<IClientAPI> OnRequestAvatarsData; |
77 | public event AddNewPrim OnAddPrim; | 77 | public event AddNewPrim OnAddPrim; |
78 | public event RequestGodlikePowers OnRequestGodlikePowers; | ||
78 | public event ObjectDuplicate OnObjectDuplicate; | 79 | public event ObjectDuplicate OnObjectDuplicate; |
79 | public event UpdateVector OnGrabObject; | 80 | public event UpdateVector OnGrabObject; |
80 | public event ObjectSelect OnDeGrabObject; | 81 | public event ObjectSelect OnDeGrabObject; |