Dmi*_*kov 0 macos bots node.js discord discord.js
我正在开发一个 Discord 机器人,最近一直在阅读 API。我想为我的机器人添加一个命令,该命令将完全清除文本频道,并且只允许具有管理消息权限的人。
到目前为止,这是我的代码:
client.on('message', function(message) {
if (message.content == "^clear") {
try {
if (message.member.hasPermission("MANAGE_MESSAGES")) {
messages = message.channel.fetchMessages();
message.channel.bulkDelete(messages);
}
} catch(e) {
message.channel.send("ERROR: ERROR CLEARING CHANNEL.");
console.log(e);
}
}
});
Run Code Online (Sandbox Code Playgroud)
我收到一个错误,如下所示:
TypeError: The messages must be an Array, Collection, or number.
at TextChannel.bulkDelete (/Users/person/bot/node_modules/discord.js/src/structures/interfaces/TextBasedChannel.js:379:11)
at Client.<anonymous> (/Users/person/bpt/bot.js:29:33)
at emitOne (events.js:96:13)
at Client.emit (events.js:188:7)
at MessageCreateHandler.handle (/Users/person/bot/node_modules/discord.js/src/client/websocket/packets/handlers/MessageCreate.js:9:34)
at WebSocketPacketManager.handle (/Users/person/bot/node_modules/discord.js/src/client/websocket/packets/WebSocketPacketManager.js:102:65)
at WebSocketConnection.onPacket (/Users/person/bot/node_modules/discord.js/src/client/websocket/WebSocketConnection.js:325:35)
at WebSocketConnection.onMessage (/Users/person/bot/node_modules/discord.js/src/client/websocket/WebSocketConnection.js:288:17)
at WebSocket.onMessage (/Users/person/bot/node_modules/discord.js/node_modules/ws/lib/EventTarget.js:103:16)
at emitTwo (events.js:106:13)
Run Code Online (Sandbox Code Playgroud)
首先,您无法批量删除超过 14 天的消息,因此如果您尝试清除包含超过 14 天消息的频道,则无法批量删除,您必须一次删除它们时间(while/for 循环),我假设您在文档中知道这一点。其次,message.channel.fetchMessages()返回一个Promise意思是它在你访问它时还没有准备好。您必须使用async/await或仅使用.then. 例子:
client.on('message', function(message) {
if (message.content == "^clear") {
if (message.member.hasPermission("MANAGE_MESSAGES")) {
message.channel.fetchMessages()
.then(function(list){
message.channel.bulkDelete(list);
}, function(err){message.channel.send("ERROR: ERROR CLEARING CHANNEL.")})
}
}
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
31279 次 |
| 最近记录: |