我最近將我的機器人更新到 v13,但所有使用 awaitMessages 的命令都不再起作用。這是我的代碼:
if (hasPermission == true) {
let firstEmbed = new Discord.MessageEmbed()
.setTitle("Passaggio 1 (Grado di completamento: 0%)")
.setColor("#b50000")
.setDescription(
"*Primo passaggio*, manda la **descrizione** del server con cui stai facendo partnership."
)
.setFooter("Tempo: 5 minuti");
message.channel.send({embeds: [firstEmbed]}).then(() => {
message.channel.awaitMessages((m) => m.author.id == message.author.id, {
max: 1,
time: 300000,
errors: ['time']
})
.then((description) => {
console.log("test 3")
if (description.first().content.length > 1999) {
return message.channel.send(
"Errore! La descrizione è troppo lunga!"
);
}
let descriptionToClean = description.first().content;
let cleanDesc = cleanDescription(descriptionToClean);
let secondEmbed = new Discord.MessageEmbed()
.setTitle("Passaggio 2 (Grado di completamento: 33%)")
.setColor("#d4750f")
.setDescription(
"*Secondo passaggio*, manda qui sotto l'ID del **gestore dell'altro server**, con cui stai facendo partner.\nTieni presente che il gestore deve essere in tutti i server della catena di cui fai parte.\nSe non vuoi mandare l'ID o non funziona il bot, scrivi `skip`."
)
.setFooter("Tempo: 5 minuti");
message.channel.send({embeds: [secondEmbed]}).then(() => {
message.channel
.awaitMessages((m) => m.author.id == message.author.id, {
max: 1,
time: 300000,
})
.then((partnerManager) => {
let gestore;
let skip = false;
if(partnerManager.first().content.toLowerCase() == "skip") skip = true;
if(partnerManager.first().content) gestore = partnerManager.first().content;
let isIn = CheckIfManagerIsInServer(
client,
message.guild.id,
gestore
);
(請注意,這不是完整的代碼,而且我確信不會僅在第一個 awaitMessages 之后運行)我認為問題在于:awaitMessages 不收集任何資料。

之后message.channel.awaitMessages(),代碼不會運行。
uj5u.com熱心網友回復:
awaitMessages 不接受多個引數。
摘自 API 檔案
.awaitMessages([選項])
// Await !vote messages
const filter = m => m.content.startsWith('!vote');
// Errors: ['time'] treats ending because of the time limit as an error
channel.awaitMessages({ filter, max: 4, time: 60_000, errors: ['time'] })
.then(collected => console.log(collected.size))
.catch(collected => console.log(`After a minute, only ${collected.size} out of 4 voted.`));
你的第一個引數應該是物件的filter屬性AwaitMessagesOptions
message.channel.awaitMessages({
filter: (m) => m.author.id === message.author.id,
max: 1,
time: 300000,
errors: ['time']
})
.then(...);
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/388218.html
