diff --git a/pom.xml b/pom.xml
index c30fec9..8f2778e 100644
--- a/pom.xml
+++ b/pom.xml
@@ -64,6 +64,10 @@
+
+ placeholderapi
+ https://repo.extendedclip.com/content/repositories/placeholderapi/
+
papermc-repo
https://repo.papermc.io/repository/maven-public/
@@ -80,6 +84,12 @@
+
+ me.clip
+ placeholderapi
+ 2.11.6
+ provided
+
com.technicjelle
UpdateChecker
diff --git a/src/main/java/com/technicjelle/bluemapcustomskinprovider/BlueMapCustomSkinProvider.java b/src/main/java/com/technicjelle/bluemapcustomskinprovider/BlueMapCustomSkinProvider.java
index 13ddc17..f5b25c7 100644
--- a/src/main/java/com/technicjelle/bluemapcustomskinprovider/BlueMapCustomSkinProvider.java
+++ b/src/main/java/com/technicjelle/bluemapcustomskinprovider/BlueMapCustomSkinProvider.java
@@ -4,6 +4,7 @@
import de.bluecolored.bluemap.api.BlueMapAPI;
import de.bluecolored.bluemap.api.plugin.SkinProvider;
import org.bstats.bukkit.Metrics;
+import org.bukkit.Bukkit;
import org.bukkit.plugin.java.JavaPlugin;
import org.jetbrains.annotations.NotNull;
@@ -56,6 +57,7 @@ public void onEnable() {
.replace("{UUID}", uuid)
.replace("{USERNAME}", username)
.replace("{UUID-}", uuid.replace("-", ""));
+ localUrl = PAPIUtil.processPAPI(Bukkit.getPlayer(playerUUID), localUrl);
getLogger().info("Downloading skin for " + username + " from " + localUrl);
BufferedImage img = downloadImage(localUrl);
return Optional.ofNullable(img);
diff --git a/src/main/java/com/technicjelle/bluemapcustomskinprovider/PAPIUtil.java b/src/main/java/com/technicjelle/bluemapcustomskinprovider/PAPIUtil.java
new file mode 100644
index 0000000..e2ff170
--- /dev/null
+++ b/src/main/java/com/technicjelle/bluemapcustomskinprovider/PAPIUtil.java
@@ -0,0 +1,16 @@
+package com.technicjelle.bluemapcustomskinprovider;
+
+import me.clip.placeholderapi.PlaceholderAPI;
+import org.bukkit.Bukkit;
+import org.bukkit.entity.Player;
+
+public final class PAPIUtil {
+ private PAPIUtil() {}
+
+ public static String processPAPI(Player player, String str) {
+ if (Bukkit.getPluginManager().getPlugin("PlaceholderAPI") != null && player != null) {
+ return PlaceholderAPI.setPlaceholders(player, str);
+ }
+ else return str;
+ }
+}
diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml
index 8191566..51452f1 100644
--- a/src/main/resources/config.yml
+++ b/src/main/resources/config.yml
@@ -1,3 +1,5 @@
# Available placeholders: {UUID},{UUID-},{USERNAME}
# {UUID-}: UUID of the player without "-"
+# Supports PAPI placeholders!
+# Example: %player_displayname% (don't forget to install extension in PAPI -> /papi ecloud download Player)
url: "https://minotar.net/skin/{UUID}"
diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml
index 28a996d..0aa26bb 100644
--- a/src/main/resources/plugin.yml
+++ b/src/main/resources/plugin.yml
@@ -4,6 +4,8 @@ main: com.technicjelle.bluemapcustomskinprovider.BlueMapCustomSkinProvider
api-version: 1.13
depend:
- BlueMap
+softdepend:
+ - PlaceholderAPI
authors: [ TechnicJelle ]
description: ${project.description}
website: ${project.url}