--- /dev/null
+using System;
+using Impostor.Api.Innersloth.GameOptions;
+using Impostor.Hazel;
+
+namespace Impostor.Server.Extensions;
+
+public static class IGameOptionsExtensions
+{
+ public static byte[] ToBytes(this IGameOptions gameOptions)
+ {
+ using var writer = MessageWriter.Get(MessageType.Unreliable);
+ writer.Write(gameOptions.Version);
+ writer.StartMessage(0);
+ writer.Write((byte)gameOptions.GameMode);
+ gameOptions.Serialize(writer);
+ writer.EndMessage();
+ return writer.ToByteArray(false);
+ }
+
+ public static string ToBase64String(this IGameOptions gameOptions)
+ {
+ return Convert.ToBase64String(gameOptions.ToBytes());
+ }
+}
using Impostor.Api.Games;
using Impostor.Api.Games.Managers;
using Impostor.Api.Innersloth;
+using Impostor.Server.Extensions;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Options;
NumImpostors = game.Options.NumImpostors,
MapId = game.Options.Map,
Language = game.Options.Keywords,
-
- // TODO don't hardcode
- Options = "CXQAAAEAAA8AAQAAAgAAwD8AAEA/AAAAQAAAoEECAgQCAAAAAgEtAAAALQAAAAAPAAABAQAHBQABZAMAAAAKHgIAAWQCAAAKDwQAAkYDAAAjDwADAAFkAgAADw8IAAJkAgAACgEJAAFkAgAACh4KAAFkAwAADxQB",
+ Options = game.Options.ToBase64String(),
};
}
}