Для бота Discord у меня есть команда, которая отображает информацию для наших сеансов DnD:
.
Данные хранятся в dndinfo . json файл выглядит следующим образом:
{"time":"**18:00 UK time**",
"date":"**14/05/20**",
"dm":"**Mannion**",
"prime":"Playing",
"smurphy":"Playing",
"calle":"Playing",
"smardon":"Playing",
"james":"Playing",
"mannion":"DMing",
"dex":"Playing",
"module":"Hoard of the Dragon Queen"}
Я хочу, чтобы пользователи могли выполнять команды, такие как '! Te time 17:00', которые обновят время соответствующим образом.
В настоящее время я работаю с этим кодом:
const Discord = module.require('discord.js');
const fs = require('fs');
const dndinfo = require ('../../dndinfo.json');
module.exports = {
name: 'test',
aliases: ['te'],
category: 'dnd',
description: 'Updates DnD info',
usage: '!te',
run: async (client, message, args) => {
const time = dndinfo.time;
let editMessage = message.content.slice(9);
if (message.content.toLowerCase().includes('time')) {
fs.readFile('dndinfo.json', function(err, data) {
console.log(time);
fs.writeFile('dndinfo.json', JSON.stringify(editMessage, null, 2), (err) => {
if (err) console.error;
message.channel.send ('message written');
});
});
}
},
};
Когда я запускаю команду '! Te time 17:00', весь файл dndinfo. json заменяется на:
"17:00"
Я понимаю, что это потому, что я использую fs.writeFile, но я не уверен, как указать только «время» и обновил ли это?