private void HandleCreate(string[] arguments, IrcClient client) { Console.WriteLine("Received CREATE request from {0}", client.IsRegistered() ? client.GetNickname() : client.ToString()); if (!client.IsRegistered()) { string msg = String.Format("411 CREATE CR LF"); //ERR_NOTREGISTERED client.SendMessage(msg); Console.WriteLine(" Returned 411 (ERR_NOTREGISTERED)"); return; } if (arguments.Count() < 1) { string msg = "412 CREATE CR LF"; //ERR_NEEDMOREPARAMS client.SendMessage(msg); Console.WriteLine(" Returned 412 (ERR_NEEDMOREPARAMS)"); return; } var roomname = arguments[0]; if (roomname.Length > MAX_ROOM_LENGTH || roomname.Contains(" ")) { string msg = String.Format("407 {0} CR LF", roomname); //ERR_ERRONEOUSROOMNAME client.SendMessage(msg); Console.WriteLine(" Returned 407 (ERR_ERRONEOUSROOMNAME): {0}", roomname); return; } if (m_ircServer.IsRoomNameInUse(roomname)) { string msg = String.Format("406 {0} CR LF", roomname); //ERR_ROOMNAMEINUSE client.SendMessage(msg); Console.WriteLine(" Returned 406 (ERR_ROOMNAMEINUSE): {0}", roomname); return; } if (m_ircServer.GetNumRooms() >= MAX_ROOM_NUM) { string msg = String.Format("405 {0} CR LF", roomname); //ERR_TOOMANYROOMS client.SendMessage(msg); Console.WriteLine(" Returned 405 (ERR_TOOMANYROOMS): {0}", roomname); return; } m_ircServer.AddRoom(roomname); string response = String.Format("307 {0} CR LF", roomname); //RPL_CREATESUCCEEDED client.SendMessage(response); Console.WriteLine(" Returned 307 (RPL_CREATESUCCEEDED): {0}", roomname); Room room = m_ircServer.GetRoom(roomname); room.Members.Add(client); Console.WriteLine("{0} joined room {1}", client.GetNickname(), room.GetName()); response = String.Format("308 {0} CR LF", roomname); //RPL_JOINSUCCEEDED client.SendMessage(response); Console.WriteLine(" Returned 307 (RPL_JOINSUCCEEDED): {0}", roomname); }
// IIrcServer public void RemoveClient(IrcClient client) { InternalRemoveClient(client); }
public Message(MessageType type, IrcClient client, string contents) { Type = type; Client = client; Contents = contents; }