Overlapping commands?

2020-05-07 18:36发布

问题:

I'm trying to make a fun little discord chat bot with JavaScript and node.js and I'd like to put in a specific command without it affecting another one I already have set up.

She works wonderfully on all the servers I have her on, and I've got it set up so that when someone in the server says anything with "rei are", she responds with a constant from areResponses.

//const!!!
const areResponses = ["HELL yeah!", "Yep!", "I'm pretty sure that's true!", "I\'m not gonna put all the responses here because then it'd be too long..."];

//theres some other bot stuff (console log, now playing) under here but it isn't relevant until...

//the basics...
      if (message.content.toLowerCase().includes("rei are")) {
          var response = areResponses [Math.floor(Math.random()*areResponses.length)];

          message.channel.send(response).then().catch(console.error);
      }

What I want to have happen is, preferably, this command to function without setting off the "rei are" command I coded in.

if(message.content.toLowerCase().includes("rei are you happy")) {
           message.channel.send("Yes, absolutely.");
       }

As of right now, whenever I try to input the above command, it just triggers the "rei are" command AND the "rei are you happy" command with two messages...

回答1:

else/if chains work beautifully for this actually!!!

      if(message.content.toLowerCase().includes("rei do you like girls")) {
            message.channel.send("Yes, absolutely. Girls are just... yeah...");
         }
      else if (message.content.toLowerCase().includes("rei are")) {
          var response = areResponses [Math.floor(Math.random()*areResponses.length)];

          message.channel.send(response).then().catch(console.error);
        }

All you need to do is put the command that would overlap with the larger commands at the very bottom of the else if chain, and then you're good!!