簡體   English   中英

有沒有辦法檢查何時添加了某人的角色? [Discord.js]

[英]Is there a way to check when someone's role was added? [Discord.js]

我正在嘗試獲得某人獲得角色的日期,但我不確定如何去做以及是否真的有任何方法。 我一直在尋找這個真的很長一段時間。 我希望得到一些幫助。

 const Discord = require('discord.js'); let Bot = new Discord.Client(); async function GetDate(userid) { if (!userid) return message.reply('') } Bot.on("message", async(message) => { let messageArray = message.content.split(" "); let cmd = messageArray[0]; let args = messageArray.slice(1); if(cmd === `!GetDate`) { let User = args[0] message.reply(`${User} is a member since 2020-02-17`) } });

一世

您可以監聽事件guildMemberUpdate ,然后獲取類型為memberRoleUpdate的審計日志並獲取完整的審計日志。

bot.on('guildMemberUpdate', (oldMember, newMember) => {
    if(oldMember.roles.size < newmember.roles.size) {
        const fetchedLogs = await oldMember.guild.fetchAuditLogs({
        limit: 1,
        type: 'MEMBER_ROLE_UPDATE',
    });
    
        const roleAddLog = fetchedLogs.entries.first();
        if (!roleAddLog ) return;
        const { executor, target, extra } = roleAddLog;
        console.log(`Role ${extra.name} added to ${<@target.id>} by ${<@executor.id>}`)
    }
});

V2

哦,所以你可以通過 ID 獲取角色並獲取角色createdAdd

client.on('message', message => {
    let targetRole = message.guild.roles.get('PLACEROLEID')
    if(targetRole) console.log(targetRole.createdAt)
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM