opensim-development – Blame information for rev 1

Subversion Repositories:
Rev:
Rev Author Line No. Line
1 eva 1 /*
2 * Copyright (c) Contributors, http://opensimulator.org/
3 * See CONTRIBUTORS.TXT for a full list of copyright holders.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are met:
7 * * Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer.
9 * * Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the
11 * documentation and/or other materials provided with the distribution.
12 * * Neither the name of the OpenSimulator Project nor the
13 * names of its contributors may be used to endorse or promote products
14 * derived from this software without specific prior written permission.
15 *
16 * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
17 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19 * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
20 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 */
27  
28 using System;
29 using System.Collections.Generic;
30 using System.Net;
31 using OpenMetaverse;
32 using OpenMetaverse.Packets;
33  
34 namespace OpenSim.Framework
35 {
36 #region Client API Delegate definitions
37  
38 public delegate void ViewerEffectEventHandler(IClientAPI sender, List<ViewerEffectEventHandlerArg> args);
39  
40 public delegate void ChatMessage(Object sender, OSChatMessage e);
41  
42 public delegate void GenericMessage(Object sender, string method, List<String> args);
43  
44 public delegate void TextureRequest(Object sender, TextureRequestArgs e);
45  
46 public delegate void AvatarNowWearing(IClientAPI sender, AvatarWearingArgs e);
47  
48 public delegate void ImprovedInstantMessage(IClientAPI remoteclient, GridInstantMessage im);
49  
50 public delegate void RezObject(IClientAPI remoteClient, UUID itemID, Vector3 RayEnd, Vector3 RayStart,
51 UUID RayTargetID, byte BypassRayCast, bool RayEndIsIntersection,
52 bool RezSelected, bool RemoveItem, UUID fromTaskID);
53  
54 public delegate ISceneEntity RezSingleAttachmentFromInv(IClientAPI remoteClient, UUID itemID, uint AttachmentPt);
55  
56 public delegate void RezMultipleAttachmentsFromInv(IClientAPI remoteClient, List<KeyValuePair<UUID, uint>> rezlist );
57  
58 public delegate void ObjectAttach(
59 IClientAPI remoteClient, uint objectLocalID, uint AttachmentPt, bool silent);
60  
61 public delegate void ModifyTerrain(UUID user,
62 float height, float seconds, byte size, byte action, float north, float west, float south, float east,
63 UUID agentId);
64  
65 public delegate void NetworkStats(int inPackets, int outPackets, int unAckedBytes);
66  
67 public delegate void CachedTextureRequest(IClientAPI remoteClient, int serial, List<CachedTextureRequestArg> cachedTextureRequest);
68  
69 public delegate void SetAppearance(IClientAPI remoteClient, Primitive.TextureEntry textureEntry, byte[] visualParams, Vector3 AvSize, WearableCacheItem[] CacheItems);
70  
71 public delegate void StartAnim(IClientAPI remoteClient, UUID animID);
72  
73 public delegate void StopAnim(IClientAPI remoteClient, UUID animID);
74  
75 public delegate void LinkObjects(IClientAPI remoteClient, uint parent, List<uint> children);
76  
77 public delegate void DelinkObjects(List<uint> primIds, IClientAPI client);
78  
79 public delegate void RequestMapBlocks(IClientAPI remoteClient, int minX, int minY, int maxX, int maxY, uint flag);
80  
81 public delegate void RequestMapName(IClientAPI remoteClient, string mapName, uint flags);
82  
83 public delegate void TeleportLocationRequest(
84 IClientAPI remoteClient, ulong regionHandle, Vector3 position, Vector3 lookAt, uint flags);
85  
86 public delegate void TeleportLandmarkRequest(
87 IClientAPI remoteClient, AssetLandmark lm);
88  
89 public delegate void TeleportCancel(IClientAPI remoteClient);
90  
91 public delegate void DisconnectUser();
92  
93 public delegate void RequestAvatarProperties(IClientAPI remoteClient, UUID avatarID);
94  
95 public delegate void UpdateAvatarProperties(IClientAPI remoteClient, UserProfileData ProfileData);
96  
97 public delegate void SetAlwaysRun(IClientAPI remoteClient, bool SetAlwaysRun);
98  
99 public delegate void GenericCall1(IClientAPI remoteClient);
100  
101 public delegate void GenericCall2();
102  
103 // really don't want to be passing packets in these events, so this is very temporary.
104 public delegate void GenericCall4(Packet packet, IClientAPI remoteClient);
105  
106 public delegate void DeRezObject(
107 IClientAPI remoteClient, List<uint> localIDs, UUID groupID, DeRezAction action, UUID destinationID);
108  
109 public delegate void GenericCall5(IClientAPI remoteClient, bool status);
110  
111 public delegate void GenericCall7(IClientAPI remoteClient, uint localID, string message);
112  
113 public delegate void UpdateShape(UUID agentID, uint localID, UpdateShapeArgs shapeBlock);
114  
115 public delegate void ObjectExtraParams(UUID agentID, uint localID, ushort type, bool inUse, byte[] data);
116  
117 public delegate void ObjectSelect(uint localID, IClientAPI remoteClient);
118  
119 public delegate void ObjectRequest(uint localID, IClientAPI remoteClient);
120  
121 public delegate void RequestObjectPropertiesFamily(
122 IClientAPI remoteClient, UUID AgentID, uint RequestFlags, UUID TaskID);
123  
124 public delegate void ObjectDeselect(uint localID, IClientAPI remoteClient);
125  
126 public delegate void ObjectDrop(uint localID, IClientAPI remoteClient);
127  
128 public delegate void UpdatePrimFlags(
129 uint localID, bool UsePhysics, bool IsTemporary, bool IsPhantom, ExtraPhysicsData PhysData, IClientAPI remoteClient);
130  
131 public delegate void UpdatePrimTexture(uint localID, byte[] texture, IClientAPI remoteClient);
132  
133 public delegate void UpdateVector(uint localID, Vector3 pos, IClientAPI remoteClient);
134  
135 public delegate void UpdatePrimRotation(uint localID, Quaternion rot, IClientAPI remoteClient);
136  
137 public delegate void UpdatePrimSingleRotation(uint localID, Quaternion rot, IClientAPI remoteClient);
138  
139 public delegate void UpdatePrimSingleRotationPosition(uint localID, Quaternion rot, Vector3 pos, IClientAPI remoteClient);
140  
141 public delegate void UpdatePrimGroupRotation(uint localID, Vector3 pos, Quaternion rot, IClientAPI remoteClient);
142  
143 public delegate void ObjectDuplicate(uint localID, Vector3 offset, uint dupeFlags, UUID AgentID, UUID GroupID);
144  
145 public delegate void ObjectDuplicateOnRay(uint localID, uint dupeFlags, UUID AgentID, UUID GroupID,
146 UUID RayTargetObj, Vector3 RayEnd, Vector3 RayStart,
147 bool BypassRaycast, bool RayEndIsIntersection, bool CopyCenters,
148 bool CopyRotates);
149  
150 public delegate void StatusChange(bool status);
151  
152 public delegate void NewAvatar(IClientAPI remoteClient, UUID agentID, bool status);
153  
154 public delegate void UpdateAgent(IClientAPI remoteClient, AgentUpdateArgs agentData);
155  
156 public delegate void AgentRequestSit(IClientAPI remoteClient, UUID agentID, UUID targetID, Vector3 offset);
157  
158 public delegate void AgentSit(IClientAPI remoteClient, UUID agentID);
159  
160 public delegate void LandUndo(IClientAPI remoteClient);
161  
162 public delegate void AvatarPickerRequest(IClientAPI remoteClient, UUID agentdata, UUID queryID, string UserQuery);
163  
164 public delegate void GrabObject(
165 uint localID, Vector3 pos, IClientAPI remoteClient, List<SurfaceTouchEventArgs> surfaceArgs);
166  
167 public delegate void DeGrabObject(
168 uint localID, IClientAPI remoteClient, List<SurfaceTouchEventArgs> surfaceArgs);
169  
170 public delegate void MoveObject(
171 UUID objectID, Vector3 offset, Vector3 grapPos, IClientAPI remoteClient, List<SurfaceTouchEventArgs> surfaceArgs);
172  
173 public delegate void SpinStart(UUID objectID, IClientAPI remoteClient);
174 public delegate void SpinObject(UUID objectID, Quaternion rotation, IClientAPI remoteClient);
175 public delegate void SpinStop(UUID objectID, IClientAPI remoteClient);
176  
177 public delegate void ParcelAccessListRequest(
178 UUID agentID, UUID sessionID, uint flags, int sequenceID, int landLocalID, IClientAPI remote_client);
179  
180 public delegate void ParcelAccessListUpdateRequest(UUID agentID, uint flags,
181 int landLocalID, UUID transactionID, int sequenceID,
182 int sections, List<LandAccessEntry> entries,
183 IClientAPI remote_client);
184  
185 public delegate void ParcelPropertiesRequest(
186 int start_x, int start_y, int end_x, int end_y, int sequence_id, bool snap_selection, IClientAPI remote_client);
187  
188 public delegate void ParcelDivideRequest(int west, int south, int east, int north, IClientAPI remote_client);
189  
190 public delegate void ParcelJoinRequest(int west, int south, int east, int north, IClientAPI remote_client);
191  
192 public delegate void ParcelPropertiesUpdateRequest(LandUpdateArgs args, int local_id, IClientAPI remote_client);
193  
194 public delegate void ParcelSelectObjects(int land_local_id, int request_type, List<UUID> returnIDs, IClientAPI remote_client);
195  
196 public delegate void ParcelObjectOwnerRequest(int local_id, IClientAPI remote_client);
197  
198 public delegate void ParcelAbandonRequest(int local_id, IClientAPI remote_client);
199  
200 public delegate void ParcelGodForceOwner(int local_id, UUID ownerID, IClientAPI remote_client);
201  
202 public delegate void ParcelReclaim(int local_id, IClientAPI remote_client);
203  
204 public delegate void ParcelReturnObjectsRequest(
205 int local_id, uint return_type, UUID[] agent_ids, UUID[] selected_ids, IClientAPI remote_client);
206  
207 public delegate void ParcelDeedToGroup(int local_id, UUID group_id, IClientAPI remote_client);
208  
209 public delegate void EstateOwnerMessageRequest(
210 UUID AgentID, UUID SessionID, UUID TransactionID, UUID Invoice, byte[] Method, byte[][] Parameters,
211 IClientAPI remote_client);
212  
213 public delegate void RegionInfoRequest(IClientAPI remote_client);
214  
215 public delegate void EstateCovenantRequest(IClientAPI remote_client);
216  
217 public delegate void UUIDNameRequest(UUID id, IClientAPI remote_client);
218  
219 public delegate void AddNewPrim(
220 UUID ownerID, UUID groupID, Vector3 RayEnd, Quaternion rot, PrimitiveBaseShape shape, byte bypassRaycast, Vector3 RayStart,
221 UUID RayTargetID,
222 byte RayEndIsIntersection);
223  
224 public delegate void RequestGodlikePowers(
225 UUID AgentID, UUID SessionID, UUID token, bool GodLike, IClientAPI remote_client);
226  
227 public delegate void GodKickUser(
228 UUID GodAgentID, UUID GodSessionID, UUID AgentID, uint kickflags, byte[] reason);
229  
230 public delegate void CreateInventoryFolder(
231 IClientAPI remoteClient, UUID folderID, ushort folderType, string folderName, UUID parentID);
232  
233 public delegate void UpdateInventoryFolder(
234 IClientAPI remoteClient, UUID folderID, ushort type, string name, UUID parentID);
235  
236 public delegate void MoveInventoryFolder(
237 IClientAPI remoteClient, UUID folderID, UUID parentID);
238  
239 public delegate void CreateNewInventoryItem(
240 IClientAPI remoteClient, UUID transActionID, UUID folderID, uint callbackID, string description, string name,
241 sbyte invType, sbyte type, byte wearableType, uint nextOwnerMask, int creationDate);
242  
243 public delegate void LinkInventoryItem(
244 IClientAPI remoteClient, UUID transActionID, UUID folderID, uint callbackID, string description, string name,
245 sbyte invType, sbyte type, UUID olditemID);
246  
247 public delegate void FetchInventoryDescendents(
248 IClientAPI remoteClient, UUID folderID, UUID ownerID, bool fetchFolders, bool fetchItems, int sortOrder);
249  
250 public delegate void PurgeInventoryDescendents(
251 IClientAPI remoteClient, UUID folderID);
252  
253 public delegate void FetchInventory(IClientAPI remoteClient, UUID itemID, UUID ownerID);
254  
255 public delegate void RequestTaskInventory(IClientAPI remoteClient, uint localID);
256  
257 /* public delegate void UpdateInventoryItem(
258 IClientAPI remoteClient, UUID transactionID, UUID itemID, string name, string description,
259 uint nextOwnerMask);*/
260  
261 public delegate void UpdateInventoryItem(
262 IClientAPI remoteClient, UUID transactionID, UUID itemID, InventoryItemBase itemUpd);
263  
264 public delegate void CopyInventoryItem(
265 IClientAPI remoteClient, uint callbackID, UUID oldAgentID, UUID oldItemID, UUID newFolderID,
266 string newName);
267  
268 public delegate void MoveInventoryItem(
269 IClientAPI remoteClient, List<InventoryItemBase> items);
270  
271 public delegate void RemoveInventoryItem(
272 IClientAPI remoteClient, List<UUID> itemIDs);
273  
274 public delegate void RemoveInventoryFolder(
275 IClientAPI remoteClient, List<UUID> folderIDs);
276  
277 public delegate void RequestAsset(IClientAPI remoteClient, RequestAssetArgs transferRequest);
278  
279 public delegate void AbortXfer(IClientAPI remoteClient, ulong xferID);
280  
281 public delegate void RezScript(IClientAPI remoteClient, InventoryItemBase item, UUID transactionID, uint localID);
282  
283 public delegate void UpdateTaskInventory(
284 IClientAPI remoteClient, UUID transactionID, TaskInventoryItem item, uint localID);
285  
286 public delegate void MoveTaskInventory(IClientAPI remoteClient, UUID folderID, uint localID, UUID itemID);
287  
288 public delegate void RemoveTaskInventory(IClientAPI remoteClient, UUID itemID, uint localID);
289  
290 public delegate void UDPAssetUploadRequest(
291 IClientAPI remoteClient, UUID assetID, UUID transaction, sbyte type, byte[] data, bool storeLocal,
292 bool tempFile);
293  
294 public delegate void XferReceive(IClientAPI remoteClient, ulong xferID, uint packetID, byte[] data);
295  
296 public delegate void RequestXfer(IClientAPI remoteClient, ulong xferID, string fileName);
297  
298 public delegate void ConfirmXfer(IClientAPI remoteClient, ulong xferID, uint packetID);
299  
300 public delegate void FriendActionDelegate(
301 IClientAPI remoteClient, UUID transactionID, List<UUID> callingCardFolders);
302  
303 public delegate void FriendshipTermination(IClientAPI remoteClient, UUID ExID);
304  
305 public delegate void MoneyTransferRequest(
306 UUID sourceID, UUID destID, int amount, int transactionType, string description);
307  
308 public delegate void ParcelBuy(UUID agentId, UUID groupId, bool final, bool groupOwned,
309 bool removeContribution, int parcelLocalID, int parcelArea, int parcelPrice,
310 bool authenticated);
311  
312 // We keep all this information for fraud purposes in the future.
313 public delegate void MoneyBalanceRequest(IClientAPI remoteClient, UUID agentID, UUID sessionID, UUID TransactionID);
314  
315 public delegate void ObjectPermissions(
316 IClientAPI controller, UUID agentID, UUID sessionID, byte field, uint localId, uint mask, byte set);
317  
318 public delegate void EconomyDataRequest(IClientAPI client);
319  
320 public delegate void ObjectIncludeInSearch(IClientAPI remoteClient, bool IncludeInSearch, uint localID);
321  
322 public delegate void ScriptAnswer(IClientAPI remoteClient, UUID objectID, UUID itemID, int answer);
323  
324 public delegate void RequestPayPrice(IClientAPI remoteClient, UUID objectID);
325  
326 public delegate void ObjectSaleInfo(
327 IClientAPI remoteClient, UUID agentID, UUID sessionID, uint localID, byte saleType, int salePrice);
328  
329 public delegate void ObjectBuy(
330 IClientAPI remoteClient, UUID agentID, UUID sessionID, UUID groupID, UUID categoryID, uint localID,
331 byte saleType, int salePrice);
332  
333 public delegate void BuyObjectInventory(
334 IClientAPI remoteClient, UUID agentID, UUID sessionID, UUID objectID, UUID itemID, UUID folderID);
335  
336 public delegate void ForceReleaseControls(IClientAPI remoteClient, UUID agentID);
337  
338 public delegate void GodLandStatRequest(
339 int parcelID, uint reportType, uint requestflags, string filter, IClientAPI remoteClient);
340  
341 //Estate Requests
342 public delegate void DetailedEstateDataRequest(IClientAPI remoteClient, UUID invoice);
343  
344 public delegate void SetEstateFlagsRequest(
345 bool blockTerraform, bool noFly, bool allowDamage, bool blockLandResell, int maxAgents, float objectBonusFactor,
346 int matureLevel, bool restrictPushObject, bool allowParcelChanges);
347  
348 public delegate void SetEstateTerrainBaseTexture(IClientAPI remoteClient, int corner, UUID side);
349  
350 public delegate void SetEstateTerrainDetailTexture(IClientAPI remoteClient, int corner, UUID side);
351  
352 public delegate void SetEstateTerrainTextureHeights(IClientAPI remoteClient, int corner, float lowVal, float highVal
353 );
354  
355 public delegate void CommitEstateTerrainTextureRequest(IClientAPI remoteClient);
356  
357 public delegate void SetRegionTerrainSettings(
358 float waterHeight, float terrainRaiseLimit, float terrainLowerLimit, bool estateSun, bool fixedSun,
359 float sunHour, bool globalSun, bool estateFixed, float estateSunHour);
360  
361 public delegate void EstateChangeInfo(IClientAPI client, UUID invoice, UUID senderID, UInt32 param1, UInt32 param2);
362  
363 public delegate void EstateManageTelehub(IClientAPI client, UUID invoice, UUID senderID, string cmd, UInt32 param1);
364  
365 public delegate void RequestTerrain(IClientAPI remoteClient, string clientFileName);
366  
367 public delegate void BakeTerrain(IClientAPI remoteClient);
368  
369  
370 public delegate void EstateRestartSimRequest(IClientAPI remoteClient, int secondsTilReboot);
371  
372 public delegate void EstateChangeCovenantRequest(IClientAPI remoteClient, UUID newCovenantID);
373  
374 public delegate void UpdateEstateAccessDeltaRequest(
375 IClientAPI remote_client, UUID invoice, int estateAccessType, UUID user);
376  
377 public delegate void SimulatorBlueBoxMessageRequest(
378 IClientAPI remoteClient, UUID invoice, UUID senderID, UUID sessionID, string senderName, string message);
379  
380 public delegate void EstateBlueBoxMessageRequest(
381 IClientAPI remoteClient, UUID invoice, UUID senderID, UUID sessionID, string senderName, string message);
382  
383 public delegate void EstateDebugRegionRequest(
384 IClientAPI remoteClient, UUID invoice, UUID senderID, bool scripted, bool collisionEvents, bool physics);
385  
386 public delegate void EstateTeleportOneUserHomeRequest(
387 IClientAPI remoteClient, UUID invoice, UUID senderID, UUID prey);
388  
389 public delegate void EstateTeleportAllUsersHomeRequest(IClientAPI remoteClient, UUID invoice, UUID senderID);
390  
391 public delegate void RegionHandleRequest(IClientAPI remoteClient, UUID regionID);
392  
393 public delegate void ParcelInfoRequest(IClientAPI remoteClient, UUID parcelID);
394  
395 public delegate void ScriptReset(IClientAPI remoteClient, UUID objectID, UUID itemID);
396  
397 public delegate void GetScriptRunning(IClientAPI remoteClient, UUID objectID, UUID itemID);
398  
399 public delegate void SetScriptRunning(IClientAPI remoteClient, UUID objectID, UUID itemID, bool running);
400  
401 public delegate void ActivateGesture(IClientAPI client, UUID gestureid, UUID assetId);
402  
403 public delegate void DeactivateGesture(IClientAPI client, UUID gestureid);
404  
405 public delegate void TerrainUnacked(IClientAPI remoteClient, int patchX, int patchY);
406  
407 public delegate void ObjectOwner(IClientAPI remoteClient, UUID ownerID, UUID groupID, List<uint> localIDs);
408  
409 public delegate void DirPlacesQuery(
410 IClientAPI remoteClient, UUID queryID, string queryText, int queryFlags, int category, string simName,
411 int queryStart);
412  
413 public delegate void DirFindQuery(
414 IClientAPI remoteClient, UUID queryID, string queryText, uint queryFlags, int queryStart);
415  
416 public delegate void DirLandQuery(
417 IClientAPI remoteClient, UUID queryID, uint queryFlags, uint searchType, int price, int area, int queryStart);
418  
419 public delegate void DirPopularQuery(IClientAPI remoteClient, UUID queryID, uint queryFlags);
420  
421 public delegate void DirClassifiedQuery(
422 IClientAPI remoteClient, UUID queryID, string queryText, uint queryFlags, uint category, int queryStart);
423  
424 public delegate void EventInfoRequest(IClientAPI remoteClient, uint eventID);
425  
426 public delegate void ParcelSetOtherCleanTime(IClientAPI remoteClient, int localID, int otherCleanTime);
427  
428 public delegate void MapItemRequest(
429 IClientAPI remoteClient, uint flags, uint EstateID, bool godlike, uint itemtype, ulong regionhandle);
430  
431 public delegate void OfferCallingCard(IClientAPI remoteClient, UUID destID, UUID transactionID);
432  
433 public delegate void AcceptCallingCard(IClientAPI remoteClient, UUID transactionID, UUID folderID);
434  
435 public delegate void DeclineCallingCard(IClientAPI remoteClient, UUID transactionID);
436  
437 public delegate void SoundTrigger(
438 UUID soundId, UUID ownerid, UUID objid, UUID parentid, double Gain, Vector3 Position, UInt64 Handle, float radius);
439  
440 public delegate void StartLure(byte lureType, string message, UUID targetID, IClientAPI client);
441 public delegate void TeleportLureRequest(UUID lureID, uint teleportFlags, IClientAPI client);
442  
443 public delegate void ClassifiedInfoRequest(UUID classifiedID, IClientAPI client);
444 public delegate void ClassifiedInfoUpdate(UUID classifiedID, uint category, string name, string description, UUID parcelID, uint parentEstate, UUID snapshotID, Vector3 globalPos, byte classifiedFlags, int price, IClientAPI client);
445 public delegate void ClassifiedDelete(UUID classifiedID, IClientAPI client);
446  
447 public delegate void EventNotificationAddRequest(uint EventID, IClientAPI client);
448 public delegate void EventNotificationRemoveRequest(uint EventID, IClientAPI client);
449  
450 public delegate void EventGodDelete(uint eventID, UUID queryID, string queryText, uint queryFlags, int queryStart, IClientAPI client);
451  
452 public delegate void ParcelDwellRequest(int localID, IClientAPI client);
453  
454 public delegate void UserInfoRequest(IClientAPI client);
455 public delegate void UpdateUserInfo(bool imViaEmail, bool visible, IClientAPI client);
456 public delegate void RetrieveInstantMessages(IClientAPI client);
457 public delegate void PickDelete(IClientAPI client, UUID pickID);
458 public delegate void PickGodDelete(IClientAPI client, UUID agentID, UUID pickID, UUID queryID);
459 public delegate void PickInfoUpdate(IClientAPI client, UUID pickID, UUID creatorID, bool topPick, string name, string desc, UUID snapshotID, int sortOrder, bool enabled);
460 public delegate void AvatarNotesUpdate(IClientAPI client, UUID targetID, string notes);
461 public delegate void MuteListRequest(IClientAPI client, uint muteCRC);
462 public delegate void AvatarInterestUpdate(IClientAPI client, uint wantmask, string wanttext, uint skillsmask, string skillstext, string languages);
463 public delegate void GrantUserFriendRights(IClientAPI client, UUID target, int rights);
464 public delegate void PlacesQuery(UUID QueryID, UUID TransactionID, string QueryText, uint QueryFlags, byte Category, string SimName, IClientAPI client);
465  
466 public delegate void AgentFOV(IClientAPI client, float verticalAngle);
467  
468 public delegate void MuteListEntryUpdate(IClientAPI client, UUID MuteID, string Name, int Flags,UUID AgentID);
469  
470 public delegate void MuteListEntryRemove(IClientAPI client, UUID MuteID, string Name, UUID AgentID);
471  
472 public delegate void AvatarInterestReply(IClientAPI client,UUID target, uint wantmask, string wanttext, uint skillsmask, string skillstext, string languages);
473  
474 public delegate void FindAgentUpdate(IClientAPI client, UUID hunter, UUID target);
475  
476 public delegate void TrackAgentUpdate(IClientAPI client, UUID hunter, UUID target);
477  
478 public delegate void FreezeUserUpdate(IClientAPI client, UUID parcelowner,uint flags, UUID target);
479  
480 public delegate void EjectUserUpdate(IClientAPI client, UUID parcelowner,uint flags, UUID target);
481  
482 public delegate void NewUserReport(IClientAPI client, string regionName,UUID abuserID, byte catagory, byte checkflags, string details, UUID objectID, Vector3 postion, byte reportType ,UUID screenshotID, string Summary, UUID reporter);
483  
484 public delegate void GodUpdateRegionInfoUpdate(IClientAPI client, float BillableFactor, ulong EstateID, ulong RegionFlags, byte[] SimName,int RedirectX, int RedirectY);
485  
486 public delegate void GodlikeMessage(IClientAPI client, UUID requester, byte[] Method, byte[] Parameter);
487  
488 public delegate void SaveStateHandler(IClientAPI client,UUID agentID);
489  
490 public delegate void GroupAccountSummaryRequest(IClientAPI client,UUID agentID, UUID groupID);
491  
492 public delegate void GroupAccountDetailsRequest(IClientAPI client,UUID agentID, UUID groupID, UUID transactionID, UUID sessionID);
493  
494 public delegate void GroupAccountTransactionsRequest(IClientAPI client,UUID agentID, UUID groupID, UUID transactionID, UUID sessionID);
495  
496 public delegate void ParcelBuyPass(IClientAPI client, UUID agentID, int ParcelLocalID);
497  
498 public delegate void ParcelGodMark(IClientAPI client, UUID agentID, int ParcelLocalID);
499  
500 public delegate void GroupActiveProposalsRequest(IClientAPI client,UUID agentID, UUID groupID, UUID transactionID, UUID sessionID);
501  
502 public delegate void GroupVoteHistoryRequest(IClientAPI client,UUID agentID, UUID groupID, UUID transactionID, UUID sessionID);
503  
504  
505 public delegate void SimWideDeletesDelegate(IClientAPI client,UUID agentID, int flags, UUID targetID);
506  
507 public delegate void SendPostcard(IClientAPI client);
508  
509 #endregion
510  
511 public struct DirPlacesReplyData
512 {
513 public UUID parcelID;
514 public string name;
515 public bool forSale;
516 public bool auction;
517 public float dwell;
518 public uint Status;
519 }
520  
521 public struct DirPeopleReplyData
522 {
523 public UUID agentID;
524 public string firstName;
525 public string lastName;
526 public string group;
527 public bool online;
528 public int reputation;
529 }
530  
531 public struct DirEventsReplyData
532 {
533 public UUID ownerID;
534 public string name;
535 public uint eventID;
536 public string date;
537 public uint unixTime;
538 public uint eventFlags;
539 public uint Status;
540 }
541  
542 public struct DirGroupsReplyData
543 {
544 public UUID groupID;
545 public string groupName;
546 public int members;
547 public float searchOrder;
548 }
549  
550 public struct DirClassifiedReplyData
551 {
552 public UUID classifiedID;
553 public string name;
554 public byte classifiedFlags;
555 public uint creationDate;
556 public uint expirationDate;
557 public int price;
558 public uint Status;
559 }
560  
561 public struct DirLandReplyData
562 {
563 public UUID parcelID;
564 public string name;
565 public bool auction;
566 public bool forSale;
567 public int salePrice;
568 public int actualArea;
569 }
570  
571 public struct DirPopularReplyData
572 {
573 public UUID parcelID;
574 public string name;
575 public float dwell;
576 }
577  
578 public class IEntityUpdate
579 {
580 private ISceneEntity m_entity;
581 private uint m_flags;
582 private int m_updateTime;
583  
584 public ISceneEntity Entity
585 {
586 get { return m_entity; }
587 }
588  
589 public uint Flags
590 {
591 get { return m_flags; }
592 }
593  
594 public int UpdateTime
595 {
596 get { return m_updateTime; }
597 }
598  
599 public virtual void Update(IEntityUpdate update)
600 {
601 m_flags |= update.Flags;
602  
603 // Use the older of the updates as the updateTime
604 if (Util.EnvironmentTickCountCompare(UpdateTime, update.UpdateTime) > 0)
605 m_updateTime = update.UpdateTime;
606 }
607  
608 public IEntityUpdate(ISceneEntity entity, uint flags)
609 {
610 m_entity = entity;
611 m_flags = flags;
612 m_updateTime = Util.EnvironmentTickCount();
613 }
614  
615 public IEntityUpdate(ISceneEntity entity, uint flags, Int32 updateTime)
616 {
617 m_entity = entity;
618 m_flags = flags;
619 m_updateTime = updateTime;
620 }
621 }
622  
623 public class EntityUpdate : IEntityUpdate
624 {
625 private float m_timeDilation;
626  
627 public float TimeDilation
628 {
629 get { return m_timeDilation; }
630 }
631  
632 public EntityUpdate(ISceneEntity entity, PrimUpdateFlags flags, float timedilation)
633 : base(entity, (uint)flags)
634 {
635 // Flags = flags;
636 m_timeDilation = timedilation;
637 }
638  
639 public EntityUpdate(ISceneEntity entity, PrimUpdateFlags flags, float timedilation, Int32 updateTime)
640 : base(entity,(uint)flags,updateTime)
641 {
642 m_timeDilation = timedilation;
643 }
644 }
645  
646 public class PlacesReplyData
647 {
648 public UUID OwnerID;
649 public string Name;
650 public string Desc;
651 public int ActualArea;
652 public int BillableArea;
653 public byte Flags;
654 public uint GlobalX;
655 public uint GlobalY;
656 public uint GlobalZ;
657 public string SimName;
658 public UUID SnapshotID;
659 public uint Dwell;
660 public int Price;
661 }
662  
663 /// <summary>
664 /// Specifies the fields that have been changed when sending a prim or
665 /// avatar update
666 /// </summary>
667 [Flags]
668 public enum PrimUpdateFlags : uint
669 {
670 None = 0,
671 AttachmentPoint = 1 << 0,
672 Material = 1 << 1,
673 ClickAction = 1 << 2,
674 Scale = 1 << 3,
675 ParentID = 1 << 4,
676 PrimFlags = 1 << 5,
677 PrimData = 1 << 6,
678 MediaURL = 1 << 7,
679 ScratchPad = 1 << 8,
680 Textures = 1 << 9,
681 TextureAnim = 1 << 10,
682 NameValue = 1 << 11,
683 Position = 1 << 12,
684 Rotation = 1 << 13,
685 Velocity = 1 << 14,
686 Acceleration = 1 << 15,
687 AngularVelocity = 1 << 16,
688 CollisionPlane = 1 << 17,
689 Text = 1 << 18,
690 Particles = 1 << 19,
691 ExtraData = 1 << 20,
692 Sound = 1 << 21,
693 Joint = 1 << 22,
694 FullUpdate = UInt32.MaxValue
695 }
696  
697 public static class PrimUpdateFlagsExtensions
698 {
699 public static bool HasFlag(this PrimUpdateFlags updateFlags, PrimUpdateFlags flag)
700 {
701 return (updateFlags & flag) == flag;
702 }
703 }
704  
705 public interface IClientAPI
706 {
707 Vector3 StartPos { get; set; }
708  
709 UUID AgentId { get; }
710  
711 /// <summary>
712 /// The scene agent for this client. This will only be set if the client has an agent in a scene (i.e. if it
713 /// is connected).
714 /// </summary>
715 ISceneAgent SceneAgent { get; set; }
716  
717 UUID SessionId { get; }
718  
719 UUID SecureSessionId { get; }
720  
721 UUID ActiveGroupId { get; }
722  
723 string ActiveGroupName { get; }
724  
725 ulong ActiveGroupPowers { get; }
726  
727 ulong GetGroupPowers(UUID groupID);
728  
729 bool IsGroupMember(UUID GroupID);
730  
731 string FirstName { get; }
732  
733 string LastName { get; }
734  
735 IScene Scene { get; }
736  
737 // [Obsolete("LLClientView Specific - Replace with ???")]
738 int NextAnimationSequenceNumber { get; }
739  
740 /// <summary>
741 /// Returns the full name of the agent/avatar represented by this client
742 /// </summary>
743 string Name { get; }
744  
745 /// <summary>
746 /// True if the client is active (sending and receiving new UDP messages). False if the client is being closed.
747 /// </summary>
748 bool IsActive { get; set; }
749  
750 /// <summary>
751 /// Set if the client is closing due to a logout request
752 /// </summary>
753 /// <remarks>
754 /// Do not use this flag if you want to know if the client is closing, since it will not be set in other
755 /// circumstances (e.g. if a child agent is closed or the agent is kicked off the simulator). Use IsActive
756 /// instead with a IClientAPI.SceneAgent.IsChildAgent check if necessary.
757 ///
758 /// Only set for root agents.
759 /// </remarks>
760 bool IsLoggingOut { get; set; }
761  
762 bool SendLogoutPacketWhenClosing { set; }
763  
764 // [Obsolete("LLClientView Specific - Circuits are unique to LLClientView")]
765 uint CircuitCode { get; }
766  
767 IPEndPoint RemoteEndPoint { get; }
768  
769 event GenericMessage OnGenericMessage;
770  
771 // [Obsolete("LLClientView Specific - Replace with more bare-bones arguments.")]
772 event ImprovedInstantMessage OnInstantMessage;
773 // [Obsolete("LLClientView Specific - Replace with more bare-bones arguments. Rename OnChat.")]
774 event ChatMessage OnChatFromClient;
775 // [Obsolete("LLClientView Specific - Replace with more bare-bones arguments.")]
776 event TextureRequest OnRequestTexture;
777 // [Obsolete("LLClientView Specific - Remove bitbuckets. Adam, can you be more specific here.. as I don't see any bit buckets.")]
778 event RezObject OnRezObject;
779 // [Obsolete("LLClientView Specific - Replace with more suitable arguments.")]
780 event ModifyTerrain OnModifyTerrain;
781 event BakeTerrain OnBakeTerrain;
782 event EstateChangeInfo OnEstateChangeInfo;
783 event EstateManageTelehub OnEstateManageTelehub;
784 // [Obsolete("LLClientView Specific.")]
785 event CachedTextureRequest OnCachedTextureRequest;
786 event SetAppearance OnSetAppearance;
787 // [Obsolete("LLClientView Specific - Replace and rename OnAvatarUpdate. Difference from SetAppearance?")]
788 event AvatarNowWearing OnAvatarNowWearing;
789 event RezSingleAttachmentFromInv OnRezSingleAttachmentFromInv;
790 event RezMultipleAttachmentsFromInv OnRezMultipleAttachmentsFromInv;
791 event UUIDNameRequest OnDetachAttachmentIntoInv;
792 event ObjectAttach OnObjectAttach;
793 event ObjectDeselect OnObjectDetach;
794 event ObjectDrop OnObjectDrop;
795 event StartAnim OnStartAnim;
796 event StopAnim OnStopAnim;
797 event LinkObjects OnLinkObjects;
798 event DelinkObjects OnDelinkObjects;
799 event RequestMapBlocks OnRequestMapBlocks;
800 event RequestMapName OnMapNameRequest;
801 event TeleportLocationRequest OnTeleportLocationRequest;
802 event DisconnectUser OnDisconnectUser;
803 event RequestAvatarProperties OnRequestAvatarProperties;
804 event SetAlwaysRun OnSetAlwaysRun;
805 event TeleportLandmarkRequest OnTeleportLandmarkRequest;
806 event TeleportCancel OnTeleportCancel;
807 event DeRezObject OnDeRezObject;
808 event Action<IClientAPI> OnRegionHandShakeReply;
809 event GenericCall1 OnRequestWearables;
810 event Action<IClientAPI, bool> OnCompleteMovementToRegion;
811  
812 /// <summary>
813 /// Called when an AgentUpdate message is received and before OnAgentUpdate.
814 /// </summary>
815 /// <remarks>
816 /// Listeners must not retain a reference to AgentUpdateArgs since this object may be reused for subsequent AgentUpdates.
817 /// </remarks>
818 event UpdateAgent OnPreAgentUpdate;
819  
820 /// <summary>
821 /// Called when an AgentUpdate message is received and after OnPreAgentUpdate.
822 /// </summary>
823 /// <remarks>
824 /// Listeners must not retain a reference to AgentUpdateArgs since this object may be reused for subsequent AgentUpdates.
825 /// </remarks>
826 event UpdateAgent OnAgentUpdate;
827  
828 event UpdateAgent OnAgentCameraUpdate;
829  
830 event AgentRequestSit OnAgentRequestSit;
831 event AgentSit OnAgentSit;
832 event AvatarPickerRequest OnAvatarPickerRequest;
833 event Action<IClientAPI> OnRequestAvatarsData;
834 event AddNewPrim OnAddPrim;
835  
836 event FetchInventory OnAgentDataUpdateRequest;
837 event TeleportLocationRequest OnSetStartLocationRequest;
838  
839 event RequestGodlikePowers OnRequestGodlikePowers;
840 event GodKickUser OnGodKickUser;
841  
842 event ObjectDuplicate OnObjectDuplicate;
843 event ObjectDuplicateOnRay OnObjectDuplicateOnRay;
844 event GrabObject OnGrabObject;
845 event DeGrabObject OnDeGrabObject;
846 event MoveObject OnGrabUpdate;
847 event SpinStart OnSpinStart;
848 event SpinObject OnSpinUpdate;
849 event SpinStop OnSpinStop;
850  
851 event UpdateShape OnUpdatePrimShape;
852 event ObjectExtraParams OnUpdateExtraParams;
853 event ObjectRequest OnObjectRequest;
854 event ObjectSelect OnObjectSelect;
855 event ObjectDeselect OnObjectDeselect;
856 event GenericCall7 OnObjectDescription;
857 event GenericCall7 OnObjectName;
858 event GenericCall7 OnObjectClickAction;
859 event GenericCall7 OnObjectMaterial;
860 event RequestObjectPropertiesFamily OnRequestObjectPropertiesFamily;
861 event UpdatePrimFlags OnUpdatePrimFlags;
862 event UpdatePrimTexture OnUpdatePrimTexture;
863 event UpdateVector OnUpdatePrimGroupPosition;
864 event UpdateVector OnUpdatePrimSinglePosition;
865 event UpdatePrimRotation OnUpdatePrimGroupRotation;
866 event UpdatePrimSingleRotation OnUpdatePrimSingleRotation;
867 event UpdatePrimSingleRotationPosition OnUpdatePrimSingleRotationPosition;
868 event UpdatePrimGroupRotation OnUpdatePrimGroupMouseRotation;
869 event UpdateVector OnUpdatePrimScale;
870 event UpdateVector OnUpdatePrimGroupScale;
871 event StatusChange OnChildAgentStatus;
872 event GenericCall2 OnStopMovement;
873 event Action<UUID> OnRemoveAvatar;
874 event ObjectPermissions OnObjectPermissions;
875  
876 event CreateNewInventoryItem OnCreateNewInventoryItem;
877 event LinkInventoryItem OnLinkInventoryItem;
878 event CreateInventoryFolder OnCreateNewInventoryFolder;
879 event UpdateInventoryFolder OnUpdateInventoryFolder;
880 event MoveInventoryFolder OnMoveInventoryFolder;
881 event FetchInventoryDescendents OnFetchInventoryDescendents;
882 event PurgeInventoryDescendents OnPurgeInventoryDescendents;
883 event FetchInventory OnFetchInventory;
884 event RequestTaskInventory OnRequestTaskInventory;
885 event UpdateInventoryItem OnUpdateInventoryItem;
886 event CopyInventoryItem OnCopyInventoryItem;
887 event MoveInventoryItem OnMoveInventoryItem;
888 event RemoveInventoryFolder OnRemoveInventoryFolder;
889 event RemoveInventoryItem OnRemoveInventoryItem;
890 event UDPAssetUploadRequest OnAssetUploadRequest;
891 event XferReceive OnXferReceive;
892 event RequestXfer OnRequestXfer;
893 event ConfirmXfer OnConfirmXfer;
894 event AbortXfer OnAbortXfer;
895 event RezScript OnRezScript;
896 event UpdateTaskInventory OnUpdateTaskInventory;
897 event MoveTaskInventory OnMoveTaskItem;
898 event RemoveTaskInventory OnRemoveTaskItem;
899 event RequestAsset OnRequestAsset;
900  
901 event UUIDNameRequest OnNameFromUUIDRequest;
902  
903 event ParcelAccessListRequest OnParcelAccessListRequest;
904 event ParcelAccessListUpdateRequest OnParcelAccessListUpdateRequest;
905 event ParcelPropertiesRequest OnParcelPropertiesRequest;
906 event ParcelDivideRequest OnParcelDivideRequest;
907 event ParcelJoinRequest OnParcelJoinRequest;
908 event ParcelPropertiesUpdateRequest OnParcelPropertiesUpdateRequest;
909 event ParcelSelectObjects OnParcelSelectObjects;
910 event ParcelObjectOwnerRequest OnParcelObjectOwnerRequest;
911 event ParcelAbandonRequest OnParcelAbandonRequest;
912 event ParcelGodForceOwner OnParcelGodForceOwner;
913 event ParcelReclaim OnParcelReclaim;
914 event ParcelReturnObjectsRequest OnParcelReturnObjectsRequest;
915 event ParcelDeedToGroup OnParcelDeedToGroup;
916 event RegionInfoRequest OnRegionInfoRequest;
917 event EstateCovenantRequest OnEstateCovenantRequest;
918  
919 event FriendActionDelegate OnApproveFriendRequest;
920 event FriendActionDelegate OnDenyFriendRequest;
921 event FriendshipTermination OnTerminateFriendship;
922  
923 // Financial packets
924 event MoneyTransferRequest OnMoneyTransferRequest;
925 event EconomyDataRequest OnEconomyDataRequest;
926  
927 event MoneyBalanceRequest OnMoneyBalanceRequest;
928 event UpdateAvatarProperties OnUpdateAvatarProperties;
929 event ParcelBuy OnParcelBuy;
930 event RequestPayPrice OnRequestPayPrice;
931 event ObjectSaleInfo OnObjectSaleInfo;
932 event ObjectBuy OnObjectBuy;
933 event BuyObjectInventory OnBuyObjectInventory;
934  
935 event RequestTerrain OnRequestTerrain;
936  
937 event RequestTerrain OnUploadTerrain;
938  
939 event ObjectIncludeInSearch OnObjectIncludeInSearch;
940  
941 event UUIDNameRequest OnTeleportHomeRequest;
942  
943 event ScriptAnswer OnScriptAnswer;
944  
945 event AgentSit OnUndo;
946 event AgentSit OnRedo;
947 event LandUndo OnLandUndo;
948  
949 event ForceReleaseControls OnForceReleaseControls;
950 event GodLandStatRequest OnLandStatRequest;
951  
952 event DetailedEstateDataRequest OnDetailedEstateDataRequest;
953 event SetEstateFlagsRequest OnSetEstateFlagsRequest;
954 event SetEstateTerrainBaseTexture OnSetEstateTerrainBaseTexture;
955 event SetEstateTerrainDetailTexture OnSetEstateTerrainDetailTexture;
956 event SetEstateTerrainTextureHeights OnSetEstateTerrainTextureHeights;
957 event CommitEstateTerrainTextureRequest OnCommitEstateTerrainTextureRequest;
958 event SetRegionTerrainSettings OnSetRegionTerrainSettings;
959 event EstateRestartSimRequest OnEstateRestartSimRequest;
960 event EstateChangeCovenantRequest OnEstateChangeCovenantRequest;
961 event UpdateEstateAccessDeltaRequest OnUpdateEstateAccessDeltaRequest;
962 event SimulatorBlueBoxMessageRequest OnSimulatorBlueBoxMessageRequest;
963 event EstateBlueBoxMessageRequest OnEstateBlueBoxMessageRequest;
964 event EstateDebugRegionRequest OnEstateDebugRegionRequest;
965 event EstateTeleportOneUserHomeRequest OnEstateTeleportOneUserHomeRequest;
966 event EstateTeleportAllUsersHomeRequest OnEstateTeleportAllUsersHomeRequest;
967 event UUIDNameRequest OnUUIDGroupNameRequest;
968  
969 event RegionHandleRequest OnRegionHandleRequest;
970 event ParcelInfoRequest OnParcelInfoRequest;
971  
972 event RequestObjectPropertiesFamily OnObjectGroupRequest;
973 event ScriptReset OnScriptReset;
974 event GetScriptRunning OnGetScriptRunning;
975 event SetScriptRunning OnSetScriptRunning;
976 event Action<Vector3, bool, bool> OnAutoPilotGo;
977  
978 event TerrainUnacked OnUnackedTerrain;
979 event ActivateGesture OnActivateGesture;
980 event DeactivateGesture OnDeactivateGesture;
981 event ObjectOwner OnObjectOwner;
982  
983 event DirPlacesQuery OnDirPlacesQuery;
984 event DirFindQuery OnDirFindQuery;
985 event DirLandQuery OnDirLandQuery;
986 event DirPopularQuery OnDirPopularQuery;
987 event DirClassifiedQuery OnDirClassifiedQuery;
988 event EventInfoRequest OnEventInfoRequest;
989 event ParcelSetOtherCleanTime OnParcelSetOtherCleanTime;
990  
991 event MapItemRequest OnMapItemRequest;
992  
993 event OfferCallingCard OnOfferCallingCard;
994 event AcceptCallingCard OnAcceptCallingCard;
995 event DeclineCallingCard OnDeclineCallingCard;
996 event SoundTrigger OnSoundTrigger;
997  
998 event StartLure OnStartLure;
999 event TeleportLureRequest OnTeleportLureRequest;
1000 event NetworkStats OnNetworkStatsUpdate;
1001  
1002 event ClassifiedInfoRequest OnClassifiedInfoRequest;
1003 event ClassifiedInfoUpdate OnClassifiedInfoUpdate;
1004 event ClassifiedDelete OnClassifiedDelete;
1005 event ClassifiedDelete OnClassifiedGodDelete;
1006  
1007 event EventNotificationAddRequest OnEventNotificationAddRequest;
1008 event EventNotificationRemoveRequest OnEventNotificationRemoveRequest;
1009 event EventGodDelete OnEventGodDelete;
1010  
1011 event ParcelDwellRequest OnParcelDwellRequest;
1012  
1013 event UserInfoRequest OnUserInfoRequest;
1014 event UpdateUserInfo OnUpdateUserInfo;
1015  
1016 event RetrieveInstantMessages OnRetrieveInstantMessages;
1017  
1018 event PickDelete OnPickDelete;
1019 event PickGodDelete OnPickGodDelete;
1020 event PickInfoUpdate OnPickInfoUpdate;
1021 event AvatarNotesUpdate OnAvatarNotesUpdate;
1022 event AvatarInterestUpdate OnAvatarInterestUpdate;
1023 event GrantUserFriendRights OnGrantUserRights;
1024  
1025 event MuteListRequest OnMuteListRequest;
1026  
1027 event PlacesQuery OnPlacesQuery;
1028  
1029 event FindAgentUpdate OnFindAgent;
1030 event TrackAgentUpdate OnTrackAgent;
1031 event NewUserReport OnUserReport;
1032 event SaveStateHandler OnSaveState;
1033 event GroupAccountSummaryRequest OnGroupAccountSummaryRequest;
1034 event GroupAccountDetailsRequest OnGroupAccountDetailsRequest;
1035 event GroupAccountTransactionsRequest OnGroupAccountTransactionsRequest;
1036 event FreezeUserUpdate OnParcelFreezeUser;
1037 event EjectUserUpdate OnParcelEjectUser;
1038 event ParcelBuyPass OnParcelBuyPass;
1039 event ParcelGodMark OnParcelGodMark;
1040 event GroupActiveProposalsRequest OnGroupActiveProposalsRequest;
1041 event GroupVoteHistoryRequest OnGroupVoteHistoryRequest;
1042 event SimWideDeletesDelegate OnSimWideDeletes;
1043 event SendPostcard OnSendPostcard;
1044 event MuteListEntryUpdate OnUpdateMuteListEntry;
1045 event MuteListEntryRemove OnRemoveMuteListEntry;
1046 event GodlikeMessage onGodlikeMessage;
1047 event GodUpdateRegionInfoUpdate OnGodUpdateRegionInfoUpdate;
1048  
1049 /// <summary>
1050 /// Set the debug level at which packet output should be printed to console.
1051 /// </summary>
1052 int DebugPacketLevel { get; set; }
1053  
1054 void InPacket(object NewPack);
1055 void ProcessInPacket(Packet NewPack);
1056  
1057 /// <summary>
1058 /// Close this client
1059 /// </summary>
1060 void Close();
1061  
1062 /// <summary>
1063 /// Close this client
1064 /// </summary>
1065 /// <param name='force'>
1066 /// If true, attempts the close without checking active status. You do not want to try this except as a last
1067 /// ditch attempt where Active == false but the ScenePresence still exists.
1068 /// </param>
1069 void Close(bool force);
1070  
1071 void Kick(string message);
1072  
1073 /// <summary>
1074 /// Start processing for this client.
1075 /// </summary>
1076 void Start();
1077  
1078 void Stop();
1079  
1080 // void ActivateGesture(UUID assetId, UUID gestureId);
1081  
1082 /// <summary>
1083 /// Tell this client what items it should be wearing now
1084 /// </summary>
1085 void SendWearables(AvatarWearable[] wearables, int serial);
1086  
1087 /// <summary>
1088 /// Send information about the given agent's appearance to another client.
1089 /// </summary>
1090 /// <param name="agentID">The id of the agent associated with the appearance</param>
1091 /// <param name="visualParams"></param>
1092 /// <param name="textureEntry"></param>
1093 void SendAppearance(UUID agentID, byte[] visualParams, byte[] textureEntry);
1094  
1095 void SendCachedTextureResponse(ISceneEntity avatar, int serial, List<CachedTextureResponseArg> cachedTextures);
1096  
1097 void SendStartPingCheck(byte seq);
1098  
1099 /// <summary>
1100 /// Tell the client that an object has been deleted
1101 /// </summary>
1102 /// <param name="localID"></param>
1103 void SendKillObject(List<uint> localID);
1104  
1105 void SendAnimations(UUID[] animID, int[] seqs, UUID sourceAgentId, UUID[] objectIDs);
1106 void SendRegionHandshake(RegionInfo regionInfo, RegionHandshakeArgs args);
1107  
1108 /// <summary>
1109 /// Send chat to the viewer.
1110 /// </summary>
1111 /// <param name='message'></param>
1112 /// <param name='type'></param>
1113 /// <param name='fromPos'></param>
1114 /// <param name='fromName'></param>
1115 /// <param name='fromAgentID'></param>
1116 /// <param name='ownerID'></param>
1117 /// <param name='source'></param>
1118 /// <param name='audible'></param>
1119 void SendChatMessage(
1120 string message, byte type, Vector3 fromPos, string fromName, UUID fromAgentID, UUID ownerID, byte source,
1121 byte audible);
1122  
1123 void SendInstantMessage(GridInstantMessage im);
1124  
1125 void SendGenericMessage(string method, UUID invoice, List<string> message);
1126 void SendGenericMessage(string method, UUID invoice, List<byte[]> message);
1127  
1128 void SendLayerData(float[] map);
1129 void SendLayerData(int px, int py, float[] map);
1130  
1131 void SendWindData(Vector2[] windSpeeds);
1132 void SendCloudData(float[] cloudCover);
1133  
1134 /// <summary>
1135 /// Sent when an agent completes its movement into a region.
1136 /// </summary>
1137 /// <remarks>
1138 /// This packet marks completion of the arrival of a root avatar in a region, whether through login, region
1139 /// crossing or direct teleport.
1140 /// </remarks>
1141 void MoveAgentIntoRegion(RegionInfo regInfo, Vector3 pos, Vector3 look);
1142  
1143 void InformClientOfNeighbour(ulong neighbourHandle, IPEndPoint neighbourExternalEndPoint);
1144  
1145 /// <summary>
1146 /// Return circuit information for this client.
1147 /// </summary>
1148 /// <returns></returns>
1149 AgentCircuitData RequestClientInfo();
1150  
1151 void CrossRegion(ulong newRegionHandle, Vector3 pos, Vector3 lookAt, IPEndPoint newRegionExternalEndPoint,
1152 string capsURL);
1153  
1154 void SendMapBlock(List<MapBlockData> mapBlocks, uint flag);
1155 void SendLocalTeleport(Vector3 position, Vector3 lookAt, uint flags);
1156  
1157 void SendRegionTeleport(ulong regionHandle, byte simAccess, IPEndPoint regionExternalEndPoint, uint locationID,
1158 uint flags, string capsURL);
1159  
1160 void SendTeleportFailed(string reason);
1161 void SendTeleportStart(uint flags);
1162 void SendTeleportProgress(uint flags, string message);
1163  
1164 void SendMoneyBalance(UUID transaction, bool success, byte[] description, int balance, int transactionType, UUID sourceID, bool sourceIsGroup, UUID destID, bool destIsGroup, int amount, string item);
1165  
1166 void SendPayPrice(UUID objectID, int[] payPrice);
1167  
1168 void SendCoarseLocationUpdate(List<UUID> users, List<Vector3> CoarseLocations);
1169  
1170 void SetChildAgentThrottle(byte[] throttle);
1171  
1172 void SendAvatarDataImmediate(ISceneEntity avatar);
1173  
1174 /// <summary>
1175 /// Send a positional, velocity, etc. update to the viewer for a given entity.
1176 /// </summary>
1177 /// <param name="entity"></param>
1178 /// <param name="updateFlags"></param>
1179 void SendEntityUpdate(ISceneEntity entity, PrimUpdateFlags updateFlags);
1180  
1181 void ReprioritizeUpdates();
1182 void FlushPrimUpdates();
1183  
1184 void SendInventoryFolderDetails(UUID ownerID, UUID folderID, List<InventoryItemBase> items,
1185 List<InventoryFolderBase> folders, int version, bool fetchFolders,
1186 bool fetchItems);
1187  
1188 void SendInventoryItemDetails(UUID ownerID, InventoryItemBase item);
1189  
1190 /// <summary>
1191 /// Tell the client that we have created the item it requested.
1192 /// </summary>
1193 /// <param name="Item"></param>
1194 void SendInventoryItemCreateUpdate(InventoryItemBase Item, uint callbackId);
1195  
1196 void SendRemoveInventoryItem(UUID itemID);
1197  
1198 void SendTakeControls(int controls, bool passToAgent, bool TakeControls);
1199  
1200 void SendTaskInventory(UUID taskID, short serial, byte[] fileName);
1201  
1202 void SendTelehubInfo(UUID ObjectID, string ObjectName, Vector3 ObjectPos, Quaternion ObjectRot, List<Vector3> SpawnPoint);
1203  
1204 /// <summary>
1205 /// Used by the server to inform the client of new inventory items and folders.
1206 /// </summary>
1207 ///
1208 /// If the node is a folder then the contents will be transferred
1209 /// (including all descendent folders) as well as the folder itself.
1210 ///
1211 /// <param name="node"></param>
1212 void SendBulkUpdateInventory(InventoryNodeBase node);
1213  
1214 void SendXferPacket(ulong xferID, uint packet, byte[] data);
1215  
1216 void SendAbortXferPacket(ulong xferID);
1217  
1218 void SendEconomyData(float EnergyEfficiency, int ObjectCapacity, int ObjectCount, int PriceEnergyUnit,
1219 int PriceGroupCreate, int PriceObjectClaim, float PriceObjectRent,
1220 float PriceObjectScaleFactor,
1221 int PriceParcelClaim, float PriceParcelClaimFactor, int PriceParcelRent,
1222 int PricePublicObjectDecay,
1223 int PricePublicObjectDelete, int PriceRentLight, int PriceUpload, int TeleportMinPrice,
1224 float TeleportPriceExponent);
1225  
1226 void SendAvatarPickerReply(AvatarPickerReplyAgentDataArgs AgentData, List<AvatarPickerReplyDataArgs> Data);
1227  
1228 void SendAgentDataUpdate(UUID agentid, UUID activegroupid, string firstname, string lastname, ulong grouppowers,
1229 string groupname, string grouptitle);
1230  
1231 void SendPreLoadSound(UUID objectID, UUID ownerID, UUID soundID);
1232 void SendPlayAttachedSound(UUID soundID, UUID objectID, UUID ownerID, float gain, byte flags);
1233  
1234 void SendTriggeredSound(UUID soundID, UUID ownerID, UUID objectID, UUID parentID, ulong handle, Vector3 position,
1235 float gain);
1236  
1237 void SendAttachedSoundGainChange(UUID objectID, float gain);
1238  
1239 void SendNameReply(UUID profileId, string firstname, string lastname);
1240 void SendAlertMessage(string message);
1241  
1242 void SendAgentAlertMessage(string message, bool modal);
1243 void SendLoadURL(string objectname, UUID objectID, UUID ownerID, bool groupOwned, string message, string url);
1244  
1245 /// <summary>
1246 /// Open a dialog box on the client.
1247 /// </summary>
1248 /// <param name="objectname"></param>
1249 /// <param name="objectID"></param>
1250 /// <param name="ownerID">/param>
1251 /// <param name="ownerFirstName"></param>
1252 /// <param name="ownerLastName"></param>
1253 /// <param name="msg"></param>
1254 /// <param name="textureID"></param>
1255 /// <param name="ch"></param>
1256 /// <param name="buttonlabels"></param>
1257 void SendDialog(string objectname, UUID objectID, UUID ownerID, string ownerFirstName, string ownerLastName, string msg, UUID textureID, int ch,
1258 string[] buttonlabels);
1259  
1260 /// <summary>
1261 /// Update the client as to where the sun is currently located.
1262 /// </summary>
1263 /// <param name="sunPos"></param>
1264 /// <param name="sunVel"></param>
1265 /// <param name="CurrentTime">Seconds since Unix Epoch 01/01/1970 00:00:00</param>
1266 /// <param name="SecondsPerSunCycle"></param>
1267 /// <param name="SecondsPerYear"></param>
1268 /// <param name="OrbitalPosition">The orbital position is given in radians, and must be "adjusted" for the linden client, see LLClientView</param>
1269 void SendSunPos(Vector3 sunPos, Vector3 sunVel, ulong CurrentTime, uint SecondsPerSunCycle, uint SecondsPerYear,
1270 float OrbitalPosition);
1271  
1272 void SendViewerEffect(ViewerEffectPacket.EffectBlock[] effectBlocks);
1273 void SendViewerTime(int phase);
1274  
1275 void SendAvatarProperties(UUID avatarID, string aboutText, string bornOn, Byte[] charterMember, string flAbout,
1276 uint flags, UUID flImageID, UUID imageID, string profileURL, UUID partnerID);
1277  
1278 void SendScriptQuestion(UUID taskID, string taskName, string ownerName, UUID itemID, int question);
1279 void SendHealth(float health);
1280  
1281  
1282 void SendEstateList(UUID invoice, int code, UUID[] Data, uint estateID);
1283  
1284 void SendBannedUserList(UUID invoice, EstateBan[] banlist, uint estateID);
1285  
1286 void SendRegionInfoToEstateMenu(RegionInfoForEstateMenuArgs args);
1287 void SendEstateCovenantInformation(UUID covenant);
1288  
1289 void SendDetailedEstateData(UUID invoice, string estateName, uint estateID, uint parentEstate, uint estateFlags,
1290 uint sunPosition, UUID covenant, uint covenantChanged, string abuseEmail, UUID estateOwner);
1291  
1292 /// <summary>
1293 /// Send land properties to the client.
1294 /// </summary>
1295 /// <param name="sequence_id"></param>
1296 /// <param name="snap_selection"></param>
1297 /// <param name="request_result"></param>
1298 /// <param name="lo"></param></param>
1299 /// <param name="parcelObjectCapacity">/param>
1300 /// <param name="simObjectCapacity"></param>
1301 /// <param name="regionFlags"></param>
1302 void SendLandProperties(int sequence_id, bool snap_selection, int request_result, ILandObject lo,
1303 float simObjectBonusFactor, int parcelObjectCapacity, int simObjectCapacity,
1304 uint regionFlags);
1305  
1306 void SendLandAccessListData(List<LandAccessEntry> accessList, uint accessFlag, int localLandID);
1307 void SendForceClientSelectObjects(List<uint> objectIDs);
1308 void SendCameraConstraint(Vector4 ConstraintPlane);
1309 void SendLandObjectOwners(LandData land, List<UUID> groups, Dictionary<UUID, int> ownersAndCount);
1310 void SendLandParcelOverlay(byte[] data, int sequence_id);
1311  
1312 #region Parcel Methods
1313  
1314 void SendParcelMediaCommand(uint flags, ParcelMediaCommandEnum command, float time);
1315  
1316 void SendParcelMediaUpdate(string mediaUrl, UUID mediaTextureID,
1317 byte autoScale, string mediaType, string mediaDesc, int mediaWidth, int mediaHeight,
1318 byte mediaLoop);
1319  
1320 #endregion
1321  
1322 void SendAssetUploadCompleteMessage(sbyte AssetType, bool Success, UUID AssetFullID);
1323 void SendConfirmXfer(ulong xferID, uint PacketID);
1324 void SendXferRequest(ulong XferID, short AssetType, UUID vFileID, byte FilePath, byte[] FileName);
1325  
1326 void SendInitiateDownload(string simFileName, string clientFileName);
1327  
1328 /// <summary>
1329 /// Send the first part of a texture. For sufficiently small textures, this may be the only packet.
1330 /// </summary>
1331 /// <param name="numParts"></param>
1332 /// <param name="ImageUUID"></param>
1333 /// <param name="ImageSize"></param>
1334 /// <param name="ImageData"></param>
1335 /// <param name="imageCodec"></param>
1336 void SendImageFirstPart(ushort numParts, UUID ImageUUID, uint ImageSize, byte[] ImageData, byte imageCodec);
1337  
1338 /// <summary>
1339 /// Send the next packet for a series of packets making up a single texture,
1340 /// as established by SendImageFirstPart()
1341 /// </summary>
1342 /// <param name="partNumber"></param>
1343 /// <param name="imageUuid"></param>
1344 /// <param name="imageData"></param>
1345 void SendImageNextPart(ushort partNumber, UUID imageUuid, byte[] imageData);
1346  
1347 /// <summary>
1348 /// Tell the client that the requested texture cannot be found
1349 /// </summary>
1350 void SendImageNotFound(UUID imageid);
1351  
1352 void SendShutdownConnectionNotice();
1353  
1354 /// <summary>
1355 /// Send statistical information about the sim to the client.
1356 /// </summary>
1357 /// <param name="stats"></param>
1358 void SendSimStats(SimStats stats);
1359  
1360 void SendObjectPropertiesFamilyData(ISceneEntity Entity, uint RequestFlags);
1361  
1362 void SendObjectPropertiesReply(ISceneEntity Entity);
1363  
1364 void SendPartPhysicsProprieties(ISceneEntity Entity);
1365  
1366 void SendAgentOffline(UUID[] agentIDs);
1367  
1368 void SendAgentOnline(UUID[] agentIDs);
1369  
1370 void SendSitResponse(UUID TargetID, Vector3 OffsetPos, Quaternion SitOrientation, bool autopilot,
1371 Vector3 CameraAtOffset, Vector3 CameraEyeOffset, bool ForceMouseLook);
1372  
1373 void SendAdminResponse(UUID Token, uint AdminLevel);
1374  
1375 void SendGroupMembership(GroupMembershipData[] GroupMembership);
1376  
1377 void SendGroupNameReply(UUID groupLLUID, string GroupName);
1378  
1379 void SendJoinGroupReply(UUID groupID, bool success);
1380  
1381 void SendEjectGroupMemberReply(UUID agentID, UUID groupID, bool success);
1382  
1383 void SendLeaveGroupReply(UUID groupID, bool success);
1384  
1385 void SendCreateGroupReply(UUID groupID, bool success, string message);
1386  
1387 void SendLandStatReply(uint reportType, uint requestFlags, uint resultCount, LandStatReportItem[] lsrpia);
1388  
1389 void SendScriptRunningReply(UUID objectID, UUID itemID, bool running);
1390  
1391 void SendAsset(AssetRequestToClient req);
1392  
1393 void SendTexture(AssetBase TextureAsset);
1394  
1395 byte[] GetThrottlesPacked(float multiplier);
1396  
1397 event ViewerEffectEventHandler OnViewerEffect;
1398 event Action<IClientAPI> OnLogout;
1399 event Action<IClientAPI> OnConnectionClosed;
1400  
1401 void SendBlueBoxMessage(UUID FromAvatarID, String FromAvatarName, String Message);
1402  
1403 void SendLogoutPacket();
1404  
1405 // WARNING WARNING WARNING
1406 //
1407 // The two following methods are EXCLUSIVELY for the load balancer.
1408 // they cause a MASSIVE performance hit!
1409 //
1410 ClientInfo GetClientInfo();
1411 void SetClientInfo(ClientInfo info);
1412  
1413 void SetClientOption(string option, string value);
1414 string GetClientOption(string option);
1415  
1416 void SendSetFollowCamProperties(UUID objectID, SortedDictionary<int, float> parameters);
1417 void SendClearFollowCamProperties(UUID objectID);
1418  
1419 void SendRegionHandle(UUID regoinID, ulong handle);
1420 void SendParcelInfo(RegionInfo info, LandData land, UUID parcelID, uint x, uint y);
1421 void SendScriptTeleportRequest(string objName, string simName, Vector3 pos, Vector3 lookAt);
1422  
1423 void SendDirPlacesReply(UUID queryID, DirPlacesReplyData[] data);
1424 void SendDirPeopleReply(UUID queryID, DirPeopleReplyData[] data);
1425 void SendDirEventsReply(UUID queryID, DirEventsReplyData[] data);
1426 void SendDirGroupsReply(UUID queryID, DirGroupsReplyData[] data);
1427 void SendDirClassifiedReply(UUID queryID, DirClassifiedReplyData[] data);
1428 void SendDirLandReply(UUID queryID, DirLandReplyData[] data);
1429 void SendDirPopularReply(UUID queryID, DirPopularReplyData[] data);
1430 void SendEventInfoReply(EventData info);
1431  
1432 void SendMapItemReply(mapItemReply[] replies, uint mapitemtype, uint flags);
1433  
1434 void SendAvatarGroupsReply(UUID avatarID, GroupMembershipData[] data);
1435 void SendOfferCallingCard(UUID srcID, UUID transactionID);
1436 void SendAcceptCallingCard(UUID transactionID);
1437 void SendDeclineCallingCard(UUID transactionID);
1438  
1439 void SendTerminateFriend(UUID exFriendID);
1440  
1441 void SendAvatarClassifiedReply(UUID targetID, UUID[] classifiedID, string[] name);
1442 void SendClassifiedInfoReply(UUID classifiedID, UUID creatorID, uint creationDate, uint expirationDate, uint category, string name, string description, UUID parcelID, uint parentEstate, UUID snapshotID, string simName, Vector3 globalPos, string parcelName, byte classifiedFlags, int price);
1443  
1444 void SendAgentDropGroup(UUID groupID);
1445 void RefreshGroupMembership();
1446 void SendAvatarNotesReply(UUID targetID, string text);
1447 void SendAvatarPicksReply(UUID targetID, Dictionary<UUID, string> picks);
1448 void SendPickInfoReply(UUID pickID,UUID creatorID, bool topPick, UUID parcelID, string name, string desc, UUID snapshotID, string user, string originalName, string simName, Vector3 posGlobal, int sortOrder, bool enabled);
1449  
1450 void SendAvatarClassifiedReply(UUID targetID, Dictionary<UUID, string> classifieds);
1451  
1452 void SendParcelDwellReply(int localID, UUID parcelID, float dwell);
1453  
1454 void SendUserInfoReply(bool imViaEmail, bool visible, string email);
1455  
1456 void SendUseCachedMuteList();
1457  
1458 void SendMuteListUpdate(string filename);
1459  
1460 void SendGroupActiveProposals(UUID groupID, UUID transactionID, GroupActiveProposals[] Proposals);
1461  
1462 void SendGroupVoteHistory(UUID groupID, UUID transactionID, GroupVoteHistory[] Votes);
1463  
1464 bool AddGenericPacketHandler(string MethodName, GenericMessage handler);
1465  
1466 void SendRebakeAvatarTextures(UUID textureID);
1467  
1468 void SendAvatarInterestsReply(UUID avatarID, uint wantMask, string wantText, uint skillsMask, string skillsText, string languages);
1469  
1470 void SendGroupAccountingDetails(IClientAPI sender,UUID groupID, UUID transactionID, UUID sessionID, int amt);
1471  
1472 void SendGroupAccountingSummary(IClientAPI sender,UUID groupID, uint moneyAmt, int totalTier, int usedTier);
1473  
1474 void SendGroupTransactionsSummaryDetails(IClientAPI sender,UUID groupID, UUID transactionID, UUID sessionID,int amt);
1475  
1476 void SendChangeUserRights(UUID agentID, UUID friendID, int rights);
1477 void SendTextBoxRequest(string message, int chatChannel, string objectname, UUID ownerID, string ownerFirstName, string ownerLastName, UUID objectId);
1478  
1479 void SendAgentTerseUpdate(ISceneEntity presence);
1480  
1481 void SendPlacesReply(UUID queryID, UUID transactionID, PlacesReplyData[] data);
1482 }
1483 }