namespace Impostor.Api.Innersloth
{
- public class GameVersion
+ public static class GameVersion
{
- public static int GetVersion(int year, int month, int day, int rev = 0)
+ public static int GetVersion(int year, int month, int day, int revision = 0)
{
- return (year * 25000) + (month * 1800) + (day * 50) + rev;
+ return (year * 25000) + (month * 1800) + (day * 50) + revision;
+ }
+
+ public static void ParseVersion(int version, out int year, out int month, out int day, out int revision)
+ {
+ year = version / 25000;
+ version %= 25000;
+ month = version / 1800;
+ version %= 1800;
+ day = version / 50;
+ revision = version % 50;
}
}
}
{
if (!SupportedVersions.Contains(clientVersion))
{
+ GameVersion.ParseVersion(clientVersion, out var year, out var month, out var day, out var revision);
+ _logger.LogTrace("Client connected using unsupported version: {clientVersion} ({version})", clientVersion, $"{year}.{month}.{day}{(revision == 0 ? string.Empty : "." + revision)}");
+
using var packet = MessageWriter.Get(MessageType.Reliable);
Message01JoinGameS2C.SerializeError(packet, false, DisconnectReason.IncorrectVersion);
await connection.SendAsync(packet);