Open sourced NatiBot
This commit is contained in:
158
COMMANDS.txt
Normal file
158
COMMANDS.txt
Normal file
@@ -0,0 +1,158 @@
|
||||
HELP
|
||||
The bot will accept teleport lures from the master and members of it's active group.
|
||||
* about - Shows copyright information.
|
||||
* activategroup - Sets the active group. Usage: activategroup [groupname]
|
||||
* activaterole - Activates chosen role on chosen group. Usage: activaterole [role-uuid] (group-uuid)
|
||||
* addtorole - Adds indicated avatar to chosen role. Usage: addtorole [avatar-uuid] [role-uuid] (group-uuid)
|
||||
* agentlocations - Downloads the location of every agent in a specified region. Usage: agentlocations [regionhandle]
|
||||
* allowed - Gets current parcel allowed list.
|
||||
* animate - Animates the avatar with the specified animation, list system animations or show current animations. Usage: animate [uuid] | [list/show/stop]
|
||||
* animations - Enables or disables automatic downloading for all visible animations Usage: animations [on/off]
|
||||
* appearance - Sets the last saved appearance.
|
||||
* attach - Attaches chosen item to last attachment point. Usage: attach [itemID]
|
||||
* attachments - Shows a list of current attachments.
|
||||
* attachmentsuuid - Shows a list of an avatar's attachments. Usage: attachmentsuuid [uuid]
|
||||
* avatarinfo - Shows information about a nearby avatar. Usage: avatarinfo [firstname] [lastname]
|
||||
* away - Sets the bot away from keyboard. Usage: away [on/off]
|
||||
* back - Move the bot backward, a step or a determined number of seconds. Usage: back (seconds)
|
||||
* backup - Saves contents of cached inventory to your hard disk. Usage: backup [to <directory>] | [abort] | [status]
|
||||
* backuptext - Saves notecards of cached inventory to your hard disk. Usage: backuptext [to <directory>] | [abort] | [status]
|
||||
* balance - Shows the L$ balance.
|
||||
* banlist - Gets current parcel ban list.
|
||||
* banuser - Ejects and bans indicated user from current parcel. Usage: banuser [uuid]
|
||||
* beam - Beams at specified object or avatar. Usage: beam [uuid]/[firstname] [lastname]
|
||||
* busy - Set the bot as busy. Usage: busy [on/off]
|
||||
* buy - Buyes a specified object. Usage: buy [uuid]
|
||||
* camerafar - Show or change the current camera distance. Usage: camerafar [distance]
|
||||
* cd - Changes current inventory folder. cd [path]
|
||||
* changelog - Shows the bot version and changelog.
|
||||
* changeperms - Changes the permissions of an object and it's task inventory contents. Usage: changeperms [prim-uuid] (copy) (mod) (xfer)
|
||||
* clienttags - Shows all known client tags and client names.
|
||||
* clock - Shows current time in local, UTC, GMT and PST zones.
|
||||
* clone - Clones the appareance of a nearby avatar. Usage: clone [name]
|
||||
* cloneprofile - Clones another avatars profile as closely as possible. WARNING: This command will destroy your existing profile! Usage: cloneprofile [uuid]
|
||||
* createclothing - Creates a new clothing with the indicated parameters. Usage: createclothing help
|
||||
* createeyes - Creates new eyes with the indicated texture. Usage: createeyes [name] [uuid]
|
||||
* createlm - Creates a new landmark with the current position.
|
||||
* createnotecard - Creates a notecard from a text file. Usage: createnotecard filename.txt
|
||||
* createskin - Creates new skin with the indicated texture. Usage: createskin [name] [face-uuid] [upper-uuid] [lower-uuid]
|
||||
* crouch - Starts or stops crouching. Usage: crouch [start/stop]
|
||||
* detectbots - Shows posible bot avatars.
|
||||
* dilation - Shows time dilation for current sim.
|
||||
* downloadanimation - Downloads requested animation by UUID Usage: downloadanimation [uuid]
|
||||
* downloadsound - Downloads requested sound by UUID Usage: downloadsound [uuid]
|
||||
* downloadterrain - Download the RAW terrain file for this estate. Usage: downloadterrain [timeout]
|
||||
* downloadtexture - Download specified texture by UUID. Usage: downloadtexture [texture-uuid]
|
||||
* dumpattachment - Exports specified avatar's attachment to the hard disk. Usage: dumpattachment [avatar-uuid] [attachment-point: RightHand,LeftHand,Skull,LeftEyeball,RightEyeball,LeftFoot,RightFoot,RightEar,LeftEar,LeftHip,RightHip,LeftUpperLeg,RightUpperLeg,RightLowerLeg,LeftLowerLeg,RightForearm,LeftForearm,Nose,RightShoulder,LeftShoulder,RightPec,LeftPec,Chin,RightUpperArm,LeftUpperArm,Spine,Chest,Pelvis,Stomach,Mouth]
|
||||
* dumpattachments - Exports all the attachments of an avatar. Usage: dumpattachments [uuid]
|
||||
* dumpoutfit - Dumps all of the textures from an avatars outfit to the hard drive. Usage: dumpoutfit [avatar-uuid]
|
||||
* echoMaster - Repeat everything that the master says.
|
||||
* ejectuser - Ejects indicated user from current parcel. Usage: ejectuser [uuid]
|
||||
* emptylostandfound - Empty the Lost & Found folder contents.
|
||||
* emptytrash - Empty the trash folder contents.
|
||||
* endfriendship - Ends friendship with given avatar. Usage: endfriendship [name] [lastname] | [uuid]
|
||||
* export - Exports an object to a xml file. Usage: export [uuid] [outputfile.xml]
|
||||
* exportoutfit - Exports an avatars outfit to an xml file. Usage: exportoutfit [avataruuid] outputfile.xml
|
||||
* exportparticles - Reverse engineers an object's particle system to an LSL script. Usage: exportparticles [uuid]
|
||||
* findobjects - Finds all objects, which name contains search-string. Usage: findobjects [radius] [search-string]
|
||||
* findsim - Searches for a simulator and returns information about it. Usage: findsim [Simulator Name]
|
||||
* findtexture - Checks if a specified texture is currently visible on a specified face. Usage: findtexture [face-index] [texture-uuid]
|
||||
* fly - Starts or stops flying. Usage: fly [start/stop]
|
||||
* flyto - Fly the avatar toward the specified position for a maximum of seconds. Usage: flyto x y z (seconds)
|
||||
* follow - Follows another avatar. Usage: follow {[firstname] [lastname]|me|stop}) Use "me" to make it follow you, "stop" to stop following.
|
||||
* forward - Move the bot forward, a step or a determined number of seconds. Usage: forward (seconds)
|
||||
* friends - Shows bot's friends.
|
||||
* gc - Starts a garbage collection.
|
||||
* gesture - Makes the bot play the specified gesture. Usage: gesture [uuid]
|
||||
* give - Give items of the current folder to an avatar. Usage: give [agent uuid] [item1] (item2) (item3) (...)
|
||||
* gohome - Teleports home.
|
||||
* goto - Goes to a sim using a teleport. Usage: goto sim/x/y/z
|
||||
* gotolm - Goes to a landmark destination using a teleport. Usage: gotolm [uuid]
|
||||
* gridlayer - Downloads all the grid map layers.
|
||||
* gridmap - Downloads all visible information from the grid map.
|
||||
* groupeject - Ejects a member of a group. Usage: groupeject [avatarid] (groupid)
|
||||
* groupmembers - Shows group members. Usage: groupmembers GroupName
|
||||
* grouproles - Shows group roles. Usage: grouproles GroupName
|
||||
* groups - Shows groups the bot belongs to.
|
||||
* gsit - Sits on ground. Use stand command to stand up.
|
||||
* health - Shows current health.
|
||||
* help - Shows the available commands.
|
||||
* help2nc - Creates a notecard with the help and sends it to the master.
|
||||
* i - Shows and caches the inventory.
|
||||
* im - Sends an instant message. Usage: im [firstname] [lastname] [message]
|
||||
* imgroup - Sends an instant message to a group. Usage: imgroup [group_uuid] [message]
|
||||
* import - Imports prims from a XML file. Usage: import [filename] (usegroup)
|
||||
* informfriend - Enables saying when a friend goes online or offline. Usage: informfriend [on/off]
|
||||
* invitegroup - Invites avatar to current group at chosen role or to the default one. Usage: invite [av-uuid] (role-uuid)
|
||||
* joingroup - Joins a group. Usage: joingroup [groupname] | joingroup [uuid]
|
||||
* jump - Jumps.
|
||||
* key2name - Returns the name of an avatar using its UUID. Usage: key2name [uuid]
|
||||
* leavegroup - Leaves a group. Usage: leavegroup [groupname]
|
||||
* left - Move the bot to the left, a step or a determined number of seconds. Usage: left (seconds)
|
||||
* load - Loads commands from a DLL. Usage: load [assembly.dll]
|
||||
* location - Shows current location.
|
||||
* logout - Logouts current avatars. Usage: logout [yes]
|
||||
* lookat - Looks at specified object or avatar. Usage: lookat [uuid]/[firstname] [lastname]
|
||||
* ls - List the contents of the current inventory folder. Usage: ls ( -l )
|
||||
* mapfriend - Finds a friend. Usage: mapfriend [uuid]
|
||||
* md5 - Creates a MD5 hash from a given password. Usage: md5 [password]
|
||||
* memfree - Shows currently used memory.
|
||||
* moveto - Moves the avatar to the specified coordinates, avatar (by id or name), or object (by id). Usage: moveto x y z
|
||||
* nadu - Sets the bot in nadu position. Usage: nadu [on/off]
|
||||
* netstats - Provide packet and capabilities utilization statistics.
|
||||
* objectinventory - Gets a list of an object task inventory. Usage: objectinventory [uuid]
|
||||
* offerfriendship - Offers friendship to given avatar. Usage: offerfriendship [name] [lastname] | [uuid]
|
||||
* parceldetails - Show details about the specified parcel. Usage: parceldetails [parcel_id]
|
||||
* parcelinfo - Prints out info about all the parcels in this simulator
|
||||
* pay - Pays indicated L$ amount to chosen avatar. Usage: pay [amount] [avatar-uuid]. Amount can be "all", and if avatar is ausent will be paid to master.
|
||||
* pick - Creates a pick for current position. Usage: pick [description]
|
||||
* playsound - Makes the bot play the specified sound. Usage: playsound [uuid]
|
||||
* primcount - Shows the number of prims actually indexed.
|
||||
* priminfo - Shows info about a specified prim. Usage: priminfo [prim-uuid]
|
||||
* primowners - Shows a list of how many prims does a user have in a parcel. (Needs permissions) Usage: primowners [parcel_id]
|
||||
* primregex - Searches for a prim using regular expressions. Usage: primregex [text predicat]
|
||||
* quit - Closes Natibot and logouts all connected avatars. Usage: quit [yes]
|
||||
* regioninfo - Shows information about the current region.
|
||||
* rezitem - Rezzes chosen item 3m up of the bot. Usage: rezitem [itemID]
|
||||
* right - Move the bot to the right, a step or a determined number of seconds. Usage: right (seconds)
|
||||
* rmdir - Move an inventory folder to the Trash. Usage: rmdir [folder]
|
||||
* say - Says something on general chat or option channel. Usage: say (optional channel) [message]
|
||||
* script - Executes a series of commands from a given text file. Usage: script [filename]
|
||||
* searchclassifieds - Searches Classified Ads. Usage: searchclassifieds [search text]
|
||||
* searchevents - Search for events on the list. Usage: searchevents [search text]
|
||||
* searchgroups - Searches groups. Usage: searchgroups [search text]
|
||||
* searchland - Searches for land for sale, for usage information type: searchland
|
||||
* searchpeople - Searches for other avatars. Usage: searchpeople [search text]
|
||||
* searchplaces - Searches Places. Usage: searchplaces [search text]
|
||||
* selectobjects - Shows a list of prims in parcel that belong to a specified avatar. Usage: selectobjects [parcel_id] [avatar_uuid]
|
||||
* sendtp - Sends a teleport lure to the indicated avatar or to the master. Usage: sendtp (avatar-uuid)
|
||||
* sethome - Establishes current location as home.
|
||||
* setmaster - Changes master by name. Usage: setmaster [name]
|
||||
* setMasterKey - Changes master by key. Usage: setmasterkey [uuid]
|
||||
* shout - Shouts something on general chat or option channel. Usage: shout (optional channel) [message]
|
||||
* showeffects - Shows the viewer effects on the console or not. Usage: showeffects [on/off]
|
||||
* showevent - Shows details about an event. Usage: showevent [eventID] (use searchevents to get ID)
|
||||
* sit - Sits on the nearest prim.
|
||||
* siton - Sits on requested object. Usage: siton [uuid]
|
||||
* sounds - Enables or disables automatic downloading for all hearable sounds Usage: textures [on/off]
|
||||
* stand - Stands up.
|
||||
* stats - Shows statisticals about connection.
|
||||
* takeitem - Takes a specified object to the inventory. Usage: takeitem [uuid]
|
||||
* taskrunning - Retrieves or set IsRunning flag on items inside an object (task inventory). Usage: taskrunning [objectID] [[scriptName] true|false]
|
||||
* textures - Enables or disables automatic downloading for all viewable textures Usage: textures [on/off]
|
||||
* touch - Touches a specified object. Usage: touch [uuid]
|
||||
* translate - Translates given text from one language to another. Usage: translate [fromlanguage] [tolanguage] [text]
|
||||
* tree - Rezzes a tree.
|
||||
* turnto - Turns the bot looking to a specified point, avatar (by id or name), or object (by id). Usage: turnto [x y z]/[uuid]/[avatar]
|
||||
* upload - Uploads an item to the asset. Usage: upload [inventory_name] [filename]
|
||||
* uploadimage - Upload an image to the asset server. Usage: uploadimage [inventory_name] [filename]
|
||||
* uploadterrain - Upload a raw terrain file to the simulator. Usage: uploadterrain [filename]
|
||||
* uptime - Shows time from login.
|
||||
* version - Shows NatiBot and current simulator versions.
|
||||
* viewnote - Shows an inventory notecard. Usage: viewnote [uuid]
|
||||
* voiceaccount - Obtain voice account info. Usage: voiceaccount
|
||||
* voiceparcel - Obtain parcel voice info. Usage: voiceparcel
|
||||
* wear - Wears an outfit folder from the inventory. Usage: wear [outfit] (nobake)
|
||||
* whisper - Whispers something on general chat or option channel. Usage: whisper (optional channel) [message]
|
||||
* who - Lists viewable agents.
|
||||
* wind - Shows the local wind speed.
|
||||
6
DISCLAIMER
Normal file
6
DISCLAIMER
Normal file
@@ -0,0 +1,6 @@
|
||||
Claunia.com and/or Natalia Portillo, as well as any of their friends,
|
||||
collaborators, employees, employers and/or affiliates take any
|
||||
responsibility, past, present, or future, of any use of this code for
|
||||
purposes that are illegal in any country.
|
||||
|
||||
That is the sole responsibility of the user.
|
||||
BIN
InstallShield/InstallShield.isl
Normal file
BIN
InstallShield/InstallShield.isl
Normal file
Binary file not shown.
30
InstallShield/InstallShield.isproj
Normal file
30
InstallShield/InstallShield.isproj
Normal file
@@ -0,0 +1,30 @@
|
||||
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup>
|
||||
<!-- Select a Product Configuration -->
|
||||
<InstallShieldProductConfiguration>Express</InstallShieldProductConfiguration>
|
||||
<!-- Select a Visual Studio Configuration / InstallShield Release -->
|
||||
<Configuration>Debug</Configuration>
|
||||
<InstallShieldRelease>$(Configuration)</InstallShieldRelease>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<!-- The InstallShieldProject item selects the project to build -->
|
||||
<InstallShieldProject Include="$(MSBuildProjectDirectory)\$(MSBuildProjectName).isl"/>
|
||||
<!-- The InstallShieldReleaseFlags sets Release Flags -->
|
||||
<!--<InstallShieldReleaseFlags Include=""/>-->
|
||||
<!-- The InstallShieldMergeModulePath specifies what directories are
|
||||
searched for Merge Modules -->
|
||||
<!--<InstallShieldMergeModulePath Include=""/>-->
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<!-- The ProjectReference items refer to any Visual Studio solutions you want to automatically probe for Project Output Groups. -->
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<!-- The TaggedOutputs items allow you to explicitly add extra files to output groups. Each item must include both Name and OutputGroup, as well as TargetPath metadata values. -->
|
||||
<!--<TaggedOutputs Include="C:\My Test Exe.exe">
|
||||
<Name>My Test Project</Name>
|
||||
<OutputGroup>Primary output</OutputGroup>
|
||||
<TargetPath>My Test Exe.exe</TargetPath>
|
||||
</TaggedOutputs> -->
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildExtensionsPath)\InstallShield\2010Limited\InstallShield.targets"/>
|
||||
</Project>
|
||||
1469
Installer/Installer.vdproj
Normal file
1469
Installer/Installer.vdproj
Normal file
File diff suppressed because it is too large
Load Diff
9
LICENSE
9
LICENSE
@@ -1,4 +1,4 @@
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
Version 3, 29 June 2007
|
||||
|
||||
Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
|
||||
@@ -631,8 +631,8 @@ to attach them to the start of each source file to most effectively
|
||||
state the exclusion of warranty; and each file should have at least
|
||||
the "copyright" line and a pointer to where the full notice is found.
|
||||
|
||||
{one line to give the program's name and a brief idea of what it does.}
|
||||
Copyright (C) {year} {name of author}
|
||||
<one line to give the program's name and a brief idea of what it does.>
|
||||
Copyright (C) <year> <name of author>
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
@@ -652,7 +652,7 @@ Also add information on how to contact you by electronic and paper mail.
|
||||
If the program does terminal interaction, make it output a short
|
||||
notice like this when it starts in an interactive mode:
|
||||
|
||||
{project} Copyright (C) {year} {fullname}
|
||||
<program> Copyright (C) <year> <name of author>
|
||||
This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||
This is free software, and you are welcome to redistribute it
|
||||
under certain conditions; type `show c' for details.
|
||||
@@ -672,3 +672,4 @@ may consider it more useful to permit linking proprietary applications with
|
||||
the library. If this is what you want to do, use the GNU Lesser General
|
||||
Public License instead of this License. But first, please read
|
||||
<http://www.gnu.org/philosophy/why-not-lgpl.html>.
|
||||
|
||||
|
||||
452
LICENSE.GFDL
Normal file
452
LICENSE.GFDL
Normal file
@@ -0,0 +1,452 @@
|
||||
|
||||
GNU Free Documentation License
|
||||
Version 1.3, 3 November 2008
|
||||
|
||||
|
||||
Copyright (C) 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc.
|
||||
<http://fsf.org/>
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
0. PREAMBLE
|
||||
|
||||
The purpose of this License is to make a manual, textbook, or other
|
||||
functional and useful document "free" in the sense of freedom: to
|
||||
assure everyone the effective freedom to copy and redistribute it,
|
||||
with or without modifying it, either commercially or noncommercially.
|
||||
Secondarily, this License preserves for the author and publisher a way
|
||||
to get credit for their work, while not being considered responsible
|
||||
for modifications made by others.
|
||||
|
||||
This License is a kind of "copyleft", which means that derivative
|
||||
works of the document must themselves be free in the same sense. It
|
||||
complements the GNU General Public License, which is a copyleft
|
||||
license designed for free software.
|
||||
|
||||
We have designed this License in order to use it for manuals for free
|
||||
software, because free software needs free documentation: a free
|
||||
program should come with manuals providing the same freedoms that the
|
||||
software does. But this License is not limited to software manuals;
|
||||
it can be used for any textual work, regardless of subject matter or
|
||||
whether it is published as a printed book. We recommend this License
|
||||
principally for works whose purpose is instruction or reference.
|
||||
|
||||
|
||||
1. APPLICABILITY AND DEFINITIONS
|
||||
|
||||
This License applies to any manual or other work, in any medium, that
|
||||
contains a notice placed by the copyright holder saying it can be
|
||||
distributed under the terms of this License. Such a notice grants a
|
||||
world-wide, royalty-free license, unlimited in duration, to use that
|
||||
work under the conditions stated herein. The "Document", below,
|
||||
refers to any such manual or work. Any member of the public is a
|
||||
licensee, and is addressed as "you". You accept the license if you
|
||||
copy, modify or distribute the work in a way requiring permission
|
||||
under copyright law.
|
||||
|
||||
A "Modified Version" of the Document means any work containing the
|
||||
Document or a portion of it, either copied verbatim, or with
|
||||
modifications and/or translated into another language.
|
||||
|
||||
A "Secondary Section" is a named appendix or a front-matter section of
|
||||
the Document that deals exclusively with the relationship of the
|
||||
publishers or authors of the Document to the Document's overall
|
||||
subject (or to related matters) and contains nothing that could fall
|
||||
directly within that overall subject. (Thus, if the Document is in
|
||||
part a textbook of mathematics, a Secondary Section may not explain
|
||||
any mathematics.) The relationship could be a matter of historical
|
||||
connection with the subject or with related matters, or of legal,
|
||||
commercial, philosophical, ethical or political position regarding
|
||||
them.
|
||||
|
||||
The "Invariant Sections" are certain Secondary Sections whose titles
|
||||
are designated, as being those of Invariant Sections, in the notice
|
||||
that says that the Document is released under this License. If a
|
||||
section does not fit the above definition of Secondary then it is not
|
||||
allowed to be designated as Invariant. The Document may contain zero
|
||||
Invariant Sections. If the Document does not identify any Invariant
|
||||
Sections then there are none.
|
||||
|
||||
The "Cover Texts" are certain short passages of text that are listed,
|
||||
as Front-Cover Texts or Back-Cover Texts, in the notice that says that
|
||||
the Document is released under this License. A Front-Cover Text may
|
||||
be at most 5 words, and a Back-Cover Text may be at most 25 words.
|
||||
|
||||
A "Transparent" copy of the Document means a machine-readable copy,
|
||||
represented in a format whose specification is available to the
|
||||
general public, that is suitable for revising the document
|
||||
straightforwardly with generic text editors or (for images composed of
|
||||
pixels) generic paint programs or (for drawings) some widely available
|
||||
drawing editor, and that is suitable for input to text formatters or
|
||||
for automatic translation to a variety of formats suitable for input
|
||||
to text formatters. A copy made in an otherwise Transparent file
|
||||
format whose markup, or absence of markup, has been arranged to thwart
|
||||
or discourage subsequent modification by readers is not Transparent.
|
||||
An image format is not Transparent if used for any substantial amount
|
||||
of text. A copy that is not "Transparent" is called "Opaque".
|
||||
|
||||
Examples of suitable formats for Transparent copies include plain
|
||||
ASCII without markup, Texinfo input format, LaTeX input format, SGML
|
||||
or XML using a publicly available DTD, and standard-conforming simple
|
||||
HTML, PostScript or PDF designed for human modification. Examples of
|
||||
transparent image formats include PNG, XCF and JPG. Opaque formats
|
||||
include proprietary formats that can be read and edited only by
|
||||
proprietary word processors, SGML or XML for which the DTD and/or
|
||||
processing tools are not generally available, and the
|
||||
machine-generated HTML, PostScript or PDF produced by some word
|
||||
processors for output purposes only.
|
||||
|
||||
The "Title Page" means, for a printed book, the title page itself,
|
||||
plus such following pages as are needed to hold, legibly, the material
|
||||
this License requires to appear in the title page. For works in
|
||||
formats which do not have any title page as such, "Title Page" means
|
||||
the text near the most prominent appearance of the work's title,
|
||||
preceding the beginning of the body of the text.
|
||||
|
||||
The "publisher" means any person or entity that distributes copies of
|
||||
the Document to the public.
|
||||
|
||||
A section "Entitled XYZ" means a named subunit of the Document whose
|
||||
title either is precisely XYZ or contains XYZ in parentheses following
|
||||
text that translates XYZ in another language. (Here XYZ stands for a
|
||||
specific section name mentioned below, such as "Acknowledgements",
|
||||
"Dedications", "Endorsements", or "History".) To "Preserve the Title"
|
||||
of such a section when you modify the Document means that it remains a
|
||||
section "Entitled XYZ" according to this definition.
|
||||
|
||||
The Document may include Warranty Disclaimers next to the notice which
|
||||
states that this License applies to the Document. These Warranty
|
||||
Disclaimers are considered to be included by reference in this
|
||||
License, but only as regards disclaiming warranties: any other
|
||||
implication that these Warranty Disclaimers may have is void and has
|
||||
no effect on the meaning of this License.
|
||||
|
||||
2. VERBATIM COPYING
|
||||
|
||||
You may copy and distribute the Document in any medium, either
|
||||
commercially or noncommercially, provided that this License, the
|
||||
copyright notices, and the license notice saying this License applies
|
||||
to the Document are reproduced in all copies, and that you add no
|
||||
other conditions whatsoever to those of this License. You may not use
|
||||
technical measures to obstruct or control the reading or further
|
||||
copying of the copies you make or distribute. However, you may accept
|
||||
compensation in exchange for copies. If you distribute a large enough
|
||||
number of copies you must also follow the conditions in section 3.
|
||||
|
||||
You may also lend copies, under the same conditions stated above, and
|
||||
you may publicly display copies.
|
||||
|
||||
|
||||
3. COPYING IN QUANTITY
|
||||
|
||||
If you publish printed copies (or copies in media that commonly have
|
||||
printed covers) of the Document, numbering more than 100, and the
|
||||
Document's license notice requires Cover Texts, you must enclose the
|
||||
copies in covers that carry, clearly and legibly, all these Cover
|
||||
Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on
|
||||
the back cover. Both covers must also clearly and legibly identify
|
||||
you as the publisher of these copies. The front cover must present
|
||||
the full title with all words of the title equally prominent and
|
||||
visible. You may add other material on the covers in addition.
|
||||
Copying with changes limited to the covers, as long as they preserve
|
||||
the title of the Document and satisfy these conditions, can be treated
|
||||
as verbatim copying in other respects.
|
||||
|
||||
If the required texts for either cover are too voluminous to fit
|
||||
legibly, you should put the first ones listed (as many as fit
|
||||
reasonably) on the actual cover, and continue the rest onto adjacent
|
||||
pages.
|
||||
|
||||
If you publish or distribute Opaque copies of the Document numbering
|
||||
more than 100, you must either include a machine-readable Transparent
|
||||
copy along with each Opaque copy, or state in or with each Opaque copy
|
||||
a computer-network location from which the general network-using
|
||||
public has access to download using public-standard network protocols
|
||||
a complete Transparent copy of the Document, free of added material.
|
||||
If you use the latter option, you must take reasonably prudent steps,
|
||||
when you begin distribution of Opaque copies in quantity, to ensure
|
||||
that this Transparent copy will remain thus accessible at the stated
|
||||
location until at least one year after the last time you distribute an
|
||||
Opaque copy (directly or through your agents or retailers) of that
|
||||
edition to the public.
|
||||
|
||||
It is requested, but not required, that you contact the authors of the
|
||||
Document well before redistributing any large number of copies, to
|
||||
give them a chance to provide you with an updated version of the
|
||||
Document.
|
||||
|
||||
|
||||
4. MODIFICATIONS
|
||||
|
||||
You may copy and distribute a Modified Version of the Document under
|
||||
the conditions of sections 2 and 3 above, provided that you release
|
||||
the Modified Version under precisely this License, with the Modified
|
||||
Version filling the role of the Document, thus licensing distribution
|
||||
and modification of the Modified Version to whoever possesses a copy
|
||||
of it. In addition, you must do these things in the Modified Version:
|
||||
|
||||
A. Use in the Title Page (and on the covers, if any) a title distinct
|
||||
from that of the Document, and from those of previous versions
|
||||
(which should, if there were any, be listed in the History section
|
||||
of the Document). You may use the same title as a previous version
|
||||
if the original publisher of that version gives permission.
|
||||
B. List on the Title Page, as authors, one or more persons or entities
|
||||
responsible for authorship of the modifications in the Modified
|
||||
Version, together with at least five of the principal authors of the
|
||||
Document (all of its principal authors, if it has fewer than five),
|
||||
unless they release you from this requirement.
|
||||
C. State on the Title page the name of the publisher of the
|
||||
Modified Version, as the publisher.
|
||||
D. Preserve all the copyright notices of the Document.
|
||||
E. Add an appropriate copyright notice for your modifications
|
||||
adjacent to the other copyright notices.
|
||||
F. Include, immediately after the copyright notices, a license notice
|
||||
giving the public permission to use the Modified Version under the
|
||||
terms of this License, in the form shown in the Addendum below.
|
||||
G. Preserve in that license notice the full lists of Invariant Sections
|
||||
and required Cover Texts given in the Document's license notice.
|
||||
H. Include an unaltered copy of this License.
|
||||
I. Preserve the section Entitled "History", Preserve its Title, and add
|
||||
to it an item stating at least the title, year, new authors, and
|
||||
publisher of the Modified Version as given on the Title Page. If
|
||||
there is no section Entitled "History" in the Document, create one
|
||||
stating the title, year, authors, and publisher of the Document as
|
||||
given on its Title Page, then add an item describing the Modified
|
||||
Version as stated in the previous sentence.
|
||||
J. Preserve the network location, if any, given in the Document for
|
||||
public access to a Transparent copy of the Document, and likewise
|
||||
the network locations given in the Document for previous versions
|
||||
it was based on. These may be placed in the "History" section.
|
||||
You may omit a network location for a work that was published at
|
||||
least four years before the Document itself, or if the original
|
||||
publisher of the version it refers to gives permission.
|
||||
K. For any section Entitled "Acknowledgements" or "Dedications",
|
||||
Preserve the Title of the section, and preserve in the section all
|
||||
the substance and tone of each of the contributor acknowledgements
|
||||
and/or dedications given therein.
|
||||
L. Preserve all the Invariant Sections of the Document,
|
||||
unaltered in their text and in their titles. Section numbers
|
||||
or the equivalent are not considered part of the section titles.
|
||||
M. Delete any section Entitled "Endorsements". Such a section
|
||||
may not be included in the Modified Version.
|
||||
N. Do not retitle any existing section to be Entitled "Endorsements"
|
||||
or to conflict in title with any Invariant Section.
|
||||
O. Preserve any Warranty Disclaimers.
|
||||
|
||||
If the Modified Version includes new front-matter sections or
|
||||
appendices that qualify as Secondary Sections and contain no material
|
||||
copied from the Document, you may at your option designate some or all
|
||||
of these sections as invariant. To do this, add their titles to the
|
||||
list of Invariant Sections in the Modified Version's license notice.
|
||||
These titles must be distinct from any other section titles.
|
||||
|
||||
You may add a section Entitled "Endorsements", provided it contains
|
||||
nothing but endorsements of your Modified Version by various
|
||||
parties--for example, statements of peer review or that the text has
|
||||
been approved by an organization as the authoritative definition of a
|
||||
standard.
|
||||
|
||||
You may add a passage of up to five words as a Front-Cover Text, and a
|
||||
passage of up to 25 words as a Back-Cover Text, to the end of the list
|
||||
of Cover Texts in the Modified Version. Only one passage of
|
||||
Front-Cover Text and one of Back-Cover Text may be added by (or
|
||||
through arrangements made by) any one entity. If the Document already
|
||||
includes a cover text for the same cover, previously added by you or
|
||||
by arrangement made by the same entity you are acting on behalf of,
|
||||
you may not add another; but you may replace the old one, on explicit
|
||||
permission from the previous publisher that added the old one.
|
||||
|
||||
The author(s) and publisher(s) of the Document do not by this License
|
||||
give permission to use their names for publicity for or to assert or
|
||||
imply endorsement of any Modified Version.
|
||||
|
||||
|
||||
5. COMBINING DOCUMENTS
|
||||
|
||||
You may combine the Document with other documents released under this
|
||||
License, under the terms defined in section 4 above for modified
|
||||
versions, provided that you include in the combination all of the
|
||||
Invariant Sections of all of the original documents, unmodified, and
|
||||
list them all as Invariant Sections of your combined work in its
|
||||
license notice, and that you preserve all their Warranty Disclaimers.
|
||||
|
||||
The combined work need only contain one copy of this License, and
|
||||
multiple identical Invariant Sections may be replaced with a single
|
||||
copy. If there are multiple Invariant Sections with the same name but
|
||||
different contents, make the title of each such section unique by
|
||||
adding at the end of it, in parentheses, the name of the original
|
||||
author or publisher of that section if known, or else a unique number.
|
||||
Make the same adjustment to the section titles in the list of
|
||||
Invariant Sections in the license notice of the combined work.
|
||||
|
||||
In the combination, you must combine any sections Entitled "History"
|
||||
in the various original documents, forming one section Entitled
|
||||
"History"; likewise combine any sections Entitled "Acknowledgements",
|
||||
and any sections Entitled "Dedications". You must delete all sections
|
||||
Entitled "Endorsements".
|
||||
|
||||
|
||||
6. COLLECTIONS OF DOCUMENTS
|
||||
|
||||
You may make a collection consisting of the Document and other
|
||||
documents released under this License, and replace the individual
|
||||
copies of this License in the various documents with a single copy
|
||||
that is included in the collection, provided that you follow the rules
|
||||
of this License for verbatim copying of each of the documents in all
|
||||
other respects.
|
||||
|
||||
You may extract a single document from such a collection, and
|
||||
distribute it individually under this License, provided you insert a
|
||||
copy of this License into the extracted document, and follow this
|
||||
License in all other respects regarding verbatim copying of that
|
||||
document.
|
||||
|
||||
|
||||
7. AGGREGATION WITH INDEPENDENT WORKS
|
||||
|
||||
A compilation of the Document or its derivatives with other separate
|
||||
and independent documents or works, in or on a volume of a storage or
|
||||
distribution medium, is called an "aggregate" if the copyright
|
||||
resulting from the compilation is not used to limit the legal rights
|
||||
of the compilation's users beyond what the individual works permit.
|
||||
When the Document is included in an aggregate, this License does not
|
||||
apply to the other works in the aggregate which are not themselves
|
||||
derivative works of the Document.
|
||||
|
||||
If the Cover Text requirement of section 3 is applicable to these
|
||||
copies of the Document, then if the Document is less than one half of
|
||||
the entire aggregate, the Document's Cover Texts may be placed on
|
||||
covers that bracket the Document within the aggregate, or the
|
||||
electronic equivalent of covers if the Document is in electronic form.
|
||||
Otherwise they must appear on printed covers that bracket the whole
|
||||
aggregate.
|
||||
|
||||
|
||||
8. TRANSLATION
|
||||
|
||||
Translation is considered a kind of modification, so you may
|
||||
distribute translations of the Document under the terms of section 4.
|
||||
Replacing Invariant Sections with translations requires special
|
||||
permission from their copyright holders, but you may include
|
||||
translations of some or all Invariant Sections in addition to the
|
||||
original versions of these Invariant Sections. You may include a
|
||||
translation of this License, and all the license notices in the
|
||||
Document, and any Warranty Disclaimers, provided that you also include
|
||||
the original English version of this License and the original versions
|
||||
of those notices and disclaimers. In case of a disagreement between
|
||||
the translation and the original version of this License or a notice
|
||||
or disclaimer, the original version will prevail.
|
||||
|
||||
If a section in the Document is Entitled "Acknowledgements",
|
||||
"Dedications", or "History", the requirement (section 4) to Preserve
|
||||
its Title (section 1) will typically require changing the actual
|
||||
title.
|
||||
|
||||
|
||||
9. TERMINATION
|
||||
|
||||
You may not copy, modify, sublicense, or distribute the Document
|
||||
except as expressly provided under this License. Any attempt
|
||||
otherwise to copy, modify, sublicense, or distribute it is void, and
|
||||
will automatically terminate your rights under this License.
|
||||
|
||||
However, if you cease all violation of this License, then your license
|
||||
from a particular copyright holder is reinstated (a) provisionally,
|
||||
unless and until the copyright holder explicitly and finally
|
||||
terminates your license, and (b) permanently, if the copyright holder
|
||||
fails to notify you of the violation by some reasonable means prior to
|
||||
60 days after the cessation.
|
||||
|
||||
Moreover, your license from a particular copyright holder is
|
||||
reinstated permanently if the copyright holder notifies you of the
|
||||
violation by some reasonable means, this is the first time you have
|
||||
received notice of violation of this License (for any work) from that
|
||||
copyright holder, and you cure the violation prior to 30 days after
|
||||
your receipt of the notice.
|
||||
|
||||
Termination of your rights under this section does not terminate the
|
||||
licenses of parties who have received copies or rights from you under
|
||||
this License. If your rights have been terminated and not permanently
|
||||
reinstated, receipt of a copy of some or all of the same material does
|
||||
not give you any rights to use it.
|
||||
|
||||
|
||||
10. FUTURE REVISIONS OF THIS LICENSE
|
||||
|
||||
The Free Software Foundation may publish new, revised versions of the
|
||||
GNU Free Documentation License from time to time. Such new versions
|
||||
will be similar in spirit to the present version, but may differ in
|
||||
detail to address new problems or concerns. See
|
||||
http://www.gnu.org/copyleft/.
|
||||
|
||||
Each version of the License is given a distinguishing version number.
|
||||
If the Document specifies that a particular numbered version of this
|
||||
License "or any later version" applies to it, you have the option of
|
||||
following the terms and conditions either of that specified version or
|
||||
of any later version that has been published (not as a draft) by the
|
||||
Free Software Foundation. If the Document does not specify a version
|
||||
number of this License, you may choose any version ever published (not
|
||||
as a draft) by the Free Software Foundation. If the Document
|
||||
specifies that a proxy can decide which future versions of this
|
||||
License can be used, that proxy's public statement of acceptance of a
|
||||
version permanently authorizes you to choose that version for the
|
||||
Document.
|
||||
|
||||
11. RELICENSING
|
||||
|
||||
"Massive Multiauthor Collaboration Site" (or "MMC Site") means any
|
||||
World Wide Web server that publishes copyrightable works and also
|
||||
provides prominent facilities for anybody to edit those works. A
|
||||
public wiki that anybody can edit is an example of such a server. A
|
||||
"Massive Multiauthor Collaboration" (or "MMC") contained in the site
|
||||
means any set of copyrightable works thus published on the MMC site.
|
||||
|
||||
"CC-BY-SA" means the Creative Commons Attribution-Share Alike 3.0
|
||||
license published by Creative Commons Corporation, a not-for-profit
|
||||
corporation with a principal place of business in San Francisco,
|
||||
California, as well as future copyleft versions of that license
|
||||
published by that same organization.
|
||||
|
||||
"Incorporate" means to publish or republish a Document, in whole or in
|
||||
part, as part of another Document.
|
||||
|
||||
An MMC is "eligible for relicensing" if it is licensed under this
|
||||
License, and if all works that were first published under this License
|
||||
somewhere other than this MMC, and subsequently incorporated in whole or
|
||||
in part into the MMC, (1) had no cover texts or invariant sections, and
|
||||
(2) were thus incorporated prior to November 1, 2008.
|
||||
|
||||
The operator of an MMC Site may republish an MMC contained in the site
|
||||
under CC-BY-SA on the same site at any time before August 1, 2009,
|
||||
provided the MMC is eligible for relicensing.
|
||||
|
||||
|
||||
ADDENDUM: How to use this License for your documents
|
||||
|
||||
To use this License in a document you have written, include a copy of
|
||||
the License in the document and put the following copyright and
|
||||
license notices just after the title page:
|
||||
|
||||
Copyright (c) YEAR YOUR NAME.
|
||||
Permission is granted to copy, distribute and/or modify this document
|
||||
under the terms of the GNU Free Documentation License, Version 1.3
|
||||
or any later version published by the Free Software Foundation;
|
||||
with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
|
||||
A copy of the license is included in the section entitled "GNU
|
||||
Free Documentation License".
|
||||
|
||||
If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts,
|
||||
replace the "with...Texts." line with this:
|
||||
|
||||
with the Invariant Sections being LIST THEIR TITLES, with the
|
||||
Front-Cover Texts being LIST, and with the Back-Cover Texts being LIST.
|
||||
|
||||
If you have Invariant Sections without Cover Texts, or some other
|
||||
combination of the three, merge those two alternatives to suit the
|
||||
situation.
|
||||
|
||||
If your document contains nontrivial examples of program code, we
|
||||
recommend releasing these examples in parallel under your choice of
|
||||
free software license, such as the GNU General Public License,
|
||||
to permit their use in free software.
|
||||
|
||||
977
NatiBot.sln
Normal file
977
NatiBot.sln
Normal file
@@ -0,0 +1,977 @@
|
||||
|
||||
Microsoft Visual Studio Solution File, Format Version 11.00
|
||||
# Visual Studio 2010
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NatiBot", "SLBot\NatiBot.csproj", "{9041A815-E5DA-4B00-945E-ADC7BD2ED7B9}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{89AC992C-5E2C-4E6B-A453-61C1DF446216} = {89AC992C-5E2C-4E6B-A453-61C1DF446216}
|
||||
{F6A02431-167E-4347-BC43-65532C31CDB7} = {F6A02431-167E-4347-BC43-65532C31CDB7}
|
||||
{B3FE54E9-312C-4065-9156-B597E05D2BCA} = {B3FE54E9-312C-4065-9156-B597E05D2BCA}
|
||||
{19607F57-B521-4477-9DE0-F0D9B1A68BC7} = {19607F57-B521-4477-9DE0-F0D9B1A68BC7}
|
||||
{455E7D70-1C85-4D7F-9F01-DC801B8B8C34} = {455E7D70-1C85-4D7F-9F01-DC801B8B8C34}
|
||||
{54B78813-5B32-4257-8CF4-5A48C90E58BC} = {54B78813-5B32-4257-8CF4-5A48C90E58BC}
|
||||
{7F6BF4C6-A0EB-4A18-9968-BD3C42A7B5FD} = {7F6BF4C6-A0EB-4A18-9968-BD3C42A7B5FD}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DllOpenJPEG", "libomv\openjpeg-dotnet\DllOpenJPEG.vcxproj", "{89AC992C-5E2C-4E6B-A453-61C1DF446216}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SmartIrc4net", "SmartIRC4Net\VisualStudio\2008\SmartIrc4net.csproj", "{19607F57-B521-4477-9DE0-F0D9B1A68BC7}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "log4net", "log4net\src\log4net.csproj", "{F6A02431-167E-4347-BC43-65532C31CDB7}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OpenMetaverse", "libomv\OpenMetaverse\OpenMetaverse.csproj", "{7F6BF4C6-A0EB-4A18-9968-BD3C42A7B5FD}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{F6A02431-167E-4347-BC43-65532C31CDB7} = {F6A02431-167E-4347-BC43-65532C31CDB7}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OpenMetaverse.Http", "libomv\OpenMetaverse.Http\OpenMetaverse.Http.csproj", "{54B78813-5B32-4257-8CF4-5A48C90E58BC}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OpenMetaverse.StructuredData", "libomv\OpenMetaverse.StructuredData\OpenMetaverse.StructuredData.csproj", "{BED46B2C-D866-4C87-AD31-5C87D00B6E88}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OpenMetaverseTypes", "libomv\OpenMetaverseTypes\OpenMetaverseTypes.csproj", "{B3FE54E9-312C-4065-9156-B597E05D2BCA}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HttpServer", "libomv\HttpServer\HttpServer.csproj", "{455E7D70-1C85-4D7F-9F01-DC801B8B8C34}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OpenMetaverse.Utilities", "libomv\OpenMetaverse.Utilities\OpenMetaverse.Utilities.csproj", "{81947E6D-4614-468F-B75B-EE61736D5BAA}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "clResourceEditor", "clResourceEditor\clResourceEditor.csproj", "{EAD895D3-384F-4078-9603-DAC343E0E89D}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "clControls", "clControls\clControls.csproj", "{93D3970D-9C6C-4250-BE8F-7CF974DEAB68}"
|
||||
EndProject
|
||||
Project("{54435603-DBB4-11D2-8724-00A0C9A8B90C}") = "Installer", "Installer\Installer.vdproj", "{5CFFE837-B679-4C6C-A223-97A61DD0E11A}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "clUtils", "clUtils\clUtils.csproj", "{6C115EF9-F48B-4606-9361-B09E337C9705}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DebugHWKey", "DebugHWKey\DebugHWKey.csproj", "{C07BFFE6-B66B-47AA-A1C2-094BBAC9AF22}"
|
||||
EndProject
|
||||
Project("{6141683F-8A12-4E36-9623-2EB02B2C2303}") = "InstallShield", "InstallShield\InstallShield.isproj", "{8595864B-D0F6-4B1F-853D-0F38E8EE90F8}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StatsPostTest", "StatsPostTest\StatsPostTest.csproj", "{8CF624A8-4FE6-41AD-8DDF-B37854E374CB}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DotNetZip", "DotNetZip\DotNetZip.csproj", "{0037E22E-B40E-4D9B-8CD5-062E7E3BC1D7}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NatiBotLogReader", "NatiBotLogReader\NatiBotLogReader.csproj", "{DB1A9545-2E68-4857-B776-29F62F8EA21C}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
CD_ROM|Any CPU = CD_ROM|Any CPU
|
||||
CD_ROM|AnyOS = CD_ROM|AnyOS
|
||||
CD_ROM|Mixed Platforms = CD_ROM|Mixed Platforms
|
||||
CD_ROM|Win32 = CD_ROM|Win32
|
||||
CD_ROM|Win64 = CD_ROM|Win64
|
||||
CD_ROM|x64 = CD_ROM|x64
|
||||
CD_ROM|x86 = CD_ROM|x86
|
||||
Debug|Any CPU = Debug|Any CPU
|
||||
Debug|AnyOS = Debug|AnyOS
|
||||
Debug|Mixed Platforms = Debug|Mixed Platforms
|
||||
Debug|Win32 = Debug|Win32
|
||||
Debug|Win64 = Debug|Win64
|
||||
Debug|x64 = Debug|x64
|
||||
Debug|x86 = Debug|x86
|
||||
DVD-5|Any CPU = DVD-5|Any CPU
|
||||
DVD-5|AnyOS = DVD-5|AnyOS
|
||||
DVD-5|Mixed Platforms = DVD-5|Mixed Platforms
|
||||
DVD-5|Win32 = DVD-5|Win32
|
||||
DVD-5|Win64 = DVD-5|Win64
|
||||
DVD-5|x64 = DVD-5|x64
|
||||
DVD-5|x86 = DVD-5|x86
|
||||
Release|Any CPU = Release|Any CPU
|
||||
Release|AnyOS = Release|AnyOS
|
||||
Release|Mixed Platforms = Release|Mixed Platforms
|
||||
Release|Win32 = Release|Win32
|
||||
Release|Win64 = Release|Win64
|
||||
Release|x64 = Release|x64
|
||||
Release|x86 = Release|x86
|
||||
SingleImage|Any CPU = SingleImage|Any CPU
|
||||
SingleImage|AnyOS = SingleImage|AnyOS
|
||||
SingleImage|Mixed Platforms = SingleImage|Mixed Platforms
|
||||
SingleImage|Win32 = SingleImage|Win32
|
||||
SingleImage|Win64 = SingleImage|Win64
|
||||
SingleImage|x64 = SingleImage|x64
|
||||
SingleImage|x86 = SingleImage|x86
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{9041A815-E5DA-4B00-945E-ADC7BD2ED7B9}.CD_ROM|Any CPU.ActiveCfg = Release|x64
|
||||
{9041A815-E5DA-4B00-945E-ADC7BD2ED7B9}.CD_ROM|AnyOS.ActiveCfg = Release|x64
|
||||
{9041A815-E5DA-4B00-945E-ADC7BD2ED7B9}.CD_ROM|Mixed Platforms.ActiveCfg = Release|x64
|
||||
{9041A815-E5DA-4B00-945E-ADC7BD2ED7B9}.CD_ROM|Mixed Platforms.Build.0 = Release|x64
|
||||
{9041A815-E5DA-4B00-945E-ADC7BD2ED7B9}.CD_ROM|Win32.ActiveCfg = Release|x64
|
||||
{9041A815-E5DA-4B00-945E-ADC7BD2ED7B9}.CD_ROM|Win64.ActiveCfg = Release|x64
|
||||
{9041A815-E5DA-4B00-945E-ADC7BD2ED7B9}.CD_ROM|x64.ActiveCfg = Release|x64
|
||||
{9041A815-E5DA-4B00-945E-ADC7BD2ED7B9}.CD_ROM|x64.Build.0 = Release|x64
|
||||
{9041A815-E5DA-4B00-945E-ADC7BD2ED7B9}.CD_ROM|x86.ActiveCfg = Release|x64
|
||||
{9041A815-E5DA-4B00-945E-ADC7BD2ED7B9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{9041A815-E5DA-4B00-945E-ADC7BD2ED7B9}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{9041A815-E5DA-4B00-945E-ADC7BD2ED7B9}.Debug|AnyOS.ActiveCfg = Debug|Any CPU
|
||||
{9041A815-E5DA-4B00-945E-ADC7BD2ED7B9}.Debug|Mixed Platforms.ActiveCfg = Debug|x64
|
||||
{9041A815-E5DA-4B00-945E-ADC7BD2ED7B9}.Debug|Mixed Platforms.Build.0 = Debug|x64
|
||||
{9041A815-E5DA-4B00-945E-ADC7BD2ED7B9}.Debug|Win32.ActiveCfg = Debug|x64
|
||||
{9041A815-E5DA-4B00-945E-ADC7BD2ED7B9}.Debug|Win64.ActiveCfg = Debug|x64
|
||||
{9041A815-E5DA-4B00-945E-ADC7BD2ED7B9}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{9041A815-E5DA-4B00-945E-ADC7BD2ED7B9}.Debug|x64.Build.0 = Debug|x64
|
||||
{9041A815-E5DA-4B00-945E-ADC7BD2ED7B9}.Debug|x86.ActiveCfg = Debug|x86
|
||||
{9041A815-E5DA-4B00-945E-ADC7BD2ED7B9}.Debug|x86.Build.0 = Debug|x86
|
||||
{9041A815-E5DA-4B00-945E-ADC7BD2ED7B9}.DVD-5|Any CPU.ActiveCfg = Debug|x64
|
||||
{9041A815-E5DA-4B00-945E-ADC7BD2ED7B9}.DVD-5|AnyOS.ActiveCfg = Debug|x64
|
||||
{9041A815-E5DA-4B00-945E-ADC7BD2ED7B9}.DVD-5|Mixed Platforms.ActiveCfg = Debug|x64
|
||||
{9041A815-E5DA-4B00-945E-ADC7BD2ED7B9}.DVD-5|Mixed Platforms.Build.0 = Debug|x64
|
||||
{9041A815-E5DA-4B00-945E-ADC7BD2ED7B9}.DVD-5|Win32.ActiveCfg = Debug|x64
|
||||
{9041A815-E5DA-4B00-945E-ADC7BD2ED7B9}.DVD-5|Win64.ActiveCfg = Debug|x64
|
||||
{9041A815-E5DA-4B00-945E-ADC7BD2ED7B9}.DVD-5|x64.ActiveCfg = Debug|x64
|
||||
{9041A815-E5DA-4B00-945E-ADC7BD2ED7B9}.DVD-5|x64.Build.0 = Debug|x64
|
||||
{9041A815-E5DA-4B00-945E-ADC7BD2ED7B9}.DVD-5|x86.ActiveCfg = Debug|x64
|
||||
{9041A815-E5DA-4B00-945E-ADC7BD2ED7B9}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{9041A815-E5DA-4B00-945E-ADC7BD2ED7B9}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{9041A815-E5DA-4B00-945E-ADC7BD2ED7B9}.Release|AnyOS.ActiveCfg = Release|Any CPU
|
||||
{9041A815-E5DA-4B00-945E-ADC7BD2ED7B9}.Release|Mixed Platforms.ActiveCfg = Release|x64
|
||||
{9041A815-E5DA-4B00-945E-ADC7BD2ED7B9}.Release|Mixed Platforms.Build.0 = Release|x64
|
||||
{9041A815-E5DA-4B00-945E-ADC7BD2ED7B9}.Release|Win32.ActiveCfg = Release|x64
|
||||
{9041A815-E5DA-4B00-945E-ADC7BD2ED7B9}.Release|Win64.ActiveCfg = Release|x64
|
||||
{9041A815-E5DA-4B00-945E-ADC7BD2ED7B9}.Release|x64.ActiveCfg = Release|x64
|
||||
{9041A815-E5DA-4B00-945E-ADC7BD2ED7B9}.Release|x64.Build.0 = Release|x64
|
||||
{9041A815-E5DA-4B00-945E-ADC7BD2ED7B9}.Release|x86.ActiveCfg = Release|x86
|
||||
{9041A815-E5DA-4B00-945E-ADC7BD2ED7B9}.Release|x86.Build.0 = Release|x86
|
||||
{9041A815-E5DA-4B00-945E-ADC7BD2ED7B9}.SingleImage|Any CPU.ActiveCfg = Release|x64
|
||||
{9041A815-E5DA-4B00-945E-ADC7BD2ED7B9}.SingleImage|AnyOS.ActiveCfg = Release|x64
|
||||
{9041A815-E5DA-4B00-945E-ADC7BD2ED7B9}.SingleImage|Mixed Platforms.ActiveCfg = Release|x64
|
||||
{9041A815-E5DA-4B00-945E-ADC7BD2ED7B9}.SingleImage|Mixed Platforms.Build.0 = Release|x64
|
||||
{9041A815-E5DA-4B00-945E-ADC7BD2ED7B9}.SingleImage|Win32.ActiveCfg = Release|x64
|
||||
{9041A815-E5DA-4B00-945E-ADC7BD2ED7B9}.SingleImage|Win64.ActiveCfg = Release|x64
|
||||
{9041A815-E5DA-4B00-945E-ADC7BD2ED7B9}.SingleImage|x64.ActiveCfg = Release|x64
|
||||
{9041A815-E5DA-4B00-945E-ADC7BD2ED7B9}.SingleImage|x64.Build.0 = Release|x64
|
||||
{9041A815-E5DA-4B00-945E-ADC7BD2ED7B9}.SingleImage|x86.ActiveCfg = Release|x64
|
||||
{89AC992C-5E2C-4E6B-A453-61C1DF446216}.CD_ROM|Any CPU.ActiveCfg = Release|x64
|
||||
{89AC992C-5E2C-4E6B-A453-61C1DF446216}.CD_ROM|AnyOS.ActiveCfg = Release|x64
|
||||
{89AC992C-5E2C-4E6B-A453-61C1DF446216}.CD_ROM|Mixed Platforms.ActiveCfg = Release|x64
|
||||
{89AC992C-5E2C-4E6B-A453-61C1DF446216}.CD_ROM|Mixed Platforms.Build.0 = Release|x64
|
||||
{89AC992C-5E2C-4E6B-A453-61C1DF446216}.CD_ROM|Win32.ActiveCfg = Release|x64
|
||||
{89AC992C-5E2C-4E6B-A453-61C1DF446216}.CD_ROM|Win64.ActiveCfg = Release|x64
|
||||
{89AC992C-5E2C-4E6B-A453-61C1DF446216}.CD_ROM|x64.ActiveCfg = Release|x64
|
||||
{89AC992C-5E2C-4E6B-A453-61C1DF446216}.CD_ROM|x64.Build.0 = Release|x64
|
||||
{89AC992C-5E2C-4E6B-A453-61C1DF446216}.CD_ROM|x86.ActiveCfg = Release|x64
|
||||
{89AC992C-5E2C-4E6B-A453-61C1DF446216}.Debug|Any CPU.ActiveCfg = Debug|Win32
|
||||
{89AC992C-5E2C-4E6B-A453-61C1DF446216}.Debug|AnyOS.ActiveCfg = Debug|x64
|
||||
{89AC992C-5E2C-4E6B-A453-61C1DF446216}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32
|
||||
{89AC992C-5E2C-4E6B-A453-61C1DF446216}.Debug|Mixed Platforms.Build.0 = Debug|Win32
|
||||
{89AC992C-5E2C-4E6B-A453-61C1DF446216}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{89AC992C-5E2C-4E6B-A453-61C1DF446216}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{89AC992C-5E2C-4E6B-A453-61C1DF446216}.Debug|Win64.ActiveCfg = Debug|Win32
|
||||
{89AC992C-5E2C-4E6B-A453-61C1DF446216}.Debug|x64.ActiveCfg = Debug|Win32
|
||||
{89AC992C-5E2C-4E6B-A453-61C1DF446216}.Debug|x86.ActiveCfg = Debug|Win32
|
||||
{89AC992C-5E2C-4E6B-A453-61C1DF446216}.DVD-5|Any CPU.ActiveCfg = Debug|x64
|
||||
{89AC992C-5E2C-4E6B-A453-61C1DF446216}.DVD-5|AnyOS.ActiveCfg = Debug|x64
|
||||
{89AC992C-5E2C-4E6B-A453-61C1DF446216}.DVD-5|Mixed Platforms.ActiveCfg = Debug|x64
|
||||
{89AC992C-5E2C-4E6B-A453-61C1DF446216}.DVD-5|Mixed Platforms.Build.0 = Debug|x64
|
||||
{89AC992C-5E2C-4E6B-A453-61C1DF446216}.DVD-5|Win32.ActiveCfg = Debug|x64
|
||||
{89AC992C-5E2C-4E6B-A453-61C1DF446216}.DVD-5|Win64.ActiveCfg = Debug|x64
|
||||
{89AC992C-5E2C-4E6B-A453-61C1DF446216}.DVD-5|x64.ActiveCfg = Debug|x64
|
||||
{89AC992C-5E2C-4E6B-A453-61C1DF446216}.DVD-5|x64.Build.0 = Debug|x64
|
||||
{89AC992C-5E2C-4E6B-A453-61C1DF446216}.DVD-5|x86.ActiveCfg = Debug|x64
|
||||
{89AC992C-5E2C-4E6B-A453-61C1DF446216}.Release|Any CPU.ActiveCfg = Release|Win32
|
||||
{89AC992C-5E2C-4E6B-A453-61C1DF446216}.Release|AnyOS.ActiveCfg = Release|x64
|
||||
{89AC992C-5E2C-4E6B-A453-61C1DF446216}.Release|Mixed Platforms.ActiveCfg = Release|Win32
|
||||
{89AC992C-5E2C-4E6B-A453-61C1DF446216}.Release|Mixed Platforms.Build.0 = Release|Win32
|
||||
{89AC992C-5E2C-4E6B-A453-61C1DF446216}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{89AC992C-5E2C-4E6B-A453-61C1DF446216}.Release|Win32.Build.0 = Release|Win32
|
||||
{89AC992C-5E2C-4E6B-A453-61C1DF446216}.Release|Win64.ActiveCfg = Release|Win32
|
||||
{89AC992C-5E2C-4E6B-A453-61C1DF446216}.Release|x64.ActiveCfg = Release|Win32
|
||||
{89AC992C-5E2C-4E6B-A453-61C1DF446216}.Release|x86.ActiveCfg = Release|Win32
|
||||
{89AC992C-5E2C-4E6B-A453-61C1DF446216}.SingleImage|Any CPU.ActiveCfg = Release|x64
|
||||
{89AC992C-5E2C-4E6B-A453-61C1DF446216}.SingleImage|AnyOS.ActiveCfg = Release|x64
|
||||
{89AC992C-5E2C-4E6B-A453-61C1DF446216}.SingleImage|Mixed Platforms.ActiveCfg = Release|x64
|
||||
{89AC992C-5E2C-4E6B-A453-61C1DF446216}.SingleImage|Mixed Platforms.Build.0 = Release|x64
|
||||
{89AC992C-5E2C-4E6B-A453-61C1DF446216}.SingleImage|Win32.ActiveCfg = Release|x64
|
||||
{89AC992C-5E2C-4E6B-A453-61C1DF446216}.SingleImage|Win64.ActiveCfg = Release|x64
|
||||
{89AC992C-5E2C-4E6B-A453-61C1DF446216}.SingleImage|x64.ActiveCfg = Release|x64
|
||||
{89AC992C-5E2C-4E6B-A453-61C1DF446216}.SingleImage|x64.Build.0 = Release|x64
|
||||
{89AC992C-5E2C-4E6B-A453-61C1DF446216}.SingleImage|x86.ActiveCfg = Release|x64
|
||||
{19607F57-B521-4477-9DE0-F0D9B1A68BC7}.CD_ROM|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{19607F57-B521-4477-9DE0-F0D9B1A68BC7}.CD_ROM|Any CPU.Build.0 = Release|Any CPU
|
||||
{19607F57-B521-4477-9DE0-F0D9B1A68BC7}.CD_ROM|AnyOS.ActiveCfg = Release|Any CPU
|
||||
{19607F57-B521-4477-9DE0-F0D9B1A68BC7}.CD_ROM|Mixed Platforms.ActiveCfg = Release|Any CPU
|
||||
{19607F57-B521-4477-9DE0-F0D9B1A68BC7}.CD_ROM|Mixed Platforms.Build.0 = Release|Any CPU
|
||||
{19607F57-B521-4477-9DE0-F0D9B1A68BC7}.CD_ROM|Win32.ActiveCfg = Release|Any CPU
|
||||
{19607F57-B521-4477-9DE0-F0D9B1A68BC7}.CD_ROM|Win64.ActiveCfg = Release|Any CPU
|
||||
{19607F57-B521-4477-9DE0-F0D9B1A68BC7}.CD_ROM|x64.ActiveCfg = Release|Any CPU
|
||||
{19607F57-B521-4477-9DE0-F0D9B1A68BC7}.CD_ROM|x86.ActiveCfg = Release|Any CPU
|
||||
{19607F57-B521-4477-9DE0-F0D9B1A68BC7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{19607F57-B521-4477-9DE0-F0D9B1A68BC7}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{19607F57-B521-4477-9DE0-F0D9B1A68BC7}.Debug|AnyOS.ActiveCfg = Debug|Any CPU
|
||||
{19607F57-B521-4477-9DE0-F0D9B1A68BC7}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
|
||||
{19607F57-B521-4477-9DE0-F0D9B1A68BC7}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
|
||||
{19607F57-B521-4477-9DE0-F0D9B1A68BC7}.Debug|Win32.ActiveCfg = Debug|Any CPU
|
||||
{19607F57-B521-4477-9DE0-F0D9B1A68BC7}.Debug|Win64.ActiveCfg = Debug|Any CPU
|
||||
{19607F57-B521-4477-9DE0-F0D9B1A68BC7}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||
{19607F57-B521-4477-9DE0-F0D9B1A68BC7}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{19607F57-B521-4477-9DE0-F0D9B1A68BC7}.DVD-5|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{19607F57-B521-4477-9DE0-F0D9B1A68BC7}.DVD-5|Any CPU.Build.0 = Debug|Any CPU
|
||||
{19607F57-B521-4477-9DE0-F0D9B1A68BC7}.DVD-5|AnyOS.ActiveCfg = Debug|Any CPU
|
||||
{19607F57-B521-4477-9DE0-F0D9B1A68BC7}.DVD-5|Mixed Platforms.ActiveCfg = Debug|Any CPU
|
||||
{19607F57-B521-4477-9DE0-F0D9B1A68BC7}.DVD-5|Mixed Platforms.Build.0 = Debug|Any CPU
|
||||
{19607F57-B521-4477-9DE0-F0D9B1A68BC7}.DVD-5|Win32.ActiveCfg = Debug|Any CPU
|
||||
{19607F57-B521-4477-9DE0-F0D9B1A68BC7}.DVD-5|Win64.ActiveCfg = Debug|Any CPU
|
||||
{19607F57-B521-4477-9DE0-F0D9B1A68BC7}.DVD-5|x64.ActiveCfg = Debug|Any CPU
|
||||
{19607F57-B521-4477-9DE0-F0D9B1A68BC7}.DVD-5|x86.ActiveCfg = Debug|Any CPU
|
||||
{19607F57-B521-4477-9DE0-F0D9B1A68BC7}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{19607F57-B521-4477-9DE0-F0D9B1A68BC7}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{19607F57-B521-4477-9DE0-F0D9B1A68BC7}.Release|AnyOS.ActiveCfg = Release|Any CPU
|
||||
{19607F57-B521-4477-9DE0-F0D9B1A68BC7}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
|
||||
{19607F57-B521-4477-9DE0-F0D9B1A68BC7}.Release|Mixed Platforms.Build.0 = Release|Any CPU
|
||||
{19607F57-B521-4477-9DE0-F0D9B1A68BC7}.Release|Win32.ActiveCfg = Release|Any CPU
|
||||
{19607F57-B521-4477-9DE0-F0D9B1A68BC7}.Release|Win64.ActiveCfg = Release|Any CPU
|
||||
{19607F57-B521-4477-9DE0-F0D9B1A68BC7}.Release|x64.ActiveCfg = Release|Any CPU
|
||||
{19607F57-B521-4477-9DE0-F0D9B1A68BC7}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{19607F57-B521-4477-9DE0-F0D9B1A68BC7}.SingleImage|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{19607F57-B521-4477-9DE0-F0D9B1A68BC7}.SingleImage|Any CPU.Build.0 = Release|Any CPU
|
||||
{19607F57-B521-4477-9DE0-F0D9B1A68BC7}.SingleImage|AnyOS.ActiveCfg = Release|Any CPU
|
||||
{19607F57-B521-4477-9DE0-F0D9B1A68BC7}.SingleImage|Mixed Platforms.ActiveCfg = Release|Any CPU
|
||||
{19607F57-B521-4477-9DE0-F0D9B1A68BC7}.SingleImage|Mixed Platforms.Build.0 = Release|Any CPU
|
||||
{19607F57-B521-4477-9DE0-F0D9B1A68BC7}.SingleImage|Win32.ActiveCfg = Release|Any CPU
|
||||
{19607F57-B521-4477-9DE0-F0D9B1A68BC7}.SingleImage|Win64.ActiveCfg = Release|Any CPU
|
||||
{19607F57-B521-4477-9DE0-F0D9B1A68BC7}.SingleImage|x64.ActiveCfg = Release|Any CPU
|
||||
{19607F57-B521-4477-9DE0-F0D9B1A68BC7}.SingleImage|x86.ActiveCfg = Release|Any CPU
|
||||
{F6A02431-167E-4347-BC43-65532C31CDB7}.CD_ROM|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{F6A02431-167E-4347-BC43-65532C31CDB7}.CD_ROM|Any CPU.Build.0 = Release|Any CPU
|
||||
{F6A02431-167E-4347-BC43-65532C31CDB7}.CD_ROM|AnyOS.ActiveCfg = Release|Any CPU
|
||||
{F6A02431-167E-4347-BC43-65532C31CDB7}.CD_ROM|Mixed Platforms.ActiveCfg = Release|Any CPU
|
||||
{F6A02431-167E-4347-BC43-65532C31CDB7}.CD_ROM|Mixed Platforms.Build.0 = Release|Any CPU
|
||||
{F6A02431-167E-4347-BC43-65532C31CDB7}.CD_ROM|Win32.ActiveCfg = Release|Any CPU
|
||||
{F6A02431-167E-4347-BC43-65532C31CDB7}.CD_ROM|Win64.ActiveCfg = Release|Any CPU
|
||||
{F6A02431-167E-4347-BC43-65532C31CDB7}.CD_ROM|x64.ActiveCfg = Release|Any CPU
|
||||
{F6A02431-167E-4347-BC43-65532C31CDB7}.CD_ROM|x86.ActiveCfg = Release|Any CPU
|
||||
{F6A02431-167E-4347-BC43-65532C31CDB7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{F6A02431-167E-4347-BC43-65532C31CDB7}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{F6A02431-167E-4347-BC43-65532C31CDB7}.Debug|AnyOS.ActiveCfg = Debug|Any CPU
|
||||
{F6A02431-167E-4347-BC43-65532C31CDB7}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
|
||||
{F6A02431-167E-4347-BC43-65532C31CDB7}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
|
||||
{F6A02431-167E-4347-BC43-65532C31CDB7}.Debug|Win32.ActiveCfg = Debug|Any CPU
|
||||
{F6A02431-167E-4347-BC43-65532C31CDB7}.Debug|Win64.ActiveCfg = Debug|Any CPU
|
||||
{F6A02431-167E-4347-BC43-65532C31CDB7}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||
{F6A02431-167E-4347-BC43-65532C31CDB7}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{F6A02431-167E-4347-BC43-65532C31CDB7}.DVD-5|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{F6A02431-167E-4347-BC43-65532C31CDB7}.DVD-5|Any CPU.Build.0 = Debug|Any CPU
|
||||
{F6A02431-167E-4347-BC43-65532C31CDB7}.DVD-5|AnyOS.ActiveCfg = Debug|Any CPU
|
||||
{F6A02431-167E-4347-BC43-65532C31CDB7}.DVD-5|Mixed Platforms.ActiveCfg = Debug|Any CPU
|
||||
{F6A02431-167E-4347-BC43-65532C31CDB7}.DVD-5|Mixed Platforms.Build.0 = Debug|Any CPU
|
||||
{F6A02431-167E-4347-BC43-65532C31CDB7}.DVD-5|Win32.ActiveCfg = Debug|Any CPU
|
||||
{F6A02431-167E-4347-BC43-65532C31CDB7}.DVD-5|Win64.ActiveCfg = Debug|Any CPU
|
||||
{F6A02431-167E-4347-BC43-65532C31CDB7}.DVD-5|x64.ActiveCfg = Debug|Any CPU
|
||||
{F6A02431-167E-4347-BC43-65532C31CDB7}.DVD-5|x86.ActiveCfg = Debug|Any CPU
|
||||
{F6A02431-167E-4347-BC43-65532C31CDB7}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{F6A02431-167E-4347-BC43-65532C31CDB7}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{F6A02431-167E-4347-BC43-65532C31CDB7}.Release|AnyOS.ActiveCfg = Release|Any CPU
|
||||
{F6A02431-167E-4347-BC43-65532C31CDB7}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
|
||||
{F6A02431-167E-4347-BC43-65532C31CDB7}.Release|Mixed Platforms.Build.0 = Release|Any CPU
|
||||
{F6A02431-167E-4347-BC43-65532C31CDB7}.Release|Win32.ActiveCfg = Release|Any CPU
|
||||
{F6A02431-167E-4347-BC43-65532C31CDB7}.Release|Win64.ActiveCfg = Release|Any CPU
|
||||
{F6A02431-167E-4347-BC43-65532C31CDB7}.Release|x64.ActiveCfg = Release|Any CPU
|
||||
{F6A02431-167E-4347-BC43-65532C31CDB7}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{F6A02431-167E-4347-BC43-65532C31CDB7}.SingleImage|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{F6A02431-167E-4347-BC43-65532C31CDB7}.SingleImage|Any CPU.Build.0 = Release|Any CPU
|
||||
{F6A02431-167E-4347-BC43-65532C31CDB7}.SingleImage|AnyOS.ActiveCfg = Release|Any CPU
|
||||
{F6A02431-167E-4347-BC43-65532C31CDB7}.SingleImage|Mixed Platforms.ActiveCfg = Release|Any CPU
|
||||
{F6A02431-167E-4347-BC43-65532C31CDB7}.SingleImage|Mixed Platforms.Build.0 = Release|Any CPU
|
||||
{F6A02431-167E-4347-BC43-65532C31CDB7}.SingleImage|Win32.ActiveCfg = Release|Any CPU
|
||||
{F6A02431-167E-4347-BC43-65532C31CDB7}.SingleImage|Win64.ActiveCfg = Release|Any CPU
|
||||
{F6A02431-167E-4347-BC43-65532C31CDB7}.SingleImage|x64.ActiveCfg = Release|Any CPU
|
||||
{F6A02431-167E-4347-BC43-65532C31CDB7}.SingleImage|x86.ActiveCfg = Release|Any CPU
|
||||
{7F6BF4C6-A0EB-4A18-9968-BD3C42A7B5FD}.CD_ROM|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{7F6BF4C6-A0EB-4A18-9968-BD3C42A7B5FD}.CD_ROM|Any CPU.Build.0 = Debug|Any CPU
|
||||
{7F6BF4C6-A0EB-4A18-9968-BD3C42A7B5FD}.CD_ROM|AnyOS.ActiveCfg = Debug|Any CPU
|
||||
{7F6BF4C6-A0EB-4A18-9968-BD3C42A7B5FD}.CD_ROM|Mixed Platforms.ActiveCfg = Debug|Any CPU
|
||||
{7F6BF4C6-A0EB-4A18-9968-BD3C42A7B5FD}.CD_ROM|Mixed Platforms.Build.0 = Debug|Any CPU
|
||||
{7F6BF4C6-A0EB-4A18-9968-BD3C42A7B5FD}.CD_ROM|Win32.ActiveCfg = Debug|Any CPU
|
||||
{7F6BF4C6-A0EB-4A18-9968-BD3C42A7B5FD}.CD_ROM|Win64.ActiveCfg = Debug|Any CPU
|
||||
{7F6BF4C6-A0EB-4A18-9968-BD3C42A7B5FD}.CD_ROM|x64.ActiveCfg = Debug|Any CPU
|
||||
{7F6BF4C6-A0EB-4A18-9968-BD3C42A7B5FD}.CD_ROM|x86.ActiveCfg = Debug|Any CPU
|
||||
{7F6BF4C6-A0EB-4A18-9968-BD3C42A7B5FD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{7F6BF4C6-A0EB-4A18-9968-BD3C42A7B5FD}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{7F6BF4C6-A0EB-4A18-9968-BD3C42A7B5FD}.Debug|AnyOS.ActiveCfg = Debug|Any CPU
|
||||
{7F6BF4C6-A0EB-4A18-9968-BD3C42A7B5FD}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
|
||||
{7F6BF4C6-A0EB-4A18-9968-BD3C42A7B5FD}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
|
||||
{7F6BF4C6-A0EB-4A18-9968-BD3C42A7B5FD}.Debug|Win32.ActiveCfg = Debug|Any CPU
|
||||
{7F6BF4C6-A0EB-4A18-9968-BD3C42A7B5FD}.Debug|Win64.ActiveCfg = Debug|Any CPU
|
||||
{7F6BF4C6-A0EB-4A18-9968-BD3C42A7B5FD}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||
{7F6BF4C6-A0EB-4A18-9968-BD3C42A7B5FD}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{7F6BF4C6-A0EB-4A18-9968-BD3C42A7B5FD}.DVD-5|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{7F6BF4C6-A0EB-4A18-9968-BD3C42A7B5FD}.DVD-5|Any CPU.Build.0 = Debug|Any CPU
|
||||
{7F6BF4C6-A0EB-4A18-9968-BD3C42A7B5FD}.DVD-5|AnyOS.ActiveCfg = Debug|Any CPU
|
||||
{7F6BF4C6-A0EB-4A18-9968-BD3C42A7B5FD}.DVD-5|Mixed Platforms.ActiveCfg = Debug|Any CPU
|
||||
{7F6BF4C6-A0EB-4A18-9968-BD3C42A7B5FD}.DVD-5|Mixed Platforms.Build.0 = Debug|Any CPU
|
||||
{7F6BF4C6-A0EB-4A18-9968-BD3C42A7B5FD}.DVD-5|Win32.ActiveCfg = Debug|Any CPU
|
||||
{7F6BF4C6-A0EB-4A18-9968-BD3C42A7B5FD}.DVD-5|Win64.ActiveCfg = Debug|Any CPU
|
||||
{7F6BF4C6-A0EB-4A18-9968-BD3C42A7B5FD}.DVD-5|x64.ActiveCfg = Debug|Any CPU
|
||||
{7F6BF4C6-A0EB-4A18-9968-BD3C42A7B5FD}.DVD-5|x86.ActiveCfg = Debug|Any CPU
|
||||
{7F6BF4C6-A0EB-4A18-9968-BD3C42A7B5FD}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{7F6BF4C6-A0EB-4A18-9968-BD3C42A7B5FD}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{7F6BF4C6-A0EB-4A18-9968-BD3C42A7B5FD}.Release|AnyOS.ActiveCfg = Release|Any CPU
|
||||
{7F6BF4C6-A0EB-4A18-9968-BD3C42A7B5FD}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
|
||||
{7F6BF4C6-A0EB-4A18-9968-BD3C42A7B5FD}.Release|Mixed Platforms.Build.0 = Release|Any CPU
|
||||
{7F6BF4C6-A0EB-4A18-9968-BD3C42A7B5FD}.Release|Win32.ActiveCfg = Release|Any CPU
|
||||
{7F6BF4C6-A0EB-4A18-9968-BD3C42A7B5FD}.Release|Win64.ActiveCfg = Release|Any CPU
|
||||
{7F6BF4C6-A0EB-4A18-9968-BD3C42A7B5FD}.Release|x64.ActiveCfg = Release|Any CPU
|
||||
{7F6BF4C6-A0EB-4A18-9968-BD3C42A7B5FD}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{7F6BF4C6-A0EB-4A18-9968-BD3C42A7B5FD}.SingleImage|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{7F6BF4C6-A0EB-4A18-9968-BD3C42A7B5FD}.SingleImage|Any CPU.Build.0 = Debug|Any CPU
|
||||
{7F6BF4C6-A0EB-4A18-9968-BD3C42A7B5FD}.SingleImage|AnyOS.ActiveCfg = Debug|Any CPU
|
||||
{7F6BF4C6-A0EB-4A18-9968-BD3C42A7B5FD}.SingleImage|Mixed Platforms.ActiveCfg = Debug|Any CPU
|
||||
{7F6BF4C6-A0EB-4A18-9968-BD3C42A7B5FD}.SingleImage|Mixed Platforms.Build.0 = Debug|Any CPU
|
||||
{7F6BF4C6-A0EB-4A18-9968-BD3C42A7B5FD}.SingleImage|Win32.ActiveCfg = Debug|Any CPU
|
||||
{7F6BF4C6-A0EB-4A18-9968-BD3C42A7B5FD}.SingleImage|Win64.ActiveCfg = Debug|Any CPU
|
||||
{7F6BF4C6-A0EB-4A18-9968-BD3C42A7B5FD}.SingleImage|x64.ActiveCfg = Debug|Any CPU
|
||||
{7F6BF4C6-A0EB-4A18-9968-BD3C42A7B5FD}.SingleImage|x86.ActiveCfg = Debug|Any CPU
|
||||
{54B78813-5B32-4257-8CF4-5A48C90E58BC}.CD_ROM|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{54B78813-5B32-4257-8CF4-5A48C90E58BC}.CD_ROM|Any CPU.Build.0 = Debug|Any CPU
|
||||
{54B78813-5B32-4257-8CF4-5A48C90E58BC}.CD_ROM|AnyOS.ActiveCfg = Debug|Any CPU
|
||||
{54B78813-5B32-4257-8CF4-5A48C90E58BC}.CD_ROM|Mixed Platforms.ActiveCfg = Debug|Any CPU
|
||||
{54B78813-5B32-4257-8CF4-5A48C90E58BC}.CD_ROM|Mixed Platforms.Build.0 = Debug|Any CPU
|
||||
{54B78813-5B32-4257-8CF4-5A48C90E58BC}.CD_ROM|Win32.ActiveCfg = Debug|Any CPU
|
||||
{54B78813-5B32-4257-8CF4-5A48C90E58BC}.CD_ROM|Win64.ActiveCfg = Debug|Any CPU
|
||||
{54B78813-5B32-4257-8CF4-5A48C90E58BC}.CD_ROM|x64.ActiveCfg = Debug|Any CPU
|
||||
{54B78813-5B32-4257-8CF4-5A48C90E58BC}.CD_ROM|x86.ActiveCfg = Debug|Any CPU
|
||||
{54B78813-5B32-4257-8CF4-5A48C90E58BC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{54B78813-5B32-4257-8CF4-5A48C90E58BC}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{54B78813-5B32-4257-8CF4-5A48C90E58BC}.Debug|AnyOS.ActiveCfg = Debug|Any CPU
|
||||
{54B78813-5B32-4257-8CF4-5A48C90E58BC}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
|
||||
{54B78813-5B32-4257-8CF4-5A48C90E58BC}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
|
||||
{54B78813-5B32-4257-8CF4-5A48C90E58BC}.Debug|Win32.ActiveCfg = Debug|Any CPU
|
||||
{54B78813-5B32-4257-8CF4-5A48C90E58BC}.Debug|Win64.ActiveCfg = Debug|Any CPU
|
||||
{54B78813-5B32-4257-8CF4-5A48C90E58BC}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||
{54B78813-5B32-4257-8CF4-5A48C90E58BC}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{54B78813-5B32-4257-8CF4-5A48C90E58BC}.DVD-5|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{54B78813-5B32-4257-8CF4-5A48C90E58BC}.DVD-5|Any CPU.Build.0 = Debug|Any CPU
|
||||
{54B78813-5B32-4257-8CF4-5A48C90E58BC}.DVD-5|AnyOS.ActiveCfg = Debug|Any CPU
|
||||
{54B78813-5B32-4257-8CF4-5A48C90E58BC}.DVD-5|Mixed Platforms.ActiveCfg = Debug|Any CPU
|
||||
{54B78813-5B32-4257-8CF4-5A48C90E58BC}.DVD-5|Mixed Platforms.Build.0 = Debug|Any CPU
|
||||
{54B78813-5B32-4257-8CF4-5A48C90E58BC}.DVD-5|Win32.ActiveCfg = Debug|Any CPU
|
||||
{54B78813-5B32-4257-8CF4-5A48C90E58BC}.DVD-5|Win64.ActiveCfg = Debug|Any CPU
|
||||
{54B78813-5B32-4257-8CF4-5A48C90E58BC}.DVD-5|x64.ActiveCfg = Debug|Any CPU
|
||||
{54B78813-5B32-4257-8CF4-5A48C90E58BC}.DVD-5|x86.ActiveCfg = Debug|Any CPU
|
||||
{54B78813-5B32-4257-8CF4-5A48C90E58BC}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{54B78813-5B32-4257-8CF4-5A48C90E58BC}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{54B78813-5B32-4257-8CF4-5A48C90E58BC}.Release|AnyOS.ActiveCfg = Release|Any CPU
|
||||
{54B78813-5B32-4257-8CF4-5A48C90E58BC}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
|
||||
{54B78813-5B32-4257-8CF4-5A48C90E58BC}.Release|Mixed Platforms.Build.0 = Release|Any CPU
|
||||
{54B78813-5B32-4257-8CF4-5A48C90E58BC}.Release|Win32.ActiveCfg = Release|Any CPU
|
||||
{54B78813-5B32-4257-8CF4-5A48C90E58BC}.Release|Win64.ActiveCfg = Release|Any CPU
|
||||
{54B78813-5B32-4257-8CF4-5A48C90E58BC}.Release|x64.ActiveCfg = Release|Any CPU
|
||||
{54B78813-5B32-4257-8CF4-5A48C90E58BC}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{54B78813-5B32-4257-8CF4-5A48C90E58BC}.SingleImage|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{54B78813-5B32-4257-8CF4-5A48C90E58BC}.SingleImage|Any CPU.Build.0 = Debug|Any CPU
|
||||
{54B78813-5B32-4257-8CF4-5A48C90E58BC}.SingleImage|AnyOS.ActiveCfg = Debug|Any CPU
|
||||
{54B78813-5B32-4257-8CF4-5A48C90E58BC}.SingleImage|Mixed Platforms.ActiveCfg = Debug|Any CPU
|
||||
{54B78813-5B32-4257-8CF4-5A48C90E58BC}.SingleImage|Mixed Platforms.Build.0 = Debug|Any CPU
|
||||
{54B78813-5B32-4257-8CF4-5A48C90E58BC}.SingleImage|Win32.ActiveCfg = Debug|Any CPU
|
||||
{54B78813-5B32-4257-8CF4-5A48C90E58BC}.SingleImage|Win64.ActiveCfg = Debug|Any CPU
|
||||
{54B78813-5B32-4257-8CF4-5A48C90E58BC}.SingleImage|x64.ActiveCfg = Debug|Any CPU
|
||||
{54B78813-5B32-4257-8CF4-5A48C90E58BC}.SingleImage|x86.ActiveCfg = Debug|Any CPU
|
||||
{BED46B2C-D866-4C87-AD31-5C87D00B6E88}.CD_ROM|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{BED46B2C-D866-4C87-AD31-5C87D00B6E88}.CD_ROM|Any CPU.Build.0 = Debug|Any CPU
|
||||
{BED46B2C-D866-4C87-AD31-5C87D00B6E88}.CD_ROM|AnyOS.ActiveCfg = Debug|Any CPU
|
||||
{BED46B2C-D866-4C87-AD31-5C87D00B6E88}.CD_ROM|Mixed Platforms.ActiveCfg = Debug|Any CPU
|
||||
{BED46B2C-D866-4C87-AD31-5C87D00B6E88}.CD_ROM|Mixed Platforms.Build.0 = Debug|Any CPU
|
||||
{BED46B2C-D866-4C87-AD31-5C87D00B6E88}.CD_ROM|Win32.ActiveCfg = Debug|Any CPU
|
||||
{BED46B2C-D866-4C87-AD31-5C87D00B6E88}.CD_ROM|Win64.ActiveCfg = Debug|Any CPU
|
||||
{BED46B2C-D866-4C87-AD31-5C87D00B6E88}.CD_ROM|x64.ActiveCfg = Debug|Any CPU
|
||||
{BED46B2C-D866-4C87-AD31-5C87D00B6E88}.CD_ROM|x86.ActiveCfg = Debug|Any CPU
|
||||
{BED46B2C-D866-4C87-AD31-5C87D00B6E88}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{BED46B2C-D866-4C87-AD31-5C87D00B6E88}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{BED46B2C-D866-4C87-AD31-5C87D00B6E88}.Debug|AnyOS.ActiveCfg = Debug|Any CPU
|
||||
{BED46B2C-D866-4C87-AD31-5C87D00B6E88}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
|
||||
{BED46B2C-D866-4C87-AD31-5C87D00B6E88}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
|
||||
{BED46B2C-D866-4C87-AD31-5C87D00B6E88}.Debug|Win32.ActiveCfg = Debug|Any CPU
|
||||
{BED46B2C-D866-4C87-AD31-5C87D00B6E88}.Debug|Win64.ActiveCfg = Debug|Any CPU
|
||||
{BED46B2C-D866-4C87-AD31-5C87D00B6E88}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||
{BED46B2C-D866-4C87-AD31-5C87D00B6E88}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{BED46B2C-D866-4C87-AD31-5C87D00B6E88}.DVD-5|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{BED46B2C-D866-4C87-AD31-5C87D00B6E88}.DVD-5|Any CPU.Build.0 = Debug|Any CPU
|
||||
{BED46B2C-D866-4C87-AD31-5C87D00B6E88}.DVD-5|AnyOS.ActiveCfg = Debug|Any CPU
|
||||
{BED46B2C-D866-4C87-AD31-5C87D00B6E88}.DVD-5|Mixed Platforms.ActiveCfg = Debug|Any CPU
|
||||
{BED46B2C-D866-4C87-AD31-5C87D00B6E88}.DVD-5|Mixed Platforms.Build.0 = Debug|Any CPU
|
||||
{BED46B2C-D866-4C87-AD31-5C87D00B6E88}.DVD-5|Win32.ActiveCfg = Debug|Any CPU
|
||||
{BED46B2C-D866-4C87-AD31-5C87D00B6E88}.DVD-5|Win64.ActiveCfg = Debug|Any CPU
|
||||
{BED46B2C-D866-4C87-AD31-5C87D00B6E88}.DVD-5|x64.ActiveCfg = Debug|Any CPU
|
||||
{BED46B2C-D866-4C87-AD31-5C87D00B6E88}.DVD-5|x86.ActiveCfg = Debug|Any CPU
|
||||
{BED46B2C-D866-4C87-AD31-5C87D00B6E88}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{BED46B2C-D866-4C87-AD31-5C87D00B6E88}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{BED46B2C-D866-4C87-AD31-5C87D00B6E88}.Release|AnyOS.ActiveCfg = Release|Any CPU
|
||||
{BED46B2C-D866-4C87-AD31-5C87D00B6E88}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
|
||||
{BED46B2C-D866-4C87-AD31-5C87D00B6E88}.Release|Mixed Platforms.Build.0 = Release|Any CPU
|
||||
{BED46B2C-D866-4C87-AD31-5C87D00B6E88}.Release|Win32.ActiveCfg = Release|Any CPU
|
||||
{BED46B2C-D866-4C87-AD31-5C87D00B6E88}.Release|Win64.ActiveCfg = Release|Any CPU
|
||||
{BED46B2C-D866-4C87-AD31-5C87D00B6E88}.Release|x64.ActiveCfg = Release|Any CPU
|
||||
{BED46B2C-D866-4C87-AD31-5C87D00B6E88}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{BED46B2C-D866-4C87-AD31-5C87D00B6E88}.SingleImage|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{BED46B2C-D866-4C87-AD31-5C87D00B6E88}.SingleImage|Any CPU.Build.0 = Debug|Any CPU
|
||||
{BED46B2C-D866-4C87-AD31-5C87D00B6E88}.SingleImage|AnyOS.ActiveCfg = Debug|Any CPU
|
||||
{BED46B2C-D866-4C87-AD31-5C87D00B6E88}.SingleImage|Mixed Platforms.ActiveCfg = Debug|Any CPU
|
||||
{BED46B2C-D866-4C87-AD31-5C87D00B6E88}.SingleImage|Mixed Platforms.Build.0 = Debug|Any CPU
|
||||
{BED46B2C-D866-4C87-AD31-5C87D00B6E88}.SingleImage|Win32.ActiveCfg = Debug|Any CPU
|
||||
{BED46B2C-D866-4C87-AD31-5C87D00B6E88}.SingleImage|Win64.ActiveCfg = Debug|Any CPU
|
||||
{BED46B2C-D866-4C87-AD31-5C87D00B6E88}.SingleImage|x64.ActiveCfg = Debug|Any CPU
|
||||
{BED46B2C-D866-4C87-AD31-5C87D00B6E88}.SingleImage|x86.ActiveCfg = Debug|Any CPU
|
||||
{B3FE54E9-312C-4065-9156-B597E05D2BCA}.CD_ROM|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{B3FE54E9-312C-4065-9156-B597E05D2BCA}.CD_ROM|Any CPU.Build.0 = Debug|Any CPU
|
||||
{B3FE54E9-312C-4065-9156-B597E05D2BCA}.CD_ROM|AnyOS.ActiveCfg = Debug|Any CPU
|
||||
{B3FE54E9-312C-4065-9156-B597E05D2BCA}.CD_ROM|Mixed Platforms.ActiveCfg = Debug|Any CPU
|
||||
{B3FE54E9-312C-4065-9156-B597E05D2BCA}.CD_ROM|Mixed Platforms.Build.0 = Debug|Any CPU
|
||||
{B3FE54E9-312C-4065-9156-B597E05D2BCA}.CD_ROM|Win32.ActiveCfg = Debug|Any CPU
|
||||
{B3FE54E9-312C-4065-9156-B597E05D2BCA}.CD_ROM|Win64.ActiveCfg = Debug|Any CPU
|
||||
{B3FE54E9-312C-4065-9156-B597E05D2BCA}.CD_ROM|x64.ActiveCfg = Debug|Any CPU
|
||||
{B3FE54E9-312C-4065-9156-B597E05D2BCA}.CD_ROM|x86.ActiveCfg = Debug|Any CPU
|
||||
{B3FE54E9-312C-4065-9156-B597E05D2BCA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{B3FE54E9-312C-4065-9156-B597E05D2BCA}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{B3FE54E9-312C-4065-9156-B597E05D2BCA}.Debug|AnyOS.ActiveCfg = Debug|Any CPU
|
||||
{B3FE54E9-312C-4065-9156-B597E05D2BCA}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
|
||||
{B3FE54E9-312C-4065-9156-B597E05D2BCA}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
|
||||
{B3FE54E9-312C-4065-9156-B597E05D2BCA}.Debug|Win32.ActiveCfg = Debug|Any CPU
|
||||
{B3FE54E9-312C-4065-9156-B597E05D2BCA}.Debug|Win64.ActiveCfg = Debug|Any CPU
|
||||
{B3FE54E9-312C-4065-9156-B597E05D2BCA}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||
{B3FE54E9-312C-4065-9156-B597E05D2BCA}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{B3FE54E9-312C-4065-9156-B597E05D2BCA}.DVD-5|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{B3FE54E9-312C-4065-9156-B597E05D2BCA}.DVD-5|Any CPU.Build.0 = Debug|Any CPU
|
||||
{B3FE54E9-312C-4065-9156-B597E05D2BCA}.DVD-5|AnyOS.ActiveCfg = Debug|Any CPU
|
||||
{B3FE54E9-312C-4065-9156-B597E05D2BCA}.DVD-5|Mixed Platforms.ActiveCfg = Debug|Any CPU
|
||||
{B3FE54E9-312C-4065-9156-B597E05D2BCA}.DVD-5|Mixed Platforms.Build.0 = Debug|Any CPU
|
||||
{B3FE54E9-312C-4065-9156-B597E05D2BCA}.DVD-5|Win32.ActiveCfg = Debug|Any CPU
|
||||
{B3FE54E9-312C-4065-9156-B597E05D2BCA}.DVD-5|Win64.ActiveCfg = Debug|Any CPU
|
||||
{B3FE54E9-312C-4065-9156-B597E05D2BCA}.DVD-5|x64.ActiveCfg = Debug|Any CPU
|
||||
{B3FE54E9-312C-4065-9156-B597E05D2BCA}.DVD-5|x86.ActiveCfg = Debug|Any CPU
|
||||
{B3FE54E9-312C-4065-9156-B597E05D2BCA}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{B3FE54E9-312C-4065-9156-B597E05D2BCA}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{B3FE54E9-312C-4065-9156-B597E05D2BCA}.Release|AnyOS.ActiveCfg = Release|Any CPU
|
||||
{B3FE54E9-312C-4065-9156-B597E05D2BCA}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
|
||||
{B3FE54E9-312C-4065-9156-B597E05D2BCA}.Release|Mixed Platforms.Build.0 = Release|Any CPU
|
||||
{B3FE54E9-312C-4065-9156-B597E05D2BCA}.Release|Win32.ActiveCfg = Release|Any CPU
|
||||
{B3FE54E9-312C-4065-9156-B597E05D2BCA}.Release|Win64.ActiveCfg = Release|Any CPU
|
||||
{B3FE54E9-312C-4065-9156-B597E05D2BCA}.Release|x64.ActiveCfg = Release|Any CPU
|
||||
{B3FE54E9-312C-4065-9156-B597E05D2BCA}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{B3FE54E9-312C-4065-9156-B597E05D2BCA}.SingleImage|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{B3FE54E9-312C-4065-9156-B597E05D2BCA}.SingleImage|Any CPU.Build.0 = Debug|Any CPU
|
||||
{B3FE54E9-312C-4065-9156-B597E05D2BCA}.SingleImage|AnyOS.ActiveCfg = Debug|Any CPU
|
||||
{B3FE54E9-312C-4065-9156-B597E05D2BCA}.SingleImage|Mixed Platforms.ActiveCfg = Debug|Any CPU
|
||||
{B3FE54E9-312C-4065-9156-B597E05D2BCA}.SingleImage|Mixed Platforms.Build.0 = Debug|Any CPU
|
||||
{B3FE54E9-312C-4065-9156-B597E05D2BCA}.SingleImage|Win32.ActiveCfg = Debug|Any CPU
|
||||
{B3FE54E9-312C-4065-9156-B597E05D2BCA}.SingleImage|Win64.ActiveCfg = Debug|Any CPU
|
||||
{B3FE54E9-312C-4065-9156-B597E05D2BCA}.SingleImage|x64.ActiveCfg = Debug|Any CPU
|
||||
{B3FE54E9-312C-4065-9156-B597E05D2BCA}.SingleImage|x86.ActiveCfg = Debug|Any CPU
|
||||
{455E7D70-1C85-4D7F-9F01-DC801B8B8C34}.CD_ROM|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{455E7D70-1C85-4D7F-9F01-DC801B8B8C34}.CD_ROM|Any CPU.Build.0 = Debug|Any CPU
|
||||
{455E7D70-1C85-4D7F-9F01-DC801B8B8C34}.CD_ROM|AnyOS.ActiveCfg = Debug|Any CPU
|
||||
{455E7D70-1C85-4D7F-9F01-DC801B8B8C34}.CD_ROM|Mixed Platforms.ActiveCfg = Debug|Any CPU
|
||||
{455E7D70-1C85-4D7F-9F01-DC801B8B8C34}.CD_ROM|Mixed Platforms.Build.0 = Debug|Any CPU
|
||||
{455E7D70-1C85-4D7F-9F01-DC801B8B8C34}.CD_ROM|Win32.ActiveCfg = Debug|Any CPU
|
||||
{455E7D70-1C85-4D7F-9F01-DC801B8B8C34}.CD_ROM|Win64.ActiveCfg = Debug|Any CPU
|
||||
{455E7D70-1C85-4D7F-9F01-DC801B8B8C34}.CD_ROM|x64.ActiveCfg = Debug|Any CPU
|
||||
{455E7D70-1C85-4D7F-9F01-DC801B8B8C34}.CD_ROM|x86.ActiveCfg = Debug|Any CPU
|
||||
{455E7D70-1C85-4D7F-9F01-DC801B8B8C34}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{455E7D70-1C85-4D7F-9F01-DC801B8B8C34}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{455E7D70-1C85-4D7F-9F01-DC801B8B8C34}.Debug|AnyOS.ActiveCfg = Debug|Any CPU
|
||||
{455E7D70-1C85-4D7F-9F01-DC801B8B8C34}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
|
||||
{455E7D70-1C85-4D7F-9F01-DC801B8B8C34}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
|
||||
{455E7D70-1C85-4D7F-9F01-DC801B8B8C34}.Debug|Win32.ActiveCfg = Debug|Any CPU
|
||||
{455E7D70-1C85-4D7F-9F01-DC801B8B8C34}.Debug|Win64.ActiveCfg = Debug|Any CPU
|
||||
{455E7D70-1C85-4D7F-9F01-DC801B8B8C34}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||
{455E7D70-1C85-4D7F-9F01-DC801B8B8C34}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{455E7D70-1C85-4D7F-9F01-DC801B8B8C34}.DVD-5|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{455E7D70-1C85-4D7F-9F01-DC801B8B8C34}.DVD-5|Any CPU.Build.0 = Debug|Any CPU
|
||||
{455E7D70-1C85-4D7F-9F01-DC801B8B8C34}.DVD-5|AnyOS.ActiveCfg = Debug|Any CPU
|
||||
{455E7D70-1C85-4D7F-9F01-DC801B8B8C34}.DVD-5|Mixed Platforms.ActiveCfg = Debug|Any CPU
|
||||
{455E7D70-1C85-4D7F-9F01-DC801B8B8C34}.DVD-5|Mixed Platforms.Build.0 = Debug|Any CPU
|
||||
{455E7D70-1C85-4D7F-9F01-DC801B8B8C34}.DVD-5|Win32.ActiveCfg = Debug|Any CPU
|
||||
{455E7D70-1C85-4D7F-9F01-DC801B8B8C34}.DVD-5|Win64.ActiveCfg = Debug|Any CPU
|
||||
{455E7D70-1C85-4D7F-9F01-DC801B8B8C34}.DVD-5|x64.ActiveCfg = Debug|Any CPU
|
||||
{455E7D70-1C85-4D7F-9F01-DC801B8B8C34}.DVD-5|x86.ActiveCfg = Debug|Any CPU
|
||||
{455E7D70-1C85-4D7F-9F01-DC801B8B8C34}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{455E7D70-1C85-4D7F-9F01-DC801B8B8C34}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{455E7D70-1C85-4D7F-9F01-DC801B8B8C34}.Release|AnyOS.ActiveCfg = Release|Any CPU
|
||||
{455E7D70-1C85-4D7F-9F01-DC801B8B8C34}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
|
||||
{455E7D70-1C85-4D7F-9F01-DC801B8B8C34}.Release|Mixed Platforms.Build.0 = Release|Any CPU
|
||||
{455E7D70-1C85-4D7F-9F01-DC801B8B8C34}.Release|Win32.ActiveCfg = Release|Any CPU
|
||||
{455E7D70-1C85-4D7F-9F01-DC801B8B8C34}.Release|Win64.ActiveCfg = Release|Any CPU
|
||||
{455E7D70-1C85-4D7F-9F01-DC801B8B8C34}.Release|x64.ActiveCfg = Release|Any CPU
|
||||
{455E7D70-1C85-4D7F-9F01-DC801B8B8C34}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{455E7D70-1C85-4D7F-9F01-DC801B8B8C34}.SingleImage|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{455E7D70-1C85-4D7F-9F01-DC801B8B8C34}.SingleImage|Any CPU.Build.0 = Debug|Any CPU
|
||||
{455E7D70-1C85-4D7F-9F01-DC801B8B8C34}.SingleImage|AnyOS.ActiveCfg = Debug|Any CPU
|
||||
{455E7D70-1C85-4D7F-9F01-DC801B8B8C34}.SingleImage|Mixed Platforms.ActiveCfg = Debug|Any CPU
|
||||
{455E7D70-1C85-4D7F-9F01-DC801B8B8C34}.SingleImage|Mixed Platforms.Build.0 = Debug|Any CPU
|
||||
{455E7D70-1C85-4D7F-9F01-DC801B8B8C34}.SingleImage|Win32.ActiveCfg = Debug|Any CPU
|
||||
{455E7D70-1C85-4D7F-9F01-DC801B8B8C34}.SingleImage|Win64.ActiveCfg = Debug|Any CPU
|
||||
{455E7D70-1C85-4D7F-9F01-DC801B8B8C34}.SingleImage|x64.ActiveCfg = Debug|Any CPU
|
||||
{455E7D70-1C85-4D7F-9F01-DC801B8B8C34}.SingleImage|x86.ActiveCfg = Debug|Any CPU
|
||||
{81947E6D-4614-468F-B75B-EE61736D5BAA}.CD_ROM|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{81947E6D-4614-468F-B75B-EE61736D5BAA}.CD_ROM|Any CPU.Build.0 = Debug|Any CPU
|
||||
{81947E6D-4614-468F-B75B-EE61736D5BAA}.CD_ROM|AnyOS.ActiveCfg = Debug|Any CPU
|
||||
{81947E6D-4614-468F-B75B-EE61736D5BAA}.CD_ROM|Mixed Platforms.ActiveCfg = Debug|Any CPU
|
||||
{81947E6D-4614-468F-B75B-EE61736D5BAA}.CD_ROM|Mixed Platforms.Build.0 = Debug|Any CPU
|
||||
{81947E6D-4614-468F-B75B-EE61736D5BAA}.CD_ROM|Win32.ActiveCfg = Debug|Any CPU
|
||||
{81947E6D-4614-468F-B75B-EE61736D5BAA}.CD_ROM|Win64.ActiveCfg = Debug|Any CPU
|
||||
{81947E6D-4614-468F-B75B-EE61736D5BAA}.CD_ROM|x64.ActiveCfg = Debug|Any CPU
|
||||
{81947E6D-4614-468F-B75B-EE61736D5BAA}.CD_ROM|x86.ActiveCfg = Debug|Any CPU
|
||||
{81947E6D-4614-468F-B75B-EE61736D5BAA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{81947E6D-4614-468F-B75B-EE61736D5BAA}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{81947E6D-4614-468F-B75B-EE61736D5BAA}.Debug|AnyOS.ActiveCfg = Debug|Any CPU
|
||||
{81947E6D-4614-468F-B75B-EE61736D5BAA}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
|
||||
{81947E6D-4614-468F-B75B-EE61736D5BAA}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
|
||||
{81947E6D-4614-468F-B75B-EE61736D5BAA}.Debug|Win32.ActiveCfg = Debug|Any CPU
|
||||
{81947E6D-4614-468F-B75B-EE61736D5BAA}.Debug|Win64.ActiveCfg = Debug|Any CPU
|
||||
{81947E6D-4614-468F-B75B-EE61736D5BAA}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||
{81947E6D-4614-468F-B75B-EE61736D5BAA}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{81947E6D-4614-468F-B75B-EE61736D5BAA}.DVD-5|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{81947E6D-4614-468F-B75B-EE61736D5BAA}.DVD-5|Any CPU.Build.0 = Debug|Any CPU
|
||||
{81947E6D-4614-468F-B75B-EE61736D5BAA}.DVD-5|AnyOS.ActiveCfg = Debug|Any CPU
|
||||
{81947E6D-4614-468F-B75B-EE61736D5BAA}.DVD-5|Mixed Platforms.ActiveCfg = Debug|Any CPU
|
||||
{81947E6D-4614-468F-B75B-EE61736D5BAA}.DVD-5|Mixed Platforms.Build.0 = Debug|Any CPU
|
||||
{81947E6D-4614-468F-B75B-EE61736D5BAA}.DVD-5|Win32.ActiveCfg = Debug|Any CPU
|
||||
{81947E6D-4614-468F-B75B-EE61736D5BAA}.DVD-5|Win64.ActiveCfg = Debug|Any CPU
|
||||
{81947E6D-4614-468F-B75B-EE61736D5BAA}.DVD-5|x64.ActiveCfg = Debug|Any CPU
|
||||
{81947E6D-4614-468F-B75B-EE61736D5BAA}.DVD-5|x86.ActiveCfg = Debug|Any CPU
|
||||
{81947E6D-4614-468F-B75B-EE61736D5BAA}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{81947E6D-4614-468F-B75B-EE61736D5BAA}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{81947E6D-4614-468F-B75B-EE61736D5BAA}.Release|AnyOS.ActiveCfg = Release|Any CPU
|
||||
{81947E6D-4614-468F-B75B-EE61736D5BAA}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
|
||||
{81947E6D-4614-468F-B75B-EE61736D5BAA}.Release|Mixed Platforms.Build.0 = Release|Any CPU
|
||||
{81947E6D-4614-468F-B75B-EE61736D5BAA}.Release|Win32.ActiveCfg = Release|Any CPU
|
||||
{81947E6D-4614-468F-B75B-EE61736D5BAA}.Release|Win64.ActiveCfg = Release|Any CPU
|
||||
{81947E6D-4614-468F-B75B-EE61736D5BAA}.Release|x64.ActiveCfg = Release|Any CPU
|
||||
{81947E6D-4614-468F-B75B-EE61736D5BAA}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{81947E6D-4614-468F-B75B-EE61736D5BAA}.SingleImage|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{81947E6D-4614-468F-B75B-EE61736D5BAA}.SingleImage|Any CPU.Build.0 = Debug|Any CPU
|
||||
{81947E6D-4614-468F-B75B-EE61736D5BAA}.SingleImage|AnyOS.ActiveCfg = Debug|Any CPU
|
||||
{81947E6D-4614-468F-B75B-EE61736D5BAA}.SingleImage|Mixed Platforms.ActiveCfg = Debug|Any CPU
|
||||
{81947E6D-4614-468F-B75B-EE61736D5BAA}.SingleImage|Mixed Platforms.Build.0 = Debug|Any CPU
|
||||
{81947E6D-4614-468F-B75B-EE61736D5BAA}.SingleImage|Win32.ActiveCfg = Debug|Any CPU
|
||||
{81947E6D-4614-468F-B75B-EE61736D5BAA}.SingleImage|Win64.ActiveCfg = Debug|Any CPU
|
||||
{81947E6D-4614-468F-B75B-EE61736D5BAA}.SingleImage|x64.ActiveCfg = Debug|Any CPU
|
||||
{81947E6D-4614-468F-B75B-EE61736D5BAA}.SingleImage|x86.ActiveCfg = Debug|Any CPU
|
||||
{EAD895D3-384F-4078-9603-DAC343E0E89D}.CD_ROM|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{EAD895D3-384F-4078-9603-DAC343E0E89D}.CD_ROM|Any CPU.Build.0 = Release|Any CPU
|
||||
{EAD895D3-384F-4078-9603-DAC343E0E89D}.CD_ROM|AnyOS.ActiveCfg = Release|Any CPU
|
||||
{EAD895D3-384F-4078-9603-DAC343E0E89D}.CD_ROM|Mixed Platforms.ActiveCfg = Release|Any CPU
|
||||
{EAD895D3-384F-4078-9603-DAC343E0E89D}.CD_ROM|Mixed Platforms.Build.0 = Release|Any CPU
|
||||
{EAD895D3-384F-4078-9603-DAC343E0E89D}.CD_ROM|Win32.ActiveCfg = Release|Any CPU
|
||||
{EAD895D3-384F-4078-9603-DAC343E0E89D}.CD_ROM|Win64.ActiveCfg = Release|Any CPU
|
||||
{EAD895D3-384F-4078-9603-DAC343E0E89D}.CD_ROM|x64.ActiveCfg = Release|Any CPU
|
||||
{EAD895D3-384F-4078-9603-DAC343E0E89D}.CD_ROM|x86.ActiveCfg = Release|Any CPU
|
||||
{EAD895D3-384F-4078-9603-DAC343E0E89D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{EAD895D3-384F-4078-9603-DAC343E0E89D}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{EAD895D3-384F-4078-9603-DAC343E0E89D}.Debug|AnyOS.ActiveCfg = Debug|Any CPU
|
||||
{EAD895D3-384F-4078-9603-DAC343E0E89D}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
|
||||
{EAD895D3-384F-4078-9603-DAC343E0E89D}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
|
||||
{EAD895D3-384F-4078-9603-DAC343E0E89D}.Debug|Win32.ActiveCfg = Debug|Any CPU
|
||||
{EAD895D3-384F-4078-9603-DAC343E0E89D}.Debug|Win64.ActiveCfg = Debug|Any CPU
|
||||
{EAD895D3-384F-4078-9603-DAC343E0E89D}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||
{EAD895D3-384F-4078-9603-DAC343E0E89D}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{EAD895D3-384F-4078-9603-DAC343E0E89D}.DVD-5|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{EAD895D3-384F-4078-9603-DAC343E0E89D}.DVD-5|Any CPU.Build.0 = Debug|Any CPU
|
||||
{EAD895D3-384F-4078-9603-DAC343E0E89D}.DVD-5|AnyOS.ActiveCfg = Debug|Any CPU
|
||||
{EAD895D3-384F-4078-9603-DAC343E0E89D}.DVD-5|Mixed Platforms.ActiveCfg = Debug|Any CPU
|
||||
{EAD895D3-384F-4078-9603-DAC343E0E89D}.DVD-5|Mixed Platforms.Build.0 = Debug|Any CPU
|
||||
{EAD895D3-384F-4078-9603-DAC343E0E89D}.DVD-5|Win32.ActiveCfg = Debug|Any CPU
|
||||
{EAD895D3-384F-4078-9603-DAC343E0E89D}.DVD-5|Win64.ActiveCfg = Debug|Any CPU
|
||||
{EAD895D3-384F-4078-9603-DAC343E0E89D}.DVD-5|x64.ActiveCfg = Debug|Any CPU
|
||||
{EAD895D3-384F-4078-9603-DAC343E0E89D}.DVD-5|x86.ActiveCfg = Debug|Any CPU
|
||||
{EAD895D3-384F-4078-9603-DAC343E0E89D}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{EAD895D3-384F-4078-9603-DAC343E0E89D}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{EAD895D3-384F-4078-9603-DAC343E0E89D}.Release|AnyOS.ActiveCfg = Release|Any CPU
|
||||
{EAD895D3-384F-4078-9603-DAC343E0E89D}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
|
||||
{EAD895D3-384F-4078-9603-DAC343E0E89D}.Release|Mixed Platforms.Build.0 = Release|Any CPU
|
||||
{EAD895D3-384F-4078-9603-DAC343E0E89D}.Release|Win32.ActiveCfg = Release|Any CPU
|
||||
{EAD895D3-384F-4078-9603-DAC343E0E89D}.Release|Win64.ActiveCfg = Release|Any CPU
|
||||
{EAD895D3-384F-4078-9603-DAC343E0E89D}.Release|x64.ActiveCfg = Release|Any CPU
|
||||
{EAD895D3-384F-4078-9603-DAC343E0E89D}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{EAD895D3-384F-4078-9603-DAC343E0E89D}.SingleImage|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{EAD895D3-384F-4078-9603-DAC343E0E89D}.SingleImage|Any CPU.Build.0 = Release|Any CPU
|
||||
{EAD895D3-384F-4078-9603-DAC343E0E89D}.SingleImage|AnyOS.ActiveCfg = Release|Any CPU
|
||||
{EAD895D3-384F-4078-9603-DAC343E0E89D}.SingleImage|Mixed Platforms.ActiveCfg = Release|Any CPU
|
||||
{EAD895D3-384F-4078-9603-DAC343E0E89D}.SingleImage|Mixed Platforms.Build.0 = Release|Any CPU
|
||||
{EAD895D3-384F-4078-9603-DAC343E0E89D}.SingleImage|Win32.ActiveCfg = Release|Any CPU
|
||||
{EAD895D3-384F-4078-9603-DAC343E0E89D}.SingleImage|Win64.ActiveCfg = Release|Any CPU
|
||||
{EAD895D3-384F-4078-9603-DAC343E0E89D}.SingleImage|x64.ActiveCfg = Release|Any CPU
|
||||
{EAD895D3-384F-4078-9603-DAC343E0E89D}.SingleImage|x86.ActiveCfg = Release|Any CPU
|
||||
{93D3970D-9C6C-4250-BE8F-7CF974DEAB68}.CD_ROM|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{93D3970D-9C6C-4250-BE8F-7CF974DEAB68}.CD_ROM|Any CPU.Build.0 = Release|Any CPU
|
||||
{93D3970D-9C6C-4250-BE8F-7CF974DEAB68}.CD_ROM|AnyOS.ActiveCfg = Release|Any CPU
|
||||
{93D3970D-9C6C-4250-BE8F-7CF974DEAB68}.CD_ROM|Mixed Platforms.ActiveCfg = Release|Any CPU
|
||||
{93D3970D-9C6C-4250-BE8F-7CF974DEAB68}.CD_ROM|Mixed Platforms.Build.0 = Release|Any CPU
|
||||
{93D3970D-9C6C-4250-BE8F-7CF974DEAB68}.CD_ROM|Win32.ActiveCfg = Release|Any CPU
|
||||
{93D3970D-9C6C-4250-BE8F-7CF974DEAB68}.CD_ROM|Win64.ActiveCfg = Release|Any CPU
|
||||
{93D3970D-9C6C-4250-BE8F-7CF974DEAB68}.CD_ROM|x64.ActiveCfg = Release|Any CPU
|
||||
{93D3970D-9C6C-4250-BE8F-7CF974DEAB68}.CD_ROM|x86.ActiveCfg = Release|Any CPU
|
||||
{93D3970D-9C6C-4250-BE8F-7CF974DEAB68}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{93D3970D-9C6C-4250-BE8F-7CF974DEAB68}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{93D3970D-9C6C-4250-BE8F-7CF974DEAB68}.Debug|AnyOS.ActiveCfg = Debug|Any CPU
|
||||
{93D3970D-9C6C-4250-BE8F-7CF974DEAB68}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
|
||||
{93D3970D-9C6C-4250-BE8F-7CF974DEAB68}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
|
||||
{93D3970D-9C6C-4250-BE8F-7CF974DEAB68}.Debug|Win32.ActiveCfg = Debug|Any CPU
|
||||
{93D3970D-9C6C-4250-BE8F-7CF974DEAB68}.Debug|Win64.ActiveCfg = Debug|Any CPU
|
||||
{93D3970D-9C6C-4250-BE8F-7CF974DEAB68}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||
{93D3970D-9C6C-4250-BE8F-7CF974DEAB68}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{93D3970D-9C6C-4250-BE8F-7CF974DEAB68}.DVD-5|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{93D3970D-9C6C-4250-BE8F-7CF974DEAB68}.DVD-5|Any CPU.Build.0 = Debug|Any CPU
|
||||
{93D3970D-9C6C-4250-BE8F-7CF974DEAB68}.DVD-5|AnyOS.ActiveCfg = Debug|Any CPU
|
||||
{93D3970D-9C6C-4250-BE8F-7CF974DEAB68}.DVD-5|Mixed Platforms.ActiveCfg = Debug|Any CPU
|
||||
{93D3970D-9C6C-4250-BE8F-7CF974DEAB68}.DVD-5|Mixed Platforms.Build.0 = Debug|Any CPU
|
||||
{93D3970D-9C6C-4250-BE8F-7CF974DEAB68}.DVD-5|Win32.ActiveCfg = Debug|Any CPU
|
||||
{93D3970D-9C6C-4250-BE8F-7CF974DEAB68}.DVD-5|Win64.ActiveCfg = Debug|Any CPU
|
||||
{93D3970D-9C6C-4250-BE8F-7CF974DEAB68}.DVD-5|x64.ActiveCfg = Debug|Any CPU
|
||||
{93D3970D-9C6C-4250-BE8F-7CF974DEAB68}.DVD-5|x86.ActiveCfg = Debug|Any CPU
|
||||
{93D3970D-9C6C-4250-BE8F-7CF974DEAB68}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{93D3970D-9C6C-4250-BE8F-7CF974DEAB68}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{93D3970D-9C6C-4250-BE8F-7CF974DEAB68}.Release|AnyOS.ActiveCfg = Release|Any CPU
|
||||
{93D3970D-9C6C-4250-BE8F-7CF974DEAB68}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
|
||||
{93D3970D-9C6C-4250-BE8F-7CF974DEAB68}.Release|Mixed Platforms.Build.0 = Release|Any CPU
|
||||
{93D3970D-9C6C-4250-BE8F-7CF974DEAB68}.Release|Win32.ActiveCfg = Release|Any CPU
|
||||
{93D3970D-9C6C-4250-BE8F-7CF974DEAB68}.Release|Win64.ActiveCfg = Release|Any CPU
|
||||
{93D3970D-9C6C-4250-BE8F-7CF974DEAB68}.Release|x64.ActiveCfg = Release|Any CPU
|
||||
{93D3970D-9C6C-4250-BE8F-7CF974DEAB68}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{93D3970D-9C6C-4250-BE8F-7CF974DEAB68}.SingleImage|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{93D3970D-9C6C-4250-BE8F-7CF974DEAB68}.SingleImage|Any CPU.Build.0 = Release|Any CPU
|
||||
{93D3970D-9C6C-4250-BE8F-7CF974DEAB68}.SingleImage|AnyOS.ActiveCfg = Release|Any CPU
|
||||
{93D3970D-9C6C-4250-BE8F-7CF974DEAB68}.SingleImage|Mixed Platforms.ActiveCfg = Release|Any CPU
|
||||
{93D3970D-9C6C-4250-BE8F-7CF974DEAB68}.SingleImage|Mixed Platforms.Build.0 = Release|Any CPU
|
||||
{93D3970D-9C6C-4250-BE8F-7CF974DEAB68}.SingleImage|Win32.ActiveCfg = Release|Any CPU
|
||||
{93D3970D-9C6C-4250-BE8F-7CF974DEAB68}.SingleImage|Win64.ActiveCfg = Release|Any CPU
|
||||
{93D3970D-9C6C-4250-BE8F-7CF974DEAB68}.SingleImage|x64.ActiveCfg = Release|Any CPU
|
||||
{93D3970D-9C6C-4250-BE8F-7CF974DEAB68}.SingleImage|x86.ActiveCfg = Release|Any CPU
|
||||
{5CFFE837-B679-4C6C-A223-97A61DD0E11A}.CD_ROM|Any CPU.ActiveCfg = Release
|
||||
{5CFFE837-B679-4C6C-A223-97A61DD0E11A}.CD_ROM|Any CPU.Build.0 = Release
|
||||
{5CFFE837-B679-4C6C-A223-97A61DD0E11A}.CD_ROM|AnyOS.ActiveCfg = Release
|
||||
{5CFFE837-B679-4C6C-A223-97A61DD0E11A}.CD_ROM|AnyOS.Build.0 = Release
|
||||
{5CFFE837-B679-4C6C-A223-97A61DD0E11A}.CD_ROM|Mixed Platforms.ActiveCfg = Release
|
||||
{5CFFE837-B679-4C6C-A223-97A61DD0E11A}.CD_ROM|Mixed Platforms.Build.0 = Release
|
||||
{5CFFE837-B679-4C6C-A223-97A61DD0E11A}.CD_ROM|Win32.ActiveCfg = Release
|
||||
{5CFFE837-B679-4C6C-A223-97A61DD0E11A}.CD_ROM|Win32.Build.0 = Release
|
||||
{5CFFE837-B679-4C6C-A223-97A61DD0E11A}.CD_ROM|Win64.ActiveCfg = Release
|
||||
{5CFFE837-B679-4C6C-A223-97A61DD0E11A}.CD_ROM|Win64.Build.0 = Release
|
||||
{5CFFE837-B679-4C6C-A223-97A61DD0E11A}.CD_ROM|x64.ActiveCfg = Release
|
||||
{5CFFE837-B679-4C6C-A223-97A61DD0E11A}.CD_ROM|x64.Build.0 = Release
|
||||
{5CFFE837-B679-4C6C-A223-97A61DD0E11A}.CD_ROM|x86.ActiveCfg = Release
|
||||
{5CFFE837-B679-4C6C-A223-97A61DD0E11A}.CD_ROM|x86.Build.0 = Release
|
||||
{5CFFE837-B679-4C6C-A223-97A61DD0E11A}.Debug|Any CPU.ActiveCfg = Debug
|
||||
{5CFFE837-B679-4C6C-A223-97A61DD0E11A}.Debug|AnyOS.ActiveCfg = Debug
|
||||
{5CFFE837-B679-4C6C-A223-97A61DD0E11A}.Debug|AnyOS.Build.0 = Debug
|
||||
{5CFFE837-B679-4C6C-A223-97A61DD0E11A}.Debug|Mixed Platforms.ActiveCfg = Debug
|
||||
{5CFFE837-B679-4C6C-A223-97A61DD0E11A}.Debug|Win32.ActiveCfg = Debug
|
||||
{5CFFE837-B679-4C6C-A223-97A61DD0E11A}.Debug|Win64.ActiveCfg = Debug
|
||||
{5CFFE837-B679-4C6C-A223-97A61DD0E11A}.Debug|Win64.Build.0 = Debug
|
||||
{5CFFE837-B679-4C6C-A223-97A61DD0E11A}.Debug|x64.ActiveCfg = Debug
|
||||
{5CFFE837-B679-4C6C-A223-97A61DD0E11A}.Debug|x86.ActiveCfg = Debug
|
||||
{5CFFE837-B679-4C6C-A223-97A61DD0E11A}.DVD-5|Any CPU.ActiveCfg = Debug
|
||||
{5CFFE837-B679-4C6C-A223-97A61DD0E11A}.DVD-5|Any CPU.Build.0 = Debug
|
||||
{5CFFE837-B679-4C6C-A223-97A61DD0E11A}.DVD-5|AnyOS.ActiveCfg = Debug
|
||||
{5CFFE837-B679-4C6C-A223-97A61DD0E11A}.DVD-5|AnyOS.Build.0 = Debug
|
||||
{5CFFE837-B679-4C6C-A223-97A61DD0E11A}.DVD-5|Mixed Platforms.ActiveCfg = Debug
|
||||
{5CFFE837-B679-4C6C-A223-97A61DD0E11A}.DVD-5|Mixed Platforms.Build.0 = Debug
|
||||
{5CFFE837-B679-4C6C-A223-97A61DD0E11A}.DVD-5|Win32.ActiveCfg = Debug
|
||||
{5CFFE837-B679-4C6C-A223-97A61DD0E11A}.DVD-5|Win32.Build.0 = Debug
|
||||
{5CFFE837-B679-4C6C-A223-97A61DD0E11A}.DVD-5|Win64.ActiveCfg = Debug
|
||||
{5CFFE837-B679-4C6C-A223-97A61DD0E11A}.DVD-5|Win64.Build.0 = Debug
|
||||
{5CFFE837-B679-4C6C-A223-97A61DD0E11A}.DVD-5|x64.ActiveCfg = Debug
|
||||
{5CFFE837-B679-4C6C-A223-97A61DD0E11A}.DVD-5|x64.Build.0 = Debug
|
||||
{5CFFE837-B679-4C6C-A223-97A61DD0E11A}.DVD-5|x86.ActiveCfg = Debug
|
||||
{5CFFE837-B679-4C6C-A223-97A61DD0E11A}.DVD-5|x86.Build.0 = Debug
|
||||
{5CFFE837-B679-4C6C-A223-97A61DD0E11A}.Release|Any CPU.ActiveCfg = Release
|
||||
{5CFFE837-B679-4C6C-A223-97A61DD0E11A}.Release|AnyOS.ActiveCfg = Release
|
||||
{5CFFE837-B679-4C6C-A223-97A61DD0E11A}.Release|AnyOS.Build.0 = Release
|
||||
{5CFFE837-B679-4C6C-A223-97A61DD0E11A}.Release|Mixed Platforms.ActiveCfg = Release
|
||||
{5CFFE837-B679-4C6C-A223-97A61DD0E11A}.Release|Win32.ActiveCfg = Release
|
||||
{5CFFE837-B679-4C6C-A223-97A61DD0E11A}.Release|Win64.ActiveCfg = Release
|
||||
{5CFFE837-B679-4C6C-A223-97A61DD0E11A}.Release|Win64.Build.0 = Release
|
||||
{5CFFE837-B679-4C6C-A223-97A61DD0E11A}.Release|x64.ActiveCfg = Release
|
||||
{5CFFE837-B679-4C6C-A223-97A61DD0E11A}.Release|x86.ActiveCfg = Release
|
||||
{5CFFE837-B679-4C6C-A223-97A61DD0E11A}.SingleImage|Any CPU.ActiveCfg = Release
|
||||
{5CFFE837-B679-4C6C-A223-97A61DD0E11A}.SingleImage|Any CPU.Build.0 = Release
|
||||
{5CFFE837-B679-4C6C-A223-97A61DD0E11A}.SingleImage|AnyOS.ActiveCfg = Release
|
||||
{5CFFE837-B679-4C6C-A223-97A61DD0E11A}.SingleImage|AnyOS.Build.0 = Release
|
||||
{5CFFE837-B679-4C6C-A223-97A61DD0E11A}.SingleImage|Mixed Platforms.ActiveCfg = Release
|
||||
{5CFFE837-B679-4C6C-A223-97A61DD0E11A}.SingleImage|Mixed Platforms.Build.0 = Release
|
||||
{5CFFE837-B679-4C6C-A223-97A61DD0E11A}.SingleImage|Win32.ActiveCfg = Release
|
||||
{5CFFE837-B679-4C6C-A223-97A61DD0E11A}.SingleImage|Win32.Build.0 = Release
|
||||
{5CFFE837-B679-4C6C-A223-97A61DD0E11A}.SingleImage|Win64.ActiveCfg = Release
|
||||
{5CFFE837-B679-4C6C-A223-97A61DD0E11A}.SingleImage|Win64.Build.0 = Release
|
||||
{5CFFE837-B679-4C6C-A223-97A61DD0E11A}.SingleImage|x64.ActiveCfg = Release
|
||||
{5CFFE837-B679-4C6C-A223-97A61DD0E11A}.SingleImage|x64.Build.0 = Release
|
||||
{5CFFE837-B679-4C6C-A223-97A61DD0E11A}.SingleImage|x86.ActiveCfg = Release
|
||||
{5CFFE837-B679-4C6C-A223-97A61DD0E11A}.SingleImage|x86.Build.0 = Release
|
||||
{6C115EF9-F48B-4606-9361-B09E337C9705}.CD_ROM|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{6C115EF9-F48B-4606-9361-B09E337C9705}.CD_ROM|Any CPU.Build.0 = Release|Any CPU
|
||||
{6C115EF9-F48B-4606-9361-B09E337C9705}.CD_ROM|AnyOS.ActiveCfg = Release|Any CPU
|
||||
{6C115EF9-F48B-4606-9361-B09E337C9705}.CD_ROM|Mixed Platforms.ActiveCfg = Release|Any CPU
|
||||
{6C115EF9-F48B-4606-9361-B09E337C9705}.CD_ROM|Mixed Platforms.Build.0 = Release|Any CPU
|
||||
{6C115EF9-F48B-4606-9361-B09E337C9705}.CD_ROM|Win32.ActiveCfg = Release|Any CPU
|
||||
{6C115EF9-F48B-4606-9361-B09E337C9705}.CD_ROM|Win64.ActiveCfg = Release|Any CPU
|
||||
{6C115EF9-F48B-4606-9361-B09E337C9705}.CD_ROM|x64.ActiveCfg = Release|Any CPU
|
||||
{6C115EF9-F48B-4606-9361-B09E337C9705}.CD_ROM|x86.ActiveCfg = Release|Any CPU
|
||||
{6C115EF9-F48B-4606-9361-B09E337C9705}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{6C115EF9-F48B-4606-9361-B09E337C9705}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{6C115EF9-F48B-4606-9361-B09E337C9705}.Debug|AnyOS.ActiveCfg = Debug|Any CPU
|
||||
{6C115EF9-F48B-4606-9361-B09E337C9705}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
|
||||
{6C115EF9-F48B-4606-9361-B09E337C9705}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
|
||||
{6C115EF9-F48B-4606-9361-B09E337C9705}.Debug|Win32.ActiveCfg = Debug|Any CPU
|
||||
{6C115EF9-F48B-4606-9361-B09E337C9705}.Debug|Win64.ActiveCfg = Debug|Any CPU
|
||||
{6C115EF9-F48B-4606-9361-B09E337C9705}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||
{6C115EF9-F48B-4606-9361-B09E337C9705}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{6C115EF9-F48B-4606-9361-B09E337C9705}.DVD-5|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{6C115EF9-F48B-4606-9361-B09E337C9705}.DVD-5|Any CPU.Build.0 = Debug|Any CPU
|
||||
{6C115EF9-F48B-4606-9361-B09E337C9705}.DVD-5|AnyOS.ActiveCfg = Debug|Any CPU
|
||||
{6C115EF9-F48B-4606-9361-B09E337C9705}.DVD-5|Mixed Platforms.ActiveCfg = Debug|Any CPU
|
||||
{6C115EF9-F48B-4606-9361-B09E337C9705}.DVD-5|Mixed Platforms.Build.0 = Debug|Any CPU
|
||||
{6C115EF9-F48B-4606-9361-B09E337C9705}.DVD-5|Win32.ActiveCfg = Debug|Any CPU
|
||||
{6C115EF9-F48B-4606-9361-B09E337C9705}.DVD-5|Win64.ActiveCfg = Debug|Any CPU
|
||||
{6C115EF9-F48B-4606-9361-B09E337C9705}.DVD-5|x64.ActiveCfg = Debug|Any CPU
|
||||
{6C115EF9-F48B-4606-9361-B09E337C9705}.DVD-5|x86.ActiveCfg = Debug|Any CPU
|
||||
{6C115EF9-F48B-4606-9361-B09E337C9705}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{6C115EF9-F48B-4606-9361-B09E337C9705}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{6C115EF9-F48B-4606-9361-B09E337C9705}.Release|AnyOS.ActiveCfg = Release|Any CPU
|
||||
{6C115EF9-F48B-4606-9361-B09E337C9705}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
|
||||
{6C115EF9-F48B-4606-9361-B09E337C9705}.Release|Mixed Platforms.Build.0 = Release|Any CPU
|
||||
{6C115EF9-F48B-4606-9361-B09E337C9705}.Release|Win32.ActiveCfg = Release|Any CPU
|
||||
{6C115EF9-F48B-4606-9361-B09E337C9705}.Release|Win64.ActiveCfg = Release|Any CPU
|
||||
{6C115EF9-F48B-4606-9361-B09E337C9705}.Release|x64.ActiveCfg = Release|Any CPU
|
||||
{6C115EF9-F48B-4606-9361-B09E337C9705}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{6C115EF9-F48B-4606-9361-B09E337C9705}.SingleImage|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{6C115EF9-F48B-4606-9361-B09E337C9705}.SingleImage|Any CPU.Build.0 = Release|Any CPU
|
||||
{6C115EF9-F48B-4606-9361-B09E337C9705}.SingleImage|AnyOS.ActiveCfg = Release|Any CPU
|
||||
{6C115EF9-F48B-4606-9361-B09E337C9705}.SingleImage|Mixed Platforms.ActiveCfg = Release|Any CPU
|
||||
{6C115EF9-F48B-4606-9361-B09E337C9705}.SingleImage|Mixed Platforms.Build.0 = Release|Any CPU
|
||||
{6C115EF9-F48B-4606-9361-B09E337C9705}.SingleImage|Win32.ActiveCfg = Release|Any CPU
|
||||
{6C115EF9-F48B-4606-9361-B09E337C9705}.SingleImage|Win64.ActiveCfg = Release|Any CPU
|
||||
{6C115EF9-F48B-4606-9361-B09E337C9705}.SingleImage|x64.ActiveCfg = Release|Any CPU
|
||||
{6C115EF9-F48B-4606-9361-B09E337C9705}.SingleImage|x86.ActiveCfg = Release|Any CPU
|
||||
{C07BFFE6-B66B-47AA-A1C2-094BBAC9AF22}.CD_ROM|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{C07BFFE6-B66B-47AA-A1C2-094BBAC9AF22}.CD_ROM|Any CPU.Build.0 = Release|Any CPU
|
||||
{C07BFFE6-B66B-47AA-A1C2-094BBAC9AF22}.CD_ROM|AnyOS.ActiveCfg = Release|Any CPU
|
||||
{C07BFFE6-B66B-47AA-A1C2-094BBAC9AF22}.CD_ROM|Mixed Platforms.ActiveCfg = Release|Any CPU
|
||||
{C07BFFE6-B66B-47AA-A1C2-094BBAC9AF22}.CD_ROM|Mixed Platforms.Build.0 = Release|Any CPU
|
||||
{C07BFFE6-B66B-47AA-A1C2-094BBAC9AF22}.CD_ROM|Win32.ActiveCfg = Release|Any CPU
|
||||
{C07BFFE6-B66B-47AA-A1C2-094BBAC9AF22}.CD_ROM|Win64.ActiveCfg = Release|Any CPU
|
||||
{C07BFFE6-B66B-47AA-A1C2-094BBAC9AF22}.CD_ROM|x64.ActiveCfg = Release|Any CPU
|
||||
{C07BFFE6-B66B-47AA-A1C2-094BBAC9AF22}.CD_ROM|x86.ActiveCfg = Release|Any CPU
|
||||
{C07BFFE6-B66B-47AA-A1C2-094BBAC9AF22}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{C07BFFE6-B66B-47AA-A1C2-094BBAC9AF22}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{C07BFFE6-B66B-47AA-A1C2-094BBAC9AF22}.Debug|AnyOS.ActiveCfg = Debug|Any CPU
|
||||
{C07BFFE6-B66B-47AA-A1C2-094BBAC9AF22}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
|
||||
{C07BFFE6-B66B-47AA-A1C2-094BBAC9AF22}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
|
||||
{C07BFFE6-B66B-47AA-A1C2-094BBAC9AF22}.Debug|Win32.ActiveCfg = Debug|Any CPU
|
||||
{C07BFFE6-B66B-47AA-A1C2-094BBAC9AF22}.Debug|Win64.ActiveCfg = Debug|Any CPU
|
||||
{C07BFFE6-B66B-47AA-A1C2-094BBAC9AF22}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||
{C07BFFE6-B66B-47AA-A1C2-094BBAC9AF22}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{C07BFFE6-B66B-47AA-A1C2-094BBAC9AF22}.DVD-5|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{C07BFFE6-B66B-47AA-A1C2-094BBAC9AF22}.DVD-5|Any CPU.Build.0 = Debug|Any CPU
|
||||
{C07BFFE6-B66B-47AA-A1C2-094BBAC9AF22}.DVD-5|AnyOS.ActiveCfg = Debug|Any CPU
|
||||
{C07BFFE6-B66B-47AA-A1C2-094BBAC9AF22}.DVD-5|Mixed Platforms.ActiveCfg = Debug|Any CPU
|
||||
{C07BFFE6-B66B-47AA-A1C2-094BBAC9AF22}.DVD-5|Mixed Platforms.Build.0 = Debug|Any CPU
|
||||
{C07BFFE6-B66B-47AA-A1C2-094BBAC9AF22}.DVD-5|Win32.ActiveCfg = Debug|Any CPU
|
||||
{C07BFFE6-B66B-47AA-A1C2-094BBAC9AF22}.DVD-5|Win64.ActiveCfg = Debug|Any CPU
|
||||
{C07BFFE6-B66B-47AA-A1C2-094BBAC9AF22}.DVD-5|x64.ActiveCfg = Debug|Any CPU
|
||||
{C07BFFE6-B66B-47AA-A1C2-094BBAC9AF22}.DVD-5|x86.ActiveCfg = Debug|Any CPU
|
||||
{C07BFFE6-B66B-47AA-A1C2-094BBAC9AF22}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{C07BFFE6-B66B-47AA-A1C2-094BBAC9AF22}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{C07BFFE6-B66B-47AA-A1C2-094BBAC9AF22}.Release|AnyOS.ActiveCfg = Release|Any CPU
|
||||
{C07BFFE6-B66B-47AA-A1C2-094BBAC9AF22}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
|
||||
{C07BFFE6-B66B-47AA-A1C2-094BBAC9AF22}.Release|Mixed Platforms.Build.0 = Release|Any CPU
|
||||
{C07BFFE6-B66B-47AA-A1C2-094BBAC9AF22}.Release|Win32.ActiveCfg = Release|Any CPU
|
||||
{C07BFFE6-B66B-47AA-A1C2-094BBAC9AF22}.Release|Win64.ActiveCfg = Release|Any CPU
|
||||
{C07BFFE6-B66B-47AA-A1C2-094BBAC9AF22}.Release|x64.ActiveCfg = Release|Any CPU
|
||||
{C07BFFE6-B66B-47AA-A1C2-094BBAC9AF22}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{C07BFFE6-B66B-47AA-A1C2-094BBAC9AF22}.SingleImage|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{C07BFFE6-B66B-47AA-A1C2-094BBAC9AF22}.SingleImage|Any CPU.Build.0 = Release|Any CPU
|
||||
{C07BFFE6-B66B-47AA-A1C2-094BBAC9AF22}.SingleImage|AnyOS.ActiveCfg = Release|Any CPU
|
||||
{C07BFFE6-B66B-47AA-A1C2-094BBAC9AF22}.SingleImage|Mixed Platforms.ActiveCfg = Release|Any CPU
|
||||
{C07BFFE6-B66B-47AA-A1C2-094BBAC9AF22}.SingleImage|Mixed Platforms.Build.0 = Release|Any CPU
|
||||
{C07BFFE6-B66B-47AA-A1C2-094BBAC9AF22}.SingleImage|Win32.ActiveCfg = Release|Any CPU
|
||||
{C07BFFE6-B66B-47AA-A1C2-094BBAC9AF22}.SingleImage|Win64.ActiveCfg = Release|Any CPU
|
||||
{C07BFFE6-B66B-47AA-A1C2-094BBAC9AF22}.SingleImage|x64.ActiveCfg = Release|Any CPU
|
||||
{C07BFFE6-B66B-47AA-A1C2-094BBAC9AF22}.SingleImage|x86.ActiveCfg = Release|Any CPU
|
||||
{8595864B-D0F6-4B1F-853D-0F38E8EE90F8}.CD_ROM|Any CPU.ActiveCfg = CD_ROM|AnyOS
|
||||
{8595864B-D0F6-4B1F-853D-0F38E8EE90F8}.CD_ROM|AnyOS.ActiveCfg = CD_ROM|AnyOS
|
||||
{8595864B-D0F6-4B1F-853D-0F38E8EE90F8}.CD_ROM|AnyOS.Build.0 = CD_ROM|AnyOS
|
||||
{8595864B-D0F6-4B1F-853D-0F38E8EE90F8}.CD_ROM|Mixed Platforms.ActiveCfg = CD_ROM|AnyOS
|
||||
{8595864B-D0F6-4B1F-853D-0F38E8EE90F8}.CD_ROM|Mixed Platforms.Build.0 = CD_ROM|AnyOS
|
||||
{8595864B-D0F6-4B1F-853D-0F38E8EE90F8}.CD_ROM|Win32.ActiveCfg = CD_ROM|Win32
|
||||
{8595864B-D0F6-4B1F-853D-0F38E8EE90F8}.CD_ROM|Win32.Build.0 = CD_ROM|Win32
|
||||
{8595864B-D0F6-4B1F-853D-0F38E8EE90F8}.CD_ROM|Win64.ActiveCfg = CD_ROM|Win64
|
||||
{8595864B-D0F6-4B1F-853D-0F38E8EE90F8}.CD_ROM|Win64.Build.0 = CD_ROM|Win64
|
||||
{8595864B-D0F6-4B1F-853D-0F38E8EE90F8}.CD_ROM|x64.ActiveCfg = CD_ROM|AnyOS
|
||||
{8595864B-D0F6-4B1F-853D-0F38E8EE90F8}.CD_ROM|x86.ActiveCfg = CD_ROM|AnyOS
|
||||
{8595864B-D0F6-4B1F-853D-0F38E8EE90F8}.Debug|Any CPU.ActiveCfg = DVD-5|AnyOS
|
||||
{8595864B-D0F6-4B1F-853D-0F38E8EE90F8}.Debug|AnyOS.ActiveCfg = DVD-5|AnyOS
|
||||
{8595864B-D0F6-4B1F-853D-0F38E8EE90F8}.Debug|AnyOS.Build.0 = DVD-5|AnyOS
|
||||
{8595864B-D0F6-4B1F-853D-0F38E8EE90F8}.Debug|Mixed Platforms.ActiveCfg = DVD-5|AnyOS
|
||||
{8595864B-D0F6-4B1F-853D-0F38E8EE90F8}.Debug|Mixed Platforms.Build.0 = DVD-5|AnyOS
|
||||
{8595864B-D0F6-4B1F-853D-0F38E8EE90F8}.Debug|Win32.ActiveCfg = DVD-5|AnyOS
|
||||
{8595864B-D0F6-4B1F-853D-0F38E8EE90F8}.Debug|Win64.ActiveCfg = DVD-5|AnyOS
|
||||
{8595864B-D0F6-4B1F-853D-0F38E8EE90F8}.Debug|x64.ActiveCfg = DVD-5|AnyOS
|
||||
{8595864B-D0F6-4B1F-853D-0F38E8EE90F8}.Debug|x86.ActiveCfg = DVD-5|AnyOS
|
||||
{8595864B-D0F6-4B1F-853D-0F38E8EE90F8}.DVD-5|Any CPU.ActiveCfg = DVD-5|AnyOS
|
||||
{8595864B-D0F6-4B1F-853D-0F38E8EE90F8}.DVD-5|AnyOS.ActiveCfg = DVD-5|AnyOS
|
||||
{8595864B-D0F6-4B1F-853D-0F38E8EE90F8}.DVD-5|AnyOS.Build.0 = DVD-5|AnyOS
|
||||
{8595864B-D0F6-4B1F-853D-0F38E8EE90F8}.DVD-5|Mixed Platforms.ActiveCfg = DVD-5|AnyOS
|
||||
{8595864B-D0F6-4B1F-853D-0F38E8EE90F8}.DVD-5|Mixed Platforms.Build.0 = DVD-5|AnyOS
|
||||
{8595864B-D0F6-4B1F-853D-0F38E8EE90F8}.DVD-5|Win32.ActiveCfg = DVD-5|Win32
|
||||
{8595864B-D0F6-4B1F-853D-0F38E8EE90F8}.DVD-5|Win32.Build.0 = DVD-5|Win32
|
||||
{8595864B-D0F6-4B1F-853D-0F38E8EE90F8}.DVD-5|Win64.ActiveCfg = DVD-5|Win64
|
||||
{8595864B-D0F6-4B1F-853D-0F38E8EE90F8}.DVD-5|Win64.Build.0 = DVD-5|Win64
|
||||
{8595864B-D0F6-4B1F-853D-0F38E8EE90F8}.DVD-5|x64.ActiveCfg = DVD-5|AnyOS
|
||||
{8595864B-D0F6-4B1F-853D-0F38E8EE90F8}.DVD-5|x86.ActiveCfg = DVD-5|AnyOS
|
||||
{8595864B-D0F6-4B1F-853D-0F38E8EE90F8}.Release|Any CPU.ActiveCfg = SingleImage|AnyOS
|
||||
{8595864B-D0F6-4B1F-853D-0F38E8EE90F8}.Release|AnyOS.ActiveCfg = SingleImage|AnyOS
|
||||
{8595864B-D0F6-4B1F-853D-0F38E8EE90F8}.Release|AnyOS.Build.0 = SingleImage|AnyOS
|
||||
{8595864B-D0F6-4B1F-853D-0F38E8EE90F8}.Release|Mixed Platforms.ActiveCfg = SingleImage|AnyOS
|
||||
{8595864B-D0F6-4B1F-853D-0F38E8EE90F8}.Release|Mixed Platforms.Build.0 = SingleImage|AnyOS
|
||||
{8595864B-D0F6-4B1F-853D-0F38E8EE90F8}.Release|Win32.ActiveCfg = SingleImage|AnyOS
|
||||
{8595864B-D0F6-4B1F-853D-0F38E8EE90F8}.Release|Win64.ActiveCfg = SingleImage|AnyOS
|
||||
{8595864B-D0F6-4B1F-853D-0F38E8EE90F8}.Release|x64.ActiveCfg = SingleImage|AnyOS
|
||||
{8595864B-D0F6-4B1F-853D-0F38E8EE90F8}.Release|x86.ActiveCfg = SingleImage|AnyOS
|
||||
{8595864B-D0F6-4B1F-853D-0F38E8EE90F8}.SingleImage|Any CPU.ActiveCfg = SingleImage|AnyOS
|
||||
{8595864B-D0F6-4B1F-853D-0F38E8EE90F8}.SingleImage|AnyOS.ActiveCfg = SingleImage|AnyOS
|
||||
{8595864B-D0F6-4B1F-853D-0F38E8EE90F8}.SingleImage|AnyOS.Build.0 = SingleImage|AnyOS
|
||||
{8595864B-D0F6-4B1F-853D-0F38E8EE90F8}.SingleImage|Mixed Platforms.ActiveCfg = SingleImage|AnyOS
|
||||
{8595864B-D0F6-4B1F-853D-0F38E8EE90F8}.SingleImage|Mixed Platforms.Build.0 = SingleImage|AnyOS
|
||||
{8595864B-D0F6-4B1F-853D-0F38E8EE90F8}.SingleImage|Win32.ActiveCfg = SingleImage|Win32
|
||||
{8595864B-D0F6-4B1F-853D-0F38E8EE90F8}.SingleImage|Win32.Build.0 = SingleImage|Win32
|
||||
{8595864B-D0F6-4B1F-853D-0F38E8EE90F8}.SingleImage|Win64.ActiveCfg = SingleImage|Win64
|
||||
{8595864B-D0F6-4B1F-853D-0F38E8EE90F8}.SingleImage|Win64.Build.0 = SingleImage|Win64
|
||||
{8595864B-D0F6-4B1F-853D-0F38E8EE90F8}.SingleImage|x64.ActiveCfg = SingleImage|AnyOS
|
||||
{8595864B-D0F6-4B1F-853D-0F38E8EE90F8}.SingleImage|x86.ActiveCfg = SingleImage|AnyOS
|
||||
{8CF624A8-4FE6-41AD-8DDF-B37854E374CB}.CD_ROM|Any CPU.ActiveCfg = Release|x86
|
||||
{8CF624A8-4FE6-41AD-8DDF-B37854E374CB}.CD_ROM|AnyOS.ActiveCfg = Release|x86
|
||||
{8CF624A8-4FE6-41AD-8DDF-B37854E374CB}.CD_ROM|Mixed Platforms.ActiveCfg = Release|x86
|
||||
{8CF624A8-4FE6-41AD-8DDF-B37854E374CB}.CD_ROM|Mixed Platforms.Build.0 = Release|x86
|
||||
{8CF624A8-4FE6-41AD-8DDF-B37854E374CB}.CD_ROM|Win32.ActiveCfg = Release|x86
|
||||
{8CF624A8-4FE6-41AD-8DDF-B37854E374CB}.CD_ROM|Win64.ActiveCfg = Release|x86
|
||||
{8CF624A8-4FE6-41AD-8DDF-B37854E374CB}.CD_ROM|x64.ActiveCfg = Release|x86
|
||||
{8CF624A8-4FE6-41AD-8DDF-B37854E374CB}.CD_ROM|x86.ActiveCfg = Release|x86
|
||||
{8CF624A8-4FE6-41AD-8DDF-B37854E374CB}.CD_ROM|x86.Build.0 = Release|x86
|
||||
{8CF624A8-4FE6-41AD-8DDF-B37854E374CB}.Debug|Any CPU.ActiveCfg = Debug|x86
|
||||
{8CF624A8-4FE6-41AD-8DDF-B37854E374CB}.Debug|AnyOS.ActiveCfg = Debug|x86
|
||||
{8CF624A8-4FE6-41AD-8DDF-B37854E374CB}.Debug|Mixed Platforms.ActiveCfg = Debug|x86
|
||||
{8CF624A8-4FE6-41AD-8DDF-B37854E374CB}.Debug|Mixed Platforms.Build.0 = Debug|x86
|
||||
{8CF624A8-4FE6-41AD-8DDF-B37854E374CB}.Debug|Win32.ActiveCfg = Debug|x86
|
||||
{8CF624A8-4FE6-41AD-8DDF-B37854E374CB}.Debug|Win64.ActiveCfg = Debug|x86
|
||||
{8CF624A8-4FE6-41AD-8DDF-B37854E374CB}.Debug|x64.ActiveCfg = Debug|x86
|
||||
{8CF624A8-4FE6-41AD-8DDF-B37854E374CB}.Debug|x86.ActiveCfg = Debug|x86
|
||||
{8CF624A8-4FE6-41AD-8DDF-B37854E374CB}.Debug|x86.Build.0 = Debug|x86
|
||||
{8CF624A8-4FE6-41AD-8DDF-B37854E374CB}.DVD-5|Any CPU.ActiveCfg = Debug|x86
|
||||
{8CF624A8-4FE6-41AD-8DDF-B37854E374CB}.DVD-5|AnyOS.ActiveCfg = Debug|x86
|
||||
{8CF624A8-4FE6-41AD-8DDF-B37854E374CB}.DVD-5|Mixed Platforms.ActiveCfg = Debug|x86
|
||||
{8CF624A8-4FE6-41AD-8DDF-B37854E374CB}.DVD-5|Mixed Platforms.Build.0 = Debug|x86
|
||||
{8CF624A8-4FE6-41AD-8DDF-B37854E374CB}.DVD-5|Win32.ActiveCfg = Debug|x86
|
||||
{8CF624A8-4FE6-41AD-8DDF-B37854E374CB}.DVD-5|Win64.ActiveCfg = Debug|x86
|
||||
{8CF624A8-4FE6-41AD-8DDF-B37854E374CB}.DVD-5|x64.ActiveCfg = Debug|x86
|
||||
{8CF624A8-4FE6-41AD-8DDF-B37854E374CB}.DVD-5|x86.ActiveCfg = Debug|x86
|
||||
{8CF624A8-4FE6-41AD-8DDF-B37854E374CB}.DVD-5|x86.Build.0 = Debug|x86
|
||||
{8CF624A8-4FE6-41AD-8DDF-B37854E374CB}.Release|Any CPU.ActiveCfg = Release|x86
|
||||
{8CF624A8-4FE6-41AD-8DDF-B37854E374CB}.Release|AnyOS.ActiveCfg = Release|x86
|
||||
{8CF624A8-4FE6-41AD-8DDF-B37854E374CB}.Release|Mixed Platforms.ActiveCfg = Release|x86
|
||||
{8CF624A8-4FE6-41AD-8DDF-B37854E374CB}.Release|Mixed Platforms.Build.0 = Release|x86
|
||||
{8CF624A8-4FE6-41AD-8DDF-B37854E374CB}.Release|Win32.ActiveCfg = Release|x86
|
||||
{8CF624A8-4FE6-41AD-8DDF-B37854E374CB}.Release|Win64.ActiveCfg = Release|x86
|
||||
{8CF624A8-4FE6-41AD-8DDF-B37854E374CB}.Release|x64.ActiveCfg = Release|x86
|
||||
{8CF624A8-4FE6-41AD-8DDF-B37854E374CB}.Release|x86.ActiveCfg = Release|x86
|
||||
{8CF624A8-4FE6-41AD-8DDF-B37854E374CB}.Release|x86.Build.0 = Release|x86
|
||||
{8CF624A8-4FE6-41AD-8DDF-B37854E374CB}.SingleImage|Any CPU.ActiveCfg = Release|x86
|
||||
{8CF624A8-4FE6-41AD-8DDF-B37854E374CB}.SingleImage|AnyOS.ActiveCfg = Release|x86
|
||||
{8CF624A8-4FE6-41AD-8DDF-B37854E374CB}.SingleImage|Mixed Platforms.ActiveCfg = Release|x86
|
||||
{8CF624A8-4FE6-41AD-8DDF-B37854E374CB}.SingleImage|Mixed Platforms.Build.0 = Release|x86
|
||||
{8CF624A8-4FE6-41AD-8DDF-B37854E374CB}.SingleImage|Win32.ActiveCfg = Release|x86
|
||||
{8CF624A8-4FE6-41AD-8DDF-B37854E374CB}.SingleImage|Win64.ActiveCfg = Release|x86
|
||||
{8CF624A8-4FE6-41AD-8DDF-B37854E374CB}.SingleImage|x64.ActiveCfg = Release|x86
|
||||
{8CF624A8-4FE6-41AD-8DDF-B37854E374CB}.SingleImage|x86.ActiveCfg = Release|x86
|
||||
{8CF624A8-4FE6-41AD-8DDF-B37854E374CB}.SingleImage|x86.Build.0 = Release|x86
|
||||
{0037E22E-B40E-4D9B-8CD5-062E7E3BC1D7}.CD_ROM|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{0037E22E-B40E-4D9B-8CD5-062E7E3BC1D7}.CD_ROM|Any CPU.Build.0 = Release|Any CPU
|
||||
{0037E22E-B40E-4D9B-8CD5-062E7E3BC1D7}.CD_ROM|AnyOS.ActiveCfg = Release|Any CPU
|
||||
{0037E22E-B40E-4D9B-8CD5-062E7E3BC1D7}.CD_ROM|Mixed Platforms.ActiveCfg = Release|Any CPU
|
||||
{0037E22E-B40E-4D9B-8CD5-062E7E3BC1D7}.CD_ROM|Mixed Platforms.Build.0 = Release|Any CPU
|
||||
{0037E22E-B40E-4D9B-8CD5-062E7E3BC1D7}.CD_ROM|Win32.ActiveCfg = Release|Any CPU
|
||||
{0037E22E-B40E-4D9B-8CD5-062E7E3BC1D7}.CD_ROM|Win64.ActiveCfg = Release|Any CPU
|
||||
{0037E22E-B40E-4D9B-8CD5-062E7E3BC1D7}.CD_ROM|x64.ActiveCfg = Release|Any CPU
|
||||
{0037E22E-B40E-4D9B-8CD5-062E7E3BC1D7}.CD_ROM|x86.ActiveCfg = Release|Any CPU
|
||||
{0037E22E-B40E-4D9B-8CD5-062E7E3BC1D7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{0037E22E-B40E-4D9B-8CD5-062E7E3BC1D7}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{0037E22E-B40E-4D9B-8CD5-062E7E3BC1D7}.Debug|AnyOS.ActiveCfg = Debug|Any CPU
|
||||
{0037E22E-B40E-4D9B-8CD5-062E7E3BC1D7}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
|
||||
{0037E22E-B40E-4D9B-8CD5-062E7E3BC1D7}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
|
||||
{0037E22E-B40E-4D9B-8CD5-062E7E3BC1D7}.Debug|Win32.ActiveCfg = Debug|Any CPU
|
||||
{0037E22E-B40E-4D9B-8CD5-062E7E3BC1D7}.Debug|Win64.ActiveCfg = Debug|Any CPU
|
||||
{0037E22E-B40E-4D9B-8CD5-062E7E3BC1D7}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||
{0037E22E-B40E-4D9B-8CD5-062E7E3BC1D7}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{0037E22E-B40E-4D9B-8CD5-062E7E3BC1D7}.DVD-5|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{0037E22E-B40E-4D9B-8CD5-062E7E3BC1D7}.DVD-5|Any CPU.Build.0 = Debug|Any CPU
|
||||
{0037E22E-B40E-4D9B-8CD5-062E7E3BC1D7}.DVD-5|AnyOS.ActiveCfg = Debug|Any CPU
|
||||
{0037E22E-B40E-4D9B-8CD5-062E7E3BC1D7}.DVD-5|Mixed Platforms.ActiveCfg = Debug|Any CPU
|
||||
{0037E22E-B40E-4D9B-8CD5-062E7E3BC1D7}.DVD-5|Mixed Platforms.Build.0 = Debug|Any CPU
|
||||
{0037E22E-B40E-4D9B-8CD5-062E7E3BC1D7}.DVD-5|Win32.ActiveCfg = Debug|Any CPU
|
||||
{0037E22E-B40E-4D9B-8CD5-062E7E3BC1D7}.DVD-5|Win64.ActiveCfg = Debug|Any CPU
|
||||
{0037E22E-B40E-4D9B-8CD5-062E7E3BC1D7}.DVD-5|x64.ActiveCfg = Debug|Any CPU
|
||||
{0037E22E-B40E-4D9B-8CD5-062E7E3BC1D7}.DVD-5|x86.ActiveCfg = Debug|Any CPU
|
||||
{0037E22E-B40E-4D9B-8CD5-062E7E3BC1D7}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{0037E22E-B40E-4D9B-8CD5-062E7E3BC1D7}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{0037E22E-B40E-4D9B-8CD5-062E7E3BC1D7}.Release|AnyOS.ActiveCfg = Release|Any CPU
|
||||
{0037E22E-B40E-4D9B-8CD5-062E7E3BC1D7}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
|
||||
{0037E22E-B40E-4D9B-8CD5-062E7E3BC1D7}.Release|Mixed Platforms.Build.0 = Release|Any CPU
|
||||
{0037E22E-B40E-4D9B-8CD5-062E7E3BC1D7}.Release|Win32.ActiveCfg = Release|Any CPU
|
||||
{0037E22E-B40E-4D9B-8CD5-062E7E3BC1D7}.Release|Win64.ActiveCfg = Release|Any CPU
|
||||
{0037E22E-B40E-4D9B-8CD5-062E7E3BC1D7}.Release|x64.ActiveCfg = Release|Any CPU
|
||||
{0037E22E-B40E-4D9B-8CD5-062E7E3BC1D7}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{0037E22E-B40E-4D9B-8CD5-062E7E3BC1D7}.SingleImage|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{0037E22E-B40E-4D9B-8CD5-062E7E3BC1D7}.SingleImage|Any CPU.Build.0 = Release|Any CPU
|
||||
{0037E22E-B40E-4D9B-8CD5-062E7E3BC1D7}.SingleImage|AnyOS.ActiveCfg = Release|Any CPU
|
||||
{0037E22E-B40E-4D9B-8CD5-062E7E3BC1D7}.SingleImage|Mixed Platforms.ActiveCfg = Release|Any CPU
|
||||
{0037E22E-B40E-4D9B-8CD5-062E7E3BC1D7}.SingleImage|Mixed Platforms.Build.0 = Release|Any CPU
|
||||
{0037E22E-B40E-4D9B-8CD5-062E7E3BC1D7}.SingleImage|Win32.ActiveCfg = Release|Any CPU
|
||||
{0037E22E-B40E-4D9B-8CD5-062E7E3BC1D7}.SingleImage|Win64.ActiveCfg = Release|Any CPU
|
||||
{0037E22E-B40E-4D9B-8CD5-062E7E3BC1D7}.SingleImage|x64.ActiveCfg = Release|Any CPU
|
||||
{0037E22E-B40E-4D9B-8CD5-062E7E3BC1D7}.SingleImage|x86.ActiveCfg = Release|Any CPU
|
||||
{DB1A9545-2E68-4857-B776-29F62F8EA21C}.CD_ROM|Any CPU.ActiveCfg = Release|x86
|
||||
{DB1A9545-2E68-4857-B776-29F62F8EA21C}.CD_ROM|AnyOS.ActiveCfg = Release|x86
|
||||
{DB1A9545-2E68-4857-B776-29F62F8EA21C}.CD_ROM|Mixed Platforms.ActiveCfg = Release|x86
|
||||
{DB1A9545-2E68-4857-B776-29F62F8EA21C}.CD_ROM|Mixed Platforms.Build.0 = Release|x86
|
||||
{DB1A9545-2E68-4857-B776-29F62F8EA21C}.CD_ROM|Win32.ActiveCfg = Release|x86
|
||||
{DB1A9545-2E68-4857-B776-29F62F8EA21C}.CD_ROM|Win64.ActiveCfg = Release|x86
|
||||
{DB1A9545-2E68-4857-B776-29F62F8EA21C}.CD_ROM|x64.ActiveCfg = Release|x86
|
||||
{DB1A9545-2E68-4857-B776-29F62F8EA21C}.CD_ROM|x86.ActiveCfg = Release|x86
|
||||
{DB1A9545-2E68-4857-B776-29F62F8EA21C}.CD_ROM|x86.Build.0 = Release|x86
|
||||
{DB1A9545-2E68-4857-B776-29F62F8EA21C}.Debug|Any CPU.ActiveCfg = Debug|x86
|
||||
{DB1A9545-2E68-4857-B776-29F62F8EA21C}.Debug|AnyOS.ActiveCfg = Debug|x86
|
||||
{DB1A9545-2E68-4857-B776-29F62F8EA21C}.Debug|Mixed Platforms.ActiveCfg = Debug|x86
|
||||
{DB1A9545-2E68-4857-B776-29F62F8EA21C}.Debug|Mixed Platforms.Build.0 = Debug|x86
|
||||
{DB1A9545-2E68-4857-B776-29F62F8EA21C}.Debug|Win32.ActiveCfg = Debug|x86
|
||||
{DB1A9545-2E68-4857-B776-29F62F8EA21C}.Debug|Win64.ActiveCfg = Debug|x86
|
||||
{DB1A9545-2E68-4857-B776-29F62F8EA21C}.Debug|x64.ActiveCfg = Debug|x86
|
||||
{DB1A9545-2E68-4857-B776-29F62F8EA21C}.Debug|x86.ActiveCfg = Debug|x86
|
||||
{DB1A9545-2E68-4857-B776-29F62F8EA21C}.Debug|x86.Build.0 = Debug|x86
|
||||
{DB1A9545-2E68-4857-B776-29F62F8EA21C}.DVD-5|Any CPU.ActiveCfg = Debug|x86
|
||||
{DB1A9545-2E68-4857-B776-29F62F8EA21C}.DVD-5|AnyOS.ActiveCfg = Debug|x86
|
||||
{DB1A9545-2E68-4857-B776-29F62F8EA21C}.DVD-5|Mixed Platforms.ActiveCfg = Debug|x86
|
||||
{DB1A9545-2E68-4857-B776-29F62F8EA21C}.DVD-5|Mixed Platforms.Build.0 = Debug|x86
|
||||
{DB1A9545-2E68-4857-B776-29F62F8EA21C}.DVD-5|Win32.ActiveCfg = Debug|x86
|
||||
{DB1A9545-2E68-4857-B776-29F62F8EA21C}.DVD-5|Win64.ActiveCfg = Debug|x86
|
||||
{DB1A9545-2E68-4857-B776-29F62F8EA21C}.DVD-5|x64.ActiveCfg = Debug|x86
|
||||
{DB1A9545-2E68-4857-B776-29F62F8EA21C}.DVD-5|x86.ActiveCfg = Debug|x86
|
||||
{DB1A9545-2E68-4857-B776-29F62F8EA21C}.DVD-5|x86.Build.0 = Debug|x86
|
||||
{DB1A9545-2E68-4857-B776-29F62F8EA21C}.Release|Any CPU.ActiveCfg = Release|x86
|
||||
{DB1A9545-2E68-4857-B776-29F62F8EA21C}.Release|AnyOS.ActiveCfg = Release|x86
|
||||
{DB1A9545-2E68-4857-B776-29F62F8EA21C}.Release|Mixed Platforms.ActiveCfg = Release|x86
|
||||
{DB1A9545-2E68-4857-B776-29F62F8EA21C}.Release|Mixed Platforms.Build.0 = Release|x86
|
||||
{DB1A9545-2E68-4857-B776-29F62F8EA21C}.Release|Win32.ActiveCfg = Release|x86
|
||||
{DB1A9545-2E68-4857-B776-29F62F8EA21C}.Release|Win64.ActiveCfg = Release|x86
|
||||
{DB1A9545-2E68-4857-B776-29F62F8EA21C}.Release|x64.ActiveCfg = Release|x86
|
||||
{DB1A9545-2E68-4857-B776-29F62F8EA21C}.Release|x86.ActiveCfg = Release|x86
|
||||
{DB1A9545-2E68-4857-B776-29F62F8EA21C}.Release|x86.Build.0 = Release|x86
|
||||
{DB1A9545-2E68-4857-B776-29F62F8EA21C}.SingleImage|Any CPU.ActiveCfg = Release|x86
|
||||
{DB1A9545-2E68-4857-B776-29F62F8EA21C}.SingleImage|AnyOS.ActiveCfg = Release|x86
|
||||
{DB1A9545-2E68-4857-B776-29F62F8EA21C}.SingleImage|Mixed Platforms.ActiveCfg = Release|x86
|
||||
{DB1A9545-2E68-4857-B776-29F62F8EA21C}.SingleImage|Mixed Platforms.Build.0 = Release|x86
|
||||
{DB1A9545-2E68-4857-B776-29F62F8EA21C}.SingleImage|Win32.ActiveCfg = Release|x86
|
||||
{DB1A9545-2E68-4857-B776-29F62F8EA21C}.SingleImage|Win64.ActiveCfg = Release|x86
|
||||
{DB1A9545-2E68-4857-B776-29F62F8EA21C}.SingleImage|x64.ActiveCfg = Release|x86
|
||||
{DB1A9545-2E68-4857-B776-29F62F8EA21C}.SingleImage|x86.ActiveCfg = Release|x86
|
||||
{DB1A9545-2E68-4857-B776-29F62F8EA21C}.SingleImage|x86.Build.0 = Release|x86
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
EndGlobalSection
|
||||
EndGlobal
|
||||
8
NatiBot.userprefs
Normal file
8
NatiBot.userprefs
Normal file
@@ -0,0 +1,8 @@
|
||||
<Properties>
|
||||
<MonoDevelop.Ide.Workspace ActiveConfiguration="Debug" />
|
||||
<MonoDevelop.Ide.Workbench />
|
||||
<MonoDevelop.Ide.DebuggingService.Breakpoints>
|
||||
<BreakpointStore />
|
||||
</MonoDevelop.Ide.DebuggingService.Breakpoints>
|
||||
<MonoDevelop.Ide.DebuggingService.PinnedWatches />
|
||||
</Properties>
|
||||
BIN
SLBot/.DS_Store
vendored
Normal file
BIN
SLBot/.DS_Store
vendored
Normal file
Binary file not shown.
17
SLBot/AssemblyInfo.cs
Normal file
17
SLBot/AssemblyInfo.cs
Normal file
@@ -0,0 +1,17 @@
|
||||
// Assembly SLBot, Version 1.0.0.0
|
||||
|
||||
[assembly: System.Reflection.AssemblyVersion("1.0.0.326")]
|
||||
[assembly: System.Runtime.CompilerServices.CompilationRelaxations(8)]
|
||||
[assembly: System.Reflection.AssemblyFileVersion("1.0.0.326")]
|
||||
[assembly: System.Diagnostics.Debuggable(System.Diagnostics.DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)]
|
||||
[assembly: System.Runtime.CompilerServices.RuntimeCompatibility(WrapNonExceptionThrows=true)]
|
||||
[assembly: System.Runtime.InteropServices.Guid("91cdd52d-0666-4245-b010-146471bbbccd")]
|
||||
[assembly: System.Runtime.InteropServices.ComVisible(false)]
|
||||
[assembly: System.Reflection.AssemblyTrademark("")]
|
||||
[assembly: System.Reflection.AssemblyCopyright("Copyright © Claunia.com 2008-2014, All Rights Reserved")]
|
||||
[assembly: System.Reflection.AssemblyProduct("NatiBot")]
|
||||
[assembly: System.Reflection.AssemblyCompany("Claunia.com")]
|
||||
[assembly: System.Reflection.AssemblyConfiguration("")]
|
||||
[assembly: System.Reflection.AssemblyDescription("")]
|
||||
[assembly: System.Reflection.AssemblyTitle("NatiBot")]
|
||||
|
||||
1
SLBot/Global.cs
Normal file
1
SLBot/Global.cs
Normal file
@@ -0,0 +1 @@
|
||||
|
||||
617
SLBot/NatiBot-mono.csproj
Normal file
617
SLBot/NatiBot-mono.csproj
Normal file
@@ -0,0 +1,617 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup>
|
||||
<ProjectType>local</ProjectType>
|
||||
<ProjectVersion>7.10.3077</ProjectVersion>
|
||||
<SchemaVersion>2.0</SchemaVersion>
|
||||
<ProjectGuid>{9041A815-E5DA-4B00-945E-ADC7BD2ED7B9}</ProjectGuid>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||
<AssemblyName>NatiBot</AssemblyName>
|
||||
<DefaultClientScript>JScript</DefaultClientScript>
|
||||
<DefaultHTMLPageLayout>Grid</DefaultHTMLPageLayout>
|
||||
<DefaultTargetSchema>IE50</DefaultTargetSchema>
|
||||
<DelaySign>false</DelaySign>
|
||||
<OutputType>WinExe</OutputType>
|
||||
<FileUpgradeFlags>
|
||||
</FileUpgradeFlags>
|
||||
<UpgradeBackupLocation>
|
||||
</UpgradeBackupLocation>
|
||||
<OldToolsVersion>0.0</OldToolsVersion>
|
||||
<IsWebBootstrapper>false</IsWebBootstrapper>
|
||||
<RootNamespace>OpenMetaverse</RootNamespace>
|
||||
<ProductVersion>9.0.30729</ProductVersion>
|
||||
<StartupObject>bot.Program</StartupObject>
|
||||
<SignAssembly>false</SignAssembly>
|
||||
<AssemblyOriginatorKeyFile>natibot.snk</AssemblyOriginatorKeyFile>
|
||||
<ApplicationIcon>natibot.ico</ApplicationIcon>
|
||||
<PublishUrl>publish\</PublishUrl>
|
||||
<Install>true</Install>
|
||||
<InstallFrom>Disk</InstallFrom>
|
||||
<UpdateEnabled>false</UpdateEnabled>
|
||||
<UpdateMode>Foreground</UpdateMode>
|
||||
<UpdateInterval>7</UpdateInterval>
|
||||
<UpdateIntervalUnits>Days</UpdateIntervalUnits>
|
||||
<UpdatePeriodically>false</UpdatePeriodically>
|
||||
<UpdateRequired>false</UpdateRequired>
|
||||
<MapFileExtensions>true</MapFileExtensions>
|
||||
<ApplicationRevision>0</ApplicationRevision>
|
||||
<ApplicationVersion>1.0.0.%2a</ApplicationVersion>
|
||||
<UseApplicationTrust>false</UseApplicationTrust>
|
||||
<BootstrapperEnabled>true</BootstrapperEnabled>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<OutputPath>..\mono-projects\bin</OutputPath>
|
||||
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<Optimize>false</Optimize>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<DebugType>full</DebugType>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<CheckForOverflowUnderflow>true</CheckForOverflowUnderflow>
|
||||
<OutputType>WinExe</OutputType>
|
||||
<RootNamespace>OpenMetaverse</RootNamespace>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||
<OutputPath>..\bin\</OutputPath>
|
||||
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<Optimize>true</Optimize>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<DebugType>none</DebugType>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<CheckForOverflowUnderflow>true</CheckForOverflowUnderflow>
|
||||
<UseVSHostingProcess>false</UseVSHostingProcess>
|
||||
<OutputType>WinExe</OutputType>
|
||||
<RootNamespace>OpenMetaverse</RootNamespace>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<OutputPath>..\bin\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
|
||||
<CheckForOverflowUnderflow>true</CheckForOverflowUnderflow>
|
||||
<DebugType>full</DebugType>
|
||||
<PlatformTarget>x86</PlatformTarget>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<Optimize>false</Optimize>
|
||||
<OutputType>WinExe</OutputType>
|
||||
<RootNamespace>OpenMetaverse</RootNamespace>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' ">
|
||||
<OutputPath>..\bin\</OutputPath>
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
|
||||
<CheckForOverflowUnderflow>true</CheckForOverflowUnderflow>
|
||||
<Optimize>true</Optimize>
|
||||
<PlatformTarget>x86</PlatformTarget>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<UseVSHostingProcess>false</UseVSHostingProcess>
|
||||
<OutputType>WinExe</OutputType>
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<RootNamespace>OpenMetaverse</RootNamespace>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<DebugType>full</DebugType>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x64' ">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<OutputPath>..\bin\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
|
||||
<CheckForOverflowUnderflow>true</CheckForOverflowUnderflow>
|
||||
<DebugType>full</DebugType>
|
||||
<PlatformTarget>x64</PlatformTarget>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<OutputType>WinExe</OutputType>
|
||||
<RootNamespace>OpenMetaverse</RootNamespace>
|
||||
<Optimize>true</Optimize>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x64' ">
|
||||
<OutputPath>..\bin\</OutputPath>
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
|
||||
<CheckForOverflowUnderflow>true</CheckForOverflowUnderflow>
|
||||
<Optimize>true</Optimize>
|
||||
<PlatformTarget>x64</PlatformTarget>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<UseVSHostingProcess>false</UseVSHostingProcess>
|
||||
<OutputType>WinExe</OutputType>
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<RootNamespace>OpenMetaverse</RootNamespace>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<DebugType>full</DebugType>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Data" />
|
||||
<Reference Include="System.Drawing" />
|
||||
<Reference Include="System.Management" />
|
||||
<Reference Include="System.Security" />
|
||||
<Reference Include="System.Windows.Forms" />
|
||||
<Reference Include="System.Xml" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="AssemblyInfo.cs" />
|
||||
<Compile Include="bot\AccountFile.cs" />
|
||||
<Compile Include="bot\AttachmentCollection.cs" />
|
||||
<Compile Include="bot\BotAccount.cs" />
|
||||
<Compile Include="bot\BotConfig.cs" />
|
||||
<Compile Include="bot\CampChair.cs" />
|
||||
<Compile Include="bot\Chat.cs" />
|
||||
<Compile Include="bot\Commands\Agent\AnimateCommand.cs" />
|
||||
<Compile Include="bot\Commands\Agent\AppearanceCommand.cs" />
|
||||
<Compile Include="bot\Commands\Agent\AttachmentsCommand.cs" />
|
||||
<Compile Include="bot\Commands\Agent\BalanceCommand.cs" />
|
||||
<Compile Include="bot\Commands\Agent\GiveAllCommand.cs" />
|
||||
<Compile Include="bot\Commands\Agent\LocationCommand.cs" />
|
||||
<Compile Include="bot\Commands\Agent\SetHomeCommand.cs" />
|
||||
<Compile Include="bot\Commands\Agent\WearCommand.cs" />
|
||||
<Compile Include="bot\Commands\Avatars\AttachmentsUUID.cs" />
|
||||
<Compile Include="bot\Commands\Avatars\AvatarInfoCommand.cs" />
|
||||
<Compile Include="bot\Commands\Avatars\CloneCommand.cs" />
|
||||
<Compile Include="bot\Commands\Avatars\CloneProfileCommand.cs" />
|
||||
<Compile Include="bot\Commands\Avatars\DetectBotCommand.cs" />
|
||||
<Compile Include="bot\Commands\Avatars\DetectLindensCommand.cs" />
|
||||
<Compile Include="bot\Commands\Avatars\ExportOutfitCommand.cs" />
|
||||
<Compile Include="bot\Commands\Avatars\FriendsCommand.cs" />
|
||||
<Compile Include="bot\Commands\Avatars\ImportOutfitCommand.cs" />
|
||||
<Compile Include="bot\Commands\Avatars\Key2NameCommand.cs" />
|
||||
<Compile Include="bot\Commands\Avatars\MapFriendCommand.cs" />
|
||||
<Compile Include="bot\Commands\Avatars\WhoCommand.cs" />
|
||||
<Compile Include="bot\Commands\Communication\EchoMasterCommand.cs" />
|
||||
<Compile Include="bot\Commands\Communication\ImCommand.cs" />
|
||||
<Compile Include="bot\Commands\Communication\SayCommand.cs" />
|
||||
<Compile Include="bot\Commands\Communication\ShoutCommand.cs" />
|
||||
<Compile Include="bot\Commands\Communication\WhisperCommand.cs" />
|
||||
<Compile Include="bot\Commands\Download\DownloadAnimation.cs" />
|
||||
<Compile Include="bot\Commands\Download\DownloadTextureCommand.cs" />
|
||||
<Compile Include="bot\Commands\Download\TexturesCommand.cs" />
|
||||
<Compile Include="bot\Commands\Estate\DilationCommand.cs" />
|
||||
<Compile Include="bot\Commands\Estate\DownloadTerrainCommand.cs" />
|
||||
<Compile Include="bot\Commands\Estate\RegionInfoCommand.cs" />
|
||||
<Compile Include="bot\Commands\Estate\ShowEventDetailsCommand.cs" />
|
||||
<Compile Include="bot\Commands\Estate\StatsCommand.cs" />
|
||||
<Compile Include="bot\Commands\Estate\UploadRawTerrainCommand.cs" />
|
||||
<Compile Include="bot\Commands\Grid\AgentLocationsCommand.cs" />
|
||||
<Compile Include="bot\Commands\Grid\FindSimCommand.cs" />
|
||||
<Compile Include="bot\Commands\Grid\GridLayerCommand.cs" />
|
||||
<Compile Include="bot\Commands\Grid\GridMapCommand.cs" />
|
||||
<Compile Include="bot\Commands\Grid\SearchEventsCommand.cs" />
|
||||
<Compile Include="bot\Commands\Groups\ActivateGroupCommand.cs" />
|
||||
<Compile Include="bot\Commands\Groups\GroupsCommand.cs" />
|
||||
<Compile Include="bot\Commands\Groups\ImGroupCommand.cs" />
|
||||
<Compile Include="bot\Commands\Groups\JoinGroupCommand.cs" />
|
||||
<Compile Include="bot\Commands\Groups\LeaveGroupCommand.cs" />
|
||||
<Compile Include="bot\Commands\Inventory\BackupCommand.cs" />
|
||||
<Compile Include="bot\Commands\Inventory\BackupTextCommand.cs" />
|
||||
<Compile Include="bot\Commands\Inventory\ChangeDirectoryCommand.cs" />
|
||||
<Compile Include="bot\Commands\Inventory\CreateNotecardCommand.cs" />
|
||||
<Compile Include="bot\Commands\Inventory\DeleteFolderCommand.cs" />
|
||||
<Compile Include="bot\Commands\Inventory\EmptyLostAndFoundCommand.cs" />
|
||||
<Compile Include="bot\Commands\Inventory\EmptyTrashCommand.cs" />
|
||||
<Compile Include="bot\Commands\Inventory\GiveItemCommand.cs" />
|
||||
<Compile Include="bot\Commands\Inventory\InventoryCommand.cs" />
|
||||
<Compile Include="bot\Commands\Inventory\ListContentsCommand.cs" />
|
||||
<Compile Include="bot\Commands\Inventory\TaskRunningCommand.cs" />
|
||||
<Compile Include="bot\Commands\Inventory\UploadCommand.cs" />
|
||||
<Compile Include="bot\Commands\Inventory\UploadImageCommand.cs" />
|
||||
<Compile Include="bot\Commands\Inventory\ViewNotecardCommand.cs" />
|
||||
<Compile Include="bot\Commands\Movement\BackCommand.cs" />
|
||||
<Compile Include="bot\Commands\Movement\CameraFarCommand.cs" />
|
||||
<Compile Include="bot\Commands\Movement\CrouchCommand.cs" />
|
||||
<Compile Include="bot\Commands\Movement\FlyCommand.cs" />
|
||||
<Compile Include="bot\Commands\Movement\FlyToCommand.cs" />
|
||||
<Compile Include="bot\Commands\Movement\FollowCommand.cs" />
|
||||
<Compile Include="bot\Commands\Movement\ForwardCommand.cs" />
|
||||
<Compile Include="bot\Commands\Movement\GoHomeCommand.cs" />
|
||||
<Compile Include="bot\Commands\Movement\GotoCommand.cs" />
|
||||
<Compile Include="bot\Commands\Movement\GotoLandmarkCommand.cs" />
|
||||
<Compile Include="bot\Commands\Movement\JumpCommand.cs" />
|
||||
<Compile Include="bot\Commands\Movement\LeftCommand.cs" />
|
||||
<Compile Include="bot\Commands\Movement\MovetoCommand.cs" />
|
||||
<Compile Include="bot\Commands\Movement\RequestTeleport.cs" />
|
||||
<Compile Include="bot\Commands\Movement\RightCommand.cs" />
|
||||
<Compile Include="bot\Commands\Movement\StandCommand.cs" />
|
||||
<Compile Include="bot\Commands\Movement\TurnToCommand.cs" />
|
||||
<Compile Include="bot\Commands\Parcel\ParcelDetailsCommand.cs" />
|
||||
<Compile Include="bot\Commands\Parcel\ParcelInfoCommand.cs" />
|
||||
<Compile Include="bot\Commands\Parcel\ParcelPrimOwnersCommand.cs" />
|
||||
<Compile Include="bot\Commands\Parcel\ParcelSelectObjectsCommand.cs" />
|
||||
<Compile Include="bot\Commands\Parcel\PrimCountCommand.cs" />
|
||||
<Compile Include="bot\Commands\Parcel\SearchBuildableCommand.cs" />
|
||||
<Compile Include="bot\Commands\Parcel\TreeCommand.cs" />
|
||||
<Compile Include="bot\Commands\Parcel\WindCommand.cs" />
|
||||
<Compile Include="bot\Commands\Command.cs" />
|
||||
<Compile Include="bot\Commands\Prims\ChangePermsCommand.cs" />
|
||||
<Compile Include="bot\Commands\Prims\DumpAttachmentCommand.cs" />
|
||||
<Compile Include="bot\Commands\Prims\DumpAttachmentsCommand.cs" />
|
||||
<Compile Include="bot\Commands\Prims\ExportCommand.cs" />
|
||||
<Compile Include="bot\Commands\Prims\ExportParticlesCommand.cs" />
|
||||
<Compile Include="bot\Commands\Prims\FindObjectsCommand.cs" />
|
||||
<Compile Include="bot\Commands\Prims\ImportCommand.cs" />
|
||||
<Compile Include="bot\Commands\Prims\ObjectInventoryCommand.cs" />
|
||||
<Compile Include="bot\Commands\Prims\PrimInfoCommand.cs" />
|
||||
<Compile Include="bot\Commands\Prims\PrimRegexCommand.cs" />
|
||||
<Compile Include="bot\Commands\Prims\SitCommand.cs" />
|
||||
<Compile Include="bot\Commands\Prims\SitOnCommand.cs" />
|
||||
<Compile Include="bot\Commands\Prims\TouchCommand.cs" />
|
||||
<Compile Include="bot\Commands\QueuedDownloadInfo.cs" />
|
||||
<Compile Include="bot\Commands\System\DebugCommand.cs" />
|
||||
<Compile Include="bot\Commands\System\HelpCommand.cs" />
|
||||
<Compile Include="bot\Commands\System\LoadCommand.cs" />
|
||||
<Compile Include="bot\Commands\System\MD5Command.cs" />
|
||||
<Compile Include="bot\Commands\System\ScriptCommand.cs" />
|
||||
<Compile Include="bot\Commands\System\SetMasterCommand.cs" />
|
||||
<Compile Include="bot\Commands\System\SetMasterKeyCommand.cs" />
|
||||
<Compile Include="bot\Commands\System\ShowEffectsCommand.cs" />
|
||||
<Compile Include="bot\Commands\System\UptimeCommand.cs" />
|
||||
<Compile Include="bot\Commands\System\VersionCommand.cs" />
|
||||
<Compile Include="bot\Commands\Textures\DumpOutfitCommand.cs" />
|
||||
<Compile Include="bot\Commands\Textures\FindTextureCommand.cs" />
|
||||
<Compile Include="bot\Commands\Voice\ParcelVoiceInfoCommand.cs" />
|
||||
<Compile Include="bot\Commands\Voice\VoiceAcountCommand.cs" />
|
||||
<Compile Include="bot\Config\ConfigFile.cs" />
|
||||
<Compile Include="bot\Console.cs" />
|
||||
<Compile Include="bot\DataGridViewClientRow.cs" />
|
||||
<Compile Include="bot\GUI\frmChat.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="bot\GUI\frmChat.Designer.cs">
|
||||
<DependentUpon>frmChat.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="bot\GUI\frmAbout.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="bot\GUI\frmAbout.Designer.cs">
|
||||
<DependentUpon>frmAbout.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="bot\GUI\frmConsole.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="bot\GUI\frmConsole.Designer.cs">
|
||||
<DependentUpon>frmConsole.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="bot\GUI\frmCrasher.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="bot\GUI\frmObjects.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="bot\GUI\frmObjects.Designer.cs">
|
||||
<DependentUpon>frmObjects.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="bot\GUI\frmInventory.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="bot\GUI\frmInventory.Designer.cs">
|
||||
<DependentUpon>frmInventory.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="bot\GUI\frmAddAccount.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="bot\GUI\frmMain.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="bot\GUI\InterfacePlugins\libsl_Interface.cs" />
|
||||
<Compile Include="bot\InstanceHandler.cs" />
|
||||
<Compile Include="bot\IRCSettings.cs" />
|
||||
<Compile Include="bot\license\frmCheckLicense.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="bot\license\frmCheckLicense.Designer.cs">
|
||||
<DependentUpon>frmCheckLicense.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="bot\license\SimpleHash.cs" />
|
||||
<Compile Include="bot\license\Version.cs" />
|
||||
<Compile Include="bot\Localization\clResourceManager.cs" />
|
||||
<Compile Include="bot\LoginDetailList.cs" />
|
||||
<Compile Include="bot\LoginDetails.cs" />
|
||||
<Compile Include="bot\LoginGrid.cs" />
|
||||
<Compile Include="bot\NetCom\AlertMessageEventArgs.cs" />
|
||||
<Compile Include="bot\NetCom\ChatEventArgs.cs" />
|
||||
<Compile Include="bot\NetCom\ChatSentEventArgs.cs" />
|
||||
<Compile Include="bot\NetCom\ClientDisconnectEventArgs.cs" />
|
||||
<Compile Include="bot\NetCom\ClientLoginEventArgs.cs" />
|
||||
<Compile Include="bot\NetCom\InstantMessageEventArgs.cs" />
|
||||
<Compile Include="bot\NetCom\InstantMessageSentEventArgs.cs" />
|
||||
<Compile Include="bot\NetCom\MoneyBalanceEventArgs.cs" />
|
||||
<Compile Include="bot\NetCom\NetCommunication.cs" />
|
||||
<Compile Include="bot\NetCom\OverrideEventArgs.cs" />
|
||||
<Compile Include="bot\NetCom\StartLocationParser.cs" />
|
||||
<Compile Include="bot\NetCom\TeleportingEventArgs.cs" />
|
||||
<Compile Include="bot\NetCom\TeleportStatusEventArgs.cs" />
|
||||
<Compile Include="bot\Objects\ObjectsListItem.cs" />
|
||||
<Compile Include="bot\Parsing.cs" />
|
||||
<Compile Include="bot\Program.cs" />
|
||||
<Compile Include="bot\SecondLifeBot.cs" />
|
||||
<Compile Include="bot\SoftwareLoginInfo.cs" />
|
||||
<Compile Include="bot\StartPosition.cs" />
|
||||
<Compile Include="bot\StateManager.cs" />
|
||||
<Compile Include="Global.cs" />
|
||||
<Compile Include="HTTP\Commands\CommandChk.cs" />
|
||||
<Compile Include="HTTP\Commands\CommandRegister.cs" />
|
||||
<Compile Include="HTTP\Commands\CommandTest.cs" />
|
||||
<Compile Include="HTTP\Commands\HTTPCommand.cs" />
|
||||
<Compile Include="HTTP\CPL\CPLHome.cs" />
|
||||
<Compile Include="HTTP\CPL\HTMLCPLCommand.cs" />
|
||||
<Compile Include="HTTP\HTMLTemplates.cs" />
|
||||
<Compile Include="HTTP\HTTPDaemon.cs" />
|
||||
<Compile Include="Properties\Resources.Designer.cs">
|
||||
<DependentUpon>Resources.resx</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Settings.cs" />
|
||||
<EmbeddedResource Include="bot.GUI.FormObjects.resources" />
|
||||
<EmbeddedResource Include="bot.GUI.frmAddAccount.resources" />
|
||||
<EmbeddedResource Include="bot.GUI.frmLogin.resources" />
|
||||
<EmbeddedResource Include="bot.GUI.frmMain.resources" />
|
||||
<EmbeddedResource Include="bot.Properties.Resources.resources" />
|
||||
<EmbeddedResource Include="bot\GUI\frmCrasher.resx">
|
||||
<DependentUpon>frmCrasher.cs</DependentUpon>
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="bot\GUI\frmInventory.resx">
|
||||
<DependentUpon>frmInventory.cs</DependentUpon>
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="bot\GUI\frmAddAccount.resx">
|
||||
<DependentUpon>frmAddAccount.cs</DependentUpon>
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="bot\GUI\frmMain.resx">
|
||||
<DependentUpon>frmMain.cs</DependentUpon>
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="bot\GUI\frmObjects.resx">
|
||||
<DependentUpon>frmObjects.cs</DependentUpon>
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="bot\license\frmCheckLicense.resx">
|
||||
<DependentUpon>frmCheckLicense.cs</DependentUpon>
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="bot\Localization\language_en.xml" />
|
||||
<EmbeddedResource Include="bot\license\changelog_en.txt" />
|
||||
<EmbeddedResource Include="bot\license\changelog_es.txt" />
|
||||
<EmbeddedResource Include="bot\Localization\language_es.xml" />
|
||||
<EmbeddedResource Include="bot\license\changelog_ca.txt" />
|
||||
<EmbeddedResource Include="bot\GUI\frmAbout.resx">
|
||||
<DependentUpon>frmAbout.cs</DependentUpon>
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="bot\Localization\language_ca.xml" />
|
||||
<EmbeddedResource Include="bot\GUI\frmChat.resx">
|
||||
<DependentUpon>frmChat.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="bot\GUI\buttons\ca\frmCheckLicense.button1.idle.png" />
|
||||
<EmbeddedResource Include="bot\GUI\buttons\ca\frmCheckLicense.button1.onclick.png" />
|
||||
<EmbeddedResource Include="bot\GUI\buttons\ca\frmCheckLicense.button1.onhover.png" />
|
||||
<EmbeddedResource Include="bot\GUI\buttons\ca\frmCheckLicense.button2.idle.png" />
|
||||
<EmbeddedResource Include="bot\GUI\buttons\ca\frmCheckLicense.button2.onclick.png" />
|
||||
<EmbeddedResource Include="bot\GUI\buttons\ca\frmCheckLicense.button2.onhover.png" />
|
||||
<EmbeddedResource Include="bot\GUI\buttons\ca\frmMain.btnAbout.idle.png" />
|
||||
<EmbeddedResource Include="bot\GUI\buttons\ca\frmMain.btnAbout.onclick.png" />
|
||||
<EmbeddedResource Include="bot\GUI\buttons\ca\frmMain.btnAbout.onhover.png" />
|
||||
<EmbeddedResource Include="bot\GUI\buttons\ca\frmMain.btnImport.idle.png" />
|
||||
<EmbeddedResource Include="bot\GUI\buttons\ca\frmMain.btnImport.onclick.png" />
|
||||
<EmbeddedResource Include="bot\GUI\buttons\ca\frmMain.btnImport.onhover.png" />
|
||||
<EmbeddedResource Include="bot\GUI\buttons\ca\frmMain.btnObjects.idle.png" />
|
||||
<EmbeddedResource Include="bot\GUI\buttons\ca\frmMain.btnObjects.onclick.png" />
|
||||
<EmbeddedResource Include="bot\GUI\buttons\ca\frmMain.btnObjects.onhover.png" />
|
||||
<EmbeddedResource Include="bot\GUI\buttons\ca\frmMain.btnSetMaster.idle.png" />
|
||||
<EmbeddedResource Include="bot\GUI\buttons\ca\frmMain.btnSetMaster.onclick.png" />
|
||||
<EmbeddedResource Include="bot\GUI\buttons\ca\frmMain.btnSetMaster.onhover.png" />
|
||||
<EmbeddedResource Include="bot\GUI\buttons\ca\frmObjects.btnExport.idle.png" />
|
||||
<EmbeddedResource Include="bot\GUI\buttons\ca\frmObjects.btnExport.onclick.png" />
|
||||
<EmbeddedResource Include="bot\GUI\buttons\ca\frmObjects.btnExport.onhover.png" />
|
||||
<EmbeddedResource Include="bot\GUI\buttons\ca\frmObjects.btnExportAll.idle.png" />
|
||||
<EmbeddedResource Include="bot\GUI\buttons\ca\frmObjects.btnExportAll.onclick.png" />
|
||||
<EmbeddedResource Include="bot\GUI\buttons\ca\frmObjects.btnExportAll.onhover.png" />
|
||||
<EmbeddedResource Include="bot\GUI\buttons\ca\frmObjects.btnRefresh.idle.png" />
|
||||
<EmbeddedResource Include="bot\GUI\buttons\ca\frmObjects.btnRefresh.onclick.png" />
|
||||
<EmbeddedResource Include="bot\GUI\buttons\ca\frmObjects.btnRefresh.onhover.png" />
|
||||
<EmbeddedResource Include="bot\GUI\buttons\en\frmCheckLicense.button1.idle.png" />
|
||||
<EmbeddedResource Include="bot\GUI\buttons\en\frmCheckLicense.button1.onclick.png" />
|
||||
<EmbeddedResource Include="bot\GUI\buttons\en\frmCheckLicense.button1.onhover.png" />
|
||||
<EmbeddedResource Include="bot\GUI\buttons\en\frmCheckLicense.button2.idle.png" />
|
||||
<EmbeddedResource Include="bot\GUI\buttons\en\frmCheckLicense.button2.onclick.png" />
|
||||
<EmbeddedResource Include="bot\GUI\buttons\en\frmCheckLicense.button2.onhover.png" />
|
||||
<EmbeddedResource Include="bot\GUI\buttons\en\frmMain.btnAbout.idle.png" />
|
||||
<EmbeddedResource Include="bot\GUI\buttons\en\frmMain.btnAbout.onclick.png" />
|
||||
<EmbeddedResource Include="bot\GUI\buttons\en\frmMain.btnAbout.onhover.png" />
|
||||
<EmbeddedResource Include="bot\GUI\buttons\en\frmMain.btnImport.idle.png" />
|
||||
<EmbeddedResource Include="bot\GUI\buttons\en\frmMain.btnImport.onclick.png" />
|
||||
<EmbeddedResource Include="bot\GUI\buttons\en\frmMain.btnImport.onhover.png" />
|
||||
<EmbeddedResource Include="bot\GUI\buttons\en\frmMain.btnObjects.idle.png" />
|
||||
<EmbeddedResource Include="bot\GUI\buttons\en\frmMain.btnObjects.onclick.png" />
|
||||
<EmbeddedResource Include="bot\GUI\buttons\en\frmMain.btnObjects.onhover.png" />
|
||||
<EmbeddedResource Include="bot\GUI\buttons\en\frmMain.btnSetMaster.idle.png" />
|
||||
<EmbeddedResource Include="bot\GUI\buttons\en\frmMain.btnSetMaster.onclick.png" />
|
||||
<EmbeddedResource Include="bot\GUI\buttons\en\frmMain.btnSetMaster.onhover.png" />
|
||||
<EmbeddedResource Include="bot\GUI\buttons\en\frmObjects.btnExport.idle.png" />
|
||||
<EmbeddedResource Include="bot\GUI\buttons\en\frmObjects.btnExport.onclick.png" />
|
||||
<EmbeddedResource Include="bot\GUI\buttons\en\frmObjects.btnExport.onhover.png" />
|
||||
<EmbeddedResource Include="bot\GUI\buttons\en\frmObjects.btnExportAll.idle.png" />
|
||||
<EmbeddedResource Include="bot\GUI\buttons\en\frmObjects.btnExportAll.onclick.png" />
|
||||
<EmbeddedResource Include="bot\GUI\buttons\en\frmObjects.btnExportAll.onhover.png" />
|
||||
<EmbeddedResource Include="bot\GUI\buttons\en\frmObjects.btnRefresh.idle.png" />
|
||||
<EmbeddedResource Include="bot\GUI\buttons\en\frmObjects.btnRefresh.onclick.png" />
|
||||
<EmbeddedResource Include="bot\GUI\buttons\en\frmObjects.btnRefresh.onhover.png" />
|
||||
<EmbeddedResource Include="bot\GUI\buttons\es\frmCheckLicense.button1.idle.png" />
|
||||
<EmbeddedResource Include="bot\GUI\buttons\es\frmCheckLicense.button1.onclick.png" />
|
||||
<EmbeddedResource Include="bot\GUI\buttons\es\frmCheckLicense.button1.onhover.png" />
|
||||
<EmbeddedResource Include="bot\GUI\buttons\es\frmCheckLicense.button2.idle.png" />
|
||||
<EmbeddedResource Include="bot\GUI\buttons\es\frmCheckLicense.button2.onclick.png" />
|
||||
<EmbeddedResource Include="bot\GUI\buttons\es\frmCheckLicense.button2.onhover.png" />
|
||||
<EmbeddedResource Include="bot\GUI\buttons\es\frmMain.btnAbout.idle.png" />
|
||||
<EmbeddedResource Include="bot\GUI\buttons\es\frmMain.btnAbout.onclick.png" />
|
||||
<EmbeddedResource Include="bot\GUI\buttons\es\frmMain.btnAbout.onhover.png" />
|
||||
<EmbeddedResource Include="bot\GUI\buttons\es\frmMain.btnImport.idle.png" />
|
||||
<EmbeddedResource Include="bot\GUI\buttons\es\frmMain.btnImport.onclick.png" />
|
||||
<EmbeddedResource Include="bot\GUI\buttons\es\frmMain.btnImport.onhover.png" />
|
||||
<EmbeddedResource Include="bot\GUI\buttons\es\frmMain.btnObjects.idle.png" />
|
||||
<EmbeddedResource Include="bot\GUI\buttons\es\frmMain.btnObjects.onclick.png" />
|
||||
<EmbeddedResource Include="bot\GUI\buttons\es\frmMain.btnObjects.onhover.png" />
|
||||
<EmbeddedResource Include="bot\GUI\buttons\es\frmMain.btnSetMaster.idle.png" />
|
||||
<EmbeddedResource Include="bot\GUI\buttons\es\frmMain.btnSetMaster.onclick.png" />
|
||||
<EmbeddedResource Include="bot\GUI\buttons\es\frmMain.btnSetMaster.onhover.png" />
|
||||
<EmbeddedResource Include="bot\GUI\buttons\es\frmObjects.btnExport.idle.png" />
|
||||
<EmbeddedResource Include="bot\GUI\buttons\es\frmObjects.btnExport.onclick.png" />
|
||||
<EmbeddedResource Include="bot\GUI\buttons\es\frmObjects.btnExport.onhover.png" />
|
||||
<EmbeddedResource Include="bot\GUI\buttons\es\frmObjects.btnExportAll.idle.png" />
|
||||
<EmbeddedResource Include="bot\GUI\buttons\es\frmObjects.btnExportAll.onclick.png" />
|
||||
<EmbeddedResource Include="bot\GUI\buttons\es\frmObjects.btnExportAll.onhover.png" />
|
||||
<EmbeddedResource Include="bot\GUI\buttons\es\frmObjects.btnRefresh.idle.png" />
|
||||
<EmbeddedResource Include="bot\GUI\buttons\es\frmObjects.btnRefresh.onclick.png" />
|
||||
<EmbeddedResource Include="bot\GUI\buttons\es\frmObjects.btnRefresh.onhover.png" />
|
||||
<EmbeddedResource Include="bot\GUI\frmConsole.resx">
|
||||
<DependentUpon>frmConsole.cs</DependentUpon>
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Properties\Resources.resx">
|
||||
<SubType>Designer</SubType>
|
||||
<Generator>ResXFileCodeGenerator</Generator>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="bot\GUI\buttons\btnClose.idle.png" />
|
||||
<EmbeddedResource Include="bot\GUI\buttons\btnClose.onclick.png" />
|
||||
<EmbeddedResource Include="bot\GUI\buttons\btnClose.onhover.png" />
|
||||
<EmbeddedResource Include="bot\GUI\buttons\ca\frmAddAccounts.btnAdd.idle.png" />
|
||||
<EmbeddedResource Include="bot\GUI\buttons\ca\frmAddAccounts.btnAdd.onclick.png" />
|
||||
<EmbeddedResource Include="bot\GUI\buttons\ca\frmAddAccounts.btnAdd.onhover.png" />
|
||||
<EmbeddedResource Include="bot\GUI\buttons\ca\frmAddAccounts.btnEdit.idle.png" />
|
||||
<EmbeddedResource Include="bot\GUI\buttons\ca\frmAddAccounts.btnEdit.onclick.png" />
|
||||
<EmbeddedResource Include="bot\GUI\buttons\ca\frmAddAccounts.btnEdit.onhover.png" />
|
||||
<EmbeddedResource Include="bot\GUI\buttons\ca\frmMain.btnConsole.idle.png" />
|
||||
<EmbeddedResource Include="bot\GUI\buttons\ca\frmMain.btnConsole.onclick.png" />
|
||||
<EmbeddedResource Include="bot\GUI\buttons\ca\frmMain.btnConsole.onhover.png" />
|
||||
<EmbeddedResource Include="bot\GUI\buttons\ca\frmObjects.btnFindNext.idle.png" />
|
||||
<EmbeddedResource Include="bot\GUI\buttons\ca\frmObjects.btnFindNext.onclick.png" />
|
||||
<EmbeddedResource Include="bot\GUI\buttons\ca\frmObjects.btnFindNext.onhover.png" />
|
||||
<EmbeddedResource Include="bot\GUI\buttons\en\frmAddAccounts.btnAdd.idle.png" />
|
||||
<EmbeddedResource Include="bot\GUI\buttons\en\frmAddAccounts.btnAdd.onclick.png" />
|
||||
<EmbeddedResource Include="bot\GUI\buttons\en\frmAddAccounts.btnAdd.onhover.png" />
|
||||
<EmbeddedResource Include="bot\GUI\buttons\en\frmAddAccounts.btnEdit.idle.png" />
|
||||
<EmbeddedResource Include="bot\GUI\buttons\en\frmAddAccounts.btnEdit.onclick.png" />
|
||||
<EmbeddedResource Include="bot\GUI\buttons\en\frmAddAccounts.btnEdit.onhover.png" />
|
||||
<EmbeddedResource Include="bot\GUI\buttons\en\frmMain.btnConsole.idle.png" />
|
||||
<EmbeddedResource Include="bot\GUI\buttons\en\frmMain.btnConsole.onclick.png" />
|
||||
<EmbeddedResource Include="bot\GUI\buttons\en\frmMain.btnConsole.onhover.png" />
|
||||
<EmbeddedResource Include="bot\GUI\buttons\en\frmObjects.btnFindNext.idle.png" />
|
||||
<EmbeddedResource Include="bot\GUI\buttons\en\frmObjects.btnFindNext.onclick.png" />
|
||||
<EmbeddedResource Include="bot\GUI\buttons\en\frmObjects.btnFindNext.onhover.png" />
|
||||
<EmbeddedResource Include="bot\GUI\buttons\es\frmAddAccounts.btnAdd.idle.png" />
|
||||
<EmbeddedResource Include="bot\GUI\buttons\es\frmAddAccounts.btnAdd.onclick.png" />
|
||||
<EmbeddedResource Include="bot\GUI\buttons\es\frmAddAccounts.btnAdd.onhover.png" />
|
||||
<EmbeddedResource Include="bot\GUI\buttons\es\frmAddAccounts.btnEdit.idle.png" />
|
||||
<EmbeddedResource Include="bot\GUI\buttons\es\frmAddAccounts.btnEdit.onclick.png" />
|
||||
<EmbeddedResource Include="bot\GUI\buttons\es\frmAddAccounts.btnEdit.onhover.png" />
|
||||
<EmbeddedResource Include="bot\GUI\buttons\es\frmMain.btnConsole.idle.png" />
|
||||
<EmbeddedResource Include="bot\GUI\buttons\es\frmMain.btnConsole.onclick.png" />
|
||||
<EmbeddedResource Include="bot\GUI\buttons\es\frmMain.btnConsole.onhover.png" />
|
||||
<EmbeddedResource Include="bot\GUI\buttons\es\frmObjects.btnFindNext.idle.png" />
|
||||
<EmbeddedResource Include="bot\GUI\buttons\es\frmObjects.btnFindNext.onclick.png" />
|
||||
<EmbeddedResource Include="bot\GUI\buttons\es\frmObjects.btnFindNext.onhover.png" />
|
||||
<EmbeddedResource Include="natibot.ico" />
|
||||
<EmbeddedResource Include="natibot.png" />
|
||||
<EmbeddedResource Include="natibot-mono.ico" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<BootstrapperPackage Include="Microsoft.Net.Client.3.5">
|
||||
<Visible>False</Visible>
|
||||
</BootstrapperPackage>
|
||||
<BootstrapperPackage Include="Microsoft.Net.Framework.2.0">
|
||||
<Visible>False</Visible>
|
||||
</BootstrapperPackage>
|
||||
<BootstrapperPackage Include="Microsoft.Net.Framework.3.0">
|
||||
<Visible>False</Visible>
|
||||
</BootstrapperPackage>
|
||||
<BootstrapperPackage Include="Microsoft.Net.Framework.3.5">
|
||||
<Visible>False</Visible>
|
||||
</BootstrapperPackage>
|
||||
<BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
|
||||
<Visible>False</Visible>
|
||||
</BootstrapperPackage>
|
||||
<BootstrapperPackage Include="Microsoft.Windows.Installer.3.1">
|
||||
<Visible>False</Visible>
|
||||
</BootstrapperPackage>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="app.config" />
|
||||
<None Include="HTTP\CPL.css" />
|
||||
<None Include="HTTP\Header.tpl.htm" />
|
||||
<None Include="natibot.snk" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<PublishFile Include="OpenMetaverseTypes">
|
||||
<Visible>False</Visible>
|
||||
</PublishFile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Content Include="bot\GUI\images\natibot.ico" />
|
||||
<Content Include="bot\GUI\images\NatiBot.png" />
|
||||
<Content Include="bot\GUI\windows\frmAbout.png" />
|
||||
<Content Include="bot\GUI\windows\frmAddAccount.png" />
|
||||
<Content Include="bot\GUI\windows\frmConsole.png" />
|
||||
<Content Include="bot\GUI\windows\frmLicense.png" />
|
||||
<Content Include="bot\GUI\windows\frmMain.png" />
|
||||
<Content Include="bot\GUI\windows\frmObjects.png" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\mono-projects\clControls\clControls.csproj">
|
||||
<Project>{6471B205-BF40-4B0D-8166-96E97368E38F}</Project>
|
||||
<Name>clControls</Name>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\libomv\HttpServer\HttpServer.csproj">
|
||||
<Project>{31E011D7-70C0-4DBD-A939-2FC7B0277BCD}</Project>
|
||||
<Name>HttpServer</Name>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\libomv\OpenMetaverse.Http\OpenMetaverse.Http.csproj">
|
||||
<Project>{071B9856-FD44-4ABC-AC8F-C6D9B85358F8}</Project>
|
||||
<Name>OpenMetaverse.Http</Name>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\libomv\OpenMetaverse.StructuredData\OpenMetaverse.StructuredData.csproj">
|
||||
<Project>{00BE5C71-F138-44D3-86DE-D0F544C555C6}</Project>
|
||||
<Name>OpenMetaverse.StructuredData</Name>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\libomv\OpenMetaverse.Utilities\OpenMetaverse.Utilities.csproj">
|
||||
<Project>{30D9B840-2CDA-4778-8FD5-9718EAAC1812}</Project>
|
||||
<Name>OpenMetaverse.Utilities</Name>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\libomv\OpenMetaverseTypes\OpenMetaverseTypes.csproj">
|
||||
<Project>{D6A7318D-0825-41C8-96FE-DE18E15F6913}</Project>
|
||||
<Name>OpenMetaverseTypes</Name>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\libomv\OpenMetaverse\OpenMetaverse.csproj">
|
||||
<Project>{4D08F132-0F89-43E5-805B-B42B6AAFEAEE}</Project>
|
||||
<Name>OpenMetaverse</Name>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\log4net\src\log4net-mono.csproj">
|
||||
<Project>{F6A02431-167E-4347-BC43-65532C31CDB7}</Project>
|
||||
<Name>log4net-mono</Name>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\SmartIRC4Net\VisualStudio\2008\SmartIrc4net-mono.csproj">
|
||||
<Project>{19607F57-B521-4477-9DE0-F0D9B1A68BC7}</Project>
|
||||
<Name>SmartIrc4net-mono</Name>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\clUtils\clUtils.csproj">
|
||||
<Project>{6C115EF9-F48B-4606-9361-B09E337C9705}</Project>
|
||||
<Name>clUtils</Name>
|
||||
</ProjectReference>
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
|
||||
<PropertyGroup>
|
||||
<PreBuildEvent>
|
||||
</PreBuildEvent>
|
||||
<PostBuildEvent>
|
||||
</PostBuildEvent>
|
||||
<ProjectGuid>{9041A815-E5DA-4B00-945E-ADC7BD2ED7B9}</ProjectGuid>
|
||||
<RootNamespace>OpenMetaverse</RootNamespace>
|
||||
</PropertyGroup>
|
||||
<ProjectExtensions>
|
||||
<MonoDevelop>
|
||||
<Properties InternalTargetFrameworkVersion="3.5" />
|
||||
</MonoDevelop>
|
||||
</ProjectExtensions>
|
||||
</Project>
|
||||
1486
SLBot/NatiBot.csproj
Normal file
1486
SLBot/NatiBot.csproj
Normal file
File diff suppressed because it is too large
Load Diff
70
SLBot/Properties/Resources.Designer.cs
generated
Normal file
70
SLBot/Properties/Resources.Designer.cs
generated
Normal file
@@ -0,0 +1,70 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
// Runtime Version:4.0.21006.1
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace OpenMetaverse.Properties {
|
||||
using System;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// A strongly-typed resource class, for looking up localized strings, etc.
|
||||
/// </summary>
|
||||
// This class was auto-generated by the StronglyTypedResourceBuilder
|
||||
// class via a tool like ResGen or Visual Studio.
|
||||
// To add or remove a member, edit your .ResX file then rerun ResGen
|
||||
// with the /str option, or rebuild your VS project.
|
||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
||||
internal class Resources {
|
||||
|
||||
private static global::System.Resources.ResourceManager resourceMan;
|
||||
|
||||
private static global::System.Globalization.CultureInfo resourceCulture;
|
||||
|
||||
[global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
|
||||
internal Resources() {
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns the cached ResourceManager instance used by this class.
|
||||
/// </summary>
|
||||
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
|
||||
internal static global::System.Resources.ResourceManager ResourceManager {
|
||||
get {
|
||||
if (object.ReferenceEquals(resourceMan, null)) {
|
||||
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("OpenMetaverse.Properties.Resources", typeof(Resources).Assembly);
|
||||
resourceMan = temp;
|
||||
}
|
||||
return resourceMan;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Overrides the current thread's CurrentUICulture property for all
|
||||
/// resource lookups using this strongly typed resource class.
|
||||
/// </summary>
|
||||
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
|
||||
internal static global::System.Globalization.CultureInfo Culture {
|
||||
get {
|
||||
return resourceCulture;
|
||||
}
|
||||
set {
|
||||
resourceCulture = value;
|
||||
}
|
||||
}
|
||||
|
||||
internal static System.Drawing.Bitmap NatiBot {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("NatiBot", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
124
SLBot/Properties/Resources.resx
Normal file
124
SLBot/Properties/Resources.resx
Normal file
@@ -0,0 +1,124 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||
<data name="NatiBot" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\bot\GUI\images\NatiBot.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
</root>
|
||||
542
SLBot/SLBot.csproj
Normal file
542
SLBot/SLBot.csproj
Normal file
@@ -0,0 +1,542 @@
|
||||
<Project DefaultTargets="Build" ToolsVersion="3.5" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup>
|
||||
<ProjectType>local</ProjectType>
|
||||
<ProjectVersion>7.10.3077</ProjectVersion>
|
||||
<SchemaVersion>2.0</SchemaVersion>
|
||||
<ProjectGuid>{9041A815-E5DA-4B00-945E-ADC7BD2ED7B9}</ProjectGuid>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||
<AssemblyName>SLBot</AssemblyName>
|
||||
<DefaultClientScript>JScript</DefaultClientScript>
|
||||
<DefaultHTMLPageLayout>Grid</DefaultHTMLPageLayout>
|
||||
<DefaultTargetSchema>IE50</DefaultTargetSchema>
|
||||
<DelaySign>false</DelaySign>
|
||||
<OutputType>WinExe</OutputType>
|
||||
<FileUpgradeFlags>
|
||||
</FileUpgradeFlags>
|
||||
<UpgradeBackupLocation>
|
||||
</UpgradeBackupLocation>
|
||||
<OldToolsVersion>0.0</OldToolsVersion>
|
||||
<TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
|
||||
<IsWebBootstrapper>false</IsWebBootstrapper>
|
||||
<RootNamespace>OpenMetaverse</RootNamespace>
|
||||
<PublishUrl>publish\</PublishUrl>
|
||||
<Install>true</Install>
|
||||
<InstallFrom>Disk</InstallFrom>
|
||||
<UpdateEnabled>false</UpdateEnabled>
|
||||
<UpdateMode>Foreground</UpdateMode>
|
||||
<UpdateInterval>7</UpdateInterval>
|
||||
<UpdateIntervalUnits>Days</UpdateIntervalUnits>
|
||||
<UpdatePeriodically>false</UpdatePeriodically>
|
||||
<UpdateRequired>false</UpdateRequired>
|
||||
<MapFileExtensions>true</MapFileExtensions>
|
||||
<ApplicationRevision>0</ApplicationRevision>
|
||||
<ApplicationVersion>1.0.0.%2a</ApplicationVersion>
|
||||
<UseApplicationTrust>false</UseApplicationTrust>
|
||||
<BootstrapperEnabled>true</BootstrapperEnabled>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<OutputPath>..\bin\</OutputPath>
|
||||
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<NoStdLib>false</NoStdLib>
|
||||
<Optimize>false</Optimize>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<DebugType>full</DebugType>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<CheckForOverflowUnderflow>true</CheckForOverflowUnderflow>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||
<OutputPath>..\bin\</OutputPath>
|
||||
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<DebugSymbols>false</DebugSymbols>
|
||||
<NoStdLib>false</NoStdLib>
|
||||
<Optimize>true</Optimize>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<DebugType>none</DebugType>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<CheckForOverflowUnderflow>true</CheckForOverflowUnderflow>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="Meebey.SmartIrc4net, Version=0.4.0.8764, Culture=neutral, processorArchitecture=MSIL" />
|
||||
<Reference Include="OpenMetaverse, Version=1.0.0.6763, Culture=neutral, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\..\libsl\bin\OpenMetaverse.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="OpenMetaverse.Utilities, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\..\libsl\bin\OpenMetaverse.Utilities.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="OpenMetaverseTypes, Version=0.0.0.0, Culture=neutral, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\..\libsl\bin\OpenMetaverseTypes.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System">
|
||||
<Name>System</Name>
|
||||
</Reference>
|
||||
<Reference Include="System.Data" />
|
||||
<Reference Include="System.Drawing">
|
||||
<Name>System.Drawing</Name>
|
||||
</Reference>
|
||||
<Reference Include="System.Windows.Forms">
|
||||
<Name>System.Windows.Forms</Name>
|
||||
</Reference>
|
||||
<Reference Include="System.Xml">
|
||||
<Name>System.Xml</Name>
|
||||
</Reference>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="AssemblyInfo.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="bot\AccountFile.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="bot\AttachmentCollection.cs" />
|
||||
<Compile Include="bot\BotAccount.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="bot\BotConfig.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="bot\CampChair.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="bot\Commands\ActivateGroupCommand.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="bot\Commands\AgentLocationsCommand.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="bot\Commands\AnimateCommand.cs" />
|
||||
<Compile Include="bot\Commands\AppearanceCommand.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="bot\Commands\AttachmentsCommand.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="bot\Commands\AttachmentsUUID.cs" />
|
||||
<Compile Include="bot\Commands\BackupCommand.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="bot\Commands\BalanceCommand.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="bot\Commands\ChangePermsCommand.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="bot\Commands\CloneCommand.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="bot\Commands\CloneProfileCommand.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="bot\Commands\CodeFile1.cs" />
|
||||
<Compile Include="bot\Commands\DumpAttachmentCommand.cs" />
|
||||
<Compile Include="bot\Commands\DumpAttachmentsCommand.cs" />
|
||||
<Compile Include="bot\Commands\VersionCommand.cs" />
|
||||
<Compile Include="bot\Commands\Command.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="bot\Commands\Commands\SearchBuildableCommand.cs" />
|
||||
<Compile Include="bot\Commands\Commands\SearchEventsCommand.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="bot\Commands\CrouchCommand.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="bot\Commands\DebugCommand.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="bot\Commands\DeleteFolderCommand.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="bot\Commands\DetectBotCommand.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="bot\Commands\DetectLindensCommand.cs" />
|
||||
<Compile Include="bot\Commands\DilationCommand.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="bot\Commands\DumpOutfitCommand.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="bot\Commands\EchoMasterCommand.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="bot\Commands\ExportCommand.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="bot\Commands\ExportOutfitCommand.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="bot\Commands\ExportParticlesCommand.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="bot\Commands\FindObjectsCommand.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="bot\Commands\FindSimCommand.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="bot\Commands\FindTextureCommand.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="bot\Commands\FlyCommand.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="bot\Commands\FollowCommand.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="bot\Commands\FriendsCommand.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="bot\Commands\GiveAllCommand.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="bot\Commands\GoHomeCommand.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="bot\Commands\GotoCommand.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="bot\Commands\GotoLandmarkCommand.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="bot\Commands\GridLayerCommand.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="bot\Commands\GridMapCommand.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="bot\Commands\GroupsCommand.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="bot\Commands\HelpCommand.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="bot\Commands\ImCommand.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="bot\Commands\ImGroupCommand.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="bot\Commands\ImportCommand.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="bot\Commands\ImportOutfitCommand.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="bot\Commands\InventoryCommand.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="bot\Commands\JoinGroupCommand.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="bot\Commands\JumpCommand.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="bot\Commands\LeaveGroupCommand.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="bot\Commands\LoadCommand.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="bot\Commands\LocationCommand.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="bot\Commands\MapFriendCommand.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="bot\Commands\MD5Command.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="bot\Commands\MovetoCommand.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="bot\Commands\ObjectInventoryCommand.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="bot\Commands\PacketLogCommand.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="bot\Commands\ParcelInfoCommand.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="bot\Commands\PrimCountCommand.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="bot\Commands\PrimInfoCommand.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="bot\Commands\PrimRegexCommand.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="bot\Commands\QueuedDownloadInfo.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="bot\Commands\RegionInfoCommand.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="bot\Commands\RequestTeleport.cs" />
|
||||
<Compile Include="bot\Commands\SayCommand.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="bot\Commands\SetHomeCommand.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="bot\Commands\SetMasterCommand.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="bot\Commands\SetMasterKeyCommand.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="bot\Commands\ShoutCommand.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="bot\Commands\ShowEffectsCommand.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="bot\Commands\ShowEventDetailsCommand.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="bot\Commands\SitCommand.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="bot\Commands\SitOnCommand.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="bot\Commands\StandCommand.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="bot\Commands\StatsCommand.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="bot\Commands\TouchCommand.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="bot\Commands\TreeCommand.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="bot\Commands\UptimeCommand.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="bot\Commands\WearCommand.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="bot\Commands\WhisperCommand.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="bot\Commands\WhoCommand.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="bot\Config\ConfigFile.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="bot\Console.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="bot\DataGridViewClientRow.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="bot\GUI\frmCrasher.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="bot\GUI\InterfacePlugins\libsl_Teleport.cs" />
|
||||
<Compile Include="bot\GUI\frmInventory.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="bot\GUI\frmInventory.Designer.cs">
|
||||
<DependentUpon>frmInventory.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="bot\GUI\FormObjects.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="bot\GUI\frmAddAccount.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="bot\GUI\frmLogin.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="bot\GUI\frmMain.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="bot\GUI\InterfacePlugins\libsl_Interface.cs" />
|
||||
<Compile Include="bot\GUI\InterfacePlugins\libsl_Minimap.cs" />
|
||||
<Compile Include="bot\InstanceHandler.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="bot\IRCSettings.cs" />
|
||||
<Compile Include="bot\license\License.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="bot\license\LicenseManager.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="bot\license\Version.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="bot\Localization\Lang.cs" />
|
||||
<Compile Include="bot\Localization\Language.cs" />
|
||||
<Compile Include="bot\LoginDetailList.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="bot\LoginDetails.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="bot\LoginGrid.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="bot\NetCom\AlertMessageEventArgs.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="bot\NetCom\ChatEventArgs.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="bot\NetCom\ChatSentEventArgs.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="bot\NetCom\ClientDisconnectEventArgs.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="bot\NetCom\ClientLoginEventArgs.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="bot\NetCom\InstantMessageEventArgs.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="bot\NetCom\InstantMessageSentEventArgs.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="bot\NetCom\MoneyBalanceEventArgs.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="bot\NetCom\NetCommunication.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="bot\NetCom\OverrideEventArgs.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="bot\NetCom\StartLocationParser.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="bot\NetCom\TeleportingEventArgs.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="bot\NetCom\TeleportStatusEventArgs.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="bot\Objects\ObjectsListItem.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="bot\Parsing.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="bot\Program.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="bot\SecondLifeBot.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="bot\SoftwareLoginInfo.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="bot\StartPosition.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="bot\StateManager.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Global.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="HTTP\Commands\CommandChk.cs" />
|
||||
<Compile Include="HTTP\Commands\CommandRegister.cs" />
|
||||
<Compile Include="HTTP\Commands\CommandTest.cs" />
|
||||
<Compile Include="HTTP\Commands\HTTPCommand.cs" />
|
||||
<Compile Include="HTTP\CPL\CPLHome.cs" />
|
||||
<Compile Include="HTTP\CPL\HTMLCPLCommand.cs" />
|
||||
<Compile Include="HTTP\HTMLTemplates.cs" />
|
||||
<Compile Include="HTTP\HTTPDaemon.cs" />
|
||||
<Compile Include="Properties\Resources.Designer.cs">
|
||||
<AutoGen>True</AutoGen>
|
||||
<DesignTime>True</DesignTime>
|
||||
<DependentUpon>Resources.resx</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Settings.cs" />
|
||||
<EmbeddedResource Include="bot.GUI.FormObjects.resources" />
|
||||
<EmbeddedResource Include="bot.GUI.frmAddAccount.resources" />
|
||||
<EmbeddedResource Include="bot.GUI.frmLogin.resources" />
|
||||
<EmbeddedResource Include="bot.GUI.frmMain.resources" />
|
||||
<EmbeddedResource Include="bot.Properties.Resources.resources" />
|
||||
<EmbeddedResource Include="bot\GUI\frmCrasher.resx">
|
||||
<DependentUpon>frmCrasher.cs</DependentUpon>
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="bot\GUI\frmInventory.resx">
|
||||
<DependentUpon>frmInventory.cs</DependentUpon>
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="bot\GUI\FormObjects.resx">
|
||||
<DependentUpon>FormObjects.cs</DependentUpon>
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="bot\GUI\frmAddAccount.resx">
|
||||
<DependentUpon>frmAddAccount.cs</DependentUpon>
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="bot\GUI\frmMain.resx">
|
||||
<DependentUpon>frmMain.cs</DependentUpon>
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Properties\Resources.resx">
|
||||
<Generator>ResXFileCodeGenerator</Generator>
|
||||
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<BootstrapperPackage Include="Microsoft.Net.Framework.2.0">
|
||||
<Visible>False</Visible>
|
||||
<ProductName>.NET Framework 2.0 %28x86%29</ProductName>
|
||||
<Install>false</Install>
|
||||
</BootstrapperPackage>
|
||||
<BootstrapperPackage Include="Microsoft.Net.Framework.3.0">
|
||||
<Visible>False</Visible>
|
||||
<ProductName>.NET Framework 3.0 %28x86%29</ProductName>
|
||||
<Install>false</Install>
|
||||
</BootstrapperPackage>
|
||||
<BootstrapperPackage Include="Microsoft.Net.Framework.3.5">
|
||||
<Visible>False</Visible>
|
||||
<ProductName>.NET Framework 3.5</ProductName>
|
||||
<Install>true</Install>
|
||||
</BootstrapperPackage>
|
||||
<BootstrapperPackage Include="Microsoft.Windows.Installer.3.1">
|
||||
<Visible>False</Visible>
|
||||
<ProductName>Windows Installer 3.1</ProductName>
|
||||
<Install>true</Install>
|
||||
</BootstrapperPackage>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="app.config" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="HTTP\CPL.css">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</None>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="HTTP\Header.tpl.htm">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</None>
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
|
||||
<PropertyGroup>
|
||||
<PreBuildEvent>
|
||||
</PreBuildEvent>
|
||||
<PostBuildEvent>
|
||||
</PostBuildEvent>
|
||||
</PropertyGroup>
|
||||
</Project>
|
||||
63
SLBot/Settings.cs
Normal file
63
SLBot/Settings.cs
Normal file
@@ -0,0 +1,63 @@
|
||||
/***************************************************************************
|
||||
The Disc Image Chef
|
||||
----------------------------------------------------------------------------
|
||||
|
||||
Filename : Settings.cs
|
||||
Version : 1.0.326
|
||||
Author(s) : Natalia Portillo
|
||||
|
||||
Component : NatiBot
|
||||
|
||||
Revision : r326
|
||||
Last change by : Natalia Portillo
|
||||
Date : 2010/01/01
|
||||
|
||||
--[ License ] --------------------------------------------------------------
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as
|
||||
published by the Free Software Foundation, either version 3 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
----------------------------------------------------------------------------
|
||||
Copyright (C) 2008-2014 Claunia.com
|
||||
****************************************************************************/
|
||||
namespace Properties
|
||||
{
|
||||
// This class allows you to handle specific events on the settings class:
|
||||
// The SettingChanging event is raised before a setting's value is changed.
|
||||
// The PropertyChanged event is raised after a setting's value is changed.
|
||||
// The SettingsLoaded event is raised after the setting values are loaded.
|
||||
// The SettingsSaving event is raised before the setting values are saved.
|
||||
internal sealed partial class Settings
|
||||
{
|
||||
|
||||
public Settings()
|
||||
{
|
||||
// // To add event handlers for saving and changing settings, uncomment the lines below:
|
||||
//
|
||||
// this.SettingChanging += this.SettingChangingEventHandler;
|
||||
//
|
||||
// this.SettingsSaving += this.SettingsSavingEventHandler;
|
||||
//
|
||||
}
|
||||
|
||||
private void SettingChangingEventHandler(object sender, System.Configuration.SettingChangingEventArgs e)
|
||||
{
|
||||
// Add code to handle the SettingChangingEvent event here.
|
||||
}
|
||||
|
||||
private void SettingsSavingEventHandler(object sender, System.ComponentModel.CancelEventArgs e)
|
||||
{
|
||||
// Add code to handle the SettingsSaving event here.
|
||||
}
|
||||
}
|
||||
}
|
||||
3
SLBot/app.config
Normal file
3
SLBot/app.config
Normal file
@@ -0,0 +1,3 @@
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<configuration>
|
||||
</configuration>
|
||||
BIN
SLBot/bot/.DS_Store
vendored
Normal file
BIN
SLBot/bot/.DS_Store
vendored
Normal file
Binary file not shown.
125
SLBot/bot/AccountFile.cs
Normal file
125
SLBot/bot/AccountFile.cs
Normal file
@@ -0,0 +1,125 @@
|
||||
/***************************************************************************
|
||||
The Disc Image Chef
|
||||
----------------------------------------------------------------------------
|
||||
|
||||
Filename : AccountFile.cs
|
||||
Version : 1.0.326
|
||||
Author(s) : Natalia Portillo
|
||||
|
||||
Component : NatiBot
|
||||
|
||||
Revision : r326
|
||||
Last change by : Natalia Portillo
|
||||
Date : 2010/01/01
|
||||
|
||||
--[ License ] --------------------------------------------------------------
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as
|
||||
published by the Free Software Foundation, either version 3 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
----------------------------------------------------------------------------
|
||||
Copyright (C) 2008-2014 Claunia.com
|
||||
****************************************************************************/
|
||||
namespace bot
|
||||
{
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Windows.Forms;
|
||||
using System.Xml;
|
||||
|
||||
public class AccountFile
|
||||
{
|
||||
private string m_file;
|
||||
|
||||
public AccountFile(string file)
|
||||
{
|
||||
this.m_file = file;
|
||||
}
|
||||
|
||||
public List<LoginDetails> Load()
|
||||
{
|
||||
return this.LoadXML();
|
||||
}
|
||||
|
||||
public List<LoginDetails> LoadXML()
|
||||
{
|
||||
List<LoginDetails> list = new List<LoginDetails>();
|
||||
if (!File.Exists(this.m_file))
|
||||
{
|
||||
MessageBox.Show("The file " + this.m_file + " was not found");
|
||||
return list;
|
||||
}
|
||||
XmlDocument document = new XmlDocument();
|
||||
document.Load(this.m_file);
|
||||
foreach (XmlNode node in document.DocumentElement.ChildNodes)
|
||||
{
|
||||
try
|
||||
{
|
||||
LoginDetails item = new LoginDetails();
|
||||
item.FirstName = node.Attributes["Firstname"].InnerText;
|
||||
item.LastName = node.Attributes["Lastname"].InnerText;
|
||||
item.Password = node.Attributes["Password"].InnerText;
|
||||
item.MasterName = node.Attributes["MasterName"].InnerText;
|
||||
item.MasterKey = (OpenMetaverse.UUID)node.Attributes["MasterKey"].InnerText;
|
||||
item.StartLocation = node.Attributes["StartLocation"].InnerText;
|
||||
list.Add(item);
|
||||
continue;
|
||||
}
|
||||
catch (Exception exception)
|
||||
{
|
||||
bot.Console.WriteLine(exception.Message);
|
||||
continue;
|
||||
}
|
||||
}
|
||||
return list;
|
||||
}
|
||||
|
||||
public void Save(List<LoginDetails> accounts)
|
||||
{
|
||||
this.SaveXML(accounts);
|
||||
}
|
||||
|
||||
public void SaveXML(List<LoginDetails> accounts)
|
||||
{
|
||||
XmlDocument document = new XmlDocument();
|
||||
XmlNode newChild = document.CreateElement("Accounts");
|
||||
document.AppendChild(newChild);
|
||||
foreach (LoginDetails details in accounts)
|
||||
{
|
||||
XmlNode node2 = document.CreateElement(string.Format("Account", details.FirstName, details.LastName));
|
||||
XmlAttribute node = document.CreateAttribute("Firstname");
|
||||
node.InnerText = details.FirstName;
|
||||
node2.Attributes.Append(node);
|
||||
node = document.CreateAttribute("Lastname");
|
||||
node.InnerText = details.LastName;
|
||||
node2.Attributes.Append(node);
|
||||
node = document.CreateAttribute("Password");
|
||||
node.InnerText = details.Password;
|
||||
node2.Attributes.Append(node);
|
||||
node = document.CreateAttribute("MasterName");
|
||||
node.InnerText = details.MasterName;
|
||||
node2.Attributes.Append(node);
|
||||
node = document.CreateAttribute("MasterKey");
|
||||
node.InnerText = details.MasterKey.ToString();
|
||||
node2.Attributes.Append(node);
|
||||
node = document.CreateAttribute("StartLocation");
|
||||
node.InnerText = details.StartLocation;
|
||||
node2.Attributes.Append(node);
|
||||
newChild.AppendChild(node2);
|
||||
}
|
||||
document.Save(this.m_file);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
92
SLBot/bot/AttachmentCollection.cs
Normal file
92
SLBot/bot/AttachmentCollection.cs
Normal file
@@ -0,0 +1,92 @@
|
||||
/***************************************************************************
|
||||
The Disc Image Chef
|
||||
----------------------------------------------------------------------------
|
||||
|
||||
Filename : AttachmentCollection.cs
|
||||
Version : 1.0.326
|
||||
Author(s) : Natalia Portillo
|
||||
|
||||
Component : NatiBot
|
||||
|
||||
Revision : r326
|
||||
Last change by : Natalia Portillo
|
||||
Date : 2010/01/01
|
||||
|
||||
--[ License ] --------------------------------------------------------------
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as
|
||||
published by the Free Software Foundation, either version 3 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
----------------------------------------------------------------------------
|
||||
Copyright (C) 2008-2014 Claunia.com
|
||||
****************************************************************************/
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using System.Xml.Serialization;
|
||||
using System.Xml;
|
||||
using OpenMetaverse;
|
||||
using OpenMetaverse.StructuredData;
|
||||
|
||||
namespace bot
|
||||
{
|
||||
[XmlRoot("Attachment")]
|
||||
class AttachmentCollection
|
||||
{
|
||||
private Dictionary<UUID, Array> prims;
|
||||
|
||||
public AttachmentCollection()
|
||||
{
|
||||
prims = new Dictionary<UUID, Array>();
|
||||
}
|
||||
|
||||
public void Add(List<Primitive> Niggers)
|
||||
{
|
||||
foreach (Primitive prim in Niggers)
|
||||
{
|
||||
Array arr = new object[2]
|
||||
{
|
||||
StateToAttachmentPoint(prim.PrimData.State),
|
||||
OSDParser.SerializeLLSDXmlString(prim.GetOSD())
|
||||
};
|
||||
this.prims.Add(prim.ID, arr);
|
||||
}
|
||||
}
|
||||
|
||||
public void Remove(UUID uuid)
|
||||
{
|
||||
prims.Remove(uuid);
|
||||
}
|
||||
|
||||
public static NBAttachmentPoint StateToAttachmentPoint(uint state)
|
||||
{
|
||||
const uint ATTACHMENT_MASK = 0xF0;
|
||||
uint fixedState = (((byte)state & ATTACHMENT_MASK) >> 4) | (((byte)state & ~ATTACHMENT_MASK) << 4);
|
||||
return (NBAttachmentPoint)fixedState;
|
||||
}
|
||||
|
||||
public Dictionary<UUID, Array> Prims
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.prims;
|
||||
}
|
||||
set
|
||||
{
|
||||
this.prims = value;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
260
SLBot/bot/BotAccount.cs
Normal file
260
SLBot/bot/BotAccount.cs
Normal file
@@ -0,0 +1,260 @@
|
||||
/***************************************************************************
|
||||
The Disc Image Chef
|
||||
----------------------------------------------------------------------------
|
||||
|
||||
Filename : BotAccount.cs
|
||||
Version : 1.0.326
|
||||
Author(s) : Natalia Portillo
|
||||
|
||||
Component : NatiBot
|
||||
|
||||
Revision : r326
|
||||
Last change by : Natalia Portillo
|
||||
Date : 2010/01/01
|
||||
|
||||
--[ License ] --------------------------------------------------------------
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as
|
||||
published by the Free Software Foundation, either version 3 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
----------------------------------------------------------------------------
|
||||
Copyright (C) 2008-2014 Claunia.com
|
||||
****************************************************************************/
|
||||
namespace bot
|
||||
{
|
||||
using bot.NetCom;
|
||||
using OpenMetaverse;
|
||||
using System;
|
||||
using System.Windows.Forms;
|
||||
using System.Drawing;
|
||||
|
||||
public class BotAccount
|
||||
{
|
||||
private SecondLifeBot client;
|
||||
private bool connecting;
|
||||
private bool deleted;
|
||||
//private DataGridViewClientRow gridViewRow;
|
||||
private ListViewItem listItem;
|
||||
private bot.LoginDetails loginDetails;
|
||||
|
||||
public delegate void OnDialogScriptReceivedCallback(SecondLifeBot bot,ScriptDialogEventArgs args);
|
||||
|
||||
public event OnDialogScriptReceivedCallback OnDialogScriptReceived;
|
||||
|
||||
public delegate void StatusChangeCallback(string newStatus,System.Drawing.Color color,ListViewItem item);
|
||||
|
||||
public event StatusChangeCallback OnStatusChange;
|
||||
|
||||
public delegate void MasterChangeCallback(string newMaster,ListViewItem item);
|
||||
|
||||
public event MasterChangeCallback OnMasterChange;
|
||||
|
||||
public delegate void AccountRemovedCallback(ListViewItem item);
|
||||
|
||||
public event AccountRemovedCallback OnAccountRemoved;
|
||||
|
||||
public delegate void LocationChangeCallback(string newLocation,ListViewItem item);
|
||||
|
||||
public event LocationChangeCallback OnLocationChanged;
|
||||
|
||||
public BotAccount(bot.LoginDetails loginDetails)
|
||||
{
|
||||
this.loginDetails = loginDetails;
|
||||
}
|
||||
|
||||
public void LocationChange(string newLocation)
|
||||
{
|
||||
if (OnLocationChanged != null)
|
||||
OnLocationChanged(newLocation, this.listItem);
|
||||
}
|
||||
|
||||
public void Connect()
|
||||
{
|
||||
if (this.client != null)
|
||||
{
|
||||
this.Disconnect(true);
|
||||
}
|
||||
else
|
||||
{
|
||||
this.connecting = true;
|
||||
if (OnStatusChange != null)
|
||||
OnStatusChange(bot.Localization.clResourceManager.getText("botAccount.Connecting"),
|
||||
System.Drawing.Color.Green, this.listItem);
|
||||
//this.gridViewRow.Status = bot.Localization.clResourceManager.getText("botAccount.Connecting");
|
||||
this.client = new SecondLifeBot(this);
|
||||
this.client.Netcom.ClientLoginStatus += new EventHandler<ClientLoginEventArgs>(this.Netcom_ClientLoginStatus);
|
||||
this.client.Netcom.ClientLoggedOut += new EventHandler(this.Netcom_ClientLoggedOut);
|
||||
this.client.OnDialogScriptReceived += new SecondLifeBot.OnDialogScriptReceivedCallback(this.client_OnDialogScriptReceived);
|
||||
}
|
||||
}
|
||||
|
||||
void client_OnDialogScriptReceived(SecondLifeBot bot, ScriptDialogEventArgs args)
|
||||
{
|
||||
if (OnDialogScriptReceived != null)
|
||||
OnDialogScriptReceived(bot, args);
|
||||
}
|
||||
|
||||
public bool Delete()
|
||||
{
|
||||
this.deleted = true;
|
||||
if (!this.connecting)
|
||||
{
|
||||
this.Disconnect(false);
|
||||
if (OnAccountRemoved != null)
|
||||
OnAccountRemoved(this.listItem);
|
||||
//this.GridViewRow.Delete();
|
||||
return true;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
public void Disconnect(bool reconnect)
|
||||
{
|
||||
if (this.client != null)
|
||||
{
|
||||
this.client.Dispose();
|
||||
this.client = null;
|
||||
if (reconnect)
|
||||
{
|
||||
this.Connect();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void Netcom_ClientLoggedOut(object sender, EventArgs e)
|
||||
{
|
||||
SecondLifeBot client = ((NetCommunication)sender).Client;
|
||||
if (!this.deleted)
|
||||
{
|
||||
bot.Console.WriteLine(client, bot.Localization.clResourceManager.getText("botAccount.Offline"));
|
||||
}
|
||||
if (client == this.client)
|
||||
{
|
||||
if (OnStatusChange != null)
|
||||
OnStatusChange(bot.Localization.clResourceManager.getText("botAccount.Offline"),
|
||||
System.Drawing.Color.Red, this.listItem);
|
||||
//this.gridViewRow.Status = bot.Localization.clResourceManager.getText("botAccount.Offline");
|
||||
}
|
||||
}
|
||||
|
||||
private void Netcom_ClientLoginStatus(object sender, ClientLoginEventArgs e)
|
||||
{
|
||||
//THREADING
|
||||
if (((NetCommunication)sender).Client == this.client)
|
||||
{
|
||||
switch (e.Status)
|
||||
{
|
||||
case LoginStatus.Failed:
|
||||
this.connecting = false;
|
||||
if (OnStatusChange != null)
|
||||
OnStatusChange(e.Message, Color.Red, this.listItem);
|
||||
//this.gridViewRow.Status = e.Message;
|
||||
bot.Console.WriteLine(this.client, bot.Localization.clResourceManager.getText("botAccount.LoginFailed"), e.Message);
|
||||
return;
|
||||
|
||||
case LoginStatus.None:
|
||||
return;
|
||||
|
||||
case LoginStatus.ConnectingToLogin:
|
||||
//this.gridViewRow.Status = bot.Localization.clResourceManager.getText("botAccount.ConnectingLogin");
|
||||
if (OnStatusChange != null)
|
||||
OnStatusChange(bot.Localization.clResourceManager.getText("botAccount.ConnectingLogin"),
|
||||
Color.White, this.listItem);
|
||||
bot.Console.WriteLine(this.client, bot.Localization.clResourceManager.getText("botAccount.ConnectingLogin"));
|
||||
return;
|
||||
|
||||
case LoginStatus.ReadingResponse:
|
||||
//this.gridViewRow.Status = bot.Localization.clResourceManager.getText("botAccount.ReadingResponse");
|
||||
if (OnStatusChange != null)
|
||||
OnStatusChange(bot.Localization.clResourceManager.getText("botAccount.ReadingResponse"),
|
||||
Color.White, this.listItem);
|
||||
bot.Console.WriteLine(this.client, bot.Localization.clResourceManager.getText("botAccount.ReadingResponse"));
|
||||
return;
|
||||
|
||||
case LoginStatus.ConnectingToSim:
|
||||
//this.gridViewRow.Status = bot.Localization.clResourceManager.getText("botAccount.ConnectingRegion");
|
||||
if (OnStatusChange != null)
|
||||
OnStatusChange(bot.Localization.clResourceManager.getText("botAccount.ConnectingRegion"),
|
||||
Color.White, this.listItem);
|
||||
bot.Console.WriteLine(this.client, bot.Localization.clResourceManager.getText("botAccount.ConnectingRegion"));
|
||||
return;
|
||||
|
||||
case LoginStatus.Redirecting:
|
||||
//this.gridViewRow.Status = bot.Localization.clResourceManager.getText("botAccount.Redirecting");
|
||||
if (OnStatusChange != null)
|
||||
OnStatusChange(bot.Localization.clResourceManager.getText("botAccount.Redirecting"),
|
||||
Color.White, this.listItem);
|
||||
bot.Console.WriteLine(this.client, bot.Localization.clResourceManager.getText("botAccount.Redirecting"));
|
||||
return;
|
||||
|
||||
case LoginStatus.Success:
|
||||
this.connecting = false;
|
||||
//this.gridViewRow.Status = bot.Localization.clResourceManager.getText("botAccount.Online");
|
||||
if (OnStatusChange != null)
|
||||
OnStatusChange(bot.Localization.clResourceManager.getText("botAccount.Online"),
|
||||
Color.Green, this.listItem);
|
||||
bot.Console.WriteLine(this.client, bot.Localization.clResourceManager.getText("botAccount.Online"));
|
||||
if (this.deleted)
|
||||
{
|
||||
this.Delete();
|
||||
}
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void SetMaster(string masterName)
|
||||
{
|
||||
SetMaster(masterName, false);
|
||||
}
|
||||
|
||||
public void SetMaster(string masterName, bool save)
|
||||
{
|
||||
if (save)
|
||||
this.LoginDetails.MasterName = masterName;
|
||||
|
||||
if (OnMasterChange != null)
|
||||
OnMasterChange(masterName, this.listItem);
|
||||
//this.gridViewRow.MasterName = masterName;
|
||||
}
|
||||
|
||||
public SecondLifeBot Client
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.client;
|
||||
}
|
||||
}
|
||||
|
||||
public ListViewItem ListItem
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.listItem;
|
||||
}
|
||||
set
|
||||
{
|
||||
this.listItem = value;
|
||||
}
|
||||
}
|
||||
|
||||
public bot.LoginDetails LoginDetails
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.loginDetails;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
161
SLBot/bot/BotConfig.cs
Normal file
161
SLBot/bot/BotConfig.cs
Normal file
@@ -0,0 +1,161 @@
|
||||
/***************************************************************************
|
||||
The Disc Image Chef
|
||||
----------------------------------------------------------------------------
|
||||
|
||||
Filename : BotConfig.cs
|
||||
Version : 1.0.326
|
||||
Author(s) : Natalia Portillo
|
||||
|
||||
Component : NatiBot
|
||||
|
||||
Revision : r326
|
||||
Last change by : Natalia Portillo
|
||||
Date : 2010/01/01
|
||||
|
||||
--[ License ] --------------------------------------------------------------
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as
|
||||
published by the Free Software Foundation, either version 3 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
----------------------------------------------------------------------------
|
||||
Copyright (C) 2008-2014 Claunia.com
|
||||
****************************************************************************/
|
||||
namespace bot
|
||||
{
|
||||
using System;
|
||||
using System.Xml.Serialization;
|
||||
|
||||
[XmlRoot("BotConfig")]
|
||||
public class BotConfig
|
||||
{
|
||||
private CampChair lastSitposition;
|
||||
private bool saveSitPosition;
|
||||
|
||||
private bool getTextures;
|
||||
private bool getSounds;
|
||||
private bool getAnimations;
|
||||
private bool informFriends;
|
||||
private bool touchMidnightMania;
|
||||
private bool haveLuck;
|
||||
private bool acceptInventoryOffers;
|
||||
|
||||
public CampChair LastSitposition
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.lastSitposition;
|
||||
}
|
||||
set
|
||||
{
|
||||
this.lastSitposition = value;
|
||||
}
|
||||
}
|
||||
|
||||
public bool SaveSitPosition
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.saveSitPosition;
|
||||
}
|
||||
set
|
||||
{
|
||||
this.saveSitPosition = value;
|
||||
}
|
||||
}
|
||||
|
||||
public bool GetTextures
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.getTextures;
|
||||
}
|
||||
set
|
||||
{
|
||||
this.getTextures = value;
|
||||
}
|
||||
}
|
||||
|
||||
public bool GetSounds
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.getSounds;
|
||||
}
|
||||
set
|
||||
{
|
||||
this.getSounds = value;
|
||||
}
|
||||
}
|
||||
|
||||
public bool GetAnimations
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.getAnimations;
|
||||
}
|
||||
set
|
||||
{
|
||||
this.getAnimations = value;
|
||||
}
|
||||
}
|
||||
|
||||
public bool InformFriends
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.informFriends;
|
||||
}
|
||||
set
|
||||
{
|
||||
this.informFriends = value;
|
||||
}
|
||||
}
|
||||
|
||||
public bool TouchMidnightMania
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.touchMidnightMania;
|
||||
}
|
||||
set
|
||||
{
|
||||
this.touchMidnightMania = value;
|
||||
}
|
||||
}
|
||||
|
||||
public bool HaveLuck
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.haveLuck;
|
||||
}
|
||||
set
|
||||
{
|
||||
this.haveLuck = value;
|
||||
}
|
||||
}
|
||||
|
||||
public bool AcceptInventoryOffers
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.acceptInventoryOffers;
|
||||
}
|
||||
set
|
||||
{
|
||||
this.acceptInventoryOffers = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
46
SLBot/bot/CampChair.cs
Normal file
46
SLBot/bot/CampChair.cs
Normal file
@@ -0,0 +1,46 @@
|
||||
/***************************************************************************
|
||||
The Disc Image Chef
|
||||
----------------------------------------------------------------------------
|
||||
|
||||
Filename : CampChair.cs
|
||||
Version : 1.0.326
|
||||
Author(s) : Natalia Portillo
|
||||
|
||||
Component : NatiBot
|
||||
|
||||
Revision : r326
|
||||
Last change by : Natalia Portillo
|
||||
Date : 2010/01/01
|
||||
|
||||
--[ License ] --------------------------------------------------------------
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as
|
||||
published by the Free Software Foundation, either version 3 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
----------------------------------------------------------------------------
|
||||
Copyright (C) 2008-2014 Claunia.com
|
||||
****************************************************************************/
|
||||
namespace bot
|
||||
{
|
||||
using OpenMetaverse;
|
||||
using System;
|
||||
using System.Xml.Serialization;
|
||||
|
||||
[XmlRoot("CampPosition")]
|
||||
public class CampChair
|
||||
{
|
||||
private string location = string.Empty;
|
||||
private UUID prim = UUID.Zero;
|
||||
}
|
||||
}
|
||||
|
||||
102
SLBot/bot/Chat.cs
Normal file
102
SLBot/bot/Chat.cs
Normal file
@@ -0,0 +1,102 @@
|
||||
/***************************************************************************
|
||||
The Disc Image Chef
|
||||
----------------------------------------------------------------------------
|
||||
|
||||
Filename : Chat.cs
|
||||
Version : 1.0.326
|
||||
Author(s) : Natalia Portillo
|
||||
|
||||
Component : NatiBot
|
||||
|
||||
Revision : r326
|
||||
Last change by : Natalia Portillo
|
||||
Date : 2010/01/01
|
||||
|
||||
--[ License ] --------------------------------------------------------------
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as
|
||||
published by the Free Software Foundation, either version 3 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
----------------------------------------------------------------------------
|
||||
Copyright (C) 2008-2014 Claunia.com
|
||||
****************************************************************************/
|
||||
namespace bot
|
||||
{
|
||||
using bot.GUI;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using OpenMetaverse;
|
||||
|
||||
public static class Chat
|
||||
{
|
||||
public struct structInstantMessage
|
||||
{
|
||||
public SecondLifeBot client;
|
||||
public InstantMessage message;
|
||||
public Simulator simulator;
|
||||
public DateTime timestamp;
|
||||
public bool isReceived;
|
||||
}
|
||||
|
||||
public struct structGeneralChat
|
||||
{
|
||||
public SecondLifeBot client;
|
||||
public string message;
|
||||
public ChatAudibleLevel audible;
|
||||
public ChatType type;
|
||||
public ChatSourceType sourceType;
|
||||
public string fromName;
|
||||
public UUID id;
|
||||
public UUID ownerid;
|
||||
public Vector3 position;
|
||||
public DateTime timestamp;
|
||||
}
|
||||
|
||||
public delegate void OnIMReceivedCallback(bot.Chat.structInstantMessage message);
|
||||
|
||||
public delegate void OnChatReceivedCallback(bot.Chat.structGeneralChat chat);
|
||||
|
||||
public static event OnIMReceivedCallback OnIMReceived;
|
||||
public static event OnChatReceivedCallback OnChatReceived;
|
||||
|
||||
private static void BotForm_OnInputSend(SecondLifeBot client, InstantMessage im, Simulator simulator, DateTime timestamp)
|
||||
{
|
||||
structInstantMessage preBuffer = new structInstantMessage();
|
||||
|
||||
preBuffer.client = client;
|
||||
preBuffer.message = im;
|
||||
preBuffer.simulator = simulator;
|
||||
preBuffer.timestamp = timestamp;
|
||||
preBuffer.isReceived = false;
|
||||
|
||||
receivedIM(preBuffer);
|
||||
}
|
||||
|
||||
public static void Initialize(frmChat mainForm)
|
||||
{
|
||||
mainForm.OnInputSend += new frmChat.InputSendCallback(bot.Chat.BotForm_OnInputSend);
|
||||
}
|
||||
|
||||
public static void receivedIM(structInstantMessage preBuffer)
|
||||
{
|
||||
if (OnIMReceived != null)
|
||||
OnIMReceived(preBuffer);
|
||||
}
|
||||
|
||||
public static void receivedChat(structGeneralChat preBuffer)
|
||||
{
|
||||
if (OnChatReceived != null)
|
||||
OnChatReceived(preBuffer);
|
||||
}
|
||||
}
|
||||
}
|
||||
103
SLBot/bot/ClientTags.cs
Normal file
103
SLBot/bot/ClientTags.cs
Normal file
@@ -0,0 +1,103 @@
|
||||
/***************************************************************************
|
||||
The Disc Image Chef
|
||||
----------------------------------------------------------------------------
|
||||
|
||||
Filename : ClientTags.cs
|
||||
Version : 1.0.326
|
||||
Author(s) : Natalia Portillo
|
||||
|
||||
Component : NatiBot
|
||||
|
||||
Revision : r326
|
||||
Last change by : Natalia Portillo
|
||||
Date : 2010/01/01
|
||||
|
||||
--[ License ] --------------------------------------------------------------
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as
|
||||
published by the Free Software Foundation, either version 3 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
----------------------------------------------------------------------------
|
||||
Copyright (C) 2008-2014 Claunia.com
|
||||
****************************************************************************/
|
||||
using System;
|
||||
using System.Reflection;
|
||||
using System.Collections.Generic;
|
||||
using OpenMetaverse;
|
||||
|
||||
namespace bot
|
||||
{
|
||||
public struct ClientTag
|
||||
{
|
||||
public UUID _ClientID;
|
||||
public string _ClientName;
|
||||
|
||||
public ClientTag(UUID ClientID, string ClientName)
|
||||
{
|
||||
_ClientID = ClientID;
|
||||
_ClientName = ClientName;
|
||||
}
|
||||
}
|
||||
|
||||
public static class ClientTags
|
||||
{
|
||||
public readonly static ClientTag MOYMIX = new ClientTag(UUID.Parse("0bcd5f5d-a4ce-9ea4-f9e8-15132653b3d8"), "MoyMix");
|
||||
public readonly static ClientTag CRYOLIFE = new ClientTag(UUID.Parse("0f6723d2-5b23-6b58-08ab-308112b33786"), "CryoLife");
|
||||
public readonly static ClientTag VERTICALLIFE = new ClientTag(UUID.Parse("11ad2452-ce54-8d65-7c23-05589b59f516"), "VerticalLife");
|
||||
public readonly static ClientTag GEMINI = new ClientTag(UUID.Parse("1c29480c-c608-df87-28bb-964fb64c5366"), "Gemini");
|
||||
public readonly static ClientTag MEERKAT = new ClientTag(UUID.Parse("2a9a406c-f448-68f2-4e38-878f8c46c190"), "Meerkat");
|
||||
public readonly static ClientTag PHOXSL = new ClientTag(UUID.Parse("2c9c1e0b-e5d1-263e-16b1-7fc6d169f3d6"), "PhoxSL");
|
||||
public readonly static ClientTag VERTICALLIFE2 = new ClientTag(UUID.Parse("3ab7e2fa-9572-ef36-1a30-d855dbea4f92"), "VerticalLife");
|
||||
public readonly static ClientTag SAPPHIRE = new ClientTag(UUID.Parse("4e8dcf80-336b-b1d8-ef3e-08dacf015a0f"), "Sapphire");
|
||||
public readonly static ClientTag VERTICALLIFE3 = new ClientTag(UUID.Parse("58a8b7ec-1455-7162-5d96-d3c3ead2ed71"), "VerticalLife");
|
||||
public readonly static ClientTag LGG = new ClientTag(UUID.Parse("5aa5c70d-d787-571b-0495-4fc1bdef1500"), "LGG proxy");
|
||||
public readonly static ClientTag PSL = new ClientTag(UUID.Parse("77662f23-c77a-9b4d-5558-26b757b2144c"), "PSL");
|
||||
public readonly static ClientTag KUNGFU = new ClientTag(UUID.Parse("7c4d47a3-0c51-04d1-fa47-e4f3ac12f59b"), "Kung Fu");
|
||||
public readonly static ClientTag DAYOH = new ClientTag(UUID.Parse("8183e823-c443-2142-6eb6-2ab763d4f81c"), "Day Oh proxy");
|
||||
public readonly static ClientTag INFINITY = new ClientTag(UUID.Parse("81b3e921-ee31-aa57-ff9b-ec1f28e41da1"), "Infinity");
|
||||
public readonly static ClientTag VERTICALLIFE4 = new ClientTag(UUID.Parse("841ef25b-3b90-caf9-ea3d-5649e755db65"), "VerticalLife");
|
||||
public readonly static ClientTag FAG = new ClientTag(UUID.Parse("872c0005-3095-0967-866d-11cd71115c22"), "<-- Fag");
|
||||
public readonly static ClientTag BETALIFE = new ClientTag(UUID.Parse("9422e9d7-7b11-83e4-6262-4a8db4716a3b"), "BetaLife");
|
||||
public readonly static ClientTag TYK3N = new ClientTag(UUID.Parse("adcbe893-7643-fd12-f61c-0b39717e2e32"), "tyk3n");
|
||||
public readonly static ClientTag MERKAT2 = new ClientTag(UUID.Parse("b6820989-bf42-ff59-ddde-fd3fd3a74fe4"), "Meerkat");
|
||||
public readonly static ClientTag VLIFE = new ClientTag(UUID.Parse("c252d89d-6f7c-7d90-f430-d140d2e3fbbe"), "VLife");
|
||||
public readonly static ClientTag KUNGFU2 = new ClientTag(UUID.Parse("c5b570ca-bb7e-3c81-afd1-f62646b20014"), "Kung Fu");
|
||||
public readonly static ClientTag RUBY = new ClientTag(UUID.Parse("ccb509cf-cc69-e569-38f1-5086c687afd1"), "Ruby");
|
||||
public readonly static ClientTag EMERALD = new ClientTag(UUID.Parse("ccda2b3b-e72c-a112-e126-fee238b67218"), "Emerald");
|
||||
public readonly static ClientTag RIVLIFE = new ClientTag(UUID.Parse("d3eb4a5f-aec5-4bcb-b007-cce9efe89d37"), "rivlife");
|
||||
public readonly static ClientTag CRYOLIFE2 = new ClientTag(UUID.Parse("e52d21f7-3c8b-819f-a3db-65c432295dac"), "CryoLife");
|
||||
public readonly static ClientTag VERTICALLIFE5 = new ClientTag(UUID.Parse("e734563e-1c31-2a35-3ed5-8552c807439f"), "VerticalLife");
|
||||
public readonly static ClientTag PSL2 = new ClientTag(UUID.Parse("f3fd74a6-fee7-4b2f-93ae-ddcb5991da04"), "PSL");
|
||||
public readonly static ClientTag NEILLIFE = new ClientTag(UUID.Parse("f5a48821-9a98-d09e-8d6a-50cc08ba9a47"), "NeilLife");
|
||||
public readonly static ClientTag CORGI = new ClientTag(UUID.Parse("ffce04ff-5303-4909-a044-d37af7ab0b0e"), "Corgi");
|
||||
|
||||
/// <summary>
|
||||
/// A dictionary containing all known client tags
|
||||
/// </summary>
|
||||
/// <returns>A dictionary containing the known client tags,
|
||||
/// where the key is the tag ID, and the value is a string
|
||||
/// containing the client name</returns>
|
||||
public static Dictionary<UUID, string> ToDictionary()
|
||||
{
|
||||
Dictionary<UUID, string> dict = new Dictionary<UUID, string>();
|
||||
Type type = typeof(ClientTags);
|
||||
foreach (FieldInfo field in type.GetFields(BindingFlags.Public | BindingFlags.Static))
|
||||
{
|
||||
ClientTag _Tag = (ClientTag)field.GetValue(type);
|
||||
|
||||
dict.Add(_Tag._ClientID, _Tag._ClientName);
|
||||
}
|
||||
return dict;
|
||||
}
|
||||
}
|
||||
}
|
||||
140
SLBot/bot/Commands/Agent/AnimateCommand.cs
Normal file
140
SLBot/bot/Commands/Agent/AnimateCommand.cs
Normal file
@@ -0,0 +1,140 @@
|
||||
/***************************************************************************
|
||||
The Disc Image Chef
|
||||
----------------------------------------------------------------------------
|
||||
|
||||
Filename : AnimateCommand.cs
|
||||
Version : 1.0.326
|
||||
Author(s) : Natalia Portillo
|
||||
|
||||
Component : NatiBot
|
||||
|
||||
Revision : r326
|
||||
Last change by : Natalia Portillo
|
||||
Date : 2010/01/01
|
||||
|
||||
--[ License ] --------------------------------------------------------------
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as
|
||||
published by the Free Software Foundation, either version 3 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
----------------------------------------------------------------------------
|
||||
Copyright (C) 2008-2014 Claunia.com
|
||||
****************************************************************************/
|
||||
using System;
|
||||
using OpenMetaverse;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace bot.Core.Commands
|
||||
{
|
||||
public class AnimateCommand : bot.Commands.Command
|
||||
{
|
||||
private Dictionary<UUID, string> m_BuiltInAnimations = new Dictionary<UUID, string>(Animations.ToDictionary());
|
||||
|
||||
public AnimateCommand(SecondLifeBot SecondLifeBot)
|
||||
{
|
||||
Client = SecondLifeBot;
|
||||
Name = "animate";
|
||||
Description = bot.Localization.clResourceManager.getText("Commands.Animate.Description") + " " + bot.Localization.clResourceManager.getText("Commands.Animate.Usage");
|
||||
}
|
||||
|
||||
private UUID animID;
|
||||
|
||||
public override string Execute(string[] args, UUID fromAgentID, bool from_SL)
|
||||
{
|
||||
string arg;
|
||||
StringBuilder result = new StringBuilder();
|
||||
|
||||
if (args.Length == 1)
|
||||
{
|
||||
arg = args[0].Trim();
|
||||
|
||||
if (UUID.TryParse(args[0], out animID))
|
||||
{
|
||||
Client.Self.AnimationStart(animID, true);
|
||||
result.AppendFormat(bot.Localization.clResourceManager.getText("Commands.Animate.Starting"), animID);
|
||||
}
|
||||
else if (arg.ToLower().Equals("list"))
|
||||
{
|
||||
foreach (string key in m_BuiltInAnimations.Values)
|
||||
{
|
||||
result.AppendLine(key);
|
||||
}
|
||||
}
|
||||
else if (arg.ToLower().Equals("show"))
|
||||
{
|
||||
Client.Self.SignaledAnimations.ForEach(delegate(KeyValuePair<UUID, int> kvp)
|
||||
{
|
||||
if (m_BuiltInAnimations.ContainsKey(kvp.Key))
|
||||
{
|
||||
result.AppendFormat(bot.Localization.clResourceManager.getText("Commands.Animate.SystemAnimation"), m_BuiltInAnimations[kvp.Key], kvp.Value);
|
||||
}
|
||||
else
|
||||
{
|
||||
result.AppendFormat(bot.Localization.clResourceManager.getText("Commands.Animate.AssetAnimation"), kvp.Key, kvp.Value);
|
||||
}
|
||||
});
|
||||
}
|
||||
else if (args[0].ToLower() == "stop")
|
||||
{
|
||||
Client.Self.SignaledAnimations.ForEach(delegate(KeyValuePair<UUID, int> kvp)
|
||||
{
|
||||
Client.Self.AnimationStop(kvp.Key, true);
|
||||
result.AppendFormat(bot.Localization.clResourceManager.getText("Commands.Animate.Stopping"), kvp.Key);
|
||||
});
|
||||
}
|
||||
else if (m_BuiltInAnimations.ContainsValue(args[0].Trim().ToUpper()))
|
||||
{
|
||||
foreach (var kvp in m_BuiltInAnimations)
|
||||
{
|
||||
if (kvp.Value.Equals(arg.ToUpper()))
|
||||
{
|
||||
Client.Self.AnimationStart(kvp.Key, true);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (args.Length == 2)
|
||||
{
|
||||
if (args[0].ToLower() == "stop" && UUID.TryParse(args[1], out animID))
|
||||
{
|
||||
Client.Self.AnimationStop(animID, true);
|
||||
result.AppendFormat(bot.Localization.clResourceManager.getText("Commands.Animate.Stopping"), animID);
|
||||
}
|
||||
else if (m_BuiltInAnimations.ContainsValue(args[0].Trim().ToUpper()))
|
||||
{
|
||||
foreach (var kvp in m_BuiltInAnimations)
|
||||
{
|
||||
if (kvp.Value.Equals(args[1].ToUpper()))
|
||||
{
|
||||
Client.Self.AnimationStop(kvp.Key, true);
|
||||
result.AppendFormat(bot.Localization.clResourceManager.getText("Commands.Animate.Stopping"), kvp.Key);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
return bot.Localization.clResourceManager.getText("Commands.Animate.Usage");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
return bot.Localization.clResourceManager.getText("Commands.Animate.Usage");
|
||||
}
|
||||
|
||||
return result.ToString();
|
||||
}
|
||||
}
|
||||
}
|
||||
55
SLBot/bot/Commands/Agent/AppearanceCommand.cs
Normal file
55
SLBot/bot/Commands/Agent/AppearanceCommand.cs
Normal file
@@ -0,0 +1,55 @@
|
||||
/***************************************************************************
|
||||
The Disc Image Chef
|
||||
----------------------------------------------------------------------------
|
||||
|
||||
Filename : AppearanceCommand.cs
|
||||
Version : 1.0.326
|
||||
Author(s) : Natalia Portillo
|
||||
|
||||
Component : NatiBot
|
||||
|
||||
Revision : r326
|
||||
Last change by : Natalia Portillo
|
||||
Date : 2010/01/01
|
||||
|
||||
--[ License ] --------------------------------------------------------------
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as
|
||||
published by the Free Software Foundation, either version 3 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
----------------------------------------------------------------------------
|
||||
Copyright (C) 2008-2014 Claunia.com
|
||||
****************************************************************************/
|
||||
namespace bot.Commands
|
||||
{
|
||||
using bot;
|
||||
using OpenMetaverse;
|
||||
using System;
|
||||
using System.Threading;
|
||||
|
||||
public class AppearanceCommand : Command
|
||||
{
|
||||
public AppearanceCommand(SecondLifeBot SecondLifeBot)
|
||||
{
|
||||
base.Name = "appearance";
|
||||
base.Description = bot.Localization.clResourceManager.getText("Commands.Appearance.Description");
|
||||
}
|
||||
|
||||
public override string Execute(string[] args, UUID fromAgentID, bool fromSL)
|
||||
{
|
||||
Client.Appearance.RequestSetAppearance((args.Length > 0 && args[0].Equals("rebake")));
|
||||
return bot.Localization.clResourceManager.getText("Commands.Appearance.Thread");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
89
SLBot/bot/Commands/Agent/AttachCommand.cs
Normal file
89
SLBot/bot/Commands/Agent/AttachCommand.cs
Normal file
@@ -0,0 +1,89 @@
|
||||
/***************************************************************************
|
||||
The Disc Image Chef
|
||||
----------------------------------------------------------------------------
|
||||
|
||||
Filename : AttachCommand.cs
|
||||
Version : 1.0.326
|
||||
Author(s) : Natalia Portillo
|
||||
|
||||
Component : NatiBot
|
||||
|
||||
Revision : r326
|
||||
Last change by : Natalia Portillo
|
||||
Date : 2010/01/01
|
||||
|
||||
--[ License ] --------------------------------------------------------------
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as
|
||||
published by the Free Software Foundation, either version 3 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
----------------------------------------------------------------------------
|
||||
Copyright (C) 2008-2014 Claunia.com
|
||||
****************************************************************************/
|
||||
namespace bot.Commands
|
||||
{
|
||||
using bot;
|
||||
using OpenMetaverse;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
public class AttachCommand : Command
|
||||
{
|
||||
private InventoryManager Manager;
|
||||
private OpenMetaverse.Inventory Inventory;
|
||||
|
||||
public AttachCommand(SecondLifeBot SecondLifeBot)
|
||||
{
|
||||
base.Name = "attach";
|
||||
base.Description = bot.Localization.clResourceManager.getText("Commands.Attach.Description") + " " + bot.Localization.clResourceManager.getText("Commands.Attach.Usage");
|
||||
}
|
||||
|
||||
public override string Execute(string[] args, UUID fromAgentID, bool something_else)
|
||||
{
|
||||
if (args.Length != 1)
|
||||
{
|
||||
return bot.Localization.clResourceManager.getText("Commands.Attach.Usage");
|
||||
}
|
||||
UUID dest;
|
||||
if (!UUID.TryParse(args[0], out dest))
|
||||
{
|
||||
return bot.Localization.clResourceManager.getText("Commands.Attach.ExpectedID");
|
||||
}
|
||||
Manager = Client.Inventory;
|
||||
Inventory = Manager.Store;
|
||||
|
||||
string inventoryName = args[0];
|
||||
// WARNING: Uses local copy of inventory contents, need to download them first.
|
||||
List<InventoryBase> contents = Inventory.GetContents(Client.CurrentDirectory);
|
||||
foreach (InventoryBase b in contents)
|
||||
{
|
||||
if (inventoryName == b.Name || inventoryName.ToLower() == b.UUID.ToString())
|
||||
{
|
||||
if (b is InventoryItem)
|
||||
{
|
||||
InventoryItem item = b as InventoryItem;
|
||||
|
||||
Client.Appearance.Attach(item, AttachmentPoint.Default);
|
||||
return String.Format(bot.Localization.clResourceManager.getText("Commands.Attach.Attaching"), item.Name);
|
||||
}
|
||||
else
|
||||
{
|
||||
return String.Format(bot.Localization.clResourceManager.getText("Commands.Attach.NotFolder"), b.Name);
|
||||
}
|
||||
}
|
||||
}
|
||||
return String.Format(bot.Localization.clResourceManager.getText("Commands.Attach.NotFound"), inventoryName);
|
||||
}
|
||||
}
|
||||
}
|
||||
89
SLBot/bot/Commands/Agent/AttachmentsCommand.cs
Normal file
89
SLBot/bot/Commands/Agent/AttachmentsCommand.cs
Normal file
@@ -0,0 +1,89 @@
|
||||
/***************************************************************************
|
||||
The Disc Image Chef
|
||||
----------------------------------------------------------------------------
|
||||
|
||||
Filename : AttachmentsCommand.cs
|
||||
Version : 1.0.326
|
||||
Author(s) : Natalia Portillo
|
||||
|
||||
Component : NatiBot
|
||||
|
||||
Revision : r326
|
||||
Last change by : Natalia Portillo
|
||||
Date : 2010/01/01
|
||||
|
||||
--[ License ] --------------------------------------------------------------
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as
|
||||
published by the Free Software Foundation, either version 3 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
----------------------------------------------------------------------------
|
||||
Copyright (C) 2008-2014 Claunia.com
|
||||
****************************************************************************/
|
||||
namespace bot.Commands
|
||||
{
|
||||
using bot;
|
||||
using OpenMetaverse;
|
||||
using System;
|
||||
using System.Text;
|
||||
using System.Collections.Generic;
|
||||
|
||||
public class AttachmentsCommand : Command
|
||||
{
|
||||
public AttachmentsCommand(SecondLifeBot SecondLifeBot)
|
||||
{
|
||||
base.Client = SecondLifeBot;
|
||||
base.Name = "attachments";
|
||||
base.Description = bot.Localization.clResourceManager.getText("Commands.Attachments.Description");
|
||||
}
|
||||
|
||||
public override string Execute(string[] args, UUID fromAgentID, bool fromSL)
|
||||
{
|
||||
StringBuilder builder = new StringBuilder();
|
||||
|
||||
List<Primitive> attachments = Client.Network.CurrentSim.ObjectsPrimitives.FindAll(
|
||||
delegate(Primitive prim)
|
||||
{
|
||||
return prim.ParentID == Client.Self.LocalID;
|
||||
}
|
||||
);
|
||||
|
||||
for (int i = 0; i < attachments.Count; i++)
|
||||
{
|
||||
Primitive prim = attachments[i];
|
||||
NBAttachmentPoint point = StateToAttachmentPoint(prim.PrimData.State);
|
||||
|
||||
// TODO: Fetch properties for the objects with missing property sets so we can show names
|
||||
//Logger.Log(String.Format("[Attachment @ {0}] LocalID: {1} UUID: {2} Offset: {3}",
|
||||
// point, prim.LocalID, prim.ID, prim.Position), Helpers.LogLevel.Info, Client);
|
||||
|
||||
builder.AppendFormat(bot.Localization.clResourceManager.getText("Commands.Attachments.Attachment"),
|
||||
point, prim.LocalID, prim.ID, prim.Position);
|
||||
|
||||
builder.AppendLine();
|
||||
}
|
||||
|
||||
builder.AppendLine(String.Format(bot.Localization.clResourceManager.getText("Commands.Attachments.Found"), attachments.Count));
|
||||
|
||||
return builder.ToString();
|
||||
}
|
||||
|
||||
public static NBAttachmentPoint StateToAttachmentPoint(uint state)
|
||||
{
|
||||
const uint ATTACHMENT_MASK = 0xF0;
|
||||
uint fixedState = (((byte)state & ATTACHMENT_MASK) >> 4) | (((byte)state & ~ATTACHMENT_MASK) << 4);
|
||||
return (NBAttachmentPoint)fixedState;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
80
SLBot/bot/Commands/Agent/AwayCommand.cs
Normal file
80
SLBot/bot/Commands/Agent/AwayCommand.cs
Normal file
@@ -0,0 +1,80 @@
|
||||
/***************************************************************************
|
||||
The Disc Image Chef
|
||||
----------------------------------------------------------------------------
|
||||
|
||||
Filename : AwayCommand.cs
|
||||
Version : 1.0.326
|
||||
Author(s) : Natalia Portillo
|
||||
|
||||
Component : NatiBot
|
||||
|
||||
Revision : r326
|
||||
Last change by : Natalia Portillo
|
||||
Date : 2010/01/01
|
||||
|
||||
--[ License ] --------------------------------------------------------------
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as
|
||||
published by the Free Software Foundation, either version 3 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
----------------------------------------------------------------------------
|
||||
Copyright (C) 2008-2014 Claunia.com
|
||||
****************************************************************************/
|
||||
namespace bot.Commands
|
||||
{
|
||||
using bot;
|
||||
using System;
|
||||
using OpenMetaverse;
|
||||
|
||||
public class AwayCommand : Command
|
||||
{
|
||||
private static readonly UUID AWAYID = new UUID("FD037134-85D4-F241-72C6-4F42164FEDEE");
|
||||
|
||||
public AwayCommand(SecondLifeBot SecondLifeBot)
|
||||
{
|
||||
base.Name = "away";
|
||||
base.Description = bot.Localization.clResourceManager.getText("Commands.Away.Description") + " " + bot.Localization.clResourceManager.getText("Commands.Away.Usage");
|
||||
}
|
||||
|
||||
public override string Execute(string[] args, UUID fromAgentID, bool fromSL)
|
||||
{
|
||||
if (args.Length == 0)
|
||||
{
|
||||
if (Client.isAway)
|
||||
return bot.Localization.clResourceManager.getText("Commands.Away.Afk");
|
||||
else
|
||||
return bot.Localization.clResourceManager.getText("Commands.Away.NotAfk");
|
||||
}
|
||||
|
||||
if (args.Length != 1)
|
||||
return bot.Localization.clResourceManager.getText("Commands.Away.Usage");
|
||||
|
||||
if (args[0].ToLower() == "on")
|
||||
{
|
||||
Client.isAway = true;
|
||||
Client.Self.AnimationStart(AWAYID, true);
|
||||
return bot.Localization.clResourceManager.getText("Commands.Away.WillAfk");
|
||||
}
|
||||
else if (args[0].ToLower() == "off")
|
||||
{
|
||||
Client.isAway = false;
|
||||
Client.Self.AnimationStop(AWAYID, true);
|
||||
return bot.Localization.clResourceManager.getText("Commands.Away.WontAfk");
|
||||
}
|
||||
else
|
||||
{
|
||||
return bot.Localization.clResourceManager.getText("Commands.Away.Usage");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
67
SLBot/bot/Commands/Agent/BalanceCommand.cs
Normal file
67
SLBot/bot/Commands/Agent/BalanceCommand.cs
Normal file
@@ -0,0 +1,67 @@
|
||||
/***************************************************************************
|
||||
The Disc Image Chef
|
||||
----------------------------------------------------------------------------
|
||||
|
||||
Filename : BalanceCommand.cs
|
||||
Version : 1.0.326
|
||||
Author(s) : Natalia Portillo
|
||||
|
||||
Component : NatiBot
|
||||
|
||||
Revision : r326
|
||||
Last change by : Natalia Portillo
|
||||
Date : 2010/01/01
|
||||
|
||||
--[ License ] --------------------------------------------------------------
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as
|
||||
published by the Free Software Foundation, either version 3 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
----------------------------------------------------------------------------
|
||||
Copyright (C) 2008-2014 Claunia.com
|
||||
****************************************************************************/
|
||||
namespace bot.Commands
|
||||
{
|
||||
using bot;
|
||||
using OpenMetaverse;
|
||||
using System;
|
||||
|
||||
public class BalanceCommand : Command
|
||||
{
|
||||
public BalanceCommand(SecondLifeBot SecondLifeBot)
|
||||
{
|
||||
base.Name = "balance";
|
||||
base.Description = bot.Localization.clResourceManager.getText("Commands.Balance.Description");
|
||||
}
|
||||
|
||||
public override string Execute(string[] args, UUID fromAgentID, bool fromSL)
|
||||
{
|
||||
System.Threading.AutoResetEvent waitBalance = new System.Threading.AutoResetEvent(false);
|
||||
EventHandler<BalanceEventArgs> del = delegate(object sender, BalanceEventArgs e)
|
||||
{
|
||||
waitBalance.Set();
|
||||
};
|
||||
Client.Self.MoneyBalance += del;
|
||||
Client.Self.RequestBalance();
|
||||
String result = bot.Localization.clResourceManager.getText("Commands.Balance.Timeout");
|
||||
if (waitBalance.WaitOne(10000, false))
|
||||
{
|
||||
result = String.Format(bot.Localization.clResourceManager.getText("Commands.Balance.Balance"), Client.ToString(),
|
||||
Client.Self.Balance);
|
||||
}
|
||||
Client.Self.MoneyBalance -= del;
|
||||
return result;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
140
SLBot/bot/Commands/Agent/BeamCommand.cs
Normal file
140
SLBot/bot/Commands/Agent/BeamCommand.cs
Normal file
@@ -0,0 +1,140 @@
|
||||
/***************************************************************************
|
||||
The Disc Image Chef
|
||||
----------------------------------------------------------------------------
|
||||
|
||||
Filename : BeamCommand.cs
|
||||
Version : 1.0.326
|
||||
Author(s) : Natalia Portillo
|
||||
|
||||
Component : NatiBot
|
||||
|
||||
Revision : r326
|
||||
Last change by : Natalia Portillo
|
||||
Date : 2010/01/01
|
||||
|
||||
--[ License ] --------------------------------------------------------------
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as
|
||||
published by the Free Software Foundation, either version 3 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
----------------------------------------------------------------------------
|
||||
Copyright (C) 2008-2014 Claunia.com
|
||||
****************************************************************************/
|
||||
namespace bot.Commands
|
||||
{
|
||||
using bot;
|
||||
using System;
|
||||
using OpenMetaverse;
|
||||
using System.Timers;
|
||||
|
||||
public class BeamCommand : Command
|
||||
{
|
||||
private Timer b = new Timer();
|
||||
private bool doBeam;
|
||||
|
||||
public BeamCommand(SecondLifeBot SecondLifeBot)
|
||||
{
|
||||
base.Name = "beam";
|
||||
base.Description = bot.Localization.clResourceManager.getText("Commands.Beam.Description") + " " + bot.Localization.clResourceManager.getText("Commands.Beam.Usage");
|
||||
|
||||
b.Elapsed += new ElapsedEventHandler(b_Elapsed);
|
||||
}
|
||||
|
||||
void b_Elapsed(object sender, ElapsedEventArgs e)
|
||||
{
|
||||
doBeam = false;
|
||||
b.Enabled = false;
|
||||
}
|
||||
|
||||
public override string Execute(string[] args, UUID fromAgentID, bool fromSL)
|
||||
{
|
||||
UUID targetID = UUID.Zero;
|
||||
string avatarName = "";
|
||||
bool isGroupKey = false;
|
||||
Avatar foundAv = null;
|
||||
Primitive foundPrim;
|
||||
Vector3d targetPosition;
|
||||
doBeam = true;
|
||||
b.Interval = 5000;
|
||||
|
||||
if (args.Length == 1)
|
||||
{
|
||||
if (!UUID.TryParse(args[0], out targetID))
|
||||
return bot.Localization.clResourceManager.getText("Commands.Beam.Usage");
|
||||
}
|
||||
else if (args.Length == 2)
|
||||
{
|
||||
avatarName = args[0] + " " + args[1];
|
||||
if (!Client.FindOneAvatar(avatarName, out targetID))
|
||||
return String.Format(bot.Localization.clResourceManager.getText("Commands.Beam.AvNotFound"), avatarName);
|
||||
}
|
||||
else
|
||||
{
|
||||
return bot.Localization.clResourceManager.getText("Commands.Beam.Usage");
|
||||
}
|
||||
|
||||
if (targetID != UUID.Zero)
|
||||
{
|
||||
Client.key2Name(targetID, out avatarName, out isGroupKey);
|
||||
|
||||
if (isGroupKey)
|
||||
return bot.Localization.clResourceManager.getText("Commands.Beam.CannotGroup");
|
||||
|
||||
if (avatarName != "")
|
||||
{
|
||||
foundAv = Client.Network.CurrentSim.ObjectsAvatars.Find(
|
||||
delegate(Avatar avatar)
|
||||
{
|
||||
return (avatar.Name == avatarName);
|
||||
}
|
||||
);
|
||||
|
||||
if (foundAv == null)
|
||||
return String.Format(bot.Localization.clResourceManager.getText("Commands.Beam.AvNotInSim"), avatarName);
|
||||
|
||||
targetPosition = new Vector3d(foundAv.Position);
|
||||
}
|
||||
else
|
||||
{
|
||||
foundPrim = Client.Network.CurrentSim.ObjectsPrimitives.Find(
|
||||
delegate(Primitive prim)
|
||||
{
|
||||
return prim.ID == targetID;
|
||||
}
|
||||
);
|
||||
|
||||
if (foundPrim == null)
|
||||
return String.Format(bot.Localization.clResourceManager.getText("Commands.Beam.ObjNotInSim"), targetID);
|
||||
|
||||
targetPosition = new Vector3d(foundPrim.Position);
|
||||
}
|
||||
|
||||
b.Enabled = true;
|
||||
while (doBeam)
|
||||
{
|
||||
Client.Self.BeamEffect(Client.Self.AgentID, targetID, targetPosition, new Color4(0, 0, 0, 255), 5000.0f,
|
||||
new UUID("aec29773-c421-364e-4f29-e3f633222188"));
|
||||
}
|
||||
|
||||
if (avatarName == "")
|
||||
return String.Format(bot.Localization.clResourceManager.getText("Commands.Beam.BeamObj"), targetID);
|
||||
else
|
||||
return String.Format(bot.Localization.clResourceManager.getText("Commands.Beam.BeamAv"), avatarName);
|
||||
}
|
||||
else
|
||||
{
|
||||
return bot.Localization.clResourceManager.getText("Commands.Beam.Usage");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
80
SLBot/bot/Commands/Agent/BusyCommand.cs
Normal file
80
SLBot/bot/Commands/Agent/BusyCommand.cs
Normal file
@@ -0,0 +1,80 @@
|
||||
/***************************************************************************
|
||||
The Disc Image Chef
|
||||
----------------------------------------------------------------------------
|
||||
|
||||
Filename : BusyCommand.cs
|
||||
Version : 1.0.326
|
||||
Author(s) : Natalia Portillo
|
||||
|
||||
Component : NatiBot
|
||||
|
||||
Revision : r326
|
||||
Last change by : Natalia Portillo
|
||||
Date : 2010/01/01
|
||||
|
||||
--[ License ] --------------------------------------------------------------
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as
|
||||
published by the Free Software Foundation, either version 3 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
----------------------------------------------------------------------------
|
||||
Copyright (C) 2008-2014 Claunia.com
|
||||
****************************************************************************/
|
||||
namespace bot.Commands
|
||||
{
|
||||
using bot;
|
||||
using System;
|
||||
using OpenMetaverse;
|
||||
|
||||
public class BusyCommand : Command
|
||||
{
|
||||
private static readonly UUID BUSYID = new UUID("EFCF670C-2D18-8128-973A-034EBC806B67");
|
||||
|
||||
public BusyCommand(SecondLifeBot SecondLifeBot)
|
||||
{
|
||||
base.Name = "busy";
|
||||
base.Description = bot.Localization.clResourceManager.getText("Commands.Busy.Description") + " " + bot.Localization.clResourceManager.getText("Commands.Busy.Usage");
|
||||
}
|
||||
|
||||
public override string Execute(string[] args, UUID fromAgentID, bool fromSL)
|
||||
{
|
||||
if (args.Length == 0)
|
||||
{
|
||||
if (Client.isBusy)
|
||||
return bot.Localization.clResourceManager.getText("Commands.Busy.Busy");
|
||||
else
|
||||
return bot.Localization.clResourceManager.getText("Commands.Busy.NotBusy");
|
||||
}
|
||||
|
||||
if (args.Length != 1)
|
||||
return bot.Localization.clResourceManager.getText("Commands.Busy.Usage");
|
||||
|
||||
if (args[0].ToLower() == "on")
|
||||
{
|
||||
Client.isBusy = true;
|
||||
Client.Self.AnimationStart(BUSYID, true);
|
||||
return bot.Localization.clResourceManager.getText("Commands.Busy.WillBusy");
|
||||
}
|
||||
else if (args[0].ToLower() == "off")
|
||||
{
|
||||
Client.isBusy = false;
|
||||
Client.Self.AnimationStop(BUSYID, true);
|
||||
return bot.Localization.clResourceManager.getText("Commands.Busy.WontBusy");
|
||||
}
|
||||
else
|
||||
{
|
||||
return bot.Localization.clResourceManager.getText("Commands.Busy.Usage");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
76
SLBot/bot/Commands/Agent/GestureCommand.cs
Normal file
76
SLBot/bot/Commands/Agent/GestureCommand.cs
Normal file
@@ -0,0 +1,76 @@
|
||||
/***************************************************************************
|
||||
The Disc Image Chef
|
||||
----------------------------------------------------------------------------
|
||||
|
||||
Filename : GestureCommand.cs
|
||||
Version : 1.0.326
|
||||
Author(s) : Natalia Portillo
|
||||
|
||||
Component : NatiBot
|
||||
|
||||
Revision : r326
|
||||
Last change by : Natalia Portillo
|
||||
Date : 2010/01/01
|
||||
|
||||
--[ License ] --------------------------------------------------------------
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as
|
||||
published by the Free Software Foundation, either version 3 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
----------------------------------------------------------------------------
|
||||
Copyright (C) 2008-2014 Claunia.com
|
||||
****************************************************************************/
|
||||
using System;
|
||||
using OpenMetaverse;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace bot.Core.Commands
|
||||
{
|
||||
public class GestureCommand : bot.Commands.Command
|
||||
{
|
||||
private Dictionary<UUID, string> m_BuiltInAnimations = new Dictionary<UUID, string>(Animations.ToDictionary());
|
||||
|
||||
public GestureCommand(SecondLifeBot SecondLifeBot)
|
||||
{
|
||||
Client = SecondLifeBot;
|
||||
Name = "gesture";
|
||||
Description = bot.Localization.clResourceManager.getText("Commands.Gesture.Description") + " " + bot.Localization.clResourceManager.getText("Commands.Gesture.Usage");
|
||||
}
|
||||
|
||||
public override string Execute(string[] args, UUID fromAgentID, bool from_SL)
|
||||
{
|
||||
UUID gestureID = UUID.Zero;
|
||||
|
||||
if (args.Length == 1)
|
||||
{
|
||||
if (UUID.TryParse(args[0], out gestureID))
|
||||
{
|
||||
if (gestureID == UUID.Zero)
|
||||
return bot.Localization.clResourceManager.getText("Commands.Gesture.Usage");
|
||||
|
||||
Client.Self.PlayGesture(gestureID);
|
||||
return String.Format(bot.Localization.clResourceManager.getText("Commands.Gesture.Playing"), gestureID);
|
||||
}
|
||||
else
|
||||
{
|
||||
return bot.Localization.clResourceManager.getText("Commands.Gesture.Usage");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
return bot.Localization.clResourceManager.getText("Commands.Gesture.Usage");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
54
SLBot/bot/Commands/Agent/GroundSitCommand.cs
Normal file
54
SLBot/bot/Commands/Agent/GroundSitCommand.cs
Normal file
@@ -0,0 +1,54 @@
|
||||
/***************************************************************************
|
||||
The Disc Image Chef
|
||||
----------------------------------------------------------------------------
|
||||
|
||||
Filename : GroundSitCommand.cs
|
||||
Version : 1.0.326
|
||||
Author(s) : Natalia Portillo
|
||||
|
||||
Component : NatiBot
|
||||
|
||||
Revision : r326
|
||||
Last change by : Natalia Portillo
|
||||
Date : 2010/01/01
|
||||
|
||||
--[ License ] --------------------------------------------------------------
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as
|
||||
published by the Free Software Foundation, either version 3 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
----------------------------------------------------------------------------
|
||||
Copyright (C) 2008-2014 Claunia.com
|
||||
****************************************************************************/
|
||||
namespace bot.Commands
|
||||
{
|
||||
using bot;
|
||||
using System;
|
||||
using OpenMetaverse;
|
||||
|
||||
public class GroundSitCommand : Command
|
||||
{
|
||||
public GroundSitCommand(SecondLifeBot SecondLifeBot)
|
||||
{
|
||||
base.Name = "gsit";
|
||||
base.Description = bot.Localization.clResourceManager.getText("Commands.GroundSit.Description");
|
||||
}
|
||||
|
||||
public override string Execute(string[] args, UUID fromAgentID, bool fromSL)
|
||||
{
|
||||
Client.Self.SitOnGround();
|
||||
|
||||
return bot.Localization.clResourceManager.getText("Commands.GroundSit.Sitting");
|
||||
}
|
||||
}
|
||||
}
|
||||
53
SLBot/bot/Commands/Agent/HealthCommand.cs
Normal file
53
SLBot/bot/Commands/Agent/HealthCommand.cs
Normal file
@@ -0,0 +1,53 @@
|
||||
/***************************************************************************
|
||||
The Disc Image Chef
|
||||
----------------------------------------------------------------------------
|
||||
|
||||
Filename : HealthComand.cs
|
||||
Version : 1.0.326
|
||||
Author(s) : Natalia Portillo
|
||||
|
||||
Component : NatiBot
|
||||
|
||||
Revision : r326
|
||||
Last change by : Natalia Portillo
|
||||
Date : 2010/01/01
|
||||
|
||||
--[ License ] --------------------------------------------------------------
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as
|
||||
published by the Free Software Foundation, either version 3 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
----------------------------------------------------------------------------
|
||||
Copyright (C) 2008-2014 Claunia.com
|
||||
****************************************************************************/
|
||||
namespace bot.Commands
|
||||
{
|
||||
using bot;
|
||||
using OpenMetaverse;
|
||||
using System;
|
||||
|
||||
public class HealthComand : Command
|
||||
{
|
||||
public HealthComand(SecondLifeBot SecondLifeBot)
|
||||
{
|
||||
base.Name = "health";
|
||||
base.Description = bot.Localization.clResourceManager.getText("Commands.Health.Description");
|
||||
}
|
||||
|
||||
public override string Execute(string[] args, UUID fromAgentID, bool fromSL)
|
||||
{
|
||||
return String.Format(bot.Localization.clResourceManager.getText("Commands.Health.Health"), Client.Self.Health);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
54
SLBot/bot/Commands/Agent/LocationCommand.cs
Normal file
54
SLBot/bot/Commands/Agent/LocationCommand.cs
Normal file
@@ -0,0 +1,54 @@
|
||||
/***************************************************************************
|
||||
The Disc Image Chef
|
||||
----------------------------------------------------------------------------
|
||||
|
||||
Filename : LocationCommand.cs
|
||||
Version : 1.0.326
|
||||
Author(s) : Natalia Portillo
|
||||
|
||||
Component : NatiBot
|
||||
|
||||
Revision : r326
|
||||
Last change by : Natalia Portillo
|
||||
Date : 2010/01/01
|
||||
|
||||
--[ License ] --------------------------------------------------------------
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as
|
||||
published by the Free Software Foundation, either version 3 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
----------------------------------------------------------------------------
|
||||
Copyright (C) 2008-2014 Claunia.com
|
||||
****************************************************************************/
|
||||
namespace bot.Commands
|
||||
{
|
||||
using bot;
|
||||
using OpenMetaverse;
|
||||
using System;
|
||||
|
||||
public class LocationCommand : Command
|
||||
{
|
||||
public LocationCommand(SecondLifeBot SecondLifeBot)
|
||||
{
|
||||
base.Name = "location";
|
||||
base.Description = bot.Localization.clResourceManager.getText("Commands.Location.Description");
|
||||
}
|
||||
|
||||
public override string Execute(string[] args, UUID fromAgentID, bool fromSL)
|
||||
{
|
||||
return String.Format(bot.Localization.clResourceManager.getText("Commands.Location.Location"), Client.Network.CurrentSim.ToString(),
|
||||
Client.Self.SimPosition.ToString());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
122
SLBot/bot/Commands/Agent/LookAtCommand.cs
Normal file
122
SLBot/bot/Commands/Agent/LookAtCommand.cs
Normal file
@@ -0,0 +1,122 @@
|
||||
/***************************************************************************
|
||||
The Disc Image Chef
|
||||
----------------------------------------------------------------------------
|
||||
|
||||
Filename : LookAtCommand.cs
|
||||
Version : 1.0.326
|
||||
Author(s) : Natalia Portillo
|
||||
|
||||
Component : NatiBot
|
||||
|
||||
Revision : r326
|
||||
Last change by : Natalia Portillo
|
||||
Date : 2010/01/01
|
||||
|
||||
--[ License ] --------------------------------------------------------------
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as
|
||||
published by the Free Software Foundation, either version 3 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
----------------------------------------------------------------------------
|
||||
Copyright (C) 2008-2014 Claunia.com
|
||||
****************************************************************************/
|
||||
namespace bot.Commands
|
||||
{
|
||||
using bot;
|
||||
using System;
|
||||
using OpenMetaverse;
|
||||
using System.Timers;
|
||||
|
||||
public class LookAtCommand : Command
|
||||
{
|
||||
public LookAtCommand(SecondLifeBot SecondLifeBot)
|
||||
{
|
||||
base.Name = "lookat";
|
||||
base.Description = bot.Localization.clResourceManager.getText("Commands.LookAt.Description") + " " + bot.Localization.clResourceManager.getText("Commands.LookAt.Usage");
|
||||
}
|
||||
|
||||
public override string Execute(string[] args, UUID fromAgentID, bool fromSL)
|
||||
{
|
||||
UUID targetID = UUID.Zero;
|
||||
string avatarName = "";
|
||||
bool isGroupKey = false;
|
||||
Avatar foundAv = null;
|
||||
Primitive foundPrim;
|
||||
Vector3d targetPosition;
|
||||
|
||||
if (args.Length == 1)
|
||||
{
|
||||
if (!UUID.TryParse(args[0], out targetID))
|
||||
return bot.Localization.clResourceManager.getText("Commands.LookAt.Usage");
|
||||
}
|
||||
else if (args.Length == 2)
|
||||
{
|
||||
avatarName = args[0] + " " + args[1];
|
||||
if (!Client.FindOneAvatar(avatarName, out targetID))
|
||||
return String.Format(bot.Localization.clResourceManager.getText("Commands.LookAt.AvNotFound"), avatarName);
|
||||
}
|
||||
else
|
||||
{
|
||||
return bot.Localization.clResourceManager.getText("Commands.LookAt.Usage");
|
||||
}
|
||||
|
||||
if (targetID != UUID.Zero)
|
||||
{
|
||||
Client.key2Name(targetID, out avatarName, out isGroupKey);
|
||||
|
||||
if (isGroupKey)
|
||||
return bot.Localization.clResourceManager.getText("Commands.LookAt.CannotGroup");
|
||||
|
||||
if (avatarName != "")
|
||||
{
|
||||
foundAv = Client.Network.CurrentSim.ObjectsAvatars.Find(
|
||||
delegate(Avatar avatar)
|
||||
{
|
||||
return (avatar.Name == avatarName);
|
||||
}
|
||||
);
|
||||
|
||||
if (foundAv == null)
|
||||
return String.Format(bot.Localization.clResourceManager.getText("Commands.LookAt.AvNotInSim"), avatarName);
|
||||
|
||||
targetPosition = new Vector3d(foundAv.Position);
|
||||
}
|
||||
else
|
||||
{
|
||||
foundPrim = Client.Network.CurrentSim.ObjectsPrimitives.Find(
|
||||
delegate(Primitive prim)
|
||||
{
|
||||
return prim.ID == targetID;
|
||||
}
|
||||
);
|
||||
|
||||
if (foundPrim == null)
|
||||
return String.Format(bot.Localization.clResourceManager.getText("Commands.LookAt.ObjNotInSim"), targetID);
|
||||
|
||||
targetPosition = new Vector3d(foundPrim.Position);
|
||||
}
|
||||
|
||||
Client.Self.LookAtEffect(Client.Self.AgentID, targetID, targetPosition, LookAtType.Focus, UUID.Zero);
|
||||
|
||||
if (avatarName == "")
|
||||
return String.Format(bot.Localization.clResourceManager.getText("Commands.LookAt.LookObj"), targetID);
|
||||
else
|
||||
return String.Format(bot.Localization.clResourceManager.getText("Commands.LookAt.LookAv"), avatarName);
|
||||
}
|
||||
else
|
||||
{
|
||||
return bot.Localization.clResourceManager.getText("Commands.LookAt.Usage");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
80
SLBot/bot/Commands/Agent/NaduCommand.cs
Normal file
80
SLBot/bot/Commands/Agent/NaduCommand.cs
Normal file
@@ -0,0 +1,80 @@
|
||||
/***************************************************************************
|
||||
The Disc Image Chef
|
||||
----------------------------------------------------------------------------
|
||||
|
||||
Filename : NaduCommand.cs
|
||||
Version : 1.0.326
|
||||
Author(s) : Natalia Portillo
|
||||
|
||||
Component : NatiBot
|
||||
|
||||
Revision : r326
|
||||
Last change by : Natalia Portillo
|
||||
Date : 2010/01/01
|
||||
|
||||
--[ License ] --------------------------------------------------------------
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as
|
||||
published by the Free Software Foundation, either version 3 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
----------------------------------------------------------------------------
|
||||
Copyright (C) 2008-2014 Claunia.com
|
||||
****************************************************************************/
|
||||
namespace bot.Commands
|
||||
{
|
||||
using bot;
|
||||
using System;
|
||||
using OpenMetaverse;
|
||||
|
||||
public class NaduCommand : Command
|
||||
{
|
||||
private static readonly UUID NADUID = new UUID("6C83A33E-90E4-A350-91FF-E10209BDEC97");
|
||||
|
||||
public NaduCommand(SecondLifeBot SecondLifeBot)
|
||||
{
|
||||
base.Name = "nadu";
|
||||
base.Description = bot.Localization.clResourceManager.getText("Commands.Nadu.Description") + " " + bot.Localization.clResourceManager.getText("Commands.Nadu.Usage");
|
||||
}
|
||||
|
||||
public override string Execute(string[] args, UUID fromAgentID, bool fromSL)
|
||||
{
|
||||
if (args.Length == 0)
|
||||
{
|
||||
if (Client.isNadu)
|
||||
return bot.Localization.clResourceManager.getText("Commands.Nadu.Nadu");
|
||||
else
|
||||
return bot.Localization.clResourceManager.getText("Commands.Nadu.NotNadu");
|
||||
}
|
||||
|
||||
if (args.Length != 1)
|
||||
return bot.Localization.clResourceManager.getText("Commands.Nadu.Usage");
|
||||
|
||||
if (args[0].ToLower() == "on")
|
||||
{
|
||||
Client.isNadu = true;
|
||||
Client.Self.AnimationStart(NADUID, true);
|
||||
return bot.Localization.clResourceManager.getText("Commands.Nadu.WillNadu");
|
||||
}
|
||||
else if (args[0].ToLower() == "off")
|
||||
{
|
||||
Client.isNadu = false;
|
||||
Client.Self.AnimationStop(NADUID, true);
|
||||
return bot.Localization.clResourceManager.getText("Commands.Nadu.WontNadu");
|
||||
}
|
||||
else
|
||||
{
|
||||
return bot.Localization.clResourceManager.getText("Commands.Nadu.Usage");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
86
SLBot/bot/Commands/Agent/PayCommand.cs
Normal file
86
SLBot/bot/Commands/Agent/PayCommand.cs
Normal file
@@ -0,0 +1,86 @@
|
||||
/***************************************************************************
|
||||
The Disc Image Chef
|
||||
----------------------------------------------------------------------------
|
||||
|
||||
Filename : PayCommand.cs
|
||||
Version : 1.0.326
|
||||
Author(s) : Natalia Portillo
|
||||
|
||||
Component : NatiBot
|
||||
|
||||
Revision : r326
|
||||
Last change by : Natalia Portillo
|
||||
Date : 2010/01/01
|
||||
|
||||
--[ License ] --------------------------------------------------------------
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as
|
||||
published by the Free Software Foundation, either version 3 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
----------------------------------------------------------------------------
|
||||
Copyright (C) 2008-2014 Claunia.com
|
||||
****************************************************************************/
|
||||
namespace bot.Commands
|
||||
{
|
||||
using bot;
|
||||
using OpenMetaverse;
|
||||
using System;
|
||||
|
||||
public class PayCommand : Command
|
||||
{
|
||||
public PayCommand(SecondLifeBot SecondLifeBot)
|
||||
{
|
||||
base.Name = "pay";
|
||||
base.Description = bot.Localization.clResourceManager.getText("Commands.Pay.Description") + " " + bot.Localization.clResourceManager.getText("Commands.Pay.Usage");
|
||||
}
|
||||
|
||||
public override string Execute(string[] args, UUID fromAgentID, bool fromSL)
|
||||
{
|
||||
int amount;
|
||||
UUID avatarID;
|
||||
string avatarName;
|
||||
|
||||
if (args.Length == 1)
|
||||
{
|
||||
avatarID = Client.MasterKey;
|
||||
}
|
||||
else if (args.Length == 2)
|
||||
{
|
||||
if (!UUID.TryParse(args[1], out avatarID))
|
||||
{
|
||||
return bot.Localization.clResourceManager.getText("Commands.Pay.Usage");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
return bot.Localization.clResourceManager.getText("Commands.Pay.Usage");
|
||||
}
|
||||
|
||||
if (!Int32.TryParse(args[0], out amount))
|
||||
if (args[0].ToLower().Equals("all"))
|
||||
amount = Client.Self.Balance;
|
||||
else
|
||||
return bot.Localization.clResourceManager.getText("Commands.Pay.Usage");
|
||||
|
||||
if (!Client.key2Name(avatarID, out avatarName))
|
||||
avatarName = avatarID.ToString();
|
||||
|
||||
if (amount > Client.Self.Balance)
|
||||
amount = Client.Self.Balance;
|
||||
|
||||
Client.Self.GiveAvatarMoney(avatarID, amount, String.Format(bot.Localization.clResourceManager.getText("Commands.Pay.Message"), amount));
|
||||
return String.Format(bot.Localization.clResourceManager.getText("Commands.Pay.Gave"), amount, avatarName);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
65
SLBot/bot/Commands/Agent/PickCommand.cs
Normal file
65
SLBot/bot/Commands/Agent/PickCommand.cs
Normal file
@@ -0,0 +1,65 @@
|
||||
/***************************************************************************
|
||||
The Disc Image Chef
|
||||
----------------------------------------------------------------------------
|
||||
|
||||
Filename : PickCommand.cs
|
||||
Version : 1.0.326
|
||||
Author(s) : Natalia Portillo
|
||||
|
||||
Component : NatiBot
|
||||
|
||||
Revision : r326
|
||||
Last change by : Natalia Portillo
|
||||
Date : 2010/01/01
|
||||
|
||||
--[ License ] --------------------------------------------------------------
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as
|
||||
published by the Free Software Foundation, either version 3 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
----------------------------------------------------------------------------
|
||||
Copyright (C) 2008-2014 Claunia.com
|
||||
****************************************************************************/
|
||||
namespace bot.Commands
|
||||
{
|
||||
using bot;
|
||||
using System;
|
||||
using OpenMetaverse;
|
||||
|
||||
public class PickCommand : Command
|
||||
{
|
||||
public PickCommand(SecondLifeBot SecondLifeBot)
|
||||
{
|
||||
base.Name = "pick";
|
||||
base.Description = bot.Localization.clResourceManager.getText("Commands.Pick.Description") + " " + bot.Localization.clResourceManager.getText("Commands.Pick.Usage");
|
||||
}
|
||||
|
||||
public override string Execute(string[] args, UUID fromAgentID, bool fromSL)
|
||||
{
|
||||
string description = "";
|
||||
|
||||
if (args.Length == 0)
|
||||
return bot.Localization.clResourceManager.getText("Commands.Pick.Usage");
|
||||
|
||||
foreach (string arg in args)
|
||||
{
|
||||
description += arg;
|
||||
description += " ";
|
||||
}
|
||||
|
||||
Client.Self.PickInfoUpdate(UUID.Random(), false, UUID.Zero, bot.Localization.clResourceManager.getText("Commands.Pick.PickName"), Client.Self.GlobalPosition, UUID.Zero, description);
|
||||
|
||||
return bot.Localization.clResourceManager.getText("Commands.Pick.Picking");
|
||||
}
|
||||
}
|
||||
}
|
||||
76
SLBot/bot/Commands/Agent/PlaySoundCommand.cs
Normal file
76
SLBot/bot/Commands/Agent/PlaySoundCommand.cs
Normal file
@@ -0,0 +1,76 @@
|
||||
/***************************************************************************
|
||||
The Disc Image Chef
|
||||
----------------------------------------------------------------------------
|
||||
|
||||
Filename : PlaySoundCommand.cs
|
||||
Version : 1.0.326
|
||||
Author(s) : Natalia Portillo
|
||||
|
||||
Component : NatiBot
|
||||
|
||||
Revision : r326
|
||||
Last change by : Natalia Portillo
|
||||
Date : 2010/01/01
|
||||
|
||||
--[ License ] --------------------------------------------------------------
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as
|
||||
published by the Free Software Foundation, either version 3 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
----------------------------------------------------------------------------
|
||||
Copyright (C) 2008-2014 Claunia.com
|
||||
****************************************************************************/
|
||||
using System;
|
||||
using OpenMetaverse;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace bot.Core.Commands
|
||||
{
|
||||
public class PlaySoundCommand : bot.Commands.Command
|
||||
{
|
||||
private Dictionary<UUID, string> m_BuiltInAnimations = new Dictionary<UUID, string>(Animations.ToDictionary());
|
||||
|
||||
public PlaySoundCommand(SecondLifeBot SecondLifeBot)
|
||||
{
|
||||
Client = SecondLifeBot;
|
||||
Name = "playsound";
|
||||
Description = bot.Localization.clResourceManager.getText("Commands.PlaySound.Description") + " " + bot.Localization.clResourceManager.getText("Commands.PlaySound.Usage");
|
||||
}
|
||||
|
||||
public override string Execute(string[] args, UUID fromAgentID, bool from_SL)
|
||||
{
|
||||
UUID soundID = UUID.Zero;
|
||||
|
||||
if (args.Length == 1)
|
||||
{
|
||||
if (UUID.TryParse(args[0], out soundID))
|
||||
{
|
||||
if (soundID == UUID.Zero)
|
||||
return bot.Localization.clResourceManager.getText("Commands.PlaySound.Usage");
|
||||
|
||||
Client.Sound.PlaySound(soundID);
|
||||
return String.Format(bot.Localization.clResourceManager.getText("Commands.PlaySound.Playing"), soundID);
|
||||
}
|
||||
else
|
||||
{
|
||||
return bot.Localization.clResourceManager.getText("Commands.PlaySound.Usage");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
return bot.Localization.clResourceManager.getText("Commands.PlaySound.Usage");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
54
SLBot/bot/Commands/Agent/SetHomeCommand.cs
Normal file
54
SLBot/bot/Commands/Agent/SetHomeCommand.cs
Normal file
@@ -0,0 +1,54 @@
|
||||
/***************************************************************************
|
||||
The Disc Image Chef
|
||||
----------------------------------------------------------------------------
|
||||
|
||||
Filename : SetHomeCommand.cs
|
||||
Version : 1.0.326
|
||||
Author(s) : Natalia Portillo
|
||||
|
||||
Component : NatiBot
|
||||
|
||||
Revision : r326
|
||||
Last change by : Natalia Portillo
|
||||
Date : 2010/01/01
|
||||
|
||||
--[ License ] --------------------------------------------------------------
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as
|
||||
published by the Free Software Foundation, either version 3 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
----------------------------------------------------------------------------
|
||||
Copyright (C) 2008-2014 Claunia.com
|
||||
****************************************************************************/
|
||||
namespace bot.Commands
|
||||
{
|
||||
using bot;
|
||||
using OpenMetaverse;
|
||||
using System;
|
||||
|
||||
public class SetHomeCommand : Command
|
||||
{
|
||||
public SetHomeCommand(SecondLifeBot SecondLifeBot)
|
||||
{
|
||||
base.Name = "sethome";
|
||||
base.Description = bot.Localization.clResourceManager.getText("Commands.SetHome.Description");
|
||||
}
|
||||
|
||||
public override string Execute(string[] args, UUID fromAgentID, bool fromSL)
|
||||
{
|
||||
Client.Self.SetHome();
|
||||
return bot.Localization.clResourceManager.getText("Commands.SetHome.Set");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
90
SLBot/bot/Commands/Agent/WearCommand.cs
Normal file
90
SLBot/bot/Commands/Agent/WearCommand.cs
Normal file
@@ -0,0 +1,90 @@
|
||||
/***************************************************************************
|
||||
The Disc Image Chef
|
||||
----------------------------------------------------------------------------
|
||||
|
||||
Filename : WearCommand.cs
|
||||
Version : 1.0.326
|
||||
Author(s) : Natalia Portillo
|
||||
|
||||
Component : NatiBot
|
||||
|
||||
Revision : r326
|
||||
Last change by : Natalia Portillo
|
||||
Date : 2010/01/01
|
||||
|
||||
--[ License ] --------------------------------------------------------------
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as
|
||||
published by the Free Software Foundation, either version 3 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
----------------------------------------------------------------------------
|
||||
Copyright (C) 2008-2014 Claunia.com
|
||||
****************************************************************************/
|
||||
namespace bot.Commands
|
||||
{
|
||||
using bot;
|
||||
using OpenMetaverse;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
|
||||
public class WearCommand : Command
|
||||
{
|
||||
public WearCommand(SecondLifeBot SecondLifeBot)
|
||||
{
|
||||
base.Client = SecondLifeBot;
|
||||
base.Name = "wear";
|
||||
base.Description = bot.Localization.clResourceManager.getText("Commands.Wear.Description") + " " + bot.Localization.clResourceManager.getText("Commands.Wear.Usage");
|
||||
}
|
||||
|
||||
public override string Execute(string[] args, UUID fromAgentID, bool fromSL)
|
||||
{
|
||||
if (args.Length < 1)
|
||||
return bot.Localization.clResourceManager.getText("Commands.Wear.Usage");
|
||||
|
||||
string target = String.Empty;
|
||||
bool bake = true;
|
||||
|
||||
for (int ct = 0; ct < args.Length; ct++)
|
||||
{
|
||||
target += args[ct] + " ";
|
||||
}
|
||||
|
||||
target = target.TrimEnd();
|
||||
|
||||
UUID folder = Client.Inventory.FindObjectByPath(Client.Inventory.Store.RootFolder.UUID, Client.Self.AgentID, target, 20 * 1000);
|
||||
|
||||
if (folder == UUID.Zero)
|
||||
{
|
||||
return "Outfit path " + target + " not found";
|
||||
}
|
||||
|
||||
List<InventoryBase> contents = Client.Inventory.FolderContents(folder, Client.Self.AgentID, true, true, InventorySortOrder.ByName, 20 * 1000);
|
||||
List<InventoryItem> items = new List<InventoryItem>();
|
||||
|
||||
if (contents == null)
|
||||
{
|
||||
return "Failed to get contents of " + target;
|
||||
}
|
||||
|
||||
foreach (InventoryBase item in contents)
|
||||
{
|
||||
if (item is InventoryItem)
|
||||
items.Add((InventoryItem)item);
|
||||
}
|
||||
|
||||
Client.Appearance.ReplaceOutfit(items);
|
||||
|
||||
return "Starting to change outfit to " + target;
|
||||
}
|
||||
}
|
||||
}
|
||||
101
SLBot/bot/Commands/Avatars/AttachmentsUUID.cs
Normal file
101
SLBot/bot/Commands/Avatars/AttachmentsUUID.cs
Normal file
@@ -0,0 +1,101 @@
|
||||
/***************************************************************************
|
||||
The Disc Image Chef
|
||||
----------------------------------------------------------------------------
|
||||
|
||||
Filename : AttachmentsUUIDCommand.cs
|
||||
Version : 1.0.326
|
||||
Author(s) : Natalia Portillo
|
||||
|
||||
Component : NatiBot
|
||||
|
||||
Revision : r326
|
||||
Last change by : Natalia Portillo
|
||||
Date : 2010/01/01
|
||||
|
||||
--[ License ] --------------------------------------------------------------
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as
|
||||
published by the Free Software Foundation, either version 3 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
----------------------------------------------------------------------------
|
||||
Copyright (C) 2008-2014 Claunia.com
|
||||
****************************************************************************/
|
||||
namespace bot.Commands
|
||||
{
|
||||
using bot;
|
||||
using OpenMetaverse;
|
||||
using OpenMetaverse.Utilities;
|
||||
using System;
|
||||
using System.Text;
|
||||
using System.Collections.Generic;
|
||||
|
||||
public class AttachmentsUUIDCommand : Command
|
||||
{
|
||||
public AttachmentsUUIDCommand(SecondLifeBot SecondLifeBot)
|
||||
{
|
||||
base.Client = SecondLifeBot;
|
||||
base.Name = "attachmentsuuid";
|
||||
base.Description = bot.Localization.clResourceManager.getText("Commands.AttachmentsUUID.Description") + " " + bot.Localization.clResourceManager.getText("Commands.AttachmentsUUID.Usage");
|
||||
}
|
||||
|
||||
public override string Execute(string[] args, UUID fromAgentID, bool fromSL)
|
||||
{
|
||||
StringBuilder builder = new StringBuilder();
|
||||
|
||||
if (args.Length < 1)
|
||||
{
|
||||
return bot.Localization.clResourceManager.getText("Commands.AttachmentsUUID.Usage");
|
||||
}
|
||||
|
||||
List<Avatar> avatars = Client.Network.Simulators[0].ObjectsAvatars.FindAll(
|
||||
delegate(Avatar av)
|
||||
{
|
||||
return av.ID == (UUID)args[0];
|
||||
}
|
||||
);
|
||||
|
||||
List<Primitive> attachments = Client.Network.CurrentSim.ObjectsPrimitives.FindAll(
|
||||
delegate(Primitive prim)
|
||||
{
|
||||
return prim.ParentID == avatars[0].LocalID;
|
||||
}
|
||||
);
|
||||
|
||||
for (int i = 0; i < attachments.Count; i++)
|
||||
{
|
||||
Primitive prim = attachments[i];
|
||||
AttachmentPoint point = StateToAttachmentPoint(prim.PrimData.State);
|
||||
|
||||
// TODO: Fetch properties for the objects with missing property sets so we can show names
|
||||
//Logger.Log(String.Format("[Attachment @ {0}] LocalID: {1} UUID: {2} Offset: {3}",
|
||||
// point, prim.LocalID, prim.ID, prim.Position), Helpers.LogLevel.Info, Client);
|
||||
|
||||
builder.AppendFormat(bot.Localization.clResourceManager.getText("Commands.Attachments.Attachment"),
|
||||
point, prim.LocalID, prim.ID, prim.Position);
|
||||
|
||||
builder.AppendLine();
|
||||
}
|
||||
|
||||
builder.AppendLine(String.Format(bot.Localization.clResourceManager.getText("Commands.Attachments.Found"), attachments.Count));
|
||||
|
||||
return builder.ToString();
|
||||
}
|
||||
|
||||
public static AttachmentPoint StateToAttachmentPoint(uint state)
|
||||
{
|
||||
const uint ATTACHMENT_MASK = 0xF0;
|
||||
uint fixedState = (((byte)state & ATTACHMENT_MASK) >> 4) | (((byte)state & ~ATTACHMENT_MASK) << 4);
|
||||
return (AttachmentPoint)fixedState;
|
||||
}
|
||||
}
|
||||
}
|
||||
313
SLBot/bot/Commands/Avatars/AvatarInfoCommand.cs
Normal file
313
SLBot/bot/Commands/Avatars/AvatarInfoCommand.cs
Normal file
@@ -0,0 +1,313 @@
|
||||
/***************************************************************************
|
||||
The Disc Image Chef
|
||||
----------------------------------------------------------------------------
|
||||
|
||||
Filename : AvatarInfoCommand.cs
|
||||
Version : 1.0.326
|
||||
Author(s) : Natalia Portillo
|
||||
|
||||
Component : NatiBot
|
||||
|
||||
Revision : r326
|
||||
Last change by : Natalia Portillo
|
||||
Date : 2010/01/01
|
||||
|
||||
--[ License ] --------------------------------------------------------------
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as
|
||||
published by the Free Software Foundation, either version 3 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
----------------------------------------------------------------------------
|
||||
Copyright (C) 2008-2014 Claunia.com
|
||||
****************************************************************************/
|
||||
namespace bot.Commands
|
||||
{
|
||||
using bot;
|
||||
using OpenMetaverse;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using System.Threading;
|
||||
|
||||
public class AvatarInfoCommand : Command
|
||||
{
|
||||
ManualResetEvent WaitforAvatar = new ManualResetEvent(false);
|
||||
Avatar.AvatarProperties foundAvProperties;
|
||||
Avatar.Interests foundAvInterests;
|
||||
List<AvatarGroup> foundAvGroups = new List<AvatarGroup>();
|
||||
UUID foundAvUUID;
|
||||
bool foundAvPropertiesCorrectlyGot = false;
|
||||
bool foundAvInterestsCorrectlyGot = false;
|
||||
bool foundAvGroupsCorrectlyGot = false;
|
||||
bool moreThanOneAvFound = false;
|
||||
|
||||
public AvatarInfoCommand(SecondLifeBot SecondLifeBot)
|
||||
{
|
||||
Name = "avatarinfo";
|
||||
Description = bot.Localization.clResourceManager.getText("Commands.AvatarInfo.Description") + " " + bot.Localization.clResourceManager.getText("Commands.AvatarInfo.Usage");
|
||||
}
|
||||
|
||||
void Avatars_AvatarPropertiesReply(object sender, AvatarPropertiesReplyEventArgs e)
|
||||
{
|
||||
if (e.AvatarID == foundAvUUID)
|
||||
{
|
||||
foundAvPropertiesCorrectlyGot = true;
|
||||
foundAvProperties = e.Properties;
|
||||
}
|
||||
else
|
||||
{
|
||||
foundAvPropertiesCorrectlyGot = false;
|
||||
}
|
||||
|
||||
WaitforAvatar.Set();
|
||||
return;
|
||||
}
|
||||
|
||||
public override string Execute(string[] args, UUID fromAgentID, bool something_else)
|
||||
{
|
||||
Client.Avatars.AvatarPropertiesReply += new EventHandler<AvatarPropertiesReplyEventArgs>(Avatars_AvatarPropertiesReply);
|
||||
|
||||
moreThanOneAvFound = false;
|
||||
|
||||
foundAvUUID = UUID.Zero;
|
||||
|
||||
Avatar foundAv = null;
|
||||
|
||||
foundAvProperties = new Avatar.AvatarProperties();
|
||||
foundAvInterests = new Avatar.Interests();
|
||||
foundAvGroups = new List<AvatarGroup>();
|
||||
WaitforAvatar = new ManualResetEvent(false);
|
||||
|
||||
if (args.Length != 2)
|
||||
return bot.Localization.clResourceManager.getText("Commands.AvatarInfo.Usage");
|
||||
|
||||
string targetName = String.Format("{0} {1}", args[0], args[1]);
|
||||
|
||||
Client.FindOneAvatar(targetName, out foundAvUUID, out moreThanOneAvFound);
|
||||
|
||||
foundAv = Client.Network.CurrentSim.ObjectsAvatars.Find(
|
||||
delegate(Avatar avatar)
|
||||
{
|
||||
return (avatar.Name == targetName);
|
||||
}
|
||||
);
|
||||
|
||||
if (foundAvUUID != UUID.Zero)
|
||||
{
|
||||
StringBuilder output = new StringBuilder();
|
||||
|
||||
if (moreThanOneAvFound)
|
||||
{
|
||||
output.AppendFormat("More than one avatar found with that search terms.");
|
||||
output.AppendLine();
|
||||
output.AppendFormat("{0} ({1})", targetName, foundAvUUID);
|
||||
}
|
||||
else
|
||||
{
|
||||
output.AppendFormat("{0} ({1})", targetName, foundAvUUID);
|
||||
}
|
||||
|
||||
output.AppendLine();
|
||||
|
||||
Client.Avatars.RequestAvatarProperties(foundAvUUID);
|
||||
|
||||
if (!WaitforAvatar.WaitOne(10000, false))
|
||||
{
|
||||
Client.Avatars.AvatarPropertiesReply -= Avatars_AvatarPropertiesReply;
|
||||
output.AppendLine(bot.Localization.clResourceManager.getText("Commands.AvatarInfo.NotProfile"));
|
||||
}
|
||||
else
|
||||
{
|
||||
Client.Avatars.AvatarPropertiesReply -= Avatars_AvatarPropertiesReply;
|
||||
if (foundAvPropertiesCorrectlyGot == true)
|
||||
{
|
||||
// CLAUNIA
|
||||
// For some reason it is getting offline
|
||||
/*
|
||||
switch (foundAvProperties.Online)
|
||||
{
|
||||
case true:
|
||||
output.AppendFormat("Avatar conectado");
|
||||
output.AppendLine();
|
||||
break;
|
||||
case false:
|
||||
output.AppendFormat("Avatar NO conectado");
|
||||
output.AppendLine();
|
||||
break;
|
||||
}
|
||||
|
||||
*/
|
||||
|
||||
output.AppendLine(bot.Localization.clResourceManager.getText("Commands.AvatarInfo.SecondLife"));
|
||||
output.AppendFormat(bot.Localization.clResourceManager.getText("Commands.AvatarInfo.Born"), foundAvProperties.BornOn);
|
||||
output.AppendLine();
|
||||
//output.AppendFormat(" Flags: {0}", foundAvProperties.Flags.ToString()); output.AppendLine();
|
||||
output.AppendFormat(bot.Localization.clResourceManager.getText("Commands.AvatarInfo.SecondPhoto"), foundAvProperties.ProfileImage.ToString());
|
||||
output.AppendLine();
|
||||
|
||||
output.Append(bot.Localization.clResourceManager.getText("Commands.AvatarInfo.Account"));
|
||||
if (foundAvProperties.Identified)
|
||||
output.Append(bot.Localization.clResourceManager.getText("Commands.AvatarInfo.Identified"));
|
||||
if (foundAvProperties.MaturePublish)
|
||||
output.Append(bot.Localization.clResourceManager.getText("Commands.AvatarInfo.Adult"));
|
||||
if (foundAvProperties.Transacted)
|
||||
output.Append(bot.Localization.clResourceManager.getText("Commands.AvatarInfo.Payment"));
|
||||
if (foundAvProperties.AllowPublish)
|
||||
output.Append(bot.Localization.clResourceManager.getText("Commands.AvatarInfo.Public"));
|
||||
output.AppendLine(".");
|
||||
|
||||
output.AppendFormat(bot.Localization.clResourceManager.getText("Commands.AvatarInfo.Partner"), foundAvProperties.Partner.ToString());
|
||||
output.AppendLine();
|
||||
output.AppendFormat(bot.Localization.clResourceManager.getText("Commands.AvatarInfo.Charter"), foundAvProperties.CharterMember);
|
||||
output.AppendLine();
|
||||
|
||||
WaitforAvatar.Reset();
|
||||
Client.Avatars.AvatarGroupsReply += new EventHandler<AvatarGroupsReplyEventArgs>(Avatars_OnAvatarGroups);
|
||||
Client.Avatars.RequestAvatarProperties(foundAvUUID);
|
||||
|
||||
if (!WaitforAvatar.WaitOne(2500, false))
|
||||
{
|
||||
Client.Avatars.AvatarGroupsReply -= Avatars_OnAvatarGroups;
|
||||
output.AppendLine(bot.Localization.clResourceManager.getText("Commands.AvatarInfo.NotGroups"));
|
||||
}
|
||||
else
|
||||
{
|
||||
Client.Avatars.AvatarGroupsReply -= Avatars_OnAvatarGroups;
|
||||
if (foundAvGroupsCorrectlyGot)
|
||||
{
|
||||
output.AppendLine(bot.Localization.clResourceManager.getText("Commands.AvatarInfo.Groups"));
|
||||
foreach (AvatarGroup avGroup in foundAvGroups)
|
||||
{
|
||||
output.AppendFormat(" {0} ({1})", avGroup.GroupName, avGroup.GroupID);
|
||||
output.AppendLine();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
output.AppendLine(bot.Localization.clResourceManager.getText("Commands.AvatarInfo.About"));
|
||||
output.AppendFormat(" {0}", foundAvProperties.AboutText);
|
||||
output.AppendLine();
|
||||
output.AppendLine();
|
||||
output.AppendFormat(bot.Localization.clResourceManager.getText("Commands.AvatarInfo.WebProfile"), foundAvProperties.ProfileURL);
|
||||
output.AppendLine();
|
||||
output.AppendLine();
|
||||
|
||||
WaitforAvatar.Reset();
|
||||
Client.Avatars.AvatarInterestsReply += new EventHandler<AvatarInterestsReplyEventArgs>(Avatars_OnAvatarInterests);
|
||||
Client.Avatars.RequestAvatarProperties(foundAvUUID);
|
||||
|
||||
if (!WaitforAvatar.WaitOne(1000, false))
|
||||
{
|
||||
Client.Avatars.AvatarInterestsReply -= Avatars_OnAvatarInterests;
|
||||
output.AppendLine(bot.Localization.clResourceManager.getText("Commands.AvatarInfo.NotInterests"));
|
||||
}
|
||||
else
|
||||
{
|
||||
Client.Avatars.AvatarInterestsReply -= Avatars_OnAvatarInterests;
|
||||
if (foundAvInterestsCorrectlyGot)
|
||||
{
|
||||
output.AppendLine(bot.Localization.clResourceManager.getText("Commands.AvatarInfo.Interests"));
|
||||
output.AppendFormat(bot.Localization.clResourceManager.getText("Commands.AvatarInfo.Wants"), foundAvInterests.WantToMask.ToString("X"), foundAvInterests.WantToText);
|
||||
output.AppendLine();
|
||||
output.AppendFormat(bot.Localization.clResourceManager.getText("Commands.AvatarInfo.Skills"), foundAvInterests.SkillsMask.ToString("X"), foundAvInterests.SkillsText);
|
||||
output.AppendLine();
|
||||
output.AppendFormat(bot.Localization.clResourceManager.getText("Commands.AvatarInfo.Languages"), foundAvInterests.LanguagesText);
|
||||
output.AppendLine();
|
||||
output.AppendLine();
|
||||
}
|
||||
}
|
||||
|
||||
output.AppendLine(bot.Localization.clResourceManager.getText("Commands.AvatarInfo.FirstLife"));
|
||||
output.AppendFormat(bot.Localization.clResourceManager.getText("Commands.AvatarInfo.FirstPhoto"), foundAvProperties.FirstLifeImage.ToString());
|
||||
output.AppendLine();
|
||||
output.AppendFormat(bot.Localization.clResourceManager.getText("Commands.AvatarInfo.Information"), foundAvProperties.FirstLifeText);
|
||||
output.AppendLine();
|
||||
output.AppendLine();
|
||||
}
|
||||
else
|
||||
{
|
||||
output.AppendLine(bot.Localization.clResourceManager.getText("Commands.AvatarInfo.Error"));
|
||||
}
|
||||
}
|
||||
|
||||
// CLAUNIA
|
||||
// There is no event nor method for requesting statistics.
|
||||
/*
|
||||
output.AppendLine("Estadísticas:");
|
||||
output.AppendFormat(" Apariencia: {0} votos positivos, {1} votos negativos", foundAv.ProfileStatistics.AppearancePositive, foundAv.ProfileStatistics.AppearanceNegative); output.AppendLine();
|
||||
output.AppendFormat(" Comportamiento: {0} votos positivos, {1} votos negativos", foundAv.ProfileStatistics.BehaviorPositive, foundAv.ProfileStatistics.BehaviorNegative); output.AppendLine();
|
||||
output.AppendFormat(" Construcción: {0} votos positivos, {1} votos negativos", foundAv.ProfileStatistics.BuildingPositive, foundAv.ProfileStatistics.BuildingNegative); output.AppendLine();
|
||||
output.AppendFormat(" Votos emitidos: {0} positivos, {1} negativos", foundAv.ProfileStatistics.GivenPositive, foundAv.ProfileStatistics.GivenNegative); output.AppendLine();
|
||||
|
||||
output.AppendLine();*/
|
||||
|
||||
if (foundAv != null)
|
||||
{
|
||||
if (foundAv.Textures != null)
|
||||
{
|
||||
output.AppendLine(bot.Localization.clResourceManager.getText("Commands.AvatarInfo.Textures"));
|
||||
for (int i = 0; i < foundAv.Textures.FaceTextures.Length; i++)
|
||||
{
|
||||
if (foundAv.Textures.FaceTextures[i] != null)
|
||||
{
|
||||
Primitive.TextureEntryFace face = foundAv.Textures.FaceTextures[i];
|
||||
AvatarTextureIndex type = (AvatarTextureIndex)i;
|
||||
|
||||
output.AppendFormat(" {0}: {1}", type, face.TextureID);
|
||||
output.AppendLine();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return output.ToString();
|
||||
}
|
||||
else
|
||||
{
|
||||
return String.Format(bot.Localization.clResourceManager.getText("Commands.AvatarInfo.NotFound"), targetName);
|
||||
}
|
||||
}
|
||||
|
||||
void Avatars_OnAvatarGroups(object sender, AvatarGroupsReplyEventArgs e)
|
||||
{
|
||||
if (e.AvatarID == foundAvUUID)
|
||||
{
|
||||
foundAvGroupsCorrectlyGot = true;
|
||||
foundAvGroups = e.Groups;
|
||||
}
|
||||
else
|
||||
{
|
||||
foundAvGroupsCorrectlyGot = false;
|
||||
}
|
||||
|
||||
WaitforAvatar.Set();
|
||||
return;
|
||||
}
|
||||
|
||||
void Avatars_OnAvatarInterests(object sender, AvatarInterestsReplyEventArgs e)
|
||||
{
|
||||
if (e.AvatarID == foundAvUUID)
|
||||
{
|
||||
foundAvInterestsCorrectlyGot = true;
|
||||
foundAvInterests = e.Interests;
|
||||
}
|
||||
else
|
||||
{
|
||||
foundAvInterestsCorrectlyGot = false;
|
||||
}
|
||||
|
||||
WaitforAvatar.Set();
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
115
SLBot/bot/Commands/Avatars/CloneCommand.cs
Normal file
115
SLBot/bot/Commands/Avatars/CloneCommand.cs
Normal file
@@ -0,0 +1,115 @@
|
||||
/***************************************************************************
|
||||
The Disc Image Chef
|
||||
----------------------------------------------------------------------------
|
||||
|
||||
Filename : CloneCommand.cs
|
||||
Version : 1.0.326
|
||||
Author(s) : Natalia Portillo
|
||||
|
||||
Component : NatiBot
|
||||
|
||||
Revision : r326
|
||||
Last change by : Natalia Portillo
|
||||
Date : 2010/01/01
|
||||
|
||||
--[ License ] --------------------------------------------------------------
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as
|
||||
published by the Free Software Foundation, either version 3 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
----------------------------------------------------------------------------
|
||||
Copyright (C) 2008-2014 Claunia.com
|
||||
****************************************************************************/
|
||||
namespace bot.Commands
|
||||
{
|
||||
using bot;
|
||||
using OpenMetaverse;
|
||||
using OpenMetaverse.Packets;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Threading;
|
||||
|
||||
public class CloneCommand : Command
|
||||
{
|
||||
uint SerialNum = 2;
|
||||
|
||||
public CloneCommand(SecondLifeBot SecondLifeBot)
|
||||
{
|
||||
base.Name = "clone";
|
||||
base.Description = bot.Localization.clResourceManager.getText("Commands.Clone.Description") + " " + bot.Localization.clResourceManager.getText("Commands.Clone.Usage");
|
||||
}
|
||||
|
||||
public override string Execute(string[] args, UUID fromAgentID, bool something_else)
|
||||
{
|
||||
string targetName = String.Empty;
|
||||
List<DirectoryManager.AgentSearchData> matches;
|
||||
|
||||
for (int ct = 0; ct < args.Length; ct++)
|
||||
targetName = targetName + args[ct] + " ";
|
||||
targetName = targetName.TrimEnd();
|
||||
|
||||
if (targetName.Length == 0)
|
||||
return bot.Localization.clResourceManager.getText("Commands.Clone.Usage");
|
||||
|
||||
if (Client.Directory.PeopleSearch(DirectoryManager.DirFindFlags.People, targetName, 0, 1000 * 10,
|
||||
out matches) && matches.Count > 0)
|
||||
{
|
||||
UUID target = matches[0].AgentID;
|
||||
targetName += String.Format(" ({0})", target);
|
||||
|
||||
if (Client.Appearances.ContainsKey(target))
|
||||
{
|
||||
#region AvatarAppearance to AgentSetAppearance
|
||||
|
||||
AvatarAppearancePacket appearance = Client.Appearances[target];
|
||||
|
||||
AgentSetAppearancePacket set = new AgentSetAppearancePacket();
|
||||
set.AgentData.AgentID = Client.Self.AgentID;
|
||||
set.AgentData.SessionID = Client.Self.SessionID;
|
||||
set.AgentData.SerialNum = SerialNum++;
|
||||
set.AgentData.Size = new Vector3(2f, 2f, 2f); // HACK
|
||||
|
||||
set.WearableData = new AgentSetAppearancePacket.WearableDataBlock[0];
|
||||
set.VisualParam = new AgentSetAppearancePacket.VisualParamBlock[appearance.VisualParam.Length];
|
||||
|
||||
for (int i = 0; i < appearance.VisualParam.Length; i++)
|
||||
{
|
||||
set.VisualParam[i] = new AgentSetAppearancePacket.VisualParamBlock();
|
||||
set.VisualParam[i].ParamValue = appearance.VisualParam[i].ParamValue;
|
||||
}
|
||||
|
||||
set.ObjectData.TextureEntry = appearance.ObjectData.TextureEntry;
|
||||
|
||||
#endregion AvatarAppearance to AgentSetAppearance
|
||||
|
||||
// Detach everything we are currently wearing
|
||||
Client.Appearance.AddAttachments(new List<InventoryItem>(), true);
|
||||
|
||||
// Send the new appearance packet
|
||||
Client.Network.SendPacket(set);
|
||||
|
||||
return String.Format(bot.Localization.clResourceManager.getText("Commands.Clone.Done"), targetName);
|
||||
}
|
||||
else
|
||||
{
|
||||
return String.Format(bot.Localization.clResourceManager.getText("Commands.Clone.Unknown"), targetName);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
return String.Format(bot.Localization.clResourceManager.getText("Commands.Clone.NotFound"), targetName);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
186
SLBot/bot/Commands/Avatars/CloneProfileCommand.cs
Normal file
186
SLBot/bot/Commands/Avatars/CloneProfileCommand.cs
Normal file
@@ -0,0 +1,186 @@
|
||||
/***************************************************************************
|
||||
The Disc Image Chef
|
||||
----------------------------------------------------------------------------
|
||||
|
||||
Filename : CloneProfileCommand.cs
|
||||
Version : 1.0.326
|
||||
Author(s) : Natalia Portillo
|
||||
|
||||
Component : NatiBot
|
||||
|
||||
Revision : r326
|
||||
Last change by : Natalia Portillo
|
||||
Date : 2010/01/01
|
||||
|
||||
--[ License ] --------------------------------------------------------------
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as
|
||||
published by the Free Software Foundation, either version 3 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
----------------------------------------------------------------------------
|
||||
Copyright (C) 2008-2014 Claunia.com
|
||||
****************************************************************************/
|
||||
namespace bot.Commands
|
||||
{
|
||||
using bot;
|
||||
using OpenMetaverse;
|
||||
using OpenMetaverse.Packets;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Threading;
|
||||
|
||||
public class CloneProfileCommand : Command
|
||||
{
|
||||
Avatar.AvatarProperties Properties;
|
||||
Avatar.Interests Interests;
|
||||
List<UUID> Groups = new List<UUID>();
|
||||
bool ReceivedProperties = false;
|
||||
bool ReceivedInterests = false;
|
||||
bool ReceivedGroups = false;
|
||||
ManualResetEvent ReceivedProfileEvent = new ManualResetEvent(false);
|
||||
|
||||
public CloneProfileCommand(SecondLifeBot SecondLifeBot)
|
||||
{
|
||||
SecondLifeBot.Avatars.AvatarInterestsReply += new EventHandler<AvatarInterestsReplyEventArgs>(Avatars_AvatarInterestsReply);
|
||||
SecondLifeBot.Avatars.AvatarPropertiesReply += new EventHandler<AvatarPropertiesReplyEventArgs>(Avatars_AvatarPropertiesReply);
|
||||
SecondLifeBot.Avatars.AvatarGroupsReply += new EventHandler<AvatarGroupsReplyEventArgs>(Avatars_AvatarGroupsReply);
|
||||
SecondLifeBot.Groups.GroupJoinedReply += new EventHandler<GroupOperationEventArgs>(Groups_OnGroupJoined);
|
||||
SecondLifeBot.Avatars.AvatarPicksReply += new EventHandler<AvatarPicksReplyEventArgs>(Avatars_AvatarPicksReply);
|
||||
|
||||
base.Name = "cloneprofile";
|
||||
base.Description = bot.Localization.clResourceManager.getText("Commands.CloneProfile.Description") + " " + bot.Localization.clResourceManager.getText("Commands.CloneProfile.Usage");
|
||||
}
|
||||
|
||||
public override string Execute(string[] args, UUID fromAgentID, bool fromSL)
|
||||
{
|
||||
if (args.Length != 1)
|
||||
return bot.Localization.clResourceManager.getText("Commands.CloneProfile.Usage");
|
||||
|
||||
UUID targetID;
|
||||
ReceivedProperties = false;
|
||||
ReceivedInterests = false;
|
||||
ReceivedGroups = false;
|
||||
|
||||
try
|
||||
{
|
||||
targetID = new UUID(args[0]);
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
return bot.Localization.clResourceManager.getText("Commands.CloneProfile.Usage");
|
||||
}
|
||||
|
||||
// Request all of the packets that make up an avatar profile
|
||||
Client.Avatars.RequestAvatarProperties(targetID);
|
||||
|
||||
// Wait for all the packets to arrive
|
||||
ReceivedProfileEvent.Reset();
|
||||
ReceivedProfileEvent.WaitOne(5000, false);
|
||||
|
||||
// Check if everything showed up
|
||||
if (!ReceivedInterests || !ReceivedProperties || !ReceivedGroups)
|
||||
return bot.Localization.clResourceManager.getText("Commands.CloneProfile.Fail");
|
||||
|
||||
// Synchronize our profile
|
||||
Client.Self.UpdateInterests(Interests);
|
||||
Client.Self.UpdateProfile(Properties);
|
||||
|
||||
// TODO: Leave all the groups we're currently a member of? This could
|
||||
// break TestClient connectivity that might be relying on group authentication
|
||||
|
||||
// Attempt to join all the groups
|
||||
foreach (UUID groupID in Groups)
|
||||
{
|
||||
Client.Groups.RequestJoinGroup(groupID);
|
||||
}
|
||||
|
||||
return String.Format(bot.Localization.clResourceManager.getText("Commands.CloneProfile.Done"), targetID.ToString());
|
||||
}
|
||||
|
||||
void Avatars_AvatarPropertiesReply(object sender, AvatarPropertiesReplyEventArgs e)
|
||||
{
|
||||
lock (ReceivedProfileEvent)
|
||||
{
|
||||
Properties = e.Properties;
|
||||
ReceivedProperties = true;
|
||||
|
||||
if (ReceivedInterests && ReceivedProperties && ReceivedGroups)
|
||||
ReceivedProfileEvent.Set();
|
||||
}
|
||||
}
|
||||
|
||||
void Avatars_AvatarInterestsReply(object sender, AvatarInterestsReplyEventArgs e)
|
||||
{
|
||||
lock (ReceivedProfileEvent)
|
||||
{
|
||||
Interests = e.Interests;
|
||||
ReceivedInterests = true;
|
||||
|
||||
if (ReceivedInterests && ReceivedProperties && ReceivedGroups)
|
||||
ReceivedProfileEvent.Set();
|
||||
}
|
||||
}
|
||||
|
||||
void Avatars_AvatarGroupsReply(object sender, AvatarGroupsReplyEventArgs e)
|
||||
{
|
||||
lock (ReceivedProfileEvent)
|
||||
{
|
||||
foreach (AvatarGroup group in e.Groups)
|
||||
{
|
||||
Groups.Add(group.GroupID);
|
||||
}
|
||||
|
||||
ReceivedGroups = true;
|
||||
|
||||
if (ReceivedInterests && ReceivedProperties && ReceivedGroups)
|
||||
ReceivedProfileEvent.Set();
|
||||
}
|
||||
}
|
||||
|
||||
void Groups_OnGroupJoined(object sender, GroupOperationEventArgs e)
|
||||
{
|
||||
if (e.Success)
|
||||
bot.Console.WriteLine(bot.Localization.clResourceManager.getText("Commands.CloneProfile.Joined"), e.GroupID.ToString());
|
||||
else
|
||||
bot.Console.WriteLine(bot.Localization.clResourceManager.getText("Commands.CloneProfile.FailJoin"), e.GroupID.ToString());
|
||||
|
||||
if (e.Success)
|
||||
{
|
||||
bot.Console.WriteLine(bot.Localization.clResourceManager.getText("Commands.CloneProfile.Active"), Client.ToString(),
|
||||
e.GroupID.ToString());
|
||||
Client.Groups.ActivateGroup(e.GroupID);
|
||||
}
|
||||
}
|
||||
|
||||
void Avatars_PickInfoReply(object sender, PickInfoReplyEventArgs e)
|
||||
{
|
||||
Client.Self.PickInfoUpdate(e.PickID, e.Pick.TopPick, e.Pick.ParcelID, e.Pick.Name, e.Pick.PosGlobal, e.Pick.SnapshotID, e.Pick.Desc);
|
||||
}
|
||||
|
||||
void Avatars_AvatarPicksReply(object sender, AvatarPicksReplyEventArgs e)
|
||||
{
|
||||
foreach (KeyValuePair<UUID, string> kvp in e.Picks)
|
||||
{
|
||||
if (e.AvatarID == Client.Self.AgentID)
|
||||
{
|
||||
Client.Self.PickDelete(kvp.Key);
|
||||
}
|
||||
else
|
||||
{
|
||||
Client.Avatars.RequestPickInfo(e.AvatarID, kvp.Key);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
117
SLBot/bot/Commands/Avatars/DetectBotCommand.cs
Normal file
117
SLBot/bot/Commands/Avatars/DetectBotCommand.cs
Normal file
@@ -0,0 +1,117 @@
|
||||
/***************************************************************************
|
||||
The Disc Image Chef
|
||||
----------------------------------------------------------------------------
|
||||
|
||||
Filename : DetectBotCommand.cs
|
||||
Version : 1.0.326
|
||||
Author(s) : Natalia Portillo
|
||||
|
||||
Component : NatiBot
|
||||
|
||||
Revision : r326
|
||||
Last change by : Natalia Portillo
|
||||
Date : 2010/01/01
|
||||
|
||||
--[ License ] --------------------------------------------------------------
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as
|
||||
published by the Free Software Foundation, either version 3 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
----------------------------------------------------------------------------
|
||||
Copyright (C) 2008-2014 Claunia.com
|
||||
****************************************************************************/
|
||||
namespace bot.Commands
|
||||
{
|
||||
using bot;
|
||||
using OpenMetaverse;
|
||||
using OpenMetaverse.Packets;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
public class DetectBotCommand : Command
|
||||
{
|
||||
private Dictionary<UUID, bool> m_AgentList = new Dictionary<UUID, bool>();
|
||||
|
||||
public DetectBotCommand(SecondLifeBot SecondLifeBot)
|
||||
{
|
||||
base.Name = "detectbots";
|
||||
base.Description = bot.Localization.clResourceManager.getText("Commands.DetectBot.Description");
|
||||
SecondLifeBot.Avatars.ViewerEffect += new EventHandler<ViewerEffectEventArgs>(Avatars_ViewerEffect);
|
||||
SecondLifeBot.Avatars.ViewerEffectLookAt += new EventHandler<ViewerEffectLookAtEventArgs>(Avatars_ViewerEffectLookAt);
|
||||
SecondLifeBot.Avatars.ViewerEffectPointAt += new EventHandler<ViewerEffectPointAtEventArgs>(Avatars_ViewerEffectPointAt);
|
||||
}
|
||||
|
||||
private void Avatars_ViewerEffectPointAt(object sender, ViewerEffectPointAtEventArgs e)
|
||||
{
|
||||
lock (m_AgentList)
|
||||
{
|
||||
if (m_AgentList.ContainsKey(e.SourceID))
|
||||
m_AgentList[e.SourceID] = true;
|
||||
else
|
||||
m_AgentList.Add(e.SourceID, true);
|
||||
}
|
||||
}
|
||||
|
||||
private void Avatars_ViewerEffectLookAt(object sender, ViewerEffectLookAtEventArgs e)
|
||||
{
|
||||
lock (m_AgentList)
|
||||
{
|
||||
if (m_AgentList.ContainsKey(e.SourceID))
|
||||
m_AgentList[e.SourceID] = true;
|
||||
else
|
||||
m_AgentList.Add(e.SourceID, true);
|
||||
}
|
||||
}
|
||||
|
||||
private void Avatars_ViewerEffect(object sender, ViewerEffectEventArgs e)
|
||||
{
|
||||
lock (m_AgentList)
|
||||
{
|
||||
if (m_AgentList.ContainsKey(e.SourceID))
|
||||
m_AgentList[e.SourceID] = true;
|
||||
else
|
||||
m_AgentList.Add(e.SourceID, true);
|
||||
}
|
||||
}
|
||||
|
||||
public override string Execute(string[] args, UUID fromAgentID, bool fromSL)
|
||||
{
|
||||
StringBuilder result = new StringBuilder();
|
||||
|
||||
lock (Client.Network.Simulators)
|
||||
{
|
||||
for (int i = 0; i < Client.Network.Simulators.Count; i++)
|
||||
{
|
||||
Client.Network.Simulators[i].ObjectsAvatars.ForEach(
|
||||
delegate(Avatar av)
|
||||
{
|
||||
lock (m_AgentList)
|
||||
{
|
||||
if (!m_AgentList.ContainsKey(av.ID))
|
||||
{
|
||||
result.AppendLine();
|
||||
result.AppendFormat(bot.Localization.clResourceManager.getText("Commands.DetectBot.Bot"),
|
||||
av.Name, av.GroupName, av.Position, av.ID, av.LocalID);
|
||||
}
|
||||
}
|
||||
}
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
return result.ToString();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
71
SLBot/bot/Commands/Avatars/DetectLindensCommand.cs
Normal file
71
SLBot/bot/Commands/Avatars/DetectLindensCommand.cs
Normal file
@@ -0,0 +1,71 @@
|
||||
/***************************************************************************
|
||||
The Disc Image Chef
|
||||
----------------------------------------------------------------------------
|
||||
|
||||
Filename : DetectLindensCommand.cs
|
||||
Version : 1.0.326
|
||||
Author(s) : Natalia Portillo
|
||||
|
||||
Component : NatiBot
|
||||
|
||||
Revision : r326
|
||||
Last change by : Natalia Portillo
|
||||
Date : 2010/01/01
|
||||
|
||||
--[ License ] --------------------------------------------------------------
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as
|
||||
published by the Free Software Foundation, either version 3 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
----------------------------------------------------------------------------
|
||||
Copyright (C) 2008-2014 Claunia.com
|
||||
****************************************************************************/
|
||||
/*namespace bot.Commands
|
||||
{
|
||||
using bot;
|
||||
using libsecondlife;
|
||||
using libsecondlife.Packets;
|
||||
using System;
|
||||
|
||||
public class DetectBotCommand : Command
|
||||
{
|
||||
public DetectBotCommand(SecondLifeBot SecondLifeBot)
|
||||
{
|
||||
base.Name = "detectlindens";
|
||||
base.Description = "Runs in the background, reporting any potential bots";
|
||||
SecondLifeBot.Network.RegisterCallback(PacketType.AgentUpdate, new NetworkManager.PacketCallback(this.AgentUpdatePacketHandler));
|
||||
}
|
||||
|
||||
private void AvatarAppearanceHandler(Packet packet, Simulator simulator)
|
||||
{
|
||||
AvatarAppearancePacket packet2 = (AvatarAppearancePacket)packet;
|
||||
packet2.ObjectData[
|
||||
}
|
||||
|
||||
public override string Execute(string[] args, UUID fromAgentID, bool fromSL)
|
||||
{
|
||||
return "This command is always running";
|
||||
}
|
||||
|
||||
private bool IsNullOrZero(LLObject.TextureEntryFace face)
|
||||
{
|
||||
if (face != null)
|
||||
{
|
||||
return (face.TextureID == UUID.Zero);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
*/
|
||||
|
||||
95
SLBot/bot/Commands/Avatars/EndFriendshipCommand.cs
Normal file
95
SLBot/bot/Commands/Avatars/EndFriendshipCommand.cs
Normal file
@@ -0,0 +1,95 @@
|
||||
/***************************************************************************
|
||||
The Disc Image Chef
|
||||
----------------------------------------------------------------------------
|
||||
|
||||
Filename : EndFriendshipCommand.cs
|
||||
Version : 1.0.326
|
||||
Author(s) : Natalia Portillo
|
||||
|
||||
Component : NatiBot
|
||||
|
||||
Revision : r326
|
||||
Last change by : Natalia Portillo
|
||||
Date : 2010/01/01
|
||||
|
||||
--[ License ] --------------------------------------------------------------
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as
|
||||
published by the Free Software Foundation, either version 3 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
----------------------------------------------------------------------------
|
||||
Copyright (C) 2008-2014 Claunia.com
|
||||
****************************************************************************/
|
||||
namespace bot.Commands
|
||||
{
|
||||
using bot;
|
||||
using OpenMetaverse;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using System.Threading;
|
||||
|
||||
public class EndFriendshipCommand : Command
|
||||
{
|
||||
public EndFriendshipCommand(SecondLifeBot SecondLifeBot)
|
||||
{
|
||||
base.Name = "endfriendship";
|
||||
base.Description = bot.Localization.clResourceManager.getText("Commands.EndFriendship.Description") + " " + bot.Localization.clResourceManager.getText("Commands.EndFriendship.Usage");
|
||||
}
|
||||
|
||||
public override string Execute(string[] args, UUID fromAgentID, bool fromSL)
|
||||
{
|
||||
UUID avatarID = UUID.Zero;
|
||||
string avatarName = "";
|
||||
bool isGroupKey = false;
|
||||
|
||||
if (args.Length == 1)
|
||||
{
|
||||
if (!UUID.TryParse(args[0], out avatarID))
|
||||
return bot.Localization.clResourceManager.getText("Commands.EndFriendship.Usage");
|
||||
|
||||
if (!Client.key2Name(avatarID, out avatarName, out isGroupKey))
|
||||
return bot.Localization.clResourceManager.getText("Commands.OfferFriendship.AvNotFound");
|
||||
|
||||
if (isGroupKey)
|
||||
return bot.Localization.clResourceManager.getText("Commands.EndFriendship.CannotGroup");
|
||||
}
|
||||
else if (args.Length == 2)
|
||||
{
|
||||
avatarName = args[0] + " " + args[1];
|
||||
|
||||
if (!Client.FindOneAvatar(avatarName, out avatarID))
|
||||
return String.Format(bot.Localization.clResourceManager.getText("Commands.OfferFriendship.NameNotFound"), avatarName);
|
||||
}
|
||||
else
|
||||
{
|
||||
return bot.Localization.clResourceManager.getText("Commands.EndFriendship.Usage");
|
||||
}
|
||||
|
||||
if (avatarID != UUID.Zero)
|
||||
{
|
||||
if (!Client.Friends.FriendList.ContainsKey(avatarID))
|
||||
return String.Format(bot.Localization.clResourceManager.getText("Commands.EndFriendship.NotFriend"), avatarName);
|
||||
|
||||
Client.Friends.TerminateFriendship(avatarID);
|
||||
|
||||
return String.Format(bot.Localization.clResourceManager.getText("Commands.EndFriendship.Terminated"), avatarName);
|
||||
}
|
||||
else
|
||||
{
|
||||
return bot.Localization.clResourceManager.getText("Commands.OfferFriendship.Error");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
94
SLBot/bot/Commands/Avatars/ExportOutfitCommand.cs
Normal file
94
SLBot/bot/Commands/Avatars/ExportOutfitCommand.cs
Normal file
@@ -0,0 +1,94 @@
|
||||
/***************************************************************************
|
||||
The Disc Image Chef
|
||||
----------------------------------------------------------------------------
|
||||
|
||||
Filename : ExportOutfitCommand.cs
|
||||
Version : 1.0.326
|
||||
Author(s) : Natalia Portillo
|
||||
|
||||
Component : NatiBot
|
||||
|
||||
Revision : r326
|
||||
Last change by : Natalia Portillo
|
||||
Date : 2010/01/01
|
||||
|
||||
--[ License ] --------------------------------------------------------------
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as
|
||||
published by the Free Software Foundation, either version 3 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
----------------------------------------------------------------------------
|
||||
Copyright (C) 2008-2014 Claunia.com
|
||||
****************************************************************************/
|
||||
namespace bot.Commands
|
||||
{
|
||||
using bot;
|
||||
using OpenMetaverse;
|
||||
using OpenMetaverse.Packets;
|
||||
using OpenMetaverse.StructuredData;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Threading;
|
||||
|
||||
public class ExportOutfitCommand : Command
|
||||
{
|
||||
public ExportOutfitCommand(SecondLifeBot SecondLifeBot)
|
||||
{
|
||||
base.Name = "exportoutfit";
|
||||
base.Description = bot.Localization.clResourceManager.getText("Commands.ExportOutfit.Description") + " " + bot.Localization.clResourceManager.getText("Commands.ExportOutfit.Usage");
|
||||
}
|
||||
|
||||
public override string Execute(string[] args, UUID fromAgentID, bool fromSL)
|
||||
{
|
||||
UUID id;
|
||||
string path;
|
||||
|
||||
if (args.Length == 1)
|
||||
{
|
||||
id = Client.Self.AgentID;
|
||||
path = args[0];
|
||||
}
|
||||
else if (args.Length == 2)
|
||||
{
|
||||
if (!UUID.TryParse(args[0], out id))
|
||||
return bot.Localization.clResourceManager.getText("Commands.ExportOutfit.Usage");
|
||||
path = args[1];
|
||||
}
|
||||
else
|
||||
return bot.Localization.clResourceManager.getText("Commands.ExportOutfit.Usage");
|
||||
|
||||
lock (Client.Appearances)
|
||||
{
|
||||
if (Client.Appearances.ContainsKey(id))
|
||||
{
|
||||
try
|
||||
{
|
||||
File.WriteAllText(path, Packet.ToXmlString(Client.Appearances[id]));
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
return e.ToString();
|
||||
}
|
||||
|
||||
return String.Format(bot.Localization.clResourceManager.getText("Commands.ExportOutfit.Exported"), id.ToString(), args[1]);
|
||||
}
|
||||
else
|
||||
{
|
||||
return String.Format(bot.Localization.clResourceManager.getText("Commands.ExportOutfit.NotFound"), id.ToString());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
85
SLBot/bot/Commands/Avatars/FriendsCommand.cs
Normal file
85
SLBot/bot/Commands/Avatars/FriendsCommand.cs
Normal file
@@ -0,0 +1,85 @@
|
||||
/***************************************************************************
|
||||
The Disc Image Chef
|
||||
----------------------------------------------------------------------------
|
||||
|
||||
Filename : FriendsCommand.cs
|
||||
Version : 1.0.326
|
||||
Author(s) : Natalia Portillo
|
||||
|
||||
Component : NatiBot
|
||||
|
||||
Revision : r326
|
||||
Last change by : Natalia Portillo
|
||||
Date : 2010/01/01
|
||||
|
||||
--[ License ] --------------------------------------------------------------
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as
|
||||
published by the Free Software Foundation, either version 3 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
----------------------------------------------------------------------------
|
||||
Copyright (C) 2008-2014 Claunia.com
|
||||
****************************************************************************/
|
||||
namespace bot.Commands
|
||||
{
|
||||
using bot;
|
||||
using OpenMetaverse;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using System.Threading;
|
||||
|
||||
public class FriendsCommand : Command
|
||||
{
|
||||
public FriendsCommand(SecondLifeBot SecondLifeBot)
|
||||
{
|
||||
base.Name = "friends";
|
||||
base.Description = bot.Localization.clResourceManager.getText("Commands.Friends.Description");
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Get a list of current friends
|
||||
/// </summary>
|
||||
/// <param name="args">optional testClient command arguments</param>
|
||||
/// <param name="fromAgentID">The <seealso cref="OpenMetaverse.UUID"/>
|
||||
/// of the agent making the request</param>
|
||||
/// <returns></returns>
|
||||
public override string Execute(string[] args, UUID fromAgentID, bool fromSL)
|
||||
{
|
||||
// initialize a StringBuilder object used to return the results
|
||||
StringBuilder sb = new StringBuilder();
|
||||
|
||||
// Only iterate the Friends dictionary if we actually have friends!
|
||||
if (Client.Friends.FriendList.Count > 0)
|
||||
{
|
||||
// iterate over the InternalDictionary using a delegate to populate
|
||||
// our StringBuilder output string
|
||||
Client.Friends.FriendList.ForEach(delegate(FriendInfo friend)
|
||||
{
|
||||
// append the name of the friend to our output
|
||||
sb.AppendLine(friend.Name + "(UUID: " + friend.UUID.ToString() + ")");
|
||||
});
|
||||
}
|
||||
else
|
||||
{
|
||||
// we have no friends :(
|
||||
sb.AppendLine(bot.Localization.clResourceManager.getText("Commands.Friends.NoFriends"));
|
||||
}
|
||||
|
||||
// return the result
|
||||
return sb.ToString();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
130
SLBot/bot/Commands/Avatars/ImportOutfitCommand.cs
Normal file
130
SLBot/bot/Commands/Avatars/ImportOutfitCommand.cs
Normal file
@@ -0,0 +1,130 @@
|
||||
/***************************************************************************
|
||||
The Disc Image Chef
|
||||
----------------------------------------------------------------------------
|
||||
|
||||
Filename : ImportOutfitCommand.cs
|
||||
Version : 1.0.326
|
||||
Author(s) : Natalia Portillo
|
||||
|
||||
Component : NatiBot
|
||||
|
||||
Revision : r326
|
||||
Last change by : Natalia Portillo
|
||||
Date : 2010/01/01
|
||||
|
||||
--[ License ] --------------------------------------------------------------
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as
|
||||
published by the Free Software Foundation, either version 3 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
----------------------------------------------------------------------------
|
||||
Copyright (C) 2008-2014 Claunia.com
|
||||
****************************************************************************/
|
||||
/*namespace bot.Commands
|
||||
{
|
||||
using bot;
|
||||
using OpenMetaverse;
|
||||
using OpenMetaverse.Packets;
|
||||
using OpenMetaverse.StructuredData;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Threading;
|
||||
|
||||
public class ImportOutfitCommand : Command
|
||||
{
|
||||
private Vector3 currentPosition;
|
||||
private Primitive currentPrim;
|
||||
private List<uint> linkQueue;
|
||||
private AutoResetEvent primDone = new AutoResetEvent(false);
|
||||
private List<Primitive> primsCreated;
|
||||
private uint rootLocalID;
|
||||
private ImporterState state = ImporterState.Idle;
|
||||
private uint SerialNum = 2;
|
||||
|
||||
private enum ImporterState
|
||||
{
|
||||
RezzingParent,
|
||||
RezzingChildren,
|
||||
Linking,
|
||||
Idle
|
||||
}
|
||||
|
||||
private class Linkset
|
||||
{
|
||||
public List<Primitive> Children;
|
||||
public Primitive RootPrim;
|
||||
|
||||
public Linkset()
|
||||
{
|
||||
this.Children = new List<Primitive>();
|
||||
this.RootPrim = new Primitive();
|
||||
}
|
||||
|
||||
public Linkset(Primitive rootPrim)
|
||||
{
|
||||
this.Children = new List<Primitive>();
|
||||
this.RootPrim = rootPrim;
|
||||
}
|
||||
}
|
||||
|
||||
public ImportOutfitCommand(SecondLifeBot SecondLifeBot)
|
||||
{
|
||||
base.Name = "importoutfit";
|
||||
base.Description = bot.Localization.clResourceManager.getText("Commands.ImportOutfit.Description") + " " + bot.Localization.clResourceManager.getText("Commands.ImportOutfit.Usage");
|
||||
|
||||
}
|
||||
|
||||
public override string Execute(string[] args, UUID fromAgentID, bool fromSL)
|
||||
{
|
||||
/* if (args.Length != 1)
|
||||
{
|
||||
return "Uso: importoutfit apariencia.xml";
|
||||
}
|
||||
string path = args[0];
|
||||
string str2;
|
||||
try
|
||||
{
|
||||
str2 = File.ReadAllText(path);
|
||||
}
|
||||
catch (Exception exception)
|
||||
{
|
||||
return exception.Message;
|
||||
}
|
||||
if (str2.Length == 0)
|
||||
return "El archivo exportado está dañado.";
|
||||
|
||||
AvatarAppearancePacket packet= (AvatarAppearancePacket)AvatarAppearancePacket.FromLLSD(LLSDParser.DeserializeXml(str2));
|
||||
AgentSetAppearancePacket packet2 = new AgentSetAppearancePacket();
|
||||
|
||||
packet2.AgentData.AgentID = base.Client.Self.AgentID;
|
||||
packet2.AgentData.SessionID = base.Client.Self.SessionID;
|
||||
packet2.AgentData.SerialNum = this.SerialNum++;
|
||||
packet2.AgentData.Size = new Vector3(2f, 2f, 2f);
|
||||
packet2.WearableData = new AgentSetAppearancePacket.WearableDataBlock[0];
|
||||
packet2.VisualParam = new AgentSetAppearancePacket.VisualParamBlock[packet.VisualParam.Length];
|
||||
for (int j = 0; j < packet.VisualParam.Length; j++)
|
||||
{
|
||||
packet2.VisualParam[j] = new AgentSetAppearancePacket.VisualParamBlock();
|
||||
packet2.VisualParam[j].ParamValue = packet.VisualParam[j].ParamValue;
|
||||
}
|
||||
packet2.ObjectData.TextureEntry = packet.ObjectData.TextureEntry;
|
||||
base.Client.Appearance.AddAttachments(new List<InventoryBase>(), true);
|
||||
base.Client.Network.SendPacket(packet2);
|
||||
return ("Importado" + args[0]);*/
|
||||
/* return bot.Localization.clResourceManager.getText("Exception");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
*/
|
||||
76
SLBot/bot/Commands/Avatars/InformFriendCommand.cs
Normal file
76
SLBot/bot/Commands/Avatars/InformFriendCommand.cs
Normal file
@@ -0,0 +1,76 @@
|
||||
/***************************************************************************
|
||||
The Disc Image Chef
|
||||
----------------------------------------------------------------------------
|
||||
|
||||
Filename : InformFriendCommand.cs
|
||||
Version : 1.0.326
|
||||
Author(s) : Natalia Portillo
|
||||
|
||||
Component : NatiBot
|
||||
|
||||
Revision : r326
|
||||
Last change by : Natalia Portillo
|
||||
Date : 2010/01/01
|
||||
|
||||
--[ License ] --------------------------------------------------------------
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as
|
||||
published by the Free Software Foundation, either version 3 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
----------------------------------------------------------------------------
|
||||
Copyright (C) 2008-2014 Claunia.com
|
||||
****************************************************************************/
|
||||
namespace bot.Commands
|
||||
{
|
||||
using bot;
|
||||
using System;
|
||||
using OpenMetaverse;
|
||||
|
||||
public class InformFriendCommand : Command
|
||||
{
|
||||
public InformFriendCommand(SecondLifeBot SecondLifeBot)
|
||||
{
|
||||
base.Name = "informfriend";
|
||||
base.Description = bot.Localization.clResourceManager.getText("Commands.InformFriend.Description") + " " + bot.Localization.clResourceManager.getText("Commands.InformFriend.Usage");
|
||||
}
|
||||
|
||||
public override string Execute(string[] args, UUID fromAgentID, bool fromSL)
|
||||
{
|
||||
if (args.Length == 0)
|
||||
{
|
||||
if (Client.InformFriends)
|
||||
return bot.Localization.clResourceManager.getText("Commands.InformFriend.Inform");
|
||||
else
|
||||
return bot.Localization.clResourceManager.getText("Commands.InformFriend.NotInform");
|
||||
}
|
||||
|
||||
if (args.Length != 1)
|
||||
return bot.Localization.clResourceManager.getText("Commands.InformFriend.Usage");
|
||||
|
||||
if (args[0].ToLower() == "on")
|
||||
{
|
||||
Client.InformFriends = true;
|
||||
return bot.Localization.clResourceManager.getText("Commands.InformFriend.WillInform");
|
||||
}
|
||||
else if (args[0].ToLower() == "off")
|
||||
{
|
||||
Client.InformFriends = false;
|
||||
return bot.Localization.clResourceManager.getText("Commands.InformFriend.WontInform");
|
||||
}
|
||||
else
|
||||
{
|
||||
return bot.Localization.clResourceManager.getText("Commands.InformFriend.Usage");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
85
SLBot/bot/Commands/Avatars/MapFriendCommand.cs
Normal file
85
SLBot/bot/Commands/Avatars/MapFriendCommand.cs
Normal file
@@ -0,0 +1,85 @@
|
||||
/***************************************************************************
|
||||
The Disc Image Chef
|
||||
----------------------------------------------------------------------------
|
||||
|
||||
Filename : MapFriendCommand.cs
|
||||
Version : 1.0.326
|
||||
Author(s) : Natalia Portillo
|
||||
|
||||
Component : NatiBot
|
||||
|
||||
Revision : r326
|
||||
Last change by : Natalia Portillo
|
||||
Date : 2010/01/01
|
||||
|
||||
--[ License ] --------------------------------------------------------------
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as
|
||||
published by the Free Software Foundation, either version 3 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
----------------------------------------------------------------------------
|
||||
Copyright (C) 2008-2014 Claunia.com
|
||||
****************************************************************************/
|
||||
namespace bot.Commands
|
||||
{
|
||||
using bot;
|
||||
using OpenMetaverse;
|
||||
using System;
|
||||
using System.Text;
|
||||
using System.Threading;
|
||||
|
||||
public class MapFriendCommand : Command
|
||||
{
|
||||
ManualResetEvent WaitforFriend = new ManualResetEvent(false);
|
||||
|
||||
public MapFriendCommand(SecondLifeBot SecondLifeBot)
|
||||
{
|
||||
base.Name = "mapfriend";
|
||||
base.Description = bot.Localization.clResourceManager.getText("Commands.MapFriend.Description") + " " + bot.Localization.clResourceManager.getText("Commands.MapFriend.Usage");
|
||||
}
|
||||
|
||||
public override string Execute(string[] args, UUID fromAgentID, bool fromSL)
|
||||
{
|
||||
if (args.Length != 1)
|
||||
return bot.Localization.clResourceManager.getText("Commands.MapFriend.Usage");
|
||||
|
||||
UUID targetID;
|
||||
|
||||
if (!UUID.TryParse(args[0], out targetID))
|
||||
return bot.Localization.clResourceManager.getText("Commands.MapFriend.Usage");
|
||||
|
||||
StringBuilder sb = new StringBuilder();
|
||||
|
||||
EventHandler<FriendFoundReplyEventArgs> del = delegate(object sender, FriendFoundReplyEventArgs e)
|
||||
{
|
||||
if (!e.RegionHandle.Equals(0))
|
||||
sb.AppendFormat(bot.Localization.clResourceManager.getText("Commands.MapFriend.Found"), e.AgentID, e.RegionHandle, e.Location.X, e.Location.Y);
|
||||
else
|
||||
sb.AppendFormat(bot.Localization.clResourceManager.getText("Commands.MapFriend.Offline"), e.AgentID);
|
||||
|
||||
WaitforFriend.Set();
|
||||
};
|
||||
|
||||
Client.Friends.FriendFoundReply += del;
|
||||
WaitforFriend.Reset();
|
||||
Client.Friends.MapFriend(targetID);
|
||||
if (!WaitforFriend.WaitOne(10000, false))
|
||||
{
|
||||
sb.AppendFormat(bot.Localization.clResourceManager.getText("Commands.MapFriend.TimeOut"), targetID);
|
||||
}
|
||||
Client.Friends.FriendFoundReply -= del;
|
||||
return sb.ToString();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
95
SLBot/bot/Commands/Avatars/OfferFriendshipCommand.cs
Normal file
95
SLBot/bot/Commands/Avatars/OfferFriendshipCommand.cs
Normal file
@@ -0,0 +1,95 @@
|
||||
/***************************************************************************
|
||||
The Disc Image Chef
|
||||
----------------------------------------------------------------------------
|
||||
|
||||
Filename : OfferFriendshipCommand.cs
|
||||
Version : 1.0.326
|
||||
Author(s) : Natalia Portillo
|
||||
|
||||
Component : NatiBot
|
||||
|
||||
Revision : r326
|
||||
Last change by : Natalia Portillo
|
||||
Date : 2010/01/01
|
||||
|
||||
--[ License ] --------------------------------------------------------------
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as
|
||||
published by the Free Software Foundation, either version 3 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
----------------------------------------------------------------------------
|
||||
Copyright (C) 2008-2014 Claunia.com
|
||||
****************************************************************************/
|
||||
namespace bot.Commands
|
||||
{
|
||||
using bot;
|
||||
using OpenMetaverse;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using System.Threading;
|
||||
|
||||
public class OfferFriendshipCommand : Command
|
||||
{
|
||||
public OfferFriendshipCommand(SecondLifeBot SecondLifeBot)
|
||||
{
|
||||
base.Name = "offerfriendship";
|
||||
base.Description = bot.Localization.clResourceManager.getText("Commands.OfferFriendship.Description") + " " + bot.Localization.clResourceManager.getText("Commands.OfferFriendship.Usage");
|
||||
}
|
||||
|
||||
public override string Execute(string[] args, UUID fromAgentID, bool fromSL)
|
||||
{
|
||||
UUID avatarID = UUID.Zero;
|
||||
string avatarName = "";
|
||||
bool isGroupKey = false;
|
||||
|
||||
if (args.Length == 1)
|
||||
{
|
||||
if (!UUID.TryParse(args[0], out avatarID))
|
||||
return bot.Localization.clResourceManager.getText("Commands.OfferFriendship.Usage");
|
||||
|
||||
if (!Client.key2Name(avatarID, out avatarName, out isGroupKey))
|
||||
return bot.Localization.clResourceManager.getText("Commands.OfferFriendship.AvNotFound");
|
||||
|
||||
if (isGroupKey)
|
||||
return bot.Localization.clResourceManager.getText("Commands.OfferFriendship.CannotGroup");
|
||||
}
|
||||
else if (args.Length == 2)
|
||||
{
|
||||
avatarName = args[0] + " " + args[1];
|
||||
|
||||
if (!Client.FindOneAvatar(avatarName, out avatarID))
|
||||
return String.Format(bot.Localization.clResourceManager.getText("Commands.OfferFriendship.NameNotFound"), avatarName);
|
||||
}
|
||||
else
|
||||
{
|
||||
return bot.Localization.clResourceManager.getText("Commands.OfferFriendship.Usage");
|
||||
}
|
||||
|
||||
if (avatarID != UUID.Zero)
|
||||
{
|
||||
if (Client.Friends.FriendList.ContainsKey(avatarID))
|
||||
return String.Format(bot.Localization.clResourceManager.getText("Commands.OfferFriendship.AlreadyFriend"), avatarName);
|
||||
|
||||
Client.Friends.OfferFriendship(avatarID, bot.Localization.clResourceManager.getText("Commands.OfferFriendship.Message"));
|
||||
|
||||
return String.Format(bot.Localization.clResourceManager.getText("Commands.OfferFriendship.Offered"), avatarName);
|
||||
}
|
||||
else
|
||||
{
|
||||
return bot.Localization.clResourceManager.getText("Commands.OfferFriendship.Error");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
111
SLBot/bot/Commands/Avatars/WhoCommand.cs
Normal file
111
SLBot/bot/Commands/Avatars/WhoCommand.cs
Normal file
@@ -0,0 +1,111 @@
|
||||
/***************************************************************************
|
||||
The Disc Image Chef
|
||||
----------------------------------------------------------------------------
|
||||
|
||||
Filename : WhoCommand.cs
|
||||
Version : 1.0.326
|
||||
Author(s) : Natalia Portillo
|
||||
|
||||
Component : NatiBot
|
||||
|
||||
Revision : r326
|
||||
Last change by : Natalia Portillo
|
||||
Date : 2010/01/01
|
||||
|
||||
--[ License ] --------------------------------------------------------------
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as
|
||||
published by the Free Software Foundation, either version 3 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
----------------------------------------------------------------------------
|
||||
Copyright (C) 2008-2014 Claunia.com
|
||||
****************************************************************************/
|
||||
namespace bot.Commands
|
||||
{
|
||||
using bot;
|
||||
using OpenMetaverse;
|
||||
using System;
|
||||
using System.Text;
|
||||
using System.Collections.Generic;
|
||||
|
||||
public class WhoCommand : Command
|
||||
{
|
||||
public WhoCommand(SecondLifeBot SecondLifeBot)
|
||||
{
|
||||
base.Name = "who";
|
||||
base.Description = bot.Localization.clResourceManager.getText("Commands.Who.Description");
|
||||
}
|
||||
|
||||
public override string Execute(string[] args, UUID fromAgentID, bool fromSL)
|
||||
{
|
||||
StringBuilder result = new StringBuilder();
|
||||
Dictionary<UUID, string> ClientNames = ClientTags.ToDictionary();
|
||||
|
||||
lock (Client.Network.Simulators)
|
||||
{
|
||||
for (int i = 0; i < Client.Network.Simulators.Count; i++)
|
||||
{
|
||||
Client.Network.Simulators[i].ObjectsAvatars.ForEach(
|
||||
delegate(Avatar av)
|
||||
{
|
||||
Vector3 RealPosition;
|
||||
|
||||
if (av.ParentID != 0)
|
||||
{
|
||||
Primitive SitPrim;
|
||||
|
||||
SitPrim = Client.Network.CurrentSim.ObjectsPrimitives.Find(
|
||||
delegate(Primitive prim)
|
||||
{
|
||||
return prim.LocalID == av.ParentID;
|
||||
}
|
||||
);
|
||||
|
||||
if (SitPrim == null)
|
||||
RealPosition = new Vector3(0, 0, 0);
|
||||
else
|
||||
RealPosition = SitPrim.Position;
|
||||
}
|
||||
else
|
||||
{
|
||||
RealPosition = av.Position;
|
||||
}
|
||||
|
||||
string ViewerName;
|
||||
|
||||
if (av.Textures == null)
|
||||
ViewerName = bot.Localization.clResourceManager.getText("Viewer.Unknown");
|
||||
else
|
||||
{
|
||||
if (av.Textures.FaceTextures[(int)AvatarTextureIndex.HeadBodypaint] != null)
|
||||
{
|
||||
if (!ClientNames.TryGetValue(av.Textures.FaceTextures[(int)AvatarTextureIndex.HeadBodypaint].TextureID, out ViewerName))
|
||||
ViewerName = bot.Localization.clResourceManager.getText("Viewer.Unidentified");
|
||||
}
|
||||
else
|
||||
ViewerName = bot.Localization.clResourceManager.getText("Viewer.Unknown");
|
||||
}
|
||||
|
||||
result.AppendLine();
|
||||
result.AppendFormat(bot.Localization.clResourceManager.getText("Commands.Who.Info"),
|
||||
av.Name, ViewerName, av.GroupName, RealPosition, av.ID.ToString());
|
||||
}
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
return result.ToString();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
60
SLBot/bot/Commands/Command.cs
Normal file
60
SLBot/bot/Commands/Command.cs
Normal file
@@ -0,0 +1,60 @@
|
||||
/***************************************************************************
|
||||
The Disc Image Chef
|
||||
----------------------------------------------------------------------------
|
||||
|
||||
Filename : Command.cs
|
||||
Version : 1.0.326
|
||||
Author(s) : Natalia Portillo
|
||||
|
||||
Component : NatiBot
|
||||
|
||||
Revision : r326
|
||||
Last change by : Natalia Portillo
|
||||
Date : 2010/01/01
|
||||
|
||||
--[ License ] --------------------------------------------------------------
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as
|
||||
published by the Free Software Foundation, either version 3 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
----------------------------------------------------------------------------
|
||||
Copyright (C) 2008-2014 Claunia.com
|
||||
Copyright (C) 2007-2009 openmetaverse.org
|
||||
****************************************************************************/
|
||||
namespace bot.Commands
|
||||
{
|
||||
using bot;
|
||||
using OpenMetaverse;
|
||||
using System;
|
||||
|
||||
public abstract class Command
|
||||
{
|
||||
public bool Active;
|
||||
public SecondLifeBot Client;
|
||||
public string Description;
|
||||
public string Name;
|
||||
|
||||
protected Command()
|
||||
{
|
||||
}
|
||||
|
||||
public abstract string Execute(string[] args, UUID fromAgentID, bool fromSL);
|
||||
|
||||
public virtual void Think()
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
70
SLBot/bot/Commands/Communication/EchoMasterCommand.cs
Normal file
70
SLBot/bot/Commands/Communication/EchoMasterCommand.cs
Normal file
@@ -0,0 +1,70 @@
|
||||
/***************************************************************************
|
||||
The Disc Image Chef
|
||||
----------------------------------------------------------------------------
|
||||
|
||||
Filename : EchoMasterCommand.cs
|
||||
Version : 1.0.326
|
||||
Author(s) : Natalia Portillo
|
||||
|
||||
Component : NatiBot
|
||||
|
||||
Revision : r326
|
||||
Last change by : Natalia Portillo
|
||||
Date : 2010/01/01
|
||||
|
||||
--[ License ] --------------------------------------------------------------
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as
|
||||
published by the Free Software Foundation, either version 3 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
----------------------------------------------------------------------------
|
||||
Copyright (C) 2008-2014 Claunia.com
|
||||
****************************************************************************/
|
||||
namespace bot.Commands
|
||||
{
|
||||
using bot;
|
||||
using OpenMetaverse;
|
||||
using System;
|
||||
|
||||
public class EchoMasterCommand : Command
|
||||
{
|
||||
public EchoMasterCommand(SecondLifeBot SecondLifeBot)
|
||||
{
|
||||
base.Name = "echoMaster";
|
||||
base.Description = bot.Localization.clResourceManager.getText("Commands.EchoMaster.Description");
|
||||
}
|
||||
|
||||
public override string Execute(string[] args, UUID fromAgentID, bool fromSL)
|
||||
{
|
||||
if (!Active)
|
||||
{
|
||||
Active = true;
|
||||
Client.Self.ChatFromSimulator += Self_ChatFromSimulator;
|
||||
return bot.Localization.clResourceManager.getText("Commands.EchoMaster.On");
|
||||
}
|
||||
else
|
||||
{
|
||||
Active = false;
|
||||
Client.Self.ChatFromSimulator -= Self_ChatFromSimulator;
|
||||
return bot.Localization.clResourceManager.getText("Commands.EchoMaster.Off");
|
||||
}
|
||||
}
|
||||
|
||||
void Self_ChatFromSimulator(object sender, ChatEventArgs e)
|
||||
{
|
||||
if (e.Message.Length > 0 && (Client.MasterKey == e.SourceID || (Client.MasterName == e.FromName /*&& !Client.AllowObjectMaster*/)))
|
||||
Client.Self.Chat(e.Message, 0, ChatType.Normal);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
121
SLBot/bot/Commands/Communication/ImCommand.cs
Normal file
121
SLBot/bot/Commands/Communication/ImCommand.cs
Normal file
@@ -0,0 +1,121 @@
|
||||
/***************************************************************************
|
||||
The Disc Image Chef
|
||||
----------------------------------------------------------------------------
|
||||
|
||||
Filename : ImCommand.cs
|
||||
Version : 1.0.326
|
||||
Author(s) : Natalia Portillo
|
||||
|
||||
Component : NatiBot
|
||||
|
||||
Revision : r326
|
||||
Last change by : Natalia Portillo
|
||||
Date : 2010/01/01
|
||||
|
||||
--[ License ] --------------------------------------------------------------
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as
|
||||
published by the Free Software Foundation, either version 3 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
----------------------------------------------------------------------------
|
||||
Copyright (C) 2008-2014 Claunia.com
|
||||
****************************************************************************/
|
||||
namespace bot.Commands
|
||||
{
|
||||
using bot;
|
||||
using OpenMetaverse;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Threading;
|
||||
|
||||
public class ImCommand : Command
|
||||
{
|
||||
string ToAvatarName = String.Empty;
|
||||
ManualResetEvent NameSearchEvent = new ManualResetEvent(false);
|
||||
Dictionary<string, UUID> Name2Key = new Dictionary<string, UUID>();
|
||||
|
||||
public ImCommand(SecondLifeBot SecondLifeBot)
|
||||
{
|
||||
SecondLifeBot.Avatars.AvatarPickerReply += Avatars_AvatarPickerReply;
|
||||
base.Name = "im";
|
||||
base.Description = bot.Localization.clResourceManager.getText("Commands.IM.Description") + " " + bot.Localization.clResourceManager.getText("Commands.IM.Usage");
|
||||
}
|
||||
|
||||
public override string Execute(string[] args, UUID fromAgentID, bool fromSL)
|
||||
{
|
||||
if (args.Length < 3)
|
||||
return bot.Localization.clResourceManager.getText("Commands.IM.Usage");
|
||||
|
||||
ToAvatarName = args[0] + " " + args[1];
|
||||
|
||||
// Build the message
|
||||
string message = String.Empty;
|
||||
for (int ct = 2; ct < args.Length; ct++)
|
||||
message += args[ct] + " ";
|
||||
message = message.TrimEnd();
|
||||
if (message.Length > 1023)
|
||||
message = message.Remove(1023);
|
||||
|
||||
if (!Name2Key.ContainsKey(ToAvatarName.ToLower()))
|
||||
{
|
||||
// Send the Query
|
||||
Client.Avatars.RequestAvatarNameSearch(ToAvatarName, UUID.Random());
|
||||
|
||||
NameSearchEvent.WaitOne(6000, false);
|
||||
}
|
||||
|
||||
if (Name2Key.ContainsKey(ToAvatarName.ToLower()))
|
||||
{
|
||||
UUID id = Name2Key[ToAvatarName.ToLower()];
|
||||
|
||||
Client.Self.InstantMessage(id, message);
|
||||
|
||||
bot.Chat.structInstantMessage sim;
|
||||
InstantMessage im = new InstantMessage();
|
||||
|
||||
im.Message = message;
|
||||
im.FromAgentID = id;
|
||||
im.FromAgentName = ToAvatarName;
|
||||
im.Dialog = InstantMessageDialog.MessageFromAgent;
|
||||
|
||||
sim.client = this.Client;
|
||||
sim.isReceived = false;
|
||||
sim.message = im;
|
||||
sim.simulator = this.Client.Network.CurrentSim;
|
||||
sim.timestamp = DateTime.Now;
|
||||
|
||||
bot.Chat.receivedIM(sim);
|
||||
|
||||
return String.Format(bot.Localization.clResourceManager.getText("Commands.IM.Success"), id.ToString(), message);
|
||||
}
|
||||
else
|
||||
{
|
||||
return String.Format(bot.Localization.clResourceManager.getText("Commands.IM.LookupFail"), ToAvatarName);
|
||||
}
|
||||
}
|
||||
|
||||
void Avatars_AvatarPickerReply(object sender, AvatarPickerReplyEventArgs e)
|
||||
{
|
||||
foreach (KeyValuePair<UUID, string> kvp in e.Avatars)
|
||||
{
|
||||
if (kvp.Value.ToLower() == ToAvatarName.ToLower())
|
||||
{
|
||||
Name2Key[ToAvatarName.ToLower()] = kvp.Key;
|
||||
NameSearchEvent.Set();
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
78
SLBot/bot/Commands/Communication/SayCommand.cs
Normal file
78
SLBot/bot/Commands/Communication/SayCommand.cs
Normal file
@@ -0,0 +1,78 @@
|
||||
/***************************************************************************
|
||||
The Disc Image Chef
|
||||
----------------------------------------------------------------------------
|
||||
|
||||
Filename : SayCommand.cs
|
||||
Version : 1.0.326
|
||||
Author(s) : Natalia Portillo
|
||||
|
||||
Component : NatiBot
|
||||
|
||||
Revision : r326
|
||||
Last change by : Natalia Portillo
|
||||
Date : 2010/01/01
|
||||
|
||||
--[ License ] --------------------------------------------------------------
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as
|
||||
published by the Free Software Foundation, either version 3 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
----------------------------------------------------------------------------
|
||||
Copyright (C) 2008-2014 Claunia.com
|
||||
****************************************************************************/
|
||||
namespace bot.Commands
|
||||
{
|
||||
using bot;
|
||||
using OpenMetaverse;
|
||||
using System;
|
||||
using System.Text;
|
||||
|
||||
public class SayCommand : Command
|
||||
{
|
||||
public SayCommand(SecondLifeBot SecondLifeBot)
|
||||
{
|
||||
base.Name = "say";
|
||||
base.Description = bot.Localization.clResourceManager.getText("Commands.Say.Description") + " " + bot.Localization.clResourceManager.getText("Commands.Say.Usage");
|
||||
}
|
||||
|
||||
public override string Execute(string[] args, UUID fromAgentID, bool fromSL)
|
||||
{
|
||||
int channel = 0;
|
||||
int startIndex = 0;
|
||||
|
||||
if (args.Length < 1)
|
||||
{
|
||||
return bot.Localization.clResourceManager.getText("Commands.Say.Usage");
|
||||
}
|
||||
else if (args.Length > 1)
|
||||
{
|
||||
if (Int32.TryParse(args[0], out channel))
|
||||
startIndex = 1;
|
||||
}
|
||||
|
||||
StringBuilder message = new StringBuilder();
|
||||
|
||||
for (int i = startIndex; i < args.Length; i++)
|
||||
{
|
||||
message.Append(args[i]);
|
||||
if (i != args.Length - 1)
|
||||
message.Append(" ");
|
||||
}
|
||||
|
||||
Client.Self.Chat(message.ToString(), channel, ChatType.Normal);
|
||||
|
||||
return String.Format(bot.Localization.clResourceManager.getText("Commands.Say.Said"), message.ToString());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
80
SLBot/bot/Commands/Communication/ShoutCommand.cs
Normal file
80
SLBot/bot/Commands/Communication/ShoutCommand.cs
Normal file
@@ -0,0 +1,80 @@
|
||||
/***************************************************************************
|
||||
The Disc Image Chef
|
||||
----------------------------------------------------------------------------
|
||||
|
||||
Filename : ShoutCommand.cs
|
||||
Version : 1.0.326
|
||||
Author(s) : Natalia Portillo
|
||||
|
||||
Component : NatiBot
|
||||
|
||||
Revision : r326
|
||||
Last change by : Natalia Portillo
|
||||
Date : 2010/01/01
|
||||
|
||||
--[ License ] --------------------------------------------------------------
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as
|
||||
published by the Free Software Foundation, either version 3 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
----------------------------------------------------------------------------
|
||||
Copyright (C) 2008-2014 Claunia.com
|
||||
****************************************************************************/
|
||||
namespace bot.Commands
|
||||
{
|
||||
using bot;
|
||||
using OpenMetaverse;
|
||||
using System;
|
||||
|
||||
public class ShoutCommand : Command
|
||||
{
|
||||
public ShoutCommand(SecondLifeBot SecondLifeBot)
|
||||
{
|
||||
base.Name = "shout";
|
||||
base.Description = bot.Localization.clResourceManager.getText("Commands.Shout.Description") + " " + bot.Localization.clResourceManager.getText("Commands.Shout.Usage");
|
||||
}
|
||||
|
||||
public override string Execute(string[] args, UUID fromAgentID, bool fromSL)
|
||||
{
|
||||
int channel = 0;
|
||||
int startIndex = 0;
|
||||
string message = String.Empty;
|
||||
if (args.Length < 1)
|
||||
{
|
||||
return bot.Localization.clResourceManager.getText("Commands.Shout.Usage");
|
||||
}
|
||||
else if (args.Length > 1)
|
||||
{
|
||||
try
|
||||
{
|
||||
channel = Convert.ToInt32(args[0]);
|
||||
startIndex = 1;
|
||||
}
|
||||
catch (FormatException)
|
||||
{
|
||||
channel = 0;
|
||||
}
|
||||
}
|
||||
|
||||
for (int i = startIndex; i < args.Length; i++)
|
||||
{
|
||||
message += args[i] + " ";
|
||||
}
|
||||
|
||||
Client.Self.Chat(message, channel, ChatType.Shout);
|
||||
|
||||
return String.Format(bot.Localization.clResourceManager.getText("Commands.Shout.Shouted"), message);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
80
SLBot/bot/Commands/Communication/WhisperCommand.cs
Normal file
80
SLBot/bot/Commands/Communication/WhisperCommand.cs
Normal file
@@ -0,0 +1,80 @@
|
||||
/***************************************************************************
|
||||
The Disc Image Chef
|
||||
----------------------------------------------------------------------------
|
||||
|
||||
Filename : WhisperCommand.cs
|
||||
Version : 1.0.326
|
||||
Author(s) : Natalia Portillo
|
||||
|
||||
Component : NatiBot
|
||||
|
||||
Revision : r326
|
||||
Last change by : Natalia Portillo
|
||||
Date : 2010/01/01
|
||||
|
||||
--[ License ] --------------------------------------------------------------
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as
|
||||
published by the Free Software Foundation, either version 3 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
----------------------------------------------------------------------------
|
||||
Copyright (C) 2008-2014 Claunia.com
|
||||
****************************************************************************/
|
||||
namespace bot.Commands
|
||||
{
|
||||
using bot;
|
||||
using OpenMetaverse;
|
||||
using System;
|
||||
|
||||
public class WhisperCommand : Command
|
||||
{
|
||||
public WhisperCommand(SecondLifeBot SecondLifeBot)
|
||||
{
|
||||
base.Name = "whisper";
|
||||
base.Description = bot.Localization.clResourceManager.getText("Commands.Whisper.Description") + " " + bot.Localization.clResourceManager.getText("Commands.Whisper.Usage");
|
||||
}
|
||||
|
||||
public override string Execute(string[] args, UUID fromAgentID, bool fromSL)
|
||||
{
|
||||
int channel = 0;
|
||||
int startIndex = 0;
|
||||
string message = String.Empty;
|
||||
if (args.Length < 1)
|
||||
{
|
||||
return bot.Localization.clResourceManager.getText("Commands.Whisper.Usage");
|
||||
}
|
||||
else if (args.Length > 1)
|
||||
{
|
||||
try
|
||||
{
|
||||
channel = Convert.ToInt32(args[0]);
|
||||
startIndex = 1;
|
||||
}
|
||||
catch (FormatException)
|
||||
{
|
||||
channel = 0;
|
||||
}
|
||||
}
|
||||
|
||||
for (int i = startIndex; i < args.Length; i++)
|
||||
{
|
||||
message += args[i] + " ";
|
||||
}
|
||||
|
||||
Client.Self.Chat(message, channel, ChatType.Whisper);
|
||||
|
||||
return String.Format(bot.Localization.clResourceManager.getText("Commands.Whisper.Whispered"), message);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
108
SLBot/bot/Commands/Download/AnimationsCommand.cs
Normal file
108
SLBot/bot/Commands/Download/AnimationsCommand.cs
Normal file
@@ -0,0 +1,108 @@
|
||||
/***************************************************************************
|
||||
The Disc Image Chef
|
||||
----------------------------------------------------------------------------
|
||||
|
||||
Filename : AnimationsCommand.cs
|
||||
Version : 1.0.326
|
||||
Author(s) : Natalia Portillo
|
||||
|
||||
Component : NatiBot
|
||||
|
||||
Revision : r326
|
||||
Last change by : Natalia Portillo
|
||||
Date : 2010/01/01
|
||||
|
||||
--[ License ] --------------------------------------------------------------
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as
|
||||
published by the Free Software Foundation, either version 3 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
----------------------------------------------------------------------------
|
||||
Copyright (C) 2008-2014 Claunia.com
|
||||
****************************************************************************/
|
||||
namespace bot.Commands
|
||||
{
|
||||
using bot;
|
||||
using System;
|
||||
using System.IO;
|
||||
using System.Threading;
|
||||
using OpenMetaverse;
|
||||
using OpenMetaverse.Assets;
|
||||
using System.Collections.Generic;
|
||||
|
||||
public class AnimationsCommand : Command
|
||||
{
|
||||
Dictionary<UUID, UUID> alreadyRequested = new Dictionary<UUID, UUID>();
|
||||
bool enabled = false;
|
||||
|
||||
public AnimationsCommand(SecondLifeBot SecondLifeBot)
|
||||
{
|
||||
base.Name = "animations";
|
||||
base.Description = bot.Localization.clResourceManager.getText("Commands.Animations.Description") + " " + bot.Localization.clResourceManager.getText("Commands.Animations.Usage");
|
||||
|
||||
enabled = SecondLifeBot.Account.LoginDetails.BotConfig.GetSounds;
|
||||
SecondLifeBot.Avatars.AvatarAnimation += new EventHandler<AvatarAnimationEventArgs>(Avatars_AvatarAnimation);
|
||||
}
|
||||
|
||||
public override string Execute(string[] args, UUID fromAgentID, bool fromSL)
|
||||
{
|
||||
if (args.Length != 1)
|
||||
return bot.Localization.clResourceManager.getText("Commands.Animations.Usage");
|
||||
|
||||
if (args[0].ToLower() == "on")
|
||||
{
|
||||
enabled = true;
|
||||
return bot.Localization.clResourceManager.getText("Commands.Animations.Enabled");
|
||||
}
|
||||
else if (args[0].ToLower() == "off")
|
||||
{
|
||||
enabled = false;
|
||||
return bot.Localization.clResourceManager.getText("Commands.Animations.Disabled");
|
||||
}
|
||||
else
|
||||
{
|
||||
return bot.Localization.clResourceManager.getText("Commands.Animations.Usage");
|
||||
}
|
||||
}
|
||||
|
||||
void Avatars_AvatarAnimation(object sender, AvatarAnimationEventArgs e)
|
||||
{
|
||||
Dictionary<UUID, string> BuiltInAnimations = Animations.ToDictionary();
|
||||
if (enabled && base.Client.Account.LoginDetails.BotConfig.GetSounds)
|
||||
{
|
||||
foreach (Animation an in e.Animations)
|
||||
{
|
||||
if (!BuiltInAnimations.ContainsKey(an.AnimationID))
|
||||
if (!System.IO.File.Exists("./animations/" + an.AnimationID.ToString() + ".animatn"))
|
||||
base.Client.Assets.RequestAsset(an.AnimationID, AssetType.Animation, true, Assets_OnAnimationReceived);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void Assets_OnAnimationReceived(AssetDownload transfer, Asset asset)
|
||||
{
|
||||
if (transfer.Success)
|
||||
{
|
||||
if (!System.IO.Directory.Exists("./animations"))
|
||||
System.IO.Directory.CreateDirectory("./animations");
|
||||
System.IO.File.WriteAllBytes("./animations/" + asset.AssetID.ToString() + ".animatn", asset.AssetData);
|
||||
|
||||
bot.Console.WriteLine(bot.Localization.clResourceManager.getText("Commands.DownloadAnimation.Downloaded"), asset.AssetID.ToString(), asset.AssetData.Length);
|
||||
}
|
||||
else
|
||||
{
|
||||
bot.Console.WriteLine(bot.Localization.clResourceManager.getText("Commands.DownloadAnimation.Failed"), transfer.AssetID, transfer.Status);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
99
SLBot/bot/Commands/Download/DownloadAnimation.cs
Normal file
99
SLBot/bot/Commands/Download/DownloadAnimation.cs
Normal file
@@ -0,0 +1,99 @@
|
||||
/***************************************************************************
|
||||
The Disc Image Chef
|
||||
----------------------------------------------------------------------------
|
||||
|
||||
Filename : DownloadAnimationCommand.cs
|
||||
Version : 1.0.326
|
||||
Author(s) : Natalia Portillo
|
||||
|
||||
Component : NatiBot
|
||||
|
||||
Revision : r326
|
||||
Last change by : Natalia Portillo
|
||||
Date : 2010/01/01
|
||||
|
||||
--[ License ] --------------------------------------------------------------
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as
|
||||
published by the Free Software Foundation, either version 3 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
----------------------------------------------------------------------------
|
||||
Copyright (C) 2008-2014 Claunia.com
|
||||
****************************************************************************/
|
||||
namespace bot.Commands
|
||||
{
|
||||
using bot;
|
||||
using OpenMetaverse;
|
||||
using OpenMetaverse.Packets;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Threading;
|
||||
using System.IO;
|
||||
using OpenMetaverse.Assets;
|
||||
|
||||
public class DownloadAnimationCommand : Command
|
||||
{
|
||||
string downloadResult;
|
||||
System.Threading.AutoResetEvent waitEvent = new System.Threading.AutoResetEvent(false);
|
||||
|
||||
public DownloadAnimationCommand(SecondLifeBot SecondLifeBot)
|
||||
{
|
||||
base.Name = "downloadanimation";
|
||||
base.Description = bot.Localization.clResourceManager.getText("Commands.DownloadAnimation.Description") + " " + bot.Localization.clResourceManager.getText("Commands.DownloadAnimation.Usage");
|
||||
}
|
||||
|
||||
public override string Execute(string[] args, UUID fromAgentID, bool something_else)
|
||||
{
|
||||
UUID AnimationUUID;
|
||||
|
||||
if (args.Length != 1)
|
||||
return bot.Localization.clResourceManager.getText("Commands.DownloadAnimation.Usage");
|
||||
|
||||
if (!UUID.TryParse(args[0], out AnimationUUID))
|
||||
{
|
||||
return bot.Localization.clResourceManager.getText("Commands.DownloadAnimation.InvalidUUID");
|
||||
}
|
||||
|
||||
Program.NBStats.AddStatData(String.Format("{0}: {1} downloading animation {2}.", DateTime.Now.ToString(), Client, args[0]));
|
||||
|
||||
base.Client.Assets.RequestAsset(AnimationUUID, AssetType.Animation, true, Assets_OnAnimationReceived);
|
||||
|
||||
if (!waitEvent.WaitOne(10000, false))
|
||||
{
|
||||
return bot.Localization.clResourceManager.getText("Commands.DownloadAnimation.Timeout");
|
||||
}
|
||||
else
|
||||
{
|
||||
return downloadResult;
|
||||
}
|
||||
}
|
||||
|
||||
public void Assets_OnAnimationReceived(AssetDownload transfer, Asset asset)
|
||||
{
|
||||
if (transfer.Success)
|
||||
{
|
||||
if (!System.IO.Directory.Exists("./animations"))
|
||||
System.IO.Directory.CreateDirectory("./animations");
|
||||
System.IO.File.WriteAllBytes("./animations/" + asset.AssetID.ToString() + ".animatn", asset.AssetData);
|
||||
|
||||
downloadResult = String.Format(bot.Localization.clResourceManager.getText("Commands.DownloadAnimation.Downloaded"), asset.AssetID.ToString(), asset.AssetData.Length);
|
||||
}
|
||||
else
|
||||
{
|
||||
downloadResult = String.Format(bot.Localization.clResourceManager.getText("Commands.DownloadAnimation.Failed"), transfer.AssetID, transfer.Status);
|
||||
}
|
||||
waitEvent.Set();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
100
SLBot/bot/Commands/Download/DownloadSoundCommand.cs
Normal file
100
SLBot/bot/Commands/Download/DownloadSoundCommand.cs
Normal file
@@ -0,0 +1,100 @@
|
||||
/***************************************************************************
|
||||
The Disc Image Chef
|
||||
----------------------------------------------------------------------------
|
||||
|
||||
Filename : DownloadSoundCommand.cs
|
||||
Version : 1.0.326
|
||||
Author(s) : Natalia Portillo
|
||||
|
||||
Component : NatiBot
|
||||
|
||||
Revision : r326
|
||||
Last change by : Natalia Portillo
|
||||
Date : 2010/01/01
|
||||
|
||||
--[ License ] --------------------------------------------------------------
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as
|
||||
published by the Free Software Foundation, either version 3 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
----------------------------------------------------------------------------
|
||||
Copyright (C) 2008-2014 Claunia.com
|
||||
****************************************************************************/
|
||||
namespace bot.Commands
|
||||
{
|
||||
using bot;
|
||||
using System;
|
||||
using System.IO;
|
||||
using System.Threading;
|
||||
using OpenMetaverse;
|
||||
using OpenMetaverse.Assets;
|
||||
|
||||
public class DownloadSoundCommand : Command
|
||||
{
|
||||
AutoResetEvent DownloadHandle = new AutoResetEvent(false);
|
||||
string resultState;
|
||||
|
||||
public DownloadSoundCommand(SecondLifeBot SecondLifeBot)
|
||||
{
|
||||
base.Name = "downloadsound";
|
||||
base.Description = bot.Localization.clResourceManager.getText("Commands.DownloadSound.Description") + " " + bot.Localization.clResourceManager.getText("Commands.DownloadSound.Usage");
|
||||
}
|
||||
|
||||
public override string Execute(string[] args, UUID fromAgentID, bool something_else)
|
||||
{
|
||||
UUID SoundID;
|
||||
|
||||
if (args.Length != 1)
|
||||
return bot.Localization.clResourceManager.getText("Commands.DownloadSound.Usage");
|
||||
|
||||
DownloadHandle.Reset();
|
||||
|
||||
if (UUID.TryParse(args[0], out SoundID))
|
||||
{
|
||||
Program.NBStats.AddStatData(String.Format("{0}: {1} downloading sound {2}.", DateTime.Now.ToString(), Client, args[0]));
|
||||
|
||||
base.Client.Assets.RequestAsset(SoundID, AssetType.Sound, true, Assets_OnSoundReceived);
|
||||
|
||||
if (DownloadHandle.WaitOne(120 * 1000, false))
|
||||
{
|
||||
return resultState;
|
||||
}
|
||||
else
|
||||
{
|
||||
return bot.Localization.clResourceManager.getText("Commands.DownloadSound.Timeout");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
return bot.Localization.clResourceManager.getText("Commands.DownloadAnimation.InvalidUUID");
|
||||
}
|
||||
}
|
||||
|
||||
public void Assets_OnSoundReceived(AssetDownload transfer, Asset asset)
|
||||
{
|
||||
if (transfer.Success)
|
||||
{
|
||||
if (!System.IO.Directory.Exists("./sounds"))
|
||||
System.IO.Directory.CreateDirectory("./sounds");
|
||||
System.IO.File.WriteAllBytes("./sounds/" + asset.AssetID.ToString() + ".ogg", asset.AssetData);
|
||||
|
||||
resultState = String.Format(bot.Localization.clResourceManager.getText("Commands.Sounds.Downloaded"), asset.AssetID.ToString(), asset.AssetData.Length);
|
||||
}
|
||||
else
|
||||
{
|
||||
resultState = String.Format(bot.Localization.clResourceManager.getText("Commands.Sounds.Failed"), transfer.AssetID, transfer.Status);
|
||||
}
|
||||
DownloadHandle.Set();
|
||||
}
|
||||
}
|
||||
}
|
||||
151
SLBot/bot/Commands/Download/DownloadTextureCommand.cs
Normal file
151
SLBot/bot/Commands/Download/DownloadTextureCommand.cs
Normal file
@@ -0,0 +1,151 @@
|
||||
/***************************************************************************
|
||||
The Disc Image Chef
|
||||
----------------------------------------------------------------------------
|
||||
|
||||
Filename : DownloadTextureCommand.cs
|
||||
Version : 1.0.326
|
||||
Author(s) : Natalia Portillo
|
||||
|
||||
Component : NatiBot
|
||||
|
||||
Revision : r326
|
||||
Last change by : Natalia Portillo
|
||||
Date : 2010/01/01
|
||||
|
||||
--[ License ] --------------------------------------------------------------
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as
|
||||
published by the Free Software Foundation, either version 3 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
----------------------------------------------------------------------------
|
||||
Copyright (C) 2008-2014 Claunia.com
|
||||
****************************************************************************/
|
||||
namespace bot.Commands
|
||||
{
|
||||
using bot;
|
||||
using System;
|
||||
using System.IO;
|
||||
using System.Threading;
|
||||
using OpenMetaverse;
|
||||
using OpenMetaverse.Assets;
|
||||
|
||||
public class DownloadTextureCommand : Command
|
||||
{
|
||||
UUID TextureID;
|
||||
AutoResetEvent DownloadHandle = new AutoResetEvent(false);
|
||||
TextureRequestState resultState;
|
||||
AssetTexture Asset;
|
||||
|
||||
public DownloadTextureCommand(SecondLifeBot SecondLifeBot)
|
||||
{
|
||||
base.Name = "downloadtexture";
|
||||
base.Description = bot.Localization.clResourceManager.getText("Commands.DownloadTexture.Description") + " " + bot.Localization.clResourceManager.getText("Commands.DownloadTexture.Usage");
|
||||
|
||||
//SecondLifeBot.Assets.OnImageReceiveProgress += new AssetManager.ImageReceiveProgressCallback(Assets_OnImageReceiveProgress);
|
||||
//SecondLifeBot.Assets.OnImageReceived += new AssetManager.ImageReceivedCallback(Assets_OnImageReceived);
|
||||
}
|
||||
|
||||
public override string Execute(string[] args, UUID fromAgentID, bool something_else)
|
||||
{
|
||||
if (args.Length != 1)
|
||||
return bot.Localization.clResourceManager.getText("Commands.DownloadTexture.Usage");
|
||||
|
||||
if (args.Length != 1 && args.Length != 2)
|
||||
return bot.Localization.clResourceManager.getText("Commands.DownloadTexture.UsageLong");
|
||||
|
||||
TextureID = UUID.Zero;
|
||||
DownloadHandle.Reset();
|
||||
Asset = null;
|
||||
|
||||
if (UUID.TryParse(args[0], out TextureID))
|
||||
{
|
||||
int discardLevel = 0;
|
||||
|
||||
if (args.Length > 1)
|
||||
{
|
||||
if (!Int32.TryParse(args[1], out discardLevel))
|
||||
return bot.Localization.clResourceManager.getText("Commands.DownloadTexture.UsageLong");
|
||||
}
|
||||
|
||||
Program.NBStats.AddStatData(String.Format("{0}: {1} downloading texture {2}.", DateTime.Now.ToString(), Client, args[0]));
|
||||
|
||||
Client.Assets.RequestImage(TextureID, ImageType.Normal, Assets_OnImageReceived);
|
||||
|
||||
if (DownloadHandle.WaitOne(120 * 1000, false))
|
||||
{
|
||||
if (resultState == TextureRequestState.Finished)
|
||||
{
|
||||
if (Asset != null && Asset.Decode())
|
||||
{
|
||||
if (!Directory.Exists("textures/"))
|
||||
Directory.CreateDirectory("textures/");
|
||||
|
||||
try
|
||||
{
|
||||
File.WriteAllBytes("textures/" + Asset.AssetID + ".jp2", Asset.AssetData);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
bot.Console.WriteLine(ex.Message, Helpers.LogLevel.Error, Client, ex);
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
File.WriteAllBytes("textures/" + Asset.AssetID + ".tga", Asset.Image.ExportTGA());
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
bot.Console.WriteLine(ex.Message, Helpers.LogLevel.Error, Client);
|
||||
}
|
||||
|
||||
return String.Format(bot.Localization.clResourceManager.getText("Commands.DownloadTexture.Saved"), Asset.AssetID, Asset.Image.Width, Asset.Image.Height);
|
||||
}
|
||||
else
|
||||
{
|
||||
return String.Format(bot.Localization.clResourceManager.getText("Assets.Image.FailDecode"), TextureID.ToString());
|
||||
}
|
||||
}
|
||||
else if (resultState == TextureRequestState.NotFound)
|
||||
{
|
||||
return String.Format(bot.Localization.clResourceManager.getText("Commands.DownloadTexture.NotFound"), TextureID.ToString());
|
||||
}
|
||||
else
|
||||
{
|
||||
return String.Format(bot.Localization.clResourceManager.getText("Assets.Image.FailDownload"), TextureID, resultState);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
return bot.Localization.clResourceManager.getText("Commands.DownloadTexture.Timeout");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
return bot.Localization.clResourceManager.getText("Commands.DownloadTexture.Usage");
|
||||
}
|
||||
}
|
||||
|
||||
private void Assets_OnImageReceived(TextureRequestState state, AssetTexture asset)
|
||||
{
|
||||
resultState = state;
|
||||
Asset = asset;
|
||||
|
||||
DownloadHandle.Set();
|
||||
}
|
||||
|
||||
/*private void Assets_OnImageReceiveProgress(UUID image, int lastPacket, int recieved, int total)
|
||||
{
|
||||
bot.Console.WriteLine(String.Format("Textura {0}: Recibidos {1} / {2} bytes", image, recieved, total));
|
||||
}*/
|
||||
}
|
||||
}
|
||||
108
SLBot/bot/Commands/Download/SoundsCommand.cs
Normal file
108
SLBot/bot/Commands/Download/SoundsCommand.cs
Normal file
@@ -0,0 +1,108 @@
|
||||
/***************************************************************************
|
||||
The Disc Image Chef
|
||||
----------------------------------------------------------------------------
|
||||
|
||||
Filename : SoundsCommand.cs
|
||||
Version : 1.0.326
|
||||
Author(s) : Natalia Portillo
|
||||
|
||||
Component : NatiBot
|
||||
|
||||
Revision : r326
|
||||
Last change by : Natalia Portillo
|
||||
Date : 2010/01/01
|
||||
|
||||
--[ License ] --------------------------------------------------------------
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as
|
||||
published by the Free Software Foundation, either version 3 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
----------------------------------------------------------------------------
|
||||
Copyright (C) 2008-2014 Claunia.com
|
||||
****************************************************************************/
|
||||
namespace bot.Commands
|
||||
{
|
||||
using bot;
|
||||
using System;
|
||||
using System.IO;
|
||||
using System.Threading;
|
||||
using OpenMetaverse;
|
||||
using OpenMetaverse.Assets;
|
||||
using System.Collections.Generic;
|
||||
|
||||
public class SoundsCommand : Command
|
||||
{
|
||||
Dictionary<UUID, UUID> alreadyRequested = new Dictionary<UUID, UUID>();
|
||||
bool enabled = false;
|
||||
|
||||
public SoundsCommand(SecondLifeBot SecondLifeBot)
|
||||
{
|
||||
base.Name = "sounds";
|
||||
base.Description = bot.Localization.clResourceManager.getText("Commands.Sounds.Description") + " " + bot.Localization.clResourceManager.getText("Commands.Textures.Usage");
|
||||
|
||||
enabled = SecondLifeBot.Account.LoginDetails.BotConfig.GetSounds;
|
||||
SecondLifeBot.Sound.SoundTrigger += new EventHandler<SoundTriggerEventArgs>(Sound_SoundTrigger);
|
||||
}
|
||||
|
||||
public override string Execute(string[] args, UUID fromAgentID, bool fromSL)
|
||||
{
|
||||
if (args.Length != 1)
|
||||
return bot.Localization.clResourceManager.getText("Commands.Sounds.Usage");
|
||||
|
||||
if (args[0].ToLower() == "on")
|
||||
{
|
||||
enabled = true;
|
||||
return bot.Localization.clResourceManager.getText("Commands.Sounds.Enabled");
|
||||
}
|
||||
else if (args[0].ToLower() == "off")
|
||||
{
|
||||
enabled = false;
|
||||
return bot.Localization.clResourceManager.getText("Commands.Sounds.Disabled");
|
||||
}
|
||||
else
|
||||
{
|
||||
return bot.Localization.clResourceManager.getText("Commands.Sounds.Usage");
|
||||
}
|
||||
}
|
||||
|
||||
void Sound_SoundTrigger(object sender, SoundTriggerEventArgs e)
|
||||
{
|
||||
if (enabled && base.Client.Account.LoginDetails.BotConfig.GetTextures)
|
||||
{
|
||||
#if DEBUG
|
||||
bot.Console.WriteLine(this.Client, "GETTING SOUND: Gain: {0}, Object: {1}, Owner: {2}, Parent: {3}, Position: {4}, Region: {5}, ID: {6}",
|
||||
e.Gain.ToString(), e.ObjectID.ToString(), e.OwnerID.ToString(), e.ParentID.ToString(),
|
||||
e.Position.ToString(), e.RegionHandle.ToString(), e.SoundID.ToString());
|
||||
#endif
|
||||
if (!System.IO.File.Exists("./sounds/" + e.SoundID.ToString() + ".ogg"))
|
||||
base.Client.Assets.RequestAsset(e.SoundID, AssetType.Sound, true, Assets_OnSoundReceived);
|
||||
}
|
||||
}
|
||||
|
||||
public void Assets_OnSoundReceived(AssetDownload transfer, Asset asset)
|
||||
{
|
||||
if (transfer.Success)
|
||||
{
|
||||
if (!System.IO.Directory.Exists("./sounds"))
|
||||
System.IO.Directory.CreateDirectory("./sounds");
|
||||
System.IO.File.WriteAllBytes("./sounds/" + asset.AssetID.ToString() + ".ogg", asset.AssetData);
|
||||
|
||||
bot.Console.WriteLine(bot.Localization.clResourceManager.getText("Commands.Sounds.Downloaded"), asset.AssetID.ToString(), asset.AssetData.Length);
|
||||
}
|
||||
else
|
||||
{
|
||||
bot.Console.WriteLine(bot.Localization.clResourceManager.getText("Commands.Sounds.Failed"), transfer.AssetID, transfer.Status);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
182
SLBot/bot/Commands/Download/TexturesCommand.cs
Normal file
182
SLBot/bot/Commands/Download/TexturesCommand.cs
Normal file
@@ -0,0 +1,182 @@
|
||||
/***************************************************************************
|
||||
The Disc Image Chef
|
||||
----------------------------------------------------------------------------
|
||||
|
||||
Filename : TexturesCommand.cs
|
||||
Version : 1.0.326
|
||||
Author(s) : Natalia Portillo
|
||||
|
||||
Component : NatiBot
|
||||
|
||||
Revision : r326
|
||||
Last change by : Natalia Portillo
|
||||
Date : 2010/01/01
|
||||
|
||||
--[ License ] --------------------------------------------------------------
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as
|
||||
published by the Free Software Foundation, either version 3 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
----------------------------------------------------------------------------
|
||||
Copyright (C) 2008-2014 Claunia.com
|
||||
****************************************************************************/
|
||||
namespace bot.Commands
|
||||
{
|
||||
using bot;
|
||||
using System;
|
||||
using System.IO;
|
||||
using System.Threading;
|
||||
using OpenMetaverse;
|
||||
using OpenMetaverse.Assets;
|
||||
using System.Collections.Generic;
|
||||
|
||||
public class TexturesCommand : Command
|
||||
{
|
||||
Dictionary<UUID, UUID> alreadyRequested = new Dictionary<UUID, UUID>();
|
||||
bool enabled = false;
|
||||
|
||||
public TexturesCommand(SecondLifeBot SecondLifeBot)
|
||||
{
|
||||
base.Name = "textures";
|
||||
base.Description = bot.Localization.clResourceManager.getText("Commands.Textures.Description") + " " + bot.Localization.clResourceManager.getText("Commands.Textures.Usage");
|
||||
|
||||
enabled = SecondLifeBot.Account.LoginDetails.BotConfig.GetTextures;
|
||||
SecondLifeBot.Objects.ObjectUpdate += new EventHandler<PrimEventArgs>(Objects_OnNewPrim);
|
||||
SecondLifeBot.Objects.AvatarUpdate += Objects_OnNewAvatar;
|
||||
}
|
||||
|
||||
public override string Execute(string[] args, UUID fromAgentID, bool fromSL)
|
||||
{
|
||||
if (args.Length != 1)
|
||||
return bot.Localization.clResourceManager.getText("Commands.Textures.Usage");
|
||||
|
||||
if (args[0].ToLower() == "on")
|
||||
{
|
||||
enabled = true;
|
||||
return bot.Localization.clResourceManager.getText("Commands.Textures.Enabled");
|
||||
}
|
||||
else if (args[0].ToLower() == "off")
|
||||
{
|
||||
enabled = false;
|
||||
return bot.Localization.clResourceManager.getText("Commands.Textures.Disabled");
|
||||
}
|
||||
else
|
||||
{
|
||||
return bot.Localization.clResourceManager.getText("Commands.Textures.Usage");
|
||||
}
|
||||
}
|
||||
|
||||
void Objects_OnNewAvatar(object sender, AvatarUpdateEventArgs e)
|
||||
{
|
||||
if (enabled && base.Client.Account.LoginDetails.BotConfig.GetTextures)
|
||||
{
|
||||
// Search this avatar for textures
|
||||
for (int i = 0; i < e.Avatar.Textures.FaceTextures.Length; i++)
|
||||
{
|
||||
Primitive.TextureEntryFace face = e.Avatar.Textures.FaceTextures[i];
|
||||
|
||||
if (face != null)
|
||||
{
|
||||
if (!alreadyRequested.ContainsKey(face.TextureID))
|
||||
{
|
||||
alreadyRequested[face.TextureID] = face.TextureID;
|
||||
|
||||
// Determine if this is a baked outfit texture or a normal texture
|
||||
ImageType type = ImageType.Normal;
|
||||
AvatarTextureIndex index = (AvatarTextureIndex)i;
|
||||
switch (index)
|
||||
{
|
||||
case AvatarTextureIndex.EyesBaked:
|
||||
case AvatarTextureIndex.HeadBaked:
|
||||
case AvatarTextureIndex.LowerBaked:
|
||||
case AvatarTextureIndex.SkirtBaked:
|
||||
case AvatarTextureIndex.UpperBaked:
|
||||
type = ImageType.Baked;
|
||||
break;
|
||||
}
|
||||
|
||||
if (!File.Exists("textures/" + face.TextureID + ".jp2"))
|
||||
Client.Assets.RequestImage(face.TextureID, type, Assets_OnImageReceived);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void Objects_OnNewPrim(object sender, PrimEventArgs e)
|
||||
{
|
||||
Primitive prim = e.Prim;
|
||||
|
||||
if (enabled && base.Client.Account.LoginDetails.BotConfig.GetTextures)
|
||||
{
|
||||
// Search this prim for textures
|
||||
for (int i = 0; i < prim.Textures.FaceTextures.Length; i++)
|
||||
{
|
||||
Primitive.TextureEntryFace face = prim.Textures.FaceTextures[i];
|
||||
|
||||
if (face != null)
|
||||
{
|
||||
if (!alreadyRequested.ContainsKey(face.TextureID))
|
||||
{
|
||||
alreadyRequested[face.TextureID] = face.TextureID;
|
||||
if (!File.Exists("textures/" + face.TextureID + ".jp2"))
|
||||
Client.Assets.RequestImage(face.TextureID, ImageType.Normal, Assets_OnImageReceived);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void Assets_OnImageReceived(TextureRequestState state, AssetTexture asset)
|
||||
{
|
||||
if (state == TextureRequestState.Finished && enabled && alreadyRequested.ContainsKey(asset.AssetID))
|
||||
{
|
||||
if (state == TextureRequestState.Finished)
|
||||
{
|
||||
if (!Directory.Exists("textures"))
|
||||
Directory.CreateDirectory("textures");
|
||||
|
||||
try
|
||||
{
|
||||
File.WriteAllBytes("textures/" + asset.AssetID + ".jp2", asset.AssetData);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
bot.Console.WriteLine(ex.Message, Helpers.LogLevel.Error, Client);
|
||||
}
|
||||
|
||||
if (asset.Decode())
|
||||
{
|
||||
try
|
||||
{
|
||||
File.WriteAllBytes("textures/" + asset.AssetID + ".tga", asset.Image.ExportTGA());
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
bot.Console.WriteLine(ex.Message, Helpers.LogLevel.Error, Client);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
bot.Console.WriteLine(bot.Localization.clResourceManager.getText("Assets.Image.FailDecode"), asset.AssetID);
|
||||
}
|
||||
|
||||
bot.Console.WriteLine(bot.Localization.clResourceManager.getText("Assets.Image.Downloaded"), asset.AssetID, asset.AssetData.Length);
|
||||
|
||||
}
|
||||
else
|
||||
bot.Console.WriteLine(bot.Localization.clResourceManager.getText("Assets.Image.FailDownload"), asset.AssetID, state);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
53
SLBot/bot/Commands/Estate/DilationCommand.cs
Normal file
53
SLBot/bot/Commands/Estate/DilationCommand.cs
Normal file
@@ -0,0 +1,53 @@
|
||||
/***************************************************************************
|
||||
The Disc Image Chef
|
||||
----------------------------------------------------------------------------
|
||||
|
||||
Filename : DilationCommand.cs
|
||||
Version : 1.0.326
|
||||
Author(s) : Natalia Portillo
|
||||
|
||||
Component : NatiBot
|
||||
|
||||
Revision : r326
|
||||
Last change by : Natalia Portillo
|
||||
Date : 2010/01/01
|
||||
|
||||
--[ License ] --------------------------------------------------------------
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as
|
||||
published by the Free Software Foundation, either version 3 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
----------------------------------------------------------------------------
|
||||
Copyright (C) 2008-2014 Claunia.com
|
||||
****************************************************************************/
|
||||
namespace bot.Commands
|
||||
{
|
||||
using bot;
|
||||
using OpenMetaverse;
|
||||
using System;
|
||||
|
||||
public class DilationCommand : Command
|
||||
{
|
||||
public DilationCommand(SecondLifeBot SecondLifeBot)
|
||||
{
|
||||
base.Name = "dilation";
|
||||
base.Description = bot.Localization.clResourceManager.getText("Commands.Dilation.Description");
|
||||
}
|
||||
|
||||
public override string Execute(string[] args, UUID fromAgentID, bool fromSL)
|
||||
{
|
||||
return String.Format(bot.Localization.clResourceManager.getText("Commands.Dilation.Dilation"), Client.Network.CurrentSim.Stats.Dilation.ToString());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
135
SLBot/bot/Commands/Estate/DownloadTerrainCommand.cs
Normal file
135
SLBot/bot/Commands/Estate/DownloadTerrainCommand.cs
Normal file
@@ -0,0 +1,135 @@
|
||||
/***************************************************************************
|
||||
The Disc Image Chef
|
||||
----------------------------------------------------------------------------
|
||||
|
||||
Filename : DownloadTerrainCommand.cs
|
||||
Version : 1.0.326
|
||||
Author(s) : Natalia Portillo
|
||||
|
||||
Component : NatiBot
|
||||
|
||||
Revision : r326
|
||||
Last change by : Natalia Portillo
|
||||
Date : 2010/01/01
|
||||
|
||||
--[ License ] --------------------------------------------------------------
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as
|
||||
published by the Free Software Foundation, either version 3 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
----------------------------------------------------------------------------
|
||||
Copyright (C) 2008-2014 Claunia.com
|
||||
****************************************************************************/
|
||||
namespace bot.Commands
|
||||
{
|
||||
using bot;
|
||||
using System;
|
||||
using System.IO;
|
||||
using System.Collections.Generic;
|
||||
using System.Threading;
|
||||
using OpenMetaverse;
|
||||
|
||||
public class DownloadTerrainCommand : Command
|
||||
{
|
||||
/// <summary>
|
||||
/// Create a Synchronization event object
|
||||
/// </summary>
|
||||
private static AutoResetEvent xferTimeout = new AutoResetEvent(false);
|
||||
|
||||
/// <summary>A string we use to report the result of the request with.</summary>
|
||||
private static System.Text.StringBuilder result = new System.Text.StringBuilder();
|
||||
|
||||
private static string fileName;
|
||||
|
||||
/// <summary>
|
||||
/// Download a simulators raw terrain data and save it to a file
|
||||
/// </summary>
|
||||
/// <param name="testClient"></param>
|
||||
public DownloadTerrainCommand(SecondLifeBot SecondLifeBot)
|
||||
{
|
||||
Name = "downloadterrain";
|
||||
Description = bot.Localization.clResourceManager.getText("Commands.DownloadTerrain.Description") + " " + bot.Localization.clResourceManager.getText("Commands.DownloadTerrain.Usage");
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Execute the application
|
||||
/// </summary>
|
||||
/// <param name="args">arguments passed to this module</param>
|
||||
/// <param name="fromAgentID">The ID of the avatar sending the request</param>
|
||||
/// <returns></returns>
|
||||
public override string Execute(string[] args, UUID fromAgentID, bool something_else)
|
||||
{
|
||||
int timeout = 120000; // default the timeout to 2 minutes
|
||||
fileName = "terrain/" + Client.Network.CurrentSim.Name + ".raw";
|
||||
|
||||
if (args.Length > 0 && int.TryParse(args[0], out timeout) != true)
|
||||
return bot.Localization.clResourceManager.getText("Commands.DownloadTerrain.Usage");
|
||||
|
||||
// Create a delegate which will be fired when the simulator receives our download request
|
||||
// Starts the actual transfer request
|
||||
AssetManager.InitiateDownloadCallback initiateDownloadDelegate = delegate(string simFilename, string viewerFileName)
|
||||
{
|
||||
Client.Assets.RequestAssetXfer(simFilename, false, false, UUID.Zero, AssetType.Unknown, false);
|
||||
};
|
||||
|
||||
// Subscribe to the event that will tell us the status of the download
|
||||
Client.Assets.OnXferReceived += new AssetManager.XferReceivedCallback(Assets_OnXferReceived);
|
||||
|
||||
// subscribe to the event which tells us when the simulator has received our request
|
||||
Client.Assets.OnInitiateDownload += initiateDownloadDelegate;
|
||||
|
||||
// configure request to tell the simulator to send us the file
|
||||
List<string> parameters = new List<string>();
|
||||
parameters.Add("download filename");
|
||||
parameters.Add(fileName);
|
||||
// send the request
|
||||
Client.Estate.EstateOwnerMessage("terrain", parameters);
|
||||
|
||||
// wait for (timeout) seconds for the request to complete (defaults 2 minutes)
|
||||
if (!xferTimeout.WaitOne(timeout, false))
|
||||
{
|
||||
result.Append(bot.Localization.clResourceManager.getText("Commands.DownloadTerrain.Timeout"));
|
||||
}
|
||||
|
||||
// unsubscribe from events
|
||||
Client.Assets.OnInitiateDownload -= initiateDownloadDelegate;
|
||||
Client.Assets.OnXferReceived -= new AssetManager.XferReceivedCallback(Assets_OnXferReceived);
|
||||
|
||||
// return the result
|
||||
return result.ToString();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Handle the reply to the OnXferReceived event
|
||||
/// </summary>
|
||||
/// <param name="xfer"></param>
|
||||
private void Assets_OnXferReceived(XferDownload xfer)
|
||||
{
|
||||
if (xfer.Success)
|
||||
{
|
||||
// set the result message
|
||||
result.AppendFormat(bot.Localization.clResourceManager.getText("Commands.DownloadTerrain.Success"), xfer.Filename, xfer.Size, fileName);
|
||||
|
||||
// write the file to disk
|
||||
FileStream stream = new FileStream(fileName, FileMode.Create);
|
||||
BinaryWriter w = new BinaryWriter(stream);
|
||||
w.Write(xfer.AssetData);
|
||||
w.Close();
|
||||
|
||||
// tell the application we've gotten the file
|
||||
xferTimeout.Set();
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
84
SLBot/bot/Commands/Estate/RegionInfoCommand.cs
Normal file
84
SLBot/bot/Commands/Estate/RegionInfoCommand.cs
Normal file
@@ -0,0 +1,84 @@
|
||||
/***************************************************************************
|
||||
The Disc Image Chef
|
||||
----------------------------------------------------------------------------
|
||||
|
||||
Filename : RegionInfoCommand.cs
|
||||
Version : 1.0.326
|
||||
Author(s) : Natalia Portillo
|
||||
|
||||
Component : NatiBot
|
||||
|
||||
Revision : r326
|
||||
Last change by : Natalia Portillo
|
||||
Date : 2010/01/01
|
||||
|
||||
--[ License ] --------------------------------------------------------------
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as
|
||||
published by the Free Software Foundation, either version 3 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
----------------------------------------------------------------------------
|
||||
Copyright (C) 2008-2014 Claunia.com
|
||||
****************************************************************************/
|
||||
namespace bot.Commands
|
||||
{
|
||||
using bot;
|
||||
using OpenMetaverse;
|
||||
using System;
|
||||
using System.Text;
|
||||
|
||||
public class RegionInfoCommand : Command
|
||||
{
|
||||
public RegionInfoCommand(SecondLifeBot SecondLifeBot)
|
||||
{
|
||||
base.Name = "regioninfo";
|
||||
base.Description = bot.Localization.clResourceManager.getText("Commands.RegionInfo.Description");
|
||||
}
|
||||
|
||||
public override string Execute(string[] args, UUID fromAgentID, bool fromSL)
|
||||
{
|
||||
StringBuilder output = new StringBuilder();
|
||||
output.AppendLine(Client.Network.CurrentSim.ToString());
|
||||
output.Append(bot.Localization.clResourceManager.getText("Commands.RegionInfo.UUID"));
|
||||
output.AppendLine(Client.Network.CurrentSim.ID.ToString());
|
||||
uint x, y;
|
||||
Utils.LongToUInts(Client.Network.CurrentSim.Handle, out x, out y);
|
||||
output.AppendLine(String.Format(bot.Localization.clResourceManager.getText("Commands.RegionInfo.Handle"), Client.Network.CurrentSim.Handle, x, y));
|
||||
output.Append(bot.Localization.clResourceManager.getText("Commands.RegionInfo.Access"));
|
||||
output.AppendLine(Client.Network.CurrentSim.Access.ToString());
|
||||
output.Append(bot.Localization.clResourceManager.getText("Commands.RegionInfo.Flags"));
|
||||
output.AppendLine(Client.Network.CurrentSim.Flags.ToString());
|
||||
output.Append(bot.Localization.clResourceManager.getText("Commands.RegionInfo.TerrainBase0"));
|
||||
output.AppendLine(Client.Network.CurrentSim.TerrainBase0.ToString());
|
||||
output.Append(bot.Localization.clResourceManager.getText("Commands.RegionInfo.TerrainBase1"));
|
||||
output.AppendLine(Client.Network.CurrentSim.TerrainBase1.ToString());
|
||||
output.Append(bot.Localization.clResourceManager.getText("Commands.RegionInfo.TerrainBase2"));
|
||||
output.AppendLine(Client.Network.CurrentSim.TerrainBase2.ToString());
|
||||
output.Append(bot.Localization.clResourceManager.getText("Commands.RegionInfo.TerrainBase3"));
|
||||
output.AppendLine(Client.Network.CurrentSim.TerrainBase3.ToString());
|
||||
output.Append(bot.Localization.clResourceManager.getText("Commands.RegionInfo.TerrainDetail0"));
|
||||
output.AppendLine(Client.Network.CurrentSim.TerrainDetail0.ToString());
|
||||
output.Append(bot.Localization.clResourceManager.getText("Commands.RegionInfo.TerrainDetail1"));
|
||||
output.AppendLine(Client.Network.CurrentSim.TerrainDetail1.ToString());
|
||||
output.Append(bot.Localization.clResourceManager.getText("Commands.RegionInfo.TerrainDetail2"));
|
||||
output.AppendLine(Client.Network.CurrentSim.TerrainDetail2.ToString());
|
||||
output.Append(bot.Localization.clResourceManager.getText("Commands.RegionInfo.TerrainDetail3"));
|
||||
output.AppendLine(Client.Network.CurrentSim.TerrainDetail3.ToString());
|
||||
output.Append(bot.Localization.clResourceManager.getText("Commands.RegionInfo.WaterHeight"));
|
||||
output.AppendLine(Client.Network.CurrentSim.WaterHeight.ToString());
|
||||
|
||||
return output.ToString();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
79
SLBot/bot/Commands/Estate/StatsCommand.cs
Normal file
79
SLBot/bot/Commands/Estate/StatsCommand.cs
Normal file
@@ -0,0 +1,79 @@
|
||||
/***************************************************************************
|
||||
The Disc Image Chef
|
||||
----------------------------------------------------------------------------
|
||||
|
||||
Filename : StatsCommand.cs
|
||||
Version : 1.0.326
|
||||
Author(s) : Natalia Portillo
|
||||
|
||||
Component : NatiBot
|
||||
|
||||
Revision : r326
|
||||
Last change by : Natalia Portillo
|
||||
Date : 2010/01/01
|
||||
|
||||
--[ License ] --------------------------------------------------------------
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as
|
||||
published by the Free Software Foundation, either version 3 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
----------------------------------------------------------------------------
|
||||
Copyright (C) 2008-2014 Claunia.com
|
||||
****************************************************************************/
|
||||
namespace bot.Commands
|
||||
{
|
||||
using bot;
|
||||
using OpenMetaverse;
|
||||
using System;
|
||||
using System.Text;
|
||||
|
||||
public class StatsCommand : Command
|
||||
{
|
||||
public StatsCommand(SecondLifeBot SecondLifeBot)
|
||||
{
|
||||
base.Name = "stats";
|
||||
base.Description = bot.Localization.clResourceManager.getText("Commands.Stats.Description");
|
||||
}
|
||||
|
||||
public override string Execute(string[] args, UUID fromAgentID, bool fromSL)
|
||||
{
|
||||
StringBuilder output = new StringBuilder();
|
||||
|
||||
lock (Client.Network.Simulators)
|
||||
{
|
||||
for (int i = 0; i < Client.Network.Simulators.Count; i++)
|
||||
{
|
||||
Simulator sim = Client.Network.Simulators[i];
|
||||
|
||||
output.AppendLine(String.Format(
|
||||
bot.Localization.clResourceManager.getText("Commands.Stats.Info1"),
|
||||
sim.ToString(), sim.Stats.Dilation, sim.Stats.IncomingBPS, sim.Stats.OutgoingBPS,
|
||||
sim.Stats.ResentPackets, sim.Stats.ReceivedResends));
|
||||
}
|
||||
}
|
||||
|
||||
Simulator csim = Client.Network.CurrentSim;
|
||||
|
||||
output.AppendFormat(bot.Localization.clResourceManager.getText("Commands.Stats.Packets"), Client.Network.InboxCount);
|
||||
output.AppendLine(String.Format(bot.Localization.clResourceManager.getText("Commands.Stats.Info2"),
|
||||
csim.Stats.FPS, csim.Stats.PhysicsFPS, csim.Stats.AgentUpdates, csim.Stats.Objects, csim.Stats.ScriptedObjects));
|
||||
output.AppendLine(String.Format(bot.Localization.clResourceManager.getText("Commands.Stats.Info3"),
|
||||
csim.Stats.FrameTime, csim.Stats.NetTime, csim.Stats.ImageTime, csim.Stats.PhysicsTime, csim.Stats.ScriptTime, csim.Stats.OtherTime));
|
||||
output.AppendLine(String.Format(bot.Localization.clResourceManager.getText("Commands.Stats.Info4"),
|
||||
csim.Stats.Agents, csim.Stats.ChildAgents, csim.Stats.ActiveScripts));
|
||||
|
||||
return output.ToString();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
118
SLBot/bot/Commands/Estate/UploadRawTerrainCommand.cs
Normal file
118
SLBot/bot/Commands/Estate/UploadRawTerrainCommand.cs
Normal file
@@ -0,0 +1,118 @@
|
||||
/***************************************************************************
|
||||
The Disc Image Chef
|
||||
----------------------------------------------------------------------------
|
||||
|
||||
Filename : UploadRawTerrainCommand.cs
|
||||
Version : 1.0.326
|
||||
Author(s) : Natalia Portillo
|
||||
|
||||
Component : NatiBot
|
||||
|
||||
Revision : r326
|
||||
Last change by : Natalia Portillo
|
||||
Date : 2010/01/01
|
||||
|
||||
--[ License ] --------------------------------------------------------------
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as
|
||||
published by the Free Software Foundation, either version 3 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
----------------------------------------------------------------------------
|
||||
Copyright (C) 2008-2014 Claunia.com
|
||||
****************************************************************************/
|
||||
namespace bot.Commands
|
||||
{
|
||||
using bot;
|
||||
using System;
|
||||
using System.IO;
|
||||
using System.Collections.Generic;
|
||||
using System.Threading;
|
||||
using OpenMetaverse;
|
||||
|
||||
public class UploadRawTerrainCommand : Command
|
||||
{
|
||||
System.Threading.AutoResetEvent WaitForUploadComplete = new System.Threading.AutoResetEvent(false);
|
||||
|
||||
/// <summary>
|
||||
/// Download a simulators raw terrain data and save it to a file
|
||||
/// </summary>
|
||||
/// <param name="testClient"></param>
|
||||
public UploadRawTerrainCommand(SecondLifeBot SecondLifeBot)
|
||||
{
|
||||
Name = "uploadterrain";
|
||||
Description = bot.Localization.clResourceManager.getText("Commands.UploadRawTerrain.Description") + " " + bot.Localization.clResourceManager.getText("Commands.UploadRawTerrain.Usage");
|
||||
}
|
||||
|
||||
public override string Execute(string[] args, UUID fromAgentID, bool something_else)
|
||||
{
|
||||
string fileName = String.Empty;
|
||||
|
||||
if (args.Length != 1)
|
||||
return bot.Localization.clResourceManager.getText("Commands.UploadRawTerrain.Usage");
|
||||
|
||||
|
||||
fileName = args[0];
|
||||
|
||||
if (!System.IO.File.Exists(fileName))
|
||||
{
|
||||
return String.Format(bot.Localization.clResourceManager.getText("Commands.UploadRawTerrain.FileNotFound"), fileName);
|
||||
}
|
||||
|
||||
// Setup callbacks for upload request reply and progress indicator
|
||||
// so we can detect when the upload is complete
|
||||
Client.Assets.OnUploadProgress += new AssetManager.UploadProgressCallback(Assets_OnUploadProgress);
|
||||
|
||||
byte[] fileData = File.ReadAllBytes(fileName);
|
||||
|
||||
Client.Estate.UploadTerrain(fileData, fileName);
|
||||
|
||||
// Wait for upload to complete. Upload request is fired in callback from first request
|
||||
if (!WaitForUploadComplete.WaitOne(120000, false))
|
||||
{
|
||||
Cleanup();
|
||||
return bot.Localization.clResourceManager.getText("Commands.UploadRawTerrain.Timeout");
|
||||
}
|
||||
else
|
||||
{
|
||||
Cleanup();
|
||||
return bot.Localization.clResourceManager.getText("Commands.UploadRawTerrain.Success");
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Unregister previously subscribed event handlers
|
||||
/// </summary>
|
||||
private void Cleanup()
|
||||
{
|
||||
Client.Assets.OnUploadProgress -= new AssetManager.UploadProgressCallback(Assets_OnUploadProgress);
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
/// <param name="upload"></param>
|
||||
void Assets_OnUploadProgress(AssetUpload upload)
|
||||
{
|
||||
if (upload.Transferred == upload.Size)
|
||||
{
|
||||
WaitForUploadComplete.Set();
|
||||
}
|
||||
else
|
||||
{
|
||||
//Console.WriteLine("Progress: {0}/{1} {2}/{3} {4}", upload.XferID, upload.ID, upload.Transferred, upload.Size, upload.Success);
|
||||
bot.Console.WriteLine(".");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
83
SLBot/bot/Commands/Grid/AgentLocationsCommand.cs
Normal file
83
SLBot/bot/Commands/Grid/AgentLocationsCommand.cs
Normal file
@@ -0,0 +1,83 @@
|
||||
/***************************************************************************
|
||||
The Disc Image Chef
|
||||
----------------------------------------------------------------------------
|
||||
|
||||
Filename : AgentLocationsCommand.cs
|
||||
Version : 1.0.326
|
||||
Author(s) : Natalia Portillo
|
||||
|
||||
Component : NatiBot
|
||||
|
||||
Revision : r326
|
||||
Last change by : Natalia Portillo
|
||||
Date : 2010/01/01
|
||||
|
||||
--[ License ] --------------------------------------------------------------
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as
|
||||
published by the Free Software Foundation, either version 3 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
----------------------------------------------------------------------------
|
||||
Copyright (C) 2008-2014 Claunia.com
|
||||
****************************************************************************/
|
||||
namespace bot.Commands
|
||||
{
|
||||
using bot;
|
||||
using OpenMetaverse;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
public class AgentLocationsCommand : Command
|
||||
{
|
||||
public AgentLocationsCommand(SecondLifeBot SecondLifeBot)
|
||||
{
|
||||
base.Name = "agentlocations";
|
||||
base.Description = bot.Localization.clResourceManager.getText("Commands.AgentLocations.Description") + " " + bot.Localization.clResourceManager.getText("Commands.AgentLocations.Usage");
|
||||
}
|
||||
|
||||
public override string Execute(string[] args, UUID fromAgentID, bool fromSL)
|
||||
{
|
||||
ulong regionHandle;
|
||||
|
||||
if (args.Length == 0)
|
||||
regionHandle = Client.Network.CurrentSim.Handle;
|
||||
else if (!(args.Length == 1 && UInt64.TryParse(args[0], out regionHandle)))
|
||||
return bot.Localization.clResourceManager.getText("Commands.AgentLocations.Usage");
|
||||
|
||||
List<MapItem> items = Client.Grid.MapItems(regionHandle, GridItemType.AgentLocations,
|
||||
GridLayerType.Objects, 1000 * 20);
|
||||
|
||||
if (items != null)
|
||||
{
|
||||
StringBuilder ret = new StringBuilder();
|
||||
ret.AppendLine(bot.Localization.clResourceManager.getText("Commands.AgentLocations.Locations"));
|
||||
|
||||
for (int i = 0; i < items.Count; i++)
|
||||
{
|
||||
MapAgentLocation location = (MapAgentLocation)items[i];
|
||||
|
||||
ret.AppendLine(String.Format(bot.Localization.clResourceManager.getText("Commands.AgentLocations.Avatar"), location.AvatarCount, location.LocalX,
|
||||
location.LocalY));
|
||||
}
|
||||
|
||||
return ret.ToString();
|
||||
}
|
||||
else
|
||||
{
|
||||
return bot.Localization.clResourceManager.getText("Commands.AgentLocations.Fail");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
74
SLBot/bot/Commands/Grid/FindSimCommand.cs
Normal file
74
SLBot/bot/Commands/Grid/FindSimCommand.cs
Normal file
@@ -0,0 +1,74 @@
|
||||
/***************************************************************************
|
||||
The Disc Image Chef
|
||||
----------------------------------------------------------------------------
|
||||
|
||||
Filename : FindSimCommand.cs
|
||||
Version : 1.0.326
|
||||
Author(s) : Natalia Portillo
|
||||
|
||||
Component : NatiBot
|
||||
|
||||
Revision : r326
|
||||
Last change by : Natalia Portillo
|
||||
Date : 2010/01/01
|
||||
|
||||
--[ License ] --------------------------------------------------------------
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as
|
||||
published by the Free Software Foundation, either version 3 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
----------------------------------------------------------------------------
|
||||
Copyright (C) 2008-2014 Claunia.com
|
||||
****************************************************************************/
|
||||
namespace bot.Commands
|
||||
{
|
||||
using bot;
|
||||
using OpenMetaverse;
|
||||
using System;
|
||||
|
||||
public class FindSimCommand : Command
|
||||
{
|
||||
public FindSimCommand(SecondLifeBot SecondLifeBot)
|
||||
{
|
||||
base.Name = "findsim";
|
||||
base.Description = bot.Localization.clResourceManager.getText("Commands.FindSim.Description") + " " + bot.Localization.clResourceManager.getText("Commands.FindSim.Usage");
|
||||
}
|
||||
|
||||
public override string Execute(string[] args, UUID fromAgentID, bool fromSL)
|
||||
{
|
||||
if (args.Length < 1)
|
||||
return bot.Localization.clResourceManager.getText("Commands.FindSim.Usage");
|
||||
|
||||
// Build the simulator name from the args list
|
||||
string simName = string.Empty;
|
||||
for (int i = 0; i < args.Length; i++)
|
||||
simName += args[i] + " ";
|
||||
simName = simName.TrimEnd().ToLower();
|
||||
|
||||
//if (!GridDataCached[Client])
|
||||
//{
|
||||
// Client.Grid.RequestAllSims(GridManager.MapLayerType.Objects);
|
||||
// System.Threading.Thread.Sleep(5000);
|
||||
// GridDataCached[Client] = true;
|
||||
//}
|
||||
|
||||
GridRegion region;
|
||||
|
||||
if (Client.Grid.GetGridRegion(simName, GridLayerType.Objects, out region))
|
||||
return String.Format(bot.Localization.clResourceManager.getText("Commands.FindSim.Info"), region.Name, region.RegionHandle, region.X, region.Y);
|
||||
else
|
||||
return String.Format(bot.Localization.clResourceManager.getText("Commands.FindSim.LookupFail"), simName);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
61
SLBot/bot/Commands/Grid/GridLayerCommand.cs
Normal file
61
SLBot/bot/Commands/Grid/GridLayerCommand.cs
Normal file
@@ -0,0 +1,61 @@
|
||||
/***************************************************************************
|
||||
The Disc Image Chef
|
||||
----------------------------------------------------------------------------
|
||||
|
||||
Filename : GridLayerCommand.cs
|
||||
Version : 1.0.326
|
||||
Author(s) : Natalia Portillo
|
||||
|
||||
Component : NatiBot
|
||||
|
||||
Revision : r326
|
||||
Last change by : Natalia Portillo
|
||||
Date : 2010/01/01
|
||||
|
||||
--[ License ] --------------------------------------------------------------
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as
|
||||
published by the Free Software Foundation, either version 3 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
----------------------------------------------------------------------------
|
||||
Copyright (C) 2008-2014 Claunia.com
|
||||
****************************************************************************/
|
||||
namespace bot.Commands
|
||||
{
|
||||
using bot;
|
||||
using OpenMetaverse;
|
||||
using System;
|
||||
|
||||
public class GridLayerCommand : Command
|
||||
{
|
||||
public GridLayerCommand(SecondLifeBot SecondLifeBot)
|
||||
{
|
||||
base.Name = "gridlayer";
|
||||
base.Description = bot.Localization.clResourceManager.getText("Commands.GridLayer.Description");
|
||||
SecondLifeBot.Grid.GridLayer += Grid_GridLayer;
|
||||
}
|
||||
|
||||
public override string Execute(string[] args, UUID fromAgentID, bool fromSL)
|
||||
{
|
||||
base.Client.Grid.RequestMapLayer(GridLayerType.Objects);
|
||||
return bot.Localization.clResourceManager.getText("Commands.GridLayer.Ready");
|
||||
}
|
||||
|
||||
void Grid_GridLayer(object sender, GridLayerEventArgs e)
|
||||
{
|
||||
bot.Console.WriteLine(String.Format(bot.Localization.clResourceManager.getText("Commands.GridLayer.Layer"),
|
||||
e.Layer.ImageID.ToString(), e.Layer.Bottom, e.Layer.Left, e.Layer.Top, e.Layer.Right));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
54
SLBot/bot/Commands/Grid/GridMapCommand.cs
Normal file
54
SLBot/bot/Commands/Grid/GridMapCommand.cs
Normal file
@@ -0,0 +1,54 @@
|
||||
/***************************************************************************
|
||||
The Disc Image Chef
|
||||
----------------------------------------------------------------------------
|
||||
|
||||
Filename : GridMapCommand.cs
|
||||
Version : 1.0.326
|
||||
Author(s) : Natalia Portillo
|
||||
|
||||
Component : NatiBot
|
||||
|
||||
Revision : r326
|
||||
Last change by : Natalia Portillo
|
||||
Date : 2010/01/01
|
||||
|
||||
--[ License ] --------------------------------------------------------------
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as
|
||||
published by the Free Software Foundation, either version 3 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
----------------------------------------------------------------------------
|
||||
Copyright (C) 2008-2014 Claunia.com
|
||||
****************************************************************************/
|
||||
namespace bot.Commands
|
||||
{
|
||||
using bot;
|
||||
using OpenMetaverse;
|
||||
using System;
|
||||
|
||||
public class GridMapCommand : Command
|
||||
{
|
||||
public GridMapCommand(SecondLifeBot SecondLifeBot)
|
||||
{
|
||||
base.Name = "gridmap";
|
||||
base.Description = bot.Localization.clResourceManager.getText("Commands.GridMap.Description");
|
||||
}
|
||||
|
||||
public override string Execute(string[] args, UUID fromAgentID, bool fromSL)
|
||||
{
|
||||
Client.Grid.RequestMainlandSims(GridLayerType.Objects);
|
||||
return bot.Localization.clResourceManager.getText("Commands.GridMap.Ready");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
122
SLBot/bot/Commands/Groups/ActivateGroupCommand.cs
Normal file
122
SLBot/bot/Commands/Groups/ActivateGroupCommand.cs
Normal file
@@ -0,0 +1,122 @@
|
||||
/***************************************************************************
|
||||
The Disc Image Chef
|
||||
----------------------------------------------------------------------------
|
||||
|
||||
Filename : ActivateGroupCommand.cs
|
||||
Version : 1.0.326
|
||||
Author(s) : Natalia Portillo
|
||||
|
||||
Component : NatiBot
|
||||
|
||||
Revision : r326
|
||||
Last change by : Natalia Portillo
|
||||
Date : 2010/01/01
|
||||
|
||||
--[ License ] --------------------------------------------------------------
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as
|
||||
published by the Free Software Foundation, either version 3 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
----------------------------------------------------------------------------
|
||||
Copyright (C) 2008-2014 Claunia.com
|
||||
****************************************************************************/
|
||||
namespace bot.Commands
|
||||
{
|
||||
using bot;
|
||||
using OpenMetaverse;
|
||||
using OpenMetaverse.Packets;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Threading;
|
||||
|
||||
public class ActivateGroupCommand : Command
|
||||
{
|
||||
ManualResetEvent GroupsEvent = new ManualResetEvent(false);
|
||||
string activeGroup;
|
||||
|
||||
public ActivateGroupCommand(SecondLifeBot SecondLifeBot)
|
||||
{
|
||||
base.Name = "activategroup";
|
||||
base.Description = bot.Localization.clResourceManager.getText("Commands.ActivateGroup.Description") + " " + bot.Localization.clResourceManager.getText("Commands.ActivateGroup.Usage");
|
||||
}
|
||||
|
||||
private void AgentDataUpdateHandler(object sender, PacketReceivedEventArgs e)
|
||||
{
|
||||
AgentDataUpdatePacket p = (AgentDataUpdatePacket)e.Packet;
|
||||
if (p.AgentData.AgentID == Client.Self.AgentID)
|
||||
{
|
||||
activeGroup = Utils.BytesToString(p.AgentData.GroupName) + " ( " + Utils.BytesToString(p.AgentData.GroupTitle) + " )";
|
||||
GroupsEvent.Set();
|
||||
}
|
||||
}
|
||||
|
||||
public override string Execute(string[] args, UUID fromAgentID, bool fromSL)
|
||||
{
|
||||
bool isGroupID = false;
|
||||
|
||||
if (args.Length < 1)
|
||||
return Description;
|
||||
|
||||
activeGroup = string.Empty;
|
||||
|
||||
string groupName = String.Empty;
|
||||
for (int i = 0; i < args.Length; i++)
|
||||
groupName += args[i] + " ";
|
||||
groupName = groupName.Trim();
|
||||
|
||||
Client.Groups.RequestCurrentGroups();
|
||||
|
||||
GroupsEvent.Reset();
|
||||
|
||||
string realGroupName = "";
|
||||
|
||||
UUID groupUUID = Client.GroupName2UUID(groupName);
|
||||
if (UUID.Zero != groupUUID)
|
||||
{
|
||||
EventHandler<PacketReceivedEventArgs> pcallback = AgentDataUpdateHandler;
|
||||
Client.Network.RegisterCallback(PacketType.AgentDataUpdate, pcallback);
|
||||
|
||||
bot.Console.WriteLine(bot.Localization.clResourceManager.getText("Commands.ActivateGroup.Setting"), groupName);
|
||||
Client.Groups.ActivateGroup(groupUUID);
|
||||
GroupsEvent.WaitOne(30000, false);
|
||||
|
||||
Client.Network.UnregisterCallback(PacketType.AgentDataUpdate, pcallback);
|
||||
GroupsEvent.Reset();
|
||||
|
||||
/* A.Biondi
|
||||
* TODO: Handle titles choosing.
|
||||
*/
|
||||
|
||||
Client.key2Name(groupUUID, out realGroupName, out isGroupID);
|
||||
|
||||
if (!isGroupID)
|
||||
return String.Format(bot.Localization.clResourceManager.getText("Commands.GroupEject.AvatarID"), groupUUID);
|
||||
|
||||
if (realGroupName == "")
|
||||
realGroupName = groupUUID.ToString();
|
||||
|
||||
if (String.IsNullOrEmpty(activeGroup))
|
||||
return String.Format(bot.Localization.clResourceManager.getText("Commands.ActivateGroup.Failed"), Client.ToString(),
|
||||
realGroupName);
|
||||
|
||||
return String.Format(bot.Localization.clResourceManager.getText("Commands.ActivateGroup.Active"), Client.ToString(),
|
||||
realGroupName);
|
||||
}
|
||||
return String.Format(bot.Localization.clResourceManager.getText("Commands.ActivateGroup.NotInGroup"), Client.ToString(),
|
||||
realGroupName);
|
||||
|
||||
return String.Format(bot.Localization.clResourceManager.getText("Commands.ActivateGroup.NoGroups"), Client.ToString());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
126
SLBot/bot/Commands/Groups/ActivateRoleCommand.cs
Normal file
126
SLBot/bot/Commands/Groups/ActivateRoleCommand.cs
Normal file
@@ -0,0 +1,126 @@
|
||||
/***************************************************************************
|
||||
The Disc Image Chef
|
||||
----------------------------------------------------------------------------
|
||||
|
||||
Filename : ActivateRoleCommand.cs
|
||||
Version : 1.0.326
|
||||
Author(s) : Natalia Portillo
|
||||
|
||||
Component : NatiBot
|
||||
|
||||
Revision : r326
|
||||
Last change by : Natalia Portillo
|
||||
Date : 2010/01/01
|
||||
|
||||
--[ License ] --------------------------------------------------------------
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as
|
||||
published by the Free Software Foundation, either version 3 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
----------------------------------------------------------------------------
|
||||
Copyright (C) 2008-2014 Claunia.com
|
||||
****************************************************************************/
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Threading;
|
||||
using OpenMetaverse;
|
||||
using OpenMetaverse.Packets;
|
||||
using System.Text;
|
||||
|
||||
namespace bot.Commands
|
||||
{
|
||||
public class ActivateRoleCommand : Command
|
||||
{
|
||||
private ManualResetEvent GroupsEvent = new ManualResetEvent(false);
|
||||
private string GroupName;
|
||||
private UUID GroupUUID;
|
||||
private UUID RoleUUID;
|
||||
private UUID GroupRequestID;
|
||||
private Dictionary<UUID, GroupRole> GroupRoles;
|
||||
|
||||
public ActivateRoleCommand(SecondLifeBot secondLifeBot)
|
||||
{
|
||||
Name = "activaterole";
|
||||
Description = bot.Localization.clResourceManager.getText("Commands.ActivateRole.Description") + " " + bot.Localization.clResourceManager.getText("Commands.ActivateRole.Usage");
|
||||
}
|
||||
|
||||
public override string Execute(string[] args, UUID fromAgentID, bool fromSL)
|
||||
{
|
||||
bool isGroupKey = false;
|
||||
|
||||
if (args.Length > 2 || args.Length < 1)
|
||||
return bot.Localization.clResourceManager.getText("Commands.ActivateRole.Usage");
|
||||
|
||||
if (args.Length == 2)
|
||||
{
|
||||
if (!UUID.TryParse(args[1], out GroupUUID))
|
||||
return bot.Localization.clResourceManager.getText("Commands.GroupEject.ExpectedGroupID");
|
||||
}
|
||||
else
|
||||
{
|
||||
if (Client.Self.ActiveGroup == UUID.Zero)
|
||||
return bot.Localization.clResourceManager.getText("Commands.GroupEject.NoGroupActive");
|
||||
|
||||
GroupUUID = Client.Self.ActiveGroup;
|
||||
}
|
||||
|
||||
if (!UUID.TryParse(args[0], out RoleUUID))
|
||||
return bot.Localization.clResourceManager.getText("Commands.AddToRole.ExpectedRoleID");
|
||||
|
||||
if (!Client.key2Name(GroupUUID, out GroupName, out isGroupKey))
|
||||
return bot.Localization.clResourceManager.getText("Commands.GroupEject.GroupNotFound");
|
||||
if (!isGroupKey)
|
||||
return bot.Localization.clResourceManager.getText("Commands.GroupEject.AvatarID");
|
||||
|
||||
Client.ReloadGroupsCache();
|
||||
|
||||
if (Client.GroupsCache == null)
|
||||
return bot.Localization.clResourceManager.getText("Commands.Groups.CacheFailed");
|
||||
if (Client.GroupsCache.Count == 0)
|
||||
return bot.Localization.clResourceManager.getText("Commands.Groups.NoGroups");
|
||||
if (!Client.GroupsCache.ContainsKey(GroupUUID))
|
||||
return String.Format(bot.Localization.clResourceManager.getText("Commands.AddToRole.NotMemberSelf"), GroupName);
|
||||
|
||||
Client.Groups.GroupRoleDataReply += Groups_GroupRoles;
|
||||
GroupRequestID = Client.Groups.RequestGroupRoles(GroupUUID);
|
||||
if (!GroupsEvent.WaitOne(30000, false))
|
||||
{
|
||||
GroupsEvent.Reset();
|
||||
Client.Groups.GroupRoleDataReply -= Groups_GroupRoles;
|
||||
return bot.Localization.clResourceManager.getText("Commands.GroupInvite.CannotRoles");
|
||||
}
|
||||
else
|
||||
{
|
||||
GroupsEvent.Reset();
|
||||
Client.Groups.GroupRoleDataReply -= Groups_GroupRoles;
|
||||
}
|
||||
|
||||
GroupRole chosenRole;
|
||||
|
||||
if (!GroupRoles.TryGetValue(RoleUUID, out chosenRole))
|
||||
return bot.Localization.clResourceManager.getText("Commands.GroupInvite.NotRole");
|
||||
|
||||
Client.Groups.ActivateTitle(GroupUUID, RoleUUID);
|
||||
return String.Format(bot.Localization.clResourceManager.getText("Commands.ActivateRole.Activating"), chosenRole.Name, GroupName);
|
||||
}
|
||||
|
||||
private void Groups_GroupRoles(object sender, GroupRolesDataReplyEventArgs e)
|
||||
{
|
||||
if (e.RequestID == GroupRequestID)
|
||||
{
|
||||
GroupRoles = e.Roles;
|
||||
GroupsEvent.Set();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
163
SLBot/bot/Commands/Groups/AddToRoleCommand.cs
Normal file
163
SLBot/bot/Commands/Groups/AddToRoleCommand.cs
Normal file
@@ -0,0 +1,163 @@
|
||||
/***************************************************************************
|
||||
The Disc Image Chef
|
||||
----------------------------------------------------------------------------
|
||||
|
||||
Filename : AddToRoleCommand.cs
|
||||
Version : 1.0.326
|
||||
Author(s) : Natalia Portillo
|
||||
|
||||
Component : NatiBot
|
||||
|
||||
Revision : r326
|
||||
Last change by : Natalia Portillo
|
||||
Date : 2010/01/01
|
||||
|
||||
--[ License ] --------------------------------------------------------------
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as
|
||||
published by the Free Software Foundation, either version 3 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
----------------------------------------------------------------------------
|
||||
Copyright (C) 2008-2014 Claunia.com
|
||||
****************************************************************************/
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Threading;
|
||||
using OpenMetaverse;
|
||||
using OpenMetaverse.Packets;
|
||||
using System.Text;
|
||||
|
||||
namespace bot.Commands
|
||||
{
|
||||
public class AddToRoleCommand : Command
|
||||
{
|
||||
private ManualResetEvent GroupsEvent = new ManualResetEvent(false);
|
||||
private string GroupName, AvatarName;
|
||||
private UUID GroupUUID;
|
||||
private UUID RoleUUID;
|
||||
private UUID GroupRequestID;
|
||||
private UUID AvatarUUID;
|
||||
private Dictionary<UUID, GroupRole> GroupRoles;
|
||||
private Dictionary<UUID, GroupMember> GroupMembers;
|
||||
|
||||
public AddToRoleCommand(SecondLifeBot secondLifeBot)
|
||||
{
|
||||
Name = "addtorole";
|
||||
Description = bot.Localization.clResourceManager.getText("Commands.AddToRole.Description") + " " + bot.Localization.clResourceManager.getText("Commands.AddToRole.Usage");
|
||||
}
|
||||
|
||||
public override string Execute(string[] args, UUID fromAgentID, bool fromSL)
|
||||
{
|
||||
bool isGroupKey = false;
|
||||
|
||||
if (args.Length > 3 || args.Length < 2)
|
||||
return bot.Localization.clResourceManager.getText("Commands.AddToRole.Usage");
|
||||
|
||||
if (args.Length == 3)
|
||||
{
|
||||
if (!UUID.TryParse(args[2], out GroupUUID))
|
||||
return bot.Localization.clResourceManager.getText("Commands.GroupEject.ExpectedGroupID");
|
||||
}
|
||||
else
|
||||
{
|
||||
if (Client.Self.ActiveGroup == UUID.Zero)
|
||||
return bot.Localization.clResourceManager.getText("Commands.GroupEject.NoGroupActive");
|
||||
|
||||
GroupUUID = Client.Self.ActiveGroup;
|
||||
}
|
||||
|
||||
if (!UUID.TryParse(args[0], out RoleUUID))
|
||||
return bot.Localization.clResourceManager.getText("Commands.AddToRole.ExpectedRoleID");
|
||||
if (!UUID.TryParse(args[1], out AvatarUUID))
|
||||
return bot.Localization.clResourceManager.getText("Commands.GroupEject.AvatarID");
|
||||
|
||||
if (!Client.key2Name(GroupUUID, out GroupName, out isGroupKey))
|
||||
return bot.Localization.clResourceManager.getText("Commands.GroupEject.GroupNotFound");
|
||||
if (!isGroupKey)
|
||||
return bot.Localization.clResourceManager.getText("Commands.GroupEject.AvatarID");
|
||||
|
||||
if (!Client.key2Name(AvatarUUID, out AvatarName, out isGroupKey))
|
||||
return bot.Localization.clResourceManager.getText("Commands.GroupEject.AvatarNotFound");
|
||||
if (isGroupKey)
|
||||
return bot.Localization.clResourceManager.getText("Commands.GroupEject.GroupID");
|
||||
|
||||
Client.ReloadGroupsCache();
|
||||
|
||||
if (Client.GroupsCache == null)
|
||||
return bot.Localization.clResourceManager.getText("Commands.Groups.CacheFailed");
|
||||
if (Client.GroupsCache.Count == 0)
|
||||
return bot.Localization.clResourceManager.getText("Commands.Groups.NoGroups");
|
||||
if (!Client.GroupsCache.ContainsKey(GroupUUID))
|
||||
return String.Format(bot.Localization.clResourceManager.getText("Commands.AddToRole.NotMemberSelf"), GroupName);
|
||||
|
||||
Client.Groups.GroupMembersReply += GroupMembersHandler;
|
||||
GroupRequestID = Client.Groups.RequestGroupMembers(GroupUUID);
|
||||
if (!GroupsEvent.WaitOne(30000, false))
|
||||
{
|
||||
GroupsEvent.Reset();
|
||||
Client.Groups.GroupMembersReply -= GroupMembersHandler;
|
||||
return "Unable to get group members.";
|
||||
}
|
||||
else
|
||||
{
|
||||
GroupsEvent.Reset();
|
||||
Client.Groups.GroupMembersReply -= GroupMembersHandler;
|
||||
}
|
||||
|
||||
GroupMember chosenMember;
|
||||
|
||||
if (!GroupMembers.TryGetValue(AvatarUUID, out chosenMember))
|
||||
return String.Format(bot.Localization.clResourceManager.getText("Commands.AddToRole.NotMember"), AvatarName, GroupName);
|
||||
|
||||
Client.Groups.GroupRoleDataReply += Groups_GroupRoles;
|
||||
GroupRequestID = Client.Groups.RequestGroupRoles(GroupUUID);
|
||||
if (!GroupsEvent.WaitOne(30000, false))
|
||||
{
|
||||
GroupsEvent.Reset();
|
||||
Client.Groups.GroupRoleDataReply -= Groups_GroupRoles;
|
||||
return bot.Localization.clResourceManager.getText("Commands.GroupInvite.CannotRoles");
|
||||
}
|
||||
else
|
||||
{
|
||||
GroupsEvent.Reset();
|
||||
Client.Groups.GroupRoleDataReply -= Groups_GroupRoles;
|
||||
}
|
||||
|
||||
GroupRole chosenRole;
|
||||
|
||||
if (!GroupRoles.TryGetValue(RoleUUID, out chosenRole))
|
||||
return bot.Localization.clResourceManager.getText("Commands.GroupInvite.NotRole");
|
||||
|
||||
Client.Groups.AddToRole(GroupUUID, RoleUUID, AvatarUUID);
|
||||
return String.Format(bot.Localization.clResourceManager.getText("Commands.AddToRole.Adding"), AvatarName, chosenRole.Name, GroupName);
|
||||
}
|
||||
|
||||
private void GroupMembersHandler(object sender, GroupMembersReplyEventArgs e)
|
||||
{
|
||||
if (e.RequestID == GroupRequestID)
|
||||
{
|
||||
GroupMembers = e.Members;
|
||||
GroupsEvent.Set();
|
||||
}
|
||||
}
|
||||
|
||||
private void Groups_GroupRoles(object sender, GroupRolesDataReplyEventArgs e)
|
||||
{
|
||||
if (e.RequestID == GroupRequestID)
|
||||
{
|
||||
GroupRoles = e.Roles;
|
||||
GroupsEvent.Set();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
119
SLBot/bot/Commands/Groups/GroupEjectCommand.cs
Normal file
119
SLBot/bot/Commands/Groups/GroupEjectCommand.cs
Normal file
@@ -0,0 +1,119 @@
|
||||
/***************************************************************************
|
||||
The Disc Image Chef
|
||||
----------------------------------------------------------------------------
|
||||
|
||||
Filename : GroupEjectCommand.cs
|
||||
Version : 1.0.326
|
||||
Author(s) : Natalia Portillo
|
||||
|
||||
Component : NatiBot
|
||||
|
||||
Revision : r326
|
||||
Last change by : Natalia Portillo
|
||||
Date : 2010/01/01
|
||||
|
||||
--[ License ] --------------------------------------------------------------
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as
|
||||
published by the Free Software Foundation, either version 3 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
----------------------------------------------------------------------------
|
||||
Copyright (C) 2008-2014 Claunia.com
|
||||
****************************************************************************/
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Threading;
|
||||
using OpenMetaverse;
|
||||
using OpenMetaverse.Packets;
|
||||
using System.Text;
|
||||
|
||||
namespace bot.Commands
|
||||
{
|
||||
public class GroupEjectCommand : Command
|
||||
{
|
||||
private ManualResetEvent GroupsEvent = new ManualResetEvent(false);
|
||||
private string GroupName;
|
||||
private UUID GroupUUID;
|
||||
private UUID GroupRequestID;
|
||||
private Dictionary<UUID, GroupMember> GroupMembers;
|
||||
|
||||
public GroupEjectCommand(SecondLifeBot secondLifeBot)
|
||||
{
|
||||
Name = "groupeject";
|
||||
Description = bot.Localization.clResourceManager.getText("Commands.GroupEject.Description") + " " + bot.Localization.clResourceManager.getText("Commands.GroupEject.Usage");
|
||||
}
|
||||
|
||||
public override string Execute(string[] args, UUID fromAgentID, bool fromSL)
|
||||
{
|
||||
UUID avatarID;
|
||||
bool isGroupKey;
|
||||
string avatarName;
|
||||
GroupMembers = new Dictionary<UUID, GroupMember>();
|
||||
GroupsEvent.Reset();
|
||||
|
||||
if (args.Length < 1)
|
||||
return bot.Localization.clResourceManager.getText("Commands.GroupEject.Usage");
|
||||
|
||||
if (args.Length == 2)
|
||||
{
|
||||
if (!UUID.TryParse(args[1], out GroupUUID))
|
||||
return bot.Localization.clResourceManager.getText("Commands.GroupEject.ExpectedGroupID");
|
||||
|
||||
if (!Client.key2Name(GroupUUID, out GroupName, out isGroupKey))
|
||||
return bot.Localization.clResourceManager.getText("Commands.GroupEject.GroupNotFound");
|
||||
if (!isGroupKey)
|
||||
return bot.Localization.clResourceManager.getText("Commands.GroupEject.AvatarID");
|
||||
}
|
||||
else
|
||||
{
|
||||
if (Client.Self.ActiveGroup == UUID.Zero)
|
||||
return bot.Localization.clResourceManager.getText("Commands.GroupEject.NoGroupActive");
|
||||
|
||||
GroupUUID = Client.Self.ActiveGroup;
|
||||
}
|
||||
|
||||
if (!UUID.TryParse(args[0], out avatarID))
|
||||
return bot.Localization.clResourceManager.getText("Commands.GroupEject.ExpectedAvatarID");
|
||||
|
||||
if (!Client.key2Name(avatarID, out avatarName, out isGroupKey))
|
||||
return bot.Localization.clResourceManager.getText("Commands.GroupEject.AvatarNotFound");
|
||||
if (isGroupKey)
|
||||
return bot.Localization.clResourceManager.getText("Commands.GroupEject.GroupID");
|
||||
|
||||
Client.Groups.GroupMembersReply += GroupMembersHandler;
|
||||
GroupRequestID = Client.Groups.RequestGroupMembers(GroupUUID);
|
||||
if (!GroupsEvent.WaitOne(30000, false))
|
||||
{
|
||||
Client.Groups.GroupMembersReply -= GroupMembersHandler;
|
||||
return bot.Localization.clResourceManager.getText("Commands.GroupEject.ErrorMembers");
|
||||
}
|
||||
|
||||
Client.Groups.GroupMembersReply -= GroupMembersHandler;
|
||||
|
||||
if (!GroupMembers.ContainsKey(avatarID))
|
||||
return String.Format(bot.Localization.clResourceManager.getText("Commands.GroupEject.NotMember"), avatarName, GroupName);
|
||||
|
||||
Client.Groups.EjectUser(GroupUUID, avatarID);
|
||||
return String.Format(bot.Localization.clResourceManager.getText("Commands.GroupEject.Ejected"), avatarName, GroupName);
|
||||
}
|
||||
|
||||
private void GroupMembersHandler(object sender, GroupMembersReplyEventArgs e)
|
||||
{
|
||||
if (e.RequestID == GroupRequestID)
|
||||
{
|
||||
GroupMembers = e.Members;
|
||||
GroupsEvent.Set();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
124
SLBot/bot/Commands/Groups/GroupInviteCommand.cs
Normal file
124
SLBot/bot/Commands/Groups/GroupInviteCommand.cs
Normal file
@@ -0,0 +1,124 @@
|
||||
/***************************************************************************
|
||||
The Disc Image Chef
|
||||
----------------------------------------------------------------------------
|
||||
|
||||
Filename : GroupInviteCommand.cs
|
||||
Version : 1.0.326
|
||||
Author(s) : Natalia Portillo
|
||||
|
||||
Component : NatiBot
|
||||
|
||||
Revision : r326
|
||||
Last change by : Natalia Portillo
|
||||
Date : 2010/01/01
|
||||
|
||||
--[ License ] --------------------------------------------------------------
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as
|
||||
published by the Free Software Foundation, either version 3 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
----------------------------------------------------------------------------
|
||||
Copyright (C) 2008-2014 Claunia.com
|
||||
****************************************************************************/
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Threading;
|
||||
using OpenMetaverse;
|
||||
using OpenMetaverse.Packets;
|
||||
using System.Text;
|
||||
|
||||
namespace bot.Commands
|
||||
{
|
||||
public class GroupInviteCommand : Command
|
||||
{
|
||||
private ManualResetEvent GroupsEvent = new ManualResetEvent(false);
|
||||
private UUID roleID;
|
||||
private UUID GroupRequestID;
|
||||
private Dictionary<UUID, GroupRole> Roles;
|
||||
|
||||
public GroupInviteCommand(SecondLifeBot secondLifeBot)
|
||||
{
|
||||
Name = "invitegroup";
|
||||
Description = bot.Localization.clResourceManager.getText("Commands.GroupInvite.Description") + " " + bot.Localization.clResourceManager.getText("Commands.GroupInvite.Usage");
|
||||
}
|
||||
|
||||
public override string Execute(string[] args, UUID fromAgentID, bool fromSL)
|
||||
{
|
||||
if (args.Length < 1)
|
||||
return bot.Localization.clResourceManager.getText("Commands.GroupInvite.Usage");
|
||||
|
||||
UUID avatarID;
|
||||
string avatarName, groupName;
|
||||
bool isGroupKey = false;
|
||||
Roles = new Dictionary<UUID,GroupRole>();
|
||||
|
||||
if (!UUID.TryParse(args[0], out avatarID))
|
||||
return Description;
|
||||
|
||||
roleID = UUID.Zero;
|
||||
|
||||
if (args.Length == 2)
|
||||
if (!UUID.TryParse(args[1], out roleID))
|
||||
return Description;
|
||||
|
||||
if (Client.Self.ActiveGroup == UUID.Zero)
|
||||
return bot.Localization.clResourceManager.getText("Commands.GroupInvite.NoGroupActive");
|
||||
|
||||
if (!Client.key2Name(avatarID, out avatarName, out isGroupKey))
|
||||
return bot.Localization.clResourceManager.getText("Commands.GroupInvite.AvNotFound");
|
||||
|
||||
if (isGroupKey)
|
||||
return bot.Localization.clResourceManager.getText("Commands.GroupInvite.CannotGroup");
|
||||
|
||||
Client.key2Name(Client.Self.ActiveGroup, out groupName);
|
||||
|
||||
Client.Groups.GroupRoleDataReply += Groups_GroupRoles;
|
||||
GroupRequestID = Client.Groups.RequestGroupRoles(Client.Self.ActiveGroup);
|
||||
if (!GroupsEvent.WaitOne(30000, false))
|
||||
{
|
||||
GroupsEvent.Reset();
|
||||
return bot.Localization.clResourceManager.getText("Commands.GroupInvite.CannotRoles");
|
||||
}
|
||||
else
|
||||
{
|
||||
GroupsEvent.Reset();
|
||||
}
|
||||
Client.Groups.GroupRoleDataReply -= Groups_GroupRoles;
|
||||
|
||||
if (!Roles.ContainsKey(roleID))
|
||||
return String.Format(bot.Localization.clResourceManager.getText("Commands.GroupInvite.NotRole"), roleID);
|
||||
|
||||
List<UUID> inviteRoles = new List<UUID>();
|
||||
|
||||
inviteRoles.Add(roleID);
|
||||
|
||||
GroupRole role;
|
||||
|
||||
if (!Roles.TryGetValue(roleID, out role))
|
||||
return bot.Localization.clResourceManager.getText("Commands.GroupInvite.ErrorRole");
|
||||
|
||||
Client.Groups.Invite(Client.Self.ActiveGroup, inviteRoles, avatarID);
|
||||
|
||||
return String.Format(bot.Localization.clResourceManager.getText("Commands.GroupInvite.Inviting"), avatarName, groupName, role.Name);
|
||||
}
|
||||
|
||||
void Groups_GroupRoles(object sender, GroupRolesDataReplyEventArgs e)
|
||||
{
|
||||
if (e.RequestID == GroupRequestID)
|
||||
{
|
||||
Roles = e.Roles;
|
||||
GroupsEvent.Set();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
108
SLBot/bot/Commands/Groups/GroupMembersCommand.cs
Normal file
108
SLBot/bot/Commands/Groups/GroupMembersCommand.cs
Normal file
@@ -0,0 +1,108 @@
|
||||
/***************************************************************************
|
||||
The Disc Image Chef
|
||||
----------------------------------------------------------------------------
|
||||
|
||||
Filename : GroupMembersCommand.cs
|
||||
Version : 1.0.326
|
||||
Author(s) : Natalia Portillo
|
||||
|
||||
Component : NatiBot
|
||||
|
||||
Revision : r326
|
||||
Last change by : Natalia Portillo
|
||||
Date : 2010/01/01
|
||||
|
||||
--[ License ] --------------------------------------------------------------
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as
|
||||
published by the Free Software Foundation, either version 3 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
----------------------------------------------------------------------------
|
||||
Copyright (C) 2008-2014 Claunia.com
|
||||
****************************************************************************/
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Threading;
|
||||
using OpenMetaverse;
|
||||
using OpenMetaverse.Packets;
|
||||
using System.Text;
|
||||
|
||||
namespace bot.Commands
|
||||
{
|
||||
public class GroupMembersCommand : Command
|
||||
{
|
||||
private ManualResetEvent GroupsEvent = new ManualResetEvent(false);
|
||||
private string GroupName;
|
||||
private UUID GroupUUID;
|
||||
private UUID GroupRequestID;
|
||||
StringBuilder sb;
|
||||
|
||||
public GroupMembersCommand(SecondLifeBot secondLifeBot)
|
||||
{
|
||||
Name = "groupmembers";
|
||||
Description = bot.Localization.clResourceManager.getText("Commands.GroupMembers.Description") + " " + bot.Localization.clResourceManager.getText("Commands.GroupMembers.Usage");
|
||||
}
|
||||
|
||||
public override string Execute(string[] args, UUID fromAgentID, bool fromSL)
|
||||
{
|
||||
if (args.Length < 1)
|
||||
return bot.Localization.clResourceManager.getText("Commands.GroupMembers.Usage");
|
||||
|
||||
sb = new StringBuilder();
|
||||
|
||||
GroupName = String.Empty;
|
||||
for (int i = 0; i < args.Length; i++)
|
||||
GroupName += args[i] + " ";
|
||||
GroupName = GroupName.Trim();
|
||||
|
||||
GroupUUID = Client.GroupName2UUID(GroupName);
|
||||
if (UUID.Zero != GroupUUID)
|
||||
{
|
||||
Client.Groups.GroupMembersReply += GroupMembersHandler;
|
||||
GroupRequestID = Client.Groups.RequestGroupMembers(GroupUUID);
|
||||
GroupsEvent.WaitOne(30000, false);
|
||||
GroupsEvent.Reset();
|
||||
Client.Groups.GroupMembersReply -= GroupMembersHandler;
|
||||
return sb.ToString();
|
||||
|
||||
}
|
||||
return String.Format(bot.Localization.clResourceManager.getText("Commands.GroupMembers.NotMember"), Client.ToString(), GroupName);
|
||||
}
|
||||
|
||||
private void GroupMembersHandler(object sender, GroupMembersReplyEventArgs e)
|
||||
{
|
||||
if (e.RequestID == GroupRequestID)
|
||||
{
|
||||
sb.AppendLine();
|
||||
sb.AppendFormat(bot.Localization.clResourceManager.getText("Commands.GroupMembers.GotMembers"), Client.ToString()).AppendLine();
|
||||
sb.AppendFormat(bot.Localization.clResourceManager.getText("Commands.GroupRoles.RequestID"), e.RequestID).AppendLine();
|
||||
sb.AppendFormat(bot.Localization.clResourceManager.getText("Commands.GroupRoles.GroupName"), GroupName).AppendLine();
|
||||
sb.AppendFormat(bot.Localization.clResourceManager.getText("Commands.GroupRoles.GroupID"), GroupUUID).AppendLine();
|
||||
if (e.Members.Count > 0)
|
||||
foreach (KeyValuePair<UUID, GroupMember> member in e.Members)
|
||||
{
|
||||
string MemberName;
|
||||
|
||||
if (!Client.key2Name(member.Key, out MemberName))
|
||||
MemberName = bot.Localization.clResourceManager.getText("Commands.PrimInfo.Unknown");
|
||||
|
||||
sb.AppendFormat(bot.Localization.clResourceManager.getText("Commands.GroupMembers.Member"), MemberName, member.Key.ToString()).AppendLine();
|
||||
|
||||
}
|
||||
|
||||
sb.AppendFormat(bot.Localization.clResourceManager.getText("Commands.GroupMembers.MemberCount"), e.Members.Count).AppendLine();
|
||||
GroupsEvent.Set();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
98
SLBot/bot/Commands/Groups/GroupRolesCommand.cs
Normal file
98
SLBot/bot/Commands/Groups/GroupRolesCommand.cs
Normal file
@@ -0,0 +1,98 @@
|
||||
/***************************************************************************
|
||||
The Disc Image Chef
|
||||
----------------------------------------------------------------------------
|
||||
|
||||
Filename : GroupRolesCommand.cs
|
||||
Version : 1.0.326
|
||||
Author(s) : Natalia Portillo
|
||||
|
||||
Component : NatiBot
|
||||
|
||||
Revision : r326
|
||||
Last change by : Natalia Portillo
|
||||
Date : 2010/01/01
|
||||
|
||||
--[ License ] --------------------------------------------------------------
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as
|
||||
published by the Free Software Foundation, either version 3 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
----------------------------------------------------------------------------
|
||||
Copyright (C) 2008-2014 Claunia.com
|
||||
****************************************************************************/
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Threading;
|
||||
using OpenMetaverse;
|
||||
using OpenMetaverse.Packets;
|
||||
using System.Text;
|
||||
|
||||
namespace bot.Commands
|
||||
{
|
||||
public class GroupRolesCommand : Command
|
||||
{
|
||||
private ManualResetEvent GroupsEvent = new ManualResetEvent(false);
|
||||
private string GroupName;
|
||||
private UUID GroupUUID;
|
||||
private UUID GroupRequestID;
|
||||
StringBuilder sb;
|
||||
|
||||
public GroupRolesCommand(SecondLifeBot secondLifeBot)
|
||||
{
|
||||
Name = "grouproles";
|
||||
Description = bot.Localization.clResourceManager.getText("Commands.GroupRoles.Description") + " " + bot.Localization.clResourceManager.getText("Commands.GroupRoles.Usage");
|
||||
}
|
||||
|
||||
public override string Execute(string[] args, UUID fromAgentID, bool fromSL)
|
||||
{
|
||||
if (args.Length < 1)
|
||||
return bot.Localization.clResourceManager.getText("Commands.GroupRoles.Usage");
|
||||
|
||||
sb = new StringBuilder();
|
||||
|
||||
GroupName = String.Empty;
|
||||
for (int i = 0; i < args.Length; i++)
|
||||
GroupName += args[i] + " ";
|
||||
GroupName = GroupName.Trim();
|
||||
|
||||
GroupUUID = Client.GroupName2UUID(GroupName);
|
||||
if (UUID.Zero != GroupUUID)
|
||||
{
|
||||
Client.Groups.GroupRoleDataReply += Groups_GroupRoles;
|
||||
GroupRequestID = Client.Groups.RequestGroupRoles(GroupUUID);
|
||||
GroupsEvent.WaitOne(30000, false);
|
||||
GroupsEvent.Reset();
|
||||
Client.Groups.GroupRoleDataReply -= Groups_GroupRoles;
|
||||
return sb.ToString();
|
||||
}
|
||||
return String.Format(bot.Localization.clResourceManager.getText("Commands.GroupRoles.NoRoles"), Client.ToString(), GroupName);
|
||||
}
|
||||
|
||||
private void Groups_GroupRoles(object sender, GroupRolesDataReplyEventArgs e)
|
||||
{
|
||||
if (e.RequestID == GroupRequestID)
|
||||
{
|
||||
sb.AppendLine();
|
||||
sb.AppendFormat(bot.Localization.clResourceManager.getText("Commands.GroupRoles.GotRoles"), Client.ToString()).AppendLine();
|
||||
sb.AppendFormat(bot.Localization.clResourceManager.getText("Commands.GroupRoles.RequestID"), e.RequestID).AppendLine();
|
||||
sb.AppendFormat(bot.Localization.clResourceManager.getText("Commands.GroupRoles.GroupName"), GroupName).AppendLine();
|
||||
sb.AppendFormat(bot.Localization.clResourceManager.getText("Commands.GroupRoles.GroupID"), GroupUUID).AppendLine();
|
||||
if (e.Roles.Count > 0)
|
||||
foreach (KeyValuePair<UUID, GroupRole> role in e.Roles)
|
||||
sb.AppendFormat(bot.Localization.clResourceManager.getText("Commands.GroupRoles.Role"), role.Value.ID, role.Value.Name, role.Value.Title).AppendLine();
|
||||
sb.AppendFormat(bot.Localization.clResourceManager.getText("Commands.GroupRoles.RoleCount"), e.Roles.Count).AppendLine();
|
||||
GroupsEvent.Set();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
77
SLBot/bot/Commands/Groups/GroupsCommand.cs
Normal file
77
SLBot/bot/Commands/Groups/GroupsCommand.cs
Normal file
@@ -0,0 +1,77 @@
|
||||
/***************************************************************************
|
||||
The Disc Image Chef
|
||||
----------------------------------------------------------------------------
|
||||
|
||||
Filename : GroupsCommand.cs
|
||||
Version : 1.0.326
|
||||
Author(s) : Natalia Portillo
|
||||
|
||||
Component : NatiBot
|
||||
|
||||
Revision : r326
|
||||
Last change by : Natalia Portillo
|
||||
Date : 2010/01/01
|
||||
|
||||
--[ License ] --------------------------------------------------------------
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as
|
||||
published by the Free Software Foundation, either version 3 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
----------------------------------------------------------------------------
|
||||
Copyright (C) 2008-2014 Claunia.com
|
||||
****************************************************************************/
|
||||
namespace bot.Commands
|
||||
{
|
||||
using bot;
|
||||
using OpenMetaverse;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using System.Threading;
|
||||
|
||||
public class GroupsCommand : Command
|
||||
{
|
||||
ManualResetEvent GetCurrentGroupsEvent = new ManualResetEvent(false);
|
||||
Dictionary<UUID, Group> groups = new Dictionary<UUID, Group>();
|
||||
|
||||
public GroupsCommand(SecondLifeBot SecondLifeBot)
|
||||
{
|
||||
base.Name = "groups";
|
||||
base.Description = bot.Localization.clResourceManager.getText("Commands.Groups.Description");
|
||||
}
|
||||
|
||||
public override string Execute(string[] args, UUID fromAgentID, bool fromSL)
|
||||
{
|
||||
Client.ReloadGroupsCache();
|
||||
return getGroupsString();
|
||||
}
|
||||
|
||||
string getGroupsString()
|
||||
{
|
||||
if (null == Client.GroupsCache)
|
||||
return bot.Localization.clResourceManager.getText("Commands.Groups.CacheFailed");
|
||||
if (0 == Client.GroupsCache.Count)
|
||||
return bot.Localization.clResourceManager.getText("Commands.Groups.NoGroups");
|
||||
StringBuilder sb = new StringBuilder();
|
||||
sb.AppendFormat(bot.Localization.clResourceManager.getText("Commands.Groups.GotGroups"), Client.GroupsCache.Count).AppendLine();
|
||||
foreach (Group group in Client.GroupsCache.Values)
|
||||
{
|
||||
sb.AppendLine(group.ID + ", " + group.Name);
|
||||
|
||||
}
|
||||
|
||||
return sb.ToString();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
110
SLBot/bot/Commands/Groups/ImGroupCommand.cs
Normal file
110
SLBot/bot/Commands/Groups/ImGroupCommand.cs
Normal file
@@ -0,0 +1,110 @@
|
||||
/***************************************************************************
|
||||
The Disc Image Chef
|
||||
----------------------------------------------------------------------------
|
||||
|
||||
Filename : ImGroupCommand.cs
|
||||
Version : 1.0.326
|
||||
Author(s) : Natalia Portillo
|
||||
|
||||
Component : NatiBot
|
||||
|
||||
Revision : r326
|
||||
Last change by : Natalia Portillo
|
||||
Date : 2010/01/01
|
||||
|
||||
--[ License ] --------------------------------------------------------------
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as
|
||||
published by the Free Software Foundation, either version 3 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
----------------------------------------------------------------------------
|
||||
Copyright (C) 2008-2014 Claunia.com
|
||||
****************************************************************************/
|
||||
namespace bot.Commands
|
||||
{
|
||||
using bot;
|
||||
using OpenMetaverse;
|
||||
using System;
|
||||
using System.Threading;
|
||||
|
||||
public class ImGroupCommand : Command
|
||||
{
|
||||
UUID ToGroupID = UUID.Zero;
|
||||
ManualResetEvent WaitForSessionStart = new ManualResetEvent(false);
|
||||
|
||||
public ImGroupCommand(SecondLifeBot SecondLifeBot)
|
||||
{
|
||||
base.Name = "imgroup";
|
||||
base.Description = bot.Localization.clResourceManager.getText("Commands.IMGroup.Description") + " " + bot.Localization.clResourceManager.getText("Commands.IMGroup.Usage");
|
||||
}
|
||||
|
||||
public override string Execute(string[] args, UUID fromAgentID, bool fromSL)
|
||||
{
|
||||
if (args.Length < 2)
|
||||
return bot.Localization.clResourceManager.getText("Commands.IMGroup.Usage");
|
||||
|
||||
|
||||
|
||||
if (UUID.TryParse(args[0], out ToGroupID))
|
||||
{
|
||||
string message = String.Empty;
|
||||
for (int ct = 1; ct < args.Length; ct++)
|
||||
message += args[ct] + " ";
|
||||
message = message.TrimEnd();
|
||||
if (message.Length > 1023)
|
||||
message = message.Remove(1023);
|
||||
|
||||
Client.Self.GroupChatJoined += Self_GroupChatJoined;
|
||||
if (!Client.Self.GroupChatSessions.ContainsKey(ToGroupID))
|
||||
{
|
||||
WaitForSessionStart.Reset();
|
||||
Client.Self.RequestJoinGroupChat(ToGroupID);
|
||||
}
|
||||
else
|
||||
{
|
||||
WaitForSessionStart.Set();
|
||||
}
|
||||
|
||||
if (WaitForSessionStart.WaitOne(20000, false))
|
||||
{
|
||||
Client.Self.InstantMessageGroup(ToGroupID, message);
|
||||
}
|
||||
else
|
||||
{
|
||||
return bot.Localization.clResourceManager.getText("Commands.IMGroup.Timeout");
|
||||
}
|
||||
|
||||
Client.Self.GroupChatJoined -= Self_GroupChatJoined;
|
||||
return String.Format(bot.Localization.clResourceManager.getText("Commands.IMGroup.Success"), ToGroupID.ToString(), message);
|
||||
}
|
||||
else
|
||||
{
|
||||
return bot.Localization.clResourceManager.getText("Commands.IMGroup.Fail");
|
||||
}
|
||||
}
|
||||
|
||||
void Self_GroupChatJoined(object sender, GroupChatJoinedEventArgs e)
|
||||
{
|
||||
if (e.Success)
|
||||
{
|
||||
bot.Console.WriteLine(bot.Localization.clResourceManager.getText("Commands.IMGroup.Joined"), e.SessionName);
|
||||
WaitForSessionStart.Set();
|
||||
}
|
||||
else
|
||||
{
|
||||
bot.Console.WriteLine(bot.Localization.clResourceManager.getText("Commands.IMGroup.JoinFail"));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
169
SLBot/bot/Commands/Groups/JoinGroupCommand.cs
Normal file
169
SLBot/bot/Commands/Groups/JoinGroupCommand.cs
Normal file
@@ -0,0 +1,169 @@
|
||||
/***************************************************************************
|
||||
The Disc Image Chef
|
||||
----------------------------------------------------------------------------
|
||||
|
||||
Filename : JoinGroupCommand.cs
|
||||
Version : 1.0.326
|
||||
Author(s) : Natalia Portillo
|
||||
|
||||
Component : NatiBot
|
||||
|
||||
Revision : r326
|
||||
Last change by : Natalia Portillo
|
||||
Date : 2010/01/01
|
||||
|
||||
--[ License ] --------------------------------------------------------------
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as
|
||||
published by the Free Software Foundation, either version 3 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
----------------------------------------------------------------------------
|
||||
Copyright (C) 2008-2014 Claunia.com
|
||||
****************************************************************************/
|
||||
namespace bot.Commands
|
||||
{
|
||||
using bot;
|
||||
using OpenMetaverse;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Threading;
|
||||
|
||||
public class JoinGroupCommand : Command
|
||||
{
|
||||
ManualResetEvent GetGroupsSearchEvent = new ManualResetEvent(false);
|
||||
private UUID queryID = UUID.Zero;
|
||||
private UUID resolvedGroupID;
|
||||
private string groupName;
|
||||
private string resolvedGroupName;
|
||||
private bool joinedGroup;
|
||||
|
||||
public JoinGroupCommand(SecondLifeBot SecondLifeBot)
|
||||
{
|
||||
base.Name = "joingroup";
|
||||
base.Description = bot.Localization.clResourceManager.getText("Commands.JoinGroup.Description") + " " + bot.Localization.clResourceManager.getText("Commands.JoinGroup.Usage");
|
||||
}
|
||||
|
||||
public override string Execute(string[] args, UUID fromAgentID, bool fromSL)
|
||||
{
|
||||
if (args.Length < 1)
|
||||
return Description;
|
||||
|
||||
groupName = String.Empty;
|
||||
resolvedGroupID = UUID.Zero;
|
||||
resolvedGroupName = String.Empty;
|
||||
|
||||
if (args.Length < 2)
|
||||
{
|
||||
if (!UUID.TryParse((resolvedGroupName = groupName = args[0]), out resolvedGroupID))
|
||||
return String.Format(bot.Localization.clResourceManager.getText("Commands.JoinGroup.InvalidUUID"), resolvedGroupName);
|
||||
}
|
||||
else
|
||||
{
|
||||
for (int i = 0; i < args.Length; i++)
|
||||
groupName += args[i] + " ";
|
||||
groupName = groupName.Trim();
|
||||
|
||||
Client.Directory.DirGroupsReply += Directory_DirGroups;
|
||||
|
||||
queryID = Client.Directory.StartGroupSearch(groupName, 0);
|
||||
|
||||
GetGroupsSearchEvent.WaitOne(60000, false);
|
||||
|
||||
Client.Directory.DirGroupsReply -= Directory_DirGroups;
|
||||
|
||||
GetGroupsSearchEvent.Reset();
|
||||
}
|
||||
|
||||
if (resolvedGroupID == UUID.Zero)
|
||||
{
|
||||
if (string.IsNullOrEmpty(resolvedGroupName))
|
||||
return String.Format(bot.Localization.clResourceManager.getText("Commands.JoinGroup.UUIDNotFound"), groupName);
|
||||
else
|
||||
return resolvedGroupName;
|
||||
}
|
||||
|
||||
Client.Groups.GroupJoinedReply += Groups_OnGroupJoined;
|
||||
Client.Groups.RequestJoinGroup(resolvedGroupID);
|
||||
|
||||
/* A.Biondi
|
||||
* TODO: implement the pay to join procedure.
|
||||
*/
|
||||
|
||||
GetGroupsSearchEvent.WaitOne(60000, false);
|
||||
|
||||
Client.Groups.GroupJoinedReply -= Groups_OnGroupJoined;
|
||||
GetGroupsSearchEvent.Reset();
|
||||
|
||||
if (joinedGroup)
|
||||
return String.Format(bot.Localization.clResourceManager.getText("Commands.JoinGroup.Joined"), resolvedGroupName);
|
||||
return String.Format(bot.Localization.clResourceManager.getText("Commands.JoinGroup.Failed"), resolvedGroupName);
|
||||
}
|
||||
|
||||
void Groups_OnGroupJoined(object sender, GroupOperationEventArgs e)
|
||||
{
|
||||
if (e.Success)
|
||||
{
|
||||
bot.Console.WriteLine(bot.Localization.clResourceManager.getText("Commands.JoinGroup.Joined"), e.GroupID.ToString());
|
||||
joinedGroup = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
bot.Console.WriteLine(bot.Localization.clResourceManager.getText("Commands.JoinGroup.Failed"), e.GroupID.ToString());
|
||||
joinedGroup = false;
|
||||
}
|
||||
}
|
||||
|
||||
void Directory_DirGroups(object sender, DirGroupsReplyEventArgs e)
|
||||
{
|
||||
if (queryID == e.QueryID)
|
||||
{
|
||||
queryID = UUID.Zero;
|
||||
if (e.MatchedGroups.Count < 1)
|
||||
{
|
||||
bot.Console.WriteLine(bot.Localization.clResourceManager.getText("Commands.JoinGroup.Empty"));
|
||||
}
|
||||
else
|
||||
{
|
||||
if (e.MatchedGroups.Count > 1)
|
||||
{
|
||||
/* A.Biondi
|
||||
* The Group search doesn't work as someone could expect...
|
||||
* It'll give back to you a long list of groups even if the
|
||||
* searchText (groupName) matches esactly one of the groups
|
||||
* names present on the server, so we need to check each result.
|
||||
* UUIDs of the matching groups are written on the console.
|
||||
*/
|
||||
bot.Console.WriteLine(bot.Localization.clResourceManager.getText("Commands.JoinGroup.Matching") + System.Environment.NewLine);
|
||||
foreach (DirectoryManager.GroupSearchData groupRetrieved in e.MatchedGroups)
|
||||
{
|
||||
bot.Console.WriteLine(groupRetrieved.GroupName + "\t\t\t(" +
|
||||
Name + " UUID " + groupRetrieved.GroupID.ToString() + ")");
|
||||
|
||||
if (groupRetrieved.GroupName.ToLower() == groupName.ToLower())
|
||||
{
|
||||
resolvedGroupID = groupRetrieved.GroupID;
|
||||
resolvedGroupName = groupRetrieved.GroupName;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (string.IsNullOrEmpty(resolvedGroupName))
|
||||
resolvedGroupName = String.Format(bot.Localization.clResourceManager.getText("Commands.JoinGroup.Ambigous"), e.MatchedGroups.Count.ToString());
|
||||
}
|
||||
|
||||
}
|
||||
GetGroupsSearchEvent.Set();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
96
SLBot/bot/Commands/Groups/LeaveGroupCommand.cs
Normal file
96
SLBot/bot/Commands/Groups/LeaveGroupCommand.cs
Normal file
@@ -0,0 +1,96 @@
|
||||
/***************************************************************************
|
||||
The Disc Image Chef
|
||||
----------------------------------------------------------------------------
|
||||
|
||||
Filename : LeaveGroupCommand.cs
|
||||
Version : 1.0.326
|
||||
Author(s) : Natalia Portillo
|
||||
|
||||
Component : NatiBot
|
||||
|
||||
Revision : r326
|
||||
Last change by : Natalia Portillo
|
||||
Date : 2010/01/01
|
||||
|
||||
--[ License ] --------------------------------------------------------------
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as
|
||||
published by the Free Software Foundation, either version 3 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
----------------------------------------------------------------------------
|
||||
Copyright (C) 2008-2014 Claunia.com
|
||||
****************************************************************************/
|
||||
namespace bot.Commands
|
||||
{
|
||||
using bot;
|
||||
using OpenMetaverse;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Threading;
|
||||
|
||||
public class LeaveGroupCommand : Command
|
||||
{
|
||||
ManualResetEvent GroupsEvent = new ManualResetEvent(false);
|
||||
Dictionary<UUID, Group> groups = new Dictionary<UUID, Group>();
|
||||
private bool leftGroup;
|
||||
|
||||
public LeaveGroupCommand(SecondLifeBot SecondLifeBot)
|
||||
{
|
||||
base.Name = "leavegroup";
|
||||
base.Description = bot.Localization.clResourceManager.getText("Commands.LeaveGroup.Description") + " " + bot.Localization.clResourceManager.getText("Commands.LeaveGroup.Usage");
|
||||
}
|
||||
|
||||
public override string Execute(string[] args, UUID fromAgentID, bool fromSL)
|
||||
{
|
||||
if (args.Length < 1)
|
||||
return Description;
|
||||
|
||||
string groupName = String.Empty;
|
||||
for (int i = 0; i < args.Length; i++)
|
||||
groupName += args[i] + " ";
|
||||
groupName = groupName.Trim();
|
||||
|
||||
UUID groupUUID = Client.GroupName2UUID(groupName);
|
||||
if (UUID.Zero != groupUUID)
|
||||
{
|
||||
Client.Groups.GroupLeaveReply += Groups_GroupLeft;
|
||||
Client.Groups.LeaveGroup(groupUUID);
|
||||
|
||||
GroupsEvent.WaitOne(30000, false);
|
||||
Client.Groups.GroupLeaveReply -= Groups_GroupLeft;
|
||||
|
||||
GroupsEvent.Reset();
|
||||
Client.ReloadGroupsCache();
|
||||
|
||||
if (leftGroup)
|
||||
return String.Format(bot.Localization.clResourceManager.getText("Commands.LeaveGroup.Left"), Client.ToString(),
|
||||
groupName);
|
||||
return String.Format(bot.Localization.clResourceManager.getText("Commands.LeaveGroup.Failed"), Client.ToString(),
|
||||
groupName);
|
||||
}
|
||||
return String.Format(bot.Localization.clResourceManager.getText("Commands.LeaveGroup.NotInGroup"), Client.ToString(), groupName);
|
||||
}
|
||||
|
||||
void Groups_GroupLeft(object sender, GroupOperationEventArgs e)
|
||||
{
|
||||
if (e.Success)
|
||||
bot.Console.WriteLine(bot.Localization.clResourceManager.getText("Commands.LeaveGroup.Left"), Client.ToString(), e.GroupID.ToString());
|
||||
else
|
||||
bot.Console.WriteLine(bot.Localization.clResourceManager.getText("Commands.LeaveGroup.Failed"), Client.ToString(), e.GroupID.ToString());
|
||||
|
||||
leftGroup = e.Success;
|
||||
GroupsEvent.Set();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
514
SLBot/bot/Commands/Inventory/BackupCommand.cs
Normal file
514
SLBot/bot/Commands/Inventory/BackupCommand.cs
Normal file
@@ -0,0 +1,514 @@
|
||||
/***************************************************************************
|
||||
The Disc Image Chef
|
||||
----------------------------------------------------------------------------
|
||||
|
||||
Filename : BackupCommand.cs
|
||||
Version : 1.0.326
|
||||
Author(s) : Natalia Portillo
|
||||
|
||||
Component : NatiBot
|
||||
|
||||
Revision : r326
|
||||
Last change by : Natalia Portillo
|
||||
Date : 2010/01/01
|
||||
|
||||
--[ License ] --------------------------------------------------------------
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as
|
||||
published by the Free Software Foundation, either version 3 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
----------------------------------------------------------------------------
|
||||
Copyright (C) 2008-2014 Claunia.com
|
||||
****************************************************************************/
|
||||
namespace bot.Commands
|
||||
{
|
||||
using bot;
|
||||
using OpenMetaverse;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.IO;
|
||||
using System.Text;
|
||||
using System.Threading;
|
||||
using OpenMetaverse.Assets;
|
||||
|
||||
public class BackupCommand : Command
|
||||
{
|
||||
private BackgroundWorker BackupWorker;
|
||||
private List<QueuedDownloadInfo> CurrentDownloads = new List<QueuedDownloadInfo>(10);
|
||||
private const int MAX_TRANSFERS = 10;
|
||||
private Queue<QueuedDownloadInfo> PendingDownloads = new Queue<QueuedDownloadInfo>();
|
||||
private BackgroundWorker QueueWorker;
|
||||
private int TextItemErrors;
|
||||
private int TextItemsFound;
|
||||
private int TextItemsTransferred;
|
||||
|
||||
#region Properties
|
||||
|
||||
/// <summary>
|
||||
/// true if either of the background threads is running
|
||||
/// </summary>
|
||||
private bool BackgroundBackupRunning
|
||||
{
|
||||
get { return InventoryWalkerRunning || QueueRunnerRunning; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// true if the thread walking inventory is running
|
||||
/// </summary>
|
||||
private bool InventoryWalkerRunning
|
||||
{
|
||||
get { return BackupWorker != null; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// true if the thread feeding the queue to the server is running
|
||||
/// </summary>
|
||||
private bool QueueRunnerRunning
|
||||
{
|
||||
get { return QueueWorker != null; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// returns a string summarizing activity
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
private string BackgroundBackupStatus
|
||||
{
|
||||
get
|
||||
{
|
||||
StringBuilder sbResult = new StringBuilder();
|
||||
sbResult.AppendFormat(bot.Localization.clResourceManager.getText("Commands.Backup.Running"), Name, BoolToNot(BackgroundBackupRunning));
|
||||
if (TextItemErrors != 0 || TextItemsFound != 0 || TextItemsTransferred != 0)
|
||||
{
|
||||
sbResult.AppendFormat(bot.Localization.clResourceManager.getText("Commands.Backup.Walker"),
|
||||
Name, BoolToNot(InventoryWalkerRunning), TextItemsFound);
|
||||
sbResult.AppendFormat(bot.Localization.clResourceManager.getText("Commands.Backup.Transfer"),
|
||||
Name, BoolToNot(QueueRunnerRunning), TextItemsTransferred, TextItemErrors);
|
||||
sbResult.AppendFormat(bot.Localization.clResourceManager.getText("Commands.Backup.Queue"),
|
||||
Name, PendingDownloads.Count, CurrentDownloads.Count);
|
||||
}
|
||||
return sbResult.ToString();
|
||||
}
|
||||
}
|
||||
|
||||
#endregion Properties
|
||||
|
||||
public BackupCommand(SecondLifeBot SecondLifeBot)
|
||||
{
|
||||
base.Name = "backup";
|
||||
base.Description = bot.Localization.clResourceManager.getText("Commands.Backup.Description") + " " + String.Format(bot.Localization.clResourceManager.getText("Commands.Backup.Usage"), Name);
|
||||
}
|
||||
|
||||
public override string Execute(string[] args, UUID fromAgentID, bool fromSL)
|
||||
{
|
||||
Program.NBStats.AddStatData(String.Format("{0}: {1} backing up all inventory.", DateTime.Now.ToString(), Client));
|
||||
|
||||
StringBuilder sbResult = new StringBuilder();
|
||||
|
||||
if (args.Length == 1 && args[0] == "status")
|
||||
{
|
||||
return BackgroundBackupStatus;
|
||||
}
|
||||
else if (args.Length == 1 && args[0] == "abort")
|
||||
{
|
||||
if (!BackgroundBackupRunning)
|
||||
return BackgroundBackupStatus;
|
||||
|
||||
BackupWorker.CancelAsync();
|
||||
QueueWorker.CancelAsync();
|
||||
|
||||
Thread.Sleep(500);
|
||||
|
||||
// check status
|
||||
return BackgroundBackupStatus;
|
||||
}
|
||||
else if (args.Length != 2)
|
||||
{
|
||||
return String.Format(bot.Localization.clResourceManager.getText("Commands.Backup.Usage"), Name);
|
||||
}
|
||||
else if (BackgroundBackupRunning)
|
||||
{
|
||||
return BackgroundBackupStatus;
|
||||
}
|
||||
|
||||
QueueWorker = new BackgroundWorker();
|
||||
QueueWorker.WorkerSupportsCancellation = true;
|
||||
QueueWorker.DoWork += new DoWorkEventHandler(bwQueueRunner_DoWork);
|
||||
QueueWorker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(bwQueueRunner_RunWorkerCompleted);
|
||||
|
||||
QueueWorker.RunWorkerAsync();
|
||||
|
||||
BackupWorker = new BackgroundWorker();
|
||||
BackupWorker.WorkerSupportsCancellation = true;
|
||||
BackupWorker.DoWork += new DoWorkEventHandler(bwBackup_DoWork);
|
||||
BackupWorker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(bwBackup_RunWorkerCompleted);
|
||||
|
||||
BackupWorker.RunWorkerAsync(args);
|
||||
return bot.Localization.clResourceManager.getText("Commands.Backup.Started");
|
||||
}
|
||||
|
||||
void bwQueueRunner_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
|
||||
{
|
||||
QueueWorker = null;
|
||||
bot.Console.WriteLine(BackgroundBackupStatus);
|
||||
}
|
||||
|
||||
void bwQueueRunner_DoWork(object sender, DoWorkEventArgs e)
|
||||
{
|
||||
TextItemErrors = TextItemsTransferred = 0;
|
||||
|
||||
while (QueueWorker.CancellationPending == false)
|
||||
{
|
||||
// have any timed out?
|
||||
if (CurrentDownloads.Count > 0)
|
||||
{
|
||||
lock (CurrentDownloads)
|
||||
{
|
||||
foreach (QueuedDownloadInfo qdi in CurrentDownloads)
|
||||
{
|
||||
if ((qdi.WhenRequested + TimeSpan.FromSeconds(60)) < DateTime.Now)
|
||||
{
|
||||
bot.Console.WriteLine(bot.Localization.clResourceManager.getText("Commands.Backup.Timeout"), Name, qdi.AssetID.ToString());
|
||||
// submit request again
|
||||
if (qdi.Type == AssetType.Notecard || qdi.Type == AssetType.LSLText || qdi.Type == AssetType.Texture)
|
||||
{
|
||||
if (qdi.Type == AssetType.Texture)
|
||||
{
|
||||
Client.Assets.RequestImage(qdi.AssetID, Assets_OnImageReceived);
|
||||
}
|
||||
else
|
||||
{
|
||||
Client.Assets.RequestInventoryAsset(
|
||||
qdi.AssetID, qdi.ItemID, qdi.TaskID, qdi.OwnerID, qdi.Type, true, Assets_OnAssetReceived);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
Client.Assets.RequestAsset(qdi.AssetID, qdi.Type, true, Assets_OnAssetReceived);
|
||||
}
|
||||
qdi.WhenRequested = DateTime.Now;
|
||||
qdi.IsRequested = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (PendingDownloads.Count != 0)
|
||||
{
|
||||
// room in the server queue?
|
||||
if (CurrentDownloads.Count < MAX_TRANSFERS)
|
||||
{
|
||||
// yes
|
||||
QueuedDownloadInfo qdi = PendingDownloads.Dequeue();
|
||||
qdi.WhenRequested = DateTime.Now;
|
||||
qdi.IsRequested = true;
|
||||
if (qdi.Type == AssetType.Notecard || qdi.Type == AssetType.LSLText || qdi.Type == AssetType.Texture)
|
||||
{
|
||||
if (qdi.Type == AssetType.Texture)
|
||||
{
|
||||
Client.Assets.RequestImage(qdi.AssetID, Assets_OnImageReceived);
|
||||
}
|
||||
else
|
||||
{
|
||||
Client.Assets.RequestInventoryAsset(
|
||||
qdi.AssetID, qdi.ItemID, qdi.TaskID, qdi.OwnerID, qdi.Type, true, Assets_OnAssetReceived);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
Client.Assets.RequestAsset(qdi.AssetID, qdi.Type, true, Assets_OnAssetReceived);
|
||||
}
|
||||
|
||||
lock (CurrentDownloads)
|
||||
CurrentDownloads.Add(qdi);
|
||||
}
|
||||
}
|
||||
|
||||
if (CurrentDownloads.Count == 0 && PendingDownloads.Count == 0 && BackupWorker == null)
|
||||
{
|
||||
bot.Console.WriteLine(bot.Localization.clResourceManager.getText("Commands.Backup.AllDone"), Name);
|
||||
return;
|
||||
}
|
||||
|
||||
Thread.Sleep(100);
|
||||
}
|
||||
}
|
||||
|
||||
void bwBackup_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
|
||||
{
|
||||
bot.Console.WriteLine(bot.Localization.clResourceManager.getText("Commands.Backup.WalkingDone"), Name);
|
||||
BackupWorker = null;
|
||||
}
|
||||
|
||||
private void bwBackup_DoWork(object sender, DoWorkEventArgs e)
|
||||
{
|
||||
string[] args;
|
||||
|
||||
TextItemsFound = 0;
|
||||
|
||||
args = (string[])e.Argument;
|
||||
|
||||
lock (CurrentDownloads)
|
||||
CurrentDownloads.Clear();
|
||||
|
||||
// FIXME:
|
||||
//Client.Inventory.RequestFolderContents(Client.Inventory.Store.RootFolder.UUID, Client.Self.AgentID,
|
||||
// true, true, false, InventorySortOrder.ByName);
|
||||
|
||||
DirectoryInfo di = new DirectoryInfo(args[1]);
|
||||
|
||||
// recurse on the root folder into the entire inventory
|
||||
BackupFolder(Client.Inventory.Store.RootNode, di.FullName);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// BackupFolder - recurse through the inventory nodes sending scripts and notecards to the transfer queue
|
||||
/// </summary>
|
||||
/// <param name="folder">The current leaf in the inventory tree</param>
|
||||
/// <param name="sPathSoFar">path so far, in the form @"c:\here" -- this needs to be "clean" for the current filesystem</param>
|
||||
private void BackupFolder(InventoryNode folder, string sPathSoFar)
|
||||
{
|
||||
StringBuilder sbRequests = new StringBuilder();
|
||||
|
||||
// FIXME:
|
||||
//Client.Inventory.RequestFolderContents(folder.Data.UUID, Client.Self.AgentID, true, true, false,
|
||||
// InventorySortOrder.ByName);
|
||||
|
||||
// first scan this folder for text
|
||||
foreach (InventoryNode iNode in folder.Nodes.Values)
|
||||
{
|
||||
if (BackupWorker.CancellationPending)
|
||||
return;
|
||||
if (iNode.Data is OpenMetaverse.InventoryItem)
|
||||
{
|
||||
InventoryItem ii = iNode.Data as InventoryItem;
|
||||
|
||||
string sExtension;
|
||||
string sPath;
|
||||
|
||||
switch (ii.AssetType)
|
||||
{
|
||||
case AssetType.Animation:
|
||||
sExtension = ".animatn";
|
||||
break;
|
||||
case AssetType.Bodypart:
|
||||
sExtension = ".bodypart";
|
||||
break;
|
||||
case AssetType.CallingCard:
|
||||
continue; // They really don't exist. Are not backable.
|
||||
case AssetType.Clothing:
|
||||
sExtension = ".clothing";
|
||||
break;
|
||||
case AssetType.Folder:
|
||||
continue;
|
||||
case AssetType.Gesture:
|
||||
sExtension = ".gesture";
|
||||
break;
|
||||
case AssetType.ImageJPEG:
|
||||
sExtension = ".jpg";
|
||||
break;
|
||||
case AssetType.ImageTGA:
|
||||
sExtension = ".tga";
|
||||
break;
|
||||
case AssetType.Landmark:
|
||||
sExtension = ".landmark";
|
||||
break;
|
||||
case AssetType.LostAndFoundFolder:
|
||||
continue;
|
||||
case AssetType.LSLBytecode:
|
||||
sExtension = ".lso";
|
||||
break;
|
||||
case AssetType.LSLText:
|
||||
if ((ii.Permissions.OwnerMask & PermissionMask.Copy) == PermissionMask.None || (ii.Permissions.OwnerMask & PermissionMask.Modify) == PermissionMask.None)
|
||||
{
|
||||
continue; // Nocopy scripts are not readable (SecondLife Jira VWR-5238). Nomod scripts will never be.
|
||||
}
|
||||
else
|
||||
{
|
||||
sExtension = ".lsl";
|
||||
break;
|
||||
}
|
||||
case AssetType.Notecard:
|
||||
if ((ii.Permissions.OwnerMask & PermissionMask.Copy) == PermissionMask.None)
|
||||
{
|
||||
continue; // Nocopy notecards are not readable (SecondLife Jira VWR-5238)
|
||||
}
|
||||
else
|
||||
{
|
||||
sExtension = ".notecard";
|
||||
break;
|
||||
}
|
||||
case AssetType.Object:
|
||||
/*sExtension=".object";
|
||||
break;*/
|
||||
continue; // They cannot be copied from the inventory, they must be rezzed
|
||||
case AssetType.RootFolder:
|
||||
continue;
|
||||
case AssetType.Simstate:
|
||||
sExtension = ".simstate";
|
||||
break;
|
||||
case AssetType.SnapshotFolder:
|
||||
continue;
|
||||
case AssetType.Sound:
|
||||
sExtension = ".ogg";
|
||||
break;
|
||||
case AssetType.SoundWAV:
|
||||
sExtension = ".wav";
|
||||
break;
|
||||
case AssetType.Texture:
|
||||
sExtension = ".jp2";
|
||||
break;
|
||||
case AssetType.TextureTGA:
|
||||
sExtension = ".tga";
|
||||
break;
|
||||
case AssetType.TrashFolder:
|
||||
continue;
|
||||
case AssetType.Unknown:
|
||||
default:
|
||||
sExtension = ".unk";
|
||||
break;
|
||||
}
|
||||
|
||||
// make the output file
|
||||
sPath = sPathSoFar + @"\" + MakeValid(ii.Name.Trim()) + sExtension;
|
||||
|
||||
// create the new qdi
|
||||
QueuedDownloadInfo qdi = new QueuedDownloadInfo(sPath, ii.AssetUUID, iNode.Data.UUID, UUID.Zero,
|
||||
Client.Self.AgentID, ii.AssetType);
|
||||
|
||||
// add it to the queue
|
||||
lock (PendingDownloads)
|
||||
{
|
||||
TextItemsFound++;
|
||||
PendingDownloads.Enqueue(qdi);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// now run any subfolders
|
||||
foreach (InventoryNode i in folder.Nodes.Values)
|
||||
{
|
||||
if (BackupWorker.CancellationPending)
|
||||
return;
|
||||
else if (i.Data is OpenMetaverse.InventoryFolder)
|
||||
BackupFolder(i, sPathSoFar + @"\" + MakeValid(i.Data.Name.Trim()));
|
||||
}
|
||||
}
|
||||
|
||||
private string MakeValid(string path)
|
||||
{
|
||||
string FinalName;
|
||||
|
||||
//FinalName = path.Replace(" ", "_"); // This is not needed for exporting the inventory
|
||||
FinalName = path.Replace(":", ";");
|
||||
FinalName = FinalName.Replace("*", "+");
|
||||
FinalName = FinalName.Replace("|", "I");
|
||||
FinalName = FinalName.Replace("\\", "[");
|
||||
FinalName = FinalName.Replace("/", "]");
|
||||
FinalName = FinalName.Replace("?", "¿");
|
||||
FinalName = FinalName.Replace(">", "}");
|
||||
FinalName = FinalName.Replace("<", "{");
|
||||
FinalName = FinalName.Replace("\"", "'");
|
||||
FinalName = FinalName.Replace("\n", " ");
|
||||
|
||||
return FinalName;
|
||||
}
|
||||
|
||||
private void Assets_OnAssetReceived(AssetDownload asset, Asset blah)
|
||||
{
|
||||
lock (CurrentDownloads)
|
||||
{
|
||||
// see if we have this in our transfer list
|
||||
QueuedDownloadInfo r = CurrentDownloads.Find(delegate(QueuedDownloadInfo q)
|
||||
{
|
||||
return q.AssetID == asset.AssetID;
|
||||
});
|
||||
|
||||
if (r != null && r.AssetID == asset.AssetID)
|
||||
{
|
||||
if (asset.Success)
|
||||
{
|
||||
// create the directory to put this in
|
||||
Directory.CreateDirectory(Path.GetDirectoryName(r.FileName));
|
||||
|
||||
// write out the file
|
||||
File.WriteAllBytes(r.FileName, asset.AssetData);
|
||||
bot.Console.WriteLine(bot.Localization.clResourceManager.getText("Commands.Backup.Wrote"), Name, r.FileName);
|
||||
TextItemsTransferred++;
|
||||
}
|
||||
else
|
||||
{
|
||||
TextItemErrors++;
|
||||
bot.Console.WriteLine(bot.Localization.clResourceManager.getText("Commands.Backup.Failed"), Name, r.FileName,
|
||||
r.AssetID.ToString(), asset.Status.ToString());
|
||||
}
|
||||
|
||||
// remove the entry
|
||||
CurrentDownloads.Remove(r);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// returns blank or "not" if false
|
||||
/// </summary>
|
||||
/// <param name="b"></param>
|
||||
/// <returns></returns>
|
||||
private static string BoolToNot(bool b)
|
||||
{
|
||||
return b ? String.Empty : bot.Localization.clResourceManager.getText("Commands.Backup.Not");
|
||||
}
|
||||
|
||||
private void Assets_OnImageReceived(TextureRequestState state, AssetTexture asset)
|
||||
{
|
||||
lock (CurrentDownloads)
|
||||
{
|
||||
// see if we have this in our transfer list
|
||||
QueuedDownloadInfo r = CurrentDownloads.Find(delegate(QueuedDownloadInfo q)
|
||||
{
|
||||
return q.AssetID == asset.AssetID;
|
||||
});
|
||||
|
||||
if (r != null && r.AssetID == asset.AssetID)
|
||||
{
|
||||
if (asset != null/* && asset.Decode()*/)
|
||||
{
|
||||
// create the directory to put this in
|
||||
Directory.CreateDirectory(Path.GetDirectoryName(r.FileName));
|
||||
|
||||
// write out the file
|
||||
File.WriteAllBytes(r.FileName, asset.AssetData);
|
||||
bot.Console.WriteLine(bot.Localization.clResourceManager.getText("Commands.Backup.Wrote"), Name, r.FileName);
|
||||
|
||||
// This, even being a desiderable feature, timeouts the bot and it gets ejected from SL.
|
||||
/*File.WriteAllBytes(r.FileName.Substring(0, r.FileName.Length - 4) + ".tga", asset.Image.ExportTGA());
|
||||
bot.Console.WriteLine("Wrote " + r.FileName.Substring(0, r.FileName.Length - 4) + ".tga");
|
||||
Logger.DebugLog(Name + " Wrote: " + r.FileName.Substring(0, r.FileName.Length - 4) + ".tga", Client);*/
|
||||
TextItemsTransferred++;
|
||||
}
|
||||
else
|
||||
{
|
||||
TextItemErrors++;
|
||||
bot.Console.WriteLine(bot.Localization.clResourceManager.getText("Commands.Backup.Failed"), Name, r.FileName,
|
||||
r.AssetID.ToString(), bot.Localization.clResourceManager.getText("Commands.Backup.Unknown"));
|
||||
}
|
||||
|
||||
// remove the entry
|
||||
CurrentDownloads.Remove(r);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
370
SLBot/bot/Commands/Inventory/BackupTextCommand.cs
Normal file
370
SLBot/bot/Commands/Inventory/BackupTextCommand.cs
Normal file
@@ -0,0 +1,370 @@
|
||||
/***************************************************************************
|
||||
The Disc Image Chef
|
||||
----------------------------------------------------------------------------
|
||||
|
||||
Filename : BackupTextCommand.cs
|
||||
Version : 1.0.326
|
||||
Author(s) : Natalia Portillo
|
||||
|
||||
Component : NatiBot
|
||||
|
||||
Revision : r326
|
||||
Last change by : Natalia Portillo
|
||||
Date : 2010/01/01
|
||||
|
||||
--[ License ] --------------------------------------------------------------
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as
|
||||
published by the Free Software Foundation, either version 3 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
----------------------------------------------------------------------------
|
||||
Copyright (C) 2008-2014 Claunia.com
|
||||
****************************************************************************/
|
||||
namespace bot.Commands
|
||||
{
|
||||
using bot;
|
||||
using OpenMetaverse;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.IO;
|
||||
using System.Text;
|
||||
using System.Threading;
|
||||
using OpenMetaverse.Assets;
|
||||
|
||||
public class BackupTextCommand : Command
|
||||
{
|
||||
private BackgroundWorker BackupWorker;
|
||||
private List<QueuedDownloadInfo> CurrentDownloads = new List<QueuedDownloadInfo>(10);
|
||||
private const int MAX_TRANSFERS = 10;
|
||||
private Queue<QueuedDownloadInfo> PendingDownloads = new Queue<QueuedDownloadInfo>();
|
||||
private BackgroundWorker QueueWorker;
|
||||
private int TextItemErrors;
|
||||
private int TextItemsFound;
|
||||
private int TextItemsTransferred;
|
||||
|
||||
#region Properties
|
||||
|
||||
/// <summary>
|
||||
/// true if either of the background threads is running
|
||||
/// </summary>
|
||||
private bool BackgroundBackupRunning
|
||||
{
|
||||
get { return InventoryWalkerRunning || QueueRunnerRunning; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// true if the thread walking inventory is running
|
||||
/// </summary>
|
||||
private bool InventoryWalkerRunning
|
||||
{
|
||||
get { return BackupWorker != null; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// true if the thread feeding the queue to the server is running
|
||||
/// </summary>
|
||||
private bool QueueRunnerRunning
|
||||
{
|
||||
get { return QueueWorker != null; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// returns a string summarizing activity
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
private string BackgroundBackupStatus
|
||||
{
|
||||
get
|
||||
{
|
||||
StringBuilder sbResult = new StringBuilder();
|
||||
sbResult.AppendFormat(bot.Localization.clResourceManager.getText("Commands.Backup.Running"), Name, BoolToNot(BackgroundBackupRunning));
|
||||
if (TextItemErrors != 0 || TextItemsFound != 0 || TextItemsTransferred != 0)
|
||||
{
|
||||
sbResult.AppendFormat(bot.Localization.clResourceManager.getText("Commands.Backup.Walker"),
|
||||
Name, BoolToNot(InventoryWalkerRunning), TextItemsFound);
|
||||
sbResult.AppendFormat(bot.Localization.clResourceManager.getText("Commands.Backup.Transfer"),
|
||||
Name, BoolToNot(QueueRunnerRunning), TextItemsTransferred, TextItemErrors);
|
||||
sbResult.AppendFormat(bot.Localization.clResourceManager.getText("Commands.Backup.Queue"),
|
||||
Name, PendingDownloads.Count, CurrentDownloads.Count);
|
||||
}
|
||||
return sbResult.ToString();
|
||||
}
|
||||
}
|
||||
|
||||
#endregion Properties
|
||||
|
||||
public BackupTextCommand(SecondLifeBot SecondLifeBot)
|
||||
{
|
||||
base.Name = "backuptext";
|
||||
base.Description = bot.Localization.clResourceManager.getText("Commands.BackupText.Description") + " " + String.Format(bot.Localization.clResourceManager.getText("Commands.Backup.Usage"), Name);
|
||||
}
|
||||
|
||||
public override string Execute(string[] args, UUID fromAgentID, bool fromSL)
|
||||
{
|
||||
Program.NBStats.AddStatData(String.Format("{0}: {1} backing up all text.", DateTime.Now.ToString(), Client));
|
||||
|
||||
StringBuilder sbResult = new StringBuilder();
|
||||
|
||||
if (args.Length == 1 && args[0] == "status")
|
||||
{
|
||||
return BackgroundBackupStatus;
|
||||
}
|
||||
else if (args.Length == 1 && args[0] == "abort")
|
||||
{
|
||||
if (!BackgroundBackupRunning)
|
||||
return BackgroundBackupStatus;
|
||||
|
||||
BackupWorker.CancelAsync();
|
||||
QueueWorker.CancelAsync();
|
||||
|
||||
Thread.Sleep(500);
|
||||
|
||||
// check status
|
||||
return BackgroundBackupStatus;
|
||||
}
|
||||
else if (args.Length != 2)
|
||||
{
|
||||
return String.Format(bot.Localization.clResourceManager.getText("Commands.Backup.Usage"), Name);
|
||||
}
|
||||
else if (BackgroundBackupRunning)
|
||||
{
|
||||
return BackgroundBackupStatus;
|
||||
}
|
||||
|
||||
QueueWorker = new BackgroundWorker();
|
||||
QueueWorker.WorkerSupportsCancellation = true;
|
||||
QueueWorker.DoWork += new DoWorkEventHandler(bwQueueRunner_DoWork);
|
||||
QueueWorker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(bwQueueRunner_RunWorkerCompleted);
|
||||
|
||||
QueueWorker.RunWorkerAsync();
|
||||
|
||||
BackupWorker = new BackgroundWorker();
|
||||
BackupWorker.WorkerSupportsCancellation = true;
|
||||
BackupWorker.DoWork += new DoWorkEventHandler(bwBackup_DoWork);
|
||||
BackupWorker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(bwBackup_RunWorkerCompleted);
|
||||
|
||||
BackupWorker.RunWorkerAsync(args);
|
||||
return bot.Localization.clResourceManager.getText("Commands.Backup.Started");
|
||||
}
|
||||
|
||||
void bwQueueRunner_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
|
||||
{
|
||||
QueueWorker = null;
|
||||
bot.Console.WriteLine(BackgroundBackupStatus);
|
||||
}
|
||||
|
||||
void bwQueueRunner_DoWork(object sender, DoWorkEventArgs e)
|
||||
{
|
||||
TextItemErrors = TextItemsTransferred = 0;
|
||||
|
||||
while (QueueWorker.CancellationPending == false)
|
||||
{
|
||||
// have any timed out?
|
||||
if (CurrentDownloads.Count > 0)
|
||||
{
|
||||
foreach (QueuedDownloadInfo qdi in CurrentDownloads)
|
||||
{
|
||||
if ((qdi.WhenRequested + TimeSpan.FromSeconds(60)) < DateTime.Now)
|
||||
{
|
||||
bot.Console.WriteLine(bot.Localization.clResourceManager.getText("Commands.Backup.Timeout"), Name, qdi.AssetID.ToString());
|
||||
// submit request again
|
||||
Client.Assets.RequestInventoryAsset(
|
||||
qdi.AssetID, qdi.ItemID, qdi.TaskID, qdi.OwnerID, qdi.Type, true, Assets_OnAssetReceived);
|
||||
qdi.WhenRequested = DateTime.Now;
|
||||
qdi.IsRequested = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (PendingDownloads.Count != 0)
|
||||
{
|
||||
// room in the server queue?
|
||||
if (CurrentDownloads.Count < MAX_TRANSFERS)
|
||||
{
|
||||
// yes
|
||||
QueuedDownloadInfo qdi = PendingDownloads.Dequeue();
|
||||
qdi.WhenRequested = DateTime.Now;
|
||||
qdi.IsRequested = true;
|
||||
Client.Assets.RequestInventoryAsset(
|
||||
qdi.AssetID, qdi.ItemID, qdi.TaskID, qdi.OwnerID, qdi.Type, true, Assets_OnAssetReceived);
|
||||
|
||||
lock (CurrentDownloads)
|
||||
CurrentDownloads.Add(qdi);
|
||||
}
|
||||
}
|
||||
|
||||
if (CurrentDownloads.Count == 0 && PendingDownloads.Count == 0 && BackupWorker == null)
|
||||
{
|
||||
bot.Console.WriteLine(bot.Localization.clResourceManager.getText("Commands.Backup.AllDone"), Name);
|
||||
return;
|
||||
}
|
||||
|
||||
Thread.Sleep(100);
|
||||
}
|
||||
}
|
||||
|
||||
void bwBackup_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
|
||||
{
|
||||
bot.Console.WriteLine(bot.Localization.clResourceManager.getText("Commands.Backup.WalkingDone"), Name);
|
||||
BackupWorker = null;
|
||||
}
|
||||
|
||||
private void bwBackup_DoWork(object sender, DoWorkEventArgs e)
|
||||
{
|
||||
string[] args;
|
||||
|
||||
TextItemsFound = 0;
|
||||
|
||||
args = (string[])e.Argument;
|
||||
|
||||
lock (CurrentDownloads)
|
||||
CurrentDownloads.Clear();
|
||||
|
||||
// FIXME:
|
||||
//Client.Inventory.RequestFolderContents(Client.Inventory.Store.RootFolder.UUID, Client.Self.AgentID,
|
||||
// true, true, false, InventorySortOrder.ByName);
|
||||
|
||||
DirectoryInfo di = new DirectoryInfo(args[1]);
|
||||
|
||||
// recurse on the root folder into the entire inventory
|
||||
BackupFolder(Client.Inventory.Store.RootNode, di.FullName);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// BackupFolder - recurse through the inventory nodes sending scripts and notecards to the transfer queue
|
||||
/// </summary>
|
||||
/// <param name="folder">The current leaf in the inventory tree</param>
|
||||
/// <param name="sPathSoFar">path so far, in the form @"c:\here" -- this needs to be "clean" for the current filesystem</param>
|
||||
private void BackupFolder(InventoryNode folder, string sPathSoFar)
|
||||
{
|
||||
StringBuilder sbRequests = new StringBuilder();
|
||||
|
||||
// FIXME:
|
||||
//Client.Inventory.RequestFolderContents(folder.Data.UUID, Client.Self.AgentID, true, true, false,
|
||||
// InventorySortOrder.ByName);
|
||||
|
||||
// first scan this folder for text
|
||||
foreach (InventoryNode iNode in folder.Nodes.Values)
|
||||
{
|
||||
if (BackupWorker.CancellationPending)
|
||||
return;
|
||||
if (iNode.Data is OpenMetaverse.InventoryItem)
|
||||
{
|
||||
InventoryItem ii = iNode.Data as InventoryItem;
|
||||
if (ii.AssetType == AssetType.LSLText || ii.AssetType == AssetType.Notecard)
|
||||
{
|
||||
// check permissions on scripts
|
||||
if (ii.AssetType == AssetType.LSLText)
|
||||
{
|
||||
if ((ii.Permissions.OwnerMask & PermissionMask.Modify) == PermissionMask.None)
|
||||
{
|
||||
// skip this one
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
string sExtension = (ii.AssetType == AssetType.LSLText) ? ".lsl" : ".txt";
|
||||
// make the output file
|
||||
string sPath = sPathSoFar + @"\" + MakeValid(ii.Name.Trim()) + sExtension;
|
||||
|
||||
// create the new qdi
|
||||
QueuedDownloadInfo qdi = new QueuedDownloadInfo(sPath, ii.AssetUUID, iNode.Data.UUID, UUID.Zero,
|
||||
Client.Self.AgentID, ii.AssetType);
|
||||
|
||||
// add it to the queue
|
||||
lock (PendingDownloads)
|
||||
{
|
||||
TextItemsFound++;
|
||||
PendingDownloads.Enqueue(qdi);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// now run any subfolders
|
||||
foreach (InventoryNode i in folder.Nodes.Values)
|
||||
{
|
||||
if (BackupWorker.CancellationPending)
|
||||
return;
|
||||
else if (i.Data is OpenMetaverse.InventoryFolder)
|
||||
BackupFolder(i, sPathSoFar + @"\" + MakeValid(i.Data.Name.Trim()));
|
||||
}
|
||||
}
|
||||
|
||||
private string MakeValid(string path)
|
||||
{
|
||||
string FinalName;
|
||||
|
||||
FinalName = path.Replace(" ", "_");
|
||||
FinalName = FinalName.Replace(":", ";");
|
||||
FinalName = FinalName.Replace("*", "+");
|
||||
FinalName = FinalName.Replace("|", "I");
|
||||
FinalName = FinalName.Replace("\\", "[");
|
||||
FinalName = FinalName.Replace("/", "]");
|
||||
FinalName = FinalName.Replace("?", "¿");
|
||||
FinalName = FinalName.Replace(">", "}");
|
||||
FinalName = FinalName.Replace("<", "{");
|
||||
FinalName = FinalName.Replace("\"", "'");
|
||||
FinalName = FinalName.Replace("\n", " ");
|
||||
|
||||
return FinalName;
|
||||
}
|
||||
|
||||
private void Assets_OnAssetReceived(AssetDownload asset, Asset blah)
|
||||
{
|
||||
lock (CurrentDownloads)
|
||||
{
|
||||
// see if we have this in our transfer list
|
||||
QueuedDownloadInfo r = CurrentDownloads.Find(delegate(QueuedDownloadInfo q)
|
||||
{
|
||||
return q.AssetID == asset.AssetID;
|
||||
});
|
||||
|
||||
if (r != null && r.AssetID == asset.AssetID)
|
||||
{
|
||||
if (asset.Success)
|
||||
{
|
||||
// create the directory to put this in
|
||||
Directory.CreateDirectory(Path.GetDirectoryName(r.FileName));
|
||||
|
||||
// write out the file
|
||||
File.WriteAllBytes(r.FileName, asset.AssetData);
|
||||
bot.Console.WriteLine(bot.Localization.clResourceManager.getText("Commands.Backup.Wrote"), Name, r.FileName);
|
||||
TextItemsTransferred++;
|
||||
}
|
||||
else
|
||||
{
|
||||
TextItemErrors++;
|
||||
bot.Console.WriteLine(bot.Localization.clResourceManager.getText("Commands.Backup.Failed"), Name, r.FileName,
|
||||
r.AssetID.ToString(), asset.Status.ToString());
|
||||
}
|
||||
|
||||
// remove the entry
|
||||
CurrentDownloads.Remove(r);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// returns blank or "not" if false
|
||||
/// </summary>
|
||||
/// <param name="b"></param>
|
||||
/// <returns></returns>
|
||||
private static string BoolToNot(bool b)
|
||||
{
|
||||
return b ? String.Empty : bot.Localization.clResourceManager.getText("Commands.Backup.Not");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
122
SLBot/bot/Commands/Inventory/ChangeDirectoryCommand.cs
Normal file
122
SLBot/bot/Commands/Inventory/ChangeDirectoryCommand.cs
Normal file
@@ -0,0 +1,122 @@
|
||||
/***************************************************************************
|
||||
The Disc Image Chef
|
||||
----------------------------------------------------------------------------
|
||||
|
||||
Filename : ChangeDirectoryCommand.cs
|
||||
Version : 1.0.326
|
||||
Author(s) : Natalia Portillo
|
||||
|
||||
Component : NatiBot
|
||||
|
||||
Revision : r326
|
||||
Last change by : Natalia Portillo
|
||||
Date : 2010/01/01
|
||||
|
||||
--[ License ] --------------------------------------------------------------
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as
|
||||
published by the Free Software Foundation, either version 3 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
----------------------------------------------------------------------------
|
||||
Copyright (C) 2008-2014 Claunia.com
|
||||
****************************************************************************/
|
||||
namespace bot.Commands
|
||||
{
|
||||
using bot;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using OpenMetaverse;
|
||||
|
||||
public class ChangeDirectoryCommand : Command
|
||||
{
|
||||
private InventoryManager Manager;
|
||||
private OpenMetaverse.Inventory Inventory;
|
||||
|
||||
public ChangeDirectoryCommand(SecondLifeBot SecondLifeBot)
|
||||
{
|
||||
base.Name = "cd";
|
||||
base.Description = bot.Localization.clResourceManager.getText("Commands.ChangeDirectory.Description") + " " + bot.Localization.clResourceManager.getText("Commands.ChangeDirectory.Usage");
|
||||
}
|
||||
|
||||
public override string Execute(string[] args, UUID fromAgentID, bool something_else)
|
||||
{
|
||||
Manager = Client.Inventory;
|
||||
Inventory = Client.Inventory.Store;
|
||||
|
||||
if (args.Length > 1)
|
||||
return bot.Localization.clResourceManager.getText("Commands.ChangeDirectory.Usage");
|
||||
string pathStr = "";
|
||||
string[] path = null;
|
||||
if (args.Length == 0)
|
||||
{
|
||||
path = new string[] { "" };
|
||||
// cd without any arguments doesn't do anything.
|
||||
}
|
||||
else if (args.Length == 1)
|
||||
{
|
||||
pathStr = args[0];
|
||||
path = pathStr.Split(new char[] { '/' });
|
||||
// Use '/' as a path seperator.
|
||||
}
|
||||
InventoryFolder currentFolder = Client.CurrentDirectory;
|
||||
if (pathStr.StartsWith("/"))
|
||||
currentFolder = Inventory.RootFolder;
|
||||
|
||||
if (currentFolder == null) // We need this to be set to something.
|
||||
//return "Error: Sesi<73>n no iniciada.";
|
||||
currentFolder = Inventory.RootFolder;
|
||||
|
||||
// Traverse the path, looking for the
|
||||
for (int i = 0; i < path.Length; ++i)
|
||||
{
|
||||
string nextName = path[i];
|
||||
if (string.IsNullOrEmpty(nextName) || nextName == ".")
|
||||
continue; // Ignore '.' and blanks, stay in the current directory.
|
||||
if (nextName == ".." && currentFolder != Inventory.RootFolder)
|
||||
{
|
||||
// If we encounter .., move to the parent folder.
|
||||
currentFolder = Inventory[currentFolder.ParentUUID] as InventoryFolder;
|
||||
}
|
||||
else
|
||||
{
|
||||
List<InventoryBase> currentContents = Inventory.GetContents(currentFolder);
|
||||
// Try and find an InventoryBase with the corresponding name.
|
||||
bool found = false;
|
||||
foreach (InventoryBase item in currentContents)
|
||||
{
|
||||
// Allow lookup by UUID as well as name:
|
||||
if (item.Name == nextName || item.UUID.ToString() == nextName)
|
||||
{
|
||||
found = true;
|
||||
if (item is InventoryFolder)
|
||||
{
|
||||
currentFolder = item as InventoryFolder;
|
||||
}
|
||||
else
|
||||
{
|
||||
return String.Format(bot.Localization.clResourceManager.getText("Commands.ChangeDirectory.NotFolder"), item.Name);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!found)
|
||||
return String.Format(bot.Localization.clResourceManager.getText("Commands.ChangeDirectory.NotFound"), nextName, currentFolder.Name);
|
||||
}
|
||||
}
|
||||
Client.CurrentDirectory = currentFolder;
|
||||
return String.Format(bot.Localization.clResourceManager.getText("Commands.ChangeDirectory.CurrentFolder"), currentFolder.Name);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
504
SLBot/bot/Commands/Inventory/CreateClothingCommand.cs
Normal file
504
SLBot/bot/Commands/Inventory/CreateClothingCommand.cs
Normal file
@@ -0,0 +1,504 @@
|
||||
/***************************************************************************
|
||||
The Disc Image Chef
|
||||
----------------------------------------------------------------------------
|
||||
|
||||
Filename : CreateClothingCommand.cs
|
||||
Version : 1.0.326
|
||||
Author(s) : Natalia Portillo
|
||||
|
||||
Component : NatiBot
|
||||
|
||||
Revision : r326
|
||||
Last change by : Natalia Portillo
|
||||
Date : 2010/01/01
|
||||
|
||||
--[ License ] --------------------------------------------------------------
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as
|
||||
published by the Free Software Foundation, either version 3 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
----------------------------------------------------------------------------
|
||||
Copyright (C) 2008-2014 Claunia.com
|
||||
****************************************************************************/
|
||||
namespace bot.Commands
|
||||
{
|
||||
using bot;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Text;
|
||||
using System.Threading;
|
||||
using OpenMetaverse;
|
||||
using OpenMetaverse.Assets;
|
||||
|
||||
public class CreateClothingCommand : Command
|
||||
{
|
||||
public CreateClothingCommand(SecondLifeBot SecondLifeBot)
|
||||
{
|
||||
base.Name = "createclothing";
|
||||
base.Description = bot.Localization.clResourceManager.getText("Commands.CreateClothing.Description") + " " + bot.Localization.clResourceManager.getText("Commands.CreateClothing.Usage");
|
||||
}
|
||||
|
||||
public override string Execute(string[] args, UUID fromAgentID, bool something_else)
|
||||
{
|
||||
string LongUsage = bot.Localization.clResourceManager.getText("Commands.CreateClothing.UsageLine1") + System.Environment.NewLine +
|
||||
bot.Localization.clResourceManager.getText("Commands.CreateClothing.UsageLine2");
|
||||
string finalmessage = "";
|
||||
string NL = "\n";
|
||||
WearableType wtype;
|
||||
UUID uuid1, uuid2;
|
||||
uuid2 = UUID.Zero;
|
||||
|
||||
if (args.Length == 0)
|
||||
return Description;
|
||||
if (args.Length == 1)
|
||||
if (args[0].ToLower() == "help")
|
||||
return LongUsage;
|
||||
else
|
||||
return Description;
|
||||
if (args.Length != 3 && args.Length != 4)
|
||||
return Description;
|
||||
|
||||
switch (args[1].ToLower())
|
||||
{
|
||||
case "gloves":
|
||||
wtype = WearableType.Gloves;
|
||||
break;
|
||||
case "jacket":
|
||||
wtype = WearableType.Jacket;
|
||||
if (args.Length != 4)
|
||||
return bot.Localization.clResourceManager.getText("Commands.CreateClothing.Jacket");
|
||||
break;
|
||||
case "pants":
|
||||
wtype = WearableType.Pants;
|
||||
break;
|
||||
case "shirt":
|
||||
wtype = WearableType.Shirt;
|
||||
break;
|
||||
case "shoes":
|
||||
wtype = WearableType.Shoes;
|
||||
break;
|
||||
case "skirt":
|
||||
wtype = WearableType.Skirt;
|
||||
break;
|
||||
case "socks":
|
||||
wtype = WearableType.Socks;
|
||||
break;
|
||||
case "underpants":
|
||||
wtype = WearableType.Underpants;
|
||||
break;
|
||||
case "undershirt":
|
||||
wtype = WearableType.Undershirt;
|
||||
break;
|
||||
default:
|
||||
return bot.Localization.clResourceManager.getText("Commands.CreateClothing.Incorrect");
|
||||
}
|
||||
|
||||
if (!UUID.TryParse(args[2], out uuid1))
|
||||
return bot.Localization.clResourceManager.getText("Commands.CreateClothing.ExpectedID1");
|
||||
|
||||
if (args.Length == 4)
|
||||
if (!UUID.TryParse(args[3], out uuid2))
|
||||
return bot.Localization.clResourceManager.getText("Commands.CreateClothing.ExpectedID2");
|
||||
|
||||
if (args[1].ToLower() == "jacket")
|
||||
Program.NBStats.AddStatData(String.Format("{0}: {1} creating clothing of type {2} named {3} with uuid {4} {5}.", DateTime.Now.ToString(), Client, args[1], args[0], args[2], args[3]));
|
||||
else
|
||||
Program.NBStats.AddStatData(String.Format("{0}: {1} creating clothing of type {2} named {3} with uuid {4}.", DateTime.Now.ToString(), Client, args[1], args[0], args[2]));
|
||||
|
||||
#region Part common to all wearable types
|
||||
StringBuilder sbcloth = new StringBuilder("LLWearable version 22\n");
|
||||
sbcloth.Append(args[0]);
|
||||
sbcloth.Append(NL);
|
||||
sbcloth.Append(NL);
|
||||
sbcloth.Append("\tpermissions 0\n\t{\n");
|
||||
sbcloth.Append("\t\tbase_mask\t");
|
||||
sbcloth.Append("7fffffff");
|
||||
sbcloth.Append(NL);
|
||||
sbcloth.Append("\t\towner_mask\t");
|
||||
sbcloth.Append("7fffffff");
|
||||
sbcloth.Append(NL);
|
||||
sbcloth.Append("\t\tgroup_mask\t");
|
||||
sbcloth.Append("00000000");
|
||||
sbcloth.Append(NL);
|
||||
sbcloth.Append("\t\teveryone_mask\t");
|
||||
sbcloth.Append("00000000");
|
||||
sbcloth.Append(NL);
|
||||
sbcloth.Append("\t\tnext_owner_mask\t");
|
||||
sbcloth.Append("7fffffff");
|
||||
sbcloth.Append(NL);
|
||||
sbcloth.Append("\t\tcreator_id\t");
|
||||
sbcloth.Append(Client.Self.AgentID.ToString());
|
||||
sbcloth.Append(NL);
|
||||
sbcloth.Append("\t\towner_id\t");
|
||||
sbcloth.Append(Client.Self.AgentID.ToString());
|
||||
sbcloth.Append(NL);
|
||||
sbcloth.Append("\t\tlast_owner_id\t");
|
||||
sbcloth.Append(Client.Self.AgentID.ToString());
|
||||
sbcloth.Append(NL);
|
||||
sbcloth.Append("\t\tgroup_id\t");
|
||||
sbcloth.Append(UUID.Zero.ToString());
|
||||
sbcloth.Append(NL);
|
||||
sbcloth.Append("\t}\n");
|
||||
sbcloth.Append("\tsale_info\t0\n");
|
||||
sbcloth.Append("\t{\n");
|
||||
sbcloth.Append("\t\tsale_type\t");
|
||||
sbcloth.Append("not");
|
||||
sbcloth.Append(NL);
|
||||
sbcloth.Append("\t\tsale_price\t");
|
||||
sbcloth.Append("0");
|
||||
sbcloth.Append(NL);
|
||||
sbcloth.Append("\t}\n");
|
||||
#endregion #region Part common to all wearable types
|
||||
|
||||
sbcloth.Append("type ");
|
||||
sbcloth.Append((int)wtype);
|
||||
sbcloth.Append(NL);
|
||||
|
||||
switch (wtype)
|
||||
{
|
||||
case WearableType.Gloves:
|
||||
sbcloth.Append("parameters ");
|
||||
sbcloth.Append(5);
|
||||
sbcloth.Append(NL);
|
||||
sbcloth.Append("93 ");
|
||||
sbcloth.Append(".8");
|
||||
sbcloth.Append(NL);
|
||||
sbcloth.Append("827 ");
|
||||
sbcloth.Append(1);
|
||||
sbcloth.Append(NL);
|
||||
sbcloth.Append("829 ");
|
||||
sbcloth.Append(1);
|
||||
sbcloth.Append(NL);
|
||||
sbcloth.Append("830 ");
|
||||
sbcloth.Append(1);
|
||||
sbcloth.Append(NL);
|
||||
sbcloth.Append("844 ");
|
||||
sbcloth.Append(1);
|
||||
sbcloth.Append(NL);
|
||||
sbcloth.Append("textures ");
|
||||
sbcloth.Append(1);
|
||||
sbcloth.Append(NL);
|
||||
sbcloth.Append("15 ");
|
||||
sbcloth.Append(uuid1.ToString());
|
||||
sbcloth.Append(NL);
|
||||
break;
|
||||
case WearableType.Jacket:
|
||||
sbcloth.Append("parameters ");
|
||||
sbcloth.Append(9);
|
||||
sbcloth.Append(NL);
|
||||
sbcloth.Append("606 ");
|
||||
sbcloth.Append(".8");
|
||||
sbcloth.Append(NL);
|
||||
sbcloth.Append("607 ");
|
||||
sbcloth.Append(".8");
|
||||
sbcloth.Append(NL);
|
||||
sbcloth.Append("608 ");
|
||||
sbcloth.Append(".8");
|
||||
sbcloth.Append(NL);
|
||||
sbcloth.Append("609 ");
|
||||
sbcloth.Append(".2");
|
||||
sbcloth.Append(NL);
|
||||
sbcloth.Append("780 ");
|
||||
sbcloth.Append(".8");
|
||||
sbcloth.Append(NL);
|
||||
sbcloth.Append("834 ");
|
||||
sbcloth.Append(1);
|
||||
sbcloth.Append(NL);
|
||||
sbcloth.Append("835 ");
|
||||
sbcloth.Append(1);
|
||||
sbcloth.Append(NL);
|
||||
sbcloth.Append("836 ");
|
||||
sbcloth.Append(1);
|
||||
sbcloth.Append(NL);
|
||||
sbcloth.Append("877 ");
|
||||
sbcloth.Append(0);
|
||||
sbcloth.Append(NL);
|
||||
sbcloth.Append("textures ");
|
||||
sbcloth.Append(2);
|
||||
sbcloth.Append(NL);
|
||||
sbcloth.Append("13 ");
|
||||
sbcloth.Append(uuid1.ToString());
|
||||
sbcloth.Append(NL);
|
||||
sbcloth.Append("14 ");
|
||||
sbcloth.Append(uuid2.ToString());
|
||||
sbcloth.Append(NL);
|
||||
break;
|
||||
case WearableType.Pants:
|
||||
sbcloth.Append("parameters ");
|
||||
sbcloth.Append(9);
|
||||
sbcloth.Append(NL);
|
||||
sbcloth.Append("625 ");
|
||||
sbcloth.Append(0);
|
||||
sbcloth.Append(NL);
|
||||
sbcloth.Append("638 ");
|
||||
sbcloth.Append(0);
|
||||
sbcloth.Append(NL);
|
||||
sbcloth.Append("806 ");
|
||||
sbcloth.Append(1);
|
||||
sbcloth.Append(NL);
|
||||
sbcloth.Append("807 ");
|
||||
sbcloth.Append(1);
|
||||
sbcloth.Append(NL);
|
||||
sbcloth.Append("808 ");
|
||||
sbcloth.Append(1);
|
||||
sbcloth.Append(NL);
|
||||
sbcloth.Append("814 ");
|
||||
sbcloth.Append(1);
|
||||
sbcloth.Append(NL);
|
||||
sbcloth.Append("815 ");
|
||||
sbcloth.Append(".8");
|
||||
sbcloth.Append(NL);
|
||||
sbcloth.Append("816 ");
|
||||
sbcloth.Append(0);
|
||||
sbcloth.Append(NL);
|
||||
sbcloth.Append("869 ");
|
||||
sbcloth.Append(0);
|
||||
sbcloth.Append(NL);
|
||||
sbcloth.Append("textures ");
|
||||
sbcloth.Append(1);
|
||||
sbcloth.Append(NL);
|
||||
sbcloth.Append("2 ");
|
||||
sbcloth.Append(uuid1.ToString());
|
||||
sbcloth.Append(NL);
|
||||
break;
|
||||
case WearableType.Shirt:
|
||||
sbcloth.Append("parameters ");
|
||||
sbcloth.Append(10);
|
||||
sbcloth.Append(NL);
|
||||
sbcloth.Append("781 ");
|
||||
sbcloth.Append(".78");
|
||||
sbcloth.Append(NL);
|
||||
sbcloth.Append("800 ");
|
||||
sbcloth.Append(".89");
|
||||
sbcloth.Append(NL);
|
||||
sbcloth.Append("801 ");
|
||||
sbcloth.Append(1);
|
||||
sbcloth.Append(NL);
|
||||
sbcloth.Append("802 ");
|
||||
sbcloth.Append(".78");
|
||||
sbcloth.Append(NL);
|
||||
sbcloth.Append("803 ");
|
||||
sbcloth.Append(1);
|
||||
sbcloth.Append(NL);
|
||||
sbcloth.Append("804 ");
|
||||
sbcloth.Append(1);
|
||||
sbcloth.Append(NL);
|
||||
sbcloth.Append("805 ");
|
||||
sbcloth.Append(1);
|
||||
sbcloth.Append(NL);
|
||||
sbcloth.Append("828 ");
|
||||
sbcloth.Append(0);
|
||||
sbcloth.Append(NL);
|
||||
sbcloth.Append("840 ");
|
||||
sbcloth.Append(0);
|
||||
sbcloth.Append(NL);
|
||||
sbcloth.Append("868 ");
|
||||
sbcloth.Append(0);
|
||||
sbcloth.Append(NL);
|
||||
sbcloth.Append("textures ");
|
||||
sbcloth.Append(1);
|
||||
sbcloth.Append(NL);
|
||||
sbcloth.Append("1 ");
|
||||
sbcloth.Append(uuid1.ToString());
|
||||
sbcloth.Append(NL);
|
||||
break;
|
||||
case WearableType.Shoes:
|
||||
sbcloth.Append("parameters ");
|
||||
sbcloth.Append(10);
|
||||
sbcloth.Append(NL);
|
||||
sbcloth.Append("198 ");
|
||||
sbcloth.Append(0);
|
||||
sbcloth.Append(NL);
|
||||
sbcloth.Append("503 ");
|
||||
sbcloth.Append(0);
|
||||
sbcloth.Append(NL);
|
||||
sbcloth.Append("508 ");
|
||||
sbcloth.Append(0);
|
||||
sbcloth.Append(NL);
|
||||
sbcloth.Append("513 ");
|
||||
sbcloth.Append(".5");
|
||||
sbcloth.Append(NL);
|
||||
sbcloth.Append("514 ");
|
||||
sbcloth.Append(".5");
|
||||
sbcloth.Append(NL);
|
||||
sbcloth.Append("616 ");
|
||||
sbcloth.Append(".1");
|
||||
sbcloth.Append(NL);
|
||||
sbcloth.Append("654 ");
|
||||
sbcloth.Append(0);
|
||||
sbcloth.Append(NL);
|
||||
sbcloth.Append("812 ");
|
||||
sbcloth.Append(1);
|
||||
sbcloth.Append(NL);
|
||||
sbcloth.Append("813 ");
|
||||
sbcloth.Append(1);
|
||||
sbcloth.Append(NL);
|
||||
sbcloth.Append("817 ");
|
||||
sbcloth.Append(1);
|
||||
sbcloth.Append(NL);
|
||||
sbcloth.Append("textures ");
|
||||
sbcloth.Append(1);
|
||||
sbcloth.Append(NL);
|
||||
sbcloth.Append("7 ");
|
||||
sbcloth.Append(uuid1.ToString());
|
||||
sbcloth.Append(NL);
|
||||
break;
|
||||
case WearableType.Skirt:
|
||||
sbcloth.Append("parameters ");
|
||||
sbcloth.Append(10);
|
||||
sbcloth.Append(NL);
|
||||
sbcloth.Append("848 ");
|
||||
sbcloth.Append(".2");
|
||||
sbcloth.Append(NL);
|
||||
sbcloth.Append("858 ");
|
||||
sbcloth.Append(".4");
|
||||
sbcloth.Append(NL);
|
||||
sbcloth.Append("859 ");
|
||||
sbcloth.Append(1);
|
||||
sbcloth.Append(NL);
|
||||
sbcloth.Append("860 ");
|
||||
sbcloth.Append(1);
|
||||
sbcloth.Append(NL);
|
||||
sbcloth.Append("861 ");
|
||||
sbcloth.Append(1);
|
||||
sbcloth.Append(NL);
|
||||
sbcloth.Append("862 ");
|
||||
sbcloth.Append(1);
|
||||
sbcloth.Append(NL);
|
||||
sbcloth.Append("863 ");
|
||||
sbcloth.Append(".33");
|
||||
sbcloth.Append(NL);
|
||||
sbcloth.Append("921 ");
|
||||
sbcloth.Append(1);
|
||||
sbcloth.Append(NL);
|
||||
sbcloth.Append("922 ");
|
||||
sbcloth.Append(1);
|
||||
sbcloth.Append(NL);
|
||||
sbcloth.Append("923 ");
|
||||
sbcloth.Append(1);
|
||||
sbcloth.Append(NL);
|
||||
sbcloth.Append("textures ");
|
||||
sbcloth.Append(1);
|
||||
sbcloth.Append(NL);
|
||||
sbcloth.Append("18 ");
|
||||
sbcloth.Append(uuid1.ToString());
|
||||
sbcloth.Append(NL);
|
||||
break;
|
||||
case WearableType.Socks:
|
||||
sbcloth.Append("parameters ");
|
||||
sbcloth.Append(4);
|
||||
sbcloth.Append(NL);
|
||||
sbcloth.Append("617 ");
|
||||
sbcloth.Append(".35");
|
||||
sbcloth.Append(NL);
|
||||
sbcloth.Append("818 ");
|
||||
sbcloth.Append(1);
|
||||
sbcloth.Append(NL);
|
||||
sbcloth.Append("819 ");
|
||||
sbcloth.Append(1);
|
||||
sbcloth.Append(NL);
|
||||
sbcloth.Append("820 ");
|
||||
sbcloth.Append(1);
|
||||
sbcloth.Append(NL);
|
||||
sbcloth.Append("textures ");
|
||||
sbcloth.Append(1);
|
||||
sbcloth.Append(NL);
|
||||
sbcloth.Append("12 ");
|
||||
sbcloth.Append(uuid1.ToString());
|
||||
sbcloth.Append(NL);
|
||||
break;
|
||||
case WearableType.Underpants:
|
||||
sbcloth.Append("parameters ");
|
||||
sbcloth.Append(5);
|
||||
sbcloth.Append(NL);
|
||||
sbcloth.Append("619 ");
|
||||
sbcloth.Append(".3");
|
||||
sbcloth.Append(NL);
|
||||
sbcloth.Append("624 ");
|
||||
sbcloth.Append(".8");
|
||||
sbcloth.Append(NL);
|
||||
sbcloth.Append("824 ");
|
||||
sbcloth.Append(1);
|
||||
sbcloth.Append(NL);
|
||||
sbcloth.Append("825 ");
|
||||
sbcloth.Append(1);
|
||||
sbcloth.Append(NL);
|
||||
sbcloth.Append("826 ");
|
||||
sbcloth.Append(1);
|
||||
sbcloth.Append(NL);
|
||||
sbcloth.Append("textures ");
|
||||
sbcloth.Append(1);
|
||||
sbcloth.Append(NL);
|
||||
sbcloth.Append("17 ");
|
||||
sbcloth.Append(uuid1.ToString());
|
||||
sbcloth.Append(NL);
|
||||
break;
|
||||
case WearableType.Undershirt:
|
||||
sbcloth.Append("parameters ");
|
||||
sbcloth.Append(7);
|
||||
sbcloth.Append(NL);
|
||||
sbcloth.Append("603 ");
|
||||
sbcloth.Append(".4");
|
||||
sbcloth.Append(NL);
|
||||
sbcloth.Append("604 ");
|
||||
sbcloth.Append(".85");
|
||||
sbcloth.Append(NL);
|
||||
sbcloth.Append("605 ");
|
||||
sbcloth.Append(".84");
|
||||
sbcloth.Append(NL);
|
||||
sbcloth.Append("779 ");
|
||||
sbcloth.Append(".84");
|
||||
sbcloth.Append(NL);
|
||||
sbcloth.Append("821 ");
|
||||
sbcloth.Append(1);
|
||||
sbcloth.Append(NL);
|
||||
sbcloth.Append("822 ");
|
||||
sbcloth.Append(1);
|
||||
sbcloth.Append(NL);
|
||||
sbcloth.Append("823 ");
|
||||
sbcloth.Append(1);
|
||||
sbcloth.Append(NL);
|
||||
sbcloth.Append("textures ");
|
||||
sbcloth.Append(1);
|
||||
sbcloth.Append(NL);
|
||||
sbcloth.Append("16 ");
|
||||
sbcloth.Append(uuid1.ToString());
|
||||
sbcloth.Append(NL);
|
||||
break;
|
||||
}
|
||||
|
||||
AssetClothing clothing = new AssetClothing(sbcloth.ToString());
|
||||
|
||||
clothing.Decode();
|
||||
|
||||
Client.Inventory.RequestCreateItemFromAsset(clothing.AssetData, args[0], String.Format(bot.Localization.clResourceManager.getText("Commands.CreateNotecard.CreatedBy"), args[0], DateTime.Now), AssetType.Clothing,
|
||||
InventoryType.Wearable, Client.Inventory.FindFolderForType(AssetType.Clothing),
|
||||
delegate(bool success, string status, UUID itemID, UUID assetID)
|
||||
{
|
||||
if (success)
|
||||
{
|
||||
finalmessage = String.Format(bot.Localization.clResourceManager.getText("Commands.CreateClothing.Created"), assetID);
|
||||
Client.Inventory.GiveItem(itemID, args[0], AssetType.Clothing, Client.MasterKey, false);
|
||||
}
|
||||
else
|
||||
{
|
||||
finalmessage = String.Format(bot.Localization.clResourceManager.getText("Commands.CreateClothing.Failed"), status);
|
||||
}
|
||||
}
|
||||
);
|
||||
|
||||
return finalmessage;
|
||||
}
|
||||
}
|
||||
}
|
||||
156
SLBot/bot/Commands/Inventory/CreateEyesCommand.cs
Normal file
156
SLBot/bot/Commands/Inventory/CreateEyesCommand.cs
Normal file
@@ -0,0 +1,156 @@
|
||||
/***************************************************************************
|
||||
The Disc Image Chef
|
||||
----------------------------------------------------------------------------
|
||||
|
||||
Filename : CreateEyesCommand.cs
|
||||
Version : 1.0.326
|
||||
Author(s) : Natalia Portillo
|
||||
|
||||
Component : NatiBot
|
||||
|
||||
Revision : r326
|
||||
Last change by : Natalia Portillo
|
||||
Date : 2010/01/01
|
||||
|
||||
--[ License ] --------------------------------------------------------------
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as
|
||||
published by the Free Software Foundation, either version 3 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
----------------------------------------------------------------------------
|
||||
Copyright (C) 2008-2014 Claunia.com
|
||||
****************************************************************************/
|
||||
namespace bot.Commands
|
||||
{
|
||||
using bot;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Text;
|
||||
using System.Threading;
|
||||
using OpenMetaverse;
|
||||
using OpenMetaverse.Assets;
|
||||
|
||||
public class CreateEyesCommand : Command
|
||||
{
|
||||
public CreateEyesCommand(SecondLifeBot SecondLifeBot)
|
||||
{
|
||||
base.Name = "createeyes";
|
||||
base.Description = bot.Localization.clResourceManager.getText("Commands.CreateEyes.Description") + " " + bot.Localization.clResourceManager.getText("Commands.CreateEyes.Usage");
|
||||
}
|
||||
|
||||
public override string Execute(string[] args, UUID fromAgentID, bool something_else)
|
||||
{
|
||||
string finalmessage = "";
|
||||
string NL = "\n";
|
||||
UUID uuid1;
|
||||
uuid1 = UUID.Zero;
|
||||
|
||||
if (args.Length != 2)
|
||||
return Description;
|
||||
|
||||
if (!UUID.TryParse(args[1], out uuid1))
|
||||
return bot.Localization.clResourceManager.getText("Commands.CreateEyes.ExpectedID");
|
||||
|
||||
Program.NBStats.AddStatData(String.Format("{0}: {1} creating eyes named {2} with uuid {3}.", DateTime.Now.ToString(), Client, args[0], args[1]));
|
||||
|
||||
#region Part common to all wearable types
|
||||
StringBuilder sbcloth = new StringBuilder("LLWearable version 22\n");
|
||||
sbcloth.Append(args[0]);
|
||||
sbcloth.Append(NL);
|
||||
sbcloth.Append(NL);
|
||||
sbcloth.Append("\tpermissions 0\n\t{\n");
|
||||
sbcloth.Append("\t\tbase_mask\t");
|
||||
sbcloth.Append("7fffffff");
|
||||
sbcloth.Append(NL);
|
||||
sbcloth.Append("\t\towner_mask\t");
|
||||
sbcloth.Append("7fffffff");
|
||||
sbcloth.Append(NL);
|
||||
sbcloth.Append("\t\tgroup_mask\t");
|
||||
sbcloth.Append("00000000");
|
||||
sbcloth.Append(NL);
|
||||
sbcloth.Append("\t\teveryone_mask\t");
|
||||
sbcloth.Append("00000000");
|
||||
sbcloth.Append(NL);
|
||||
sbcloth.Append("\t\tnext_owner_mask\t");
|
||||
sbcloth.Append("7fffffff");
|
||||
sbcloth.Append(NL);
|
||||
sbcloth.Append("\t\tcreator_id\t");
|
||||
sbcloth.Append(Client.Self.AgentID.ToString());
|
||||
sbcloth.Append(NL);
|
||||
sbcloth.Append("\t\towner_id\t");
|
||||
sbcloth.Append(Client.Self.AgentID.ToString());
|
||||
sbcloth.Append(NL);
|
||||
sbcloth.Append("\t\tlast_owner_id\t");
|
||||
sbcloth.Append(Client.Self.AgentID.ToString());
|
||||
sbcloth.Append(NL);
|
||||
sbcloth.Append("\t\tgroup_id\t");
|
||||
sbcloth.Append(UUID.Zero.ToString());
|
||||
sbcloth.Append(NL);
|
||||
sbcloth.Append("\t}\n");
|
||||
sbcloth.Append("\tsale_info\t0\n");
|
||||
sbcloth.Append("\t{\n");
|
||||
sbcloth.Append("\t\tsale_type\t");
|
||||
sbcloth.Append("not");
|
||||
sbcloth.Append(NL);
|
||||
sbcloth.Append("\t\tsale_price\t");
|
||||
sbcloth.Append("0");
|
||||
sbcloth.Append(NL);
|
||||
sbcloth.Append("\t}\n");
|
||||
#endregion #region Part common to all wearable types
|
||||
|
||||
sbcloth.Append("type ");
|
||||
sbcloth.Append((int)WearableType.Eyes);
|
||||
sbcloth.Append(NL);
|
||||
|
||||
sbcloth.Append("parameters ");
|
||||
sbcloth.Append(2);
|
||||
sbcloth.Append(NL);
|
||||
sbcloth.Append("98 ");
|
||||
sbcloth.Append(0);
|
||||
sbcloth.Append(NL);
|
||||
sbcloth.Append("99 ");
|
||||
sbcloth.Append(0);
|
||||
sbcloth.Append(NL);
|
||||
sbcloth.Append("textures ");
|
||||
sbcloth.Append(1);
|
||||
sbcloth.Append(NL);
|
||||
sbcloth.Append("3 ");
|
||||
sbcloth.Append(uuid1.ToString());
|
||||
sbcloth.Append(NL);
|
||||
|
||||
AssetBodypart bodypart = new AssetBodypart(sbcloth.ToString());
|
||||
|
||||
|
||||
bodypart.Decode();
|
||||
|
||||
Client.Inventory.RequestCreateItemFromAsset(bodypart.AssetData, args[0], String.Format(bot.Localization.clResourceManager.getText("Commands.CreateNotecard.CreatedBy"), args[0], DateTime.Now), AssetType.Bodypart,
|
||||
InventoryType.Wearable, Client.Inventory.FindFolderForType(AssetType.Bodypart),
|
||||
delegate(bool success, string status, UUID itemID, UUID assetID)
|
||||
{
|
||||
if (success)
|
||||
{
|
||||
finalmessage = String.Format(bot.Localization.clResourceManager.getText("Commands.CreateEyes.Created"), assetID);
|
||||
Client.Inventory.GiveItem(itemID, args[0], AssetType.Bodypart, Client.MasterKey, false);
|
||||
}
|
||||
else
|
||||
{
|
||||
finalmessage = String.Format(bot.Localization.clResourceManager.getText("Commands.CreateEyes.Failed"), status);
|
||||
}
|
||||
}
|
||||
);
|
||||
|
||||
return finalmessage;
|
||||
}
|
||||
}
|
||||
}
|
||||
81
SLBot/bot/Commands/Inventory/CreateLandMarkCommand.cs
Normal file
81
SLBot/bot/Commands/Inventory/CreateLandMarkCommand.cs
Normal file
@@ -0,0 +1,81 @@
|
||||
/***************************************************************************
|
||||
The Disc Image Chef
|
||||
----------------------------------------------------------------------------
|
||||
|
||||
Filename : CreateLandMarkCommand.cs
|
||||
Version : 1.0.326
|
||||
Author(s) : Natalia Portillo
|
||||
|
||||
Component : NatiBot
|
||||
|
||||
Revision : r326
|
||||
Last change by : Natalia Portillo
|
||||
Date : 2010/01/01
|
||||
|
||||
--[ License ] --------------------------------------------------------------
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as
|
||||
published by the Free Software Foundation, either version 3 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
----------------------------------------------------------------------------
|
||||
Copyright (C) 2008-2014 Claunia.com
|
||||
****************************************************************************/
|
||||
// Does not work, HTTP error 400.
|
||||
namespace bot.Commands
|
||||
{
|
||||
using bot;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Text;
|
||||
using System.Threading;
|
||||
using OpenMetaverse;
|
||||
using OpenMetaverse.Assets;
|
||||
|
||||
public class CreateLandMarkCommand : Command
|
||||
{
|
||||
public CreateLandMarkCommand(SecondLifeBot SecondLifeBot)
|
||||
{
|
||||
base.Name = "createlm";
|
||||
base.Description = bot.Localization.clResourceManager.getText("Commands.CreateLandMark.Description");
|
||||
}
|
||||
|
||||
public override string Execute(string[] args, UUID fromAgentID, bool something_else)
|
||||
{
|
||||
string finalmessage = "";
|
||||
|
||||
AssetLandmark landmark = new AssetLandmark(this.Client.Network.CurrentSim.RegionID, this.Client.Self.SimPosition);
|
||||
|
||||
landmark.Encode();
|
||||
landmark.Decode();
|
||||
|
||||
Client.Inventory.RequestCreateItemFromAsset(landmark.AssetData, this.Client.Network.CurrentSim.Name, String.Format(bot.Localization.clResourceManager.getText("Commands.CreateNotecard.CreatedBy"), this.Client.Network.CurrentSim.Name, DateTime.Now), AssetType.Landmark,
|
||||
InventoryType.Landmark, Client.Inventory.FindFolderForType(AssetType.Landmark),
|
||||
delegate(bool success, string status, UUID itemID, UUID assetID)
|
||||
{
|
||||
if (success)
|
||||
{
|
||||
finalmessage = String.Format(bot.Localization.clResourceManager.getText("Commands.CreateLandMark.Created"), assetID);
|
||||
Client.Inventory.GiveItem(itemID, this.Client.Network.CurrentSim.Name, AssetType.Clothing, Client.MasterKey, false);
|
||||
}
|
||||
else
|
||||
{
|
||||
finalmessage = String.Format(bot.Localization.clResourceManager.getText("Commands.CreateLandMark.Failed"), status);
|
||||
}
|
||||
}
|
||||
);
|
||||
|
||||
return finalmessage;
|
||||
}
|
||||
}
|
||||
}
|
||||
233
SLBot/bot/Commands/Inventory/CreateNotecardCommand.cs
Normal file
233
SLBot/bot/Commands/Inventory/CreateNotecardCommand.cs
Normal file
@@ -0,0 +1,233 @@
|
||||
/***************************************************************************
|
||||
The Disc Image Chef
|
||||
----------------------------------------------------------------------------
|
||||
|
||||
Filename : CreateNotecardCommand.cs
|
||||
Version : 1.0.326
|
||||
Author(s) : Natalia Portillo
|
||||
|
||||
Component : NatiBot
|
||||
|
||||
Revision : r326
|
||||
Last change by : Natalia Portillo
|
||||
Date : 2010/01/01
|
||||
|
||||
--[ License ] --------------------------------------------------------------
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as
|
||||
published by the Free Software Foundation, either version 3 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
----------------------------------------------------------------------------
|
||||
Copyright (C) 2008-2014 Claunia.com
|
||||
****************************************************************************/
|
||||
namespace bot.Commands
|
||||
{
|
||||
using bot;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Text;
|
||||
using System.Threading;
|
||||
using OpenMetaverse;
|
||||
using OpenMetaverse.Assets;
|
||||
|
||||
public class CreateNotecardCommand : Command
|
||||
{
|
||||
const int NOTECARD_CREATE_TIMEOUT = 2500 * 10;
|
||||
const int NOTECARD_FETCH_TIMEOUT = 1500 * 10;
|
||||
const int INVENTORY_FETCH_TIMEOUT = 1500 * 10;
|
||||
|
||||
public CreateNotecardCommand(SecondLifeBot SecondLifeBot)
|
||||
{
|
||||
base.Name = "createnotecard";
|
||||
base.Description = bot.Localization.clResourceManager.getText("Commands.CreateNotecard.Description") + " " + bot.Localization.clResourceManager.getText("Commands.CreateNotecard.Usage");
|
||||
}
|
||||
|
||||
public override string Execute(string[] args, UUID fromAgentID, bool something_else)
|
||||
{
|
||||
UUID embedItemID = UUID.Zero, notecardItemID = UUID.Zero, notecardAssetID = UUID.Zero;
|
||||
string filename, fileData;
|
||||
bool success = false, finalUploadSuccess = false;
|
||||
string message = String.Empty;
|
||||
AutoResetEvent notecardEvent = new AutoResetEvent(false);
|
||||
|
||||
if (args.Length == 1)
|
||||
{
|
||||
filename = args[0];
|
||||
}
|
||||
else if (args.Length == 2)
|
||||
{
|
||||
filename = args[0];
|
||||
UUID.TryParse(args[1], out embedItemID);
|
||||
}
|
||||
else
|
||||
{
|
||||
return bot.Localization.clResourceManager.getText("Commands.CreateNotecard.Usage");
|
||||
}
|
||||
|
||||
if (!File.Exists(filename))
|
||||
return String.Format(bot.Localization.clResourceManager.getText("Commands.CreateNotecard.NotFound"), filename);
|
||||
|
||||
try
|
||||
{
|
||||
fileData = File.ReadAllText(filename);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
return String.Format(bot.Localization.clResourceManager.getText("Commands.CreateNotecard.OpenFailed"), filename, ex.Message);
|
||||
}
|
||||
|
||||
#region Notecard asset data
|
||||
|
||||
AssetNotecard notecard = new AssetNotecard();
|
||||
notecard.BodyText = fileData;
|
||||
|
||||
// Item embedding
|
||||
if (embedItemID != UUID.Zero)
|
||||
{
|
||||
// Try to fetch the inventory item
|
||||
InventoryItem item = FetchItem(embedItemID);
|
||||
if (item != null)
|
||||
{
|
||||
notecard.EmbeddedItems = new List<InventoryItem> { item };
|
||||
notecard.BodyText += (char)0xdbc0 + (char)0xdc00;
|
||||
}
|
||||
else
|
||||
{
|
||||
return String.Format(bot.Localization.clResourceManager.getText("Commands.CreateNotecard.FetchFailed"), embedItemID);
|
||||
}
|
||||
}
|
||||
|
||||
notecard.Encode();
|
||||
|
||||
#endregion Notecard asset data
|
||||
|
||||
Client.Inventory.RequestCreateItem(Client.Inventory.FindFolderForType(AssetType.Notecard),
|
||||
filename, String.Format(bot.Localization.clResourceManager.getText("Commands.CreateNotecard.CreatedBy"), filename, DateTime.Now), AssetType.Notecard,
|
||||
UUID.Random(), InventoryType.Notecard, PermissionMask.All,
|
||||
delegate(bool createSuccess, InventoryItem item)
|
||||
{
|
||||
if (createSuccess)
|
||||
{
|
||||
#region Upload an empty notecard asset first
|
||||
|
||||
AutoResetEvent emptyNoteEvent = new AutoResetEvent(false);
|
||||
AssetNotecard empty = new AssetNotecard();
|
||||
empty.BodyText = "\n";
|
||||
empty.Encode();
|
||||
|
||||
Client.Inventory.RequestUploadNotecardAsset(empty.AssetData, item.UUID,
|
||||
delegate(bool uploadSuccess, string status, UUID itemID, UUID assetID)
|
||||
{
|
||||
notecardItemID = itemID;
|
||||
notecardAssetID = assetID;
|
||||
success = uploadSuccess;
|
||||
message = status ?? bot.Localization.clResourceManager.getText("Commands.CreateNotecard.UnknownError");
|
||||
emptyNoteEvent.Set();
|
||||
});
|
||||
|
||||
emptyNoteEvent.WaitOne(NOTECARD_CREATE_TIMEOUT, false);
|
||||
|
||||
#endregion Upload an empty notecard asset first
|
||||
|
||||
if (success)
|
||||
{
|
||||
// Upload the actual notecard asset
|
||||
Client.Inventory.RequestUploadNotecardAsset(notecard.AssetData, item.UUID,
|
||||
delegate(bool uploadSuccess, string status, UUID itemID, UUID assetID)
|
||||
{
|
||||
notecardItemID = itemID;
|
||||
notecardAssetID = assetID;
|
||||
finalUploadSuccess = uploadSuccess;
|
||||
message = status ?? bot.Localization.clResourceManager.getText("Commands.CreateNotecard.UnknownError");
|
||||
notecardEvent.Set();
|
||||
});
|
||||
}
|
||||
else
|
||||
{
|
||||
notecardEvent.Set();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
message = bot.Localization.clResourceManager.getText("Commands.CreateNotecard.CreateFail");
|
||||
notecardEvent.Set();
|
||||
}
|
||||
}
|
||||
);
|
||||
|
||||
notecardEvent.WaitOne(NOTECARD_CREATE_TIMEOUT, false);
|
||||
|
||||
if (finalUploadSuccess)
|
||||
{
|
||||
bot.Console.WriteLine(bot.Localization.clResourceManager.getText("Commands.CreateNotecard.Success"), notecardItemID, notecardAssetID);
|
||||
Client.Inventory.GiveItem(notecardItemID, filename, AssetType.Notecard, Client.MasterKey, false);
|
||||
bot.Console.WriteLine(bot.Localization.clResourceManager.getText("Commands.CreateNotecard.Sending"));
|
||||
return DownloadNotecard(notecardItemID, notecardAssetID);
|
||||
}
|
||||
else
|
||||
return String.Format(bot.Localization.clResourceManager.getText("Commands.CreateNotecard.CreateFailDetails"), message);
|
||||
}
|
||||
|
||||
private InventoryItem FetchItem(UUID itemID)
|
||||
{
|
||||
InventoryItem fetchItem = null;
|
||||
AutoResetEvent fetchItemEvent = new AutoResetEvent(false);
|
||||
|
||||
EventHandler<ItemReceivedEventArgs> itemReceivedCallback =
|
||||
delegate(object sender, ItemReceivedEventArgs e)
|
||||
{
|
||||
if (e.Item.UUID == itemID)
|
||||
{
|
||||
fetchItem = e.Item;
|
||||
fetchItemEvent.Set();
|
||||
}
|
||||
};
|
||||
|
||||
Client.Inventory.ItemReceived += itemReceivedCallback;
|
||||
|
||||
Client.Inventory.RequestFetchInventory(itemID, Client.Self.AgentID);
|
||||
|
||||
fetchItemEvent.WaitOne(INVENTORY_FETCH_TIMEOUT, false);
|
||||
|
||||
Client.Inventory.ItemReceived -= itemReceivedCallback;
|
||||
|
||||
return fetchItem;
|
||||
}
|
||||
|
||||
private string DownloadNotecard(UUID itemID, UUID assetID)
|
||||
{
|
||||
AutoResetEvent assetDownloadEvent = new AutoResetEvent(false);
|
||||
byte[] notecardData = null;
|
||||
string error = bot.Localization.clResourceManager.getText("Commands.CreateNotecard.Timeout");
|
||||
|
||||
Client.Assets.RequestInventoryAsset(assetID, itemID, UUID.Zero, Client.Self.AgentID, AssetType.Notecard, true,
|
||||
delegate(AssetDownload transfer, Asset asset)
|
||||
{
|
||||
if (transfer.Success)
|
||||
notecardData = transfer.AssetData;
|
||||
else
|
||||
error = transfer.Status.ToString();
|
||||
assetDownloadEvent.Set();
|
||||
}
|
||||
);
|
||||
|
||||
assetDownloadEvent.WaitOne(NOTECARD_FETCH_TIMEOUT, false);
|
||||
|
||||
if (notecardData != null)
|
||||
return Encoding.UTF8.GetString(notecardData);
|
||||
else
|
||||
return String.Format(bot.Localization.clResourceManager.getText("Commands.CreateNotecard.DownloadError"), error);
|
||||
}
|
||||
}
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user