Files
tbd-station-14/Content.Shared/Network/NetMessages/MsgUpdateAdminStatus.cs
Acruid ca4fd649fe Massive Namespace Cleanup (#3120)
* Engine namespace changes.

* Automated remove redundant using statements.

* Simplified Graphics namespace.

* Apparently the container system stores full type names in the map file.😞 This updates those names.

* API Changes to LocalizationManager.LoadCulture.

* Update submodule to v0.3.2
2021-02-11 01:13:03 -08:00

73 lines
1.9 KiB
C#

using Content.Shared.Administration;
using Lidgren.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;
}
}