30 lines
867 B
C#
30 lines
867 B
C#
using System.Text;
|
|
|
|
namespace Wonderking.Packets.Outgoing;
|
|
|
|
[PacketId(OperationCode.CharacterSelectionSetGuildName)]
|
|
public class CharacterSelectionSetGuildNamePacket : IPacket
|
|
{
|
|
public required string[] GuildNames { get; set; }
|
|
|
|
public void Deserialize(byte[] data)
|
|
{
|
|
throw new NotSupportedException();
|
|
}
|
|
|
|
public byte[] Serialize()
|
|
{
|
|
Span<byte> data = stackalloc byte[1 + (1 + 16 + 1) * this.GuildNames.Length];
|
|
data.Clear();
|
|
data[0] = (byte)this.GuildNames.Length;
|
|
for (var i = 0; i < this.GuildNames.Length; i++)
|
|
{
|
|
data[1 + (i * (1 + 16 + 1))] = (byte)i;
|
|
Encoding.ASCII.GetBytes(this.GuildNames[i], data.Slice(2 + (i * (1 + 16 + 1)), 16));
|
|
// Null terminator
|
|
data[18 + (i * (1 + 16 + 1))] = 0;
|
|
}
|
|
|
|
return data.ToArray();
|
|
}
|
|
}
|