【发布时间】:2021-03-07 11:44:53
【问题描述】:
我试图做到这一点,因此当您选择特定反应时,它会向频道发送有关您反应的消息。添加了反应,但是当我做出反应时,它返回一个错误,指出该表情符号未定义。当我在控制台登录时,collected.first() 返回为未定义。
message.awaitReactions((reaction, user) => user.id == message.author.id && (reaction.emoji.name == '1️⃣' || reaction.emoji.name == '2️⃣' || reaction.emoji.name == '3️⃣' || reaction.emoji.name == '4️⃣' || reaction.emoji.name == '5️⃣'),
{ max: 1, time: 10000 }).then(collected => {
console.log(collected.first())
if (collected.first().emoji.name == '1️⃣') {
const channel = client.channels.cache.get(`764829720729747486`);
message.channel.send(`Successfully bought ${one}`)
channel.send(`<@${user.id}> Bought ${one}`).then(message => {
message.react('✅').then(r => {
message.react('❎');
});
message.awaitReactions((reaction, user) => user.id === '610294687701532691' && (reaction.emoji.name === '✅' || reaction.emoji.name === '❎'),
{ max: 1, time: 86400000 }).then(collected => {
if (collected.first().emoji.name === '✅') {
user.send('Order Accepted')
} else if (collected.first().emoji.name === '❎') {
user.send('Order Declined')
}
})
})
} else if (collected.first().emoji.name == '2️⃣') {
const channel = client.channels.cache.get(`764829720729747486`);
message.channel.send(`Successfully bought ${tow}`)
channel.send(`<@${user.id}> Bought ${tow}`).then(message => {
message.react('✅').then(r => {
message.react('❎');
});
message.awaitReactions((reaction, user) => user.id === '610294687701532691' && (reaction.emoji.name === '✅' || reaction.emoji.name === '❎'),
{ max: 1, time: 86400000 }).then(collected => {
if (collected.first().emoji.name === '✅') {
user.send('Order Accepted')
} else if (collected.first().emoji.name === '❎') {
user.send('Order Declined')
}
})
})
} else if (collected.first().emoji.name == '3️⃣') {
const channel = client.channels.cache.get(`764829720729747486`);
message.channel.send(`Successfully bought ${tho}`)
channel.send(`<@${user.id}> Bought ${tho}`).then(message => {
message.react('✅').then(r => {
message.react('❎');
});
message.awaitReactions((reaction, user) => user.id === '610294687701532691' && (reaction.emoji.name === '✅' || reaction.emoji.name === '❎'),
{ max: 1, time: 86400000 }).then(collected => {
if (collected.first().emoji.name === '✅') {
user.send('Order Accepted')
} else if (collected.first().emoji.name === '❎') {
user.send('Order Declined')
}
})
})
} else if (collected.first().emoji.name == '4️⃣') {
const channel = client.channels.cache.get(`764829720729747486`);
message.channel.send(`Successfully bought ${fo}`)
channel.send(`<@${user.id}> Bought ${fo}`).then(message => {
message.react('✅').then(r => {
message.react('❎');
});
message.awaitReactions((reaction, user) => user.id === '610294687701532691' && (reaction.emoji.name === '✅' || reaction.emoji.name === '❎'),
{ max: 1, time: 86400000 }).then(collected => {
if (collected.first().emoji.name === '✅') {
user.send('Order Accepted')
} else if (collected.first().emoji.name === '❎') {
user.send('Order Declined')
}
})
})
} else if (collected.first().emoji.name == '5️⃣') {
const channel = client.channels.cache.get(`764829720729747486`);
message.channel.send(`Successfully bought ${fif}`)
channel.send(`<@${user.id}> Bought ${fif}`).then(message => {
message.react('✅').then(r => {
message.react('❎');
});
message.awaitReactions((reaction, user) => user.id === '610294687701532691' && (reaction.emoji.name === '✅' || reaction.emoji.name === '❎'),
{ max: 1, time: 86400000 }).then(collected => {
if (collected.first().emoji.name === '✅') {
user.send('Order Accepted')
} else if (collected.first().emoji.name === '❎') {
user.send('Order Declined')
}
})
})
}
}).catch(err => {
message.reply(' Error')
console.log(err)
})
【问题讨论】:
-
尝试
collected[0],而不是数组从0开始计数——如果这不起作用,请尝试定义一个新的常量const first = collected.shift() -
我都试过了,它们都返回相同的错误 |它还说collected.shift() 不是函数
-
@JonathanStevens
collected是Collection,而不是数组。
标签: javascript discord discord.js