gpt4 book ai didi

javascript - 我将如何使用 .addField 遍历数组

转载 作者:行者123 更新时间:2023-11-30 06:17:36 27 4
gpt4 key购买 nike

我目前正在尝试制作一个会倒计时到特定日期的 discord 机器人。现在我将参数传递到 .json 文件的文件夹中,其中仅存储事件名称和发布日期/事件日期。

bot.on('ready', () => {
var sendChannel = bot.channels.find(channel => channel.id === '553846848578912257')
setInterval(() =>{

fs.readdir(folder, (err, files) => {
files.forEach(file => {
});
for(i = 0; i < files.length; i++){
var input = require(folder+files[i]);

if(((new Date(input.releasedate) - currentdate) / days) > 0)
{
var embed = new Discord.RichEmbed()
.addField(input.eventName, Math.ceil((new Date(input.releasedate) - currentdate) / days) + ' days until ')
//sendChannel.send(Math.ceil((new Date(input.releasedate) - currentdate) / days) + ' days until ' + input.eventName);
}

else
{
console.log("arg not passed, invalid or past: "+input.eventName)
}
}
sendChannel.send(embed);
});
}, 10000);

console.log("Ready")
console.log(`Logged in as ${bot.user.tag} (${bot.user.id}) on ${bot.guilds.size} servers`);
bot.user.setActivity(`Counting things down | ${bot.guilds.size} servers`);
});

现在它可以与 sendChannel.send 命令一起使用,并且它会发送文件夹中的许多文件,但一次一个。我试图将它们全部放入嵌入式消息中。问题是 .addField 只会存储“输入”中的最后一个元素。有没有办法让我的程序在每次通过后附加 .addField 而不是重写?

最佳答案

addField 存储最后一个输入,因为您在每个循环中都创建了一个新的 Discord.RichEmbed(),它会创建一个新实例并重写前一个实例。

您应该在循环之前初始化嵌入消息,然后在每个循环中添加字段,如下所示:

bot.on('ready', () => {
var sendChannel = bot.channels.find(channel => channel.id === '553846848578912257')
setInterval(() =>{

fs.readdir(folder, (err, files) => {
// initialize the embed message here
var embed = new Discord.RichEmbed();

files.forEach(file => {
});
for(i = 0; i < files.length; i++){
var input = require(folder+files[i]);

if(((new Date(input.releasedate) - currentdate) / days) > 0)
{
embed.addField(input.eventName, Math.ceil((new Date(input.releasedate) - currentdate) / days) + ' days until ');
}

else
{
console.log("arg not passed, invalid or past: "+input.eventName)
}
}
sendChannel.send(embed);
});
}, 10000);

console.log("Ready")
console.log(`Logged in as ${bot.user.tag} (${bot.user.id}) on ${bot.guilds.size} servers`);
bot.user.setActivity(`Counting things down | ${bot.guilds.size} servers`);
});

关于javascript - 我将如何使用 .addField 遍历数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55176500/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com