나만의 Discord 봇을 만드는 방법

Discord는 사용자 지정 봇 작성을위한 뛰어난 API와 매우 활동적인 봇 커뮤니티를 보유하고 있습니다. 오늘 우리는 자신의 것을 시작하는 방법을 살펴볼 것입니다.

봇을 코딩하려면 약간의 프로그래밍 지식이 필요하므로 모든 사람을위한 것은 아니지만 다행스럽게도 매우 쉽게 할 수있는 인기있는 언어 용 모듈이 있습니다. 우리는 가장 인기있는 discord.js를 사용할 것입니다.

관련 : Discord 서버 생성, 설정 및 관리 방법

시작하기

Discord의 봇 포털로 이동하여 새 애플리케이션을 만듭니다.

클라이언트 ID와 비밀 (물론 비밀을 유지해야 함)을 기록해 두는 것이 좋습니다. 그러나 이것은 봇이 아니라 단지“응용 프로그램”입니다. "Bot"탭에서 봇을 추가해야합니다.

이 토큰도 기록하고 비밀로 유지하십시오. 어떤 상황에서도이 키를 Github에 커밋하지 마십시오. 귀하의 봇은 거의 즉시 해킹됩니다.

Node.js 설치 및 코딩 가져 오기

웹 페이지 외부에서 자바 스크립트 코드를 실행하려면 Node.js가 필요합니다. 다운로드하여 설치하고 터미널에서 작동하는지 확인하십시오 (또는 Windows 시스템에서 작동해야하는 명령 프롬프트). 기본 명령은 "node"입니다.

또한 nodemon 도구를 설치하는 것이 좋습니다. 봇의 코드를 모니터링하고 변경시 자동으로 다시 시작하는 명령 줄 앱입니다. 다음 명령을 실행하여 설치할 수 있습니다.

npm i -g nodemon

텍스트 편집기가 필요합니다. 메모장 만 사용할 수 있지만 Atom 또는 VSC를 권장합니다.

"Hello World"는 다음과 같습니다.

const Discord = require ( 'discord.js'); const 클라이언트 = new Discord.Client (); client.on ( 'ready', () => {console.log (`$ {client.user.tag}로 로그인 됨!`);}); client.on ( 'message', msg => {if (msg.content === 'ping') {msg.reply ( 'pong');}}); client.login ( 'token');

이 코드는 discord.js 예제에서 가져온 것입니다. 그것을 분해합시다.

  • 처음 두 줄은 클라이언트를 구성하는 것입니다. 첫 번째 줄은 "Discord"라는 개체로 모듈을 가져오고 두 번째 줄은 클라이언트 개체를 초기화합니다.
  • client.on('ready')봇 시작할 때 블록이 실행됩니다. 여기에서는 이름을 터미널에 기록하도록 구성되었습니다.
  • client.on('message')블록은 새 메시지는 모든 채널에 게시 매번 실행됩니다. 물론 메시지 내용을 확인해야하며 if블록이하는 일입니다. 메시지가 "ping"이라고 만 표시되면 "Pong!"으로 응답합니다.
  • 마지막 줄은 봇 포털의 토큰으로 로그인합니다. 분명히 여기 스크린 샷의 토큰은 가짜입니다. 인터넷에 토큰을 게시하지 마십시오.

이 코드를 복사하고 하단에 토큰을 붙여넣고 index.js 전용 폴더에 저장 합니다.

봇 실행 방법

터미널로 이동하여 다음 명령을 실행하십시오.

nodemon-index.js 검사

이렇게하면 스크립트가 시작되고 Chrome 디버거도 실행됩니다. chrome://inspect/  Chrome의 Omnibar 에 입력 한 다음 '노드 전용 개발 도구'를 열어 액세스 할 수 있습니다 .

이제 "Logged in as"라고 표시되어야하지만 여기에 콘솔에 수신 된 모든 메시지 개체를 기록하는 줄을 추가했습니다.

그렇다면이 메시지 객체를 구성하는 것은 무엇입니까? 실제로 많은 것 :

특히 msg.author 및 msg.channel을 통해 액세스 할 수있는 작성자 정보와 채널 정보가 있습니다. Chrome Node devtools에 개체를 로깅하는이 방법을 권장하고, 작동하는 이유를 살펴보기 만하면됩니다. 흥미로운 것을 찾을 수 있습니다. 예를 들어 여기에서 봇은 응답을 콘솔에 기록하므로 봇의 응답이 트리거 client.on('message')됩니다. 그래서 저는 스팸봇을 만들었습니다.

참고 : 재귀를 실제로 다루고 싶지 않으니주의하세요.

서버에 봇을 추가하는 방법

이 부분은 생각보다 어렵습니다. 다음 URL을 가져와야합니다.

//discordapp.com/oauth2/authorize?client_id=CLIENTID&scope=bot

CLIENTID를 애플리케이션 페이지의 일반 정보 탭에있는 봇의 클라이언트 ID로 바꿉니다. 이 작업이 완료되면 친구에게 링크를 제공하여 봇도 서버에 추가하도록 할 수 있습니다.

좋아, 그럼 내가 뭘 할 수 있니?

기본 설정 외에 다른 모든 것은 전적으로 귀하에게 달려 있습니다. 그러나 우리가 hello world에서 멈춘다면 이것은 튜토리얼이 아니므로 문서의 일부를 살펴보면 무엇이 가능한지 더 잘 알 수 있습니다. 매우 잘 문서화되어 있으므로 가능한 한 많이 읽어 보시기 바랍니다.

console.log(client)코드 시작 부분에 추가 하고 콘솔에서 클라이언트 개체를 살펴 보는 것이 좋습니다 .

From here, you can learn a lot. Since you can add a bot to multiple servers at once, servers are part of the Guilds map object. In that object are the individual Guilds (which is the API’s name for “server”) and those guild objects have channel lists that contain all the info and lists of messages. The API is very deep, and may take a while to learn, but at least it’s easy to set up and get started learning.