From 7ed6ec80ad7949b94a1c011bebee9a28b2ceebba Mon Sep 17 00:00:00 2001 From: JRoy <10731363+JRoy@users.noreply.github.com> Date: Sat, 28 Jun 2025 18:44:32 -0700 Subject: [PATCH] Discord: Add PAPI support to avatar-url --- .../java/net/essentialsx/discord/util/DiscordUtil.java | 9 ++++++++- EssentialsDiscord/src/main/resources/config.yml | 3 ++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/EssentialsDiscord/src/main/java/net/essentialsx/discord/util/DiscordUtil.java b/EssentialsDiscord/src/main/java/net/essentialsx/discord/util/DiscordUtil.java index 01f82a51115..4911e91689a 100644 --- a/EssentialsDiscord/src/main/java/net/essentialsx/discord/util/DiscordUtil.java +++ b/EssentialsDiscord/src/main/java/net/essentialsx/discord/util/DiscordUtil.java @@ -219,7 +219,14 @@ public static boolean matchesRole(Role role, String roleDefinition) { } public static String getAvatarUrl(final JDADiscordService jda, final Player player) { - return jda.getSettings().getAvatarURL().replace("{uuid}", player.getUniqueId().toString()).replace("{name}", player.getName()); + final String format = jda.getSettings().getAvatarURL(); + final String filled; + if (jda.getPlugin().isPAPI() && format != null) { + filled = me.clip.placeholderapi.PlaceholderAPI.setPlaceholders(player, format); + } else { + filled = format; + } + return filled.replace("{uuid}", player.getUniqueId().toString()).replace("{name}", player.getName()); } public static void dispatchDiscordMessage(final JDADiscordService jda, final MessageType messageType, final String message, final boolean allowPing, final String avatarUrl, final String name, final UUID uuid) { diff --git a/EssentialsDiscord/src/main/resources/config.yml b/EssentialsDiscord/src/main/resources/config.yml index 3860166b77e..37f884dea27 100644 --- a/EssentialsDiscord/src/main/resources/config.yml +++ b/EssentialsDiscord/src/main/resources/config.yml @@ -22,7 +22,7 @@ discord-url: "https://discord.gg/invite-code" # Defined text channels # ===================== -# +# # Channels defined here can be used for two different purposes: # # Firstly, channels defined here can be used to give players permission to see messages from said channel. @@ -163,6 +163,7 @@ show-avatar: false # Any URL in here should only return a proper JPEG/PNG image and nothing else. # To include the UUID of the player in this URL, use "{uuid}". # To include the name of the player in this URL, use "{name}". +# ... PlaceholderAPI placeholders are also supported here too! avatar-url: "https://crafthead.net/helm/{uuid}" # Whether or not fake join and leave messages should be sent to Discord when a player toggles vanish in Minecraft.