Files
SeamlessClient/Messages/ClientMessages.cs
zznty aa323f1ff6
Some checks failed
Build / Compute Version (push) Successful in 6s
Build / Build Nuget package (push) Failing after 6s
fixes for nexus v3
2025-07-28 03:58:25 +07:00

67 lines
1.4 KiB
C#

using ProtoBuf;
using Sandbox.Engine.Networking;
using Sandbox.Game.World;
using Sandbox.ModAPI;
using SeamlessClientPlugin.Utilities;
namespace SeamlessClientPlugin.Messages;
public enum ClientMessageType
{
FirstJoin,
TransferServer,
OnlinePlayers
}
[ProtoContract]
public class ClientMessage
{
[ProtoMember(1)] public ClientMessageType MessageType;
[ProtoMember(2)] public byte[] MessageData;
[ProtoMember(3)] public long IdentityId;
[ProtoMember(4)] public ulong SteamId;
[ProtoMember(5)] public string PluginVersion = "0";
[ProtoMember(6)] public string NexusVersion;
public ClientMessage(ClientMessageType type)
{
MessageType = type;
IdentityId = MySession.Static?.LocalHumanPlayer?.Identity?.IdentityId ?? 0;
SteamId = MyGameService.UserId;
PluginVersion = SeamlessClient.Version;
}
public ClientMessage()
{
}
public void SerializeData<T>(T data)
{
MessageData = Utility.Serialize(data);
}
public Transfer GetTransferData()
{
if (MessageData == null)
return null;
return Utility.Deserialize<Transfer>(MessageData);
}
public OnlinePlayersMessage GetOnlinePlayers()
{
if (MessageData == null)
return null;
var msg = Utility.Deserialize<OnlinePlayersMessage>(MessageData);
return msg;
}
}