Merge branch 'master' into careminster-presence-refactor
commit
40873504dc
|
@ -1711,5 +1711,9 @@ namespace OpenSim.Client.MXP.ClientStack
|
|||
public void SendChangeUserRights(UUID agentID, UUID friendID, int rights)
|
||||
{
|
||||
}
|
||||
|
||||
public void SendTextBoxRequest(string message, int chatChannel, string objectname, string ownerFirstName, string ownerLastName, UUID objectId)
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1200,6 +1200,10 @@ namespace OpenSim.Client.Sirikata.ClientStack
|
|||
{
|
||||
}
|
||||
|
||||
public void SendTextBoxRequest(string message, int chatChannel, string objectname, string ownerFirstName, string ownerLastName, UUID objectId)
|
||||
{
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1215,5 +1215,9 @@ namespace OpenSim.Client.VWoHTTP.ClientStack
|
|||
public void SendChangeUserRights(UUID agentID, UUID friendID, int rights)
|
||||
{
|
||||
}
|
||||
|
||||
public void SendTextBoxRequest(string message, int chatChannel, string objectname, string ownerFirstName, string ownerLastName, UUID objectId)
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -72,7 +72,7 @@ namespace OpenSim.Data.MSSQL
|
|||
using (SqlCommand cmd = new SqlCommand())
|
||||
{
|
||||
|
||||
cmd.CommandText = String.Format("select a.*,b.Flags as TheirFlags from {0} as a left join {0} as b on a.PrincipalID = b.Friend and a.Friend = b.PrincipalID where a.PrincipalID = ?PrincipalID and b.Flags is not null", m_Realm);
|
||||
cmd.CommandText = String.Format("select a.*,case when b.Flags is null then -1 else b.Flags end as TheirFlags from {0} as a left join {0} as b on a.PrincipalID = b.Friend and a.Friend = b.PrincipalID where a.PrincipalID = @PrincipalID", m_Realm);
|
||||
cmd.Parameters.Add(m_database.CreateParameter("@PrincipalID", principalID.ToString()));
|
||||
cmd.Connection = conn;
|
||||
conn.Open();
|
||||
|
|
|
@ -0,0 +1,68 @@
|
|||
/*
|
||||
* 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.Generic;
|
||||
using System.Data;
|
||||
using System.Reflection;
|
||||
using System.Threading;
|
||||
using log4net;
|
||||
using OpenMetaverse;
|
||||
using OpenSim.Framework;
|
||||
using System.Data.SqlClient;
|
||||
|
||||
namespace OpenSim.Data.MSSQL
|
||||
{
|
||||
/// <summary>
|
||||
/// A MSSQL Interface for Avatar Storage
|
||||
/// </summary>
|
||||
public class MSSQLGridUserData : MSSQLGenericTableHandler<GridUserData>,
|
||||
IGridUserData
|
||||
{
|
||||
private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
|
||||
|
||||
public MSSQLGridUserData(string connectionString, string realm) :
|
||||
base(connectionString, realm, "UserGrid")
|
||||
{
|
||||
}
|
||||
|
||||
public GridUserData GetGridUserData(string userID)
|
||||
{
|
||||
GridUserData[] ret = Get("UserID", userID);
|
||||
|
||||
if (ret.Length == 0)
|
||||
return null;
|
||||
|
||||
return ret[0];
|
||||
}
|
||||
|
||||
public bool StoreGridUserData(GridUserData data)
|
||||
{
|
||||
return Store(data);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -2,7 +2,7 @@ BEGIN TRANSACTION
|
|||
|
||||
CREATE TABLE [Friends] (
|
||||
[PrincipalID] uniqueidentifier NOT NULL,
|
||||
[FriendID] varchar(255) NOT NULL,
|
||||
[Friend] varchar(255) NOT NULL,
|
||||
[Flags] char(16) NOT NULL DEFAULT '0',
|
||||
[Offered] varchar(32) NOT NULL DEFAULT 0)
|
||||
ON [PRIMARY]
|
||||
|
|
|
@ -0,0 +1,14 @@
|
|||
CREATE TABLE [UserAccounts] (
|
||||
[PrincipalID] uniqueidentifier NOT NULL,
|
||||
[ScopeID] uniqueidentifier NOT NULL,
|
||||
[FirstName] [varchar](64) NOT NULL,
|
||||
[LastName] [varchar](64) NOT NULL,
|
||||
[Email] [varchar](64) NULL,
|
||||
[ServiceURLs] [text] NULL,
|
||||
[Created] [int] default NULL,
|
||||
|
||||
PRIMARY KEY CLUSTERED
|
||||
(
|
||||
[PrincipalID] ASC
|
||||
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
|
||||
) ON [PRIMARY]
|
|
@ -1,6 +1,6 @@
|
|||
BEGIN TRANSACTION
|
||||
|
||||
INSERT INTO Friends (PrincipalID, FriendID, Flags, Offered) SELECT [ownerID], [friendID], [friendPerms], 0 FROM userfriends;
|
||||
INSERT INTO Friends (PrincipalID, Friend, Flags, Offered) SELECT [ownerID], [friendID], [friendPerms], 0 FROM userfriends;
|
||||
|
||||
|
||||
COMMIT
|
|
@ -0,0 +1,9 @@
|
|||
BEGIN TRANSACTION
|
||||
|
||||
CREATE UNIQUE INDEX PrincipalID ON UserAccounts(PrincipalID);
|
||||
CREATE INDEX Email ON UserAccounts(Email);
|
||||
CREATE INDEX FirstName ON UserAccounts(FirstName);
|
||||
CREATE INDEX LastName ON UserAccounts(LastName);
|
||||
CREATE INDEX Name ON UserAccounts(FirstName,LastName);
|
||||
|
||||
COMMIT
|
|
@ -0,0 +1,7 @@
|
|||
BEGIN TRANSACTION
|
||||
|
||||
ALTER TABLE UserAccounts ADD UserLevel integer NOT NULL DEFAULT 0;
|
||||
ALTER TABLE UserAccounts ADD UserFlags integer NOT NULL DEFAULT 0;
|
||||
ALTER TABLE UserAccounts ADD UserTitle varchar(64) NOT NULL DEFAULT '';
|
||||
|
||||
COMMIT
|
|
@ -1480,5 +1480,6 @@ namespace OpenSim.Framework
|
|||
void SendGroupTransactionsSummaryDetails(IClientAPI sender,UUID groupID, UUID transactionID, UUID sessionID,int amt);
|
||||
|
||||
void SendChangeUserRights(UUID agentID, UUID friendID, int rights);
|
||||
void SendTextBoxRequest(string message, int chatChannel, string objectname, string ownerFirstName, string ownerLastName, UUID objectId);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -91,6 +91,8 @@ namespace OpenSim.Framework
|
|||
/// </exception>
|
||||
bool PresenceChildStatus(UUID agentId);
|
||||
|
||||
bool TryGetAvatar(UUID agentID, out object scenePresence);
|
||||
|
||||
T RequestModuleInterface<T>();
|
||||
T[] RequestModuleInterfaces<T>();
|
||||
|
||||
|
|
|
@ -59,6 +59,20 @@ namespace OpenSim.Framework
|
|||
return "application/vnd.ll.gesture";
|
||||
case AssetType.Simstate:
|
||||
return "application/x-metaverse-simstate";
|
||||
case AssetType.FavoriteFolder:
|
||||
return "application/vnd.ll.favoritefolder";
|
||||
case AssetType.Link:
|
||||
return "application/vnd.ll.link";
|
||||
case AssetType.LinkFolder:
|
||||
return "application/vnd.ll.linkfolder";
|
||||
case AssetType.CurrentOutfitFolder:
|
||||
return "application/vnd.ll.currentoutfitfolder";
|
||||
case AssetType.OutfitFolder:
|
||||
return "application/vnd.ll.outfitfolder";
|
||||
case AssetType.MyOutfitsFolder:
|
||||
return "application/vnd.ll.myoutfitsfolder";
|
||||
case AssetType.InboxFolder:
|
||||
return "application/vnd.ll.inboxfolder";
|
||||
case AssetType.Unknown:
|
||||
default:
|
||||
return "application/octet-stream";
|
||||
|
@ -123,6 +137,20 @@ namespace OpenSim.Framework
|
|||
return (sbyte)AssetType.Gesture;
|
||||
case "application/x-metaverse-simstate":
|
||||
return (sbyte)AssetType.Simstate;
|
||||
case "application/vnd.ll.favoritefolder":
|
||||
return (sbyte)AssetType.FavoriteFolder;
|
||||
case "application/vnd.ll.link":
|
||||
return (sbyte)AssetType.Link;
|
||||
case "application/vnd.ll.linkfolder":
|
||||
return (sbyte)AssetType.LinkFolder;
|
||||
case "application/vnd.ll.currentoutfitfolder":
|
||||
return (sbyte)AssetType.CurrentOutfitFolder;
|
||||
case "application/vnd.ll.outfitfolder":
|
||||
return (sbyte)AssetType.OutfitFolder;
|
||||
case "application/vnd.ll.myoutfitsfolder":
|
||||
return (sbyte)AssetType.MyOutfitsFolder;
|
||||
case "application/vnd.ll.inboxfolder":
|
||||
return (sbyte)AssetType.InboxFolder;
|
||||
case "application/octet-stream":
|
||||
default:
|
||||
return (sbyte)AssetType.Unknown;
|
||||
|
|
|
@ -29,6 +29,7 @@ using System;
|
|||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.Data;
|
||||
using System.Diagnostics;
|
||||
using System.Globalization;
|
||||
using System.IO;
|
||||
using System.IO.Compression;
|
||||
|
@ -1443,6 +1444,7 @@ namespace OpenSim.Framework
|
|||
}
|
||||
|
||||
#endregion FireAndForget Threading Pattern
|
||||
|
||||
/// <summary>
|
||||
/// Environment.TickCount is an int but it counts all 32 bits so it goes positive
|
||||
/// and negative every 24.9 days. This trims down TickCount so it doesn't wrap
|
||||
|
@ -1467,5 +1469,21 @@ namespace OpenSim.Framework
|
|||
Int32 diff = EnvironmentTickCount() - prevValue;
|
||||
return (diff >= 0) ? diff : (diff + EnvironmentTickCountMask + 1);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Prints the call stack at any given point. Useful for debugging.
|
||||
/// </summary>
|
||||
public static void PrintCallStack()
|
||||
{
|
||||
StackTrace stackTrace = new StackTrace(); // get call stack
|
||||
StackFrame[] stackFrames = stackTrace.GetFrames(); // get method calls (frames)
|
||||
|
||||
// write call stack method names
|
||||
foreach (StackFrame stackFrame in stackFrames)
|
||||
{
|
||||
m_log.Debug(stackFrame.GetMethod().DeclaringType + "." + stackFrame.GetMethod().Name); // write method name
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
@ -11621,5 +11621,25 @@ namespace OpenSim.Region.ClientStack.LindenUDP
|
|||
|
||||
OutPacket(packet, ThrottleOutPacketType.Task);
|
||||
}
|
||||
|
||||
public void SendTextBoxRequest(string message, int chatChannel, string objectname, string ownerFirstName, string ownerLastName, UUID objectId)
|
||||
{
|
||||
ScriptDialogPacket dialog = (ScriptDialogPacket)PacketPool.Instance.GetPacket(PacketType.ScriptDialog);
|
||||
dialog.Data.ObjectID = objectId;
|
||||
dialog.Data.ChatChannel = chatChannel;
|
||||
dialog.Data.ImageID = UUID.Zero;
|
||||
dialog.Data.ObjectName = Util.StringToBytes256(objectname);
|
||||
// this is the username of the *owner*
|
||||
dialog.Data.FirstName = Util.StringToBytes256(ownerFirstName);
|
||||
dialog.Data.LastName = Util.StringToBytes256(ownerLastName);
|
||||
dialog.Data.Message = Util.StringToBytes256(message);
|
||||
|
||||
|
||||
ScriptDialogPacket.ButtonsBlock[] buttons = new ScriptDialogPacket.ButtonsBlock[1];
|
||||
buttons[0] = new ScriptDialogPacket.ButtonsBlock();
|
||||
buttons[0].ButtonLabel = Util.StringToBytes256("!!llTextBox!!");
|
||||
dialog.Buttons = buttons;
|
||||
OutPacket(dialog, ThrottleOutPacketType.Task);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -60,6 +60,8 @@ namespace OpenSim.Region.CoreModules.Agent.TextureSender
|
|||
|
||||
#region IRegionModule
|
||||
|
||||
private bool m_useCSJ2K = true;
|
||||
|
||||
public string Name { get { return "J2KDecoderModule"; } }
|
||||
public bool IsSharedModule { get { return true; } }
|
||||
|
||||
|
@ -73,6 +75,12 @@ namespace OpenSim.Region.CoreModules.Agent.TextureSender
|
|||
m_scene = scene;
|
||||
|
||||
scene.RegisterModuleInterface<IJ2KDecoder>(this);
|
||||
|
||||
IConfig startupConfig = source.Configs["Startup"];
|
||||
if (startupConfig != null)
|
||||
{
|
||||
m_useCSJ2K = startupConfig.GetBoolean("UseCSJ2K", m_useCSJ2K);
|
||||
}
|
||||
}
|
||||
|
||||
public void PostInitialise()
|
||||
|
@ -144,41 +152,52 @@ namespace OpenSim.Region.CoreModules.Agent.TextureSender
|
|||
/// <param name="j2kData">JPEG2000 data</param>
|
||||
private void DoJ2KDecode(UUID assetID, byte[] j2kData)
|
||||
{
|
||||
// int DecodeTime = 0;
|
||||
// DecodeTime = Environment.TickCount;
|
||||
//int DecodeTime = 0;
|
||||
//DecodeTime = Environment.TickCount;
|
||||
OpenJPEG.J2KLayerInfo[] layers;
|
||||
|
||||
if (!TryLoadCacheForAsset(assetID, out layers))
|
||||
{
|
||||
try
|
||||
if (m_useCSJ2K)
|
||||
{
|
||||
List<int> layerStarts = CSJ2K.J2kImage.GetLayerBoundaries(new MemoryStream(j2kData));
|
||||
|
||||
if (layerStarts != null && layerStarts.Count > 0)
|
||||
try
|
||||
{
|
||||
layers = new OpenJPEG.J2KLayerInfo[layerStarts.Count];
|
||||
List<int> layerStarts = CSJ2K.J2kImage.GetLayerBoundaries(new MemoryStream(j2kData));
|
||||
|
||||
for (int i = 0; i < layerStarts.Count; i++)
|
||||
if (layerStarts != null && layerStarts.Count > 0)
|
||||
{
|
||||
OpenJPEG.J2KLayerInfo layer = new OpenJPEG.J2KLayerInfo();
|
||||
layers = new OpenJPEG.J2KLayerInfo[layerStarts.Count];
|
||||
|
||||
if (i == 0)
|
||||
layer.Start = 0;
|
||||
else
|
||||
layer.Start = layerStarts[i];
|
||||
for (int i = 0; i < layerStarts.Count; i++)
|
||||
{
|
||||
OpenJPEG.J2KLayerInfo layer = new OpenJPEG.J2KLayerInfo();
|
||||
|
||||
if (i == layerStarts.Count - 1)
|
||||
layer.End = j2kData.Length;
|
||||
else
|
||||
layer.End = layerStarts[i + 1] - 1;
|
||||
if (i == 0)
|
||||
layer.Start = 0;
|
||||
else
|
||||
layer.Start = layerStarts[i];
|
||||
|
||||
layers[i] = layer;
|
||||
if (i == layerStarts.Count - 1)
|
||||
layer.End = j2kData.Length;
|
||||
else
|
||||
layer.End = layerStarts[i + 1] - 1;
|
||||
|
||||
layers[i] = layer;
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
m_log.Warn("[J2KDecoderModule]: CSJ2K threw an exception decoding texture " + assetID + ": " + ex.Message);
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
else
|
||||
{
|
||||
m_log.Warn("[J2KDecoderModule]: CSJ2K threw an exception decoding texture " + assetID + ": " + ex.Message);
|
||||
int components;
|
||||
if (!OpenJPEG.DecodeLayerBoundaries(j2kData, out layers, out components))
|
||||
{
|
||||
m_log.Warn("[J2KDecoderModule]: OpenJPEG failed to decode texture " + assetID);
|
||||
}
|
||||
}
|
||||
|
||||
if (layers == null || layers.Length == 0)
|
||||
|
|
|
@ -25,6 +25,7 @@
|
|||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Reflection;
|
||||
using log4net;
|
||||
|
@ -151,7 +152,30 @@ namespace OpenSim.Region.CoreModules.Avatar.Dialog
|
|||
// region as the sending avatar.
|
||||
SendNotificationToUsersInRegion(fromAvatarID, fromAvatarName, message);
|
||||
}
|
||||
|
||||
|
||||
public void SendTextBoxToUser(UUID avatarid, string message, int chatChannel, string name, UUID objectid, UUID ownerid)
|
||||
{
|
||||
UserAccount account = m_scene.UserAccountService.GetUserAccount(m_scene.RegionInfo.ScopeID, ownerid);
|
||||
string ownerFirstName, ownerLastName;
|
||||
if (account != null)
|
||||
{
|
||||
ownerFirstName = account.FirstName;
|
||||
ownerLastName = account.LastName;
|
||||
}
|
||||
else
|
||||
{
|
||||
ownerFirstName = "(unknown";
|
||||
ownerLastName = "user)";
|
||||
}
|
||||
|
||||
|
||||
ScenePresence sp = m_scene.GetScenePresence(avatarid);
|
||||
|
||||
if (sp != null) {
|
||||
sp.ControllingClient.SendTextBoxRequest(message, chatChannel, name, ownerFirstName, ownerLastName, objectid);
|
||||
}
|
||||
}
|
||||
|
||||
public void SendNotificationToUsersInRegion(
|
||||
UUID fromAvatarID, string fromAvatarName, string message)
|
||||
{
|
||||
|
|
|
@ -69,7 +69,7 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Asset
|
|||
IConfig assetConfig = source.Configs["AssetService"];
|
||||
if (assetConfig == null)
|
||||
{
|
||||
m_log.Error("[ASSET CONNECTOR]: AssetService missing from OpanSim.ini");
|
||||
m_log.Error("[ASSET CONNECTOR]: AssetService missing from OpenSim.ini");
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
|
@ -66,7 +66,7 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Avatar
|
|||
IConfig userConfig = source.Configs["AvatarService"];
|
||||
if (userConfig == null)
|
||||
{
|
||||
m_log.Error("[AVATAR CONNECTOR]: AvatarService missing from OpanSim.ini");
|
||||
m_log.Error("[AVATAR CONNECTOR]: AvatarService missing from OpenSim.ini");
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
|
@ -77,23 +77,28 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Presence
|
|||
|
||||
public void OnNewClient(IClientAPI client)
|
||||
{
|
||||
client.OnLogout += OnLogout;
|
||||
client.OnConnectionClosed += OnConnectionClose;
|
||||
}
|
||||
|
||||
public void OnLogout(IClientAPI client)
|
||||
public void OnConnectionClose(IClientAPI client)
|
||||
{
|
||||
client.OnLogout -= OnLogout;
|
||||
|
||||
ScenePresence sp = null;
|
||||
Vector3 position = new Vector3(128, 128, 0);
|
||||
Vector3 lookat = new Vector3(0, 1, 0);
|
||||
|
||||
if (m_aScene.TryGetAvatar(client.AgentId, out sp))
|
||||
if (client.IsLoggingOut)
|
||||
{
|
||||
position = sp.AbsolutePosition;
|
||||
lookat = sp.Lookat;
|
||||
object sp = null;
|
||||
Vector3 position = new Vector3(128, 128, 0);
|
||||
Vector3 lookat = new Vector3(0, 1, 0);
|
||||
|
||||
if (client.Scene.TryGetAvatar(client.AgentId, out sp))
|
||||
{
|
||||
if (sp is ScenePresence)
|
||||
{
|
||||
position = ((ScenePresence)sp).AbsolutePosition;
|
||||
lookat = ((ScenePresence)sp).Lookat;
|
||||
}
|
||||
}
|
||||
|
||||
m_PresenceService.LogoutAgent(client.SessionId, position, lookat);
|
||||
}
|
||||
m_PresenceService.LogoutAgent(client.SessionId, position, lookat);
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
@ -69,7 +69,7 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Simulation
|
|||
//IConfig userConfig = config.Configs["SimulationService"];
|
||||
//if (userConfig == null)
|
||||
//{
|
||||
// m_log.Error("[AVATAR CONNECTOR]: SimulationService missing from OpanSim.ini");
|
||||
// m_log.Error("[AVATAR CONNECTOR]: SimulationService missing from OpenSim.ini");
|
||||
// return;
|
||||
//}
|
||||
|
||||
|
|
|
@ -74,7 +74,7 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Simulation
|
|||
//IConfig userConfig = config.Configs["SimulationService"];
|
||||
//if (userConfig == null)
|
||||
//{
|
||||
// m_log.Error("[AVATAR CONNECTOR]: SimulationService missing from OpanSim.ini");
|
||||
// m_log.Error("[AVATAR CONNECTOR]: SimulationService missing from OpenSim.ini");
|
||||
// return;
|
||||
//}
|
||||
|
||||
|
|
|
@ -69,7 +69,7 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.UserAccounts
|
|||
IConfig userConfig = source.Configs["UserAccountService"];
|
||||
if (userConfig == null)
|
||||
{
|
||||
m_log.Error("[USER CONNECTOR]: UserAccountService missing from OpanSim.ini");
|
||||
m_log.Error("[USER CONNECTOR]: UserAccountService missing from OpenSim.ini");
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
|
@ -609,16 +609,17 @@ namespace OpenSim.Region.CoreModules.World.Permissions
|
|||
if (IsFriendWithPerms(user, objectOwner))
|
||||
return objectOwnerMask;
|
||||
|
||||
// Estate users should be able to edit anything in the sim
|
||||
if (IsEstateManager(user) && m_RegionOwnerIsGod && (!IsAdministrator(objectOwner)) || objectOwner == user)
|
||||
// Estate users should be able to edit anything in the sim if RegionOwnerIsGod is set
|
||||
if (IsEstateManager(user) && m_RegionOwnerIsGod)
|
||||
return objectOwnerMask;
|
||||
|
||||
// Admin should be able to edit anything in the sim (including admin objects)
|
||||
if (IsAdministrator(user))
|
||||
return objectOwnerMask;
|
||||
|
||||
|
||||
// Users should be able to edit what is over their land.
|
||||
ILandObject parcel = m_scene.LandChannel.GetLandObject(task.AbsolutePosition.X, task.AbsolutePosition.Y);
|
||||
Vector3 taskPos = task.AbsolutePosition;
|
||||
ILandObject parcel = m_scene.LandChannel.GetLandObject(taskPos.X, taskPos.Y);
|
||||
if (parcel != null && parcel.LandData.OwnerID == user && m_ParcelOwnerIsGod)
|
||||
{
|
||||
// Admin objects should not be editable by the above
|
||||
|
|
|
@ -1154,5 +1154,9 @@ namespace OpenSim.Region.Examples.SimpleModule
|
|||
public void SendChangeUserRights(UUID agentID, UUID friendID, int rights)
|
||||
{
|
||||
}
|
||||
|
||||
public void SendTextBoxRequest(string message, int chatChannel, string objectname, string ownerFirstName, string ownerLastName, UUID objectId)
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -131,5 +131,10 @@ namespace OpenSim.Region.Framework.Interfaces
|
|||
/// <param name="fromAvatarName">The name of the user doing the sending</param>
|
||||
/// <param name="message">The message being sent to the user</param>
|
||||
void SendNotificationToUsersInEstate(UUID fromAvatarID, string fromAvatarName, string message);
|
||||
|
||||
/// <summary>
|
||||
/// Send a textbox entry for the client to respond to
|
||||
/// </summary>
|
||||
void SendTextBoxToUser(UUID avatarid, string message, int chatChannel, string name, UUID objectid, UUID ownerid);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -4307,7 +4307,7 @@ namespace OpenSim.Region.Framework.Scenes
|
|||
return m_sceneGraph.GetGroupByPrim(localID);
|
||||
}
|
||||
|
||||
public bool TryGetAvatar(UUID avatarId, out ScenePresence avatar)
|
||||
public override bool TryGetAvatar(UUID avatarId, out ScenePresence avatar)
|
||||
{
|
||||
return m_sceneGraph.TryGetAvatar(avatarId, out avatar);
|
||||
}
|
||||
|
|
|
@ -190,6 +190,21 @@ namespace OpenSim.Region.Framework.Scenes
|
|||
/// <param name="agentID"></param>
|
||||
public abstract void RemoveClient(UUID agentID);
|
||||
|
||||
public bool TryGetAvatar(UUID agentID, out object scenePresence)
|
||||
{
|
||||
scenePresence = null;
|
||||
ScenePresence sp = null;
|
||||
if (TryGetAvatar(agentID, out sp))
|
||||
{
|
||||
scenePresence = sp;
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public abstract bool TryGetAvatar(UUID agentID, out ScenePresence scenePresence);
|
||||
|
||||
#endregion
|
||||
|
||||
/// <summary>
|
||||
|
|
|
@ -65,6 +65,11 @@ namespace OpenSim.Region.Framework.Scenes.Tests
|
|||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
public override bool TryGetAvatar(UUID agentID, out ScenePresence scenePresence)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
}
|
||||
|
||||
[Test]
|
||||
|
|
|
@ -1680,5 +1680,9 @@ namespace OpenSim.Region.OptionalModules.Agent.InternetRelayClientView.Server
|
|||
public void SendChangeUserRights(UUID agentID, UUID friendID, int rights)
|
||||
{
|
||||
}
|
||||
|
||||
public void SendTextBoxRequest(string message, int chatChannel, string objectname, string ownerFirstName, string ownerLastName, UUID objectId)
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1160,5 +1160,9 @@ namespace OpenSim.Region.OptionalModules.World.NPC
|
|||
public void SendChangeUserRights(UUID agentID, UUID friendID, int rights)
|
||||
{
|
||||
}
|
||||
|
||||
public void SendTextBoxRequest(string message, int chatChannel, string objectname, string ownerFirstName, string ownerLastName, UUID objectId)
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -4201,10 +4201,34 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
|
|||
ScriptSleep(5000);
|
||||
}
|
||||
|
||||
public void llTextBox(string avatar, string message, int chat_channel)
|
||||
public void llTextBox(string agent, string message, int chatChannel)
|
||||
{
|
||||
IDialogModule dm = World.RequestModuleInterface<IDialogModule>();
|
||||
|
||||
if (dm == null)
|
||||
return;
|
||||
|
||||
m_host.AddScriptLPS(1);
|
||||
NotImplemented("llTextBox");
|
||||
UUID av = new UUID();
|
||||
if (!UUID.TryParse(agent,out av))
|
||||
{
|
||||
LSLError("First parameter to llDialog needs to be a key");
|
||||
return;
|
||||
}
|
||||
|
||||
if( message == string.Empty)
|
||||
{
|
||||
ShoutError("Trying to use llTextBox with empty message.");
|
||||
}
|
||||
else if (message.Length > 512)
|
||||
{
|
||||
ShoutError("Trying to use llTextBox with message over 512 characters.");
|
||||
}
|
||||
else
|
||||
{
|
||||
dm.SendTextBoxToUser(av, message, chatChannel, m_host.Name, m_host.UUID, m_host.OwnerID);
|
||||
ScriptSleep(1000);
|
||||
}
|
||||
}
|
||||
|
||||
public void llModifyLand(int action, int brush)
|
||||
|
@ -4219,6 +4243,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
|
|||
|
||||
public void llCollisionSound(string impact_sound, double impact_volume)
|
||||
{
|
||||
|
||||
m_host.AddScriptLPS(1);
|
||||
// TODO: Parameter check logic required.
|
||||
UUID soundId = UUID.Zero;
|
||||
|
|
|
@ -68,7 +68,7 @@ namespace OpenSim.Services.Connectors
|
|||
IConfig assetConfig = source.Configs["AssetService"];
|
||||
if (assetConfig == null)
|
||||
{
|
||||
m_log.Error("[ASSET CONNECTOR]: AssetService missing from OpanSim.ini");
|
||||
m_log.Error("[ASSET CONNECTOR]: AssetService missing from OpenSim.ini");
|
||||
throw new Exception("Asset connector init error");
|
||||
}
|
||||
|
||||
|
|
|
@ -67,7 +67,7 @@ namespace OpenSim.Services.Connectors
|
|||
IConfig assetConfig = source.Configs["AuthenticationService"];
|
||||
if (assetConfig == null)
|
||||
{
|
||||
m_log.Error("[AUTH CONNECTOR]: AuthenticationService missing from OpanSim.ini");
|
||||
m_log.Error("[AUTH CONNECTOR]: AuthenticationService missing from OpenSim.ini");
|
||||
throw new Exception("Authentication connector init error");
|
||||
}
|
||||
|
||||
|
|
|
@ -68,7 +68,7 @@ namespace OpenSim.Services.Connectors
|
|||
IConfig assetConfig = source.Configs["InventoryService"];
|
||||
if (assetConfig == null)
|
||||
{
|
||||
m_log.Error("[INVENTORY CONNECTOR]: InventoryService missing from OpanSim.ini");
|
||||
m_log.Error("[INVENTORY CONNECTOR]: InventoryService missing from OpenSim.ini");
|
||||
throw new Exception("Inventory connector init error");
|
||||
}
|
||||
|
||||
|
|
|
@ -131,7 +131,7 @@ namespace OpenSim.Services.Connectors
|
|||
//sendData["SCOPEID"] = scopeID.ToString();
|
||||
sendData["VERSIONMIN"] = ProtocolVersions.ClientProtocolVersionMin.ToString();
|
||||
sendData["VERSIONMAX"] = ProtocolVersions.ClientProtocolVersionMax.ToString();
|
||||
sendData["METHOD"] = "getagents";
|
||||
sendData["METHOD"] = "getaccounts";
|
||||
|
||||
sendData["ScopeID"] = scopeID.ToString();
|
||||
sendData["query"] = query;
|
||||
|
|
|
@ -206,7 +206,7 @@ namespace OpenSim.Services.PresenceService
|
|||
}
|
||||
}
|
||||
|
||||
m_log.DebugFormat("[PRESENCE SERVICE]: GetAgents for {0} userIDs found {1} presences", userIDs.Length, info.Count);
|
||||
// m_log.DebugFormat("[PRESENCE SERVICE]: GetAgents for {0} userIDs found {1} presences", userIDs.Length, info.Count);
|
||||
return info.ToArray();
|
||||
}
|
||||
|
||||
|
|
|
@ -1214,5 +1214,9 @@ namespace OpenSim.Tests.Common.Mock
|
|||
public void SendChangeUserRights(UUID agentID, UUID friendID, int rights)
|
||||
{
|
||||
}
|
||||
|
||||
public void SendTextBoxRequest(string message, int chatChannel, string objectname, string ownerFirstName, string ownerLastName, UUID objectId)
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -257,6 +257,10 @@
|
|||
; to be enabled from the console if this is set
|
||||
; StartDisabled = false
|
||||
|
||||
; Image decoding. Use CSJ2K for layer boundary decoding if true,
|
||||
; OpenJPEG if false
|
||||
; UseCSJ2K = true
|
||||
|
||||
[SMTP]
|
||||
enabled=false
|
||||
|
||||
|
|
|
@ -18,7 +18,6 @@
|
|||
InventoryAccessModule = "HGInventoryAccessModule"
|
||||
InventoryServiceInConnector = true
|
||||
AssetServiceInConnector = true
|
||||
HGAuthServiceInConnector = true
|
||||
HypergridServiceInConnector = true
|
||||
NeighbourServiceInConnector = true
|
||||
LibraryModule = true
|
||||
|
@ -104,7 +103,6 @@
|
|||
GridService = "OpenSim.Services.GridService.dll:GridService"
|
||||
AuthenticationService = "OpenSim.Services.Connectors.dll:AuthenticationServicesConnector"
|
||||
SimulationService ="OpenSim.Services.Connectors.dll:SimulationServiceConnector"
|
||||
WelcomeMessage = "Welcome, Avatar!"
|
||||
|
||||
[UserAgentService]
|
||||
LocalServiceModule = "OpenSim.Services.HypergridService.dll:UserAgentService"
|
||||
|
|
Loading…
Reference in New Issue