Ejemplo n.º 1
0
        public static bool AddUser(string ID, string PW, string Name, ref RegisterFailure Error)
        {
            string insertQuery = $"INSERT INTO usertable(ID,PW,Name) VALUES('{ID}','{PW}','{Name}')";

            Utility.Utility.connection.Open();
            MySqlCommand command = new MySqlCommand(insertQuery, Utility.Utility.connection);

            try
            {
                command.ExecuteNonQuery();
            }
            catch (Exception e)
            {
                //Console.WriteLine(e.Message);
                _ = e.Message.Contains("PRIMARY") ? Error |= RegisterFailure.ID_ALREADY_EXISTS : Error = Error;
                _ = e.Message.Contains("Name_UNIQUE") ? Error |= RegisterFailure.NICKNAME_ALREADY_EXISTS : Error = Error;
                Utility.Utility.connection.Close();
                return(false);
            }

            Utility.Utility.connection.Close();
            return(true);
        }
Ejemplo n.º 2
0
        void IPeer.process_user_operation(CPacket msg)
        {
            PROTOCOL protocol = (PROTOCOL)msg.pop_protocol_id();

            Console.WriteLine("protocol :" + protocol.ToString());
            switch (protocol)
            {
            case PROTOCOL.REQ_ROOMLIST:
            {
                var RoomList = Utility.Utility.GameRoomManager.GetGameRooms();

                var packet = Utility.Utility.DictionaryToRoomList(RoomList);

                send(packet);

                CPacket.destroy(packet);
            }
            break;

            case PROTOCOL.REQ_MAKINGROOM:
            {
                CPacket packet = CPacket.create((short)PROTOCOL.DEC_MAKINGROOM);

                string ID    = msg.pop_string();
                string title = msg.pop_string();
                string IP    = msg.pop_string();

                if (Utility.Utility.GameRoomManager.MakingRoom(ID, title, IP))
                {
                    packet.push(1);
                }
                else
                {
                    packet.push(0);
                }

                send(packet);

                CPacket.destroy(packet);
            }
            break;

            case PROTOCOL.REQ_ENTERROOM:
            {
                CPacket packet = CPacket.create((short)PROTOCOL.DEC_ENTERROOM);

                string MasterID = msg.pop_string();
                string ID       = msg.pop_string();
                string IP       = msg.pop_string();
                var    Room     = Utility.Utility.GameRoomManager.FindRoom(MasterID);

                if (Room != null)
                {
                    packet.push(1);
                    Room.JoinRoom(NoTitleGameServer.Database.UserManager.FindUser(ID), IP);
                }
                else
                {
                    packet.push(0);
                }

                send(packet);

                CPacket.destroy(packet);
            }
            break;

            case PROTOCOL.REQ_STARTGAME:
            {
                CPacket packet = CPacket.create((short)PROTOCOL.DEC_STARTGAME);

                string ID   = msg.pop_string();
                var    room = Utility.Utility.GameRoomManager.FindRoom(ID);

                if (room != null && room.CanStartGame())
                {
                    packet.push(1);
                    room.BroadCast(packet);
                }
                else
                {
                    packet.push(0);
                    send(packet);
                }

                CPacket.destroy(packet);
            }
            break;

            case PROTOCOL.REQ_REGISTER:
            {
                var ID   = msg.pop_string();
                var PW   = msg.pop_string();
                var Name = msg.pop_string();

                var Error = new RegisterFailure();
                var flag  = Database.UserManager.AddUser(ID, PW, Name, ref Error);

                CPacket packet = CPacket.create((short)PROTOCOL.DEC_REGISTER);
                packet.push((byte)(flag ? 1 : 0));
                packet.push_int16((short)Error);

                send(packet);

                CPacket.destroy(packet);
            }
            break;

            case PROTOCOL.REQ_LOGIN:
            {
                var ID = msg.pop_string();
                var PW = msg.pop_string();

                var Error = new LoginFailure();
                var user  = Database.UserManager.FindUser(ID);

                CPacket packet = CPacket.create((short)PROTOCOL.DEC_LOGIN);

                if (user.PW == PW)
                {
                    packet.push(1);

                    user.token = token;
                }
                else
                {
                    packet.push(0);
                    Error = Error | LoginFailure.PW_INCORRECT;
                    if (user.ID == null)
                    {
                        Error = Error | LoginFailure.ID_INCORRECT;
                    }
                    packet.push_int16((short)Error);
                }

                send(packet);

                CPacket.destroy(packet);
            }
            break;

            case PROTOCOL.REQ_NICKNAME:
            {
                CPacket packet = CPacket.create((short)PROTOCOL.SEND_NICKNAME);
                packet.push(Database.UserManager.FindUser(msg.pop_string()).Name);

                send(packet);

                CPacket.destroy(packet);
            }
            break;
            }
            CPacket.destroy(msg);
        }