Javascript Discord js赠品命令

Javascript Discord js赠品命令,javascript,discord,discord.js,bots,Javascript,Discord,Discord.js,Bots,我目前正在尝试使用Discord.js命令,第一个做出反应的人将赢得奖品。我现在遇到了两个问题。首先,机器人将拾取通过命令输入的最后一个奖品,而不是当前的奖品。其次,在bot重新启动之前发送的赠品在bot重新启动之后将不起作用 代码如下: const-DropModel=require('../modules/DropModel'); const{MessageEmbed,ReactionCollector}=require(“discord.js”) const{COLOR,MONGO}=re

我目前正在尝试使用Discord.js命令,第一个做出反应的人将赢得奖品。我现在遇到了两个问题。首先,机器人将拾取通过命令输入的最后一个奖品,而不是当前的奖品。其次,在bot重新启动之前发送的赠品在bot重新启动之后将不起作用

代码如下:

const-DropModel=require('../modules/DropModel');
const{MessageEmbed,ReactionCollector}=require(“discord.js”)
const{COLOR,MONGO}=require(“../util/BotUtil”);
module.exports={
名称:“下降”,
描述:“第一个做出反应的人赢得赠品!”,
异步执行(消息、参数){
让奖品=args.slice(0).join(“”).toString()
如果(!奖品)返回message.channel.send(“您没有提供奖品”);
const newDrop=新DropModel({
guildId:message.guild.id,
奖品:奖品,
channelId:message.channel.id,
createdBy:message.author,
创建的时间:新日期(),
});
newDrop.save();
let Drops=wait DropModel.findOne({guildId:message.guild.id,channelId:message.channel.id});
如果(!下降)返回;
const{prize,createdBy}=Drops;
const DropEmbed=new MessageEmbed()
.setTitle(`${prize}`)

.setDescription(`First to React with您可以将赠品结束时间戳保存在JSON文件或任何数据库中,然后在完成后将其删除。

第二个问题是正常的。您希望托管您的bot,否则,正如Elitezen所述,一旦您的bot关闭,任何信息都将丢失。如果您想解决第二个问题,则需要解决第二个问题sue,无论何时创建赠品,您都需要将赠品的数据保存在数据库或JSON文件中,并且当bot启动时(在您的
客户端上(“就绪”)
处理程序中),您应该检查数据库/文件,查看是否有赠品当前正在运行。如果有赠品应该正在运行(这意味着它们仍然保存在数据库/文件中),您需要为每一个重新创建反应收集器。一旦赠品结束,您需要将其从数据库/文件中删除。