Как мне сбросить Embed данные в discord.js? - PullRequest
0 голосов
/ 22 марта 2019

Я использую const embed = new Discord.RichEmbed(); для моих встраиваний. Как сбросить значения Embed?

После того, как я запускаю команду, которая устанавливает элементы встраивания, она переносится на следующую команду. Как я могу сделать так, чтобы значения не переносились, и я не получил этот результат?

enter image description here

Мой код для команд myavatar и avatar.

client.on('message', message => {
const authorID = message.author.id;
const authorAvatarLink = message.author.avatarURL;

if (message.content.toLowerCase() === commandPrefix + 'myavatar') {
    embed.setAuthor(message.author.username, message.author.avatarURL);
    embed.setDescription(authorAvatarLink);
    embed.setImage(authorAvatarLink);
    message.channel.send(embed);
}

if (message.content.toLowerCase().startsWith(commandPrefix + 'avatar')) {
    var user = message.mentions.users.first();
    var msgContent = message.content.substr(7, (message.content.length));

    if (user != null) {
        embed.setAuthor(user.username, user.avatarURL);
        embed.setDescription(user.avatarURL);
        embed.setImage(user.avatarURL);
        embed.setFooter('Requested by ' + message.author.tag);

        message.channel.send(userMention(authorID), embed);
    } else {
        var errorCmd = (commandPrefix + 'avatar');

        commandError(message, userMention(authorID), errorCmd, msgContent);
    }

    user = undefined;
    delete(user);

    embed.setImage(null);

}
});

Мой код для команды membercount.

client.on('message', message => {
if (message.content.toLowerCase() === commandPrefix + 'membercount') {
    var memberCount = message.guild.memberCount;

    embed.setColor(nvdMainColor);
    embed.setAuthor(message.author.username, message.author.avatarURL);
    embed.setTimestamp(new Date());
    embed.addField('Total Members', memberCount);

    message.channel.send(embed);
}
});

Что можно сделать, чтобы предотвратить перенос значений в другие команды?

1 Ответ

1 голос
/ 22 марта 2019

Надеюсь, я хорошо понял ваш вопрос. Просто определите разные RichEmbeds в разных переменных.

Я определил embed1 и embed2. embed1 вы используете для команды myavatar и embed2 для команды аватара, поэтому эти 2 RichEmbeds - это 2 различных встраивания с разными значениями.

Вот код, как вы можете сделать это для вашей команды avatar и myavatar:

const Discord = require('discord.js');
client.on('message', message => {
    const authorID = message.author.id;
    const authorAvatarLink = message.author.avatarURL;
    const embed1 = new Discord.RichEmbed()
    const embed2 = new Discord.RichEmbed()

    if (message.content.toLowerCase() === commandPrefix + 'myavatar') {
        embed1.setAuthor(message.author.username, message.author.avatarURL);
        embed1.setDescription(authorAvatarLink);
        embed1.setImage(authorAvatarLink);
        message.channel.send({embed : embed1});
    }

    if (message.content.toLowerCase().startsWith(commandPrefix + 'avatar')) {
        var user = message.mentions.users.first();
        var msgContent = message.content.substr(7, (message.content.length));

        if (user != null) {
            embed2.setAuthor(user.username, user.avatarURL);
            embed2.setDescription(user.avatarURL);
            embed2.setImage(user.avatarURL);
            embed2.setFooter('Requested by ' + message.author.tag);

            message.reply({ embed: embed2 });
        } else {
            var errorCmd = (commandPrefix + 'avatar');

            commandError(message, userMention(authorID), errorCmd, msgContent);
        }

        user = undefined;
        delete(user);

        embed2.setImage(null);

    }
    });
...