Обновление базы данных с использованием FS и Discord. JS - PullRequest
0 голосов
/ 01 мая 2020

Итак, у меня есть этот код:

const Discord = require('discord.js');
const fs = require('fs');
const client = new Discord.Client();
let db = JSON.parse(fs.readFileSync("./database.json", "utf8"));

module.exports.run = async (bot, message, args) => {

const dawaeEmbed = new Discord.MessageEmbed()
    .setColor(0xD4AF37)
    .setTitle(message.author.username + " fait tourner la roue de la fortune \:\o")
    .setImage('https://images-ext-2.discordapp.net/external/HsKDQ0E_aFmmt_y1C0MGjAtkkHEtJqvSgVVC6BEpcBI/https/cdn.zerotwo.dev/INTERNAL/WOF.gif')
    .setFooter('J\'adore les commandes de Ikari :D');


    var result = Math.floor(Math.random() * (983 - 42 + 1)) + 42;


const dawaeEmbed2 = new Discord.MessageEmbed()
    .setColor(0xD4AF37)
    .setTitle(message.author.username + ` a gagné ${result} 〷 grâce à la roue ! ✨`)
    .setImage('https://images-ext-1.discordapp.net/external/0MadJ_5x3-sYSU-8p88EDiks0ieAendhBg5sMSh_RCI/https/cdn.zerotwo.dev/INTERNAL/MONEY.gif')
    .setFooter('J\'adore les commandes de Ikari :D');

    spining = await message.channel.send(dawaeEmbed)
    setTimeout(() => {
        // Edit msg 20 seconds later
        spining.edit(dawaeEmbed2);
      }, 5000);

      if (!db[message.author.id]) db[message.author.id] = {
        money: 0
      };

      let userInfo = db[message.author.id];
      userInfo.money = userInfo.money + result

      fs.writeFile("./database.json", JSON.stringify(db), (x) => {
        if (x) console.error(x)
      });

message.delete();

}

Но есть проблема ... База данных не обновляется после того, как колесо закончило вращаться. Так что, если я выполню мою команду, чтобы проверить мои деньги, у меня все еще будут деньги, которые у меня были до того, как я запустил бот. Я хочу знать, как вернуть sh деньги! Помогите мне как можно быстрее, пожалуйста ...

1 Ответ

0 голосов
/ 02 мая 2020

Я заменил это:

let userInfo = db[message.author.id];
  userInfo.money = userInfo.money + result

На это:

db[message.author.id].money = db[message.author.id].money + result

И теперь это работает.

...