2.디스코드 봇 명령어 만들기

MongRaGong

·

2021. 2. 17. 23:34

일단 글쓴이는 coding라는 폴더에 DiscordBot이라는 폴더를 생성했다.

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!');
    }
    
});

헉!! 설명 다적으니까 무서워~~

 

 

1. 디스코드 봇 생성 및 서버에 초대 글에 있는 사진

코드에 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 로 실행한다.

 

실행하면 로봇 시작이라고 로그값이 뜬다.

 

?ping 으로 커맨드치면 pong!로 답해주는 봇 !!!!!!

재밌따~~~

 

긴글 봐주셔서 감사합니다.

나는 그럼 이만~~~

'Node.js > 디스코드 봇' 카테고리의 다른 글

1. 디스코드 봇 생성 및 서버에 초대  (0) 2021.02.17