Discord.js - 记录通道删除给出错误“UnhandledPromiseRejectionWarning:TypeError:无法读取未定义的属性'名称'”

Posted

技术标签:

【中文标题】Discord.js - 记录通道删除给出错误“UnhandledPromiseRejectionWarning:TypeError:无法读取未定义的属性\'名称\'”【英文标题】:Discord.js - Logging channel deletes gives error "UnhandledPromiseRejectionWarning: TypeError: Cannot read property 'name' of undefined"Discord.js - 记录通道删除给出错误“UnhandledPromiseRejectionWarning:TypeError:无法读取未定义的属性'名称'” 【发布时间】:2020-03-30 22:09:45 【问题描述】:

当人们使用审核日志创建和删除频道时,我正在尝试制作我的 discord.js 机器人日志。我有创建日志记录,但删除部分给了我一个错误:“UnhandledPromiseRejectionWarning:TypeError:无法读取未定义的属性'名称'”。我不知道为什么它不起作用。

我的频道删除记录代码:

bot.on("channelDelete", async() => 
    var channeldeleteauditlogs = await bot.guilds.find(g => g.id === '621810400924794890').fetchAuditLogs(
        type: 11
    );

    let entry = channeldeleteauditlogs.entries.first();
    var channeldeletelog = fs.readFileSync('channeldeletelog.txt', 'utf-8');
    var channeldeletelog2 = fs.writeFileSync('channeldeletelog.txt', '\nTime - ' + entry.createdAt.toUTCString() + ' | Channel - ' + entry.target.name + ' | User - ' + entry.executor.username + ' (' + entry.executor.id + ')' + channeldeletelog);

    console.log(entry.executor.username + " deleted a channel");
);

我的(成功的)频道创建日志代码:

bot.on("channelCreate", async() => 
    let channelcreateauditlogs = await bot.guilds.find(g => g.id === '621810400924794890').fetchAuditLogs(
        type: 10
    );

    let entry = channelcreateauditlogs.entries.first();
    var channelcreatelog = fs.readFileSync('channelcreatelog.txt', 'utf-8');
    var channelcreatelog2 = fs.writeFileSync('channelcreatelog.txt', '\nTime - ' + entry.createdAt.toUTCString() + ' | Channel - ' + entry.target.name + ' (' + entry.target.id + ') | User - ' + entry.executor.username + ' (' + entry.executor.id + ')' + channelcreatelog);

    console.log(entry.executor.username + " created a channel");
);

谢谢。

【问题讨论】:

【参考方案1】:

您可以尝试使用channelDelete 事件附带的channel 参数。

bot.on("channelDelete", async (channel) => 
    console.log(channel.name)

【讨论】:

或直接访问您的审核日志,您还可以使用“条目”变量中的“更改”属性并使用entries.changes[0].old访问通道名称

以上是关于Discord.js - 记录通道删除给出错误“UnhandledPromiseRejectionWarning:TypeError:无法读取未定义的属性'名称'”的主要内容,如果未能解决你的问题,请参考以下文章

Discord bot 使用 discord.js 不播放 mp3 文件,没有给出错误

Discord.js:按 ID 获取消息给出错误的输出

Discord.js 错误:它正在删除整个数组。 Quick.db 和 discord.js

Discord js中的messageDelete问题

如何根据 OPCODE (discord.js) 分离捕获的错误

Discord.js 和 discord.js-commando 防止命令在特定通道中运行