Esempio n. 1
0
        private static void ClientDisconnected(object sender, TcpClient client)
        {
            try
            {
                if (clients.Count != 0)
                {
                    int index = clients.IndexOf(client);
                    if (index >= 0 && index < manager.usernames.Count)
                    {
                        Console.WriteLine(manager.currentTimeStamp() + " User disconnected: " + manager.usernames[index]);
                        manager.usernames.RemoveAt(index);
                    }
                    else
                    {
                        Console.WriteLine(manager.currentTimeStamp() +
                                          " User disconnected. Could not delete username at index " + index);
                        manager.username = "";
                    }

                    clients.Remove(client);
                }
            }
            catch (Exception ex)
            {
                Consolemanager.error("user disconnect", ex);
            }
        }
Esempio n. 2
0
 private static void ClientConnected(object sender, TcpClient client)
 {
     try
     {
         clients.Add(client);
     }
     catch (Exception ex)
     {
         Consolemanager.error("client connected", ex);
     }
 }
Esempio n. 3
0
 public void BroadcastMessage(string data)
 {
     try
     {
         Program.server.BroadcastLine(username + "$" + data);
     }
     catch (Exception ex)
     {
         Consolemanager.error("broadcast message", ex);
     }
 }
Esempio n. 4
0
        private void connectClient(string[] data, Message e)
        {
            try
            {
                string  username           = data[1];
                Boolean isAlreadyConnected = usernames.Contains(username);

                usernames.Add(username);
                if (isAlreadyConnected)
                {
                    e.ReplyLine($"$kck${username}$3");
                    return;
                }


                int    index = usernames.IndexOf(username);
                string ip    = Program.clients[index].Client.RemoteEndPoint.ToString().Split(':')[0];


                if (Filemanager.isBanned(username) || Filemanager.isIpBanned(ip))
                {
                    e.ReplyLine($"$kck${username}$1");
                    return;
                }
                else if (useWhitelist && !Filemanager.isOnWhitelist(username))
                {
                    e.ReplyLine($"$kck${username}$2");
                    return;
                }
                else
                {
                    if (Program.isFirstConnection)
                    {
                        //Console.WriteLine("First connection, fetching Data...");
                        e.ReplyLine("$gad");
                        Program.isFirstConnection = false;
                    }
                    else
                    {
                        //Console.WriteLine("Not first connection.");
                        e.ReplyLine("$rad");
                        sendAllData(e);
                    }

                    Console.WriteLine(currentTimeStamp() + " User connected: " + username);
                }
            }
            catch (Exception ex)
            {
                Consolemanager.error("connect client", ex);
            }
        }
Esempio n. 5
0
        private void sendAllData(Message e)
        {
            try
            {
                foreach (Column c in columns)
                {
                    e.ReplyLine("$ccl$" + c.name + "$" + c.id.ToString());


                    foreach (string[] s in c.Flightstrips)
                    {
                        string toSend = "";
                        Array.ForEach(s, x => toSend += (x + "$"));

                        e.ReplyLine("$cfs$" + toSend);
                    }
                }
            }
            catch (Exception ex)
            {
                Consolemanager.error("send all data", ex);
            }
        }
Esempio n. 6
0
        public void processReceivedData(string receivedData, Message e)
        {
            try
            {
                string[] splittedString = receivedData.Split('$');
                if (splittedString.Length > 2)
                {
                    username       = splittedString[0];
                    splittedString = splittedString.Skip(1).ToArray();
                    switch (splittedString[0])
                    {
                    case "con":
                        connectClient(splittedString, e);
                        break;

                    case "gad":
                        Debug.WriteLine("GAD");
                        sendAllData(e);
                        break;

                    case "ccl":
                        createColumn(splittedString, e);
                        break;

                    case "rcl":
                        removeColumn(splittedString.Skip(1).ToArray());
                        break;

                    case "cfs":
                        createFlightstrip(splittedString.Skip(1).ToArray(), e);
                        break;

                    case "rfs":
                        removeFlightstrip(splittedString.Skip(1).ToArray());
                        break;

                    case "edt":
                        editFlightstrip(splittedString.Skip(1).ToArray());
                        break;

                    case "efs":
                        editFlightstripStatus(splittedString.Skip(1).ToArray());
                        break;

                    case "mov":
                        moveFlightstrip(splittedString.Skip(1).ToArray(), e);
                        break;

                    case "gco":
                        sendClientOverview(e);
                        break;

                    case "pos":
                        editFlightstripPosition(splittedString.Skip(1).ToArray());
                        break;
                    }
                }
            }
            catch (Exception ex)
            {
                Consolemanager.error("process data", ex);
            }
        }