// !경고!
// 본 코드는 최적화가 안된
// 단순 기능 구현 코드입니다.
// 최적화는 스스로!
var Discord = require('discord.js');
var bot = new Discord.Client();
const events = {
MESSAGE_REACTION_ADD: 'messageReactionAdd',
MESSAGE_REACTION_REMOVE: 'messageReactionRemove',
};
bot.on('ready', () => {
console.log('Test bot Ready...');
});
bot.on('message', message =>{
const sender = message.author;
const msg = message.content.toLowerCase();
const prefix = '!';
let role = message.guild.roles.find('name', 'test');
let member = message.member;
console.log(member);
if(msg === prefix + 'getrole'){
member.addRole(role);
} else if(msg === prefix + 'outrole'){
member.removeRole(role);
}
});
bot.on('raw', async event => {
if (!events.hasOwnProperty(event.t)) return;
const { d: data } = event;
const user = bot.users.get(data.user_id);
const channel = bot.channels.get(data.channel_id) || await user.createDM();
//if (channel.messages.has(data.message_id)) return;
const message = await channel.fetchMessage(data.message_id);
const member = message.guild.members.get(data.user_id);
const emojiKey = (data.emoji.id) ? `${data.emoji.name}:${data.emoji.id}` : data.emoji.name;
const reaction = message.reactions.get(emojiKey);
bot.emit(events[event.t], message, user, member, reaction);
});
bot.on('messageReactionAdd', (message, user, member, reaction) => {
if(member){
if(reaction.emoji.name === '😀' && message.id === '당신의 메시지 ID'){
message.guild.member(user.id).addRole('당신의 역할 ID');
console.log(`[Message Reaction Add] ${user.username}(ID:${user.id})`);
//console.log(message.id);
}
} else {
return;
}
});
bot.on('messageReactionRemove', (message, user, member, reaction) => {
if(member){
if(reaction.emoji.name === '😀' && message.id === '당신의 메시지 ID'){
message.guild.member(user.id).removeRole('당신의 역할 ID');
console.log(`[Message Reaction Remove] ${user.username}(ID:${user.id})`);
//console.log(message.id);
}
} else {
return;
}
});
bot.login('당신의 비밀키');