From ac691e29158ff2f4d4d8ca486cc020ba2057abe2 Mon Sep 17 00:00:00 2001 From: D4VID Date: Sat, 1 Mar 2025 19:23:16 +0100 Subject: [PATCH] Use manifest values instead of constants --- .../src/client/CriticalPathAnalyzerClient.cs | 2 +- .../src/client/network/AnnounceModPacketHandler.cs | 13 ++++++++++++- .../src/server/CriticalPathAnalyzerServer.cs | 7 ++----- .../src/shared/packets/s2c/AnnounceModPresence.cs | 3 ++- 4 files changed, 17 insertions(+), 8 deletions(-) diff --git a/CriticalPathAnalyzer/CriticalPathAnalyzer/src/client/CriticalPathAnalyzerClient.cs b/CriticalPathAnalyzer/CriticalPathAnalyzer/src/client/CriticalPathAnalyzerClient.cs index e1dfaa3..81db8fe 100644 --- a/CriticalPathAnalyzer/CriticalPathAnalyzer/src/client/CriticalPathAnalyzerClient.cs +++ b/CriticalPathAnalyzer/CriticalPathAnalyzer/src/client/CriticalPathAnalyzerClient.cs @@ -26,7 +26,7 @@ namespace CriticalPathAnalyzer.Client { KeybindingsInjector.Inject(); // Inject packet handlers - RawPacketHandlerInjector.addPacketHandler(new AnnounceModPacketHandler()); + RawPacketHandlerInjector.addPacketHandler(new AnnounceModPacketHandler(Manifest.Version)); RawPacketHandlerInjector.addPacketHandler(new AnalyzePathResponseHandler()); Logger.Info("CriticalPathAnalyzer mod loaded"); diff --git a/CriticalPathAnalyzer/CriticalPathAnalyzer/src/client/network/AnnounceModPacketHandler.cs b/CriticalPathAnalyzer/CriticalPathAnalyzer/src/client/network/AnnounceModPacketHandler.cs index 0a6a61e..6791b2e 100644 --- a/CriticalPathAnalyzer/CriticalPathAnalyzer/src/client/network/AnnounceModPacketHandler.cs +++ b/CriticalPathAnalyzer/CriticalPathAnalyzer/src/client/network/AnnounceModPacketHandler.cs @@ -1,10 +1,21 @@ +using System; using CriticalPathAnalyzer.Shared.Packets.S2C; using LogicWorld.SharedCode.Networking; namespace CriticalPathAnalyzer.Client.Network { public class AnnounceModPacketHandler : PacketHandler { + private readonly Version _version; + + public AnnounceModPacketHandler(Version version) { + _version = version; + } + public override void Handle(AnnounceModPresence packet, HandlerContext context) { - CriticalPathAnalyzerClient.LoggerInstance.Info($"Mod is supported on the server: version={packet.Version}"); + if (packet.Version == _version) { + CriticalPathAnalyzerClient.LoggerInstance.Info($"Mod is supported on the server: version={packet.Version}"); + } else { + CriticalPathAnalyzerClient.LoggerInstance.Error($"Mod version mismatch: client={_version}, server={packet.Version}"); + } } } } \ No newline at end of file diff --git a/CriticalPathAnalyzer/CriticalPathAnalyzer/src/server/CriticalPathAnalyzerServer.cs b/CriticalPathAnalyzer/CriticalPathAnalyzer/src/server/CriticalPathAnalyzerServer.cs index a189fe9..504f702 100644 --- a/CriticalPathAnalyzer/CriticalPathAnalyzer/src/server/CriticalPathAnalyzerServer.cs +++ b/CriticalPathAnalyzer/CriticalPathAnalyzer/src/server/CriticalPathAnalyzerServer.cs @@ -19,9 +19,6 @@ using LogicWorld.SharedCode.Networking; namespace CriticalPathAnalyzer.Server { // ReSharper disable once ClassNeverInstantiated.Global public class CriticalPathAnalyzerServer : ServerMod, IClientVerifier { - private const string ModId = "CriticalPathAnalyzer"; - private const string ModVersion = "0.0.2"; - private NetworkServer _networkServer; private readonly Dictionary _playerHasWireTracer = new Dictionary(); @@ -44,7 +41,7 @@ namespace CriticalPathAnalyzer.Server { } public void Verify(VerificationContext ctx) { - bool hasMod = ctx.ApprovalPacket.ClientMods.Contains(ModId); + bool hasMod = ctx.ApprovalPacket.ClientMods.Contains(Manifest.ID); string playerName = ctx.PlayerID.Name; _playerHasWireTracer[playerName] = hasMod; LoggerInstance.Info($"Verifying player {playerName}: hasMod={hasMod}"); @@ -54,7 +51,7 @@ namespace CriticalPathAnalyzer.Server { _playerHasWireTracer.TryGetValue(playerData.Name, out bool hasWireTracer); if (hasWireTracer) { _networkServer.Send(context.Sender, new AnnounceModPresence() { - Version = ModVersion + Version = Manifest.Version }); } } diff --git a/CriticalPathAnalyzer/CriticalPathAnalyzer/src/shared/packets/s2c/AnnounceModPresence.cs b/CriticalPathAnalyzer/CriticalPathAnalyzer/src/shared/packets/s2c/AnnounceModPresence.cs index ad53635..7991c5e 100644 --- a/CriticalPathAnalyzer/CriticalPathAnalyzer/src/shared/packets/s2c/AnnounceModPresence.cs +++ b/CriticalPathAnalyzer/CriticalPathAnalyzer/src/shared/packets/s2c/AnnounceModPresence.cs @@ -1,9 +1,10 @@ +using System; using LogicAPI.Networking.Packets; using MessagePack; namespace CriticalPathAnalyzer.Shared.Packets.S2C { [MessagePackObject] public class AnnounceModPresence : Packet { - [Key(0)] public string Version; + [Key(0)] public Version Version; } } \ No newline at end of file