Discord.js - 创建一个数组来转储图像文件

Posted

技术标签:

【中文标题】Discord.js - 创建一个数组来转储图像文件【英文标题】:Discord.js - Creating an Array to Dump Image Files 【发布时间】:2018-10-16 16:23:21 【问题描述】:

我目前正在托管一个 Discord.js 机器人,但在创建命令时遇到了障碍。我已经有一个命令,它使用预定义的数组来选择一张随机照片发送到文本通道(见下面的代码)。但是,我想知道如何创建一个使用数组中找到的值转储所有图像的命令。 谁能帮帮我?

附:下面找到的代码仅包含我已经拥有的数组和命令,如果需要,我可以提供更多代码。但是,我只发现这些位是必要的。

const haidaArray = ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '20', '21', '22', '23', '24', '25', '26', '27', '28', '29', '30', '31', '32', '33', '34', '35', '36', '37', '38', '39', '40', '41', '42', '43', '44', '45', '46', '47', '48', '49', '50', '51', '52', '53', '54', '55', '56', '57', '58', '59', '60', '61', '62', '63', '64', '65', '66', '67', '68', '69', '70', '71', '72', '73', '74', '75', '76' '77', '78', '79', '80', '81', '82', '83'];

if(command === `$prefixhaida`) 
    let haidaResult = haidaArray[(Math.random() * haidaArray.length) | 0];

    message.channel.send(files: [`./haida/$haidaResult.jpg`]);

    console.log(chalk.bgMagenta('[fun]') + ' ' + message.author.username + ' requested: ' + command);

    return;

【问题讨论】:

您不能在一封邮件中嵌入多个文件。您需要为每张图片发送单独的消息 @Monacraft 我明白,但是,我需要一个过程来做到这一点。这是我的问题。 【参考方案1】:

你可以做一个 for 循环。

首先你应该计算数组。您可以使用ARRAY.lenght 执行此操作。之后是一个简单的 for 循环。因此,在发送一张图片后,它会检查长度是否低于i。如果是,则循环结束:

const haidaArray = ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '20', '21', '22', '23', '24', '25', '26', '27', '28', '29', '30', '31', '32', '33', '34', '35', '36', '37', '38', '39', '40', '41', '42', '43', '44', '45', '46', '47', '48', '49', '50', '51', '52', '53', '54', '55', '56', '57', '58', '59', '60', '61', '62', '63', '64', '65', '66', '67', '68', '69', '70', '71', '72', '73', '74', '75', '76' '77', '78', '79', '80', '81', '82', '83'];

if(command === `$prefixhaida`) 
    let haidaResult = haidaArray[(Math.random() * haidaArray.length) | 0];

    for (var i = 0; i < haidaArray.length; i++) 
        //Send your image
        message.channel.send(files: [`./haida/$haidaResult.jpg`]);
        console.log(chalk.bgMagenta('[fun]') + ' ' + message.author.username + ' requested: ' + command);
    
return;

而且您不想记录您的消息 80 次,所以我只会在 for 循环之后发送它,而不是在 for 循环中发送。

玩得开心编码:D

【讨论】:

以上是关于Discord.js - 创建一个数组来转储图像文件的主要内容,如果未能解决你的问题,请参考以下文章

Discord.js 使用来自其他消息的附件来更新嵌入中的图像

从数组 discord.js v12 访问项目

Discord.js 嵌入随机图像

在 discord.js 中创建一个用于从数组中查找和终止角色的 for 循环

将数组划分为嵌入页面 - Discord.JS

Discord.js 机器人使用数组中的加权随机选择嵌入