Discord的Bot库,
bot.on('messageCreate', msg => {
// do some stuff
bot.removeListener('messageCreate', msg);
});
我经常遇到的错误是listener must be a function
。
收到消息时会触发messageCreate,msg是对消息类的引用,其中包含消息id,author等。
我想要得到的是机器人等待用户的特定回复,例如是或否。
答案 0 :(得分:4)
如果bot
是节点EventEmitter
,则可以使用once
方法而不是on
,以便在调用侦听器后自动删除侦听器一次。
bot.once('messageCreate', msg => {
// do some stuff
// you don't need to remove the listener by yourself!
});
要直截了当地回答你的问题,removeListener
的第二个参数必须是你传递给on
的监听器函数。
var listener = msg => {
// do some stuff
bot.removeListener('messageCreate', listener);
};
bot.on('messageCreate', listener);
答案 1 :(得分:0)
在 discord V12 中,如果您使用其他类型的命令处理程序,例如 ready
commando
事件中像这样删除监听器
bot.once("ready", () => {
bot.removeListener("message", client._events.message[0]);
}