
2.디스코드 봇 명령어 만들기
MongRaGong
·2021. 2. 17. 23:34
Visual Studio Code 에디터에서 cd 명령어로 DiscordBot 프로젝트 폴더로 이동했다.
DiscordBot 폴더로 이동하면 npm init 으로 package.json을 만들고
npm install discord.js --save 로 discord.js 모듈을 다운로드 해준다.
const Discord=require('discord.js');
Discord라는 변수에 discord.js 모듈을 불러온다.
const client = new Discord.Client();
client라는 변수에 Discord.Client()를 생성자함수로 불러온다.
const prefix="?";
prefix변수는 명령어를 구분하는 구분자로 쓰이게 된다.(?,!,$,%,^..등등 특수문자 아무거나 넣어도 된다.)
// client가 준비되면 실행되는 코드
// client.once는 client가 준비되면 한 번 실행되는 코드
//'ready'라는 이벤트에 활살표 함수로 이벤트 리스너를 만들었다.
client.once('ready',()=>{
console.log('로봇 시작');
});
client.once는 클라이언트가 준비되면 한번만 실행되는 코드 이다.
client.on('message',message =>{
//startsWith(prefix) prefix로 시작하는지 확인하여 맞으면 true를 반환한다.
//여기서 prefix는 ?랑 같다.
//message.author.bot 사용자가 봇인지 아닌지 판별한다.(여기에서는 false로 반환)
if(!message.content.startsWith(prefix)|| message.author.bot) return;
// ------------------------------------------------------------------------------------------------------------
//message.content.slice(prefix.length)는 prefix.length가 1이므로 이부터 잘라서 글자를 반환다.
//예시:여기에서는 ?ping를 디스코드에서 입력하면 ?를 자르고 ping을 반환한다.
//message.content.slice(prefix.length).split(" ")는 split가 띄워쓰기 기준으로 잘라서 배열로 반환해 준다.
//예시:?ping test 라고 디스코드로 보내면 ["ping", "test"]로 반환해준다.,
const args=message.content.slice(prefix.length).split(" ");
// ------------------------------------------------------------------------------------------------------------
//shift()는 배열의 첫번째를 반환해준다.
//예시:?ping test 라고 디스코드로 보내면 ["ping", "test"]를 반환해주는데
//다시 여기서 첫번째인자의 ping을 받아와준다.
//toLowerCase()는 모든 문자를 소문자로 변환해준다.
const command=args.shift().toLowerCase();
if(command === 'ping'){
message.channel.send('pong!');
}
});
코드에 TOKEN값을 알아야하는데 그 토큰값은 위 사진 화면에서 Click to Reveal Token 저 글자를 클릭해야 나온다.
완성코드
//이 코드를 적은 파일이름은 index.js 입니다.
const Discord=require('discord.js');
const client = new Discord.Client();
const prefix="?";
client.once('ready',()=>{
console.log('로봇 시작');
});
client.on('message',message =>{
if(!message.content.startsWith(prefix)|| message.author.bot) return;
const args=message.content.slice(prefix.length).split(" ");
const command=args.shift().toLowerCase();
if(command === 'ping'){
message.channel.send('pong!');
}
});
client.login('봇의 토큰값 넣기');
vscode 에디터 콘솔창에서 프로젝트 폴더로 이동하고 node index 로 실행한다.
긴글 봐주셔서 감사합니다.
'Node.js > 디스코드 봇' 카테고리의 다른 글
1. 디스코드 봇 생성 및 서버에 초대 (0) | 2021.02.17 |
---|