응용 프로그램이 만들어지면 새로 생성 된 My-Greeter-Bot 응용 프로그램의 개요가 표시됩니다. 클라이언트 ID 및 클라이언트 비밀과 같은 정보가 표시됩니다. 이 비밀은 나중에 승인 토큰으로 사용됩니다.
지금 메뉴에서 bot
메뉴 옵션을 클릭하십시오. Discord는 My-Greeter-Bot 응용 프로그램을 구축하고 봇 사용자를 추가합니다.
봇이 제작되면 맞춤형 봇에 대한 개요를 얻을 수 있습니다. 토큰 섹션을 살펴보십시오. 나중에 봇 사용자와 연결하려면이 권한 토큰을 복사하여 어딘가에 적어 두십시오.
.
3 단계 : 권한을 정의하고 서버에 봇을 추가하십시오
셋째, 봇의 권한을 정의하여 불화 서버에 추가하려고합니다.
설정 메뉴에서 oauth2
섹션으로 이동하십시오. 여기서 봇의 범위를 정의 할 수 있습니다. 간단한 봇을 활성화하려면 bot
옵션을 선택합니다.
아래의 권한 URL이 이제 변경되었음을 알 수 있습니다. 그러나 권한 = 0 섹션은 아직 권한을 설정하지 않았 음을 나타냅니다.
더 아래로 스크롤하면
봇 권한 섹션을 찾을 수 있습니다. 우리는 봇이 메시지를 보내고 메시지 기록을 읽을 수 있기를 원합니다. 사용자의 요청을 감지 할 수 있도록 메시지 기록을 읽을 수있는 권한이 필요합니다.
두 옵션을 모두 선택하면 권한 부여 URL의 권한 매개 변수에 대한 숫자가 변경되었음을 확인하십시오.
마지막 으로이 URL을 복사하여 좋아하는 웹 브라우저에 붙여 넣으십시오. 봇을 추가 할 서버를 묻는 개요가 있습니다. 새로 생성 된 Discord_playground를 선택하겠습니다
인증 버튼을 클릭하여 봇을 서버에 추가하십시오.
서버에 봇을 성공적으로 추가 할 수 있다면 다음 성공 화면이 나타납니다.
.
봇이 추가 된 것을 다시 확인하려면 General
채널로 이동하십시오. 봇이 채널에 가입했음을 나타내는 유사한 메시지가 표시됩니다.
성공!
4 단계 : 프로젝트 설정
마지막으로 프로젝트를 설정합시다. Github에서 기본 프로젝트를 찾을 수 있습니다. git 클론 https://github.com/sitepoint-editors/discord-bot-sitepoint를 사용하여 컴퓨터에서 로컬로 저장소를 복제하십시오.
프로젝트는 Dotenv와 Discord.js의 두 가지 종속성에 따라 다릅니다. 첫 번째 종속성을 사용하면 우리가 기록한 봇 토큰을 보유하는 .env 파일을 사용할 수 있습니다. Discord Bot을 개발하기 위해서는 두 번째 의존성 인 Discord.js가 필요합니다.
두 종속성을 설치하려면 프로젝트 폴더 내부에서 NPM 설치를 실행하십시오.
마지막으로 설치를 완료하려면 프로젝트의 루트에 .env 파일을 만듭니다. 파일에 호출 된 하나의 환경 변수 추가 :
5 단계 : Discord.js 탐색
프로젝트의 루트에있는 index.js 파일을 살펴 보겠습니다 :
우리는 먼저 환경 .env 파일의 구성을 요구하여 정의한 환경 변수를로드합니다. 이를 통해 Process.env.token을 통해 정의한 토큰 변수를 사용할 수 있습니다. 위의 스 니펫의 마지막 줄은 우리가 만든 봇에 액세스하기 위해 토큰을 로그인 함수로 전달하는 방법을 보여줍니다.
봇 변수는 실제로 우리가 상호 작용할 불일치 클라이언트입니다.
“준비된”이벤트를 들어보세요
다음, 우리는 이벤트를들을 수 있습니다. 우선, 우리는 준비된 이벤트를 듣고 있습니다. 봇에 연결되면 준비된 이벤트가 해고됩니다.
올바른 토큰을 사용하여 봇에 로그인 한 경우 터미널이 봇 봇 이름을 인쇄해야합니다.
당신은 단자에서 노드 index.js를 실행하여 봇을 시작할 수 있습니다. 프로젝트의 루트 에서이 명령을 실행하고 있는지 확인하십시오.
봇이 성공적으로 연결되면 터미널에 봇의 이름이 인쇄되는 것을 볼 수 있습니다.
“메시지”이벤트를 듣습니다
ready 이벤트 외에도 불화 클라이언트를 사용하면 메시지 이벤트를들을 수 있습니다. 이것은 봇이 채널로 전송되는 메시지를 읽을 수 있음을 의미합니다. 권한 섹션에 다시 연결하려면 이것이 메시지 기록을 읽기 위해 봇이 권한을 부여 해야하는 정확한 이유입니다.
<span>TOKEN=my-unique-bot-token
</span>
코드를 조금 더 탐색하면 내용 핑이있는 메시지를 찾고 있음을 알 수 있습니다. Ping이 포함 된 메시지를 받으면 봇은 Pong으로 답장합니다. 그 후, 우리는 msg.channel.send를 사용하여 채널로 다시 보냅니다.
두 명령의 차이점을 확인하십시오
msg.reply : 메시지를 보낸 초기 사용자에게 태그
msg.channel.send : 다른 사람을 태그하지 않고 채널에 메시지를 보냅니다
Node Index.js로 봇을 실행하고 일반 채널에 메시지를 보내십시오. 동일한 결과가 표시되는지 확인하십시오.
-
태그가 지정된 사용자를 찾으십시오
새 명령을 추가하려면 다른 명령과 함께 IF 조항을 확장해야합니다.
kick @username과 같은 메시지를 보내서 누군가를 차고 싶다고 가정 해 봅시다. 그래서 먼저 우리는 메시지의 내용을 차기 시작합니다. ! kick으로 시작하는 메시지를 찾으면 msg.mentions.users 속성으로 메시지에 사용자가 태그를 지정했는지 확인할 수 있습니다.
사용자 태그가있는 경우 MSG.mentions.users.first ()로 처음 언급 된 사용자를 선택할 수 있습니다. 다음으로 메시지에서 사용자의 사용자 이름을 사용하여 채널에 회신합니다.
-
6 단계 : 다른 사람의 문제…
다음, 다음,이 모든 것과 관련하여 문제를 논의 해 봅시다. 메시지 이벤트에서 듣기 위해 몇 가지 명령이 정의 된 경우 코드를 읽을 수 있습니다.
그러나 이런 식으로 광범위한 프로젝트를 구축하기로 결정했을 때, 우리는 다른 체인으로 끝납니다. 다음은 다른 사용하지 말아야 할 이유의 작은 목록입니다…
스파게티 코드 에 희생되는 것이 더 쉽습니다
코드를 읽기 어렵습니다
디버그하는 것은 쉽지 않습니다
코드를 구성하기가 어렵습니다
코드가 커짐에 따라 유지하기가 쉽지 않습니다
따라서 우리가 사용할 수있는 명령 패턴을 살펴 보겠습니다.
명령 핸들러 구현
명령 핸들러는 discord.js 패키지에서 지원하는 접근 방식입니다. 계속하기 전에 GIT 체크 아웃 고급 지점을 확인하십시오. 이 분기는 명령 처리기 구현을 보유합니다
명령 폴더
먼저, 명령 폴더를 탐색합시다. 이 폴더에는 정의 할 모든 명령을 내보내는 index.js 파일이 있습니다. 일을 단순하게 유지하기 위해 하나의 명령 만 정의합니다.
다음, Ping 명령의 구현을 살펴 보겠습니다. 기본적으로 다음을 포함하는 객체를 내보내는 것입니다.
이름 : 명령 이름.
설명 : 각 명령에 대한 설명을 추가하는 것이 가장 좋은 방법입니다. -
실행 : MSG와 Args 입력을 받아들이는 함수. 이 기능은 우리가 우리가했던 것과 같은 논리를 가지고 있습니다…
-
명령 가져 오기
계속, 명령을 index.js 파일로 가져 오자. 불구자 봇의 명령 수집을 정의하십시오. 우리는 모든 명령을 반복하고 명령 컬렉션에 하나씩 추가합니다.
bot.commands.set 함수는 명령의 이름과 전체 명령 개체를 받아들입니다.
-
그 후, 우리는 다른 사람을 제거해야합니다.
먼저 .split ( / /)를 사용하여 Whitespaces로 메시지 내용을 분할하려고합니다. 우리는이 Args 배열의 첫 번째 항목이 우리의 명령이라고 가정합니다. 컬렉션에 명령이 존재하는지 확인하기 위해 컬렉션은 HAST () 함수를 노출시켜 간단히 TRUE 또는 FALSE를 반환합니다. 명령이 존재하지 않으면 빈 응답을 반환합니다.
그러나 명령이 존재하면 get () 함수를 사용하여 올바른 명령을 검색하고 입력 매개 변수 MSG 및 ARGS로 실행합니다.
스파게티 코드를 작성하지 않고 읽기 쉽고 역동적 인 명령을 호출하는 방법입니다. 이를 통해 필요한 경우 프로젝트를 수백 개의 명령으로 확장 할 수 있습니다. <span>TOKEN=my-unique-bot-token
</span>
다시, 새 코드의 새 버전을 테스트하려면 GIT 체크 아웃을 통해 고급 지점을 확인하십시오. 다음으로 NPM을 사용하여 모든 종속성을 설치하고 Node Index.js를 사용하여 봇을 시작하십시오.
포장
새로운 Discord 봇을 설치하고 설정하면 처음에는 압도적 인 느낌이들 수 있습니다. 그러나 Discord.js 패키지에서 제공하는 API는 간단하며 Discord 웹 사이트는 훌륭한 예를 제공합니다.
이 튜토리얼은 두 권의 권한 만 포함하므로 더 많은 것을 찾을 수 있습니다. Discordjs.Guide 웹 사이트에서 권한에 대해 자세히 알아볼 수 있습니다.
첫 번째 불화 봇을 구축하는 데 행운을 빕니다!
그건 그렇고,이 링크와 함께 Sitepoint의 불화 커뮤니티에 가입 할 수 있습니다. 우리와 기술에 대해 이야기하십시오.
node.js discord 봇에 더 많은 기능을 추가 할 수 있습니까?
discord 봇에 더 많은 기능을 추가하려면 discord.js 라이브러리와 Discord API를 이해하는 것이 포함됩니다. 메시지 보내기, 메시지 응답, 음성 채널에 가입, 오디오 재생 등과 같은 기능을 추가 할 수 있습니다. 이를 추가하려면 이벤트를 듣고 이러한 이벤트를 기반으로 작업을 수행해야합니다. 예를 들어, 봇이 메시지를 보내려면 '메시지'이벤트와 'Message.Channel.Send'메소드를 사용할 수 있습니다. d 내장 디버거 또는 Visual Studio Code 디버거와 같은 외부 도구와 같은 Node.js 디버깅 도구를 사용할 수도 있습니다. 또한 Discord.js 라이브러리는 봇이 수행하는 작업에 대한 자세한 정보를 위해 '디버그'및 '경고'와 같은 이벤트를 제공합니다. Discord Bot을 다른 API와 상호 작용하게하려면 어떻게해야합니까? discord 봇을 다른 API와 상호 작용하게 만드는 데는 'fetch'또는 'axios'라이브러리를 사용하여 HTTP 요청을 보내는 것과 관련이 있습니다. 이러한 라이브러리를 사용하여 다른 API에서 데이터를 얻은 다음 해당 데이터를 봇에서 사용할 수 있습니다. 예를 들어, 날씨 데이터를 가져 와서 불화 채널에서 메시지로 보낼 봇을 만들 수 있습니다.
discord 봇을 호스팅 할 수 있습니까?
discord 봇 호스팅 실행을 주최합니다. 로컬 컴퓨터 대신 서버에서. Heroku, AWS 또는 Google Cloud와 같은 클라우드 호스팅 제공 업체를 사용할 수 있습니다. 이 공급 업체는 24/7 봇을 실행할 수 있으며 종종 봇과 함께 사용할 수있는 데이터베이스 및 기타 서비스를 제공합니다.
내 Discord Bot을 특정 명령에 응답하게하려면 어떻게해야합니까?
discord 봇이 특정 명령에 응답하는 것은 '메시지'이벤트를 듣고 메시지 내용이 특정 명령으로 시작되는지 확인하는 것과 관련이 있습니다. 이를 위해 'startswith'메소드를 사용할 수 있습니다. 메시지가 명령으로 시작되면 특정 작업을 수행 할 수 있습니다.
음성 채널에서 Discord Bot Play 오디오를 만들 수 있습니까?
Discord Bot Play Audio를 음성 채널에는 Discord.js 라이브러리의 '음성'부분을 사용하는 것이 포함됩니다. ‘joinvoicechannel’방법을 사용하여 봇이 음성 채널에 가입 한 다음‘재생’방법을 사용하여 오디오를 재생할 수 있습니다. 오디오는 로컬 파일, 스트림 또는 URL 일 수 있습니다. Discord 봇을 이미지 또는 임베드를 보내는 방법은 무엇입니까?
d Discord.js 라이브러리의 'MessageEmbed'클래스. 새 임베드를 생성하고 제목, 설명, 색상, 이미지 및 기타 속성을 설정 한 다음 'Message.Channel.Send'메소드를 사용하여 보낼 수 있습니다. 메시지에?
d 이 방법으로 이모티콘을 전달할 수 있으며 봇은 그 이모티콘으로 메시지에 반응합니다. 신분증을 전달하여 사용자 정의 이모티콘을 사용하거나 유니 코드 문자를 전달하여 기본 이모티콘을 사용할 수 있습니다. discord 봇 핸들 오류를 어떻게 만들 수 있습니까? Discord 봇의 오류 처리에는 시도/캐치 블록을 사용하고 '오류'이벤트를 듣는 것이 포함됩니다. 시도 블록에서 오류가 발생하면 캐치 블록이 실행됩니다. Discord.js 라이브러리에서 오류가 발생할 때마다 '오류'이벤트가 방출됩니다.
discord 봇을 데이터베이스로 사용하게하는 방법은 무엇입니까?
discord 봇을 사용하여 데이터베이스와 관련이 있습니다. MongoDB의 경우 'Mongoose'또는 SQL 데이터베이스의 'Mongoose'와 같은 데이터베이스 라이브러리를 사용합니다. 이러한 라이브러리를 사용하여 데이터베이스에 연결하고 모델을 정의한 다음 데이터를 작성하고 읽고 업데이트하고 삭제할 수 있습니다.