diff --git a/Projects/Scripts/Misc/MapDefinitions.cs b/Projects/Scripts/Misc/MapDefinitions.cs index 4b50c9ea4..a67a252e7 100644 --- a/Projects/Scripts/Misc/MapDefinitions.cs +++ b/Projects/Scripts/Misc/MapDefinitions.cs @@ -1,6 +1,6 @@ namespace Server.Misc { - public class MapDefinitions + public static class MapDefinitions { public static void Configure() { @@ -33,11 +33,12 @@ namespace Server.Misc * - : Season of the map. 0 = Spring, 1 = Summer, 2 = Fall, 3 = Winter, 4 = Desolation * - : Reference name for the map, used in props gump, get/set commands, region loading, etc * - : Rules and restrictions associated with the map. See documentation for details - */ + */ - TileMatrixPatch.Enabled = false; // OSI Client Patch 6.0.0.0 + // Using this requires the old mapDif files to be present. Only needed to support Clients < 6.0.0.0 + TileMatrixPatch.Enabled = ServerConfiguration.GetOrUpdateSetting("maps.enableTileMatrixPatches", !Core.SE); - MultiComponentList.PostHSFormat = true; // OSI Client Patch 7.0.9.0 + MultiComponentList.PostHSFormat = ServerConfiguration.GetOrUpdateSetting("maps.enablePostHSMultiComponentFormat", true); // OSI Client Patch 7.0.9.0 } public static void RegisterMap(int mapIndex, int mapID, int fileIndex, int width, int height, int season, @@ -49,4 +50,4 @@ namespace Server.Misc Map.AllMaps.Add(newMap); } } -} \ No newline at end of file +} diff --git a/Projects/Scripts/Misc/ServerList.cs b/Projects/Scripts/Misc/ServerList.cs index 6636b205f..0c5d50cab 100644 --- a/Projects/Scripts/Misc/ServerList.cs +++ b/Projects/Scripts/Misc/ServerList.cs @@ -50,6 +50,7 @@ namespace Server.Misc { Address = ServerConfiguration.GetOrUpdateSetting("serverListing.address", "(-null-)"); AutoDetect = ServerConfiguration.GetOrUpdateSetting("serverListing.autoDetect", true); + ServerName = ServerConfiguration.GetOrUpdateSetting("serverListing.serverName", "ModernUO"); if (Address == null) { diff --git a/Projects/Server.Tests/Network/Packets/DamageOldPacketTests.cs b/Projects/Server.Tests/Network/Packets/DamageOldPacketTests.cs index 0a22cf266..214154734 100644 --- a/Projects/Server.Tests/Network/Packets/DamageOldPacketTests.cs +++ b/Projects/Server.Tests/Network/Packets/DamageOldPacketTests.cs @@ -1,5 +1,4 @@ using System; -using System.Buffers.Binary; using Server.Network; using Xunit; diff --git a/Projects/Server.Tests/ServerFixture.cs b/Projects/Server.Tests/ServerFixture.cs index df6426e79..e68435f6a 100644 --- a/Projects/Server.Tests/ServerFixture.cs +++ b/Projects/Server.Tests/ServerFixture.cs @@ -9,6 +9,9 @@ namespace Server.Tests public ServerFixture() { + // Load Configurations + ServerConfiguration.Load(true); + // Configure / Initialize MapDefinitions.Configure(); diff --git a/Projects/Server/Configuration/ServerConfiguration.cs b/Projects/Server/Configuration/ServerConfiguration.cs index fafff15bc..bb0f4fd01 100644 --- a/Projects/Server/Configuration/ServerConfiguration.cs +++ b/Projects/Server/Configuration/ServerConfiguration.cs @@ -32,6 +32,7 @@ namespace Server private const string m_RelPath = "Configuration/modernuo.json"; private static readonly string m_FilePath = Path.Join(Core.BaseDirectory, m_RelPath); private static ServerSettings m_Settings; + private static bool m_Mocked; public static List DataDirectories => m_Settings.dataDirectories; @@ -119,7 +120,7 @@ namespace Server public static void SetSetting(string key, string value) { m_Settings.settings[key] = value; - SaveConfiguration(); + Save(); } public static T GetMetadata(string key) where T : class @@ -133,8 +134,10 @@ namespace Server m_Settings.metadata[key] = value; } - public static void LoadConfiguration() + // If mock is enabled we skip the console readline. + public static void Load(bool mocked = false) { + m_Mocked = mocked; bool updated = false; if (File.Exists(m_FilePath)) @@ -158,6 +161,9 @@ namespace Server m_Settings = new ServerSettings(); } + if (mocked) + return; + if (m_Settings.dataDirectories.Count == 0) { updated = true; @@ -167,7 +173,7 @@ namespace Server if (updated) { - SaveConfiguration(); + Save(); Console.ForegroundColor = ConsoleColor.Green; Console.WriteLine($"Core: Configuration saved to {m_RelPath}."); Console.ResetColor(); @@ -200,8 +206,10 @@ namespace Server return directory; } - public static void SaveConfiguration() + public static void Save() { + if (m_Mocked) return; + JsonConfig.Serialize(m_FilePath, m_Settings); } } diff --git a/Projects/Server/Main.cs b/Projects/Server/Main.cs index e2957e016..b2d1e2f53 100644 --- a/Projects/Server/Main.cs +++ b/Projects/Server/Main.cs @@ -380,7 +380,7 @@ namespace Server Console.WriteLine("SecureRandomImpl: {0} ({1})", SecureRandomImpl.Name, SecureRandomImpl.IsHardwareRNG ? "Hardware" : "Software"); - ServerConfiguration.LoadConfiguration(); + ServerConfiguration.Load(); // Load Assembly Scripts.CS.dll AssemblyHandler.LoadScripts(); diff --git a/Projects/Server/Map.cs b/Projects/Server/Map.cs index 30a8d2eee..d165f7b1c 100644 --- a/Projects/Server/Map.cs +++ b/Projects/Server/Map.cs @@ -256,7 +256,6 @@ namespace Server } [Parsable] - // [CustomEnum( new string[]{ "Felucca", "Trammel", "Ilshenar", "Malas", "Internal" } )] public sealed class Map : IComparable { public const int SectorSize = 16; diff --git a/Projects/Server/Mobile.cs b/Projects/Server/Mobile.cs index 2aa739200..96013bad5 100644 --- a/Projects/Server/Mobile.cs +++ b/Projects/Server/Mobile.cs @@ -2063,7 +2063,10 @@ namespace Server { ns.Sequence = 0; ns.Send(new MapChange(this)); - ns.Send(new MapPatches()); + + if (!Core.SE && ns.ProtocolChanges < ProtocolChanges.Version6000) + ns.Send(new MapPatches()); + ns.Send(SeasonChange.Instantiate(GetSeason(), true)); if (ns.StygianAbyss) @@ -2185,7 +2188,10 @@ namespace Server { ns.Sequence = 0; ns.Send(new MapChange(this)); - ns.Send(new MapPatches()); + + if (!Core.SE && ns.ProtocolChanges < ProtocolChanges.Version6000) + ns.Send(new MapPatches()); + ns.Send(SeasonChange.Instantiate(GetSeason(), true)); if (ns.StygianAbyss) diff --git a/Projects/Server/Network/PacketHandlers.cs b/Projects/Server/Network/PacketHandlers.cs index 34346b734..06163d015 100644 --- a/Projects/Server/Network/PacketHandlers.cs +++ b/Projects/Server/Network/PacketHandlers.cs @@ -1940,7 +1940,8 @@ namespace Server.Network if (m.Map != null) state.Send(new MapChange(m)); - state.Send(new MapPatches()); + if (!Core.SE && state.ProtocolChanges < ProtocolChanges.Version6000) + state.Send(new MapPatches()); state.Send(SeasonChange.Instantiate(m.GetSeason(), true)); diff --git a/Projects/Server/Network/Packets.cs b/Projects/Server/Network/Packets.cs index 1b4853de7..c56de30e8 100644 --- a/Projects/Server/Network/Packets.cs +++ b/Projects/Server/Network/Packets.cs @@ -254,7 +254,7 @@ namespace Server.Network { public MapPatches() : base(0xBF) { - EnsureCapacity(9 + 3 * 8); + EnsureCapacity(9 + 4 * 8); Stream.Write((short)0x0018);