javaeventsdiscord-jda

How can I mention a user via JDA-discord?


I want to mention the user, as I showed in this picture, I don't understand how to do it, I had attempts I tried to do:

event.getChannel().send Message("@" + event.getMember().getNickname()).queue();

or

event.getChannel().send Message("@everyone").queue();

image


Solution

  • Discord mentions are done using IDs. A user mention is formatted as <@{user_id}>. In your message, this would be done this way:

    event.getChannel().sendMessage("<@" + event.getMember().getId() + ">").queue()
    

    However, you can also just use the existing method on members:

    event.getChannel().sendMessage(event.getMember().getAsMention()).queue()
    

    If you only have an id, you can also use UserSnowflake

    event.getChannel().sendMessage(UserSnowflake.fromId(id).getAsMention()).queue()