Also ich bin neu zu discord botting und js und ich spiele mit meinem eigenen Bot herum. Ich möchte ein Minispiel schreiben. Wenn Sie im Chat ?type
eingeben, sagt der Bot etwas im Chat und editiert diese Nachricht während des Countdowns. Wenn das Herunterzählen beendet ist, wird das zufällig generierte Wort angezeigt. Der Spieler muss das exakte zufällige Wort im Chat eingeben und der Bot zeigt die Gesamtzeit an.Die zweite Funktion in setTimeout() läuft nicht
Hier ist mein Code:
case "type":
let randomWord = Math.random().toString(36).replace(/[^a-z]+/g, '');
let timer = 3;
message.channel.send("Generating a new word..")
.then((msg)=> {
var interval = setInterval(function() {
msg.edit(`Starting in **${timer--}**..`)
}, 1000)
});
setTimeout(function() {
clearInterval(interval);
message.channel.send(randomWord)
.then(() => {
message.channel.awaitMessages(response => response.content == randomWord, {
max: 1,
time: 10000,
errors: ['time'],
})
.then(() => {
message.channel.send(`Your time was ${(msg.createdTimestamp - message.createdTimestamp)/1000} seconds.`);
})
.catch(() => {
message.channel.send('There was no collected message that passed the filter within the time limit!');
});
});
}, 5000);
break;
Zur Zeit der Code stoppt, nachdem es nach unten gezählt 0. Ich verstehe nicht, warum message.channel.send(randomWord)
funktioniert nicht. Auch würde ich es lieben, wenn jemand mir helfen könnte, diesen Code zu ändern, um asynch zu verwenden und abzuwarten, ob das etwas lebensfähig ist.