mirror of
https://github.com/opensim/opensim.git
synced 2026-08-01 14:16:07 +08:00
Change FriendsModule, InstantMessageModule, MessageTransferModule, MuteListModule, OfflineMessageModule, PresenceModule, InventoryTransferModule and LureModule to new style. Reduce FriendsModule and PresenceModule to shells.
This commit is contained in:
@@ -40,79 +40,89 @@ using OpenSim.Region.Framework.Scenes;
|
||||
|
||||
namespace OpenSim.Region.CoreModules.Avatar.InstantMessage
|
||||
{
|
||||
public class OfflineMessageModule : IRegionModule
|
||||
public class OfflineMessageModule : ISharedRegionModule
|
||||
{
|
||||
private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
|
||||
|
||||
private bool enabled = true;
|
||||
private List<Scene> m_SceneList = new List<Scene>();
|
||||
private string m_RestURL = String.Empty;
|
||||
IMessageTransferModule m_TransferModule = null;
|
||||
|
||||
public void Initialise(Scene scene, IConfigSource config)
|
||||
public void Initialise(IConfigSource config)
|
||||
{
|
||||
if (!enabled)
|
||||
return;
|
||||
|
||||
IConfig cnf = config.Configs["Messaging"];
|
||||
if (cnf == null)
|
||||
{
|
||||
enabled = false;
|
||||
return;
|
||||
}
|
||||
if (cnf != null && cnf.GetString(
|
||||
"OfflineMessageModule", "None") !=
|
||||
if (cnf != null && cnf.GetString("OfflineMessageModule", "None") !=
|
||||
"OfflineMessageModule")
|
||||
{
|
||||
enabled = false;
|
||||
return;
|
||||
}
|
||||
|
||||
m_RestURL = cnf.GetString("OfflineMessageURL", "");
|
||||
if (m_RestURL == "")
|
||||
{
|
||||
m_log.Error("[OFFLINE MESSAGING] Module was enabled, but no URL is given, disabling");
|
||||
enabled = false;
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
public void AddRegion(Scene scene)
|
||||
{
|
||||
if (!enabled)
|
||||
return;
|
||||
|
||||
lock (m_SceneList)
|
||||
{
|
||||
if (m_SceneList.Count == 0)
|
||||
{
|
||||
m_RestURL = cnf.GetString("OfflineMessageURL", "");
|
||||
if (m_RestURL == "")
|
||||
{
|
||||
m_log.Error("[OFFLINE MESSAGING] Module was enabled, but no URL is given, disabling");
|
||||
enabled = false;
|
||||
return;
|
||||
}
|
||||
}
|
||||
if (!m_SceneList.Contains(scene))
|
||||
m_SceneList.Add(scene);
|
||||
m_SceneList.Add(scene);
|
||||
|
||||
scene.EventManager.OnNewClient += OnNewClient;
|
||||
}
|
||||
}
|
||||
|
||||
public void RegionLoaded(Scene scene)
|
||||
{
|
||||
if (!enabled)
|
||||
return;
|
||||
|
||||
if (m_TransferModule == null)
|
||||
{
|
||||
m_TransferModule = scene.RequestModuleInterface<IMessageTransferModule>();
|
||||
if (m_TransferModule == null)
|
||||
{
|
||||
scene.EventManager.OnNewClient -= OnNewClient;
|
||||
|
||||
enabled = false;
|
||||
m_SceneList.Clear();
|
||||
|
||||
m_log.Error("[OFFLINE MESSAGING] No message transfer module is enabled. Diabling offline messages");
|
||||
}
|
||||
m_TransferModule.OnUndeliveredMessage += UndeliveredMessage;
|
||||
}
|
||||
}
|
||||
|
||||
public void RemoveRegion(Scene scene)
|
||||
{
|
||||
if (!enabled)
|
||||
return;
|
||||
|
||||
lock (m_SceneList)
|
||||
{
|
||||
m_SceneList.Remove(scene);
|
||||
}
|
||||
}
|
||||
|
||||
public void PostInitialise()
|
||||
{
|
||||
if (!enabled)
|
||||
return;
|
||||
|
||||
if (m_SceneList.Count == 0)
|
||||
return;
|
||||
|
||||
IMessageTransferModule trans = m_SceneList[0].RequestModuleInterface<IMessageTransferModule>();
|
||||
if (trans == null)
|
||||
{
|
||||
enabled = false;
|
||||
|
||||
lock (m_SceneList)
|
||||
{
|
||||
foreach (Scene s in m_SceneList)
|
||||
s.EventManager.OnNewClient -= OnNewClient;
|
||||
|
||||
m_SceneList.Clear();
|
||||
}
|
||||
|
||||
m_log.Error("[OFFLINE MESSAGING] No message transfer module is enabled. Diabling offline messages");
|
||||
return;
|
||||
}
|
||||
|
||||
trans.OnUndeliveredMessage += UndeliveredMessage;
|
||||
|
||||
m_log.Debug("[OFFLINE MESSAGING] Offline messages enabled");
|
||||
}
|
||||
|
||||
@@ -121,9 +131,9 @@ namespace OpenSim.Region.CoreModules.Avatar.InstantMessage
|
||||
get { return "OfflineMessageModule"; }
|
||||
}
|
||||
|
||||
public bool IsSharedModule
|
||||
public Type ReplaceableInterface
|
||||
{
|
||||
get { return true; }
|
||||
get { return null; }
|
||||
}
|
||||
|
||||
public void Close()
|
||||
|
||||
Reference in New Issue
Block a user