首页 > 解决方案 > 试图让(If 语句)变量查找器工作......(JSON Parsed Data)(Discord.js)

问题描述

所以我的if (Players.PlayerData.AccountActive = 1)不起作用,它说等号有错误。并发送回Cannot set property of .AccountActive of undefined. The Data is already parsed的错误require

client.on('message', message => {


    if (message.content.toLowerCase() ==='smack activate') {
        
        let PlayerData = [message.author.username][0];

        Activate [message.author.username] = {
        AccountActive: 1,
        Health: 100,
        Level: 1,
        Lust: 0,
        Items: ""
        };

        if (Players.PlayerData.AccountActive = 1) {
            message.channel.send ("Account Already Activated");
            return;
        };

        fs.writeFile("./Database/Players.json", JSON.stringify (Activate, null, 4), err => {
            if (err) throw err;
            message.channel.send ("Account Activated")
        });
    };
};

玩家.json

{
    "♡Yuzi♡": {
        "AccountActive": 1,
        "Health": 100,
        "Level": 1,
        "Lust": 0,
        "Items": ""
    }
}

标签: javascriptjsondiscord.js

解决方案


您可以考虑使用您定义的 PlayerData 变量,并验证它以确保它不是未定义的:

client.on('message', message => {

if (message.content.toLowerCase() ==='smack activate') {
    
    let PlayerData = [message.author.username][0];

    Activate [message.author.username] = {
    AccountActive: 1,
    Health: 100,
    Level: 1,
    Lust: 0,
    Items: ""
    };

    if (PlayerData && PlayerData.AccountActive === 1) {
        message.channel.send ("Account Already Activated");
        return;
    };

    fs.writeFile("./Database/Players.json", JSON.stringify (Activate, null, 4), err => {
        if (err) throw err;
        message.channel.send ("Account Activated")
    });
};

};


推荐阅读