From 5e4d6cab00cb29cd088ab7b62ab13aff103b64cb Mon Sep 17 00:00:00 2001
From: onefang
Date: Sun, 19 May 2019 21:24:15 +1000
Subject: Dump OpenSim 0.9.0.1 into it's own branch.
---
.../Avatar/InstantMessage/InstantMessageModule.cs | 69 ++++++++++++++++------
1 file changed, 50 insertions(+), 19 deletions(-)
(limited to 'OpenSim/Region/CoreModules/Avatar/InstantMessage/InstantMessageModule.cs')
diff --git a/OpenSim/Region/CoreModules/Avatar/InstantMessage/InstantMessageModule.cs b/OpenSim/Region/CoreModules/Avatar/InstantMessage/InstantMessageModule.cs
index c33a296..71c0a8a 100644
--- a/OpenSim/Region/CoreModules/Avatar/InstantMessage/InstantMessageModule.cs
+++ b/OpenSim/Region/CoreModules/Avatar/InstantMessage/InstantMessageModule.cs
@@ -27,6 +27,7 @@
using System;
using System.Collections.Generic;
using System.Reflection;
+using System.Timers;
using log4net;
using Mono.Addins;
using Nini.Config;
@@ -47,15 +48,15 @@ namespace OpenSim.Region.CoreModules.Avatar.InstantMessage
///
/// Is this module enabled?
///
- private bool m_enabled = false;
-
- private readonly List m_scenes = new List();
+ protected bool m_enabled = false;
+
+ protected readonly List m_scenes = new List();
#region Region Module interface
- private IMessageTransferModule m_TransferModule = null;
+ protected IMessageTransferModule m_TransferModule = null;
- public void Initialise(IConfigSource config)
+ public virtual void Initialise(IConfigSource config)
{
if (config.Configs["Messaging"] != null)
{
@@ -64,11 +65,11 @@ namespace OpenSim.Region.CoreModules.Avatar.InstantMessage
"InstantMessageModule")
return;
}
-
+
m_enabled = true;
}
- public void AddRegion(Scene scene)
+ public virtual void AddRegion(Scene scene)
{
if (!m_enabled)
return;
@@ -84,7 +85,7 @@ namespace OpenSim.Region.CoreModules.Avatar.InstantMessage
}
}
- public void RegionLoaded(Scene scene)
+ public virtual void RegionLoaded(Scene scene)
{
if (!m_enabled)
return;
@@ -106,7 +107,7 @@ namespace OpenSim.Region.CoreModules.Avatar.InstantMessage
}
}
- public void RemoveRegion(Scene scene)
+ public virtual void RemoveRegion(Scene scene)
{
if (!m_enabled)
return;
@@ -117,7 +118,7 @@ namespace OpenSim.Region.CoreModules.Avatar.InstantMessage
}
}
- void OnClientConnect(IClientCore client)
+ protected virtual void OnClientConnect(IClientCore client)
{
IClientIM clientIM;
if (client.TryGet(out clientIM))
@@ -126,27 +127,33 @@ namespace OpenSim.Region.CoreModules.Avatar.InstantMessage
}
}
- public void PostInitialise()
+ public virtual void PostInitialise()
{
}
- public void Close()
+ public virtual void Close()
{
}
- public string Name
+ public virtual string Name
{
get { return "InstantMessageModule"; }
}
- public Type ReplaceableInterface
+ public virtual Type ReplaceableInterface
{
get { return null; }
}
#endregion
-
- public void OnInstantMessage(IClientAPI client, GridInstantMessage im)
+/*
+ public virtual void OnViewerInstantMessage(IClientAPI client, GridInstantMessage im)
+ {
+ im.fromAgentName = client.FirstName + " " + client.LastName;
+ OnInstantMessage(client, im);
+ }
+*/
+ public virtual void OnInstantMessage(IClientAPI client, GridInstantMessage im)
{
byte dialog = im.dialog;
@@ -159,10 +166,34 @@ namespace OpenSim.Region.CoreModules.Avatar.InstantMessage
return;
}
+ //DateTime dt = DateTime.UtcNow;
+
+ // Ticks from UtcNow, but make it look like local. Evil, huh?
+ //dt = DateTime.SpecifyKind(dt, DateTimeKind.Local);
+
+ //try
+ //{
+ // // Convert that to the PST timezone
+ // TimeZoneInfo timeZoneInfo = TimeZoneInfo.FindSystemTimeZoneById("America/Los_Angeles");
+ // dt = TimeZoneInfo.ConvertTime(dt, timeZoneInfo);
+ //}
+ //catch
+ //{
+ // //m_log.Info("[OFFLINE MESSAGING]: No PST timezone found on this machine. Saving with local timestamp.");
+ //}
+
+ //// And make it look local again to fool the unix time util
+ //dt = DateTime.SpecifyKind(dt, DateTimeKind.Utc);
+
+ // If client is null, this message comes from storage and IS offline
+ if (client != null)
+ im.offline = 0;
+
+ if (im.offline == 0)
+ im.timestamp = (uint)Util.UnixTimeSinceEpoch();
+
if (m_TransferModule != null)
{
- if (client != null)
- im.fromAgentName = client.FirstName + " " + client.LastName;
m_TransferModule.SendInstantMessage(im,
delegate(bool success)
{
@@ -193,7 +224,7 @@ namespace OpenSim.Region.CoreModules.Avatar.InstantMessage
///
///
///
- private void OnGridInstantMessage(GridInstantMessage msg)
+ protected virtual void OnGridInstantMessage(GridInstantMessage msg)
{
// Just call the Text IM handler above
// This event won't be raised unless we have that agent,
--
cgit v1.1