如何检查用户是不是在共享频道中写消息并告诉他或她在特定于机器人的频道中写
Posted
技术标签:
【中文标题】如何检查用户是不是在共享频道中写消息并告诉他或她在特定于机器人的频道中写【英文标题】:How to check if a user is writing a message in a shared channel and tell him or her to write in a bot-specific channel如何检查用户是否在共享频道中写消息并告诉他或她在特定于机器人的频道中写 【发布时间】:2020-08-18 14:54:54 【问题描述】:如何检查用户是否在共享频道中写消息并告诉他在特定于机器人的频道中写?
这是我试过的代码:
if (message.channel.id === "bot-playground")
// write code here
else
message.channel.send("Write commands in #bot-playground.").then(msg =>
timeout(3000, msg);
);
【问题讨论】:
【参考方案1】: if (message.channel.id === "bot-playground")
这需要一个频道 ID,而不是名称。要获取频道的 ID,请右键单击它并选择 copy ID
然后使用它。如果您没有copy ID
按钮,您可能需要Enable developer mode
另外,您的提及可能无效
message.channel.send("Write commands in #bot-playground.")
见
this question了解更多
【讨论】:
【参考方案2】:您的问题是由第一行 if (message.channel.id === "bot-playground")
您尝试使用频道名称作为 ID 引起的。
您要么需要使用频道的 ID 来查找它,您可以通过 enabling Developer Mode
获取它
或者,您可以像这样使用频道名称来查找它:
message.guilds.channels.cache.find(channel => channel.name === 'bots-playground')
【讨论】:
【参考方案3】:用用于分配Discord#Client 对象的任何变量或常量替换客户端。
client.on("typingStart", (channel, user) =>
const bot_channel = channel.guild.channels.cache.find(chan => chan.name == "bot-playground");
if (channel.id != bot_channel.id)
return message.channel.send(`Write commands in <#$bot_channel.id>`);
);
【讨论】:
以上是关于如何检查用户是不是在共享频道中写消息并告诉他或她在特定于机器人的频道中写的主要内容,如果未能解决你的问题,请参考以下文章
情感识别基于matlab GUI SVM语音情感识别(带面板)含Matlab源码 876期