Discord.js,无法读取属性“用户"的null [英] Discord.js, cannot read property "user" of null

查看:47
本文介绍了Discord.js,无法读取属性“用户"的null的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个麻烦,我根本听不懂.该功能在我的服务器上运行,而在另一台服务器上不运行.这是我的代码:

I have a trouble, that I can't understand at all. The function working on my server, and not working on another one. Here's my code:

const user = message.author;
let servericon = message.guild.iconURL;
let serverembed = new Discord.MessageEmbed()
.setAuthor(message.author.username, auser.displayAvatarURL({ format: 'png' }))
.setTitle("Информация о сервере")
.setColor("RANDOM")
.setThumbnail(servericon)
.addField("Название сервера :", message.guild.name)
.addField("Владелец :", `${message.guild.owner.user.tag}`, true)
.addField("Каналы :", message.guild.channels.cache.size, true)
.addField("Роли :", message.guild.roles.cache.size, true)
.addField("Сервер создан :", `${moment(message.guild.createdAt).format('MMMM Do YYYY')}`)
.addField("Пользователей :", message.guild.memberCount)
.setThumbnail(message.guild.iconURL())
.setTimestamp()
message.channel.send(serverembed);

错误是:
(节点:11288)UnhandledPromiseRejectionWarning:TypeError:无法读取null的属性"user"在Object.run(C:\ Users \ alumetryu \ Desktop \ bot \ commands \ info \ serverinfo.js:20:48)在客户处.(C:\ Users \ alumetryu \ Desktop \ bot \ ame \ index.js:38:17)在Client.emit(events.js:315:20)在MessageCreateAction.handle(C:\ Users \ alumetryu \ node_modules \ discord.js \ src \ client \ actions \ MessageCreate.js:31:14)在Object.module.exports处[作为MESSAGE_CREATE](C:\ Users \ alumetryu \ node_modules \ discord.js \ src \ client \ websocket \ handlers \ MESSAGE_CREATE.js:4:32)在WebSocketManager.handlePacket(C:\ Users \ alumetryu \ node_modules \ discord.js \ src \ client \ websocket \ WebSocketManager.js:384:31)在WebSocketShard.onPacket上(C:\ Users \ alumetryu \ node_modules \ discord.js \ src \ client \ websocket \ WebSocketShard.js:444:22)在WebSocketShard.onMessage(C:\ Users \ alumetryu \ node_modules \ discord.js \ src \ client \ websocket \ WebSocketShard.js:301:10)在WebSocket.onMessage(C:\ Users \ alumetryu \ node_modules \ ws \ lib \ event-target.js:125:16)在WebSocket.emit(events.js:315:20)在Receiver.receiverOnMessage(C:\ Users \ alumetryu \ node_modules \ ws \ lib \ websocket.js:797:20)在Receiver.emit(events.js:315:20)在Receiver.dataMessage(C:\ Users \ alumetryu \ node_modules \ ws \ lib \ receiver.js:437:14)在Receiver.getData(C:\ Users \ alumetryu \ node_modules \ ws \ lib \ receiver.js:367:17)在Receiver.startLoop(C:\ Users \ alumetryu \ node_modules \ ws \ lib \ receiver.js:143:22)在Receiver._write(C:\ Users \ alumetryu \ node_modules \ ws \ lib \ receiver.js:78:10)在doWrite(_stream_writable.js:403:12)在writeOrBuffer(_stream_writable.js:387:5)在Receiver.Writable.write(_stream_writable.js:318:11)在TLSSocket.socketOnData(C:\ Users \ alumetryu \ node_modules \ ws \ lib \ websocket.js:872:35)在TLSSocket.emit(events.js:315:20)在addChunk(_stream_visible.js:295:12)(节点:11288)UnhandledPromiseRejectionWarning:未处理的承诺拒绝.该错误是由于在没有catch块的情况下抛出异步函数而引起的,或者是由于拒绝了未使用.catch()处理的诺言而引起的.要在未处理的承诺拒绝时终止节点进程,请使用CLI标志-unhandled-rejections = strict (请参阅https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode).(拒绝ID:1)(节点:11288)[DEP0018] DeprecationWarning:已弃用未处理的承诺拒绝.将来,未处理的承诺拒绝将以非零退出代码终止Node.js进程.

And error is:
(node:11288) UnhandledPromiseRejectionWarning: TypeError: Cannot read property 'user' of null at Object.run (C:\Users\alumetryu\Desktop\bot\commands\info\serverinfo.js:20:48) at Client. (C:\Users\alumetryu\Desktop\bot\ame\index.js:38:17) at Client.emit (events.js:315:20) at MessageCreateAction.handle (C:\Users\alumetryu\node_modules\discord.js\src\client\actions\MessageCreate.js:31:14) at Object.module.exports [as MESSAGE_CREATE] (C:\Users\alumetryu\node_modules\discord.js\src\client\websocket\handlers\MESSAGE_CREATE.js:4:32) at WebSocketManager.handlePacket (C:\Users\alumetryu\node_modules\discord.js\src\client\websocket\WebSocketManager.js:384:31) at WebSocketShard.onPacket (C:\Users\alumetryu\node_modules\discord.js\src\client\websocket\WebSocketShard.js:444:22) at WebSocketShard.onMessage (C:\Users\alumetryu\node_modules\discord.js\src\client\websocket\WebSocketShard.js:301:10) at WebSocket.onMessage (C:\Users\alumetryu\node_modules\ws\lib\event-target.js:125:16) at WebSocket.emit (events.js:315:20) at Receiver.receiverOnMessage (C:\Users\alumetryu\node_modules\ws\lib\websocket.js:797:20) at Receiver.emit (events.js:315:20) at Receiver.dataMessage (C:\Users\alumetryu\node_modules\ws\lib\receiver.js:437:14) at Receiver.getData (C:\Users\alumetryu\node_modules\ws\lib\receiver.js:367:17) at Receiver.startLoop (C:\Users\alumetryu\node_modules\ws\lib\receiver.js:143:22) at Receiver._write (C:\Users\alumetryu\node_modules\ws\lib\receiver.js:78:10) at doWrite (_stream_writable.js:403:12) at writeOrBuffer (_stream_writable.js:387:5) at Receiver.Writable.write (_stream_writable.js:318:11) at TLSSocket.socketOnData (C:\Users\alumetryu\node_modules\ws\lib\websocket.js:872:35) at TLSSocket.emit (events.js:315:20) at addChunk (_stream_readable.js:295:12) (node:11288) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag --unhandled-rejections=strict (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 1) (node:11288) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.

推荐答案

这是因为未缓存公会的所有者.相反,请手动 fetch() GuildMember

This is because the owner of the guild isn't cached. Instead, manually fetch() the GuildMember with Guild.prototype.ownerID

// make sure the function is async!
const owner = await message.guild.members.fetch(message.guild.ownerID);
const serverembed = new Discord.MessageEmbed().addField(
 'Владелец :',
 `${message.guild.owner.user.tag}`,
 true
);

这篇关于Discord.js,无法读取属性“用户"的null的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆