首页 > 解决方案 > 有什么方法可以让我将角色赋予我正在做的日志系统?

问题描述

我想为我的角色扮演服务器创建一个角色日志系统,但我需要让机器人获得谁将角色赋予该人的名称。

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

标签: javascriptnode.jsdiscorddiscord.js

解决方案


为此,您将需要使用审核日志,因为它不包含在事件提供的参数中。使用审计日志可能有点困难,但文档中有一些很好的资源,比如这个可以帮助您入门:https ://discordjs.guide/popular-topics/audit-logs.html


推荐阅读