Javascript Discord.js-如何记录角色更改?
我正在Discord.jsv12.2.0上的Discord bot上设置服务器日志,目前我正在尝试设置角色日志。我在互联网上搜索了一下,我只能在旧版本的Discord.js上找到解决方案,而旧版本的Discord.js显然不适用于v12.2.0。我已经设置了guildMemberUpdate事件来记录昵称更改,但我不知道如何为角色执行此操作。这可能非常简单,但我不确定我会怎么做 以下是我目前的代码:Javascript Discord.js-如何记录角色更改?,javascript,discord.js,Javascript,Discord.js,我正在Discord.jsv12.2.0上的Discord bot上设置服务器日志,目前我正在尝试设置角色日志。我在互联网上搜索了一下,我只能在旧版本的Discord.js上找到解决方案,而旧版本的Discord.js显然不适用于v12.2.0。我已经设置了guildMemberUpdate事件来记录昵称更改,但我不知道如何为角色执行此操作。这可能非常简单,但我不确定我会怎么做 以下是我目前的代码: client.on('guildMemberUpdate', (oldMember, newMe
client.on('guildMemberUpdate', (oldMember, newMember) => {
if (!oldMember.nickname && newMember.nickname) {
const membernewnicklog = new Discord.MessageEmbed()
.setAuthor(`${newMember.user.tag}`, `${newMember.user.displayAvatarURL({ format: "png", dynamic: true })}`)
.setDescription(`**${newMember} nickname added**`)
.setFooter(`${newMember.user.username}'s ID: ${newMember.id}`)
.setTimestamp()
.setColor('#ffff00')
.addField("New nickname", newMember.nickname)
client.channels.cache.get('736996028787589201').send(membernewnicklog);
return;
}
if (oldMember.nickname && !newMember.nickname) {
const memberremovenicklog = new Discord.MessageEmbed()
.setAuthor(`${oldMember.user.tag}`, `${oldMember.user.displayAvatarURL({ format: "png", dynamic: true })}`)
.setDescription(`**${oldMember} nickname removed**`)
.setFooter(`${oldMember.user.username}'s ID: ${oldMember.id}`)
.setTimestamp()
.setColor('#f04747')
.addField("Old nickname", oldMember.nickname)
client.channels.cache.get('736996028787589201').send(memberremovenicklog);
return;
}
if (oldMember.nickname && newMember.nickname) {
const memberchangednicklog = new Discord.MessageEmbed()
.setAuthor(`${newMember.user.tag}`, `${newMember.user.displayAvatarURL({ format: "png", dynamic: true })}`)
.setDescription(`**${newMember} nickname changed**`)
.setFooter(`${newMember.user.username}'s ID: ${newMember.id}`)
.setTimestamp()
.setColor('#ff4500')
.addField("Before", oldMember.nickname)
.addField("After", newMember.nickname);
client.channels.cache.get('736996028787589201').send(memberchangednicklog);
return;
}
});
这就是我要说的:(另一个机器人的例子)
任何帮助都将不胜感激。谢谢 client.on(“guildMemberUpdate”,(旧会员、新会员)=>{
//旧角色集合的大小大于新角色集合的大小。已删除角色。
if(oldMember.roles.cache.size>newMember.roles.cache.size){
//创建嵌入消息。
const Embed=new discord.MessageEmbed();
嵌入。设置颜色(“红色”);
Embed.setAuthor(newMember.user.tag,newMember.user.avatarURL());
//循环遍历角色并检查删除了哪个角色。
oldMember.roles.cache.forEach(角色=>{
如果(!newMember.roles.cache.has(role.id)){
Embed.addField(“角色已删除”,角色);
}
});
client.channels.cache.get(“ChannelID”).send(嵌入);
}else if(oldMember.roles.cache.size{
如果(!oldMember.roles.cache.has(role.id)){
Embed.addField(“角色添加”,角色);
}
});
client.channels.cache.get(“ChannelID”).send(嵌入);
}
});
我是帮助您解决原始问题的人,您的代码没有多大意义。无论它在哪里说(oldMember.昵称&&newMember.昵称)
都应该说if(oldMember.昵称!==newMember.昵称)
。非常感谢:)