关于Discord Bot的问题|无法读取hasPermission为null |节点JS

时间:2020-07-29 14:07:44

标签: javascript node.js discord

我的机器人经常崩溃,并且无法找到问题。我已经尝试了几种方法,但是都没有引起错误。 Bot应该删除包含德语中的自定义单词的消息。

client.on ('message', message => {
    if (message.author.id === "715567779624779787") {}
    else if (message.content === "!help" || message.content === "!link") {}
    else if (message.channel.type === "dm") {
        message.reply("Ich filtere nur auf Servern. Versuche !help oder !link.");
    } else if (message.member.hasPermission("MANAGE_MESSAGES")) {} 
    else if (config.filter_list.some(word => message.content.toUpperCase().includes(word))) {
        message.delete();
    }
});

ID,即机器人ID。显示UP的错误是这个人:

 } else if (message.member.hasPermission("MANAGE_MESSAGES")) {
                                     ^

TypeError: Cannot read property 'hasPermission' of null
    at Client.<anonymous> (C:\Users\User\Desktop\Stuff\Scheiße die sich verpissen soll\LuisChat\bot.js:27:38)
    at Client.emit (events.js:333:22)
    at MessageCreateAction.handle (C:\Users\User\Desktop\Stuff\Scheiße die sich verpissen soll\LuisChat\node_modules\discord.js\src\client\actions\MessageCreate.js:31:14)
    at Object.module.exports [as MESSAGE_CREATE] (C:\Users\User\Desktop\Stuff\Scheiße die sich verpissen soll\LuisChat\node_modules\discord.js\src\client\websocket\handlers\MESSAGE_CREATE.js:4:32)
    at WebSocketManager.handlePacket (C:\Users\User\Desktop\Stuff\Scheiße die sich verpissen soll\LuisChat\node_modules\discord.js\src\client\websocket\WebSocketManager.js:386:31)
    at WebSocketShard.onPacket (C:\Users\User\Desktop\Stuff\Scheiße die sich verpissen soll\LuisChat\node_modules\discord.js\src\client\websocket\WebSocketShard.js:435:22)
    at WebSocketShard.onMessage (C:\Users\User\Desktop\Stuff\Scheiße die sich verpissen soll\LuisChat\node_modules\discord.js\src\client\websocket\WebSocketShard.js:293:10)
    at WebSocket.onMessage (C:\Users\User\Desktop\Stuff\Scheiße die sich verpissen soll\LuisChat\node_modules\ws\lib\event-target.js:120:16)
    at WebSocket.emit (events.js:321:20)
    at Receiver.receiverOnMessage (C:\Users\User\Desktop\Stuff\Scheiße die sich verpissen soll\LuisChat\node_modules\ws\lib\websocket.js:800:20)

我找不到错误消息的问题。请忽略我的长文件路径:D

先谢谢您

路易斯

2 个答案:

答案 0 :(得分:0)

message.member.hasPermission("MANAGE_MESSAGES")

**将其更改为**

message.guild.member(message.author).hasPermission("MANAGE_MESSAGES")

答案 1 :(得分:0)

谢谢您的帮助。我认为问题是由不和谐系统通知引起的,该通知没有被检测为Bot或具有一定权限的成员。 我已经使用if (message.author.client || message.author.bot) {} else return;修复了它。这只是检查作者是客户端还是机器人。

-路易斯