mirror of
https://github.com/OpenSim-NGC/OpenSim-Sasquatch.git
synced 2024-11-21 06:26:09 -07:00
Features/upstream-08062024 (#84)
* also add default uuid zero string to mysql and pgsql pbr entries * add llDerezObject(..) * update ScriptSyntax * Postgresql Fixes: region store, mutelist and generic table handler. Signed-off-by: UbitUmarov <ajlduarte@sapo.pt> * Fix wrong primary key on telehub spawn points. With the RegionUUID being created as a unique primary key only one spawn point could be created. Replaced the primary key with one using multiple columns to guarantee that each spawn point occupies a unique space in the region. Signed-off-by: UbitUmarov <ajlduarte@sapo.pt> * Fix region data loading to prevent deletion of telehub spawnpoints Signed-off-by: UbitUmarov <ajlduarte@sapo.pt> * Adding missing 'regionextra' table and associated handlers to the PgSQL adapter. Signed-off-by: UbitUmarov <ajlduarte@sapo.pt> * viewers now are sending a useless flood of agent updates. Ignore some * fix shared group object item modify permission check * Add llGetNotecardLineSync * a few changes to llGetNotecardLineSync * minor cleanup * fix typo * improve script cpu time resolution specially on windows * catch some possible null refs * mantis 9135: avoid null ref * Get Npgsql from NuGet and remove the hard coded version. Upgrade to 8.0.3 so its compatible with dotnet 8. Remove the copy from bin. --------- Signed-off-by: UbitUmarov <ajlduarte@sapo.pt> Co-authored-by: UbitUmarov <ajlduarte@sapo.pt> Co-authored-by: BlueWall <jamesh@bluewallvirtual.com> Co-authored-by: Sue Cripter <Sue.Cripter@gmail.com>
This commit is contained in:
parent
d64ff145cd
commit
9bd83b5593
21 changed files with 586 additions and 286 deletions
|
@ -81,6 +81,7 @@
|
|||
<Compile Remove="PGSQL\PGSQLInventoryData.cs" />
|
||||
<Compile Remove="PGSQL\PGSQLManager.cs" />
|
||||
<Compile Remove="PGSQL\PGSQLMigration.cs" />
|
||||
<Compile Remove="PGSQL\PGSQLMutelistData.cs" />
|
||||
<Compile Remove="PGSQL\PGSQLOfflineIMData.cs" />
|
||||
<Compile Remove="PGSQL\PGSQLPresenceData.cs" />
|
||||
<Compile Remove="PGSQL\PGSQLRegionData.cs" />
|
||||
|
|
|
@ -7,10 +7,6 @@
|
|||
<Copyright>Copyright (c) OpenSimulator.org Developers 2007-2009</Copyright>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="Npgsql">
|
||||
<HintPath>..\..\..\bin\Npgsql.dll</HintPath>
|
||||
<Private>False</Private>
|
||||
</Reference>
|
||||
<Reference Include="OpenMetaverse">
|
||||
<HintPath>..\..\..\bin\OpenMetaverse.dll</HintPath>
|
||||
<Private>False</Private>
|
||||
|
@ -56,6 +52,7 @@
|
|||
<PackageReference Include="log4net" Version="2.0.15" />
|
||||
<PackageReference Include="Mono.Addins" Version="1.4.1" />
|
||||
<PackageReference Include="Mono.Addins.CecilReflector" Version="1.4.1" />
|
||||
<PackageReference Include="Npgsql" Version="8.0.3" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Folder Include="Properties\" />
|
||||
|
|
|
@ -35,6 +35,7 @@ using OpenSim.Framework;
|
|||
using OpenSim.Region.Framework.Interfaces;
|
||||
using System.Text;
|
||||
using Npgsql;
|
||||
using NpgsqlTypes;
|
||||
|
||||
namespace OpenSim.Data.PGSQL
|
||||
{
|
||||
|
@ -59,8 +60,8 @@ namespace OpenSim.Data.PGSQL
|
|||
get { return GetType().Assembly; }
|
||||
}
|
||||
|
||||
public PGSQLGenericTableHandler(string connectionString,
|
||||
string realm, string storeName)
|
||||
public PGSQLGenericTableHandler(
|
||||
string connectionString, string realm, string storeName)
|
||||
: base(connectionString)
|
||||
{
|
||||
m_Realm = realm;
|
||||
|
@ -534,7 +535,7 @@ namespace OpenSim.Data.PGSQL
|
|||
{
|
||||
for (int i = 0; i < fields.Length; i++)
|
||||
{
|
||||
cmd.Parameters.AddWithValue(fields[i], keys[i]);
|
||||
cmd.Parameters.AddWithValue(fields[i], new Guid(keys[i]));
|
||||
terms.Add("\"" + fields[i] + "\" = :" + fields[i]);
|
||||
}
|
||||
|
||||
|
|
72
OpenSim/Data/PGSQL/PGSQLMuteListData.cs
Normal file
72
OpenSim/Data/PGSQL/PGSQLMuteListData.cs
Normal file
|
@ -0,0 +1,72 @@
|
|||
/*
|
||||
* 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 OpenSimulator 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.
|
||||
*/
|
||||
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.Reflection;
|
||||
using OpenSim.Framework;
|
||||
using OpenMetaverse;
|
||||
using Npgsql;
|
||||
|
||||
namespace OpenSim.Data.PGSQL
|
||||
{
|
||||
public class PGSQLMuteListData: PGSQLGenericTableHandler<MuteData>, IMuteListData
|
||||
{
|
||||
public PGSQLMuteListData(string connectionString)
|
||||
: base(connectionString, "MuteList", "MuteListStore")
|
||||
{
|
||||
}
|
||||
|
||||
public MuteData[] Get(UUID agentID)
|
||||
{
|
||||
var data = base.Get("AgentID", agentID.ToString());
|
||||
return data;
|
||||
}
|
||||
|
||||
public bool Delete(UUID agentID, UUID muteID, string muteName)
|
||||
{
|
||||
var query = $"DELETE FROM MuteList WHERE \"AgentID\" = :AgentID and " +
|
||||
$"\"MuteID\" = :MuteID and " +
|
||||
$"\"MuteName\" = :MuteName";
|
||||
|
||||
using (NpgsqlConnection conn = new NpgsqlConnection(m_ConnectionString))
|
||||
using (NpgsqlCommand cmd = new NpgsqlCommand())
|
||||
{
|
||||
cmd.CommandText = query;
|
||||
cmd.Parameters.AddWithValue(":AgentID", agentID.ToString());
|
||||
cmd.Parameters.AddWithValue(":MuteID", muteID.ToString());
|
||||
cmd.Parameters.AddWithValue("MuteName", muteName);
|
||||
cmd.Connection = conn;
|
||||
conn.Open();
|
||||
cmd.ExecuteNonQuery();
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -39,6 +39,7 @@ using OpenSim.Region.Framework.Interfaces;
|
|||
using OpenSim.Region.Framework.Scenes;
|
||||
using OpenSim.Data;
|
||||
using Npgsql;
|
||||
using NpgsqlTypes;
|
||||
|
||||
namespace OpenSim.Data.PGSQL
|
||||
{
|
||||
|
@ -778,7 +779,7 @@ namespace OpenSim.Data.PGSQL
|
|||
cmd.ExecuteNonQuery();
|
||||
}
|
||||
|
||||
sql = @"INSERT INTO landaccesslist (""LandUUID"",""AccessUUID"",""LandFlags"",""Expires"") VALUES (:LandUUID,:AccessUUID,:Flags,:Expires)";
|
||||
sql = @"INSERT INTO landaccesslist (""LandUUID"",""AccessUUID"",""Flags"",""Expires"") VALUES (:LandUUID,:AccessUUID,:Flags,:Expires)";
|
||||
|
||||
using (NpgsqlConnection conn = new NpgsqlConnection(m_connectionString))
|
||||
using (NpgsqlCommand cmd = new NpgsqlCommand(sql, conn))
|
||||
|
@ -890,7 +891,7 @@ namespace OpenSim.Data.PGSQL
|
|||
public RegionSettings LoadRegionSettings(UUID regionUUID)
|
||||
{
|
||||
string sql = @"select * from regionsettings where ""regionUUID"" = :regionUUID";
|
||||
RegionSettings regionSettings;
|
||||
RegionSettings regionSettings = null;
|
||||
using (NpgsqlConnection conn = new NpgsqlConnection(m_connectionString))
|
||||
using (NpgsqlCommand cmd = new NpgsqlCommand(sql, conn))
|
||||
{
|
||||
|
@ -902,10 +903,13 @@ namespace OpenSim.Data.PGSQL
|
|||
{
|
||||
regionSettings = BuildRegionSettings(reader);
|
||||
regionSettings.OnSave += StoreRegionSettings;
|
||||
|
||||
return regionSettings;
|
||||
}
|
||||
}
|
||||
if (regionSettings != null)
|
||||
{
|
||||
LoadSpawnPoints(regionSettings);
|
||||
return regionSettings;
|
||||
}
|
||||
}
|
||||
|
||||
//If we reach this point then there are new region settings for that region
|
||||
|
@ -914,7 +918,8 @@ namespace OpenSim.Data.PGSQL
|
|||
regionSettings.OnSave += StoreRegionSettings;
|
||||
|
||||
//Store new values
|
||||
StoreNewRegionSettings(regionSettings);
|
||||
// StoreNewRegionSettings(regionSettings);
|
||||
StoreRegionSettings(regionSettings);
|
||||
|
||||
LoadSpawnPoints(regionSettings);
|
||||
|
||||
|
@ -922,51 +927,69 @@ namespace OpenSim.Data.PGSQL
|
|||
}
|
||||
|
||||
/// <summary>
|
||||
/// Store region settings, need to check if the check is really necesary. If we can make something for creating new region.
|
||||
/// Store region settings
|
||||
/// </summary>
|
||||
/// <param name="regionSettings">region settings.</param>
|
||||
public void StoreRegionSettings(RegionSettings regionSettings)
|
||||
{
|
||||
//Little check if regionUUID already exist in DB
|
||||
string regionUUID;
|
||||
string sql = @"SELECT ""regionUUID"" FROM regionsettings WHERE ""regionUUID"" = :regionUUID";
|
||||
using (NpgsqlConnection conn = new NpgsqlConnection(m_connectionString))
|
||||
using (NpgsqlCommand cmd = new NpgsqlCommand(sql, conn))
|
||||
{
|
||||
cmd.Parameters.Add(_Database.CreateParameter("regionUUID", regionSettings.RegionUUID));
|
||||
conn.Open();
|
||||
regionUUID = cmd.ExecuteScalar().ToString();
|
||||
}
|
||||
const string queryString = """
|
||||
INSERT INTO regionsettings ( "regionUUID", block_terraform, block_fly, allow_damage, restrict_pushing,
|
||||
allow_land_resell, allow_land_join_divide, block_show_in_search, agent_limit, object_bonus,
|
||||
maturity, disable_scripts, disable_collisions, disable_physics, terrain_texture_1, terrain_texture_2,
|
||||
terrain_texture_3, terrain_texture_4, elevation_1_nw, elevation_2_nw, elevation_1_ne, elevation_2_ne,
|
||||
elevation_1_se, elevation_2_se, elevation_1_sw, elevation_2_sw, water_height, terrain_raise_limit,
|
||||
terrain_lower_limit, use_estate_sun, fixed_sun, sun_position, covenant, covenant_datetime, "Sandbox",
|
||||
sunvectorx, sunvectory, sunvectorz, loaded_creation_datetime, loaded_creation_id, "map_tile_ID",
|
||||
block_search, casino, "TelehubObject", "parcel_tile_ID", "cacheID", "TerrainPBR1", "TerrainPBR2",
|
||||
"TerrainPBR3", "TerrainPBR4")
|
||||
VALUES
|
||||
(:RegionUUID, :block_terraform, :block_fly, :allow_damage, :restrict_pushing, :allow_land_resell,
|
||||
:allow_land_join_divide, :block_show_in_search, :agent_limit, :object_bonus, :maturity, :disable_scripts,
|
||||
:disable_collisions, :disable_physics, :terrain_texture_1, :terrain_texture_2, :terrain_texture_3,
|
||||
:terrain_texture_4, :elevation_1_nw, :elevation_2_nw, :elevation_1_ne, :elevation_2_ne, :elevation_1_se,
|
||||
:elevation_2_se, :elevation_1_sw, :elevation_2_sw, :water_height, :terrain_raise_limit, :terrain_lower_limit,
|
||||
:use_estate_sun, :fixed_sun, :sun_position, :covenant, :covenant_datetime, :Sandbox, :sunvectorx,
|
||||
:sunvectory, :sunvectorz, :Loaded_Creation_DateTime, :Loaded_Creation_ID, :map_tile_ID,
|
||||
:block_search, :casino, :TelehubObject, :ParcelImageID, :cacheID, :TerrainPBR1, :TerrainPBR2,
|
||||
:TerrainPBR3, :TerrainPBR4)
|
||||
ON CONFLICT ("regionUUID")
|
||||
DO UPDATE SET "regionUUID" = :RegionUUID, block_terraform = :block_terraform, block_fly = :block_fly,
|
||||
allow_damage = :allow_damage, restrict_pushing = :restrict_pushing, allow_land_resell = :allow_land_resell,
|
||||
allow_land_join_divide = :allow_land_join_divide, block_show_in_search = :block_show_in_search,
|
||||
agent_limit = :agent_limit, object_bonus = :object_bonus, maturity = :maturity, disable_scripts = :disable_scripts,
|
||||
disable_collisions = :disable_collisions, disable_physics = :disable_physics, terrain_texture_1 = :terrain_texture_1,
|
||||
terrain_texture_2 = :terrain_texture_2, terrain_texture_3 = :terrain_texture_3, terrain_texture_4 = :terrain_texture_4,
|
||||
elevation_1_nw = :elevation_1_nw, elevation_2_nw = :elevation_2_nw, elevation_1_ne = :elevation_1_ne,
|
||||
elevation_2_ne = :elevation_2_ne, elevation_1_se = :elevation_1_se, elevation_2_se = :elevation_2_se,
|
||||
elevation_1_sw = :elevation_1_sw, elevation_2_sw = :elevation_2_sw, water_height = :water_height,
|
||||
terrain_raise_limit = :terrain_raise_limit, terrain_lower_limit = :terrain_lower_limit,
|
||||
use_estate_sun = :use_estate_sun, fixed_sun = :fixed_sun, sun_position = :sun_position, covenant = :covenant,
|
||||
covenant_datetime = :covenant_datetime, "Sandbox" = :Sandbox, sunvectorx = :sunvectorx,
|
||||
sunvectory = :sunvectory, sunvectorz = :sunvectorz, loaded_creation_datetime = :Loaded_Creation_DateTime,
|
||||
loaded_creation_id = :Loaded_Creation_ID, "map_tile_ID" = :map_tile_ID, block_search = :block_search,
|
||||
casino = :casino, "TelehubObject" = :TelehubObject, "parcel_tile_ID" = :ParcelImageID, "cacheID" = :cacheID,
|
||||
"TerrainPBR1" = :TerrainPBR1, "TerrainPBR2" = :TerrainPBR2, "TerrainPBR3" = :TerrainPBR3,
|
||||
"TerrainPBR4" = :TerrainPBR4
|
||||
""";
|
||||
|
||||
if (string.IsNullOrEmpty(regionUUID))
|
||||
using (var connection = new NpgsqlConnection(m_connectionString))
|
||||
{
|
||||
StoreNewRegionSettings(regionSettings);
|
||||
}
|
||||
else
|
||||
{
|
||||
//This method only updates region settings!!! First call LoadRegionSettings to create new region settings in DB
|
||||
sql =
|
||||
@"UPDATE regionsettings SET block_terraform = :block_terraform ,block_fly = :block_fly ,allow_damage = :allow_damage
|
||||
,restrict_pushing = :restrict_pushing ,allow_land_resell = :allow_land_resell ,allow_land_join_divide = :allow_land_join_divide
|
||||
,block_show_in_search = :block_show_in_search ,agent_limit = :agent_limit ,object_bonus = :object_bonus ,maturity = :maturity
|
||||
,disable_scripts = :disable_scripts ,disable_collisions = :disable_collisions ,disable_physics = :disable_physics
|
||||
,terrain_texture_1 = :terrain_texture_1 ,terrain_texture_2 = :terrain_texture_2 ,terrain_texture_3 = :terrain_texture_3
|
||||
,terrain_texture_4 = :terrain_texture_4 , TerrainPBR1 = :TerrainPBR1, TerrainPBR2 = :TerrainPBR2, TerrainPBR3 = :TerrainPBR3
|
||||
,TerrainPBR4 = :TerrainPBR4, elevation_1_nw = :elevation_1_nw ,elevation_2_nw = :elevation_2_nw
|
||||
,elevation_1_ne = :elevation_1_ne ,elevation_2_ne = :elevation_2_ne ,elevation_1_se = :elevation_1_se ,elevation_2_se = :elevation_2_se
|
||||
,elevation_1_sw = :elevation_1_sw ,elevation_2_sw = :elevation_2_sw ,water_height = :water_height ,terrain_raise_limit = :terrain_raise_limit
|
||||
,terrain_lower_limit = :terrain_lower_limit ,use_estate_sun = :use_estate_sun ,fixed_sun = :fixed_sun ,sun_position = :sun_position
|
||||
,covenant = :covenant ,covenant_datetime = :covenant_datetime, sunvectorx = :sunvectorx, sunvectory = :sunvectory, sunvectorz = :sunvectorz,
|
||||
""Sandbox"" = :Sandbox, loaded_creation_datetime = :loaded_creation_datetime, loaded_creation_id = :loaded_creation_id, ""map_tile_ID"" = :TerrainImageID,
|
||||
""TelehubObject"" = :telehubobject, ""parcel_tile_ID"" = :ParcelImageID, ""cacheID"" = :cacheID
|
||||
WHERE ""regionUUID"" = :regionUUID";
|
||||
|
||||
using (NpgsqlConnection conn = new NpgsqlConnection(m_connectionString))
|
||||
using (NpgsqlCommand cmd = new NpgsqlCommand(sql, conn))
|
||||
connection.Open();
|
||||
NpgsqlCommand command = new NpgsqlCommand(queryString, connection, connection.BeginTransaction());
|
||||
using (command)
|
||||
{
|
||||
cmd.Parameters.AddRange(CreateRegionSettingParameters(regionSettings));
|
||||
conn.Open();
|
||||
cmd.ExecuteNonQuery();
|
||||
try
|
||||
{
|
||||
command.Parameters.AddRange(CreateRegionSettingParameters(regionSettings));
|
||||
command.ExecuteNonQuery();
|
||||
command.Transaction.Commit();
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
Console.WriteLine(e);
|
||||
command.Transaction.Rollback();
|
||||
throw;
|
||||
}
|
||||
}
|
||||
}
|
||||
SaveSpawnPoints(regionSettings);
|
||||
|
@ -977,39 +1000,6 @@ namespace OpenSim.Data.PGSQL
|
|||
//Not used??
|
||||
}
|
||||
|
||||
#region Private Methods
|
||||
|
||||
/// <summary>
|
||||
/// Stores new regionsettings.
|
||||
/// </summary>
|
||||
/// <param name="regionSettings">The region settings.</param>
|
||||
private void StoreNewRegionSettings(RegionSettings regionSettings)
|
||||
{
|
||||
string sql = @"INSERT INTO regionsettings
|
||||
(""regionUUID"",block_terraform,block_fly,allow_damage,restrict_pushing,allow_land_resell,allow_land_join_divide,
|
||||
block_show_in_search,agent_limit,object_bonus,maturity,disable_scripts,disable_collisions,disable_physics,
|
||||
terrain_texture_1,terrain_texture_2,terrain_texture_3,terrain_texture_4,elevation_1_nw,elevation_2_nw,elevation_1_ne,
|
||||
elevation_2_ne,elevation_1_se,elevation_2_se,elevation_1_sw,elevation_2_sw,water_height,terrain_raise_limit,
|
||||
terrain_lower_limit,use_estate_sun,fixed_sun,sun_position,covenant,covenant_datetime,sunvectorx, sunvectory, sunvectorz,
|
||||
""Sandbox"", loaded_creation_datetime, loaded_creation_id
|
||||
)
|
||||
VALUES
|
||||
(:regionUUID,:block_terraform,:block_fly,:allow_damage,:restrict_pushing,:allow_land_resell,:allow_land_join_divide,
|
||||
:block_show_in_search,:agent_limit,:object_bonus,:maturity,:disable_scripts,:disable_collisions,:disable_physics,
|
||||
:terrain_texture_1,:terrain_texture_2,:terrain_texture_3,:terrain_texture_4,:elevation_1_nw,:elevation_2_nw,:elevation_1_ne,
|
||||
:elevation_2_ne,:elevation_1_se,:elevation_2_se,:elevation_1_sw,:elevation_2_sw,:water_height,:terrain_raise_limit,
|
||||
:terrain_lower_limit,:use_estate_sun,:fixed_sun,:sun_position,:covenant, :covenant_datetime, :sunvectorx,:sunvectory,
|
||||
:sunvectorz, :Sandbox, :loaded_creation_datetime, :loaded_creation_id )";
|
||||
|
||||
using (NpgsqlConnection conn = new NpgsqlConnection(m_connectionString))
|
||||
using (NpgsqlCommand cmd = new NpgsqlCommand(sql, conn))
|
||||
{
|
||||
cmd.Parameters.AddRange(CreateRegionSettingParameters(regionSettings));
|
||||
conn.Open();
|
||||
cmd.ExecuteNonQuery();
|
||||
}
|
||||
}
|
||||
|
||||
#region Private DataRecord conversion methods
|
||||
|
||||
/// <summary>
|
||||
|
@ -1604,7 +1594,9 @@ namespace OpenSim.Data.PGSQL
|
|||
_Database.CreateParameter("covenant_datetime", settings.CovenantChangedDateTime),
|
||||
_Database.CreateParameter("Loaded_Creation_DateTime", settings.LoadedCreationDateTime),
|
||||
_Database.CreateParameter("Loaded_Creation_ID", settings.LoadedCreationID),
|
||||
_Database.CreateParameter("TerrainImageID", settings.TerrainImageID),
|
||||
_Database.CreateParameter("map_tile_ID", settings.TerrainImageID),
|
||||
_Database.CreateParameter("block_search", settings.GodBlockSearch),
|
||||
_Database.CreateParameter("casino", settings.Casino),
|
||||
_Database.CreateParameter("ParcelImageID", settings.ParcelImageID),
|
||||
_Database.CreateParameter("TelehubObject", settings.TelehubObject),
|
||||
_Database.CreateParameter("cacheID", settings.CacheID),
|
||||
|
@ -1971,7 +1963,6 @@ namespace OpenSim.Data.PGSQL
|
|||
|
||||
#endregion
|
||||
|
||||
#endregion
|
||||
|
||||
private void LoadSpawnPoints(RegionSettings rs)
|
||||
{
|
||||
|
@ -1986,14 +1977,14 @@ namespace OpenSim.Data.PGSQL
|
|||
conn.Open();
|
||||
using (NpgsqlDataReader reader = cmd.ExecuteReader())
|
||||
{
|
||||
if (reader.Read())
|
||||
while (reader.Read())
|
||||
{
|
||||
SpawnPoint sp = new SpawnPoint();
|
||||
|
||||
sp.Yaw = (float)reader["Yaw"];
|
||||
sp.Pitch = (float)reader["Pitch"];
|
||||
sp.Distance = (float)reader["Distance"];
|
||||
|
||||
var sp = new SpawnPoint
|
||||
{
|
||||
Yaw = Convert.ToSingle(reader["Yaw"]),
|
||||
Pitch = Convert.ToSingle(reader["Pitch"]),
|
||||
Distance = Convert.ToSingle(reader["Distance"])
|
||||
};
|
||||
rs.AddSpawnPoint(sp);
|
||||
}
|
||||
}
|
||||
|
@ -2033,15 +2024,62 @@ namespace OpenSim.Data.PGSQL
|
|||
|
||||
public void SaveExtra(UUID regionID, string name, string value)
|
||||
{
|
||||
const string queryString = """
|
||||
INSERT INTO regionextra ("RegionID", "Name", "value")
|
||||
VALUES (:RegionID, :Name, :Value)
|
||||
""";
|
||||
using var connection = new NpgsqlConnection(m_connectionString);
|
||||
connection.Open();
|
||||
using var command = new NpgsqlCommand(queryString, connection, connection.BeginTransaction());
|
||||
try
|
||||
{
|
||||
command.Parameters.AddWithValue("RegionID", regionID.ToString());
|
||||
command.Parameters.AddWithValue("Name", name);
|
||||
command.Parameters.AddWithValue("Value", value);
|
||||
command.ExecuteNonQuery();
|
||||
command.Transaction.Commit();
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
Console.WriteLine(e);
|
||||
command.Transaction.Rollback();
|
||||
}
|
||||
}
|
||||
|
||||
public void RemoveExtra(UUID regionID, string name)
|
||||
{
|
||||
const string queryString = """DELETE FROM regionextra WHERE "RegionID"=:RegionID AND "Name"=:Name""";
|
||||
using var connection = new NpgsqlConnection(m_connectionString);
|
||||
connection.Open();
|
||||
using var command = new NpgsqlCommand(queryString, connection, connection.BeginTransaction());
|
||||
try
|
||||
{
|
||||
command.Parameters.AddWithValue("RegionID", regionID.ToString());
|
||||
command.Parameters.AddWithValue("Name", name);
|
||||
command.ExecuteNonQuery();
|
||||
command.Transaction.Commit();
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
Console.WriteLine(e);
|
||||
command.Transaction.Rollback();
|
||||
}
|
||||
}
|
||||
|
||||
public Dictionary<string, string> GetExtra(UUID regionID)
|
||||
{
|
||||
return null;
|
||||
const string queryString = """SELECT * FROM regionextra WHERE "RegionID" = :RegionID""";
|
||||
using NpgsqlConnection conn = new NpgsqlConnection(m_connectionString);
|
||||
using NpgsqlCommand cmd = new NpgsqlCommand(queryString, conn);
|
||||
cmd.Parameters.Add(_Database.CreateParameter("RegionID", regionID.ToString()));
|
||||
conn.Open();
|
||||
using NpgsqlDataReader reader = cmd.ExecuteReader();
|
||||
Dictionary<string, string> extraSettings = new Dictionary<string, string>();
|
||||
while (reader.Read())
|
||||
{
|
||||
extraSettings.Add(reader["Name"].ToString(), reader["value"].ToString());
|
||||
}
|
||||
return extraSettings;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
17
OpenSim/Data/PGSQL/Resources/MuteListStore.migrations
Normal file
17
OpenSim/Data/PGSQL/Resources/MuteListStore.migrations
Normal file
|
@ -0,0 +1,17 @@
|
|||
:VERSION 1
|
||||
|
||||
BEGIN TRANSACTION;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS MuteList (
|
||||
|
||||
"AgentID" varchar(36) NOT NULL,
|
||||
"MuteId" varchar(36) NOT NULL DEFAULT '00000000-0000-0000-0000-000000000000',
|
||||
"MuteName" varchar(64) NOT NULL DEFAULT '',
|
||||
"MuteType" int4 NOT NULL DEFAULT 1,
|
||||
"MuteFlags" int4 NOT NULL DEFAULT 0,
|
||||
"Stamp" int4 NOT NULL,
|
||||
CONSTRAINT pk_agent_id PRIMARY KEY ("AgentID"),
|
||||
CONSTRAINT unique_agent_2 UNIQUE ("AgentID", "MuteId", "MuteName")
|
||||
);
|
||||
|
||||
COMMIT;
|
|
@ -1262,8 +1262,45 @@ COMMIT;
|
|||
|
||||
:VERSION 54 #----- add pbr terrain storage
|
||||
BEGIN;
|
||||
ALTER TABLE regionsettings ADD COLUMN "TerrainPBR1" uuid NOT NULL default '00000000-0000-0000-0000-000000000000';
|
||||
ALTER TABLE regionsettings ADD COLUMN "TerrainPBR2" uuid NOT NULL default '00000000-0000-0000-0000-000000000000';
|
||||
ALTER TABLE regionsettings ADD COLUMN "TerrainPBR3" uuid NOT NULL default '00000000-0000-0000-0000-000000000000';
|
||||
ALTER TABLE regionsettings ADD COLUMN "TerrainPBR4" uuid NOT NULL default '00000000-0000-0000-0000-000000000000';
|
||||
ALTER TABLE regionsettings ADD COLUMN "TerrainPBR1" uuid NOT NULL DEFAULT '00000000-0000-0000-0000-000000000000';
|
||||
ALTER TABLE regionsettings ADD COLUMN "TerrainPBR2" uuid NOT NULL DEFAULT '00000000-0000-0000-0000-000000000000';
|
||||
ALTER TABLE regionsettings ADD COLUMN "TerrainPBR3" uuid NOT NULL DEFAULT '00000000-0000-0000-0000-000000000000';
|
||||
ALTER TABLE regionsettings ADD COLUMN "TerrainPBR4" uuid NOT NULL DEFAULT '00000000-0000-0000-0000-000000000000';
|
||||
COMMIT;
|
||||
|
||||
:VERSION 55 #----- Fix data type for columns
|
||||
BEGIN;
|
||||
ALTER TABLE public.regionsettings ALTER COLUMN "block_search" DROP DEFAULT;
|
||||
ALTER TABLE public.regionsettings ALTER COLUMN "casino" DROP DEFAULT;
|
||||
ALTER TABLE public.regionsettings
|
||||
ALTER COLUMN "block_search" TYPE BOOLEAN
|
||||
USING CASE WHEN "block_search" = 0 THEN FALSE
|
||||
WHEN "block_search" = 1 THEN TRUE
|
||||
ELSE NULL
|
||||
END;
|
||||
|
||||
ALTER TABLE public.regionsettings
|
||||
ALTER COLUMN "casino" TYPE BOOLEAN
|
||||
USING CASE WHEN "casino" = 0 THEN FALSE
|
||||
WHEN "casino" = 1 THEN TRUE
|
||||
ELSE NULL
|
||||
END;
|
||||
COMMIT;
|
||||
|
||||
:VERSION 56 #----- Fix the constraints on the spawn points
|
||||
BEGIN;
|
||||
ALTER TABLE spawn_points DROP CONSTRAINT spawn_points_pkey;
|
||||
ALTER TABLE spawn_points ADD CONSTRAINT spawn_points_pkey
|
||||
PRIMARY KEY ("RegionUUID", "Yaw", "Pitch", "Distance");
|
||||
COMMIT;
|
||||
|
||||
:VERSION 57 #----- Adding a table missing from the PgSQL adapter
|
||||
BEGIN;
|
||||
CREATE TABLE "regionextra"
|
||||
(
|
||||
"RegionID" char(36),
|
||||
"Name" varchar(32),
|
||||
"value" text,
|
||||
PRIMARY KEY ("RegionID", "Name")
|
||||
);
|
||||
COMMIT;
|
||||
|
|
|
@ -78,6 +78,7 @@ namespace OpenSim.Framework
|
|||
public bool NeedsCameraCollision;
|
||||
public uint lastpacketSequence;
|
||||
public double lastUpdateTS;
|
||||
public double lastMoveUpdateTS;
|
||||
|
||||
public AgentUpdateArgs()
|
||||
{
|
||||
|
|
|
@ -150,7 +150,7 @@ namespace OpenSim.Framework.Serialization.External
|
|||
settings.TerrainPBR3 = UUID.Parse(xtr.ReadElementContentAsString());
|
||||
break;
|
||||
case "PBR4":
|
||||
settings.TerrainPBR3 = UUID.Parse(xtr.ReadElementContentAsString());
|
||||
settings.TerrainPBR4 = UUID.Parse(xtr.ReadElementContentAsString());
|
||||
break;
|
||||
case "ElevationLowSW":
|
||||
settings.Elevation1SW = double.Parse(xtr.ReadElementContentAsString(), Culture.NumberFormatInfo);
|
||||
|
|
|
@ -1003,6 +1003,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
|
|||
// reset agent update args
|
||||
m_thisAgentUpdateArgs.CameraAtAxis.X = float.MinValue;
|
||||
m_thisAgentUpdateArgs.lastUpdateTS = 0;
|
||||
m_thisAgentUpdateArgs.lastMoveUpdateTS = 0;
|
||||
m_thisAgentUpdateArgs.ControlFlags = 0;
|
||||
|
||||
UDPPacketBuffer buf = OpenSimUDPBase.GetNewUDPBuffer(m_udpClient.RemoteEndPoint);
|
||||
|
@ -8500,28 +8501,21 @@ namespace OpenSim.Region.ClientStack.LindenUDP
|
|||
// Threshold for camera rotation to be a significant agent update
|
||||
private const float VDELTA = 0.01f;
|
||||
|
||||
/// <summary>
|
||||
/// This checks the update significance against the last update made.
|
||||
/// </summary>
|
||||
/// <remarks>Can only be called by one thread at a time</remarks>
|
||||
/// <returns></returns>
|
||||
/// <param name='x'></param>
|
||||
public bool CheckAgentUpdateSignificance(AgentUpdatePacket.AgentDataBlock x)
|
||||
{
|
||||
return CheckAgentMovementUpdateSignificance(x) || CheckAgentCameraUpdateSignificance(x);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// This checks the movement/state update significance against the last update made.
|
||||
/// </summary>
|
||||
/// <remarks>Can only be called by one thread at a time</remarks>
|
||||
/// <returns></returns>
|
||||
/// <param name='x'></param>
|
||||
private bool CheckAgentMovementUpdateSignificance(AgentUpdatePacket.AgentDataBlock x)
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
private bool CheckAgentMovementUpdateSignificance(AgentUpdatePacket.AgentDataBlock x, double now)
|
||||
{
|
||||
if(
|
||||
if((x.ControlFlags & ~(uint)AgentManager.ControlFlags.AGENT_CONTROL_FINISH_ANIM) != (uint)AgentManager.ControlFlags.NONE &&
|
||||
now > m_thisAgentUpdateArgs.lastMoveUpdateTS + 20)
|
||||
return true;
|
||||
|
||||
if (
|
||||
(x.ControlFlags != m_thisAgentUpdateArgs.ControlFlags) // significant if control flags changed
|
||||
|| (x.ControlFlags & ~(uint)AgentManager.ControlFlags.AGENT_CONTROL_FINISH_ANIM) != (uint)AgentManager.ControlFlags.NONE
|
||||
|| (x.Flags != m_thisAgentUpdateArgs.Flags) // significant if Flags changed
|
||||
|| (x.State != m_thisAgentUpdateArgs.State) // significant if Stats changed
|
||||
|| (MathF.Abs(x.Far - m_thisAgentUpdateArgs.Far) >= 32f) // significant if far distance changed
|
||||
|
@ -8538,6 +8532,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
|
|||
/// <remarks>Can only be called by one thread at a time</remarks>
|
||||
/// <returns></returns>
|
||||
/// <param name='x'></param>
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
private bool CheckAgentCameraUpdateSignificance(AgentUpdatePacket.AgentDataBlock x)
|
||||
{
|
||||
return (MathF.Abs(x.CameraCenter.X - m_thisAgentUpdateArgs.CameraCenter.X) > VDELTA ||
|
||||
|
@ -8575,26 +8570,28 @@ namespace OpenSim.Region.ClientStack.LindenUDP
|
|||
|
||||
c.m_thisAgentUpdateArgs.lastpacketSequence = seq;
|
||||
|
||||
c.OnPreAgentUpdate?.Invoke(c, c.m_thisAgentUpdateArgs);
|
||||
|
||||
bool movement;
|
||||
bool camera;
|
||||
|
||||
double now = Util.GetTimeStampMS();
|
||||
if(now - c.m_thisAgentUpdateArgs.lastUpdateTS > 500.0) // at least 2 per sec
|
||||
if (now - c.m_thisAgentUpdateArgs.lastUpdateTS > 500.0) // at least 2 per sec
|
||||
{
|
||||
movement = true;
|
||||
camera = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
movement = c.CheckAgentMovementUpdateSignificance(x);
|
||||
movement = c.CheckAgentMovementUpdateSignificance(x, now);
|
||||
camera = c.CheckAgentCameraUpdateSignificance(x);
|
||||
}
|
||||
|
||||
c.OnPreAgentUpdate?.Invoke(c, c.m_thisAgentUpdateArgs);
|
||||
|
||||
// Was there a significant movement/state change?
|
||||
if (movement)
|
||||
{
|
||||
c.m_thisAgentUpdateArgs.lastMoveUpdateTS = now;
|
||||
|
||||
c.m_thisAgentUpdateArgs.BodyRotation = x.BodyRotation;
|
||||
c.m_thisAgentUpdateArgs.ControlFlags = x.ControlFlags;
|
||||
c.m_thisAgentUpdateArgs.Far = x.Far;
|
||||
|
|
|
@ -541,7 +541,7 @@ namespace OpenSim.Region.CoreModules.World.Estate
|
|||
if (texture.IsZero())
|
||||
return;
|
||||
|
||||
if((remoteClient.ViewerFlags & ViewerFlags.TPBR) != 0)
|
||||
if(remoteClient is not null && (remoteClient.ViewerFlags & ViewerFlags.TPBR) != 0)
|
||||
{
|
||||
switch (level)
|
||||
{
|
||||
|
|
|
@ -267,7 +267,7 @@ namespace OpenSim.Region.Framework.Scenes
|
|||
return UUID.Zero;
|
||||
}
|
||||
|
||||
if (item.OwnerID.NotEqual(avatarId))
|
||||
if (!Permissions.CanEditObjectInventory(objectID, avatarId))
|
||||
return UUID.Zero;
|
||||
|
||||
InventoryType itemType = (InventoryType)item.InvType;
|
||||
|
|
|
@ -5157,6 +5157,8 @@ namespace OpenSim.Region.Framework.Scenes
|
|||
if (engines.Length == 0) // No engine at all
|
||||
return 0.0f;
|
||||
|
||||
try
|
||||
{
|
||||
float time = 0.0f;
|
||||
|
||||
// get all the scripts in all parts
|
||||
|
@ -5164,8 +5166,11 @@ namespace OpenSim.Region.Framework.Scenes
|
|||
List<TaskInventoryItem> scripts = new();
|
||||
for (int i = 0; i < parts.Length; i++)
|
||||
{
|
||||
IEntityInventory inv = parts[i].Inventory;
|
||||
if (inv is not null)
|
||||
scripts.AddRange(parts[i].Inventory.GetInventoryItems(InventoryType.LSL));
|
||||
}
|
||||
|
||||
// extract the UUIDs
|
||||
HashSet<UUID> unique = new();
|
||||
foreach (TaskInventoryItem script in scripts)
|
||||
|
@ -5183,6 +5188,11 @@ namespace OpenSim.Region.Framework.Scenes
|
|||
}
|
||||
return time;
|
||||
}
|
||||
catch
|
||||
{
|
||||
return 0.0f;
|
||||
}
|
||||
}
|
||||
|
||||
public bool ScriptsMemory(out int memory)
|
||||
{
|
||||
|
@ -5191,12 +5201,16 @@ namespace OpenSim.Region.Framework.Scenes
|
|||
if (engines.Length == 0) // No engine at all
|
||||
return false;
|
||||
|
||||
try
|
||||
{
|
||||
// get all the scripts in all parts
|
||||
SceneObjectPart[] parts = m_parts.GetArray();
|
||||
List<TaskInventoryItem> scripts = new();
|
||||
for (int i = 0; i < parts.Length; i++)
|
||||
{
|
||||
scripts.AddRange(parts[i].Inventory.GetInventoryItems(InventoryType.LSL));
|
||||
IEntityInventory inv = parts[i].Inventory;
|
||||
if(inv is not null)
|
||||
scripts.AddRange(inv.GetInventoryItems(InventoryType.LSL));
|
||||
}
|
||||
|
||||
if (scripts.Count == 0)
|
||||
|
@ -5217,6 +5231,12 @@ namespace OpenSim.Region.Framework.Scenes
|
|||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
catch
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
|
|
@ -14993,6 +14993,33 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
|
|||
return tid.ToString();
|
||||
}
|
||||
|
||||
public LSL_String llGetNotecardLineSync(string name, int line)
|
||||
{
|
||||
if (line < 0)
|
||||
return ScriptBaseClass.NAK;
|
||||
|
||||
if (!UUID.TryParse(name, out UUID assetID))
|
||||
{
|
||||
TaskInventoryItem item = m_host.Inventory.GetInventoryItem(name, 7);
|
||||
|
||||
if (item is null)
|
||||
{
|
||||
Error("llGetNotecardLineSync", "Can't find notecard '" + name + "'");
|
||||
return ScriptBaseClass.NAK;
|
||||
}
|
||||
assetID = item.AssetID;
|
||||
}
|
||||
|
||||
if (NotecardCache.IsCached(assetID))
|
||||
{
|
||||
return NotecardCache.GetllLine(assetID, line, 1024);
|
||||
}
|
||||
else
|
||||
{
|
||||
return ScriptBaseClass.NAK;
|
||||
}
|
||||
}
|
||||
|
||||
public LSL_Key llGetNotecardLine(string name, int line)
|
||||
{
|
||||
if (!UUID.TryParse(name, out UUID assetID))
|
||||
|
@ -18832,6 +18859,37 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
|
|||
|
||||
return 0;
|
||||
}
|
||||
|
||||
public LSL_Integer llDerezObject(LSL_Key objectUUID, LSL_Integer flag)
|
||||
{
|
||||
if (!UUID.TryParse(objectUUID, out UUID objUUID))
|
||||
return new LSL_Integer(0);
|
||||
|
||||
if (objUUID.IsZero())
|
||||
return new LSL_Integer(0);
|
||||
|
||||
SceneObjectGroup sceneOG = World.GetSceneObjectGroup(objUUID);
|
||||
|
||||
if (sceneOG is null || sceneOG.IsDeleted || sceneOG.IsAttachment)
|
||||
return new LSL_Integer(0);
|
||||
|
||||
if (sceneOG.OwnerID.NotEqual(m_host.OwnerID))
|
||||
return new LSL_Integer(0);
|
||||
|
||||
// restrict to objects rezzed by host
|
||||
if (sceneOG.RezzerID.NotEqual(m_host.ParentGroup.UUID))
|
||||
return new LSL_Integer(0);
|
||||
|
||||
if (sceneOG.UUID.Equals(m_host.ParentGroup.UUID))
|
||||
return new LSL_Integer(0);
|
||||
|
||||
if (flag.value == 0)
|
||||
World.DeleteSceneObject(sceneOG, false);
|
||||
else
|
||||
sceneOG.RootPart.AddFlag(PrimFlags.TemporaryOnRez);
|
||||
|
||||
return new LSL_Integer(1);
|
||||
}
|
||||
}
|
||||
|
||||
public class NotecardCache
|
||||
|
@ -18875,6 +18933,18 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
|
|||
return "";
|
||||
}
|
||||
|
||||
public static string GetllLine(UUID assetID, int lineNumber, int maxLength)
|
||||
{
|
||||
if (m_Notecards.TryGetValue(assetID, 30000, out string[] text))
|
||||
{
|
||||
if (lineNumber >= text.Length)
|
||||
return "\n\n\n";
|
||||
|
||||
return text[lineNumber].Length < maxLength ? text[lineNumber] : text[lineNumber][..maxLength];
|
||||
}
|
||||
return ScriptBaseClass.NAK;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Get a notecard line.
|
||||
/// </summary>
|
||||
|
|
|
@ -176,6 +176,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api.Interfaces
|
|||
void llGetNextEmail(string address, string subject);
|
||||
LSL_Key llGetNotecardLine(string name, int line);
|
||||
LSL_Key llGetNumberOfNotecardLines(string name);
|
||||
LSL_String llGetNotecardLineSync(string name, int line);
|
||||
LSL_Integer llGetNumberOfPrims();
|
||||
LSL_Integer llGetNumberOfSides();
|
||||
LSL_String llGetObjectDesc();
|
||||
|
@ -522,5 +523,6 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api.Interfaces
|
|||
LSL_Integer llLinksetDataDeleteProtected(LSL_String name, LSL_String pass);
|
||||
|
||||
LSL_Integer llIsFriend(LSL_Key agent_id);
|
||||
LSL_Integer llDerezObject(LSL_Key objectUUID, LSL_Integer flag);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -609,6 +609,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.ScriptBase
|
|||
|
||||
public const string NULL_KEY = "00000000-0000-0000-0000-000000000000";
|
||||
public const string EOF = "\n\n\n";
|
||||
public const string NAK = "\n\u0015\n";
|
||||
public const double PI = 3.14159274f;
|
||||
public const double TWO_PI = 6.28318548f;
|
||||
public const double PI_BY_TWO = 1.57079637f;
|
||||
|
|
|
@ -758,6 +758,12 @@ namespace OpenSim.Region.ScriptEngine.Shared.ScriptBase
|
|||
return m_LSL_Functions.llGetNumberOfNotecardLines(name);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public LSL_String llGetNotecardLineSync(string name, int line)
|
||||
{
|
||||
return m_LSL_Functions.llGetNotecardLineSync(name, line);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public LSL_Integer llGetNumberOfPrims()
|
||||
{
|
||||
|
@ -2802,5 +2808,11 @@ namespace OpenSim.Region.ScriptEngine.Shared.ScriptBase
|
|||
{
|
||||
return m_LSL_Functions.llIsFriend(agent_id);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public LSL_Integer llDerezObject(LSL_Key objectUUID, LSL_Integer flag)
|
||||
{
|
||||
return m_LSL_Functions.llDerezObject(objectUUID, flag);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -396,10 +396,10 @@ namespace OpenSim.Region.ScriptEngine.Yengine
|
|||
e = StartEventHandler(evc, evt.Params);
|
||||
}
|
||||
//m_RunOnePhase = "done running";
|
||||
m_CPUTime += DateTime.UtcNow.Subtract(now).TotalMilliseconds;
|
||||
m_CPUTime += Util.GetTimeStampMS() - m_SliceStart;
|
||||
|
||||
// Maybe it puqued.
|
||||
if(e is not null)
|
||||
// Maybe it puqued.
|
||||
if (e is not null)
|
||||
{
|
||||
//m_RunOnePhase = "handling exception " + e.Message;
|
||||
HandleScriptException(e);
|
||||
|
|
|
@ -10,10 +10,6 @@
|
|||
<HintPath>..\..\..\bin\Nini.dll</HintPath>
|
||||
<Private>False</Private>
|
||||
</Reference>
|
||||
<Reference Include="Npgsql">
|
||||
<HintPath>..\..\..\bin\Npgsql.dll</HintPath>
|
||||
<Private>False</Private>
|
||||
</Reference>
|
||||
<Reference Include="OpenMetaverse">
|
||||
<HintPath>..\..\..\bin\OpenMetaverse.dll</HintPath>
|
||||
<Private>False</Private>
|
||||
|
@ -63,5 +59,6 @@
|
|||
<PackageReference Include="Mono.Addins" Version="1.4.1" />
|
||||
<PackageReference Include="Mono.Addins.CecilReflector" Version="1.4.1" />
|
||||
<PackageReference Include="MySqlConnector" Version="2.2.6" />
|
||||
<PackageReference Include="Npgsql" Version="8.0.3" />
|
||||
</ItemGroup>
|
||||
</Project>
|
BIN
bin/Npgsql.dll
BIN
bin/Npgsql.dll
Binary file not shown.
|
@ -1,4 +1,4 @@
|
|||
9a2d5a5e-484a-40b0-82bc-092443b08ff7
|
||||
4782a83e-4ec0-2ed4-2d2a-c59df5a3ccf0
|
||||
<llsd><map><key>llsd-lsl-syntax-version</key><integer>2</integer>
|
||||
<key>controls</key>
|
||||
<map>
|
||||
|
@ -1739,7 +1739,7 @@
|
|||
</map>
|
||||
<key>OS_APIVERSION</key><map>
|
||||
<key>type</key><string>integer</string>
|
||||
<key>value</key><string>22</string>
|
||||
<key>value</key><string>23</string>
|
||||
</map>
|
||||
<key>OS_ATTACH_MSG_ALL</key><map>
|
||||
<key>type</key><string>integer</string>
|
||||
|
@ -3710,6 +3710,7 @@
|
|||
<key>arguments</key><array>
|
||||
<map><key>val</key><map><key>type</key><string>integer</string></map></map>
|
||||
</array>
|
||||
<key>tooltip</key><string>Returns absolute version as val (ie as postive value)</string>
|
||||
</map>
|
||||
<key>llAcos</key>
|
||||
<map>
|
||||
|
@ -3717,6 +3718,7 @@
|
|||
<key>arguments</key><array>
|
||||
<map><key>val</key><map><key>type</key><string>float</string></map></map>
|
||||
</array>
|
||||
<key>tooltip</key><string>Returns cosine of val (val in radians)</string>
|
||||
</map>
|
||||
<key>llAddToLandBanList</key>
|
||||
<map>
|
||||
|
@ -3775,14 +3777,16 @@
|
|||
<key>arguments</key><array>
|
||||
<map><key>val</key><map><key>type</key><string>float</string></map></map>
|
||||
</array>
|
||||
<key>tooltip</key><string>Returns sine of val (val in radians)</string>
|
||||
</map>
|
||||
<key>llAtan2</key>
|
||||
<map>
|
||||
<key>return</key><string>float</string>
|
||||
<key>arguments</key><array>
|
||||
<map><key>x</key><map><key>type</key><string>float</string></map></map>
|
||||
<map><key>y</key><map><key>type</key><string>float</string></map></map>
|
||||
<map><key>x</key><map><key>type</key><string>float</string></map></map>
|
||||
</array>
|
||||
<key>tooltip</key><string>Returns the angle whose tangent is the y/x</string>
|
||||
</map>
|
||||
<key>llAttachToAvatar</key>
|
||||
<map>
|
||||
|
@ -3968,6 +3972,14 @@
|
|||
<map><key>end</key><map><key>type</key><string>integer</string></map></map>
|
||||
</array>
|
||||
</map>
|
||||
<key>llDerezObject</key>
|
||||
<map>
|
||||
<key>return</key><string>integer</string>
|
||||
<key>arguments</key><array>
|
||||
<map><key>objectUUID</key><map><key>type</key><string>key</string></map></map>
|
||||
<map><key>flag</key><map><key>type</key><string>integer</string></map></map>
|
||||
</array>
|
||||
</map>
|
||||
<key>llDetachFromAvatar</key>
|
||||
<map>
|
||||
<key>arguments</key><undef/>
|
||||
|
@ -4260,6 +4272,16 @@
|
|||
<map><key>obj</key><map><key>type</key><string>string</string></map></map>
|
||||
</array>
|
||||
</map>
|
||||
<key>llGetCameraAspect</key>
|
||||
<map>
|
||||
<key>return</key><string>float</string>
|
||||
<key>arguments</key><undef/>
|
||||
</map>
|
||||
<key>llGetCameraFOV</key>
|
||||
<map>
|
||||
<key>return</key><string>float</string>
|
||||
<key>arguments</key><undef/>
|
||||
</map>
|
||||
<key>llGetCameraPos</key>
|
||||
<map>
|
||||
<key>return</key><string>vector</string>
|
||||
|
@ -5104,7 +5126,6 @@
|
|||
<map><key>linknumber</key><map><key>type</key><string>integer</string></map></map>
|
||||
<map><key>sound</key><map><key>type</key><string>string</string></map></map>
|
||||
<map><key>volume</key><map><key>type</key><string>float</string></map></map>
|
||||
<map><key>flags</key><map><key>type</key><string>integer</string></map></map>
|
||||
</array>
|
||||
</map>
|
||||
<key>llLinkPlaySound</key>
|
||||
|
@ -5113,6 +5134,7 @@
|
|||
<map><key>linknumber</key><map><key>type</key><string>integer</string></map></map>
|
||||
<map><key>sound</key><map><key>type</key><string>string</string></map></map>
|
||||
<map><key>volume</key><map><key>type</key><string>float</string></map></map>
|
||||
<map><key>flags</key><map><key>type</key><string>integer</string></map></map>
|
||||
</array>
|
||||
</map>
|
||||
<key>llLinksetDataAvailable</key>
|
||||
|
@ -7103,6 +7125,40 @@
|
|||
<map><key>volume</key><map><key>type</key><string>float</string></map></map>
|
||||
</array>
|
||||
</map>
|
||||
<key>osAESDecrypt</key>
|
||||
<map>
|
||||
<key>return</key><string>string</string>
|
||||
<key>arguments</key><array>
|
||||
<map><key>secret</key><map><key>type</key><string>string</string></map></map>
|
||||
<map><key>encryptedText</key><map><key>type</key><string>string</string></map></map>
|
||||
</array>
|
||||
</map>
|
||||
<key>osAESDecryptFrom</key>
|
||||
<map>
|
||||
<key>return</key><string>string</string>
|
||||
<key>arguments</key><array>
|
||||
<map><key>secret</key><map><key>type</key><string>string</string></map></map>
|
||||
<map><key>encryptedText</key><map><key>type</key><string>string</string></map></map>
|
||||
<map><key>ivString</key><map><key>type</key><string>string</string></map></map>
|
||||
</array>
|
||||
</map>
|
||||
<key>osAESEncrypt</key>
|
||||
<map>
|
||||
<key>return</key><string>string</string>
|
||||
<key>arguments</key><array>
|
||||
<map><key>secret</key><map><key>type</key><string>string</string></map></map>
|
||||
<map><key>plainText</key><map><key>type</key><string>string</string></map></map>
|
||||
</array>
|
||||
</map>
|
||||
<key>osAESEncryptTo</key>
|
||||
<map>
|
||||
<key>return</key><string>string</string>
|
||||
<key>arguments</key><array>
|
||||
<map><key>secret</key><map><key>type</key><string>string</string></map></map>
|
||||
<map><key>plainText</key><map><key>type</key><string>string</string></map></map>
|
||||
<map><key>ivString</key><map><key>type</key><string>string</string></map></map>
|
||||
</array>
|
||||
</map>
|
||||
<key>osAgentSaveAppearance</key>
|
||||
<map>
|
||||
<key>return</key><string>key</string>
|
||||
|
@ -7129,15 +7185,6 @@
|
|||
</array>
|
||||
</map>
|
||||
<key>osApproxEquals</key>
|
||||
<map>
|
||||
<key>return</key><string>integer</string>
|
||||
<key>arguments</key><array>
|
||||
<map><key>ra</key><map><key>type</key><string>rotation</string></map></map>
|
||||
<map><key>rb</key><map><key>type</key><string>rotation</string></map></map>
|
||||
<map><key>margin</key><map><key>type</key><string>float</string></map></map>
|
||||
</array>
|
||||
</map>
|
||||
<key>osApproxEquals</key>
|
||||
<map>
|
||||
<key>return</key><string>integer</string>
|
||||
<key>arguments</key><array>
|
||||
|
@ -7147,11 +7194,29 @@
|
|||
</array>
|
||||
</map>
|
||||
<key>osApproxEquals</key>
|
||||
<map>
|
||||
<key>return</key><string>integer</string>
|
||||
<key>arguments</key><array>
|
||||
<map><key>ra</key><map><key>type</key><string>rotation</string></map></map>
|
||||
<map><key>rb</key><map><key>type</key><string>rotation</string></map></map>
|
||||
<map><key>margin</key><map><key>type</key><string>float</string></map></map>
|
||||
</array>
|
||||
</map>
|
||||
<key>osApproxEquals</key>
|
||||
<map>
|
||||
<key>return</key><string>integer</string>
|
||||
<key>arguments</key><array>
|
||||
<map><key>ra</key><map><key>type</key><string>rotation</string></map></map>
|
||||
<map><key>rb</key><map><key>type</key><string>rotation</string></map></map>
|
||||
</array>
|
||||
</map>
|
||||
<key>osApproxEquals</key>
|
||||
<map>
|
||||
<key>return</key><string>integer</string>
|
||||
<key>arguments</key><array>
|
||||
<map><key>va</key><map><key>type</key><string>vector</string></map></map>
|
||||
<map><key>vb</key><map><key>type</key><string>vector</string></map></map>
|
||||
<map><key>margin</key><map><key>type</key><string>float</string></map></map>
|
||||
</array>
|
||||
</map>
|
||||
<key>osApproxEquals</key>
|
||||
|
@ -7168,15 +7233,6 @@
|
|||
<key>arguments</key><array>
|
||||
<map><key>va</key><map><key>type</key><string>vector</string></map></map>
|
||||
<map><key>vb</key><map><key>type</key><string>vector</string></map></map>
|
||||
<map><key>margin</key><map><key>type</key><string>float</string></map></map>
|
||||
</array>
|
||||
</map>
|
||||
<key>osApproxEquals</key>
|
||||
<map>
|
||||
<key>return</key><string>integer</string>
|
||||
<key>arguments</key><array>
|
||||
<map><key>ra</key><map><key>type</key><string>rotation</string></map></map>
|
||||
<map><key>rb</key><map><key>type</key><string>rotation</string></map></map>
|
||||
</array>
|
||||
</map>
|
||||
<key>osAvatarName2Key</key>
|
||||
|
@ -7205,15 +7261,15 @@
|
|||
<map>
|
||||
<key>return</key><string>integer</string>
|
||||
<key>arguments</key><array>
|
||||
<map><key>sFirstName</key><map><key>type</key><string>string</string></map></map>
|
||||
<map><key>sLastName</key><map><key>type</key><string>string</string></map></map>
|
||||
<map><key>avkey</key><map><key>type</key><string>key</string></map></map>
|
||||
</array>
|
||||
</map>
|
||||
<key>osAvatarType</key>
|
||||
<map>
|
||||
<key>return</key><string>integer</string>
|
||||
<key>arguments</key><array>
|
||||
<map><key>avkey</key><map><key>type</key><string>key</string></map></map>
|
||||
<map><key>sFirstName</key><map><key>type</key><string>string</string></map></map>
|
||||
<map><key>sLastName</key><map><key>type</key><string>string</string></map></map>
|
||||
</array>
|
||||
</map>
|
||||
<key>osCauseDamage</key>
|
||||
|
@ -7322,6 +7378,8 @@
|
|||
<key>return</key><string>string</string>
|
||||
<key>arguments</key><array>
|
||||
<map><key>drawList</key><map><key>type</key><string>string</string></map></map>
|
||||
<map><key>startX</key><map><key>type</key><string>integer</string></map></map>
|
||||
<map><key>startY</key><map><key>type</key><string>integer</string></map></map>
|
||||
<map><key>endX</key><map><key>type</key><string>integer</string></map></map>
|
||||
<map><key>endY</key><map><key>type</key><string>integer</string></map></map>
|
||||
</array>
|
||||
|
@ -7331,8 +7389,6 @@
|
|||
<key>return</key><string>string</string>
|
||||
<key>arguments</key><array>
|
||||
<map><key>drawList</key><map><key>type</key><string>string</string></map></map>
|
||||
<map><key>startX</key><map><key>type</key><string>integer</string></map></map>
|
||||
<map><key>startY</key><map><key>type</key><string>integer</string></map></map>
|
||||
<map><key>endX</key><map><key>type</key><string>integer</string></map></map>
|
||||
<map><key>endY</key><map><key>type</key><string>integer</string></map></map>
|
||||
</array>
|
||||
|
@ -7623,14 +7679,6 @@
|
|||
<map><key>itemNameOrId</key><map><key>type</key><string>string</string></map></map>
|
||||
</array>
|
||||
</map>
|
||||
<key>osGetLinkInventoryDesc</key>
|
||||
<map>
|
||||
<key>return</key><string>string</string>
|
||||
<key>arguments</key><array>
|
||||
<map><key>linkNumber</key><map><key>type</key><string>integer</string></map></map>
|
||||
<map><key>itemNameOrId</key><map><key>type</key><string>string</string></map></map>
|
||||
</array>
|
||||
</map>
|
||||
<key>osGetInventoryItemKey</key>
|
||||
<map>
|
||||
<key>return</key><string>key</string>
|
||||
|
@ -7638,23 +7686,6 @@
|
|||
<map><key>name</key><map><key>type</key><string>string</string></map></map>
|
||||
</array>
|
||||
</map>
|
||||
<key>osGetLinkInventoryAssetKey</key>
|
||||
<map>
|
||||
<key>return</key><string>key</string>
|
||||
<key>arguments</key><array>
|
||||
<map><key>linkNumber</key><map><key>type</key><string>integer</string></map></map>
|
||||
<map><key>name</key><map><key>type</key><string>string</string></map></map>
|
||||
<map><key>type</key><map><key>type</key><string>integer</string></map></map>
|
||||
</array>
|
||||
</map>
|
||||
<key>osGetLinkInventoryItemKey</key>
|
||||
<map>
|
||||
<key>return</key><string>key</string>
|
||||
<key>arguments</key><array>
|
||||
<map><key>linkNumber</key><map><key>type</key><string>integer</string></map></map>
|
||||
<map><key>name</key><map><key>type</key><string>string</string></map></map>
|
||||
</array>
|
||||
</map>
|
||||
<key>osGetInventoryItemKeys</key>
|
||||
<map>
|
||||
<key>return</key><string>list</string>
|
||||
|
@ -7683,6 +7714,52 @@
|
|||
<map><key>type</key><map><key>type</key><string>integer</string></map></map>
|
||||
</array>
|
||||
</map>
|
||||
<key>osGetLastChangedEventKey</key>
|
||||
<map>
|
||||
<key>return</key><string>key</string>
|
||||
<key>arguments</key><undef/>
|
||||
</map>
|
||||
<key>osGetLinkColor</key>
|
||||
<map>
|
||||
<key>return</key><string>vector</string>
|
||||
<key>arguments</key><array>
|
||||
<map><key>linknum</key><map><key>type</key><string>integer</string></map></map>
|
||||
<map><key>face</key><map><key>type</key><string>integer</string></map></map>
|
||||
</array>
|
||||
</map>
|
||||
<key>osGetLinkInventoryDesc</key>
|
||||
<map>
|
||||
<key>return</key><string>string</string>
|
||||
<key>arguments</key><array>
|
||||
<map><key>linkNumber</key><map><key>type</key><string>integer</string></map></map>
|
||||
<map><key>itemNameorid</key><map><key>type</key><string>string</string></map></map>
|
||||
</array>
|
||||
</map>
|
||||
<key>osGetLinkInventoryItemKey</key>
|
||||
<map>
|
||||
<key>return</key><string>key</string>
|
||||
<key>arguments</key><array>
|
||||
<map><key>linkNumber</key><map><key>type</key><string>integer</string></map></map>
|
||||
<map><key>name</key><map><key>type</key><string>string</string></map></map>
|
||||
</array>
|
||||
</map>
|
||||
<key>osGetLinkInventoryItemKeys</key>
|
||||
<map>
|
||||
<key>return</key><string>list</string>
|
||||
<key>arguments</key><array>
|
||||
<map><key>linkNumber</key><map><key>type</key><string>integer</string></map></map>
|
||||
<map><key>type</key><map><key>type</key><string>integer</string></map></map>
|
||||
</array>
|
||||
</map>
|
||||
<key>osGetLinkInventoryKey</key>
|
||||
<map>
|
||||
<key>return</key><string>key</string>
|
||||
<key>arguments</key><array>
|
||||
<map><key>linkNumber</key><map><key>type</key><string>integer</string></map></map>
|
||||
<map><key>name</key><map><key>type</key><string>string</string></map></map>
|
||||
<map><key>type</key><map><key>type</key><string>integer</string></map></map>
|
||||
</array>
|
||||
</map>
|
||||
<key>osGetLinkInventoryName</key>
|
||||
<map>
|
||||
<key>return</key><string>string</string>
|
||||
|
@ -7699,43 +7776,6 @@
|
|||
<map><key>type</key><map><key>type</key><string>integer</string></map></map>
|
||||
</array>
|
||||
</map>
|
||||
<key>osGetLinkInventoryItemKeys</key>
|
||||
<map>
|
||||
<key>return</key><string>list</string>
|
||||
<key>arguments</key><array>
|
||||
<map><key>linkNumber</key><map><key>type</key><string>integer</string></map></map>
|
||||
<map><key>type</key><map><key>type</key><string>integer</string></map></map>
|
||||
</array>
|
||||
</map>
|
||||
<key>osRemoveLinkInventory</key>
|
||||
<map>
|
||||
<key>arguments</key><array>
|
||||
<map><key>linkNumber</key><map><key>type</key><string>integer</string></map></map>
|
||||
<map><key>name</key><map><key>type</key><string>integer</string></map></map>
|
||||
</array>
|
||||
</map>
|
||||
<key>osGiveLinkInventory</key>
|
||||
<map>
|
||||
<key>arguments</key><array>
|
||||
<map><key>linkNumber</key><map><key>type</key><string>integer</string></map></map>
|
||||
<map><key>destination</key><map><key>type</key><string>key</string></map></map>
|
||||
<map><key>inventory</key><map><key>type</key><string>string</string></map></map>
|
||||
</array>
|
||||
</map>
|
||||
<key>osGiveLinkInventoryList</key>
|
||||
<map>
|
||||
<key>arguments</key><array>
|
||||
<map><key>linkNumber</key><map><key>type</key><string>integer</string></map></map>
|
||||
<map><key>destination</key><map><key>type</key><string>key</string></map></map>
|
||||
<map><key>category</key><map><key>type</key><string>string</string></map></map>
|
||||
<map><key>inventory</key><map><key>type</key><string>string</string></map></map>
|
||||
</array>
|
||||
</map>
|
||||
<key>osGetLastChangedEventKey</key>
|
||||
<map>
|
||||
<key>return</key><string>key</string>
|
||||
<key>arguments</key><undef/>
|
||||
</map>
|
||||
<key>osGetLinkNumber</key>
|
||||
<map>
|
||||
<key>return</key><string>integer</string>
|
||||
|
@ -7843,14 +7883,14 @@
|
|||
<key>osGetPrimCount</key>
|
||||
<map>
|
||||
<key>return</key><string>integer</string>
|
||||
<key>arguments</key><undef/>
|
||||
<key>arguments</key><array>
|
||||
<map><key>object_id</key><map><key>type</key><string>key</string></map></map>
|
||||
</array>
|
||||
</map>
|
||||
<key>osGetPrimCount</key>
|
||||
<map>
|
||||
<key>return</key><string>integer</string>
|
||||
<key>arguments</key><array>
|
||||
<map><key>object_id</key><map><key>type</key><string>key</string></map></map>
|
||||
</array>
|
||||
<key>arguments</key><undef/>
|
||||
</map>
|
||||
<key>osGetPrimitiveParams</key>
|
||||
<map>
|
||||
|
@ -7925,14 +7965,14 @@
|
|||
<key>osGetSittingAvatarsCount</key>
|
||||
<map>
|
||||
<key>return</key><string>integer</string>
|
||||
<key>arguments</key><array>
|
||||
<map><key>object_id</key><map><key>type</key><string>key</string></map></map>
|
||||
</array>
|
||||
<key>arguments</key><undef/>
|
||||
</map>
|
||||
<key>osGetSittingAvatarsCount</key>
|
||||
<map>
|
||||
<key>return</key><string>integer</string>
|
||||
<key>arguments</key><undef/>
|
||||
<key>arguments</key><array>
|
||||
<map><key>object_id</key><map><key>type</key><string>key</string></map></map>
|
||||
</array>
|
||||
</map>
|
||||
<key>osGetStandTarget</key>
|
||||
<map>
|
||||
|
@ -7962,6 +8002,23 @@
|
|||
<map><key>param</key><map><key>type</key><string>string</string></map></map>
|
||||
</array>
|
||||
</map>
|
||||
<key>osGiveLinkInventory</key>
|
||||
<map>
|
||||
<key>arguments</key><array>
|
||||
<map><key>linkNumber</key><map><key>type</key><string>integer</string></map></map>
|
||||
<map><key>destination</key><map><key>type</key><string>key</string></map></map>
|
||||
<map><key>inventory</key><map><key>type</key><string>string</string></map></map>
|
||||
</array>
|
||||
</map>
|
||||
<key>osGiveLinkInventoryList</key>
|
||||
<map>
|
||||
<key>arguments</key><array>
|
||||
<map><key>linkNumber</key><map><key>type</key><string>integer</string></map></map>
|
||||
<map><key>destination</key><map><key>type</key><string>key</string></map></map>
|
||||
<map><key>category</key><map><key>type</key><string>string</string></map></map>
|
||||
<map><key>inventory</key><map><key>type</key><string>list</string></map></map>
|
||||
</array>
|
||||
</map>
|
||||
<key>osInviteToGroup</key>
|
||||
<map>
|
||||
<key>return</key><string>integer</string>
|
||||
|
@ -8157,7 +8214,6 @@
|
|||
<map><key>name</key><map><key>type</key><string>string</string></map></map>
|
||||
<map><key>position</key><map><key>type</key><string>vector</string></map></map>
|
||||
<map><key>notecard</key><map><key>type</key><string>string</string></map></map>
|
||||
<map><key>options</key><map><key>type</key><string>integer</string></map></map>
|
||||
</array>
|
||||
</map>
|
||||
<key>osNpcCreate</key>
|
||||
|
@ -8168,6 +8224,7 @@
|
|||
<map><key>name</key><map><key>type</key><string>string</string></map></map>
|
||||
<map><key>position</key><map><key>type</key><string>vector</string></map></map>
|
||||
<map><key>notecard</key><map><key>type</key><string>string</string></map></map>
|
||||
<map><key>options</key><map><key>type</key><string>integer</string></map></map>
|
||||
</array>
|
||||
</map>
|
||||
<key>osNpcGetOwner</key>
|
||||
|
@ -8242,6 +8299,7 @@
|
|||
<key>arguments</key><array>
|
||||
<map><key>npc</key><map><key>type</key><string>key</string></map></map>
|
||||
<map><key>notecard</key><map><key>type</key><string>string</string></map></map>
|
||||
<map><key>includeHuds</key><map><key>type</key><string>integer</string></map></map>
|
||||
</array>
|
||||
</map>
|
||||
<key>osNpcSaveAppearance</key>
|
||||
|
@ -8250,14 +8308,12 @@
|
|||
<key>arguments</key><array>
|
||||
<map><key>npc</key><map><key>type</key><string>key</string></map></map>
|
||||
<map><key>notecard</key><map><key>type</key><string>string</string></map></map>
|
||||
<map><key>includeHuds</key><map><key>type</key><string>integer</string></map></map>
|
||||
</array>
|
||||
</map>
|
||||
<key>osNpcSay</key>
|
||||
<map>
|
||||
<key>arguments</key><array>
|
||||
<map><key>npc</key><map><key>type</key><string>key</string></map></map>
|
||||
<map><key>channel</key><map><key>type</key><string>integer</string></map></map>
|
||||
<map><key>message</key><map><key>type</key><string>string</string></map></map>
|
||||
</array>
|
||||
</map>
|
||||
|
@ -8265,6 +8321,7 @@
|
|||
<map>
|
||||
<key>arguments</key><array>
|
||||
<map><key>npc</key><map><key>type</key><string>key</string></map></map>
|
||||
<map><key>channel</key><map><key>type</key><string>integer</string></map></map>
|
||||
<map><key>message</key><map><key>type</key><string>string</string></map></map>
|
||||
</array>
|
||||
</map>
|
||||
|
@ -8435,13 +8492,21 @@
|
|||
<key>osRegionNotice</key>
|
||||
<map>
|
||||
<key>arguments</key><array>
|
||||
<map><key>agentID</key><map><key>type</key><string>key</string></map></map>
|
||||
<map><key>msg</key><map><key>type</key><string>string</string></map></map>
|
||||
</array>
|
||||
</map>
|
||||
<key>osRegionNotice</key>
|
||||
<map>
|
||||
<key>arguments</key><array>
|
||||
<map><key>agentID</key><map><key>type</key><string>key</string></map></map>
|
||||
<map><key>msg</key><map><key>type</key><string>string</string></map></map>
|
||||
</array>
|
||||
</map>
|
||||
<key>osRegionRestart</key>
|
||||
<map>
|
||||
<key>return</key><string>integer</string>
|
||||
<key>arguments</key><array>
|
||||
<map><key>seconds</key><map><key>type</key><string>float</string></map></map>
|
||||
<map><key>msg</key><map><key>type</key><string>string</string></map></map>
|
||||
</array>
|
||||
</map>
|
||||
|
@ -8452,12 +8517,11 @@
|
|||
<map><key>seconds</key><map><key>type</key><string>float</string></map></map>
|
||||
</array>
|
||||
</map>
|
||||
<key>osRegionRestart</key>
|
||||
<key>osRemoveLinkInventory</key>
|
||||
<map>
|
||||
<key>return</key><string>integer</string>
|
||||
<key>arguments</key><array>
|
||||
<map><key>seconds</key><map><key>type</key><string>float</string></map></map>
|
||||
<map><key>msg</key><map><key>type</key><string>string</string></map></map>
|
||||
<map><key>linkNumber</key><map><key>type</key><string>integer</string></map></map>
|
||||
<map><key>name</key><map><key>type</key><string>string</string></map></map>
|
||||
</array>
|
||||
</map>
|
||||
<key>osReplaceAgentEnvironment</key>
|
||||
|
@ -8697,7 +8761,7 @@
|
|||
<key>return</key><string>string</string>
|
||||
<key>arguments</key><array>
|
||||
<map><key>drawList</key><map><key>type</key><string>string</string></map></map>
|
||||
<map><key>color</key><map><key>type</key><string>vector</string></map></map>
|
||||
<map><key>color</key><map><key>type</key><string>string</string></map></map>
|
||||
</array>
|
||||
</map>
|
||||
<key>osSetPenColor</key>
|
||||
|
@ -8705,7 +8769,7 @@
|
|||
<key>return</key><string>string</string>
|
||||
<key>arguments</key><array>
|
||||
<map><key>drawList</key><map><key>type</key><string>string</string></map></map>
|
||||
<map><key>color</key><map><key>type</key><string>string</string></map></map>
|
||||
<map><key>color</key><map><key>type</key><string>vector</string></map></map>
|
||||
</array>
|
||||
</map>
|
||||
<key>osSetPenColor</key>
|
||||
|
@ -8747,17 +8811,6 @@
|
|||
</array>
|
||||
</map>
|
||||
<key>osSetProjectionParams</key>
|
||||
<map>
|
||||
<key>arguments</key><array>
|
||||
<map><key>linknumber</key><map><key>type</key><string>integer</string></map></map>
|
||||
<map><key>projection</key><map><key>type</key><string>integer</string></map></map>
|
||||
<map><key>texture</key><map><key>type</key><string>key</string></map></map>
|
||||
<map><key>fov</key><map><key>type</key><string>float</string></map></map>
|
||||
<map><key>focus</key><map><key>type</key><string>float</string></map></map>
|
||||
<map><key>amb</key><map><key>type</key><string>float</string></map></map>
|
||||
</array>
|
||||
</map>
|
||||
<key>osSetProjectionParams</key>
|
||||
<map>
|
||||
<key>arguments</key><array>
|
||||
<map><key>projection</key><map><key>type</key><string>integer</string></map></map>
|
||||
|
@ -8778,6 +8831,17 @@
|
|||
<map><key>amb</key><map><key>type</key><string>float</string></map></map>
|
||||
</array>
|
||||
</map>
|
||||
<key>osSetProjectionParams</key>
|
||||
<map>
|
||||
<key>arguments</key><array>
|
||||
<map><key>linknumber</key><map><key>type</key><string>integer</string></map></map>
|
||||
<map><key>projection</key><map><key>type</key><string>integer</string></map></map>
|
||||
<map><key>texture</key><map><key>type</key><string>key</string></map></map>
|
||||
<map><key>fov</key><map><key>type</key><string>float</string></map></map>
|
||||
<map><key>focus</key><map><key>type</key><string>float</string></map></map>
|
||||
<map><key>amb</key><map><key>type</key><string>float</string></map></map>
|
||||
</array>
|
||||
</map>
|
||||
<key>osSetRegionSunSettings</key>
|
||||
<map>
|
||||
<key>arguments</key><array>
|
||||
|
@ -8923,6 +8987,8 @@
|
|||
<key>arguments</key><array>
|
||||
<map><key>src</key><map><key>type</key><string>string</string></map></map>
|
||||
<map><key>value</key><map><key>type</key><string>string</string></map></map>
|
||||
<map><key>start</key><map><key>type</key><string>integer</string></map></map>
|
||||
<map><key>count</key><map><key>type</key><string>integer</string></map></map>
|
||||
<map><key>ignorecase</key><map><key>type</key><string>integer</string></map></map>
|
||||
</array>
|
||||
</map>
|
||||
|
@ -8932,8 +8998,6 @@
|
|||
<key>arguments</key><array>
|
||||
<map><key>src</key><map><key>type</key><string>string</string></map></map>
|
||||
<map><key>value</key><map><key>type</key><string>string</string></map></map>
|
||||
<map><key>start</key><map><key>type</key><string>integer</string></map></map>
|
||||
<map><key>count</key><map><key>type</key><string>integer</string></map></map>
|
||||
<map><key>ignorecase</key><map><key>type</key><string>integer</string></map></map>
|
||||
</array>
|
||||
</map>
|
||||
|
@ -8970,6 +9034,7 @@
|
|||
<key>arguments</key><array>
|
||||
<map><key>src</key><map><key>type</key><string>string</string></map></map>
|
||||
<map><key>start</key><map><key>type</key><string>integer</string></map></map>
|
||||
<map><key>length</key><map><key>type</key><string>integer</string></map></map>
|
||||
</array>
|
||||
</map>
|
||||
<key>osStringSubString</key>
|
||||
|
@ -8978,7 +9043,6 @@
|
|||
<key>arguments</key><array>
|
||||
<map><key>src</key><map><key>type</key><string>string</string></map></map>
|
||||
<map><key>start</key><map><key>type</key><string>integer</string></map></map>
|
||||
<map><key>length</key><map><key>type</key><string>integer</string></map></map>
|
||||
</array>
|
||||
</map>
|
||||
<key>osSunGetParam</key>
|
||||
|
@ -8999,7 +9063,6 @@
|
|||
<map>
|
||||
<key>arguments</key><array>
|
||||
<map><key>agent</key><map><key>type</key><string>string</string></map></map>
|
||||
<map><key>regionName</key><map><key>type</key><string>string</string></map></map>
|
||||
<map><key>position</key><map><key>type</key><string>vector</string></map></map>
|
||||
<map><key>lookat</key><map><key>type</key><string>vector</string></map></map>
|
||||
</array>
|
||||
|
@ -9018,6 +9081,7 @@
|
|||
<map>
|
||||
<key>arguments</key><array>
|
||||
<map><key>agent</key><map><key>type</key><string>string</string></map></map>
|
||||
<map><key>regionName</key><map><key>type</key><string>string</string></map></map>
|
||||
<map><key>position</key><map><key>type</key><string>vector</string></map></map>
|
||||
<map><key>lookat</key><map><key>type</key><string>vector</string></map></map>
|
||||
</array>
|
||||
|
@ -9033,6 +9097,14 @@
|
|||
</array>
|
||||
</map>
|
||||
<key>osTeleportOwner</key>
|
||||
<map>
|
||||
<key>arguments</key><array>
|
||||
<map><key>regionName</key><map><key>type</key><string>string</string></map></map>
|
||||
<map><key>position</key><map><key>type</key><string>vector</string></map></map>
|
||||
<map><key>lookat</key><map><key>type</key><string>vector</string></map></map>
|
||||
</array>
|
||||
</map>
|
||||
<key>osTeleportOwner</key>
|
||||
<map>
|
||||
<key>arguments</key><array>
|
||||
<map><key>position</key><map><key>type</key><string>vector</string></map></map>
|
||||
|
@ -9048,12 +9120,11 @@
|
|||
<map><key>lookat</key><map><key>type</key><string>vector</string></map></map>
|
||||
</array>
|
||||
</map>
|
||||
<key>osTeleportOwner</key>
|
||||
<key>osTemperature2sRGB</key>
|
||||
<map>
|
||||
<key>return</key><string>vector</string>
|
||||
<key>arguments</key><array>
|
||||
<map><key>regionName</key><map><key>type</key><string>string</string></map></map>
|
||||
<map><key>position</key><map><key>type</key><string>vector</string></map></map>
|
||||
<map><key>lookat</key><map><key>type</key><string>vector</string></map></map>
|
||||
<map><key>dtemp</key><map><key>type</key><string>float</string></map></map>
|
||||
</array>
|
||||
</map>
|
||||
<key>osTerrainFlush</key>
|
||||
|
@ -9119,39 +9190,5 @@
|
|||
<key>return</key><string>string</string>
|
||||
<key>arguments</key><undef/>
|
||||
</map>
|
||||
<key>osAESEncrypt</key>
|
||||
<map>
|
||||
<key>return</key><string>string</string>
|
||||
<key>arguments</key><array>
|
||||
<map><key>secret</key><map><key>type</key><string>string</string></map></map>
|
||||
<map><key>plainText</key><map><key>type</key><string>string</string></map></map>
|
||||
</array>
|
||||
</map>
|
||||
<key>osAESEncryptTo</key>
|
||||
<map>
|
||||
<key>return</key><string>string</string>
|
||||
<key>arguments</key><array>
|
||||
<map><key>secret</key><map><key>type</key><string>string</string></map></map>
|
||||
<map><key>plainText</key><map><key>type</key><string>string</string></map></map>
|
||||
<map><key>ivString</key><map><key>type</key><string>string</string></map></map>
|
||||
</array>
|
||||
</map>
|
||||
<key>osAESDecrypt</key>
|
||||
<map>
|
||||
<key>return</key><string>string</string>
|
||||
<key>arguments</key><array>
|
||||
<map><key>secret</key><map><key>type</key><string>string</string></map></map>
|
||||
<map><key>encryptedText</key><map><key>type</key><string>string</string></map></map>
|
||||
</array>
|
||||
</map>
|
||||
<key>osAESDecryptFrom</key>
|
||||
<map>
|
||||
<key>return</key><string>string</string>
|
||||
<key>arguments</key><array>
|
||||
<map><key>secret</key><map><key>type</key><string>string</string></map></map>
|
||||
<map><key>encryptedText</key><map><key>type</key><string>string</string></map></map>
|
||||
<map><key>ivString</key><map><key>type</key><string>string</string></map></map>
|
||||
</array>
|
||||
</map>
|
||||
</map>
|
||||
</map></llsd>
|
Loading…
Reference in a new issue