You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Discord.js开发疑问:是否必须保留重复的client.on('message')事件绑定?

Discord.js重复消息监听器的优化方案

嘿,完全没必要保留这些重复的client.on('message', message => {})语句哦!

每次调用client.on('message')都会给消息事件新增一个独立的监听器,虽然当下可能能正常运行,但这种写法不仅冗余,还会降低代码的可维护性——要是以后加更多命令,难道要写一堆重复的监听器吗?

正确的做法是把所有命令逻辑整合到同一个消息事件监听器里,用条件判断来区分不同命令,代码会更整洁高效。给你优化后的版本:

client.on('message', message => {
  // 处理ping命令
  if (message.content.startsWith(prefix + "ping")) {
    message.channel.send('Pong! <:Pingsock:433019097005948938>');
  }
  // 处理avatar命令
  else if (message.content.startsWith(prefix + "avatar")) {
    message.reply(message.author.avatarURL());
    // 小提醒:这里要加()调用方法,不然会返回函数本身而非头像链接~
  }
});

另外补充个小知识点:如果你的Discord.js是v13及以上版本,message事件已经被废弃了,要改用messageCreate事件,不然可能会出现兼容性问题哦!

内容的提问来源于stack exchange,提问作者Modular

火山引擎 最新活动