mirror of
https://github.com/opensim/opensim.git
synced 2026-08-07 17:55:48 +08:00
Renamed the new Directories. (removed the "-Source" from the end of them)
This commit is contained in:
83
OpenGridServices/OpenGrid.Framework.Data/GridData.cs
Normal file
83
OpenGridServices/OpenGrid.Framework.Data/GridData.cs
Normal file
@@ -0,0 +1,83 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace OpenGrid.Framework.Data
|
||||
{
|
||||
public enum DataResponse
|
||||
{
|
||||
RESPONSE_OK,
|
||||
RESPONSE_AUTHREQUIRED,
|
||||
RESPONSE_INVALIDCREDENTIALS,
|
||||
RESPONSE_ERROR
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// A standard grid interface
|
||||
/// </summary>
|
||||
public interface IGridData
|
||||
{
|
||||
/// <summary>
|
||||
/// Returns a sim profile from a regionHandle
|
||||
/// </summary>
|
||||
/// <param name="regionHandle">A 64bit Region Handle</param>
|
||||
/// <returns>A simprofile</returns>
|
||||
SimProfileData GetProfileByHandle(ulong regionHandle);
|
||||
|
||||
/// <summary>
|
||||
/// Returns a sim profile from a UUID
|
||||
/// </summary>
|
||||
/// <param name="UUID">A 128bit UUID</param>
|
||||
/// <returns>A sim profile</returns>
|
||||
SimProfileData GetProfileByLLUUID(libsecondlife.LLUUID UUID);
|
||||
|
||||
/// <summary>
|
||||
/// Returns all profiles within the specified range
|
||||
/// </summary>
|
||||
/// <param name="Xmin">Minimum sim coordinate (X)</param>
|
||||
/// <param name="Ymin">Minimum sim coordinate (Y)</param>
|
||||
/// <param name="Xmax">Maximum sim coordinate (X)</param>
|
||||
/// <param name="Ymin">Maximum sim coordinate (Y)</param>
|
||||
/// <returns>An array containing all the sim profiles in the specified range</returns>
|
||||
SimProfileData[] GetProfilesInRange(uint Xmin, uint Ymin, uint Xmax, uint Ymax);
|
||||
|
||||
/// <summary>
|
||||
/// Authenticates a sim by use of it's recv key.
|
||||
/// WARNING: Insecure
|
||||
/// </summary>
|
||||
/// <param name="UUID">The UUID sent by the sim</param>
|
||||
/// <param name="regionHandle">The regionhandle sent by the sim</param>
|
||||
/// <param name="simrecvkey">The recieving key sent by the sim</param>
|
||||
/// <returns>Whether the sim has been authenticated</returns>
|
||||
bool AuthenticateSim(libsecondlife.LLUUID UUID, ulong regionHandle, string simrecvkey);
|
||||
|
||||
/// <summary>
|
||||
/// Initialises the interface
|
||||
/// </summary>
|
||||
void Initialise();
|
||||
|
||||
/// <summary>
|
||||
/// Closes the interface
|
||||
/// </summary>
|
||||
void Close();
|
||||
|
||||
/// <summary>
|
||||
/// The plugin being loaded
|
||||
/// </summary>
|
||||
/// <returns>A string containing the plugin name</returns>
|
||||
string getName();
|
||||
|
||||
/// <summary>
|
||||
/// The plugins version
|
||||
/// </summary>
|
||||
/// <returns>A string containing the plugin version</returns>
|
||||
string getVersion();
|
||||
|
||||
/// <summary>
|
||||
/// Adds a new profile to the database
|
||||
/// </summary>
|
||||
/// <param name="profile">The profile to add</param>
|
||||
/// <returns>RESPONSE_OK if successful, error if not.</returns>
|
||||
DataResponse AddProfile(SimProfileData profile);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,104 @@
|
||||
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup>
|
||||
<ProjectType>Local</ProjectType>
|
||||
<ProductVersion>8.0.50727</ProductVersion>
|
||||
<SchemaVersion>2.0</SchemaVersion>
|
||||
<ProjectGuid>{62CDF671-0000-0000-0000-000000000000}</ProjectGuid>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||
<ApplicationIcon></ApplicationIcon>
|
||||
<AssemblyKeyContainerName>
|
||||
</AssemblyKeyContainerName>
|
||||
<AssemblyName>OpenGrid.Framework.Data</AssemblyName>
|
||||
<DefaultClientScript>JScript</DefaultClientScript>
|
||||
<DefaultHTMLPageLayout>Grid</DefaultHTMLPageLayout>
|
||||
<DefaultTargetSchema>IE50</DefaultTargetSchema>
|
||||
<DelaySign>false</DelaySign>
|
||||
<OutputType>Library</OutputType>
|
||||
<AppDesignerFolder></AppDesignerFolder>
|
||||
<RootNamespace>OpenGrid.Framework.Data</RootNamespace>
|
||||
<StartupObject></StartupObject>
|
||||
<FileUpgradeFlags>
|
||||
</FileUpgradeFlags>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<AllowUnsafeBlocks>False</AllowUnsafeBlocks>
|
||||
<BaseAddress>285212672</BaseAddress>
|
||||
<CheckForOverflowUnderflow>False</CheckForOverflowUnderflow>
|
||||
<ConfigurationOverrideFile>
|
||||
</ConfigurationOverrideFile>
|
||||
<DefineConstants>TRACE;DEBUG</DefineConstants>
|
||||
<DocumentationFile></DocumentationFile>
|
||||
<DebugSymbols>True</DebugSymbols>
|
||||
<FileAlignment>4096</FileAlignment>
|
||||
<Optimize>False</Optimize>
|
||||
<OutputPath>..\bin\</OutputPath>
|
||||
<RegisterForComInterop>False</RegisterForComInterop>
|
||||
<RemoveIntegerChecks>False</RemoveIntegerChecks>
|
||||
<TreatWarningsAsErrors>False</TreatWarningsAsErrors>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<NoWarn></NoWarn>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||
<AllowUnsafeBlocks>False</AllowUnsafeBlocks>
|
||||
<BaseAddress>285212672</BaseAddress>
|
||||
<CheckForOverflowUnderflow>False</CheckForOverflowUnderflow>
|
||||
<ConfigurationOverrideFile>
|
||||
</ConfigurationOverrideFile>
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<DocumentationFile></DocumentationFile>
|
||||
<DebugSymbols>False</DebugSymbols>
|
||||
<FileAlignment>4096</FileAlignment>
|
||||
<Optimize>True</Optimize>
|
||||
<OutputPath>..\bin\</OutputPath>
|
||||
<RegisterForComInterop>False</RegisterForComInterop>
|
||||
<RemoveIntegerChecks>False</RemoveIntegerChecks>
|
||||
<TreatWarningsAsErrors>False</TreatWarningsAsErrors>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<NoWarn></NoWarn>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="System" >
|
||||
<HintPath>System.dll</HintPath>
|
||||
<Private>False</Private>
|
||||
</Reference>
|
||||
<Reference Include="System.Xml" >
|
||||
<HintPath>System.Xml.dll</HintPath>
|
||||
<Private>False</Private>
|
||||
</Reference>
|
||||
<Reference Include="System.Data" >
|
||||
<HintPath>System.Data.dll</HintPath>
|
||||
<Private>False</Private>
|
||||
</Reference>
|
||||
<Reference Include="libsecondlife.dll" >
|
||||
<HintPath>..\bin\libsecondlife.dll</HintPath>
|
||||
<Private>False</Private>
|
||||
</Reference>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="GridData.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="SimProfileData.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="UserData.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="UserProfileData.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Properties\AssemblyInfo.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildBinPath)\Microsoft.CSHARP.Targets" />
|
||||
<PropertyGroup>
|
||||
<PreBuildEvent>
|
||||
</PreBuildEvent>
|
||||
<PostBuildEvent>
|
||||
</PostBuildEvent>
|
||||
</PropertyGroup>
|
||||
</Project>
|
||||
@@ -0,0 +1,12 @@
|
||||
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||
<ReferencePath>C:\New Folder\second-life-viewer\opensim-dailys2\opensim15-07\bin\</ReferencePath>
|
||||
<LastOpenVersion>8.0.50727</LastOpenVersion>
|
||||
<ProjectView>ProjectFiles</ProjectView>
|
||||
<ProjectTrust>0</ProjectTrust>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition = " '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' " />
|
||||
<PropertyGroup Condition = " '$(Configuration)|$(Platform)' == 'Release|AnyCPU' " />
|
||||
</Project>
|
||||
@@ -0,0 +1,46 @@
|
||||
<?xml version="1.0" ?>
|
||||
<project name="OpenGrid.Framework.Data" default="build">
|
||||
<target name="build">
|
||||
<echo message="Build Directory is ${project::get-base-directory()}/${build.dir}" />
|
||||
<mkdir dir="${project::get-base-directory()}/${build.dir}" />
|
||||
<copy todir="${project::get-base-directory()}/${build.dir}">
|
||||
<fileset basedir="${project::get-base-directory()}">
|
||||
</fileset>
|
||||
</copy>
|
||||
<csc target="library" debug="${build.debug}" unsafe="False" define="TRACE;DEBUG" output="${project::get-base-directory()}/${build.dir}/${project::get-name()}.dll">
|
||||
<resources prefix="OpenGrid.Framework.Data" dynamicprefix="true" >
|
||||
</resources>
|
||||
<sources failonempty="true">
|
||||
<include name="GridData.cs" />
|
||||
<include name="SimProfileData.cs" />
|
||||
<include name="UserData.cs" />
|
||||
<include name="UserProfileData.cs" />
|
||||
<include name="Properties/AssemblyInfo.cs" />
|
||||
</sources>
|
||||
<references basedir="${project::get-base-directory()}">
|
||||
<lib>
|
||||
<include name="${project::get-base-directory()}" />
|
||||
<include name="${project::get-base-directory()}/${build.dir}" />
|
||||
</lib>
|
||||
<include name="System.dll" />
|
||||
<include name="System.Xml.dll" />
|
||||
<include name="System.Data.dll" />
|
||||
<include name="../bin/libsecondlife.dll" />
|
||||
</references>
|
||||
</csc>
|
||||
<echo message="Copying from [${project::get-base-directory()}/${build.dir}/] to [${project::get-base-directory()}/../bin/" />
|
||||
<mkdir dir="${project::get-base-directory()}/../bin/"/>
|
||||
<copy todir="${project::get-base-directory()}/../bin/">
|
||||
<fileset basedir="${project::get-base-directory()}/${build.dir}/" >
|
||||
<include name="*.dll"/>
|
||||
<include name="*.exe"/>
|
||||
</fileset>
|
||||
</copy>
|
||||
</target>
|
||||
<target name="clean">
|
||||
<delete dir="${bin.dir}" failonerror="false" />
|
||||
<delete dir="${obj.dir}" failonerror="false" />
|
||||
</target>
|
||||
<target name="doc" description="Creates documentation.">
|
||||
</target>
|
||||
</project>
|
||||
@@ -0,0 +1,35 @@
|
||||
using System.Reflection;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
// General Information about an assembly is controlled through the following
|
||||
// set of attributes. Change these attribute values to modify the information
|
||||
// associated with an assembly.
|
||||
[assembly: AssemblyTitle("OpenGrid.Framework.Data")]
|
||||
[assembly: AssemblyDescription("")]
|
||||
[assembly: AssemblyConfiguration("")]
|
||||
[assembly: AssemblyCompany("")]
|
||||
[assembly: AssemblyProduct("OpenGrid.Framework.Data")]
|
||||
[assembly: AssemblyCopyright("Copyright © 2007")]
|
||||
[assembly: AssemblyTrademark("")]
|
||||
[assembly: AssemblyCulture("")]
|
||||
|
||||
// Setting ComVisible to false makes the types in this assembly not visible
|
||||
// to COM components. If you need to access a type in this assembly from
|
||||
// COM, set the ComVisible attribute to true on that type.
|
||||
[assembly: ComVisible(false)]
|
||||
|
||||
// The following GUID is for the ID of the typelib if this project is exposed to COM
|
||||
[assembly: Guid("3a711c34-b0c0-4264-b0fe-f366eabf9d7b")]
|
||||
|
||||
// Version information for an assembly consists of the following four values:
|
||||
//
|
||||
// Major Version
|
||||
// Minor Version
|
||||
// Build Number
|
||||
// Revision
|
||||
//
|
||||
// You can specify all the values or you can default the Revision and Build Numbers
|
||||
// by using the '*' as shown below:
|
||||
[assembly: AssemblyVersion("1.0.0.0")]
|
||||
[assembly: AssemblyFileVersion("1.0.0.0")]
|
||||
84
OpenGridServices/OpenGrid.Framework.Data/SimProfileData.cs
Normal file
84
OpenGridServices/OpenGrid.Framework.Data/SimProfileData.cs
Normal file
@@ -0,0 +1,84 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace OpenGrid.Framework.Data
|
||||
{
|
||||
public class SimProfileData
|
||||
{
|
||||
/// <summary>
|
||||
/// The name of the region
|
||||
/// </summary>
|
||||
public string regionName = "";
|
||||
|
||||
/// <summary>
|
||||
/// A 64-bit number combining map position into a (mostly) unique ID
|
||||
/// </summary>
|
||||
public ulong regionHandle;
|
||||
|
||||
/// <summary>
|
||||
/// OGS/OpenSim Specific ID for a region
|
||||
/// </summary>
|
||||
public libsecondlife.LLUUID UUID;
|
||||
|
||||
/// <summary>
|
||||
/// Coordinates of the region
|
||||
/// </summary>
|
||||
public uint regionLocX;
|
||||
public uint regionLocY;
|
||||
public uint regionLocZ; // Reserved (round-robin, layers, etc)
|
||||
|
||||
/// <summary>
|
||||
/// Authentication secrets
|
||||
/// </summary>
|
||||
/// <remarks>Not very secure, needs improvement.</remarks>
|
||||
public string regionSendKey = "";
|
||||
public string regionRecvKey = "";
|
||||
public string regionSecret = "";
|
||||
|
||||
/// <summary>
|
||||
/// Whether the region is online
|
||||
/// </summary>
|
||||
public bool regionOnline;
|
||||
|
||||
/// <summary>
|
||||
/// Information about the server that the region is currently hosted on
|
||||
/// </summary>
|
||||
public string serverIP = "";
|
||||
public uint serverPort;
|
||||
public string serverURI = "";
|
||||
|
||||
/// <summary>
|
||||
/// Set of optional overrides. Can be used to create non-eulicidean spaces.
|
||||
/// </summary>
|
||||
public ulong regionNorthOverrideHandle;
|
||||
public ulong regionSouthOverrideHandle;
|
||||
public ulong regionEastOverrideHandle;
|
||||
public ulong regionWestOverrideHandle;
|
||||
|
||||
/// <summary>
|
||||
/// Optional: URI Location of the region database
|
||||
/// </summary>
|
||||
/// <remarks>Used for floating sim pools where the region data is not nessecarily coupled to a specific server</remarks>
|
||||
public string regionDataURI = "";
|
||||
|
||||
/// <summary>
|
||||
/// Region Asset Details
|
||||
/// </summary>
|
||||
public string regionAssetURI = "";
|
||||
public string regionAssetSendKey = "";
|
||||
public string regionAssetRecvKey = "";
|
||||
|
||||
/// <summary>
|
||||
/// Region Userserver Details
|
||||
/// </summary>
|
||||
public string regionUserURI = "";
|
||||
public string regionUserSendKey = "";
|
||||
public string regionUserRecvKey = "";
|
||||
|
||||
/// <summary>
|
||||
/// Region Map Texture Asset
|
||||
/// </summary>
|
||||
public libsecondlife.LLUUID regionMapTextureID = new libsecondlife.LLUUID("00000000-0000-0000-9999-000000000006");
|
||||
}
|
||||
}
|
||||
89
OpenGridServices/OpenGrid.Framework.Data/UserData.cs
Normal file
89
OpenGridServices/OpenGrid.Framework.Data/UserData.cs
Normal file
@@ -0,0 +1,89 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using libsecondlife;
|
||||
|
||||
namespace OpenGrid.Framework.Data
|
||||
{
|
||||
public interface IUserData
|
||||
{
|
||||
/// <summary>
|
||||
/// Returns a user profile from a database via their UUID
|
||||
/// </summary>
|
||||
/// <param name="user">The accounts UUID</param>
|
||||
/// <returns>The user data profile</returns>
|
||||
UserProfileData getUserByUUID(LLUUID user);
|
||||
|
||||
/// <summary>
|
||||
/// Returns a users profile by searching their username
|
||||
/// </summary>
|
||||
/// <param name="name">The users username</param>
|
||||
/// <returns>The user data profile</returns>
|
||||
UserProfileData getUserByName(string name);
|
||||
|
||||
/// <summary>
|
||||
/// Returns a users profile by searching their username parts
|
||||
/// </summary>
|
||||
/// <param name="fname">Account firstname</param>
|
||||
/// <param name="lname">Account lastname</param>
|
||||
/// <returns>The user data profile</returns>
|
||||
UserProfileData getUserByName(string fname, string lname);
|
||||
|
||||
/// <summary>
|
||||
/// Returns the current agent for a user searching by it's UUID
|
||||
/// </summary>
|
||||
/// <param name="user">The users UUID</param>
|
||||
/// <returns>The current agent session</returns>
|
||||
UserAgentData getAgentByUUID(LLUUID user);
|
||||
|
||||
/// <summary>
|
||||
/// Returns the current session agent for a user searching by username
|
||||
/// </summary>
|
||||
/// <param name="name">The users account name</param>
|
||||
/// <returns>The current agent session</returns>
|
||||
UserAgentData getAgentByName(string name);
|
||||
|
||||
/// <summary>
|
||||
/// Returns the current session agent for a user searching by username parts
|
||||
/// </summary>
|
||||
/// <param name="fname">The users first account name</param>
|
||||
/// <param name="lname">The users account surname</param>
|
||||
/// <returns>The current agent session</returns>
|
||||
UserAgentData getAgentByName(string fname, string lname);
|
||||
|
||||
/// <summary>
|
||||
/// Attempts to move currency units between accounts (NOT RELIABLE / TRUSTWORTHY. DONT TRY RUN YOUR OWN CURRENCY EXCHANGE WITH REAL VALUES)
|
||||
/// </summary>
|
||||
/// <param name="from">The account to transfer from</param>
|
||||
/// <param name="to">The account to transfer to</param>
|
||||
/// <param name="amount">The amount to transfer</param>
|
||||
/// <returns>Successful?</returns>
|
||||
bool moneyTransferRequest(LLUUID from, LLUUID to, uint amount);
|
||||
|
||||
/// <summary>
|
||||
/// Attempts to move inventory between accounts, if inventory is copyable it will be copied into the target account.
|
||||
/// </summary>
|
||||
/// <param name="from">User to transfer from</param>
|
||||
/// <param name="to">User to transfer to</param>
|
||||
/// <param name="inventory">Specified inventory item</param>
|
||||
/// <returns>Successful?</returns>
|
||||
bool inventoryTransferRequest(LLUUID from, LLUUID to, LLUUID inventory);
|
||||
|
||||
/// <summary>
|
||||
/// Returns the plugin version
|
||||
/// </summary>
|
||||
/// <returns>Plugin version in MAJOR.MINOR.REVISION.BUILD format</returns>
|
||||
string getVersion();
|
||||
|
||||
/// <summary>
|
||||
/// Returns the plugin name
|
||||
/// </summary>
|
||||
/// <returns>Plugin name, eg MySQL User Provider</returns>
|
||||
string getName();
|
||||
|
||||
/// <summary>
|
||||
/// Initialises the plugin (artificial constructor)
|
||||
/// </summary>
|
||||
void Initialise();
|
||||
}
|
||||
}
|
||||
54
OpenGridServices/OpenGrid.Framework.Data/UserProfileData.cs
Normal file
54
OpenGridServices/OpenGrid.Framework.Data/UserProfileData.cs
Normal file
@@ -0,0 +1,54 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using libsecondlife;
|
||||
|
||||
namespace OpenGrid.Framework.Data
|
||||
{
|
||||
public class UserProfileData
|
||||
{
|
||||
public LLUUID UUID;
|
||||
public string username; // The configurable part of the users username
|
||||
public string surname; // The users surname (can be used to indicate user class - eg 'Test User' or 'Test Admin')
|
||||
|
||||
public string passwordHash; // Hash of the users password
|
||||
public string passwordSalt; // Salt for the users password
|
||||
|
||||
public ulong homeRegion; // RegionHandle of home
|
||||
public LLVector3 homeLocation; // Home Location inside the sim
|
||||
public LLVector3 homeLookAt; // Coordinates where the user is looking
|
||||
|
||||
|
||||
public int created; // UNIX Epoch Timestamp (User Creation)
|
||||
public int lastLogin; // UNIX Epoch Timestamp (Last Login Time)
|
||||
|
||||
public string userInventoryURI; // URI to inventory server for this user
|
||||
public string userAssetURI; // URI to asset server for this user
|
||||
|
||||
public uint profileCanDoMask; // Profile window "I can do" mask
|
||||
public uint profileWantDoMask; // Profile window "I want to" mask
|
||||
|
||||
public string profileAboutText; // My about window text
|
||||
public string profileFirstText; // First Life Text
|
||||
|
||||
public LLUUID profileImage; // My avatars profile image
|
||||
public LLUUID profileFirstImage; // First-life image
|
||||
public UserAgentData currentAgent; // The users last agent
|
||||
}
|
||||
|
||||
public class UserAgentData
|
||||
{
|
||||
public LLUUID UUID; // Account ID
|
||||
public string agentIP; // The IP of the agent
|
||||
public uint agentPort; // The port of the agent
|
||||
public bool agentOnline; // The online status of the agent
|
||||
public LLUUID sessionID; // The session ID for the agent (used by client)
|
||||
public LLUUID secureSessionID; // The secure session ID for the agent (used by client)
|
||||
public LLUUID regionID; // The region ID the agent occupies
|
||||
public int loginTime; // EPOCH based Timestamp
|
||||
public int logoutTime; // Timestamp or 0 if N/A
|
||||
public LLUUID currentRegion; // UUID of the users current region
|
||||
public ulong currentHandle; // RegionHandle of the users current region
|
||||
public LLVector3 currentPos; // Current position in the region
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user