2007-10-15 07:10:21 +00:00
/ *
* Copyright ( c ) Contributors , http : //opensimulator.org/
* See CONTRIBUTORS . TXT for a full list of copyright holders .
*
* Redistribution and use in source and binary forms , with or without
* modification , are permitted provided that the following conditions are met :
* * Redistributions of source code must retain the above copyright
* notice , this list of conditions and the following disclaimer .
* * Redistributions in binary form must reproduce the above copyright
* notice , this list of conditions and the following disclaimer in the
* documentation and / or other materials provided with the distribution .
* * Neither the name of the OpenSim Project nor the
* names of its contributors may be used to endorse or promote products
* derived from this software without specific prior written permission .
*
* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS AS IS AND ANY
* EXPRESS OR IMPLIED WARRANTIES , INCLUDING , BUT NOT LIMITED TO , THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED . IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
* DIRECT , INDIRECT , INCIDENTAL , SPECIAL , EXEMPLARY , OR CONSEQUENTIAL DAMAGES
* ( INCLUDING , BUT NOT LIMITED TO , PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES ;
* LOSS OF USE , DATA , OR PROFITS ; OR BUSINESS INTERRUPTION ) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY , WHETHER IN CONTRACT , STRICT LIABILITY , OR TORT
* ( INCLUDING NEGLIGENCE OR OTHERWISE ) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE , EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE .
*
* /
2007-07-16 15:40:11 +00:00
using System ;
using System.Collections ;
2007-11-13 10:47:39 +00:00
using System.Collections.Generic ;
2007-07-16 15:40:11 +00:00
using libsecondlife ;
2008-01-05 06:05:25 +00:00
using libsecondlife.StructuredData ;
2007-07-16 15:40:11 +00:00
using Nwc.XmlRpc ;
using OpenSim.Framework.Console ;
namespace OpenSim.Framework.UserManagement
{
/// <summary>
/// A temp class to handle login response.
/// Should make use of UserProfileManager where possible.
/// </summary>
public class LoginResponse
{
private Hashtable loginFlagsHash ;
private Hashtable globalTexturesHash ;
private Hashtable loginError ;
private Hashtable uiConfigHash ;
private ArrayList loginFlags ;
private ArrayList globalTextures ;
private ArrayList eventCategories ;
private ArrayList uiConfig ;
private ArrayList classifiedCategories ;
private ArrayList inventoryRoot ;
private ArrayList initialOutfit ;
2007-09-27 14:57:43 +00:00
private ArrayList agentInventory ;
2007-07-25 18:19:38 +00:00
private ArrayList inventoryLibraryOwner ;
2007-11-30 15:27:56 +00:00
private ArrayList inventoryLibRoot ;
2007-09-27 14:57:43 +00:00
private ArrayList inventoryLibrary ;
2007-07-16 15:40:11 +00:00
private UserInfo userProfile ;
private LLUUID agentID ;
private LLUUID sessionID ;
private LLUUID secureSessionID ;
// Login Flags
private string dst ;
private string stipendSinceLogin ;
private string gendered ;
private string everLoggedIn ;
private string login ;
2007-12-06 01:41:41 +00:00
private uint simPort ;
2007-07-16 15:40:11 +00:00
private string simAddress ;
private string agentAccess ;
private Int32 circuitCode ;
private uint regionX ;
private uint regionY ;
// Login
private string firstname ;
private string lastname ;
2008-02-22 18:11:10 +00:00
// REX (client version string)
private string clientVersion = "not set" ;
2007-07-16 15:40:11 +00:00
// Global Textures
private string sunTexture ;
private string cloudTexture ;
private string moonTexture ;
// Error Flags
private string errorReason ;
private string errorMessage ;
// Response
private XmlRpcResponse xmlRpcResponse ;
private XmlRpcResponse defaultXmlRpcResponse ;
private string welcomeMessage ;
private string startLocation ;
private string allowFirstLife ;
private string home ;
private string seedCapability ;
private string lookAt ;
2007-11-13 10:47:39 +00:00
private BuddyList m_buddyList = null ;
2007-07-16 15:40:11 +00:00
public LoginResponse ( )
{
2007-10-30 09:05:31 +00:00
loginFlags = new ArrayList ( ) ;
globalTextures = new ArrayList ( ) ;
eventCategories = new ArrayList ( ) ;
uiConfig = new ArrayList ( ) ;
classifiedCategories = new ArrayList ( ) ;
2007-07-16 15:40:11 +00:00
2007-10-30 09:05:31 +00:00
loginError = new Hashtable ( ) ;
uiConfigHash = new Hashtable ( ) ;
2007-07-16 15:40:11 +00:00
2007-10-30 09:05:31 +00:00
defaultXmlRpcResponse = new XmlRpcResponse ( ) ;
userProfile = new UserInfo ( ) ;
inventoryRoot = new ArrayList ( ) ;
initialOutfit = new ArrayList ( ) ;
agentInventory = new ArrayList ( ) ;
inventoryLibrary = new ArrayList ( ) ;
inventoryLibraryOwner = new ArrayList ( ) ;
2007-07-16 15:40:11 +00:00
2007-10-30 09:05:31 +00:00
xmlRpcResponse = new XmlRpcResponse ( ) ;
defaultXmlRpcResponse = new XmlRpcResponse ( ) ;
2007-07-16 15:40:11 +00:00
2007-10-30 09:05:31 +00:00
SetDefaultValues ( ) ;
2007-07-16 15:40:11 +00:00
} // LoginServer
public void SetDefaultValues ( )
{
2007-10-30 09:05:31 +00:00
DST = "N" ;
StipendSinceLogin = "N" ;
Gendered = "Y" ;
EverLoggedIn = "Y" ;
login = "false" ;
firstname = "Test" ;
lastname = "User" ;
agentAccess = "M" ;
startLocation = "last" ;
allowFirstLife = "Y" ;
SunTexture = "cce0f112-878f-4586-a2e2-a8f104bba271" ;
2007-11-14 06:00:03 +00:00
CloudTexture = "dc4b9f0b-d008-45c6-96a4-01dd947ac621" ;
MoonTexture = "ec4b9f0b-d008-45c6-96a4-01dd947ac621" ;
2007-10-30 09:05:31 +00:00
ErrorMessage = "You have entered an invalid name/password combination. Check Caps/lock." ;
ErrorReason = "key" ;
welcomeMessage = "Welcome to OpenSim!" ;
seedCapability = "" ;
home = "{'region_handle':[r" + ( 1000 * 256 ) . ToString ( ) + ",r" + ( 1000 * 256 ) . ToString ( ) + "], 'position':[r" +
userProfile . homepos . X . ToString ( ) + ",r" + userProfile . homepos . Y . ToString ( ) + ",r" +
userProfile . homepos . Z . ToString ( ) + "], 'look_at':[r" + userProfile . homelookat . X . ToString ( ) + ",r" +
userProfile . homelookat . Y . ToString ( ) + ",r" + userProfile . homelookat . Z . ToString ( ) + "]}" ;
lookAt = "[r0.99949799999999999756,r0.03166859999999999814,r0]" ;
RegionX = ( uint ) 255232 ;
RegionY = ( uint ) 254976 ;
2008-02-22 18:11:10 +00:00
clientVersion = "not set" ; //rex
2007-10-30 09:05:31 +00:00
// Classifieds;
AddClassifiedCategory ( ( Int32 ) 1 , "Shopping" ) ;
AddClassifiedCategory ( ( Int32 ) 2 , "Land Rental" ) ;
AddClassifiedCategory ( ( Int32 ) 3 , "Property Rental" ) ;
AddClassifiedCategory ( ( Int32 ) 4 , "Special Attraction" ) ;
AddClassifiedCategory ( ( Int32 ) 5 , "New Products" ) ;
AddClassifiedCategory ( ( Int32 ) 6 , "Employment" ) ;
AddClassifiedCategory ( ( Int32 ) 7 , "Wanted" ) ;
AddClassifiedCategory ( ( Int32 ) 8 , "Service" ) ;
AddClassifiedCategory ( ( Int32 ) 9 , "Personal" ) ;
SessionID = LLUUID . Random ( ) ;
SecureSessionID = LLUUID . Random ( ) ;
AgentID = LLUUID . Random ( ) ;
Hashtable InitialOutfitHash = new Hashtable ( ) ;
InitialOutfitHash [ "folder_name" ] = "Nightclub Female" ;
InitialOutfitHash [ "gender" ] = "female" ;
initialOutfit . Add ( InitialOutfitHash ) ;
2007-07-16 15:40:11 +00:00
} // SetDefaultValues
#region Login Failure Methods
2007-10-30 09:05:31 +00:00
2007-07-16 15:40:11 +00:00
public XmlRpcResponse GenerateFailureResponse ( string reason , string message , string login )
{
// Overwrite any default values;
2007-10-30 09:05:31 +00:00
xmlRpcResponse = new XmlRpcResponse ( ) ;
2007-07-16 15:40:11 +00:00
// Ensure Login Failed message/reason;
2007-10-30 09:05:31 +00:00
ErrorMessage = message ;
ErrorReason = reason ;
loginError [ "reason" ] = ErrorReason ;
loginError [ "message" ] = ErrorMessage ;
loginError [ "login" ] = login ;
xmlRpcResponse . Value = loginError ;
return ( xmlRpcResponse ) ;
2007-07-16 15:40:11 +00:00
} // GenerateResponse
2008-01-05 06:05:25 +00:00
public LLSD GenerateFailureResponseLLSD ( string reason , string message , string login )
{
LLSDMap map = new LLSDMap ( ) ;
// Ensure Login Failed message/reason;
ErrorMessage = message ;
ErrorReason = reason ;
map [ "reason" ] = LLSD . FromString ( ErrorReason ) ;
map [ "message" ] = LLSD . FromString ( ErrorMessage ) ;
map [ "login" ] = LLSD . FromString ( login ) ;
return map ;
}
2007-07-16 15:40:11 +00:00
public XmlRpcResponse CreateFailedResponse ( )
{
2007-10-30 09:05:31 +00:00
return ( CreateLoginFailedResponse ( ) ) ;
2007-07-16 15:40:11 +00:00
} // CreateErrorConnectingToGridResponse()
2008-01-05 06:05:25 +00:00
public LLSD CreateFailedResponseLLSD ( )
{
return CreateLoginFailedResponseLLSD ( ) ;
}
2007-07-16 15:40:11 +00:00
public XmlRpcResponse CreateLoginFailedResponse ( )
{
2007-10-30 09:05:31 +00:00
return
( GenerateFailureResponse ( "key" ,
"Could not authenticate your avatar. Please check your username and password, and check the grid if problems persist." ,
"false" ) ) ;
2007-07-16 15:40:11 +00:00
} // LoginFailedResponse
2008-01-05 06:05:25 +00:00
public LLSD CreateLoginFailedResponseLLSD ( )
{
return GenerateFailureResponseLLSD (
"key" ,
"Could not authenticate your avatar. Please check your username and password, and check the grid if problems persist." ,
"false" ) ;
}
2007-07-16 15:40:11 +00:00
public XmlRpcResponse CreateAlreadyLoggedInResponse ( )
{
2007-10-30 09:05:31 +00:00
return
( GenerateFailureResponse ( "presence" ,
"You appear to be already logged in, if this is not the case please wait for your session to timeout, if this takes longer than a few minutes please contact the grid owner" ,
"false" ) ) ;
2007-07-16 15:40:11 +00:00
} // CreateAlreadyLoggedInResponse()
2008-01-05 06:05:25 +00:00
public LLSD CreateAlreadyLoggedInResponseLLSD ( )
{
return GenerateFailureResponseLLSD (
"presence" ,
"You appear to be already logged in, if this is not the case please wait for your session to timeout, if this takes longer than a few minutes please contact the grid owner" ,
"false" ) ;
}
2007-07-16 15:40:11 +00:00
public XmlRpcResponse CreateDeadRegionResponse ( )
{
2007-10-30 09:05:31 +00:00
return
( GenerateFailureResponse ( "key" ,
"The region you are attempting to log into is not responding. Please select another region and try again." ,
"false" ) ) ;
2007-07-16 15:40:11 +00:00
}
2008-01-05 06:05:25 +00:00
public LLSD CreateDeadRegionResponseLLSD ( )
{
return GenerateFailureResponseLLSD (
"key" ,
"The region you are attempting to log into is not responding. Please select another region and try again." ,
"false" ) ;
}
2007-10-30 09:05:31 +00:00
public XmlRpcResponse CreateGridErrorResponse ( )
2007-07-16 15:40:11 +00:00
{
2007-10-30 09:05:31 +00:00
return
( GenerateFailureResponse ( "key" ,
"Error connecting to grid. Could not percieve credentials from login XML." ,
"false" ) ) ;
2007-07-16 15:40:11 +00:00
}
2007-10-30 09:05:31 +00:00
2008-01-05 06:05:25 +00:00
public LLSD CreateGridErrorResponseLLSD ( )
{
return GenerateFailureResponseLLSD (
"key" ,
"Error connecting to grid. Could not percieve credentials from login XML." ,
"false" ) ;
}
2007-07-16 15:40:11 +00:00
# endregion
public XmlRpcResponse ToXmlRpcResponse ( )
{
try
{
Hashtable responseData = new Hashtable ( ) ;
2007-10-30 09:05:31 +00:00
loginFlagsHash = new Hashtable ( ) ;
loginFlagsHash [ "daylight_savings" ] = DST ;
loginFlagsHash [ "stipend_since_login" ] = StipendSinceLogin ;
loginFlagsHash [ "gendered" ] = Gendered ;
loginFlagsHash [ "ever_logged_in" ] = EverLoggedIn ;
loginFlags . Add ( loginFlagsHash ) ;
responseData [ "first_name" ] = Firstname ;
responseData [ "last_name" ] = Lastname ;
responseData [ "agent_access" ] = agentAccess ;
globalTexturesHash = new Hashtable ( ) ;
globalTexturesHash [ "sun_texture_id" ] = SunTexture ;
globalTexturesHash [ "cloud_texture_id" ] = CloudTexture ;
globalTexturesHash [ "moon_texture_id" ] = MoonTexture ;
globalTextures . Add ( globalTexturesHash ) ;
// this.eventCategories.Add(this.eventCategoriesHash);
AddToUIConfig ( "allow_first_life" , allowFirstLife ) ;
uiConfig . Add ( uiConfigHash ) ;
responseData [ "sim_port" ] = ( Int32 ) SimPort ;
responseData [ "sim_ip" ] = SimAddress ;
2007-12-20 05:43:02 +00:00
responseData [ "agent_id" ] = AgentID . ToString ( ) ;
responseData [ "session_id" ] = SessionID . ToString ( ) ;
responseData [ "secure_session_id" ] = SecureSessionID . ToString ( ) ;
2007-10-30 09:05:31 +00:00
responseData [ "circuit_code" ] = CircuitCode ;
responseData [ "seconds_since_epoch" ] = ( Int32 ) ( DateTime . UtcNow - new DateTime ( 1970 , 1 , 1 ) ) . TotalSeconds ;
responseData [ "login-flags" ] = loginFlags ;
responseData [ "global-textures" ] = globalTextures ;
responseData [ "seed_capability" ] = seedCapability ;
responseData [ "event_categories" ] = eventCategories ;
2007-07-16 15:40:11 +00:00
responseData [ "event_notifications" ] = new ArrayList ( ) ; // todo
2007-10-30 09:05:31 +00:00
responseData [ "classified_categories" ] = classifiedCategories ;
responseData [ "ui-config" ] = uiConfig ;
2007-07-16 15:40:11 +00:00
2007-10-30 09:05:31 +00:00
responseData [ "inventory-skeleton" ] = agentInventory ;
responseData [ "inventory-skel-lib" ] = inventoryLibrary ;
responseData [ "inventory-root" ] = inventoryRoot ;
2007-11-30 15:27:56 +00:00
responseData [ "inventory-lib-root" ] = inventoryLibRoot ;
2007-09-27 13:25:45 +00:00
responseData [ "gestures" ] = new ArrayList ( ) ; // todo
2007-10-30 09:05:31 +00:00
responseData [ "inventory-lib-owner" ] = inventoryLibraryOwner ;
responseData [ "initial-outfit" ] = initialOutfit ;
responseData [ "start_location" ] = startLocation ;
responseData [ "seed_capability" ] = seedCapability ;
responseData [ "home" ] = home ;
responseData [ "look_at" ] = lookAt ;
responseData [ "message" ] = welcomeMessage ;
responseData [ "region_x" ] = ( Int32 ) RegionX * 256 ;
responseData [ "region_y" ] = ( Int32 ) RegionY * 256 ;
2007-07-16 15:40:11 +00:00
2008-02-22 18:11:10 +00:00
responseData [ "version" ] = clientVersion ; //rex
2007-07-16 15:40:11 +00:00
//responseData["inventory-lib-root"] = new ArrayList(); // todo
2007-11-13 10:47:39 +00:00
if ( m_buddyList ! = null )
{
responseData [ "buddy-list" ] = m_buddyList . ToArray ( ) ;
}
2007-07-16 15:40:11 +00:00
responseData [ "login" ] = "true" ;
2007-10-30 09:05:31 +00:00
xmlRpcResponse . Value = responseData ;
2007-07-16 15:40:11 +00:00
2007-10-30 09:05:31 +00:00
return ( xmlRpcResponse ) ;
2007-07-16 15:40:11 +00:00
}
catch ( Exception e )
{
2007-07-24 03:59:32 +00:00
MainLog . Instance . Warn (
"CLIENT" ,
2007-07-16 15:40:11 +00:00
"LoginResponse: Error creating XML-RPC Response: " + e . Message
2007-10-30 09:05:31 +00:00
) ;
return ( GenerateFailureResponse ( "Internal Error" , "Error generating Login Response" , "false" ) ) ;
2007-07-16 15:40:11 +00:00
}
} // ToXmlRpcResponse
2008-01-05 06:05:25 +00:00
public LLSD ToLLSDResponse ( )
{
try
{
LLSDMap map = new LLSDMap ( ) ;
map [ "first_name" ] = LLSD . FromString ( Firstname ) ;
map [ "last_name" ] = LLSD . FromString ( Lastname ) ;
map [ "agent_access" ] = LLSD . FromString ( agentAccess ) ;
map [ "sim_port" ] = LLSD . FromInteger ( SimPort ) ;
map [ "sim_ip" ] = LLSD . FromString ( SimAddress ) ;
map [ "agent_id" ] = LLSD . FromUUID ( AgentID ) ;
map [ "session_id" ] = LLSD . FromUUID ( SessionID ) ;
map [ "secure_session_id" ] = LLSD . FromUUID ( SecureSessionID ) ;
map [ "circuit_code" ] = LLSD . FromInteger ( CircuitCode ) ;
map [ "seconds_since_epoch" ] = LLSD . FromInteger ( ( int ) ( DateTime . UtcNow - new DateTime ( 1970 , 1 , 1 ) ) . TotalSeconds ) ;
#region Login Flags
LLSDMap loginFlagsLLSD = new LLSDMap ( ) ;
loginFlagsLLSD [ "daylight_savings" ] = LLSD . FromString ( DST ) ;
loginFlagsLLSD [ "stipend_since_login" ] = LLSD . FromString ( StipendSinceLogin ) ;
loginFlagsLLSD [ "gendered" ] = LLSD . FromString ( Gendered ) ;
loginFlagsLLSD [ "ever_logged_in" ] = LLSD . FromString ( EverLoggedIn ) ;
map [ "login-flags" ] = WrapLLSDMap ( loginFlagsLLSD ) ;
#endregion Login Flags
#region Global Textures
LLSDMap globalTexturesLLSD = new LLSDMap ( ) ;
globalTexturesLLSD [ "sun_texture_id" ] = LLSD . FromString ( SunTexture ) ;
globalTexturesLLSD [ "cloud_texture_id" ] = LLSD . FromString ( CloudTexture ) ;
globalTexturesLLSD [ "moon_texture_id" ] = LLSD . FromString ( MoonTexture ) ;
map [ "global-textures" ] = WrapLLSDMap ( globalTexturesLLSD ) ;
#endregion Global Textures
map [ "seed_capability" ] = LLSD . FromString ( seedCapability ) ;
// FIXME: Need a function that will convert these ArrayLists in to LLSDArrays,
// and convert the data inside them to LLSD objects as well
//map["event_categories"] = eventCategories;
//map["event_notifications"] = new LLSDArray(); // todo
//map["classified_categories"] = classifiedCategories;
#region UI Config
LLSDMap uiConfigLLSD = new LLSDMap ( ) ;
uiConfigLLSD [ "allow_first_life" ] = LLSD . FromString ( allowFirstLife ) ;
map [ "ui-config" ] = WrapLLSDMap ( uiConfigLLSD ) ;
#endregion UI Config
#region Inventory
//map["inventory-skeleton"] = agentInventory;
//map["inventory-skel-lib"] = inventoryLibrary;
//map["inventory-root"] = inventoryRoot;
//map["inventory-lib-root"] = inventoryLibRoot;
//map["inventory-lib-owner"] = inventoryLibraryOwner;
#endregion Inventory
map [ "gestures" ] = new LLSDArray ( ) ; // todo
//responseData["initial-outfit"] = initialOutfit;
//responseData["start_location"] = startLocation;
map [ "seed_capability" ] = LLSD . FromString ( seedCapability ) ;
map [ "home" ] = LLSD . FromString ( home ) ;
map [ "look_at" ] = LLSD . FromString ( lookAt ) ;
map [ "message" ] = LLSD . FromString ( welcomeMessage ) ;
map [ "region_x" ] = LLSD . FromInteger ( RegionX * 256 ) ;
map [ "region_y" ] = LLSD . FromInteger ( RegionY * 256 ) ;
2008-02-22 18:11:10 +00:00
map [ "version" ] = LLSD . FromString ( clientVersion ) ; //rex
2008-01-05 06:05:25 +00:00
if ( m_buddyList ! = null )
{
//map["buddy-list"] = m_buddyList.ToArray();
}
map [ "login" ] = LLSD . FromString ( "true" ) ;
return map ;
}
catch ( Exception e )
{
MainLog . Instance . Warn (
"CLIENT" ,
"LoginResponse: Error creating XML-RPC Response: " + e . Message
) ;
return GenerateFailureResponseLLSD ( "Internal Error" , "Error generating Login Response" , "false" ) ;
}
}
private LLSDArray WrapLLSDMap ( LLSDMap wrapMe )
{
LLSDArray array = new LLSDArray ( ) ;
array . Add ( wrapMe ) ;
return array ;
}
2007-07-16 15:40:11 +00:00
public void SetEventCategories ( string category , string value )
{
2007-10-30 09:05:31 +00:00
// this.eventCategoriesHash[category] = value;
2007-07-23 17:22:23 +00:00
//TODO
2007-07-16 15:40:11 +00:00
} // SetEventCategories
public void AddToUIConfig ( string itemName , string item )
{
2007-10-30 09:05:31 +00:00
uiConfigHash [ itemName ] = item ;
2007-07-16 15:40:11 +00:00
} // SetUIConfig
public void AddClassifiedCategory ( Int32 ID , string categoryName )
{
2007-07-23 17:22:23 +00:00
Hashtable hash = new Hashtable ( ) ;
hash [ "category_name" ] = categoryName ;
hash [ "category_id" ] = ID ;
2007-10-30 09:05:31 +00:00
classifiedCategories . Add ( hash ) ;
2007-07-16 15:40:11 +00:00
// this.classifiedCategoriesHash.Clear();
} // SetClassifiedCategory
#region Properties
2007-10-30 09:05:31 +00:00
2007-07-16 15:40:11 +00:00
public string Login
{
2007-10-30 09:05:31 +00:00
get { return login ; }
set { login = value ; }
2007-07-16 15:40:11 +00:00
} // Login
public string DST
{
2007-10-30 09:05:31 +00:00
get { return dst ; }
set { dst = value ; }
2007-07-16 15:40:11 +00:00
} // DST
public string StipendSinceLogin
{
2007-10-30 09:05:31 +00:00
get { return stipendSinceLogin ; }
set { stipendSinceLogin = value ; }
2007-07-16 15:40:11 +00:00
} // StipendSinceLogin
public string Gendered
{
2007-10-30 09:05:31 +00:00
get { return gendered ; }
set { gendered = value ; }
2007-07-16 15:40:11 +00:00
} // Gendered
public string EverLoggedIn
{
2007-10-30 09:05:31 +00:00
get { return everLoggedIn ; }
set { everLoggedIn = value ; }
2007-07-16 15:40:11 +00:00
} // EverLoggedIn
2007-12-06 01:41:41 +00:00
public uint SimPort
2007-07-16 15:40:11 +00:00
{
2007-10-30 09:05:31 +00:00
get { return simPort ; }
set { simPort = value ; }
2007-07-16 15:40:11 +00:00
} // SimPort
public string SimAddress
{
2007-10-30 09:05:31 +00:00
get { return simAddress ; }
set { simAddress = value ; }
2007-07-16 15:40:11 +00:00
} // SimAddress
public LLUUID AgentID
{
2007-10-30 09:05:31 +00:00
get { return agentID ; }
set { agentID = value ; }
2007-07-16 15:40:11 +00:00
} // AgentID
public LLUUID SessionID
{
2007-10-30 09:05:31 +00:00
get { return sessionID ; }
set { sessionID = value ; }
2007-07-16 15:40:11 +00:00
} // SessionID
public LLUUID SecureSessionID
{
2007-10-30 09:05:31 +00:00
get { return secureSessionID ; }
set { secureSessionID = value ; }
2007-07-16 15:40:11 +00:00
} // SecureSessionID
public Int32 CircuitCode
{
2007-10-30 09:05:31 +00:00
get { return circuitCode ; }
set { circuitCode = value ; }
2007-07-16 15:40:11 +00:00
} // CircuitCode
public uint RegionX
{
2007-10-30 09:05:31 +00:00
get { return regionX ; }
set { regionX = value ; }
2007-07-16 15:40:11 +00:00
} // RegionX
public uint RegionY
{
2007-10-30 09:05:31 +00:00
get { return regionY ; }
set { regionY = value ; }
2007-07-16 15:40:11 +00:00
} // RegionY
public string SunTexture
{
2007-10-30 09:05:31 +00:00
get { return sunTexture ; }
set { sunTexture = value ; }
2007-07-16 15:40:11 +00:00
} // SunTexture
public string CloudTexture
{
2007-10-30 09:05:31 +00:00
get { return cloudTexture ; }
set { cloudTexture = value ; }
2007-07-16 15:40:11 +00:00
} // CloudTexture
public string MoonTexture
{
2007-10-30 09:05:31 +00:00
get { return moonTexture ; }
set { moonTexture = value ; }
2007-07-16 15:40:11 +00:00
} // MoonTexture
public string Firstname
{
2007-10-30 09:05:31 +00:00
get { return firstname ; }
set { firstname = value ; }
2007-07-16 15:40:11 +00:00
} // Firstname
public string Lastname
{
2007-10-30 09:05:31 +00:00
get { return lastname ; }
set { lastname = value ; }
2007-07-16 15:40:11 +00:00
} // Lastname
2008-02-22 18:11:10 +00:00
public string ClientVersion
{
get { return clientVersion ; }
set { clientVersion = value ; }
} //REX ClientVersion
2007-07-16 15:40:11 +00:00
public string AgentAccess
{
2007-10-30 09:05:31 +00:00
get { return agentAccess ; }
set { agentAccess = value ; }
2007-07-16 15:40:11 +00:00
}
public string StartLocation
{
2007-10-30 09:05:31 +00:00
get { return startLocation ; }
set { startLocation = value ; }
2007-07-16 15:40:11 +00:00
} // StartLocation
public string LookAt
{
2007-10-30 09:05:31 +00:00
get { return lookAt ; }
set { lookAt = value ; }
2007-07-16 15:40:11 +00:00
}
public string SeedCapability
{
2007-10-30 09:05:31 +00:00
get { return seedCapability ; }
set { seedCapability = value ; }
2007-07-16 15:40:11 +00:00
} // SeedCapability
public string ErrorReason
{
2007-10-30 09:05:31 +00:00
get { return errorReason ; }
set { errorReason = value ; }
2007-07-16 15:40:11 +00:00
} // ErrorReason
public string ErrorMessage
{
2007-10-30 09:05:31 +00:00
get { return errorMessage ; }
set { errorMessage = value ; }
2007-07-16 15:40:11 +00:00
} // ErrorMessage
public ArrayList InventoryRoot
{
2007-10-30 09:05:31 +00:00
get { return inventoryRoot ; }
set { inventoryRoot = value ; }
2007-07-16 15:40:11 +00:00
}
public ArrayList InventorySkeleton
{
2007-10-30 09:05:31 +00:00
get { return agentInventory ; }
set { agentInventory = value ; }
2007-07-16 15:40:11 +00:00
}
2007-09-27 14:57:43 +00:00
public ArrayList InventoryLibrary
2007-07-25 18:19:38 +00:00
{
2007-10-30 09:05:31 +00:00
get { return inventoryLibrary ; }
set { inventoryLibrary = value ; }
2007-07-25 18:19:38 +00:00
}
public ArrayList InventoryLibraryOwner
{
2007-10-30 09:05:31 +00:00
get { return inventoryLibraryOwner ; }
set { inventoryLibraryOwner = value ; }
2007-07-25 18:19:38 +00:00
}
2007-11-30 15:27:56 +00:00
public ArrayList InventoryLibRoot
{
get { return inventoryLibRoot ; }
set { inventoryLibRoot = value ; }
}
2007-07-16 15:40:11 +00:00
public string Home
{
2007-10-30 09:05:31 +00:00
get { return home ; }
set { home = value ; }
2007-07-16 15:40:11 +00:00
}
public string Message
{
2007-10-30 09:05:31 +00:00
get { return welcomeMessage ; }
set { welcomeMessage = value ; }
2007-07-16 15:40:11 +00:00
}
2007-12-27 21:41:48 +00:00
public BuddyList BuddList
2007-11-13 10:47:39 +00:00
{
2007-12-27 21:41:48 +00:00
get { return m_buddyList ; }
2007-11-13 10:47:39 +00:00
set { m_buddyList = value ; }
}
2007-10-30 09:05:31 +00:00
# endregion
2007-07-16 15:40:11 +00:00
public class UserInfo
{
public string firstname ;
public string lastname ;
public ulong homeregionhandle ;
public LLVector3 homepos ;
public LLVector3 homelookat ;
}
2007-11-13 10:47:39 +00:00
public class BuddyList
{
public List < BuddyInfo > Buddies = new List < BuddyInfo > ( ) ;
public void AddNewBuddy ( BuddyInfo buddy )
{
if ( ! Buddies . Contains ( buddy ) )
{
Buddies . Add ( buddy ) ;
}
}
public ArrayList ToArray ( )
{
ArrayList buddyArray = new ArrayList ( ) ;
foreach ( BuddyInfo buddy in Buddies )
{
buddyArray . Add ( buddy . ToHashTable ( ) ) ;
}
return buddyArray ;
}
public class BuddyInfo
{
public int BuddyRightsHave = 1 ;
public int BuddyRightsGiven = 1 ;
public LLUUID BuddyID ;
public BuddyInfo ( string buddyID )
{
BuddyID = new LLUUID ( buddyID ) ;
}
public BuddyInfo ( LLUUID buddyID )
{
BuddyID = buddyID ;
}
public Hashtable ToHashTable ( )
{
Hashtable hTable = new Hashtable ( ) ;
hTable [ "buddy_rights_has" ] = BuddyRightsHave ;
hTable [ "buddy_rights_given" ] = BuddyRightsGiven ;
2007-12-20 05:43:02 +00:00
hTable [ "buddy_id" ] = BuddyID . ToString ( ) ;
2007-11-13 10:47:39 +00:00
return hTable ;
}
}
}
2007-07-16 15:40:11 +00:00
}
2008-01-05 06:05:25 +00:00
}