Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/470.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 非bot成员联机时出错(presenceUpdate)_Javascript_Node.js_Discord_Discord.js - Fatal编程技术网

Javascript 非bot成员联机时出错(presenceUpdate)

Javascript 非bot成员联机时出错(presenceUpdate),javascript,node.js,discord,discord.js,Javascript,Node.js,Discord,Discord.js,我正在尝试让我的机器人在机器人联机或脱机时发送此消息。它有时可以工作,但当人工成员联机时,我会遇到以下错误:未捕获的异常类型错误:无法读取未定义的属性“user” 我的代码: client.on(“presenceUpdate”(旧状态、新状态)=>{ if(newPresence.user.bot){ client.channels.cache.get(“799082492065087498”).send(oldPresence.user.tag+”是“+newPresence.status

我正在尝试让我的机器人在机器人联机或脱机时发送此消息。它有时可以工作,但当人工成员联机时,我会遇到以下错误:
未捕获的异常类型错误:无法读取未定义的属性“user”

我的代码:

client.on(“presenceUpdate”(旧状态、新状态)=>{
if(newPresence.user.bot){
client.channels.cache.get(“799082492065087498”).send(oldPresence.user.tag+”是“+newPresence.status);
};

});如果我们假设此代码是服务器端的: 你肯定没有在客户端发送newPresence,因为你收到了这个错误。 因此,您可以在newPresence.user之前检查newPresence。 像这样:

client.on("presenceUpdate",(oldPresence,newPresence)=>{
    if(newPresence && newPresence.user.bot){
        client.channels.cache.get("799082492065087498").send(oldPresence.user.tag+" is "+newPresence.status);
    };
});

请注意这是服务器端还是客户端?什么是oldPresence以及何时设置?客户端api,oldPresence是用户在线时newPresence之后的presence oldPresence离线,newPresence在线。当用户离线时,oldPresence是在线的。这仍然不是完全正确的-它将解决OP的问题,但根本不应该使用
oldPresence
,因为
newPresence
是更新后的obj-也就是说,新的presence,
user#标记
通常不会改变-它只是更可靠而已