【问题标题】:How can I make my discord bot only send a message if a user starts typing in a specific channel?如果用户开始在特定频道中输入内容,如何让我的不和谐机器人仅发送消息?
【发布时间】:2021-05-22 23:56:32
【问题描述】:

不确定我在这里做错了什么。我试图让我的机器人仅在用户开始输入定义的频道时发送此消息。我没有收到错误,机器人只是不发送消息。请帮忙!

bot.on("typingStart", (channel, user) => {

const bot_channel =  "812180709401247658"

if (channel.id = bot_channel.id) {
     message.send('wrong channel');
}

});

我也试过了:

bot.on("typingStart", (message , channel) => {

const bot_channel =  "812180709401247658"

if (channel.id === bot_channel.id) {
    message.send('wrong channel');
}

});

【问题讨论】:

    标签: javascript discord discord.js bots


    【解决方案1】:

    单个等号= 是赋值。要在 JavaScript 中执行比较,请使用双等号或三等号。对于大多数比较情况,您应该使用===。您的代码应如下所示:

    bot.on("typingStart", (channel, user) => {
      const bot_channel =  "812180709401247658"
      if (channel.id === bot_channel.id) {
        message.send('wrong channel');
      }
    });
    

    【讨论】:

    • 试过了,不幸的是,它仍然没有任何作用。
    • 另外,感谢您解释分配与比较!
    【解决方案2】:

    使用这个

    bot.on("typingStart", (message, channel) => {
    
      const channel = "812180709401247658"
    
      if (message.channel.id != channel) {
          return message.channel.send('You can only use this command in <#' + channel + '>');
      }
    
    });
    

    如果还是不行就用这个

    bot.on("message", (message) => {
    
      const channel = "812180709401247658"
    
      if (message.channel.id != channel) {
          return message.channel.send('You can only use this command in <#' + channel + '>');
      }
    
    });
    

    "!=" 表示不是,所以如果频道不是您选择的频道,它将返回消息,简单

    【讨论】:

      猜你喜欢
      • 2021-06-22
      • 1970-01-01
      • 2021-06-17
      • 2021-08-14
      • 1970-01-01
      • 2023-03-16
      • 2019-07-11
      • 2021-01-04
      • 2021-10-12
      相关资源
      最近更新 更多