Discord JDA EmbedMessage Профиль Ссылка - PullRequest
0 голосов
/ 25 мая 2018

В настоящее время я делаю довольно простой лог-бот для Discord.Все, что он делает, это отправляет EmbedMessage на любой канал #log на сервере.

Этот небольшой грязный код:

@Override
public void onMessageReceived(MessageReceivedEvent e) {

    Message message = e.getMessage();
    User author = e.getAuthor();
    MessageChannel channel = e.getChannel();

    if (channel.getName().equalsIgnoreCase("log") && !author.isBot()) {
        message.delete().queue();
    } else {

        EmbedBuilder eBuilder = new EmbedBuilder();

        String aMention = "@" + author.getName() + "#" + author.getDiscriminator();

        eBuilder.setAuthor(aMention, null, author.getEffectiveAvatarUrl());
        eBuilder.setColor(Color.GRAY);
        eBuilder.setFooter("#" + channel.getName(), null);
        eBuilder.appendDescription(message.getContentDisplay());

        MessageEmbed embed = eBuilder.build();

        for (MessageChannel mc : e.getGuild().getTextChannels()) {
            if (mc.getName().equalsIgnoreCase("log") && !author.isBot()) {
                mc.sendMessage(embed).queue();
            }
        }
    }
}

- это настройка для входа в чат, не являющийся ботом.В настоящее время, кажется, не устанавливается прямая ссылка профиля на говорящего пользователя в строке String aMention = "@" + author.getName() + "#" + author.getDiscriminator();.Я пытался найти конкретный метод, который получает ссылку на профиль, но в настоящее время я не могу его найти.

1 Ответ

0 голосов
/ 10 октября 2018

Если вы хотите упомянуть участника, просто используйте:

Member yourMember = e.getMember();

String mention = yourMember.getAsMention();

// ...your code
...