首页 > 解决方案 > Discord Bot 未正确读取 .json 数据库

问题描述

我正在尝试构建一个不和谐的机器人,它的一个特点是它能够通过使用 json 数组数据库来识别用户之前是否与机器人进行过交互。相反,它不会读取数组,而是将用户名写入文件,即使它已经在数据库中。

const Discord = require('discord.js');
const fs = require('fs');
const { json } = require('stream/consumers');
const {prefix, token} = require('./config.json');
const {recognizedusers} = require('./database.json');

//Read File
let db = fs.readFileSync('./database.json');
db = JSON.parse(db);

// New discord client
const client = new Discord.Client({ intents: ["GUILDS", "GUILD_MESSAGES"] });



//Client run once
client.once('ready', () => {
    console.log('Ready!');
});

//Client always run code
client.on('message', message => {
    let msg_content = message.content.toLowerCase()

    // Mixed message content response
    if (msg_content.includes('test 1') && msg_content.includes('test 2')) {
        message.channel.send('test 2: electric boogaloo')
    }

    if (msg_content.includes('test') && !message.author.username.includes(db.recognizedusers)) {

        message.channel.send('unrecognized name')

        //Edit Variable
        db.recognizedusers.push(message.author.username)

        // write file
        fs.writeFileSync('./database.json', JSON.stringify(db));
    }

});

client.login(token);

标签: jsondiscord.js

解决方案


Elitezen 解决了我的问题。

我想你说!db.recognizedusers.includes(message.author.username)


推荐阅读