首页 > 解决方案 > discord.js 将参数数据存储在一个名为 + guild id 的文件中

问题描述

好吧,基本上,我使用文件系统来获取用户输入,使用输入的名称创建一个文件,并将其存储在特定文件夹中。但是,我无法获取 guild.id 并将其与用户创建的文件的名称相结合。

基本上,我想要它做的是当您运行createchar (name)命令时,它会创建一个名称加上公会 ID 的文件,因此基本上createchar test会导致创建一个名为 .txt 的文件testguildID。这样命令可以在许多不同的服务器上运行。

这也适用于editchar

但是,当我运行该命令时,该命令不起作用,控制台中也没有出现错误。

这是代码:

client.on("message", message => {
  if(message.author.bot) return;
  const args = message.content.slice(config.prefix.length).trim().split(' ');
  const command = args.shift().toLowerCase();

  if(command === "createchar") {

      fs.writeFile(`./characters/${args + guild.id}.txt`, 'utf8', function (err) {
          if (err) throw err;
          message.reply('Character created successfully.');
          console.log('File created successfully.');
      });
  }


if(command === "editchar") {
    fs.readFileSync(`./characters/${args[0] + guild.id}.txt`, 'utf8');


    var data = new Uint8Array(Buffer.from(`${args}`));

    fs.writeFile(`./characters/${args[0] + guild.id}.txt`, data, (err) => {
        if (err) throw err;;
message.reply('Character information edited successfully');
    console.log('File edited successfully');
})
}

if(command === "char") {
    var char = fs.readFileSync(`./characters/${args[0]}.txt`, 'utf8');
    var char3 = char.replace(`${args[0]}`, '');
    message.channel.send(">>>" + char3.replace(/,/g, " "));
}
});

标签: node.jsdiscord.js

解决方案


你忘了添加message.guild.id所以这就是问题:)

client.on("message", message => {
  if(message.author.bot) return;
  const args = message.content.slice(config.prefix.length).trim().split(' ');
  const command = args.shift().toLowerCase();

  if(command === "createchar") {

      fs.writeFile(`./characters/${args + message.guild.id}.txt`, 'utf8', function (err) {
          if (err) throw err;
          message.reply('Character created successfully.');
          console.log('File created successfully.');
      });
  }


if(command === "editchar") {
    fs.readFileSync(`./characters/${args[0] + message.guild.id}.txt`, 'utf8');


    var data = new Uint8Array(Buffer.from(`${args}`));

    fs.writeFile(`./characters/${args[0] + message.guild.id}.txt`, data, (err) => {
        if (err) throw err;;
message.reply('Character information edited successfully');
    console.log('File edited successfully');
})
}

if(command === "char") {
    var char = fs.readFileSync(`./characters/${args[0]}.txt`, 'utf8');
    var char3 = char.replace(`${args[0]}`, '');
    message.channel.send(">>>" + char3.replace(/,/g, " "));
}
});

推荐阅读