node.js - 如何在 Discord.js 中创建输出文件下一行的命令
问题描述
我有一个不和谐的服务器,我们经常在其中赠送 Steam 密钥作为赠品奖品。目前,我从文本文件中手动剪切/粘贴密钥,但我想要一个可以自动执行此操作的机器人命令。(它们在 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)
我在容器的根目录中有一个带有行分隔键的代码.txt 文件。出于希望显而易见的原因,我不会提供。;)
我需要它每次都能输出一个新密钥,而不会发送一堆或错误。
非常感谢任何和所有帮助。
解决方案
此后,此问题已得到解决。我更改了文件的变量名,解决了这个问题。
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' }
推荐阅读
- javascript - 当他/她点击时事通讯中的网站链接时如何获取用户电子邮件
- python - itertools 按多个键分组
- java - 带双引号的列表项
- java - 无法解析日期 [“2016-08-29 11:08:37.645007”]:时区指示符无效
- c# - C# Web MVC + API - Owin 身份验证,在网站中检索声明?
- sql - 第二次调用仓库项目时发生重复
- sql - 分组方式:计算字段以返回 bigquery 中的相应日期
- firebase - 离线尝试后 Firestore 访问中断
- php - 类 __constructor 不返回填零数
- android - 如何将对象从 android 应用程序传递到 firebase 云函数以完成 Paypal 支付功能?