Discord. js - Обновление MessageEmbed в следующем коде - PullRequest
0 голосов
/ 02 августа 2020

Итак, у меня есть (это только его часть) следующий код, но я не могу разобраться во всем этом обновлении отправленной вставки ...

Кодировка работает, если я отправлю каждый раз новая вставка, но я не хочу загромождать канал; таким образом, пытаясь обновить первую вставку.

Код:

const filter = m => m.author.id === message.author.id;
let hangembedStart = new Discord.MessageEmbed()
    .setDescription("Let's get started!")
    .setColor('#0099ff')
    .setThumbnail(sicon)
    .addField('Word:', asterisc)
message.channel.send(hangembedStart);
const collector = message.channel.createMessageCollector(filter, {
    maxMatches: 9,
    time: 30000
});
collector.on('collect', m => {
    if (m.content === 'cancel') {
        inProgress = false;
        delete guessed;
        collector.stop();
        return;
    }
    if (lowChar === text) {
        message.channel.send(`Congratulations, you guessed the word!`);
        inProgress = false;
        delete guessed;
        collector.stop();
        return;
    }
    let hits = checkChar(lowChar, text);
    if (hits === 0) {
        let hangembedGuess = new Discord.MessageEmbed()
            .setDescription("Hangman - The Game - In progress")
            .setColor('#0099ff')
            .setThumbnail(sicon)
            .addField('Word:', reveal)
            .addField('Guessed:', guessed.join(" "))
        message.channel.send(hangembedGuess);
    } else if (hits > 0) {
        let hangembedGuess = new Discord.MessageEmbed()
            .setDescription("Hangman - The Game - In progress")
            .setColor('#0099ff')
            .setThumbnail(sicon)
            .addField('Word:', reveal)
            .addField('Guessed:', guessed.join(" "))
        message.channel.send(hangembedGuess);
    }
});
collector.on('end', collected => {
    message.channel.send(`Game ended, word was: ${text}!`);
    inProgress = false;
    delete guessed;
    //collector.stop();
});

Как ... могу я обновить первую вставку в этом коде вместо того, чтобы каждый раз отправлять новую? Я пробовал использовать message.edit (), но это срабатывает: UnhandledPromiseRejectionWarning: DiscordAPIError: невозможно отредактировать сообщение, написанное другим пользователем

Я искал в Google, читал, искал, пробовал, тестировал практически все, с чем сталкивался , но не могу осмыслить это ...

1 Ответ

0 голосов
/ 03 августа 2020

Отсортировано !!

Добавлена ​​следующая строка:

const hangmanMessage = await message.channel.send(hangembedStart);
//above
const filter = m => m.author.id === message.author.id;

Затем изменены следующие строки:

message.channel.send(hangembedGuess);
//to this
hangmanMessage.edit(hangembedGuess);

Теперь обновляется сначала вставлять вместо того, чтобы каждый раз отправлять новую: D

...