sharp-chat/SharpChat/Packet/ChannelsPopulatePacket.cs

31 lines
863 B
C#
Raw Normal View History

2022-08-30 15:00:58 +00:00
using System;
using System.Text;
namespace SharpChat.Packet {
2024-05-14 22:17:25 +00:00
public class ChannelsPopulatePacket : ServerPacket {
public record ListEntry(string Name, bool HasPassword, bool IsTemporary);
2022-08-30 15:00:58 +00:00
private readonly ListEntry[] Entries;
2024-05-14 22:17:25 +00:00
public ChannelsPopulatePacket(ListEntry[] entries) {
Entries = entries ?? throw new ArgumentNullException(nameof(entries));
2022-08-30 15:00:58 +00:00
}
2024-05-10 15:24:43 +00:00
public override string Pack() {
2023-02-07 15:01:56 +00:00
StringBuilder sb = new();
2022-08-30 15:00:58 +00:00
sb.AppendFormat("7\t2\t{0}", Entries.Length);
2022-08-30 15:00:58 +00:00
foreach(ListEntry entry in Entries)
2024-05-10 17:28:52 +00:00
sb.AppendFormat(
"\t{0}\t{1}\t{2}",
entry.Name,
entry.HasPassword ? 1 : 0,
entry.IsTemporary ? 1 : 0
2024-05-10 17:28:52 +00:00
);
2022-08-30 15:00:58 +00:00
2024-05-10 15:24:43 +00:00
return sb.ToString();
2022-08-30 15:00:58 +00:00
}
}
}