diff options
author | Mike Rieker | 2010-07-06 02:23:10 +0000 |
---|---|---|
committer | Mike Rieker | 2010-07-06 02:23:10 +0000 |
commit | 6e7f1a3ac11b889175c87f59a3c5361c704363a6 (patch) | |
tree | 2ed5bebf54db3adc420e1510045b84b880ecb157 /OpenSim/Region/CoreModules | |
parent | rewrote hanging llParseStringKeepNulls() (diff) | |
parent | Undo fix is now complete. This commit repairs the special case of the root pr... (diff) | |
download | opensim-SC-6e7f1a3ac11b889175c87f59a3c5361c704363a6.zip opensim-SC-6e7f1a3ac11b889175c87f59a3c5361c704363a6.tar.gz opensim-SC-6e7f1a3ac11b889175c87f59a3c5361c704363a6.tar.bz2 opensim-SC-6e7f1a3ac11b889175c87f59a3c5361c704363a6.tar.xz |
Merge branch 'careminster-presence-refactor' of www.3dhosting.de:/var/git/careminster into careminster-presence-refactor
Diffstat (limited to 'OpenSim/Region/CoreModules')
13 files changed, 99 insertions, 53 deletions
diff --git a/OpenSim/Region/CoreModules/Agent/AssetTransaction/AssetTransactionModule.cs b/OpenSim/Region/CoreModules/Agent/AssetTransaction/AssetTransactionModule.cs index 7e08ecf..ae31050 100644 --- a/OpenSim/Region/CoreModules/Agent/AssetTransaction/AssetTransactionModule.cs +++ b/OpenSim/Region/CoreModules/Agent/AssetTransaction/AssetTransactionModule.cs | |||
@@ -243,7 +243,7 @@ namespace OpenSim.Region.CoreModules.Agent.AssetTransaction | |||
243 | 243 | ||
244 | if (mm != null) | 244 | if (mm != null) |
245 | { | 245 | { |
246 | if (!mm.UploadCovered(remoteClient)) | 246 | if (!mm.UploadCovered(remoteClient, mm.UploadCharge)) |
247 | { | 247 | { |
248 | remoteClient.SendAgentAlertMessage("Unable to upload asset. Insufficient funds.", false); | 248 | remoteClient.SendAgentAlertMessage("Unable to upload asset. Insufficient funds.", false); |
249 | return; | 249 | return; |
diff --git a/OpenSim/Region/CoreModules/Avatar/Assets/GetTextureModule.cs b/OpenSim/Region/CoreModules/Avatar/Assets/GetTextureModule.cs index 75efb79..8aa87fd 100644 --- a/OpenSim/Region/CoreModules/Avatar/Assets/GetTextureModule.cs +++ b/OpenSim/Region/CoreModules/Avatar/Assets/GetTextureModule.cs | |||
@@ -1,4 +1,4 @@ | |||
1 | /* | 1 | /* |
2 | * Copyright (c) Contributors, http://opensimulator.org/ | 2 | * Copyright (c) Contributors, http://opensimulator.org/ |
3 | * See CONTRIBUTORS.TXT for a full list of copyright holders. | 3 | * See CONTRIBUTORS.TXT for a full list of copyright holders. |
4 | * | 4 | * |
@@ -190,7 +190,7 @@ namespace OpenSim.Region.CoreModules.Avatar.ObjectCaps | |||
190 | end = Utils.Clamp(end, 1, texture.Data.Length); | 190 | end = Utils.Clamp(end, 1, texture.Data.Length); |
191 | start = Utils.Clamp(start, 0, end - 1); | 191 | start = Utils.Clamp(start, 0, end - 1); |
192 | 192 | ||
193 | m_log.Debug("Serving " + start + " to " + end + " of " + texture.Data.Length + " bytes for texture " + texture.ID); | 193 | //m_log.Debug("Serving " + start + " to " + end + " of " + texture.Data.Length + " bytes for texture " + texture.ID); |
194 | 194 | ||
195 | if (end - start < texture.Data.Length) | 195 | if (end - start < texture.Data.Length) |
196 | response.StatusCode = (int)System.Net.HttpStatusCode.PartialContent; | 196 | response.StatusCode = (int)System.Net.HttpStatusCode.PartialContent; |
diff --git a/OpenSim/Region/CoreModules/Avatar/Friends/FriendsModule.cs b/OpenSim/Region/CoreModules/Avatar/Friends/FriendsModule.cs index c6f8b88..ca0b7ad 100644 --- a/OpenSim/Region/CoreModules/Avatar/Friends/FriendsModule.cs +++ b/OpenSim/Region/CoreModules/Avatar/Friends/FriendsModule.cs | |||
@@ -769,8 +769,15 @@ namespace OpenSim.Region.CoreModules.Avatar.Friends | |||
769 | bool canEditObjectsChanged = ((rights ^ userFlags) & (int)FriendRights.CanModifyObjects) != 0; | 769 | bool canEditObjectsChanged = ((rights ^ userFlags) & (int)FriendRights.CanModifyObjects) != 0; |
770 | if (canEditObjectsChanged) | 770 | if (canEditObjectsChanged) |
771 | friendClient.SendChangeUserRights(userID, friendID, rights); | 771 | friendClient.SendChangeUserRights(userID, friendID, rights); |
772 | |||
772 | } | 773 | } |
773 | 774 | ||
775 | // update local cache | ||
776 | //m_Friends[friendID].Friends = m_FriendsService.GetFriends(friendID); | ||
777 | foreach (FriendInfo finfo in m_Friends[friendID].Friends) | ||
778 | if (finfo.Friend == userID.ToString()) | ||
779 | finfo.TheirFlags = rights; | ||
780 | |||
774 | return true; | 781 | return true; |
775 | } | 782 | } |
776 | 783 | ||
diff --git a/OpenSim/Region/CoreModules/Avatar/InstantMessage/InstantMessageModule.cs b/OpenSim/Region/CoreModules/Avatar/InstantMessage/InstantMessageModule.cs index 2dc7384..ffdac58 100644 --- a/OpenSim/Region/CoreModules/Avatar/InstantMessage/InstantMessageModule.cs +++ b/OpenSim/Region/CoreModules/Avatar/InstantMessage/InstantMessageModule.cs | |||
@@ -156,12 +156,31 @@ namespace OpenSim.Region.CoreModules.Avatar.InstantMessage | |||
156 | return; | 156 | return; |
157 | } | 157 | } |
158 | 158 | ||
159 | if (dialog == (byte)InstantMessageDialog.MessageFromAgent || | 159 | DateTime dt = DateTime.UtcNow; |
160 | dialog == (byte)InstantMessageDialog.MessageFromObject) | 160 | |
161 | // Ticks from UtcNow, but make it look like local. Evil, huh? | ||
162 | dt = DateTime.SpecifyKind(dt, DateTimeKind.Local); | ||
163 | |||
164 | try | ||
165 | { | ||
166 | // Convert that to the PST timezone | ||
167 | TimeZoneInfo timeZoneInfo = TimeZoneInfo.FindSystemTimeZoneById("America/Los_Angeles"); | ||
168 | dt = TimeZoneInfo.ConvertTime(dt, timeZoneInfo); | ||
169 | } | ||
170 | catch | ||
161 | { | 171 | { |
162 | im.offline = 1; | 172 | m_log.Info("[OFFLINE MESSAGING]: No PST timezone found on this machine. Saving with local timestamp."); |
163 | } | 173 | } |
164 | 174 | ||
175 | // And make it look local again to fool the unix time util | ||
176 | dt = DateTime.SpecifyKind(dt, DateTimeKind.Utc); | ||
177 | |||
178 | im.timestamp = (uint)Util.ToUnixTime(dt); | ||
179 | |||
180 | // If client is null, this message comes from storage and IS offline | ||
181 | if (client != null) | ||
182 | im.offline = 0; | ||
183 | |||
165 | if (m_TransferModule != null) | 184 | if (m_TransferModule != null) |
166 | { | 185 | { |
167 | m_TransferModule.SendInstantMessage(im, | 186 | m_TransferModule.SendInstantMessage(im, |
diff --git a/OpenSim/Region/CoreModules/Avatar/InstantMessage/OfflineMessageModule.cs b/OpenSim/Region/CoreModules/Avatar/InstantMessage/OfflineMessageModule.cs index a2dc91f..feeb9e6 100644 --- a/OpenSim/Region/CoreModules/Avatar/InstantMessage/OfflineMessageModule.cs +++ b/OpenSim/Region/CoreModules/Avatar/InstantMessage/OfflineMessageModule.cs | |||
@@ -192,6 +192,17 @@ namespace OpenSim.Region.CoreModules.Avatar.InstantMessage | |||
192 | // Needed for proper state management for stored group | 192 | // Needed for proper state management for stored group |
193 | // invitations | 193 | // invitations |
194 | // | 194 | // |
195 | |||
196 | im.offline = 1; | ||
197 | |||
198 | // Reconstruct imSessionID | ||
199 | if (im.dialog == (byte)InstantMessageDialog.MessageFromAgent) | ||
200 | { | ||
201 | UUID fromAgentID = new UUID(im.fromAgentID); | ||
202 | UUID sessionID = fromAgentID ^ client.AgentId; | ||
203 | im.imSessionID = new Guid(sessionID.ToString()); | ||
204 | } | ||
205 | |||
195 | Scene s = FindScene(client.AgentId); | 206 | Scene s = FindScene(client.AgentId); |
196 | if (s != null) | 207 | if (s != null) |
197 | s.EventManager.TriggerIncomingInstantMessage(im); | 208 | s.EventManager.TriggerIncomingInstantMessage(im); |
@@ -201,35 +212,37 @@ namespace OpenSim.Region.CoreModules.Avatar.InstantMessage | |||
201 | 212 | ||
202 | private void UndeliveredMessage(GridInstantMessage im) | 213 | private void UndeliveredMessage(GridInstantMessage im) |
203 | { | 214 | { |
204 | if (im.dialog == 19) | 215 | if (im.dialog != (byte)InstantMessageDialog.MessageFromObject && |
205 | im.offline = 1; // We want them pushed out to the server | 216 | im.dialog != (byte)InstantMessageDialog.MessageFromAgent && |
206 | if ((im.offline != 0) | 217 | im.dialog != (byte)InstantMessageDialog.GroupNotice && |
207 | && (!im.fromGroup || (im.fromGroup && m_ForwardOfflineGroupMessages))) | 218 | im.dialog != (byte)InstantMessageDialog.InventoryOffered) |
208 | { | 219 | { |
209 | // It's not delivered. Make sure the scope id is saved | 220 | return; |
210 | // We don't need the imSessionID here anymore, overwrite it | 221 | } |
211 | Scene scene = FindScene(new UUID(im.fromAgentID)); | ||
212 | if (scene == null) | ||
213 | scene = m_SceneList[0]; | ||
214 | im.imSessionID = new Guid(scene.RegionInfo.ScopeID.ToString()); | ||
215 | 222 | ||
216 | bool success = SynchronousRestObjectPoster.BeginPostObject<GridInstantMessage, bool>( | 223 | // It's not delivered. Make sure the scope id is saved |
217 | "POST", m_RestURL+"/SaveMessage/", im); | 224 | // We don't need the imSessionID here anymore, overwrite it |
225 | Scene scene = FindScene(new UUID(im.fromAgentID)); | ||
226 | if (scene == null) | ||
227 | scene = m_SceneList[0]; | ||
228 | im.imSessionID = new Guid(scene.RegionInfo.ScopeID.ToString()); | ||
218 | 229 | ||
219 | if (im.dialog == (byte)InstantMessageDialog.MessageFromAgent) | 230 | bool success = SynchronousRestObjectPoster.BeginPostObject<GridInstantMessage, bool>( |
220 | { | 231 | "POST", m_RestURL+"/SaveMessage/", im); |
221 | IClientAPI client = FindClient(new UUID(im.fromAgentID)); | 232 | |
222 | if (client == null) | 233 | if (im.dialog == (byte)InstantMessageDialog.MessageFromAgent) |
223 | return; | 234 | { |
224 | 235 | IClientAPI client = FindClient(new UUID(im.fromAgentID)); | |
225 | client.SendInstantMessage(new GridInstantMessage( | 236 | if (client == null) |
226 | null, new UUID(im.toAgentID), | 237 | return; |
227 | "System", new UUID(im.fromAgentID), | 238 | |
228 | (byte)InstantMessageDialog.MessageFromAgent, | 239 | client.SendInstantMessage(new GridInstantMessage( |
229 | "User is not logged in. "+ | 240 | null, new UUID(im.toAgentID), |
230 | (success ? "Message saved." : "Message not saved"), | 241 | "System", new UUID(im.fromAgentID), |
231 | false, new Vector3())); | 242 | (byte)InstantMessageDialog.MessageFromAgent, |
232 | } | 243 | "User is not logged in. "+ |
244 | (success ? "Message saved." : "Message not saved"), | ||
245 | false, new Vector3())); | ||
233 | } | 246 | } |
234 | } | 247 | } |
235 | } | 248 | } |
diff --git a/OpenSim/Region/CoreModules/Framework/InventoryAccess/HGInventoryAccessModule.cs b/OpenSim/Region/CoreModules/Framework/InventoryAccess/HGInventoryAccessModule.cs index 2ab46aa..b0555da 100644 --- a/OpenSim/Region/CoreModules/Framework/InventoryAccess/HGInventoryAccessModule.cs +++ b/OpenSim/Region/CoreModules/Framework/InventoryAccess/HGInventoryAccessModule.cs | |||
@@ -131,6 +131,7 @@ namespace OpenSim.Region.CoreModules.Framework.InventoryAccess | |||
131 | return ret; | 131 | return ret; |
132 | } | 132 | } |
133 | 133 | ||
134 | // DO NOT OVERRIDE THIS METHOD | ||
134 | public virtual UUID DeleteToInventory(DeRezAction action, UUID folderID, | 135 | public virtual UUID DeleteToInventory(DeRezAction action, UUID folderID, |
135 | SceneObjectGroup objectGroup, IClientAPI remoteClient) | 136 | SceneObjectGroup objectGroup, IClientAPI remoteClient) |
136 | { | 137 | { |
diff --git a/OpenSim/Region/CoreModules/Framework/InventoryAccess/InventoryAccessModule.cs b/OpenSim/Region/CoreModules/Framework/InventoryAccess/InventoryAccessModule.cs index 3035d88..12b6aa0 100644 --- a/OpenSim/Region/CoreModules/Framework/InventoryAccess/InventoryAccessModule.cs +++ b/OpenSim/Region/CoreModules/Framework/InventoryAccess/InventoryAccessModule.cs | |||
@@ -286,23 +286,15 @@ namespace OpenSim.Region.CoreModules.Framework.InventoryAccess | |||
286 | { | 286 | { |
287 | // Deleting someone else's item | 287 | // Deleting someone else's item |
288 | // | 288 | // |
289 | |||
290 | |||
291 | if (remoteClient == null || | 289 | if (remoteClient == null || |
292 | objectGroup.OwnerID != remoteClient.AgentId) | 290 | objectGroup.OwnerID != remoteClient.AgentId) |
293 | { | 291 | { |
294 | // Folder skeleton may not be loaded and we | 292 | |
295 | // have to wait for the inventory to find | ||
296 | // the destination folder | ||
297 | // | ||
298 | folder = m_Scene.InventoryService.GetFolderForType(userID, AssetType.LostAndFoundFolder); | 293 | folder = m_Scene.InventoryService.GetFolderForType(userID, AssetType.LostAndFoundFolder); |
299 | } | 294 | } |
300 | else | 295 | else |
301 | { | 296 | { |
302 | // Assume inventory skeleton was loaded during login | 297 | folder = m_Scene.InventoryService.GetFolderForType(userID, AssetType.TrashFolder); |
303 | // and all folders can be found | ||
304 | // | ||
305 | folder = m_Scene.InventoryService.GetFolderForType(userID, AssetType.TrashFolder); | ||
306 | } | 298 | } |
307 | } | 299 | } |
308 | else if (action == DeRezAction.Return) | 300 | else if (action == DeRezAction.Return) |
@@ -332,7 +324,6 @@ namespace OpenSim.Region.CoreModules.Framework.InventoryAccess | |||
332 | 324 | ||
333 | if (folder == null) // None of the above | 325 | if (folder == null) // None of the above |
334 | { | 326 | { |
335 | //folder = userInfo.RootFolder.FindFolder(folderID); | ||
336 | folder = new InventoryFolderBase(folderID); | 327 | folder = new InventoryFolderBase(folderID); |
337 | 328 | ||
338 | if (folder == null) // Nowhere to put it | 329 | if (folder == null) // Nowhere to put it |
diff --git a/OpenSim/Region/CoreModules/Scripting/EMailModules/EmailModule.cs b/OpenSim/Region/CoreModules/Scripting/EMailModules/EmailModule.cs index 83f004d..c0975ea 100644 --- a/OpenSim/Region/CoreModules/Scripting/EMailModules/EmailModule.cs +++ b/OpenSim/Region/CoreModules/Scripting/EMailModules/EmailModule.cs | |||
@@ -40,7 +40,7 @@ using OpenSim.Region.Framework.Scenes; | |||
40 | 40 | ||
41 | namespace OpenSim.Region.CoreModules.Scripting.EmailModules | 41 | namespace OpenSim.Region.CoreModules.Scripting.EmailModules |
42 | { | 42 | { |
43 | public class EmailModule : IEmailModule | 43 | public class EmailModule : IRegionModule, IEmailModule |
44 | { | 44 | { |
45 | // | 45 | // |
46 | // Log | 46 | // Log |
diff --git a/OpenSim/Region/CoreModules/Scripting/LSLHttp/UrlModule.cs b/OpenSim/Region/CoreModules/Scripting/LSLHttp/UrlModule.cs index 9b565ed..1fd1f47 100644 --- a/OpenSim/Region/CoreModules/Scripting/LSLHttp/UrlModule.cs +++ b/OpenSim/Region/CoreModules/Scripting/LSLHttp/UrlModule.cs | |||
@@ -142,7 +142,7 @@ namespace OpenSim.Region.CoreModules.Scripting.LSLHttp | |||
142 | engine.PostScriptEvent(itemID, "http_request", new Object[] { urlcode.ToString(), "URL_REQUEST_DENIED", "" }); | 142 | engine.PostScriptEvent(itemID, "http_request", new Object[] { urlcode.ToString(), "URL_REQUEST_DENIED", "" }); |
143 | return urlcode; | 143 | return urlcode; |
144 | } | 144 | } |
145 | string url = "http://" + m_ExternalHostNameForLSL + ":" + m_HttpServer.Port.ToString() + "/lslhttp/" + urlcode.ToString() + "/"; | 145 | string url = "http://" + m_ExternalHostNameForLSL + ":" + m_HttpServer.Port.ToString() + "/lslhttp/" + urlcode.ToString(); |
146 | 146 | ||
147 | UrlData urlData = new UrlData(); | 147 | UrlData urlData = new UrlData(); |
148 | urlData.hostID = host.UUID; | 148 | urlData.hostID = host.UUID; |
@@ -152,10 +152,9 @@ namespace OpenSim.Region.CoreModules.Scripting.LSLHttp | |||
152 | urlData.urlcode = urlcode; | 152 | urlData.urlcode = urlcode; |
153 | urlData.requests = new Dictionary<UUID, RequestData>(); | 153 | urlData.requests = new Dictionary<UUID, RequestData>(); |
154 | 154 | ||
155 | |||
156 | m_UrlMap[url] = urlData; | 155 | m_UrlMap[url] = urlData; |
157 | 156 | ||
158 | string uri = "/lslhttp/" + urlcode.ToString() + "/"; | 157 | string uri = "/lslhttp/" + urlcode.ToString(); |
159 | 158 | ||
160 | m_HttpServer.AddPollServiceHTTPHandler(uri,HandleHttpPoll, | 159 | m_HttpServer.AddPollServiceHTTPHandler(uri,HandleHttpPoll, |
161 | new PollServiceEventArgs(HttpRequestHandler,HasEvents, GetEvents, NoEvents, | 160 | new PollServiceEventArgs(HttpRequestHandler,HasEvents, GetEvents, NoEvents, |
@@ -386,6 +385,7 @@ namespace OpenSim.Region.CoreModules.Scripting.LSLHttp | |||
386 | 385 | ||
387 | return response; | 386 | return response; |
388 | } | 387 | } |
388 | |||
389 | public void HttpRequestHandler(UUID requestID, Hashtable request) | 389 | public void HttpRequestHandler(UUID requestID, Hashtable request) |
390 | { | 390 | { |
391 | lock (request) | 391 | lock (request) |
@@ -400,8 +400,8 @@ namespace OpenSim.Region.CoreModules.Scripting.LSLHttp | |||
400 | 400 | ||
401 | int pos1 = uri.IndexOf("/");// /lslhttp | 401 | int pos1 = uri.IndexOf("/");// /lslhttp |
402 | int pos2 = uri.IndexOf("/", pos1 + 1);// /lslhttp/ | 402 | int pos2 = uri.IndexOf("/", pos1 + 1);// /lslhttp/ |
403 | int pos3 = uri.IndexOf("/", pos2 + 1);// /lslhttp/<UUID>/ | 403 | int pos3 = pos2 + 37; // /lslhttp/urlcode |
404 | string uri_tmp = uri.Substring(0, pos3 + 1); | 404 | string uri_tmp = uri.Substring(0, pos3); |
405 | //HTTP server code doesn't provide us with QueryStrings | 405 | //HTTP server code doesn't provide us with QueryStrings |
406 | string pathInfo; | 406 | string pathInfo; |
407 | string queryString; | 407 | string queryString; |
diff --git a/OpenSim/Region/CoreModules/ServiceConnectorsIn/Inventory/InventoryServiceInConnectorModule.cs b/OpenSim/Region/CoreModules/ServiceConnectorsIn/Inventory/InventoryServiceInConnectorModule.cs index ae03cdf..209cf0d 100644 --- a/OpenSim/Region/CoreModules/ServiceConnectorsIn/Inventory/InventoryServiceInConnectorModule.cs +++ b/OpenSim/Region/CoreModules/ServiceConnectorsIn/Inventory/InventoryServiceInConnectorModule.cs | |||
@@ -96,7 +96,7 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsIn.Inventory | |||
96 | 96 | ||
97 | Object[] args = new Object[] { m_Config, MainServer.Instance, "HGInventoryService" }; | 97 | Object[] args = new Object[] { m_Config, MainServer.Instance, "HGInventoryService" }; |
98 | 98 | ||
99 | ServerUtils.LoadPlugin<IServiceConnector>("OpenSim.Server.Handlers.dll:HGInventoryServiceInConnector", args); | 99 | ServerUtils.LoadPlugin<IServiceConnector>("OpenSim.Server.Handlers.dll:XInventoryInConnector", args); |
100 | } | 100 | } |
101 | } | 101 | } |
102 | 102 | ||
diff --git a/OpenSim/Region/CoreModules/World/Land/LandManagementModule.cs b/OpenSim/Region/CoreModules/World/Land/LandManagementModule.cs index 91c8130..cfee1b0 100644 --- a/OpenSim/Region/CoreModules/World/Land/LandManagementModule.cs +++ b/OpenSim/Region/CoreModules/World/Land/LandManagementModule.cs | |||
@@ -1303,18 +1303,31 @@ namespace OpenSim.Region.CoreModules.World.Land | |||
1303 | 1303 | ||
1304 | public void EventManagerOnIncomingLandDataFromStorage(List<LandData> data) | 1304 | public void EventManagerOnIncomingLandDataFromStorage(List<LandData> data) |
1305 | { | 1305 | { |
1306 | for (int i = 0; i < data.Count; i++) | 1306 | lock (m_landList) |
1307 | { | 1307 | { |
1308 | IncomingLandObjectFromStorage(data[i]); | 1308 | //Remove all the land objects in the sim and then process our new data |
1309 | foreach (int n in m_landList.Keys) | ||
1310 | { | ||
1311 | m_scene.EventManager.TriggerLandObjectRemoved(m_landList[n].LandData.GlobalID); | ||
1312 | } | ||
1313 | m_landIDList.Initialize(); | ||
1314 | m_landList.Clear(); | ||
1315 | |||
1316 | for (int i = 0; i < data.Count; i++) | ||
1317 | { | ||
1318 | IncomingLandObjectFromStorage(data[i]); | ||
1319 | } | ||
1309 | } | 1320 | } |
1310 | } | 1321 | } |
1311 | 1322 | ||
1312 | public void IncomingLandObjectFromStorage(LandData data) | 1323 | public void IncomingLandObjectFromStorage(LandData data) |
1313 | { | 1324 | { |
1325 | |||
1314 | ILandObject new_land = new LandObject(data.OwnerID, data.IsGroupOwned, m_scene); | 1326 | ILandObject new_land = new LandObject(data.OwnerID, data.IsGroupOwned, m_scene); |
1315 | new_land.LandData = data.Copy(); | 1327 | new_land.LandData = data.Copy(); |
1316 | new_land.SetLandBitmapFromByteArray(); | 1328 | new_land.SetLandBitmapFromByteArray(); |
1317 | AddLandObject(new_land); | 1329 | AddLandObject(new_land); |
1330 | new_land.SendLandUpdateToAvatarsOverMe(); | ||
1318 | } | 1331 | } |
1319 | 1332 | ||
1320 | public void ReturnObjectsInParcel(int localID, uint returnType, UUID[] agentIDs, UUID[] taskIDs, IClientAPI remoteClient) | 1333 | public void ReturnObjectsInParcel(int localID, uint returnType, UUID[] agentIDs, UUID[] taskIDs, IClientAPI remoteClient) |
diff --git a/OpenSim/Region/CoreModules/World/Terrain/TerrainModule.cs b/OpenSim/Region/CoreModules/World/Terrain/TerrainModule.cs index 1e7ea7b..0c20393 100644 --- a/OpenSim/Region/CoreModules/World/Terrain/TerrainModule.cs +++ b/OpenSim/Region/CoreModules/World/Terrain/TerrainModule.cs | |||
@@ -544,6 +544,8 @@ namespace OpenSim.Region.CoreModules.World.Terrain | |||
544 | m_scene.PhysicsScene.SetTerrain(m_channel.GetFloatsSerialised()); | 544 | m_scene.PhysicsScene.SetTerrain(m_channel.GetFloatsSerialised()); |
545 | m_scene.SaveTerrain(); | 545 | m_scene.SaveTerrain(); |
546 | 546 | ||
547 | m_scene.EventManager.TriggerTerrainUpdate(); | ||
548 | |||
547 | // Clients who look at the map will never see changes after they looked at the map, so i've commented this out. | 549 | // Clients who look at the map will never see changes after they looked at the map, so i've commented this out. |
548 | //m_scene.CreateTerrainTexture(true); | 550 | //m_scene.CreateTerrainTexture(true); |
549 | } | 551 | } |
diff --git a/OpenSim/Region/CoreModules/World/WorldMap/WorldMapModule.cs b/OpenSim/Region/CoreModules/World/WorldMap/WorldMapModule.cs index 0e849e5..9d9967a 100644 --- a/OpenSim/Region/CoreModules/World/WorldMap/WorldMapModule.cs +++ b/OpenSim/Region/CoreModules/World/WorldMap/WorldMapModule.cs | |||
@@ -805,7 +805,7 @@ namespace OpenSim.Region.CoreModules.World.WorldMap | |||
805 | imgstream = new MemoryStream(); | 805 | imgstream = new MemoryStream(); |
806 | 806 | ||
807 | // non-async because we know we have the asset immediately. | 807 | // non-async because we know we have the asset immediately. |
808 | AssetBase mapasset = m_scene.AssetService.Get(m_scene.RegionInfo.lastMapUUID.ToString()); | 808 | AssetBase mapasset = m_scene.AssetService.Get(m_scene.RegionInfo.RegionSettings.TerrainImageID.ToString()); |
809 | 809 | ||
810 | // Decode image to System.Drawing.Image | 810 | // Decode image to System.Drawing.Image |
811 | if (OpenJPEG.DecodeToImage(mapasset.Data, out managedImage, out image)) | 811 | if (OpenJPEG.DecodeToImage(mapasset.Data, out managedImage, out image)) |