Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/394.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 调用命令,将嵌入的字段乘以 你好_Javascript_Discord_Discord.js - Fatal编程技术网

Javascript 调用命令,将嵌入的字段乘以 你好

Javascript 调用命令,将嵌入的字段乘以 你好,javascript,discord,discord.js,Javascript,Discord,Discord.js,我编写了一个简单的MessageEmbed函数(使用Discord.JS),每次调用它时,都会在通道中发送新的嵌入 (例如:如果embed应该有2个字段,那么下次调用该命令时,它将有2*2个必填字段。如果再次调用,则为3*2、4*2,等等) 当我重新启动bot时,它会重置。我试图重置嵌入值,但它没有影响问题。 你能帮我吗 这是我的JS命令: module.exports={ 名称:“驱动器”, 执行(客户端、消息、参数、嵌入){ message.channel.send(嵌入) .setColo

我编写了一个简单的MessageEmbed函数(使用Discord.JS),每次调用它时,都会在通道中发送新的嵌入 (例如:如果embed应该有2个字段,那么下次调用该命令时,它将有2*2个必填字段。如果再次调用,则为3*2、4*2,等等)

当我重新启动bot时,它会重置。我试图重置嵌入值,但它没有影响问题。 你能帮我吗

这是我的JS命令:

module.exports={
名称:“驱动器”,
执行(客户端、消息、参数、嵌入){
message.channel.send(嵌入)
.setColor(“#0099ff”)
.setTitle('abcdedfg')
.setDescription('abcdedfg\n\u200B')
.set缩略图('abcdedfg')
addFields先生(
{name:'abcdedfg:',value:'link'},
{name:'abcdedfg:',value:'link\n\u200B'},
)
.setFooter('abcdedfg'))
.catch(控制台错误);
}
}
如果需要,这里是我的主要观点:

const fs=require('fs');
const{Client,Collection,MessageEmbed}=require('discord.js');
const{TOKEN,PREFIX}=require('./config/config');
const client=new client();
client.commands=新集合();
const commandFiles=fs.readdirSync('./commands').filter(file=>file.endsWith('.js'));
const embed=new MessageEmbed();
for(命令文件的常量文件){
const command=require(`./commands/${file}`);
client.commands.set(command.name,command);
} 
client.on('message',message=>{
如果(!message.content.startsWith(PREFIX)| | message.author.bot)返回;
const args=message.content.slice(PREFIX.length.split(+/);
const命令=args.shift().toLowerCase();
如果(!client.commands.has(command))返回;
client.commands.get(command).execute(客户端、消息、参数、嵌入);
});
client.login(令牌);

这很简单。不要添加字段。添加字段就是添加新字段,因此如果不需要,请不要添加新字段。否则,请先清除旧的,然后再添加新的

我的建议是,用这个

module.exports = {
    name: 'drive',
    execute(client, message, args, embed) {
        message.channel.send(embed
            .setColor('#0099ff')
            .setTitle('abcdedfg')
            .setDescription('abcdedfg \n\u200B')
            .setThumbnail('abcdedfg')
            .setFooter('abcdedfg'))
            .catch(console.error);
    }
}
试试这个,让我看看


只要第一个字段存在,就不必添加。

我找到了阻止每次将字段添加到字段数组的答案

因此,代码的答案是addinda
embed.fields=[]结尾处:

module.exports={
名称:“驱动器”,
执行(客户端、消息、参数、嵌入){
message.channel.send(嵌入)
.setColor(“#0099ff”)
.setTitle('abcdedfg')
.setDescription('abcdedfg\n\u200B')
.set缩略图('abcdedfg')
addFields先生(
{name:'abcdedfg:',value:'link'},
{name:'abcdedfg:',value:'link\n\u200B'},
)
.setFooter('abcdedfg'))
.catch(控制台错误);
embed.fields=[];
}
}

这很简单。不要添加字段。@mw509好的,我应该什么时候添加它们?我已经发布了一个答案。请让我试试know@mw509哦,是的,我明白我的问题了。。。这太愚蠢了。。。对不起,谢谢你,很好。这是常有的事,好吧,我每次都会把它弄清楚。我会把答案贴出来。谢谢