简体   繁体   English

discord.js Linkfilter TypeError:无法读取 null 的属性“角色”

[英]discord.js Linkfilter TypeError: Cannot read property 'roles' of null

I have an error on my linkfilter system.我的链接过滤器系统出现错误。 Something with the roles is not working.角色的某些东西不起作用。

https://sourceb.in/pwvz5xjucp https://sourceb.in/pwvz5xjucp

This is the error I get:这是我得到的错误:

(node:12236) UnhandledPromiseRejectionWarning: TypeError: Cannot read property 'roles' of null
    at Client.<anonymous> (C:\Users\eFhii\Desktop\Venetic eSports\development_discord\index.js:134:24)
    at Client.emit (events.js:327:22)
    at MessageCreateAction.handle (C:\Users\eFhii\Desktop\Venetic eSports\development_discord\node_modules\discord.js\src\client\actions\MessageCreate.js:31:14)
    at Object.module.exports [as MESSAGE_CREATE] (C:\Users\eFhii\Desktop\Venetic eSports\development_discord\node_modules\discord.js\src\client\websocket\handlers\MESSAGE_CREATE.js:4:32)
    at WebSocketManager.handlePacket (C:\Users\eFhii\Desktop\Venetic eSports\development_discord\node_modules\discord.js\src\client\websocket\WebSocketManager.js:384:31)
    at WebSocketShard.onPacket (C:\Users\eFhii\Desktop\Venetic eSports\development_discord\node_modules\discord.js\src\client\websocket\WebSocketShard.js:444:22)
    at WebSocketShard.onMessage (C:\Users\eFhii\Desktop\Venetic eSports\development_discord\node_modules\discord.js\src\client\websocket\WebSocketShard.js:301:10)
    at WebSocket.onMessage (C:\Users\eFhii\Desktop\Venetic eSports\development_discord\node_modules\ws\lib\event-target.js:132:16)
    at WebSocket.emit (events.js:315:20)
    at Receiver.receiverOnMessage (C:\Users\eFhii\Desktop\Venetic eSports\development_discord\node_modules\ws\lib\websocket.js:825:20)
    at Receiver.emit (events.js:315:20)
    at Receiver.dataMessage (C:\Users\eFhii\Desktop\Venetic eSports\development_discord\node_modules\ws\lib\receiver.js:437:14)
    at Receiver.getData (C:\Users\eFhii\Desktop\Venetic eSports\development_discord\node_modules\ws\lib\receiver.js:367:17)
    at Receiver.startLoop (C:\Users\eFhii\Desktop\Venetic eSports\development_discord\node_modules\ws\lib\receiver.js:143:22)
    at Receiver._write (C:\Users\eFhii\Desktop\Venetic eSports\development_discord\node_modules\ws\lib\receiver.js:78:10)
    at doWrite (_stream_writable.js:403:12)

As message.member returns GuildMember in this case there is no member.由于 message.member 在这种情况下返回GuildMember ,因此没有成员。
What does that mean?这意味着什么? that means someone messaged bot in private chat (DMs)这意味着有人在私人聊天 (DM) 中向机器人发送消息
To solve this just ignore messages if it is not in a server:要解决此问题,只需忽略不在服务器中的消息:
if(.message;guild) return; so your code will be something like this:\所以你的代码将是这样的:\

//Linkfilter
bot.on("message", async message => {
    if(!message.guild) return;
    const mongo = require('./mongo')
    const warnSchema = require('./models/warn-schema')

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM