독도갈매기의 개발 블로그
[Node.js] Node.js로 디스코드 봇을 만들 수 있다고!? -5- 메시지의 이모티콘을 확인하자! -2- 본문
이 포스팅은 Node.js로 디스코드 봇을 만들 수 있다고!? 시리즈 -5- 메시지의 이모티콘을 확인하자! 1에서 이어지는 포스팅입니다.
전 포스팅을 읽지 않으셨다면 읽고 오시는 것을 권장드립니다.
오늘의 목표
사용자가 보낸 메시지 Reaction을 제거 했을 때 어떤 이름의 Emoji인지를 출력하는 기능을 추가할 것입니다.
index.js
const { token } = require('./token'); // token 값을 따로 js파일을 만들어주고 module.exports를 사용하여 token이 코드에 노출되는 것을 조금이라도 방지합니다.
const discord = require('discord.js'); // discord.js를 import 해줍니다.
const app = new discord.Client(); // discord.Client 인스턴스 생성
app.on('ready', () => { // 여기서 사용되는 Arrow Function은 콜백함수입니다.
console.log(`I am Ready ${app.user.tag}`); // Bot이 준비가 되면 실행할 콜백함수입니다.
});
app.on('messageReactionRemove', (msg, user) => {
let emojiName = msg.emoji.name;
console.log(`${emojiName}가 삭제되었습니다.`);
});
app.on('messageReactionAdd', (msg, user) => {
let Ddabong = (msg.emoji.name == '👍') ? '따봉' : '아님';
console.log(`emoji ${Ddabong}, test : ${msg.emoji.name}`);
});
app.on('message', msg => {
// !avatar
if(msg.content === '!avatar') msg.channel.send(msg.author.displayAvatarURL()); // 메세지를 보낸 유저의 프로필 사진을 받아옵니다.
// !help
if(msg.content === '!help') {
// 저희는 MessageEmbed 생성자로 embed를 생성할 수 있습니다.
const embed = new discord.MessageEmbed()
.setTitle("이것은 embed 타이틀입니다.") // 1 - embed의 제목을 담당합니다.
.setColor('0f4c81') // 2 - embed 사이드 바의 색을 정합니다.
.setDescription('안녕하세요! 이곳은 설명입니다.'); // 3 - 실제로 설명을 담당하는 곳입니다.
msg.channel.send(embed);
}
// !but
if(msg.content === '!but') {
const emoji = new discord.MessageAttachment('https://mblogthumb-phinf.pstatic.net/MjAxOTEwMTVfMTE2/MDAxNTcxMTQ0MjIwODE4.Yd4D6HvDtIQ600HpJJJbadGBT8aVJ91nQ4OUp6jd7oYg.uvrak7O9UOuiIKfWDh7KG906yeEYBSptki2qdXw__YMg.PNG.azzi_01/01_.png?type=w800'); // 첨부파일 링크를 줍니다.
msg.channel.send(emoji); // 위에서 선언한 emoji 전송
}
// !ping
if(msg.content === '!ping') msg.channel.send(`pong!`); // 채팅에서 메세지가 들어왔을 때 실행할 콜백함수입니다.
});
app.login(token); // Bot의 토큰을 받아주세요. 0편에서 받은 봇의 토큰으로 로그인하는 코드입니다.
이벤트 설명은 전편에서 했기에 건너뛰고 이번 이벤트는 messageReactionRemove
입니다.
저번 이벤트는 메시지에 Reaction이 추가 되었을 때를 의미한다면 이번에는 제거되었을 때 반응합니다.
그래서 이번에는 Reaction이 제거 되면 어떤 emoji가 삭제되었는지 알려주는 기능을 추가 해봤습니다.
다른점이 궁금한게 있다면 댓글로 남겨주세요 감사합니다.
추가된코드
const { token } = require('./token'); // token 값을 따로 js파일을 만들어주고 module.exports를 사용하여 token이 코드에 노출되는 것을 조금이라도 방지합니다.
const discord = require('discord.js'); // discord.js를 import 해줍니다.
const app = new discord.Client(); // discord.Client 인스턴스 생성
app.on('ready', () => { // 여기서 사용되는 Arrow Function은 콜백함수입니다.
console.log(`I am Ready ${app.user.tag}`); // Bot이 준비가 되면 실행할 콜백함수입니다.
});
+ app.on('messageReactionRemove', (msg, user) => {
+ let emojiName = msg.emoji.name;
+ console.log(`${emojiName}가 삭제되었습니다.`);
+ });
app.on('messageReactionAdd', (msg, user) => {
let Ddabong = (msg.emoji.name == '👍') ? '따봉' : '아님';
console.log(`emoji ${Ddabong}, test : ${msg.emoji.name}`);
});
app.on('message', msg => {
// !avatar
if(msg.content === '!avatar') msg.channel.send(msg.author.displayAvatarURL()); // 메세지를 보낸 유저의 프로필 사진을 받아옵니다.
// !help
if(msg.content === '!help') {
// 저희는 MessageEmbed 생성자로 embed를 생성할 수 있습니다.
const embed = new discord.MessageEmbed()
.setTitle("이것은 embed 타이틀입니다.") // 1 - embed의 제목을 담당합니다.
.setColor('0f4c81') // 2 - embed 사이드 바의 색을 정합니다.
.setDescription('안녕하세요! 이곳은 설명입니다.'); // 3 - 실제로 설명을 담당하는 곳입니다.
msg.channel.send(embed);
}
// !but
if(msg.content === '!but') {
const emoji = new discord.MessageAttachment('https://mblogthumb-phinf.pstatic.net/MjAxOTEwMTVfMTE2/MDAxNTcxMTQ0MjIwODE4.Yd4D6HvDtIQ600HpJJJbadGBT8aVJ91nQ4OUp6jd7oYg.uvrak7O9UOuiIKfWDh7KG906yeEYBSptki2qdXw__YMg.PNG.azzi_01/01_.png?type=w800'); // 첨부파일 링크를 줍니다.
msg.channel.send(emoji); // 위에서 선언한 emoji 전송
}
// !ping
if(msg.content === '!ping') msg.channel.send(`pong!`); // 채팅에서 메세지가 들어왔을 때 실행할 콜백함수입니다.
});
app.login(token); // Bot의 토큰을 받아주세요. 0편에서 받은 봇의 토큰으로 로그인하는 코드입니다.
'Node.js' 카테고리의 다른 글
[Node.js] Node.js로 디스코드 봇을 만들 수 있다고!? -5- 메시지의 이모티콘을 확인하자! -1- (0) | 2020.11.30 |
---|---|
[Node.js] Node.js로 디스코드 봇을 만들 수 있다고!? -4- 봇의 설명을 넣어보자 (0) | 2020.10.15 |
[Node.js] Node.js로 디스코드 봇을 만들 수 있다고!? -3- 봇에 짤이나 이모티콘을 추가해보자 (0) | 2020.10.13 |
[Node.js] Node.js로 디스코드 봇을 만들 수 있다고!? -2- 유저 프로필 사진 가져오기 (0) | 2020.10.12 |
[Node.js] Node.js로 디스코드 봇을 만들 수 있다고!? -1- ping pong (0) | 2020.10.10 |
Comments