【发布时间】:2019-03-08 19:00:09
【问题描述】:
我很好奇是否有人可以帮助我。
我的机器人有一个建议频道,供玩家提供建议,让服务器变得更好。
但是,它会因为他们聊天而聚集在一起。我很好奇是否有办法删除特定频道中的任何消息,除了机器人命令?
谢谢!
【问题讨论】:
标签: javascript discord discord.js
我很好奇是否有人可以帮助我。
我的机器人有一个建议频道,供玩家提供建议,让服务器变得更好。
但是,它会因为他们聊天而聚集在一起。我很好奇是否有办法删除特定频道中的任何消息,除了机器人命令?
谢谢!
【问题讨论】:
标签: javascript discord discord.js
好吧,您可以检查消息是否以您的前缀开头或由机器人发送:如果这些都不是,则表示它不是命令也不是命令响应。所有这些都假设消息在该频道中。
// ASSUMPTIONS:
// channel = your channel as a TextChannel
// prefix = your prefix as a string
// owner = you as a User
client.on('message', msg => {
if (msg.channel != channel || msg.author.bot || msg.content.startsWith(prefix)) return;
else msg.delete();
});
// if you want your messages to be ignored too:
client.on('message', msg => {
if (msg.channel != channel || msg.author.bot || msg.content.startsWith(prefix) || msg.author == owner) return;
else msg.delete();
});
【讨论】:
!,并将频道更改为实际的频道 ID。它不会打印错误。
message.channel != channel 时忽略该消息。你可以通过说let channel = message.guild.channel.get("CHANNEL_ID_HERE_AS_A_STRING"); 来解决这个问题。这应该可以解决您的问题;)
(node:1504) UnhandledPromiseRejectionWarning: DiscordAPIError: Unknown Message at item.request.gen.end (C:\Users\grant\Desktop\Bots\pausebot\node_modules\discord.js\src\client\rest\RequestHandlers\Sequential.js:79:15) at then (C:\Users\grant\Desktop\Bots\pausebot\node_modules\snekfetch\src\index.js:215:21) at <anonymous> at process._tickCallback (internal/process/next_tick.js:188:7)
message 事件监听器之外声明了schannel。尝试将前两行移入bot.on('message', ...)