Estoy tratando de averiguar quién ha eliminado / emitido un rol de los registros, pero no sale, lo intenté de diferentes maneras, pero no funcionó, por favor, ayuda.
module.exports = { name: 'guildMemberUpdate', once: false, async execute(oldMember, newMember) { try { const fetchedLogs = await newMember.guild.fetchAuditLogs({ limit: 1, type: 'MEMBER_UPDATE', }); const memberLog = fetchedLogs.entries.first(); if (!memberLog) return console.log(`${newMember.displayName} sam`); const { executor, target } = memberLog; if (oldMember.roles.cache.size < newMember.roles.cache.size) { const role = newMember.roles.cache.difference(oldMember.roles.cache).first(); if (entry.target.id === newMember.user.id) { console.log(`${new Date().toLocaleString('ru-RU', { timeZone: 'Europe/Moscow', hour12: false })} Роль: ${role.name} выдал - ${executor.tag} пользователю - ${newMember.displayName} - <@${newMember.user.id}>`) } if (oldMember.roles.cache.size > newMember.roles.cache.size) { const role = newMember.roles.cache.difference(oldMember.roles.cache).first(); if (entry.target.id === newMember.user.id) { console.log(`${new Date().toLocaleString('ru-RU', { timeZone: 'Europe/Moscow', hour12: false })} Роль: ${role.name} снял - ${executor.tag} пользователю - ${newMember.displayName} - <@${newMember.user.id}>`) } } } } catch (err) { return console.log(`Error: ${err.stack}`) } } };GuildAuditLogsEntry.executor es una instancia User . Para obtener la versión de GuildMember con apodo, funciones, etc., puede buscar al usuario en el gremio de GuildMember . Así es como puedes hacerlo:
newMember.guild.members.resolve(executor)Tenga en cuenta que esto depende del caché. Obtener también es una opción (¡es una promesa!):
await newMember.guild.members.fetch(executor.id)