Use manifest values instead of constants

master
D4VID 7 months ago
parent 2dce593d9b
commit ac691e2915

@ -26,7 +26,7 @@ namespace CriticalPathAnalyzer.Client {
KeybindingsInjector.Inject(); KeybindingsInjector.Inject();
// Inject packet handlers // Inject packet handlers
RawPacketHandlerInjector.addPacketHandler(new AnnounceModPacketHandler()); RawPacketHandlerInjector.addPacketHandler(new AnnounceModPacketHandler(Manifest.Version));
RawPacketHandlerInjector.addPacketHandler(new AnalyzePathResponseHandler()); RawPacketHandlerInjector.addPacketHandler(new AnalyzePathResponseHandler());
Logger.Info("CriticalPathAnalyzer mod loaded"); Logger.Info("CriticalPathAnalyzer mod loaded");

@ -1,10 +1,21 @@
using System;
using CriticalPathAnalyzer.Shared.Packets.S2C; using CriticalPathAnalyzer.Shared.Packets.S2C;
using LogicWorld.SharedCode.Networking; using LogicWorld.SharedCode.Networking;
namespace CriticalPathAnalyzer.Client.Network { namespace CriticalPathAnalyzer.Client.Network {
public class AnnounceModPacketHandler : PacketHandler<AnnounceModPresence> { public class AnnounceModPacketHandler : PacketHandler<AnnounceModPresence> {
private readonly Version _version;
public AnnounceModPacketHandler(Version version) {
_version = version;
}
public override void Handle(AnnounceModPresence packet, HandlerContext context) { 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}");
}
} }
} }
} }

@ -19,9 +19,6 @@ using LogicWorld.SharedCode.Networking;
namespace CriticalPathAnalyzer.Server { namespace CriticalPathAnalyzer.Server {
// ReSharper disable once ClassNeverInstantiated.Global // ReSharper disable once ClassNeverInstantiated.Global
public class CriticalPathAnalyzerServer : ServerMod, IClientVerifier { public class CriticalPathAnalyzerServer : ServerMod, IClientVerifier {
private const string ModId = "CriticalPathAnalyzer";
private const string ModVersion = "0.0.2";
private NetworkServer _networkServer; private NetworkServer _networkServer;
private readonly Dictionary<string, bool> _playerHasWireTracer = new Dictionary<string, bool>(); private readonly Dictionary<string, bool> _playerHasWireTracer = new Dictionary<string, bool>();
@ -44,7 +41,7 @@ namespace CriticalPathAnalyzer.Server {
} }
public void Verify(VerificationContext ctx) { 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; string playerName = ctx.PlayerID.Name;
_playerHasWireTracer[playerName] = hasMod; _playerHasWireTracer[playerName] = hasMod;
LoggerInstance.Info($"Verifying player {playerName}: hasMod={hasMod}"); LoggerInstance.Info($"Verifying player {playerName}: hasMod={hasMod}");
@ -54,7 +51,7 @@ namespace CriticalPathAnalyzer.Server {
_playerHasWireTracer.TryGetValue(playerData.Name, out bool hasWireTracer); _playerHasWireTracer.TryGetValue(playerData.Name, out bool hasWireTracer);
if (hasWireTracer) { if (hasWireTracer) {
_networkServer.Send(context.Sender, new AnnounceModPresence() { _networkServer.Send(context.Sender, new AnnounceModPresence() {
Version = ModVersion Version = Manifest.Version
}); });
} }
} }

@ -1,9 +1,10 @@
using System;
using LogicAPI.Networking.Packets; using LogicAPI.Networking.Packets;
using MessagePack; using MessagePack;
namespace CriticalPathAnalyzer.Shared.Packets.S2C { namespace CriticalPathAnalyzer.Shared.Packets.S2C {
[MessagePackObject] [MessagePackObject]
public class AnnounceModPresence : Packet { public class AnnounceModPresence : Packet {
[Key(0)] public string Version; [Key(0)] public Version Version;
} }
} }
Loading…
Cancel
Save