如何发送 discord.js 随机嵌入?
How to send a discord.js random embed?
我正在寻找一种代码,可以让我发送我在有人键入命令时创建的随机嵌入。目前,使用我拥有的代码,所有嵌入都已发送,但我希望机器人只发送一个随机的嵌入,而不是全部 4 个。这可能吗?
module.exports = class PizzaTest extends BaseCommand {
constructor() {
super('pizzatest', 'fun', []);
}
async run(client, message, args) {
const capreseEmbed = new Discord.MessageEmbed()
.setTitle('• Attention, pizza en livraison! ')
.setDescription(`<@${message.author.id}>, il semblerait que ta commande soit prête. Tu viens de recevoir une magnique pizza **Caprese** ! \n\n *Les ingrédients sont: Mozarella, Olives, Tomates Séchées & Basilic.*`)
.setThumbnail('https://i.imgur.com/McSXASC.png')
.setFooter(message.author.username, message.author.displayAvatarURL())
.setTimestamp()
.setColor("#baff58");
const reineEmbed = new Discord.MessageEmbed()
.setTitle('• Attention, pizza en livraison! ')
.setDescription(`<@${message.author.id}>, il semblerait que ta commande soit prête. Tu viens de recevoir une magnique pizza **Reine** ! \n\n *Les ingrédients sont: Mozarella, Jambon, Champignons & Basilic.*`)
.setThumbnail('https://i.imgur.com/AKStODY.png')
.setFooter(message.author.username, message.author.displayAvatarURL())
.setTimestamp()
.setColor("#baff58");
const vegeEmbed = new Discord.MessageEmbed()
.setTitle('• Attention, pizza en livraison! ')
.setDescription(`<@${message.author.id}>, il semblerait que ta commande soit prête. Tu viens de recevoir une magnique pizza **Végétarienne** ! \n\n *Les ingrédients sont: Mozarella, Olives, Poivrons, Champignons & Basilic.*`)
.setThumbnail('https://i.imgur.com/U0qrSk9.png')
.setFooter(message.author.username, message.author.displayAvatarURL())
.setTimestamp()
.setColor("#baff58");
const andalouseEmbed = new Discord.MessageEmbed()
.setTitle('• Attention, pizza en livraison! ')
.setDescription(`<@${message.author.id}>, il semblerait que ta commande soit prête. Tu viens de recevoir une magnique pizza **Andalouse** ! \n\n *Les ingrédients sont: Mozarella, Poivrons, Boulette de Boeuf & Sauce Andalouse.*`)
.setThumbnail('https://i.imgur.com/dvgkC4K.png')
.setFooter(message.author.username, message.author.displayAvatarURL())
.setTimestamp()
.setColor("#baff58");
message.channel.send(capreseEmbed).catch(err => console.log(err));
message.channel.send(reineEmbed).catch(err => console.log(err));
message.channel.send(vegeEmbed).catch(err => console.log(err));
message.channel.send(andalouseEmbed).catch(err => console.log(err));
}
}
我知道我可以使用 .setDescription(description)
之类的东西,所有这些都在开头说明,但我需要描述和缩略图相匹配,所以我猜这是行不通的?
谢谢!
是的,这是可能的,而且非常简单:
const capreseEmbed = new Discord.MessageEmbed()
.setTitle('• Attention, pizza en livraison! ')
.setDescription(`<@${message.author.id}>, il semblerait que ta commande soit prête. Tu viens de recevoir une magnique pizza **Caprese** ! \n\n *Les ingrédients sont: Mozarella, Olives, Tomates Séchées & Basilic.*`)
.setThumbnail('https://i.imgur.com/McSXASC.png')
.setFooter(message.author.username, message.author.displayAvatarURL())
.setTimestamp()
.setColor("#baff58")
const reineEmbed = new Discord.MessageEmbed()
.setTitle('• Attention, pizza en livraison! ')
.setDescription(`<@${message.author.id}>, il semblerait que ta commande soit prête. Tu viens de recevoir une magnique pizza **Reine** ! \n\n *Les ingrédients sont: Mozarella, Jambon, Champignons & Basilic.*`)
.setThumbnail('https://i.imgur.com/AKStODY.png')
.setFooter(message.author.username, message.author.displayAvatarURL())
.setTimestamp()
.setColor("#baff58")
const vegeEmbed = new Discord.MessageEmbed()
.setTitle('• Attention, pizza en livraison! ')
.setDescription(`<@${message.author.id}>, il semblerait que ta commande soit prête. Tu viens de recevoir une magnique pizza **Végétarienne** ! \n\n *Les ingrédients sont: Mozarella, Olives, Poivrons, Champignons & Basilic.*`)
.setThumbnail('https://i.imgur.com/U0qrSk9.png')
.setFooter(message.author.username, message.author.displayAvatarURL())
.setTimestamp()
.setColor("#baff58")
const andalouseEmbed = new Discord.MessageEmbed()
.setTitle('• Attention, pizza en livraison! ')
.setDescription(`<@${message.author.id}>, il semblerait que ta commande soit prête. Tu viens de recevoir une magnique pizza **Andalouse** ! \n\n *Les ingrédients sont: Mozarella, Poivrons, Boulette de Boeuf & Sauce Andalouse.*`)
.setThumbnail('https://i.imgur.com/dvgkC4K.png')
.setFooter(message.author.username, message.author.displayAvatarURL())
.setTimestamp()
.setColor("#baff58")
var embedArr = [capreseEmbed, reineEmbed, vegeEmbed, andalouseEmbed];
let randomEmbed = embedArr[Math.floor(Math.random() * embedArr.length)];
message.channel.send(randomEmbed);
首先我们定义所有嵌入,就像您已经做的那样。然后我们将它们存储在一个数组中。从该数组中,我们希望从随机索引中获取一个值。这是在 randomEmbed
中完成的。然后我们将随机嵌入发送到频道中。
这是一个简单的方法:
const Thumbnail = [
'https://i.imgur.com/McSXASC.png',
'https://i.imgur.com/AKStODY.png',
'https://i.imgur.com/U0qrSk9.png',
'https://i.imgur.com/dvgkC4K.png',
]
const Description = [
', il semblerait que ta commande soit prête. Tu viens de recevoir une magnique pizza **Caprese** ! \n\n *Les ingrédients sont: Mozarella, Olives, Tomates Séchées & Basilic.*`',
', il semblerait que ta commande soit prête. Tu viens de recevoir une magnique pizza **Végétarienne** ! \n\n *Les ingrédients sont: Mozarella, Olives, Poivrons, Champignons & Basilic.*`',
', il semblerait que ta commande soit prête. Tu viens de recevoir une magnique pizza **Végétarienne** ! \n\n *Les ingrédients sont: Mozarella, Olives, Poivrons, Champignons & Basilic.*`',
', il semblerait que ta commande soit prête. Tu viens de recevoir une magnique pizza **Andalouse** ! \n\n *Les ingrédients sont: Mozarella, Poivrons, Boulette de Boeuf & Sauce Andalouse.*`',
]
let random = Math.floor(Math.random() * Thumbnail.length)
const embed = new Discord.MessageEmbed()
.setTitle('• Attention, pizza en livraison! ')
.setDescription( '`' + message.author.username + Description[random])
.setThumbnail(Thumbnail[random])
.setFooter(message.author.username, message.author.displayAvatarURL())
.setTimestamp()
.setColor("#baff58")
message.channel.send(embed)
我正在寻找一种代码,可以让我发送我在有人键入命令时创建的随机嵌入。目前,使用我拥有的代码,所有嵌入都已发送,但我希望机器人只发送一个随机的嵌入,而不是全部 4 个。这可能吗?
module.exports = class PizzaTest extends BaseCommand {
constructor() {
super('pizzatest', 'fun', []);
}
async run(client, message, args) {
const capreseEmbed = new Discord.MessageEmbed()
.setTitle('• Attention, pizza en livraison! ')
.setDescription(`<@${message.author.id}>, il semblerait que ta commande soit prête. Tu viens de recevoir une magnique pizza **Caprese** ! \n\n *Les ingrédients sont: Mozarella, Olives, Tomates Séchées & Basilic.*`)
.setThumbnail('https://i.imgur.com/McSXASC.png')
.setFooter(message.author.username, message.author.displayAvatarURL())
.setTimestamp()
.setColor("#baff58");
const reineEmbed = new Discord.MessageEmbed()
.setTitle('• Attention, pizza en livraison! ')
.setDescription(`<@${message.author.id}>, il semblerait que ta commande soit prête. Tu viens de recevoir une magnique pizza **Reine** ! \n\n *Les ingrédients sont: Mozarella, Jambon, Champignons & Basilic.*`)
.setThumbnail('https://i.imgur.com/AKStODY.png')
.setFooter(message.author.username, message.author.displayAvatarURL())
.setTimestamp()
.setColor("#baff58");
const vegeEmbed = new Discord.MessageEmbed()
.setTitle('• Attention, pizza en livraison! ')
.setDescription(`<@${message.author.id}>, il semblerait que ta commande soit prête. Tu viens de recevoir une magnique pizza **Végétarienne** ! \n\n *Les ingrédients sont: Mozarella, Olives, Poivrons, Champignons & Basilic.*`)
.setThumbnail('https://i.imgur.com/U0qrSk9.png')
.setFooter(message.author.username, message.author.displayAvatarURL())
.setTimestamp()
.setColor("#baff58");
const andalouseEmbed = new Discord.MessageEmbed()
.setTitle('• Attention, pizza en livraison! ')
.setDescription(`<@${message.author.id}>, il semblerait que ta commande soit prête. Tu viens de recevoir une magnique pizza **Andalouse** ! \n\n *Les ingrédients sont: Mozarella, Poivrons, Boulette de Boeuf & Sauce Andalouse.*`)
.setThumbnail('https://i.imgur.com/dvgkC4K.png')
.setFooter(message.author.username, message.author.displayAvatarURL())
.setTimestamp()
.setColor("#baff58");
message.channel.send(capreseEmbed).catch(err => console.log(err));
message.channel.send(reineEmbed).catch(err => console.log(err));
message.channel.send(vegeEmbed).catch(err => console.log(err));
message.channel.send(andalouseEmbed).catch(err => console.log(err));
}
}
我知道我可以使用 .setDescription(description)
之类的东西,所有这些都在开头说明,但我需要描述和缩略图相匹配,所以我猜这是行不通的?
谢谢!
是的,这是可能的,而且非常简单:
const capreseEmbed = new Discord.MessageEmbed()
.setTitle('• Attention, pizza en livraison! ')
.setDescription(`<@${message.author.id}>, il semblerait que ta commande soit prête. Tu viens de recevoir une magnique pizza **Caprese** ! \n\n *Les ingrédients sont: Mozarella, Olives, Tomates Séchées & Basilic.*`)
.setThumbnail('https://i.imgur.com/McSXASC.png')
.setFooter(message.author.username, message.author.displayAvatarURL())
.setTimestamp()
.setColor("#baff58")
const reineEmbed = new Discord.MessageEmbed()
.setTitle('• Attention, pizza en livraison! ')
.setDescription(`<@${message.author.id}>, il semblerait que ta commande soit prête. Tu viens de recevoir une magnique pizza **Reine** ! \n\n *Les ingrédients sont: Mozarella, Jambon, Champignons & Basilic.*`)
.setThumbnail('https://i.imgur.com/AKStODY.png')
.setFooter(message.author.username, message.author.displayAvatarURL())
.setTimestamp()
.setColor("#baff58")
const vegeEmbed = new Discord.MessageEmbed()
.setTitle('• Attention, pizza en livraison! ')
.setDescription(`<@${message.author.id}>, il semblerait que ta commande soit prête. Tu viens de recevoir une magnique pizza **Végétarienne** ! \n\n *Les ingrédients sont: Mozarella, Olives, Poivrons, Champignons & Basilic.*`)
.setThumbnail('https://i.imgur.com/U0qrSk9.png')
.setFooter(message.author.username, message.author.displayAvatarURL())
.setTimestamp()
.setColor("#baff58")
const andalouseEmbed = new Discord.MessageEmbed()
.setTitle('• Attention, pizza en livraison! ')
.setDescription(`<@${message.author.id}>, il semblerait que ta commande soit prête. Tu viens de recevoir une magnique pizza **Andalouse** ! \n\n *Les ingrédients sont: Mozarella, Poivrons, Boulette de Boeuf & Sauce Andalouse.*`)
.setThumbnail('https://i.imgur.com/dvgkC4K.png')
.setFooter(message.author.username, message.author.displayAvatarURL())
.setTimestamp()
.setColor("#baff58")
var embedArr = [capreseEmbed, reineEmbed, vegeEmbed, andalouseEmbed];
let randomEmbed = embedArr[Math.floor(Math.random() * embedArr.length)];
message.channel.send(randomEmbed);
首先我们定义所有嵌入,就像您已经做的那样。然后我们将它们存储在一个数组中。从该数组中,我们希望从随机索引中获取一个值。这是在 randomEmbed
中完成的。然后我们将随机嵌入发送到频道中。
这是一个简单的方法:
const Thumbnail = [
'https://i.imgur.com/McSXASC.png',
'https://i.imgur.com/AKStODY.png',
'https://i.imgur.com/U0qrSk9.png',
'https://i.imgur.com/dvgkC4K.png',
]
const Description = [
', il semblerait que ta commande soit prête. Tu viens de recevoir une magnique pizza **Caprese** ! \n\n *Les ingrédients sont: Mozarella, Olives, Tomates Séchées & Basilic.*`',
', il semblerait que ta commande soit prête. Tu viens de recevoir une magnique pizza **Végétarienne** ! \n\n *Les ingrédients sont: Mozarella, Olives, Poivrons, Champignons & Basilic.*`',
', il semblerait que ta commande soit prête. Tu viens de recevoir une magnique pizza **Végétarienne** ! \n\n *Les ingrédients sont: Mozarella, Olives, Poivrons, Champignons & Basilic.*`',
', il semblerait que ta commande soit prête. Tu viens de recevoir une magnique pizza **Andalouse** ! \n\n *Les ingrédients sont: Mozarella, Poivrons, Boulette de Boeuf & Sauce Andalouse.*`',
]
let random = Math.floor(Math.random() * Thumbnail.length)
const embed = new Discord.MessageEmbed()
.setTitle('• Attention, pizza en livraison! ')
.setDescription( '`' + message.author.username + Description[random])
.setThumbnail(Thumbnail[random])
.setFooter(message.author.username, message.author.displayAvatarURL())
.setTimestamp()
.setColor("#baff58")
message.channel.send(embed)