mirror of
https://github.com/space-wizards/RobustToolbox.git
synced 2026-09-02 18:17:09 +02:00
58 lines
1.8 KiB
C#
58 lines
1.8 KiB
C#
using System.IO;
|
|
using Lidgren.Network;
|
|
using Robust.Shared.GameObjects;
|
|
using Robust.Shared.IoC;
|
|
using Robust.Shared.Serialization;
|
|
using Robust.Shared.Utility;
|
|
|
|
#nullable disable
|
|
|
|
namespace Robust.Shared.Network.Messages
|
|
{
|
|
public sealed class MsgScriptResponse : NetMessage
|
|
{
|
|
public override MsgGroups MsgGroup => MsgGroups.Command;
|
|
|
|
public int ScriptSession { get; set; }
|
|
public bool WasComplete { get; set; }
|
|
|
|
// Echo of the entered code with syntax highlighting applied.
|
|
public FormattedMessage Echo;
|
|
public FormattedMessage Response;
|
|
|
|
public override void ReadFromBuffer(NetIncomingMessage buffer, IRobustSerializer serializer)
|
|
{
|
|
ScriptSession = buffer.ReadInt32();
|
|
WasComplete = buffer.ReadBoolean();
|
|
|
|
if (WasComplete)
|
|
{
|
|
buffer.ReadPadBits();
|
|
var length = buffer.ReadVariableInt32();
|
|
using var stream = RobustMemoryManager.GetMemoryStream(length);
|
|
buffer.ReadAlignedMemory(stream, length);
|
|
serializer.DeserializeDirect(stream, out Echo);
|
|
serializer.DeserializeDirect(stream, out Response);
|
|
}
|
|
}
|
|
|
|
public override void WriteToBuffer(NetOutgoingMessage buffer, IRobustSerializer serializer)
|
|
{
|
|
buffer.Write(ScriptSession);
|
|
buffer.Write(WasComplete);
|
|
|
|
if (WasComplete)
|
|
{
|
|
buffer.WritePadBits();
|
|
|
|
var memoryStream = new MemoryStream();
|
|
serializer.SerializeDirect(memoryStream, Echo);
|
|
serializer.SerializeDirect(memoryStream, Response);
|
|
|
|
buffer.WriteVariableInt32((int)memoryStream.Length);
|
|
buffer.Write(memoryStream.AsSpan());
|
|
}
|
|
}
|
|
}
|
|
}
|