【问题标题】:How to make a discord.js bot repeat a user's message without including the prefix and command name?如何让 discord.js 机器人在不包含前缀和命令名称的情况下重复用户的消息?
【发布时间】:2020-02-22 09:07:48
【问题描述】:

好吧,这很可能有一个非常简单的答案,但我在网上找不到同样的东西,而且我无法靠自己的想法弄清楚。

所以在响应前缀的参数中,我有这个:

case 'say':
   const usermsg = message.content
   message.channel.send(usermsg)
break;

因为它是全部内容,它也用 c!say 响应,然后它自己触发。但触发不是问题,我希望 c!say 不包含在消息中。 (我知道我不需要 const,我只是想在单独的一行中试验不同的东西组合)

更新:

所以我找到了第二种方法,通过使用参数部分来解决这个问题,如下所示:

        case 'say':
                message.channel.send(args[1])
                message.delete(1)
            break;

所以这可以满足我的要求,但仅适用于第二个参数,这意味着它不适用于超过 1 个单词。所以我目前的想法是从 message.content 中减去 args[0](c!say 短语)。

【问题讨论】:

    标签: discord.js


    【解决方案1】:

    找到了解决问题的方法,而不是发送参数或减去文本,我使用了替换命令。

                case 'say':
                    let saymsg = message.content
                    message.channel.send(saymsg.replace("c!say",""))
                    message.delete(1)
                break;
    

    我不敢相信我不记得世界更早更换,但就是这样,它有效。

    【讨论】:

      【解决方案2】:
      case 'say':
         const usermsg = message.content.split(' ');
         message.channel.send(usermsg.slice(0).join(' '));
      break;
      

      此代码将接收完整的用户字符串,切出第一个参数(命令和前缀),然后加入消息的其余部分并在聊天中发送。

      【讨论】:

        【解决方案3】:
        bot.on('message', message => {    
            var sender = message.author;
            var msg = message.content.toUpperCase();
            var prefix = '>';
            var cont = message.content.slice(prefix.length).split(" ");
            var args = cont.slice(1);
        
            for (x = 0; x < profanities.length; x++) {
        
                if (message.content.toUpperCase == profanities[x].toUpperCase()) {
                    message.channel.send('Hey! Don\'t say that');
                    message.delete();
                    return;
                }
             
            if (msg.startsWith(prefix + 'SAY')) {
        
                message.delete();
                var saymsg = message.content;
                message.channel.send(saymsg.replace(prefix + 'say', ''))
        
                }
            }
        }
        

        【讨论】:

          猜你喜欢
          • 2021-11-25
          • 2021-07-26
          • 2020-11-02
          • 1970-01-01
          • 2021-06-26
          • 1970-01-01
          • 2020-05-18
          • 2021-07-27
          • 2021-12-15
          相关资源
          最近更新 更多