【发布时间】:2019-02-13 13:37:50
【问题描述】:
我试着听一个 dm,但你不能有一个选定的角色。
if (!message.member.hasRole('447778989914718218')) {
if (message.channel.type == "dm") {
if (message.content == "1") {
client.guilds.get('447726259246727168').members.get(message.author.id).removeRole('447778997766586380')
client.guilds.get('447726259246727168').members.get(message.author.id).removeRole('478930168875057152')
client.guilds.get('447726259246727168').members.get(message.author.id).addRole('447778989914718218')
//message.delete();
} else if (message.content == "2") {
//var server = client.guilds.get("447726259246727168");
//server.channels.find(channels => channels.name === "bot-test").send(`nice `)
client.guilds.get('447726259246727168').members.get(message.author.id).removeRole('447778989914718218')
client.guilds.get('447726259246727168').members.get(message.author.id).removeRole('478930168875057152')
client.guilds.get('447726259246727168').members.get(message.author.id).addRole('447778997766586380')
message.channel.delete();
} else if (message.content == "3") {
client.guilds.get('447726259246727168').members.get(message.author.id).removeRole('447778989914718218')
client.guilds.get('447726259246727168').members.get(message.author.id).removeRole('447778997766586380')
client.guilds.get('447726259246727168').members.get(message.author.id).addRole('478930168875057152')
}
}
}
但是有一个错误:
(node:15292) UnhandledPromiseRejectionWarning: TypeError: Cannot read property 'hasRole' of null
(C:\Users\Megaport\Desktop\bot\node_modules\discord.js\src\client\websocket\packets\handlers\MessageCreate.js:9:34)
at WebSocketPacketManager.handle (C:\Users\Megaport\Desktop\bot\node_modules\discord.js\src\client\websocket\packets\WebSocketPacketManager.js:103:65)
at WebSocketConnection.onPacket (C:\Users\Megaport\Desktop\bot\node_modules\discord.js\src\client\websocket\WebSocketConnection.js:333:35)
at WebSocketConnection.onMessage (C:\Users\Megaport\Desktop\bot\node_modules\discord.js\src\client\websocket\WebSocketConnection.js:296:17)
at WebSocket.onMessage (C:\Users\Megaport\Desktop\bot\node_modules\ws\lib\event-target.js:120:16)
at emitOne (events.js:116:13)
at WebSocket.emit (events.js:211:7)
at Receiver._receiver.onmessage (C:\Users\Megaport\Desktop\bot\node_modules\ws\lib\websocket.js:137:47)
at Receiver.dataMessage (C:\Users\Megaport\Desktop\bot\node_modules\ws\lib\receiver.js:409:14)
at Receiver.getData (C:\Users\Megaport\Desktop\bot\node_modules\ws\lib\receiver.js:347:12)
at Receiver.startLoop (C:\Users\Megaport\Desktop\bot\node_modules\ws\lib\receiver.js:143:16)
at Receiver.add (C:\Users\Megaport\Desktop\bot\node_modules\ws\lib\receiver.js:117:10)
at emitOne (events.js:116:13)
at TLSSocket.emit (events.js:211:7)
at addChunk (_stream_readable.js:263:12)
at readableAddChunk (_stream_readable.js:250:11)
at TLSSocket.Readable.push (_stream_readable.js:208:10)
at TLSWrap.onread (net.js:597:20)
(node:15292) 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(). (rejection id: 1)
(node:15292) [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.
【问题讨论】:
-
@Andreas 谢谢,删除了我的评论。
-
问题是消息没有
member属性。我从未使用过 discord.js,但根据this GitHub issue,如果在 DM/GroupDM 文本通道或 webhook 消息中收到消息,就会发生这种情况。
标签: javascript node.js discord.js