【发布时间】:2021-12-13 10:17:22
【问题描述】:
我一直在研究快速数学命令,它的工作原理是这样的:我执行它,它在聊天中发送一个问题,发送正确答案的人获胜。
但是如你所见,它没有看到我的 46 消息,忽略它,并在 30 秒后发送“无人接听!”
我的代码是:
const { MessageEmbed } = require('discord.js');
const Discord = require("discord.js")
module.exports = {
name: "game",
description: "smth",
aliases: ["gamestart", "startgame"],
permissions: ["MANAGE_MESSAGES"],
timeout: 10000,
execute: async (client, message, args) => {
var a = Math.floor(Math.random() * 50) + 1
var b = Math.floor(Math.random() * 50) + 1
var ab = await a + b
console.log(ab)
let embed = new MessageEmbed()
.setTitle(":chart_with_downwards_trend: Quick Math")
.setDescription(`Solve the problem below and get XP.\n\n\`${a}\` + \`${b}\` = **???**`)
.setFooter("123")
const msg = await message.channel.send(embed)
try {
let filter = (m) => {
if (m.author.bot) return;
if (m.channel.id == msg.channel.id && m.content === ab) return true;
else {
return false;
}
};
let res = await msg.channel.awaitMessages(filter, {
time: 30000,
errors: ["time"],
});
if (res) {
let embed = new MessageEmbed()
.setTitle(":chart_with_downwards_trend: Quick Math")
.setDescription(`The correct answer was \`${ab}\`\n\nThe winner is **you**!`)
.setFooter("123")
msg.channel.send(embed)
}
} catch (err) {
console.log(err)
msg.channel.send(
"No one answered!"
);
}
}
}
控制台没有报错,看起来像这样:
46
这真的很奇怪,我请求你的帮助。提前致谢。
更新:(将 === 更改为 == 之后)
控制台日志:
49
Collection [Map] {
'903319414777188413' => ExtendedMessage {
channel: ExtendedTextChannel {
type: 'text',
deleted: false,
id: '859482526364336160',
name: 'rice-bot-testing',
rawPosition: 37,
parentID: '836281677994786846',
permissionOverwrites: [Collection [Map]],
topic: null,
nsfw: false,
lastMessageID: '903319414777188413',
rateLimitPerUser: 5,
lastPinTimestamp: 1624987887000,
guild: [Guild],
messages: [MessageManager],
_typing: Map {}
},
deleted: false,
id: '903319414777188413',
type: 'DEFAULT',
system: false,
content: '49',
author: User {
id: '713008151661772812',
system: null,
locale: null,
flags: [UserFlags],
username: '8less',
bot: false,
discriminator: '8719',
avatar: 'fb2c5843579f14c38b542349cfa5a256',
lastMessageID: '903319414777188413',
lastMessageChannelID: '859482526364336160'
},
pinned: false,
tts: false,
nonce: '903319413787197440',
embeds: [],
attachments: Collection [Map] {},
createdTimestamp: 1635438531346,
editedTimestamp: 0,
reactions: ReactionManager {
cacheType: [class Collection extends Collection],
cache: Collection [Map] {},
message: [Circular]
},
mentions: MessageMentions {
everyone: false,
users: Collection [Map] {},
roles: Collection [Map] {},
_members: Collection [Map] {},
_channels: Collection [Map] {},
crosspostedChannels: Collection [Map] {}
},
webhookID: null,
application: null,
activity: null,
_edits: [],
flags: MessageFlags { bitfield: 0 },
reference: null,
components: []
}
}
确保在 30000 毫秒后记录 Collection [Map] {} 部分。
【问题讨论】:
-
Sample code(和数据)应该最小、完整和有代表性。
标签: javascript node.js discord discord.js bots