--- /dev/null
+namespace Impostor.Api.Innersloth
+{
+ public enum ChatType
+ {
+ FreeChatOrQuickChat = 1,
+ QuickChatOnly = 2,
+ }
+}
writer.EndMessage();
}
- public static GameOptionsData Deserialize(IMessageReader reader)
+ public static GameOptionsData Deserialize(IMessageReader reader, out ChatType chatType)
{
- return GameOptionsData.DeserializeCreate(reader);
+ var gameOptionsData = GameOptionsData.DeserializeCreate(reader);
+ chatType = (ChatType)reader.ReadByte();
+
+ return gameOptionsData;
}
}
}
-using System;
-
-namespace Impostor.Api.Net.Messages.C2S
+namespace Impostor.Api.Net.Messages.C2S
{
public static class Message01JoinGameC2S
{
throw new System.NotImplementedException();
}
- public static void Deserialize(IMessageReader reader, out int gameCode, out byte unknown)
+ public static void Deserialize(IMessageReader reader, out int gameCode)
{
- var slice = reader.ReadBytes(sizeof(Int32) + sizeof(byte)).Span;
+ var slice = reader.ReadBytes(sizeof(int)).Span;
gameCode = slice.ReadInt32();
- unknown = slice.ReadByte();
}
}
-}
\ No newline at end of file
+}
throw new System.NotImplementedException();
}
- public static void Deserialize(IMessageReader reader, out GameOptionsData options)
+ public static void Deserialize(IMessageReader reader, out GameOptionsData options, out ChatType chatType)
{
reader.ReadPackedInt32(); // Hardcoded 0.
options = GameOptionsData.DeserializeCreate(reader);
+ chatType = (ChatType)reader.ReadByte();
}
}
-}
\ No newline at end of file
+}
{
public class Message16GetGameListS2C
{
- public static void Serialize(IMessageWriter writer, int skeldGameCount, int miraHqGameCount, int polusGameCount, IEnumerable<IGame> games)
+ public static void Serialize(IMessageWriter writer, IEnumerable<IGame> games)
{
writer.StartMessage(MessageFlags.GetGameListV2);
- // Count
- writer.StartMessage(1);
- writer.Write(skeldGameCount); // The Skeld
- writer.Write(miraHqGameCount); // Mira HQ
- writer.Write(polusGameCount); // Polus
- writer.EndMessage();
-
// Listing
writer.StartMessage(0);
case MessageFlags.HostGame:
{
// Read game settings.
- var gameInfo = Message00HostGameC2S.Deserialize(reader);
+ var gameInfo = Message00HostGameC2S.Deserialize(reader, out _);
// Create game.
var game = await _gameManager.CreateAsync(gameInfo);
case MessageFlags.JoinGame:
{
- Message01JoinGameC2S.Deserialize(
- reader,
- out var gameCode,
- out _);
+ Message01JoinGameC2S.Deserialize(reader, out var gameCode);
var game = _gameManager.Find(gameCode);
if (game == null)
case MessageFlags.GetGameListV2:
{
- Message16GetGameListC2S.Deserialize(reader, out var options);
+ Message16GetGameListC2S.Deserialize(reader, out var options, out _);
await OnRequestGameListAsync(options);
break;
}
var games = _gameManager.FindListings((MapFlags)options.Map, options.NumImpostors, options.Keywords);
- var skeldGameCount = _gameManager.GetGameCount(MapFlags.Skeld);
- var miraHqGameCount = _gameManager.GetGameCount(MapFlags.MiraHQ);
- var polusGameCount = _gameManager.GetGameCount(MapFlags.Polus);
-
- Message16GetGameListS2C.Serialize(message, skeldGameCount, miraHqGameCount, polusGameCount, games);
+ Message16GetGameListS2C.Serialize(message, games);
return Connection.SendAsync(message);
}
{
private static HashSet<int> SupportedVersions { get; } = new HashSet<int>
{
- GameVersion.GetVersion(2020, 09, 07), // 2020.09.07 - 2020.09.22
- GameVersion.GetVersion(2020, 10, 08), // 2020.10.08
- GameVersion.GetVersion(2020, 11, 17), // 2020.11.17
+ GameVersion.GetVersion(2021, 3, 5), // 2021.3.5
};
private static string ServerBrand { get; } = $"Impostor {DotnetUtils.GetVersion()}";
&& ReferenceEquals(client, registeredClient);
}
}
-}
\ No newline at end of file
+}
case MessageFlags.JoinGame:
{
- Message01JoinGameC2S.Deserialize(
- reader,
- out var gameCode,
- out _);
+ Message01JoinGameC2S.Deserialize(reader, out var gameCode);
using var packet = MessageWriter.Get(MessageType.Reliable);
var endpoint = await _nodeLocator.FindAsync(GameCodeParser.IntToGameName(gameCode));
return default;
}
}
-}
\ No newline at end of file
+}