using System.Net.Sockets;
using System.Net;
using YapperServer;
using YapperServer.Net.IO;

class Program
{
    static TcpListener _listener;
    static List<Client> _users;
    static void Main(string[] args)
    {
        _users = new List<Client>();
        _listener = new TcpListener(IPAddress.Parse("127.0.0.1"), 7891);
        _listener.Start();

        while (true)
        {
            var client = new Client(_listener.AcceptTcpClient());
            _users.Add(client);

            /* Broadcast the connection to everyone on the server */
            BroadCastConnection();
        }
        
    }

    static void BroadCastConnection()
    {
        foreach (var user in _users)
        {
            foreach (var usr in _users)
            {
                var broadcastPacket = new PacketBuilder();
                broadcastPacket.WriteOpCode(1);
                broadcastPacket.WriteString(usr.UserName);
                broadcastPacket.WriteString(usr.UID.ToString());
                user.ClientSocket.Client.Send(broadcastPacket.GetPacketBytes());
            }
        }
    }
}