Files
RobustToolbox/Robust.Shared/Network/Messages/MsgPlayerList.cs
Pieter-Jan Briers ceda39813d Fix MsgPlayerList being capped to 255
WHY WAS THIS A BYTE.

This prevented having more than 255 people on a server, beyond that the game might get stuck as people's player states wouldn't necessarily get sent.
2024-06-16 21:31:57 +02:00

48 lines
1.4 KiB
C#

using System.Collections.Generic;
using Lidgren.Network;
using Robust.Shared.Enums;
using Robust.Shared.GameStates;
using Robust.Shared.Serialization;
#nullable disable
namespace Robust.Shared.Network.Messages
{
public sealed class MsgPlayerList : NetMessage
{
public override MsgGroups MsgGroup => MsgGroups.Core;
public List<SessionState> Plyrs { get; set; }
public override void ReadFromBuffer(NetIncomingMessage buffer, IRobustSerializer serializer)
{
var playerCount = buffer.ReadInt32();
Plyrs = new List<SessionState>(playerCount);
for (var i = 0; i < playerCount; i++)
{
var plyNfo = new SessionState
{
UserId = new NetUserId(buffer.ReadGuid()),
Name = buffer.ReadString(),
Status = (SessionStatus)buffer.ReadByte(),
Ping = buffer.ReadInt16()
};
Plyrs.Add(plyNfo);
}
}
public override void WriteToBuffer(NetOutgoingMessage buffer, IRobustSerializer serializer)
{
buffer.Write(Plyrs.Count);
foreach (var ply in Plyrs)
{
buffer.Write(ply.UserId.UserId);
buffer.Write(ply.Name);
buffer.Write((byte) ply.Status);
buffer.Write(ply.Ping);
}
}
}
}