Discord.js报错Cannot read property 'setActivity' of undefined问题排查
问题修复方案
问题根源
- 参数传递顺序不匹配:事件处理器中通过
event.bind(null, Discord, client)绑定回调参数,事件触发时会按Discord、client、事件原生参数的顺序传递参数,但你编写的ready事件处理函数将第一个参数设置为client,导致实际拿到的是Discord对象,真正的client参数未被接收处于undefined状态,调用client.user.setActivity自然会抛出未定义错误。
修复方法
第一步:调整ready事件参数顺序
直接修改ready事件代码的参数位即可,修改后完整代码如下:
module.exports = (Discord, client) => { console.log('Natsuki is online!'); client.user.setActivity("A game with That Penguin Guy || Type 'n! help'"); }
可选适配高版本Discord.js
如果你使用的是v14及以上版本的Discord.js,设置活动时可以补充指定活动类型避免警告,示例代码如下:
const { ActivityType } = require('discord.js'); module.exports = (Discord, client) => { console.log('Natsuki is online!'); client.user.setActivity("A game with That Penguin Guy || Type 'n! help'", { type: ActivityType.Playing }); }
内容的提问来源于stack exchange,提问作者Pepega Pingu
相关产品推荐
相关产品推荐

