示例#1
0
        public void Receive()
        {
            try
            {
                while (true)
                {
                    if (connectionList.clientList.Count == 0)
                    {
                        continue;
                    }
                    for (int i = 0; i < connectionList.clientList.Count; i++)
                    {
                        if (connectionList.clientList[i].user.GetStream().DataAvailable)
                        {
                            string message = connectionList.clientList[i].stream.Read();
                            LogManager.AddToLog(connectionList.clientList[i].name, message);

                            if (connectionList.clientList[i].stream.Type == UniversalStream.ClientType.Web)
                            {
                                message = connectionList.clientList[i].stream.Decode();
                            }

                            commandManager.Dispatcher(message);
                        }
                    }
                    Thread.Sleep(50);
                }
            }
            catch (Exception ex)
            {
                CrashManager.CrashReportToFile(ex.StackTrace + ex.Message, ex.InnerException?.ToString());
            }
        }
示例#2
0
        public void SetCommand(string command)
        {
            try
            {
                command = command.Replace("\r\n", "");
                string[] msg = command.Split(',');
                switch (msg[1])
                {
                case "ask":
                    if (AskRequest(msg[2], commandManager.connectionList.GetClient(msg[3]), commandManager.connectionList.GetClient(msg[4]), msg[5]))
                    {
                        switch (msg[5])
                        {
                        case "XO":
                            Random ran     = new Random();
                            int    variant = ran.Next(0, 2);
                            if (variant == 1)
                            {
                                gameList.Add(new XO(commandManager.connectionList.GetClient(msg[3]), commandManager.connectionList.GetClient(msg[4])));
                            }
                            else
                            {
                                gameList.Add(new XO(commandManager.connectionList.GetClient(msg[4]), commandManager.connectionList.GetClient(msg[3])));
                            }
                            commandManager.connectionList.GetClient(msg[3]).status = "1";
                            commandManager.connectionList.GetClient(msg[4]).status = "1";
                            commandManager.Dispatcher("list");
                            break;
                        }
                    }
                    break;

                case "gamexo":
                    for (int i = 0; i < gameList.Count; i++)
                    {
                        if (gameList[i].ContainsPlayer(commandManager.connectionList.GetClient(msg[2])))
                        {
                            if (gameList[i].Action(commandManager.connectionList.GetClient(msg[2]), msg[3]))
                            {
                                gameList.Remove(gameList[i]);
                            }
                        }
                    }
                    break;
                }
            }
            catch (Exception ex)
            {
                throw new Exception("METHOD: SetCommand" + ex.StackTrace + ex.Message, ex.InnerException);
            }
        }
示例#3
0
 public void Receive()
 {
     while (true)
     {
         if (connectionList.clientList.Count == 0)
         {
             continue;
         }
         for (int i = 0; i < connectionList.clientList.Count; i++)
         {
             if (connectionList.clientList[i].user.GetStream().DataAvailable)
             {
                 string message = connectionList.clientList[i].Read();
                 commandManager.Dispatcher(message);
             }
         }
     }
 }
示例#4
0
        public void SetCommand(string command)
        {
            string[] msg = command.Split(',');
            switch (msg[1])
            {
            case "ask":
                if (AskRequest(msg[2], commandManager.connectionList.GetClient(msg[3]), commandManager.connectionList.GetClient(msg[4]), msg[5]))
                {
                    switch (msg[5])
                    {
                    case "XO":
                        Random ran     = new Random();
                        int    variant = ran.Next(0, 2);
                        if (variant == 1)
                        {
                            gameList.Add(new XO(commandManager.connectionList.GetClient(msg[3]), commandManager.connectionList.GetClient(msg[4])));
                        }
                        else
                        {
                            gameList.Add(new XO(commandManager.connectionList.GetClient(msg[4]), commandManager.connectionList.GetClient(msg[3])));
                        }
                        commandManager.connectionList.GetClient(msg[3]).status = "1";
                        commandManager.connectionList.GetClient(msg[4]).status = "1";
                        commandManager.Dispatcher("list");
                        break;
                    }
                }
                break;

            case "gamexo":
                for (int i = 0; i < gameList.Count; i++)
                {
                    if (gameList[i].ContainsPlayer(commandManager.connectionList.GetClient(msg[2])))
                    {
                        if (gameList[i].Action(commandManager.connectionList.GetClient(msg[2]), msg[3]))
                        {
                            gameList.Remove(gameList[i]);
                        }
                    }
                }
                break;
            }
        }