我正在为我的机器人制作一个赌博系统。我使用discord.js尝试使反应收集器选择他们想要玩的游戏。知道为什么创建反应收集器不是函数,所以也许就是我。
代码如下:
run(message) {
const embed = new RichEmbed()
.setColor(1)
.setTitle(`Welcome to the gambling center! Please select a game to play!`)
.addBlankField(true)
.addField(`:one:`, `Gamble away to win double or nothin!`)
.addBlankField(true)
.addField(`:two:`, `Gamble like the lottery to have a chance to win big!`)
.addBlankField(true)
let m = message.channel.send({embed}).then((m)=>{
m.react('\u0031\u20E3')
m.react('\u0032\u20E3')
}).then(()=>{
const collector = message.createReactionCollector((reaction, user) =>
user.id === message.author.id &&
reaction.emoji.name === "\u0031\u20E3" ||
reaction.emoji.name === "\u0032\u20E3"
).once("collect", reaction => {
const chosen = reaction.emoji.name;
if(chosen === "\u0031\u20E3"){
message.channel.send(`Double or Nothin!`)
}else{(chosen === "\u0032\u20E3")
message.channel.send(`Lottery!`)}
collector.stop()});
})
}
这是弹出的完整错误:
(node:5948) UnhandledPromiseRejectionWarning: TypeError: message.createReactionCollector is not a function
at message.channel.send.then.then (C:\Users\patri\Documents\Super Dev\commands\Economy\Gamble.js:36:39)
at <anonymous>
at process._tickCallback (internal/process/next_tick.js:160:7)
(node:5948) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 1)
(node:5948) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
任何帮助将不胜感激! (对不起,有点麻烦。)
答案 0 :(得分:0)
似乎您正在发送一条消息,但是使用了另一个消息对象。尝试使变量成为反应收集器