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




