diff options
author | onefang | 2019-09-11 16:36:50 +1000 |
---|---|---|
committer | onefang | 2019-09-11 16:36:50 +1000 |
commit | 50cd1ffd32f69228e566f2b0b89f86ea0d9fe489 (patch) | |
tree | 52f2ab0c04f1a5d7d6ac5dc872981b4b156447e7 /OpenSim/Region/CoreModules/Avatar/InstantMessage/InstantMessageModule.cs | |
parent | Renamed branch to SledjChisl. (diff) | |
parent | Bump to release flavour, build 0. (diff) | |
download | opensim-SC_OLD-50cd1ffd32f69228e566f2b0b89f86ea0d9fe489.zip opensim-SC_OLD-50cd1ffd32f69228e566f2b0b89f86ea0d9fe489.tar.gz opensim-SC_OLD-50cd1ffd32f69228e566f2b0b89f86ea0d9fe489.tar.bz2 opensim-SC_OLD-50cd1ffd32f69228e566f2b0b89f86ea0d9fe489.tar.xz |
Merge branch 'SledjChisl'
Diffstat (limited to '')
-rw-r--r-- | OpenSim/Region/CoreModules/Avatar/InstantMessage/InstantMessageModule.cs | 69 |
1 files changed, 50 insertions, 19 deletions
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 @@ | |||
27 | using System; | 27 | using System; |
28 | using System.Collections.Generic; | 28 | using System.Collections.Generic; |
29 | using System.Reflection; | 29 | using System.Reflection; |
30 | using System.Timers; | ||
30 | using log4net; | 31 | using log4net; |
31 | using Mono.Addins; | 32 | using Mono.Addins; |
32 | using Nini.Config; | 33 | using Nini.Config; |
@@ -47,15 +48,15 @@ namespace OpenSim.Region.CoreModules.Avatar.InstantMessage | |||
47 | /// <value> | 48 | /// <value> |
48 | /// Is this module enabled? | 49 | /// Is this module enabled? |
49 | /// </value> | 50 | /// </value> |
50 | private bool m_enabled = false; | 51 | protected bool m_enabled = false; |
51 | 52 | ||
52 | private readonly List<Scene> m_scenes = new List<Scene>(); | 53 | protected readonly List<Scene> m_scenes = new List<Scene>(); |
53 | 54 | ||
54 | #region Region Module interface | 55 | #region Region Module interface |
55 | 56 | ||
56 | private IMessageTransferModule m_TransferModule = null; | 57 | protected IMessageTransferModule m_TransferModule = null; |
57 | 58 | ||
58 | public void Initialise(IConfigSource config) | 59 | public virtual void Initialise(IConfigSource config) |
59 | { | 60 | { |
60 | if (config.Configs["Messaging"] != null) | 61 | if (config.Configs["Messaging"] != null) |
61 | { | 62 | { |
@@ -64,11 +65,11 @@ namespace OpenSim.Region.CoreModules.Avatar.InstantMessage | |||
64 | "InstantMessageModule") | 65 | "InstantMessageModule") |
65 | return; | 66 | return; |
66 | } | 67 | } |
67 | 68 | ||
68 | m_enabled = true; | 69 | m_enabled = true; |
69 | } | 70 | } |
70 | 71 | ||
71 | public void AddRegion(Scene scene) | 72 | public virtual void AddRegion(Scene scene) |
72 | { | 73 | { |
73 | if (!m_enabled) | 74 | if (!m_enabled) |
74 | return; | 75 | return; |
@@ -84,7 +85,7 @@ namespace OpenSim.Region.CoreModules.Avatar.InstantMessage | |||
84 | } | 85 | } |
85 | } | 86 | } |
86 | 87 | ||
87 | public void RegionLoaded(Scene scene) | 88 | public virtual void RegionLoaded(Scene scene) |
88 | { | 89 | { |
89 | if (!m_enabled) | 90 | if (!m_enabled) |
90 | return; | 91 | return; |
@@ -106,7 +107,7 @@ namespace OpenSim.Region.CoreModules.Avatar.InstantMessage | |||
106 | } | 107 | } |
107 | } | 108 | } |
108 | 109 | ||
109 | public void RemoveRegion(Scene scene) | 110 | public virtual void RemoveRegion(Scene scene) |
110 | { | 111 | { |
111 | if (!m_enabled) | 112 | if (!m_enabled) |
112 | return; | 113 | return; |
@@ -117,7 +118,7 @@ namespace OpenSim.Region.CoreModules.Avatar.InstantMessage | |||
117 | } | 118 | } |
118 | } | 119 | } |
119 | 120 | ||
120 | void OnClientConnect(IClientCore client) | 121 | protected virtual void OnClientConnect(IClientCore client) |
121 | { | 122 | { |
122 | IClientIM clientIM; | 123 | IClientIM clientIM; |
123 | if (client.TryGet(out clientIM)) | 124 | if (client.TryGet(out clientIM)) |
@@ -126,27 +127,33 @@ namespace OpenSim.Region.CoreModules.Avatar.InstantMessage | |||
126 | } | 127 | } |
127 | } | 128 | } |
128 | 129 | ||
129 | public void PostInitialise() | 130 | public virtual void PostInitialise() |
130 | { | 131 | { |
131 | } | 132 | } |
132 | 133 | ||
133 | public void Close() | 134 | public virtual void Close() |
134 | { | 135 | { |
135 | } | 136 | } |
136 | 137 | ||
137 | public string Name | 138 | public virtual string Name |
138 | { | 139 | { |
139 | get { return "InstantMessageModule"; } | 140 | get { return "InstantMessageModule"; } |
140 | } | 141 | } |
141 | 142 | ||
142 | public Type ReplaceableInterface | 143 | public virtual Type ReplaceableInterface |
143 | { | 144 | { |
144 | get { return null; } | 145 | get { return null; } |
145 | } | 146 | } |
146 | 147 | ||
147 | #endregion | 148 | #endregion |
148 | 149 | /* | |
149 | public void OnInstantMessage(IClientAPI client, GridInstantMessage im) | 150 | public virtual void OnViewerInstantMessage(IClientAPI client, GridInstantMessage im) |
151 | { | ||
152 | im.fromAgentName = client.FirstName + " " + client.LastName; | ||
153 | OnInstantMessage(client, im); | ||
154 | } | ||
155 | */ | ||
156 | public virtual void OnInstantMessage(IClientAPI client, GridInstantMessage im) | ||
150 | { | 157 | { |
151 | byte dialog = im.dialog; | 158 | byte dialog = im.dialog; |
152 | 159 | ||
@@ -159,10 +166,34 @@ namespace OpenSim.Region.CoreModules.Avatar.InstantMessage | |||
159 | return; | 166 | return; |
160 | } | 167 | } |
161 | 168 | ||
169 | //DateTime dt = DateTime.UtcNow; | ||
170 | |||
171 | // Ticks from UtcNow, but make it look like local. Evil, huh? | ||
172 | //dt = DateTime.SpecifyKind(dt, DateTimeKind.Local); | ||
173 | |||
174 | //try | ||
175 | //{ | ||
176 | // // Convert that to the PST timezone | ||
177 | // TimeZoneInfo timeZoneInfo = TimeZoneInfo.FindSystemTimeZoneById("America/Los_Angeles"); | ||
178 | // dt = TimeZoneInfo.ConvertTime(dt, timeZoneInfo); | ||
179 | //} | ||
180 | //catch | ||
181 | //{ | ||
182 | // //m_log.Info("[OFFLINE MESSAGING]: No PST timezone found on this machine. Saving with local timestamp."); | ||
183 | //} | ||
184 | |||
185 | //// And make it look local again to fool the unix time util | ||
186 | //dt = DateTime.SpecifyKind(dt, DateTimeKind.Utc); | ||
187 | |||
188 | // If client is null, this message comes from storage and IS offline | ||
189 | if (client != null) | ||
190 | im.offline = 0; | ||
191 | |||
192 | if (im.offline == 0) | ||
193 | im.timestamp = (uint)Util.UnixTimeSinceEpoch(); | ||
194 | |||
162 | if (m_TransferModule != null) | 195 | if (m_TransferModule != null) |
163 | { | 196 | { |
164 | if (client != null) | ||
165 | im.fromAgentName = client.FirstName + " " + client.LastName; | ||
166 | m_TransferModule.SendInstantMessage(im, | 197 | m_TransferModule.SendInstantMessage(im, |
167 | delegate(bool success) | 198 | delegate(bool success) |
168 | { | 199 | { |
@@ -193,7 +224,7 @@ namespace OpenSim.Region.CoreModules.Avatar.InstantMessage | |||
193 | /// | 224 | /// |
194 | /// </summary> | 225 | /// </summary> |
195 | /// <param name="msg"></param> | 226 | /// <param name="msg"></param> |
196 | private void OnGridInstantMessage(GridInstantMessage msg) | 227 | protected virtual void OnGridInstantMessage(GridInstantMessage msg) |
197 | { | 228 | { |
198 | // Just call the Text IM handler above | 229 | // Just call the Text IM handler above |
199 | // This event won't be raised unless we have that agent, | 230 | // This event won't be raised unless we have that agent, |