0

目前我正在为 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();。我尝试搜索获取个人资料链接的特定方法,但目前我无法找到它。

4

1 回答 1

0

如果你想提及一个成员,只需使用:

Member yourMember = e.getMember();

String mention = yourMember.getAsMention();

// ...your code
于 2018-10-10T09:24:04.073 回答