Save a couple of estate settings in OAR files.

The settings that are saved are:
* AllowDirectTeleport - required in order to make Telehubs work
* AllowEnvironmentOverride - required in order to allow parcels to have different EEP settings from the region
This commit is contained in:
Oren Hurvitz
2021-03-07 15:52:44 +02:00
parent c1a3185df3
commit 521754ba84
5 changed files with 42 additions and 8 deletions

View File

@@ -1044,7 +1044,7 @@ namespace OpenSim.Region.CoreModules.World.Archiver
ViewerEnvironment regionEnv = null;
try
{
loadedRegionSettings = RegionSettingsSerializer.Deserialize(data, out regionEnv);
loadedRegionSettings = RegionSettingsSerializer.Deserialize(data, out regionEnv, scene.RegionInfo.EstateSettings);
}
catch (Exception e)
{
@@ -1104,6 +1104,8 @@ namespace OpenSim.Region.CoreModules.World.Archiver
currentRegionSettings.CacheID = UUID.Random();
currentRegionSettings.Save();
scene.EstateDataService.StoreEstateSettings(scene.RegionInfo.EstateSettings);
IEstateModule estateModule = scene.RequestModuleInterface<IEstateModule>();
if (estateModule != null)
estateModule.sendRegionHandshakeToAll();

View File

@@ -579,7 +579,7 @@ namespace OpenSim.Region.CoreModules.World.Archiver
// Write out region settings
string settingsPath = String.Format("{0}{1}{2}.xml",
regionDir, ArchiveConstants.SETTINGS_PATH, scene.RegionInfo.RegionName);
m_archiveWriter.WriteFile(settingsPath, RegionSettingsSerializer.Serialize(scene.RegionInfo.RegionSettings, scene.RegionEnvironment));
m_archiveWriter.WriteFile(settingsPath, RegionSettingsSerializer.Serialize(scene.RegionInfo.RegionSettings, scene.RegionEnvironment, scene.RegionInfo.EstateSettings));
m_log.InfoFormat("[ARCHIVER]: Adding parcel settings to archive.");

View File

@@ -657,7 +657,7 @@ namespace OpenSim.Region.CoreModules.World.Archiver.Tests
rs.TelehubObject = UUID.Parse("00000000-0000-0000-0000-111111111111");
rs.AddSpawnPoint(SpawnPoint.Parse("1,-2,0.33"));
tar.WriteFile(ArchiveConstants.SETTINGS_PATH + "region1.xml", RegionSettingsSerializer.Serialize(rs, null));
tar.WriteFile(ArchiveConstants.SETTINGS_PATH + "region1.xml", RegionSettingsSerializer.Serialize(rs, null, new EstateSettings()));
tar.Close();