I forgot how bad his code was rofl.
MatchServer at master from Theoretical's Infamous - GitHub
use that as a base, I guess.
Code:
[PacketHandler(Operation.ChannelListStart, PacketFlags.Character)]
public static void ResponseChannelList (Client pClient, PacketReader pPacket)
{
var uid = pPacket.ReadUInt64();
var type = pPacket.ReadInt32();
if (!Enum.IsDefined(typeof(MMatchChannelType), (byte)type))
{
pClient.Disconnect();
return;
}
List<MMatchChannel> channels = Program.mChannels.FindAll (c => c.nChannelType == (MMatchChannelType)type);
if (channels == null || channels.Count == 0)
return;
PacketWriter pChannelList = new PacketWriter(Operation.ChannelList, CryptFlags.Encrypt);
pChannelList.Write(channels.Count, 88);
Int16 index = 0;
foreach (MMatchChannel c in channels)
{
pChannelList.Write(c.uidChannel);
pChannelList.Write(++index);
pChannelList.Write((Int16)c.lClients.Count);
pChannelList.Write((Int16)c.nMaxUsers);
pChannelList.Write((Int16)c.nMinLevel);
pChannelList.Write((Int16)c.nMaxLevel);
pChannelList.Write((byte)c.nChannelType);
pChannelList.Write(c.szName, 64);
pChannelList.Write(false);
pChannelList.Write((Int32)0);
}
pClient.Send(pChannelList);
}