ConGroups are gone. Long live admin flags in content.
This commit is contained in:
73
Content.Shared/Network/NetMessages/MsgUpdateAdminStatus.cs
Normal file
73
Content.Shared/Network/NetMessages/MsgUpdateAdminStatus.cs
Normal file
@@ -0,0 +1,73 @@
|
||||
using Content.Shared.Administration;
|
||||
using Lidgren.Network;
|
||||
using Robust.Shared.Interfaces.Network;
|
||||
using Robust.Shared.Network;
|
||||
|
||||
namespace Content.Shared.Network.NetMessages
|
||||
{
|
||||
public sealed class MsgUpdateAdminStatus : NetMessage
|
||||
{
|
||||
#region REQUIRED
|
||||
|
||||
public const MsgGroups GROUP = MsgGroups.Command;
|
||||
public const string NAME = nameof(MsgUpdateAdminStatus);
|
||||
|
||||
public MsgUpdateAdminStatus(INetChannel channel) : base(NAME, GROUP) { }
|
||||
|
||||
#endregion
|
||||
|
||||
public AdminData Admin;
|
||||
public string[] AvailableCommands;
|
||||
|
||||
public override void ReadFromBuffer(NetIncomingMessage buffer)
|
||||
{
|
||||
var count = buffer.ReadVariableInt32();
|
||||
|
||||
AvailableCommands = new string[count];
|
||||
|
||||
for (var i = 0; i < count; i++)
|
||||
{
|
||||
AvailableCommands[i] = buffer.ReadString();
|
||||
}
|
||||
|
||||
if (buffer.ReadBoolean())
|
||||
{
|
||||
var active = buffer.ReadBoolean();
|
||||
buffer.ReadPadBits();
|
||||
var flags = (AdminFlags) buffer.ReadUInt32();
|
||||
var title = buffer.ReadString();
|
||||
|
||||
Admin = new AdminData
|
||||
{
|
||||
Active = active,
|
||||
Title = title,
|
||||
Flags = flags,
|
||||
};
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public override void WriteToBuffer(NetOutgoingMessage buffer)
|
||||
{
|
||||
buffer.WriteVariableInt32(AvailableCommands.Length);
|
||||
|
||||
foreach (var cmd in AvailableCommands)
|
||||
{
|
||||
buffer.Write(cmd);
|
||||
}
|
||||
|
||||
var isAdmin = Admin != null;
|
||||
buffer.Write(isAdmin);
|
||||
|
||||
if (isAdmin)
|
||||
{
|
||||
buffer.Write(Admin.Active);
|
||||
buffer.WritePadBits();
|
||||
buffer.Write((uint) Admin.Flags);
|
||||
buffer.Write(Admin.Title);
|
||||
}
|
||||
}
|
||||
|
||||
public override NetDeliveryMethod DeliveryMethod => NetDeliveryMethod.ReliableOrdered;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user