* Fixed References in Prebuild so the project compiles

* Added Friends List methods to IUserData interface
* Created Stub friendslist Database Methods
afrisby
Teravus Ovares 2007-12-30 23:29:44 +00:00
parent 5b8620d82f
commit 57a1132585
9 changed files with 230 additions and 4 deletions

View File

@ -133,6 +133,31 @@ namespace OpenSim.Framework.Data.DB4o
}
}
#region User Friends List Data
public void AddNewUserFriend(LLUUID friendlistowner, LLUUID friend, uint perms)
{
//MainLog.Instance.Verbose("FRIEND", "Stub AddNewUserFriend called");
}
public void RemoveUserFriend(LLUUID friendlistowner, LLUUID friend)
{
//MainLog.Instance.Verbose("FRIEND", "Stub RemoveUserFriend called");
}
public void UpdateUserFriendPerms(LLUUID friendlistowner, LLUUID friend, uint perms)
{
//MainLog.Instance.Verbose("FRIEND", "Stub UpdateUserFriendPerms called");
}
public List<FriendListItem> GetUserFriendList(LLUUID friendlistowner)
{
//MainLog.Instance.Verbose("FRIEND", "Stub GetUserFriendList called");
return new List<FriendListItem>();
}
#endregion
public List<Framework.AvatarPickerAvatar> GeneratePickerResults(LLUUID queryID, string query)
{
//Do nothing yet

View File

@ -99,6 +99,31 @@ namespace OpenSim.Framework.Data.MSSQL
}
}
#region User Friends List Data
public void AddNewUserFriend(LLUUID friendlistowner, LLUUID friend, uint perms)
{
MainLog.Instance.Verbose("FRIEND", "Stub AddNewUserFriend called");
}
public void RemoveUserFriend(LLUUID friendlistowner, LLUUID friend)
{
MainLog.Instance.Verbose("FRIEND", "Stub RemoveUserFriend called");
}
public void UpdateUserFriendPerms(LLUUID friendlistowner, LLUUID friend, uint perms)
{
MainLog.Instance.Verbose("FRIEND", "Stub UpdateUserFriendPerms called");
}
public List<FriendListItem> GetUserFriendList(LLUUID friendlistowner)
{
MainLog.Instance.Verbose("FRIEND", "Stub GetUserFriendList called");
return new List<FriendListItem>();
}
#endregion
public List<Framework.AvatarPickerAvatar> GeneratePickerResults(LLUUID queryID, string query)
{
List<Framework.AvatarPickerAvatar> returnlist = new List<Framework.AvatarPickerAvatar>();

View File

@ -145,6 +145,31 @@ namespace OpenSim.Framework.Data.MySQL
}
}
#region User Friends List Data
public void AddNewUserFriend(LLUUID friendlistowner, LLUUID friend, uint perms)
{
MainLog.Instance.Verbose("FRIEND", "Stub AddNewUserFriend called");
}
public void RemoveUserFriend(LLUUID friendlistowner, LLUUID friend)
{
MainLog.Instance.Verbose("FRIEND", "Stub RemoveUserFriend called");
}
public void UpdateUserFriendPerms(LLUUID friendlistowner, LLUUID friend, uint perms)
{
MainLog.Instance.Verbose("FRIEND", "Stub UpdateUserFriendPerms called");
}
public List<FriendListItem> GetUserFriendList(LLUUID friendlistowner)
{
MainLog.Instance.Verbose("FRIEND", "Stub GetUserFriendList called");
return new List<FriendListItem>();
}
#endregion
public List<Framework.AvatarPickerAvatar> GeneratePickerResults(LLUUID queryID, string query)
{
List<Framework.AvatarPickerAvatar> returnlist = new List<Framework.AvatarPickerAvatar>();

View File

@ -117,6 +117,31 @@ namespace OpenSim.Framework.Data.SQLite
}
}
#region User Friends List Data
public void AddNewUserFriend(LLUUID friendlistowner, LLUUID friend, uint perms)
{
MainLog.Instance.Verbose("FRIEND", "Stub AddNewUserFriend called");
}
public void RemoveUserFriend(LLUUID friendlistowner, LLUUID friend)
{
MainLog.Instance.Verbose("FRIEND", "Stub RemoveUserFriend called");
}
public void UpdateUserFriendPerms(LLUUID friendlistowner, LLUUID friend, uint perms)
{
MainLog.Instance.Verbose("FRIEND", "Stub UpdateUserFriendPerms called");
}
public List<FriendListItem> GetUserFriendList(LLUUID friendlistowner)
{
MainLog.Instance.Verbose("FRIEND", "Stub GetUserFriendList called");
return new List<FriendListItem>();
}
#endregion
public List<Framework.AvatarPickerAvatar> GeneratePickerResults(LLUUID queryID, string query)
{
List<Framework.AvatarPickerAvatar> returnlist = new List<Framework.AvatarPickerAvatar>();

View File

@ -0,0 +1,47 @@
/*
* Copyright (c) Contributors, http://opensimulator.org/
* See CONTRIBUTORS.TXT for a full list of copyright holders.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* * Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* * Neither the name of the OpenSim Project nor the
* names of its contributors may be used to endorse or promote products
* derived from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
*/
using System;
using System.Collections.Generic;
using libsecondlife;
namespace OpenSim.Framework
{
public class FriendListItem
{
public LLUUID FriendListOwner;
public LLUUID Friend;
// These are what the list owner gives the friend permission to do
public uint FriendPerms;
// These are what the friend gives the listowner permission to do
public uint FriendListOwnerPerms;
}
}

View File

@ -50,6 +50,12 @@ namespace OpenSim.Framework
/// <returns>The user data profile</returns>
UserProfileData GetUserByName(string fname, string lname);
/// <summary>
/// Returns a list of UUIDs firstnames and lastnames that match string query entered into the avatar picker.
/// </summary>
/// <param name="queryID">ID associated with the user's query. This must match what the client sent</param>
/// <param name="query">The filtered contents of the search box when the user hit search.</param>
/// <returns>The user data profile</returns>
List<AvatarPickerAvatar> GeneratePickerResults(LLUUID queryID, string query);
/// <summary>
@ -92,6 +98,34 @@ namespace OpenSim.Framework
/// <param name="agent">The agent to add</param>
void AddNewUserAgent(UserAgentData agent);
/// <summary>
/// Adds a new friend to the database for XUser
/// </summary>
/// <param name="friendlistowner">The agent that who's friends list is being added to</param>
/// <param name="friend">The agent that being added to the friends list of the friends list owner</param>
/// <param name="perms">A uint bit vector for set perms that the friend being added has; 0 = none, 1=This friend can see when they sign on, 2 = map, 4 edit objects </param>
void AddNewUserFriend(LLUUID friendlistowner, LLUUID friend, uint perms);
/// <summary>
/// Delete friend on friendlistowner's friendlist.
/// </summary>
/// <param name="friendlistowner">The agent that who's friends list is being updated</param>
/// <param name="friend">The Ex-friend agent</param>
void RemoveUserFriend(LLUUID friendlistowner, LLUUID friend);
/// <summary>
/// Update permissions for friend on friendlistowner's friendlist.
/// </summary>
/// <param name="friendlistowner">The agent that who's friends list is being updated</param>
/// <param name="friend">The agent that is getting or loosing permissions</param>
/// <param name="perms">A uint bit vector for set perms that the friend being added has; 0 = none, 1=This friend can see when they sign on, 2 = map, 4 edit objects </param>
void UpdateUserFriendPerms(LLUUID friendlistowner, LLUUID friend, uint perms);
/// <summary>
/// Returns a list of FriendsListItems that describe the friends and permissions in the friend relationship for LLUUID friendslistowner
/// </summary>
/// <param name="friendlistowner">The agent that we're retreiving the friends Data.</param>
List<FriendListItem> GetUserFriendList(LLUUID friendlistowner);
/// <summary>
/// Attempts to move currency units between accounts (NOT RELIABLE / TRUSTWORTHY. DONT TRY RUN YOUR OWN CURRENCY EXCHANGE WITH REAL VALUES)
/// </summary>

View File

@ -27,24 +27,61 @@
*/
using Nini.Config;
using System;
using System.Collections;
using System.Collections.Generic;
using OpenSim.Framework;
using OpenSim.Framework.Console;
using OpenSim.Region.Environment.Interfaces;
using OpenSim.Region.Environment.Scenes;
using libsecondlife;
using libsecondlife.Packets;
namespace OpenSim.Region.Environment.Modules
{
public class FriendsModule : IRegionModule
{
private Scene m_scene;
private List<Scene> m_scenes = new List<Scene>();
private LogBase m_log;
public void Initialise(Scene scene, IConfigSource config)
{
m_scene = scene;
m_log = MainLog.Instance;
if (!m_scenes.Contains(scene))
{
m_scenes.Add(scene);
scene.EventManager.OnNewClient += OnNewClient;
}
}
private void OnNewClient(IClientAPI client)
{
FormFriendship(client,new Guid("c43a67ab-b196-4d62-936c-b40369547dee"));
FormFriendship(client, new Guid("0a2f777b-f44c-4662-8b22-c90ae038a3e6"));
}
public void PostInitialise()
{
}
private void FormFriendship(IClientAPI client, Guid friend)
{
foreach (Scene scene in m_scenes)
{
if (scene.Entities.ContainsKey(client.AgentId) && scene.Entities[client.AgentId] is ScenePresence)
{
OnlineNotificationPacket ONPack = new OnlineNotificationPacket();
OnlineNotificationPacket.AgentBlockBlock[] AgentBlock = new OnlineNotificationPacket.AgentBlockBlock[1];
AgentBlock[0] = new OnlineNotificationPacket.AgentBlockBlock();
AgentBlock[0].AgentID = new LLUUID(friend);
ONPack.AgentBlock = AgentBlock;
client.OutPacket(ONPack,ThrottleOutPacketType.Task);
}
}
}
public void Close()
{
}
@ -56,7 +93,7 @@ namespace OpenSim.Region.Environment.Modules
public bool IsSharedModule
{
get { return false; }
get { return true; }
}
}
}

View File

@ -29,6 +29,8 @@
using System;
using libsecondlife;
using OpenSim.Framework;
using OpenSim.Grid.ScriptServer;
using OpenSim.Region.ScriptEngine.DotNetEngine;
namespace OpenSim.Region.ScriptEngine.RemoteServer
{
@ -39,7 +41,7 @@ namespace OpenSim.Region.ScriptEngine.RemoteServer
internal class EventManager
{
System.Collections.Generic.Dictionary<uint, OpenSim.Grid.ScriptServer.RemotingObject> remoteScript = new System.Collections.Generic.Dictionary<uint, OpenSim.Grid.ScriptServer.RemotingObject>();
System.Collections.Generic.Dictionary<uint, RemotingObject> remoteScript = new System.Collections.Generic.Dictionary<uint, OpenSim.Grid.ScriptServer.RemotingObject>();
private ScriptEngine myScriptEngine;

View File

@ -1176,6 +1176,9 @@
<Reference name="OpenSim.Framework.Console"/>
<Reference name="OpenSim.Region.ScriptEngine.Common"/>
<Reference name="OpenSim.Region.Terrain.BasicTerrain"/>
<Reference name="OpenSim.Grid.ScriptServer"/>
<Reference name="OpenSim.Region.ScriptEngine"/>
<Reference name="OpenSim.Region.ScriptEngine.DotNetEngine"/>
<Reference name="Axiom.MathLib.dll" localCopy="false"/>
<Reference name="Nini.dll" />
<Files>
@ -1201,11 +1204,14 @@
<ReferencePath>../../../bin/</ReferencePath>
<Reference name="System" localCopy="false"/>
<Reference name="System.Data" localCopy="false"/>
<Reference name="System.Runtime.Remoting" localCopy="false"/>
<Reference name="System.Xml" localCopy="false"/>
<Reference name="OpenSim"/>
<Reference name="OpenSim.Framework"/>
<Reference name="OpenSim.Framework.Console"/>
<Reference name="OpenSim.Framework.Servers"/>
<Reference name="OpenSim.Framework.Data"/>
<Reference name="OpenSim.Region.Environment"/>
<Reference name="OpenSim.Region.ScriptEngine.DotNetEngine"/>
<Reference name="OpenSim.Region.ScriptEngine.Common"/>
<Reference name="libsecondlife.dll"/>