mirror of
https://github.com/Impostor/Impostor.git
synced 2026-10-19 15:51:42 +00:00
Merge pull request #471 from Impostor/feature/2022.3.29
This commit is contained in:
6 files changed
+40
-12
No files matched your search
@@ -171,29 +171,34 @@ namespace Impostor.Api.Innersloth
|
||||
writer.Write((uint)VotingTime);
|
||||
writer.Write((bool)IsDefaults);
|
||||
|
||||
if (version > 1)
|
||||
if (version >= 2)
|
||||
{
|
||||
writer.Write((byte)EmergencyCooldown);
|
||||
}
|
||||
|
||||
if (version > 2)
|
||||
if (version >= 3)
|
||||
{
|
||||
writer.Write((bool)ConfirmImpostor);
|
||||
writer.Write((bool)VisualTasks);
|
||||
}
|
||||
|
||||
if (version > 3)
|
||||
if (version >= 4)
|
||||
{
|
||||
writer.Write((bool)AnonymousVotes);
|
||||
writer.Write((byte)TaskBarUpdate);
|
||||
}
|
||||
|
||||
if (version > 4)
|
||||
if (version >= 5)
|
||||
{
|
||||
RoleOptions.Serialize(writer);
|
||||
}
|
||||
|
||||
if (version > 5)
|
||||
if (version >= 6)
|
||||
{
|
||||
// Nothing was changed in V6
|
||||
}
|
||||
|
||||
if (version > 6)
|
||||
{
|
||||
throw new ImpostorException($"Unknown GameOptionsData version {Version}.");
|
||||
}
|
||||
@@ -238,29 +243,34 @@ namespace Impostor.Api.Innersloth
|
||||
|
||||
IsDefaults = bytes.ReadBoolean();
|
||||
|
||||
if (Version > 1)
|
||||
if (Version >= 2)
|
||||
{
|
||||
EmergencyCooldown = bytes.ReadByte();
|
||||
}
|
||||
|
||||
if (Version > 2)
|
||||
if (Version >= 3)
|
||||
{
|
||||
ConfirmImpostor = bytes.ReadBoolean();
|
||||
VisualTasks = bytes.ReadBoolean();
|
||||
}
|
||||
|
||||
if (Version > 3)
|
||||
if (Version >= 4)
|
||||
{
|
||||
AnonymousVotes = bytes.ReadBoolean();
|
||||
TaskBarUpdate = (TaskBarUpdate)bytes.ReadByte();
|
||||
}
|
||||
|
||||
if (Version > 4)
|
||||
if (Version >= 5)
|
||||
{
|
||||
RoleOptions = RoleOptionsData.Deserialize(bytes);
|
||||
}
|
||||
|
||||
if (Version > 5)
|
||||
if (Version >= 6)
|
||||
{
|
||||
// Nothing was changed in V6
|
||||
}
|
||||
|
||||
if (Version > 6)
|
||||
{
|
||||
throw new ImpostorException($"Unknown GameOptionsData version {Version}.");
|
||||
}
|
||||
|
||||
@@ -65,6 +65,11 @@ namespace Impostor.Api.Net
|
||||
/// </summary>
|
||||
IClientPlayer? Player { get; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets the version of the game the client is using.
|
||||
/// </summary>
|
||||
int GameVersion { get; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets platform specific data of the <see cref="IClient" />.
|
||||
/// </summary>
|
||||
|
||||
@@ -19,6 +19,10 @@ namespace Impostor.Api.Net.Messages.S2C
|
||||
writer.Write(player.Client.Name);
|
||||
player.Client.PlatformSpecificData.Serialize(writer);
|
||||
writer.WritePacked(player.Character?.PlayerInfo.PlayerLevel ?? 1);
|
||||
|
||||
// ProductUserId and FriendCode are not yet known, so set them to an empty string
|
||||
writer.Write(string.Empty);
|
||||
writer.Write(string.Empty);
|
||||
writer.EndMessage();
|
||||
}
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@ namespace Impostor.Api.Net.Messages.S2C
|
||||
{
|
||||
public static class Message07JoinedGameS2C
|
||||
{
|
||||
public static void Serialize(IMessageWriter writer, bool clear, int gameCode, int playerId, int hostId, IClientPlayer[] otherPlayers)
|
||||
public static void Serialize(IMessageWriter writer, bool clear, int gameCode, int playerId, int hostId, IClientPlayer[] otherPlayers, bool post20220202 = true)
|
||||
{
|
||||
if (clear)
|
||||
{
|
||||
@@ -23,6 +23,13 @@ namespace Impostor.Api.Net.Messages.S2C
|
||||
writer.Write(ply.Client.Name);
|
||||
ply.Client.PlatformSpecificData.Serialize(writer);
|
||||
writer.WritePacked(ply.Character?.PlayerInfo.PlayerLevel ?? 1);
|
||||
|
||||
if (post20220202)
|
||||
{
|
||||
// ProductUserId and FriendCode are not yet known, so set them to an empty string
|
||||
writer.Write(string.Empty);
|
||||
writer.Write(string.Empty);
|
||||
}
|
||||
}
|
||||
|
||||
writer.EndMessage();
|
||||
|
||||
@@ -24,6 +24,7 @@ namespace Impostor.Server.Net.Manager
|
||||
GameVersion.GetVersion(2021, 11, 9), // 2021.11.9
|
||||
GameVersion.GetVersion(2021, 12, 14), // 2021.12.14
|
||||
GameVersion.GetVersion(2022, 1, 10), // 2021.2.23
|
||||
GameVersion.GetVersion(2022, 2, 2), // 2022.3.29
|
||||
};
|
||||
|
||||
private readonly ILogger<ClientManager> _logger;
|
||||
|
||||
@@ -83,7 +83,8 @@ namespace Impostor.Server.Net.State
|
||||
.Select(x => x.Value)
|
||||
.ToArray();
|
||||
|
||||
Message07JoinedGameS2C.Serialize(message, clear, Code, player.Client.Id, HostId, players);
|
||||
// TODO: clean up post20220202 when versions before it are no longer supported.
|
||||
Message07JoinedGameS2C.Serialize(message, clear, Code, player.Client.Id, HostId, players, player.Client.GameVersion >= GameVersion.GetVersion(2022, 2, 2));
|
||||
}
|
||||
|
||||
private void WriteAlterGameMessage(IMessageWriter message, bool clear, bool isPublic)
|
||||
|
||||
Reference in new issue
Block a user