我有一个不和谐的服务器,我们经常在其中分发蒸汽钥匙作为赠品。当前,我从文本文件中手动剪切/粘贴键,但是我想要一个可以自动执行操作的bot命令。 (它们在TXT文件上排成一行...该机器人无需读取txt文件,但是它需要能够方便地将其复制/粘贴到其中,因为我将向该机器人传输100多个密钥每次)
我已经尝试创建命令,但这只是给我错误消息,所以我不知道重新编码或修复现有代码是否更好。
这是我当前的机器人代码:
const Discord = require('discord.js');
const fs = require('fs');
const yml = require("../yml.js");
module.exports.run = async (bot, message, args) => {
if(!message.member.roles.has(message.guild.roles.find(r => r.name == "Faulty Admins").id)) return message.channel.send('Invalid permissions.');
let file = fs.readFileSync('codes.txt').toString();
let lines = file.split('\n');
message.channel.send(lines[0]);
lines.splice(0, 1);
fs.writeFile('./codes.txt', lines.join('\n'), function(err) { if(err) console.log(err) });
}
module.exports.help = { name: 'code' }
这是我得到的错误:
ReferenceError: file is not defined
at Object.module.exports.run (/home/container/commands/code.js:7:17)
at /home/container/index.js:312:33
at FSReqCallback.readFileAfterClose [as oncomplete] (internal/fs/read_file_context.js:53:3)
我在容器的根目录中有一个使用行分隔键的codes.txt文件。出于显而易见的原因,我将不会提供该服务。 ;)
我需要它能够每次输出一个新密钥,而不会发送一堆消息或错误。
我们将不胜感激。
答案 0 :(得分:0)
此后已解决。我更改了文件的变量名,从而解决了该问题。
const Discord = require('discord.js');
const fs = require('fs');
const yml = require("../yml.js");
module.exports.run = async (bot, message, args) => {
if(!message.member.roles.has(message.guild.roles.find(r => r.name == "Faulty Admins").id)) return message.channel.send('Invalid permissions.');
let steamkeys = fs.readFileSync('codes.txt').toString();
let lines = steamkeys.split('\n');
message.channel.send(lines[0]);
lines.splice(0, 1);
fs.writeFile('./codes.txt', lines.join('\n'), function(err) { if(err) console.log(err) });
}
module.exports.help = { name: 'code' }