전체 블록 사전 (Catalog)
SnapBot에서 기본 제공하는 6개 카테고리의 표준 블록 세트입니다. 각 블록의 모양(형상), 입력 파라미터, 슬롯 유형 및 실시간 discord.js 변환 규칙을 확인할 수 있습니다.
이벤트
(22개 블록)봇 시작, 메시지 수신, 슬래시 명령어, 상호작용 등 트리거 시작 블록
봇이 준비되었을 때
디스코드 봇이 정상적으로 로그인되고 초기화되었을 때 1회 실행됩니다.
새 메시지가 도착했을 때
서버의 텍스트 채널에 누군가 메시지를 전송했을 때 실행됩니다.
메시지가 수정되었을 때
사용자가 기존에 전송한 메시지를 수정했을 때 실행됩니다.
메시지가 삭제되었을 때
채널에서 메시지가 삭제되었을 때 감지하여 실행합니다.
슬래시 명령어 /{commandName} 실행 시
사용자가 등록된 슬래시 명령어를 입력하고 실행했을 때 동작합니다.
버튼 [ID: {customId}] 클릭 시
메시지에 포함된 인터랙티브 버튼이 클릭되었을 때 실행됩니다.
선택 메뉴 [ID: {customId}] 선택 시
드롭다운 선택 메뉴에서 항목이 선택되었을 때 실행됩니다.
모달 팝업 [ID: {customId}] 제출 시
사용자가 모달 입력창에 내용을 작성하고 제출했을 때 실행됩니다.
새 멤버가 서버에 입장했을 때
서버에 새로운 멤버가 참여했을 때 실행됩니다.
멤버가 서버에서 퇴장했을 때
멤버가 서버를 나가거나 추방되었을 때 실행됩니다.
멤버 정보(닉네임/역할)가 변경되었을 때
서버 멤버의 닉네임이나 역할이 업데이트되었을 때 실행됩니다.
유저가 서버에서 차단(밴)되었을 때
관리자가 특정 유저를 차단했을 때 감지합니다.
유저의 서버 차단(밴)이 해제되었을 때
차단된 유저의 차단이 해제되었을 때 실행됩니다.
새 역할이 생성되었을 때
서버에 새 역할(Role)이 추가되었을 때 실행됩니다.
역할이 삭제되었을 때
서버에서 기존 역할이 삭제되었을 때 실행됩니다.
새 채널이 생성되었을 때
서버에 새 텍스트 또는 음성 채널이 생성되었을 때 실행됩니다.
채널이 삭제되었을 때
기존 채널이 서버에서 삭제되었을 때 실행됩니다.
음성 채널 상태(입장/퇴장/이동) 변경 시
멤버가 음성 채널에 들어가거나 나갈 때 실행됩니다.
새 스레드가 생성되었을 때
텍스트 채널에 새 스레드(Thread)가 생성되었을 때 동작합니다.
새 커스텀 이모지가 등록되었을 때
서버에 새 이모지가 업로드되었을 때 감지합니다.
메시지에 반응(이모지)이 추가되었을 때
어떤 메시지에 사용자가 이모지 리액션을 달았을 때 실행됩니다.
누군가 채널에서 입력을 시작했을 때
채널에서 사용자가 텍스트를 타이핑하기 시작할 때 실행됩니다.
메시지 & 반응
(14개 블록)채널 메시지 전송, 답장, 수정, 삭제, 리액션 이모지 반응, 스레드
채널에 메시지 전송 {content}
현재 채널로 텍스트 메시지를 전송합니다.
메시지에 직접 답장하기 {content}
수신된 메시지나 명령어에 인용 답장합니다.
나에게만 보이는 답장 전송 {content}
명령어를 입력한 당사자에게만 은밀히 보이는 에페메럴 응답을 전송합니다.
기존 응답 메시지 수정 {content}
이미 보낸 봇의 답장 내용을 새 내용으로 바꿉니다.
현재 메시지 삭제
수신된 메시지를 즉시 삭제합니다.
현재 메시지를 채널에 고정(Pin)
메시지를 채널 상단 고정 메시지 목록에 추가합니다.
현재 메시지 고정 해제(Unpin)
채널 고정 메시지에서 현재 메시지를 제외합니다.
메시지에 반응 달기 {emoji}
메시지에 지정한 유니코드 이모지 리액션을 추가합니다.
메시지에서 반응 제거 {emoji}
메시지에 달린 특정 이모지 반응을 제거합니다.
메시지의 모든 반응 전부 삭제
메시지에 달린 모든 이모지 반응을 한 번에 청소합니다.
채널에 봇이 입력 중... 표시하기
채널 하단에 봇이 메시지를 타이핑 중인 것처럼 표시합니다.
응답 지연(3초 초과 작업 대비)
슬래시 명령어의 타임아웃 방지를 위해 응답 대기 상태를 먼저 알립니다.
유저 [ID: {userId}]에게 DM(개인메시지) 전송 {content}
특정 사용자에게 디스코드 1:1 개인 다이렉트 메시지를 보냅니다.
현재 메시지에서 스레드 생성 [이름: {name}]
수신된 메시지를 기점으로 새로운 하위 토론 스레드를 생성합니다.
임베드 & UI
(10개 블록)리치 임베드 카드, 인터랙티브 버튼, 선택 드롭다운 메뉴, 모달 팝업
새 임베드 생성 [제목: {title}] [설명: {desc}]
디스코드 전용 카드형 임베드 인스턴스를 초기화합니다.
임베드 색상 설정 {color}
임베드 좌측 띠의 테두리 컬러를 지정합니다.
임베드 필드 추가 [이름: {name}] [내용: {value}]
임베드 내부에 소항목 이름과 내용을 배치합니다.
임베드 썸네일(우측상단) 설정 [URL: {url}]
임베드 우측 상단에 작게 표시될 썸네일 이미지 URL을 지정합니다.
임베드 대형 이미지(하단) 설정 [URL: {url}]
임베드 본문 하단에 큼직하게 들어갈 대표 이미지 URL을 설정합니다.
임베드 푸터 문구 설정 {text}
임베드 맨 아래에 작게 나타나는 푸터 문구를 지정합니다.
현재 구성된 임베드 채널 전송
지금까지 만든 임베드를 채널이나 답장으로 발송합니다.
버튼 생성 [글자: {label}] [ID: {customId}]
사용자가 누를 수 있는 인터랙티브 액션 버튼을 전송합니다.
외부 링크 연결 버튼 생성 [글자: {label}] [URL: {url}]
클릭 시 지정한 웹사이트로 이동하는 링크 버튼을 생성합니다.
모달 팝업창 띄우기 [ID: {customId}] [제목: {title}]
사용자의 화면에 텍스트를 입력할 수 있는 팝업 창을 띄웁니다.
흐름 제어 & 반복
(10개 블록)만약(if/else), N번 반복, 조건 반복(while), 리스트 순회, 대기, 에러 처리
만약 <조건> 이라면
조건이 참(True)인 경우에만 내부 블록들을 실행합니다.
만약 <조건> 이라면 / 아니면
조건이 참일 때와 거짓일 때 각각 다른 코드를 수행합니다.
{times} 번 반복하기
지정한 횟수만큼 블록 시퀀스를 반복 수행합니다.
<조건> 인 동안 계속 반복하기
조건이 참을 만족하는 동안 루프를 계속 실행합니다.
리스트 [{listVar}] 의 각 항목 [변수: {itemVar}] 반복
배열 리스트의 모든 요소를 하나씩 꺼내며 반복 실행합니다.
{seconds} 초 동안 대기하기
다음 블록을 수행하기 전 일정 시간 일시 정지합니다.
{ms} 밀리초(ms) 동안 대기하기
1/1000초 단위로 정밀하게 대기합니다.
현재 반복문 즉시 탈출 (Break)
진행 중인 루프를 즉시 중단하고 빠져나옵니다.
다음 반복으로 건너뛰기 (Continue)
현재 회차의 남은 코드를 건너뛰고 다음 반복을 이어갑니다.
오류 감지 시도 (Try / Catch)
명령 실행 중 에러가 발생해도 봇이 꺼지지 않도록 안전하게 예외를 처리합니다.
연산 & 논리
(6개 블록)사칙연산, 비교 연산자(=, !=, >, <), 논리곱(AND), 논리합(OR), 문자열 조작
<값 1> {op} <값 2>
두 값을 비교하여 참 또는 거짓을 산출합니다.
<조건 1> {op} <조건 2>
두 조건식 간의 논리곱(AND) 또는 논리합(OR)을 계산합니다.
<조건> 이(가) 아니다 (NOT)
조건의 참/거짓 결과를 반대로 뒤집습니다.
<숫자 1> {op} <숫자 2>
기본 사칙연산(더하기, 빼기, 곱하기, 나누기, 나머지)을 계산합니다.
{from} 부터 {to} 사이의 난수(무작위 수)
지정한 최소값과 최대값 사이의 임의의 정수를 추출합니다.
<문자열 1> 과(와) <문자열 2> 결합
두 개의 텍스트 문자열을 하나로 이어 붙입니다.
변수 & 리스트
(6개 블록)변수 저장/연산, 리스트(배열) 생성/추가/삭제, JSON 데이터 처리
변수 [{varName}] 을(를) {value} (으)로 정하기
지정한 변수에 새로운 값을 대입합니다.
변수 [{varName}] 값에 {amount} 만큼 더하기
숫자형 변수의 값을 일정 크기만큼 증가시키거나 감소시킵니다.
변수 ({varName})
메모리에 보관된 변수의 값을 불러옵니다.
새 리스트 [{listName}] 초기화
빈 배열 리스트를 새로 만듭니다.
리스트 [{listName}] 에 항목 {item} 추가하기
리스트의 맨 뒤에 새 항목을 밀어 넣습니다.
리스트 ({listName}) 의 항목 개수
리스트에 들어 있는 전체 요소의 수를 반환합니다.
디스코드 정보
(8개 블록)메시지 작성자, 채널, 서버, 슬래시 명령어 옵션값 조회
메시지/명령어 작성자 닉네임
이벤트를 유발한 디스코드 사용자의 닉네임을 가져옵니다.
작성자 고유 디스코드 ID
사용자의 18~19자리 고유 디스코드 유저 ID입니다.
작성자 멘션 태그 (<@ID>)
메시지 전송 시 유저를 멘션할 수 있는 태그 문자열입니다.
수신된 메시지 본문 텍스트
채팅으로 전송된 전체 텍스트 내용입니다.
현재 채널 ID
이벤트가 발생한 채널의 고유 ID입니다.
현재 서버(Guild) ID
명령어가 실행된 디스코드 서버의 고유 ID입니다.
현재 서버 전체 멤버 수
서버에 가입되어 있는 총 유저 수를 가져옵니다.
슬래시 옵션값 가져오기 [이름: {name}]
슬래시 명령어와 함께 전달된 인자 값을 추출합니다.
서버 관리 & 보안
(6개 블록)유저 추방, 차단(밴), 타임아웃, 역할 관리, 채널 관리, 일괄 청소
유저 추방하기 [유저ID: {userId}] [사유: {reason}]
서버에서 특정 멤버를 즉시 쫓아냅니다(재입장 가능).
유저 영구 차단(밴)하기 [유저ID: {userId}] [사유: {reason}]
특정 멤버를 서버에서 영구적으로 차단(Ban)합니다.
유저 타임아웃 [유저ID: {userId}] [초: {seconds}]
일정 시간 동안 멤버의 채팅 및 음성 발언을 차단합니다.
현재 채널 메시지 일괄 청소 [개수: {count}개]
채널의 최근 메시지들을 한꺼번에 대량 삭제합니다.
멤버에게 역할 부여 [유저ID: {userId}] [역할ID: {roleId}]
특정 사용자에게 디스코드 역할을 추가합니다.
멤버의 역할 제거 [유저ID: {userId}] [역할ID: {roleId}]
사용자가 가지고 있던 특정 역할을 박탈합니다.
영구 DB 저장소
(3개 블록)봇 재부팅 후에도 유지되는 키-값 영구 데이터베이스 저장 및 조회
영구 DB에 저장 [키: {key}] [값: {val}]
봇이 재부팅되어도 지워지지 않는 영구 저장소에 키-값을 저장합니다.
영구 DB에서 가져오기 [키: {key}]
영구 저장소에 기록된 키의 데이터를 불러옵니다.
영구 DB에서 키 삭제 [키: {key}]
영구 저장소에서 특정 키 항목을 완전히 삭제합니다.