
Discord는 커스텀 봇 작성을위한 훌륭한 API와 매우 활발한 봇 커뮤니티를 보유하고 있습니다. 오늘은 직접 만드는 방법을 살펴 보겠습니다.
봇을 코딩하기 위해서는 약간의 프로그래밍 지식이 필요하므로 모든 사람에게 적합하지는 않지만 다행히도 인기있는 언어를위한 모듈이있어서 매우 쉽습니다. 가장 인기있는 discord.js를 사용합니다.
관련 : Discord Server를 생성, 설정 및 관리하는 방법
시작하기
Discord의 봇 포털로 가서 새로운 응용 프로그램을 만드십시오.

고객 ID와 비밀을 기록하고 싶을 것입니다 (물론 비밀을 유지해야합니다). 그러나 이것은 봇이 아니라“애플리케이션”입니다. “봇”탭 아래에 봇을 추가해야합니다.

이 토큰도 메모하고 비밀로 유지하십시오. 어떤 상황에서도이 키를 Github에 커밋하지 마십시오. 봇은 거의 즉시 해킹됩니다.
Node.js 설치 및 코딩 받기
웹 페이지 외부에서 Javascript 코드를 실행하려면 노드가 필요합니다. 다운로드하여 설치 한 후 터미널에서 작동하는지 확인하십시오 (또는이 모든 것이 Windows 시스템에서 작동하므로 명령 프롬프트). 기본 명령은 “node”입니다.
또한 nodemon 도구를 설치하는 것이 좋습니다. 봇 코드를 모니터링하고 변경시 자동으로 다시 시작하는 명령 줄 앱입니다. 다음 명령을 실행하여 설치할 수 있습니다.
npm i -g nodemon
텍스트 편집기가 필요합니다. 메모장 만 사용할 수도 있지만 Atom 또는 VSC를 권장합니다.
“Hello World”는 다음과 같습니다.

const Discord = require('discord.js');
const client = new Discord.Client();
client.on('ready', () => {
console.log(`Logged in as ${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 --inspect index.js
그러면 스크립트가 시작되고 Chrome 디버거가 실행되며 입력하면 액세스 할 수 있습니다 chrome://inspect/ Chrome의 Omnibar로 이동 한 다음 '노드 전용 devtools'를 엽니 다.
이제 “로그인

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

특히 저자 정보와 채널 정보가 있으며,이 정보는 msg.author 및 msg.channel로 액세스 할 수 있습니다. 이 방법을 사용하여 Chrome 노드 devtools에 객체를 로깅하고 작동 방법을 알아보십시오. 흥미로운 것을 발견 할 수 있습니다. 예를 들어 봇은 답글을 콘솔에 기록하므로 봇의 답글이 트리거됩니다. client.on('message'). 그래서 스팸봇을 만들었습니다.

노트: 재귀를 다루고 싶지 않으므로 조심하십시오.
서버에 봇을 추가하는 방법

이 부분은 생각보다 어렵습니다. 이 URL을 가져와야합니다.
https://discordapp.com/oauth2/authorize?client_id=CLIENTID&scope=bot
CLIENTID를 애플리케이션 페이지의 일반 정보 탭에있는 봇의 클라이언트 ID로 바꿉니다. 이 작업이 완료되면 친구에게 링크를 제공하여 서버에 봇을 추가 할 수 있습니다.
좋아, 그럼 내가 무엇을 할 수 있습니까?

기본 설정 외에도 다른 모든 것은 전적으로 귀하에게 달려 있습니다. 그러나, 우리가 hello world에 멈췄다면이 튜토리얼은 그리 많지 않을 것이므로, 문서를 살펴보면 무엇이 가능한지 더 잘 알 수 있습니다. 문서화가 잘되어있는 한 최대한 많이 읽어 보시기 바랍니다.
나는 추가하는 것이 좋습니다 console.log(client) 코드의 시작 부분에서 콘솔의 클라이언트 객체를 살펴보십시오.

여기에서 많은 것을 배울 수 있습니다. 한 번에 여러 서버에 봇을 추가 할 수 있으므로 서버는 Guilds 지도 객체. 해당 개체에는 개별 길드 ( “서버”의 API 이름)가 있으며 길드 개체에는 모든 정보 및 메시지 목록이 포함 된 채널 목록이 있습니다. API는 매우 깊고 배우는 데 시간이 걸릴 수 있지만 최소한 설정 및 학습이 시작하기 쉽습니다.








