Use manifest values instead of constants

master
D4VID 7 months ago
parent 2dce593d9b
commit ac691e2915

@ -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");

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

@ -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;
}
}
Loading…
Cancel
Save