使用不和谐机器人发送随机文件

时间:2021-01-22 12:47:12

标签: javascript discord.js

你好,我有个问题。

不和谐机器人如何发送具有随机名称的文件。此文件位于特定目录中,并且只有 1 个文件。

让机器人知道这是文件的代码是什么。

message.author.send("HTML:", {
    files: [{
        attachment: 'C:/Users/username/Downloads/specificFolder/fileisHere',
        name: 'filename.html'
    }]
})

此代码如何更改机器人允许随机发送文件

1 个答案:

答案 0 :(得分:0)

首先,给每个文件加一个数字前缀,每次加1,从0开始,例如

0file.txt
1file.txt
2file.txt 
... etc

然后调用get random file函数依次读取每个文件,生成一个从0number of files you have - 1的随机数并输出文件名。

const fs = require('fs') //require fs to open files etc

//read files from the directory - I chose a directory called `dir001`
fs.readdir("./dir001", (err, files) => {
  if (err) {
    console.log(err);
  }

  let dirFiles = files.filter((f) => f.split(".").pop() === "txt"); // if the files end with txt - change for your needs

  if (dirFiles.length === 0) {
    console.log("No dir files found"); //if no files found return
    return;
  }

  let randInt = Math.floor(Math.random() * <number of files in the dir>); // generate random number from 0 to number of files in the dir

  dirFiles.forEach((f) => {
    if (!f.startsWith(randInt)) return; // if the file doesnt start with randInt(), return
    message.channel.send(`random file: ${f}`); // output the randomized file
  });
});

这应该可行,如果您遇到错误,请在确保根据您的个人需要更改所有内容后告诉我。