最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

node.jsdiscord.js:TypeError:无法读取null的属性'setPresence'

网站源码admin20浏览0评论

node.js / discord.js:TypeError:无法读取null的属性'setPresence'

node.js / discord.js:TypeError:无法读取null的属性'setPresence'

尝试一个简单的测试,但此行出现错误:client.user.setPresence('game',{type:'PLAYING'});

VSCode的日志:

C:\Users\dvmvged\Documents\mao>node . whoa.js
C:\Users\dvmvged\Documents\mao\whoa.js:9
client.user.setPresence('game', { type: 'PLAYING' });
            ^

TypeError: Cannot read property 'setPresence' of null
    at Object.<anonymous> (C:\Users\dvmvged\Documents\mao\whoa.js:9:13)
←[90m    at Module._compile (internal/modules/cjs/loader.js:956:30)←[39m
←[90m    at Object.Module._extensions..js (internal/modules/cjs/loader.js:973:10)←[39m
←[90m    at Module.load (internal/modules/cjs/loader.js:812:32)←[39m
←[90m    at Function.Module._load (internal/modules/cjs/loader.js:724:14)←[39m
←[90m    at Function.Module.runMain (internal/modules/cjs/loader.js:1025:10)←[39m
←[90m    at internal/main/run_main_module.js:17:11←[39m

whoa.js

    const Discord = require('discord.js');
    const client = new Discord.Client();

    client.on('ready', () => {
        console.log("Logged in.");
        client.login("token");
    });

    client.user.setPresence('test', { type: 'PLAYING' });

package.json:

{ 
    "name":"test-bot",
    "version":"1.0.0",
    "description":"simple test",
    "main":"whoa.js",
    "dependencies":{ 
        "discord.js":"^11.5.1"
    },
    "devDependencies":{ 

    },
    "scripts":{ 
        "test":"echo \"Error: no test specified\" && exit 1"
    },
    "author":"no one",
    "license":"ISC"
}

NPM版本:6.11.3

Node.js版本:12.12.0

Discord.js版本:11.5.1

EDIT:为了让您知道,我尝试了.setActivity和.setGame。同样的错误。

回答如下:

我认为这里发生的是Node.js事件循环的结果。您调用异步函数.login(),并在client.user.setPresence()的响应到达之前立即尝试.login()

尝试

  .login("token")
  .then(client.user.setPresence("game", { type: "PLAYING" }));

请参见Node Event Loop

发布评论

评论列表(0)

  1. 暂无评论