javascript - 有什么方法可以让我将角色赋予我正在做的日志系统?
问题描述
我想为我的角色扮演服务器创建一个角色日志系统,但我需要让机器人获得谁将角色赋予该人的名称。
client.on("guildMemberUpdate", (oldMember, newMember) => {
// Old roles Collection is higher in size than the new one. A role has been removed.
if (oldMember.roles.cache.size > newMember.roles.cache.size) {
// Creating an embed message.
const Embed = new Discord.MessageEmbed();
Embed.setColor("RED");
Embed.setAuthor(newMember.user.tag, newMember.user.avatarURL());
// Looping through the role and checking which role was removed.
oldMember.roles.cache.forEach(role => {
if (!newMember.roles.cache.has(role.id)) {
Embed.addField("Role Removed", role);
}
});
client.channels.cache.get("872558074290896908").send(Embed);
} else if (oldMember.roles.cache.size < newMember.roles.cache.size) {
const Embed = new Discord.MessageEmbed();
Embed.setColor("GREEN");
Embed.setAuthor(newMember.user.tag, newMember.user.avatarURL());
// Looping through the role and checking which role was added.
newMember.roles.cache.forEach(role => {
if (!oldMember.roles.cache.has(role.id)) {
Embed.addField("Role Added", role);
}
});
client.channels.cache.get("872558074290896908").send(Embed);
}
});
解决方案
为此,您将需要使用审核日志,因为它不包含在事件提供的参数中。使用审计日志可能有点困难,但文档中有一些很好的资源,比如这个可以帮助您入门:https ://discordjs.guide/popular-topics/audit-logs.html
推荐阅读
- ios - 从 Document 目录加载多个图像时 UICollectionView 卡住
- hadoop - 关于在 hive 表的 csv 表中填充数据
- python-2.7 - Perl 到 Python 脚本散列
- python-3.x - 如何在python中并排比较两个Pdf文件
- c# - 如何获取带有文件完整路径的字符串以复制文件
- javascript - 使用没有 PassportJS 的 ExpressJS 和 Angular 进行身份验证
- git - git log --pretty=format 末尾的百分比符号
- push-notification - 打开 PWA 时收到推送事件时不显示通知
- android - Android ScrollVIew 截图尺寸太小
- linux - 当我使用 openssl EVP_OpenInit() api 函数输入的文本大小小于 16 字节时,为什么我没有得到解密数据?