nicknamemohaji / ft_irc

42cursus irc
0 stars 0 forks source link

MODE Command Flow #14

Closed somilee0202 closed 1 month ago

somilee0202 commented 2 months ago

IRC MODE 명령어 코딩 시나리오

목적

IRC 프로토콜의 MODE 명령어를 구현하여 사용자가 채널의 모드를 변경할 수 있도록 합니다.

에러 처리

응답코드

-RPL_UMODEIS (221): 현재 사용자 모드 표시 -RPL_CHANNELMODEIS (324): 현재 채널 모드 표시 -RPL_CREATIONTIME (329): 채널 생성 시간

코드 진행 순서

-문자열 파싱

-MODE

  1. 채널 목록 확인
  2. RPL_CHANNELMODEIS (324) 응답, RPL_CREATIONTIME (329) 응답

-MODE ±i,t

  1. 채널 목록 확인
  2. 사용자 오퍼레이터 권한 확인 (482)
  3. 현재 모드와 비교
  4. 채널에 모드 적용/삭제 후 응답
    • 응답 코드: mode /#channel [±i] by somin

-MODE ±k

  1. 채널 목록 확인
  2. 사용자 오퍼레이터 권한 확인 (482)
  3. 현재 모드와 비교(-k의 경우에만)
  4. 채널에 모드 설정/삭제
    • -k의 경우: mode /#channel [-k *] by somin
    • +k의 경우: mode /#channel [+k 123] by somin

-MODE ±l

1.채널 목록 확인 2.사용자 오퍼레이터 권한 확인 (482) 3.현재 모드와 비교(-l의 경우에만) 4.채널에 모드 적용/삭제

-MODE ±o

1.채널 목록 확인 2.사용자 오퍼레이터 권한 확인 (482) 3.nick 채널 목록에서 확인 4.채널에 오퍼레이터 추가/삭제

메소드 설명

Server::ParseComma

Server::CheckChannelInServer

Server::CheckUserInChannel

Server::CheckOperatorInChannel

주의사항