Как я могу заставить своего бота discord. js отвечать на DM разными сообщениями? - PullRequest
1 голос
/ 06 августа 2020

Я кодирую бота в разногласиях. js, и мне удалось заставить бота отвечать на DM, но он отвечает только одним сообщением.

Я хочу, чтобы он мог отвечать сначала с одной фразой, например «Привет», а затем во второй раз, когда это же DM, я хочу, чтобы он ответил «как дела?», а затем l oop / остановиться, когда все ответы будут использованы.

Вот код для ответа на DM:

    if (msg.channel.type == "dm") {
      msg.author.send("Hey!");
      return;
    }
  })

Спасибо: D

1 Ответ

1 голос
/ 06 августа 2020

Вы можете просто сохранить, как часто вы писали автору сообщения, однако для этого вам понадобится база данных, если вы планируете, что это будет продолжаться в течение длительного времени (поскольку все сохранения во время выполнения удаляются при перезапуске бота), один вариант было бы подходом к словарю:

//at the top of your file
let msgs = { }; //this is where you will dynamically store the amount
const dms = ["hey!", "How are you?", "Nice to meet you!", "..."]; //array of answers

...
if (msg.channel.type == "dm") {
    let count = msgs[message.author.id]; //get the amount of messages sent
    if(!count) count = msgs[message.author.id] = 0; //set to 0 if non sent before
    msgs.author.send(dms[count]); //send the corresponding message => fetched from array
    msgs[message.author.id]++; //increase message sent count by one
}
...