diff --git a/pom.xml b/pom.xml index 2ca7205..7dd1b02 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ com.backtobedrock Rewardslite - 3.1.3 + 3.1.4-papi-SNAPSHOT jar RewardsLite diff --git a/src/com/backtobedrock/rewardslite/Rewardslite.java b/src/com/backtobedrock/rewardslite/Rewardslite.java index af2c863..a686caf 100644 --- a/src/com/backtobedrock/rewardslite/Rewardslite.java +++ b/src/com/backtobedrock/rewardslite/Rewardslite.java @@ -40,6 +40,8 @@ public final class Rewardslite extends JavaPlugin { private final Map openInterfaces = new HashMap<>(); private UpdateChecker updateChecker; + public static boolean PAPI_ENABLED = false; + //configurations private Commands commands; private Configurations configurations; @@ -96,6 +98,7 @@ private void initializeDependencies() { //PAPI if (Bukkit.getPluginManager().getPlugin("PlaceholderAPI") != null) { new PlaceholdersRewardsLite().register(); + PAPI_ENABLED = true; } //EssentialsX diff --git a/src/com/backtobedrock/rewardslite/domain/Reward.java b/src/com/backtobedrock/rewardslite/domain/Reward.java index 1d73805..a003fa7 100644 --- a/src/com/backtobedrock/rewardslite/domain/Reward.java +++ b/src/com/backtobedrock/rewardslite/domain/Reward.java @@ -116,7 +116,7 @@ public boolean redeemReward(Player player, boolean manual) { put("player", player.getName()); put("player_uuid", player.getUniqueId().toString()); }}; - this.rewards.forEach(r -> Bukkit.getScheduler().runTask(this.plugin, () -> Bukkit.dispatchCommand(Bukkit.getServer().getConsoleSender(), MessageUtils.replacePlaceholders(r, placeholders)))); + this.rewards.forEach(r -> Bukkit.getScheduler().runTask(this.plugin, () -> Bukkit.dispatchCommand(Bukkit.getServer().getConsoleSender(), MessageUtils.replaceAllPlaceholders(player, r, placeholders)))); this.notify(player); return true; diff --git a/src/com/backtobedrock/rewardslite/utilities/MessageUtils.java b/src/com/backtobedrock/rewardslite/utilities/MessageUtils.java index 6973005..d3048b0 100644 --- a/src/com/backtobedrock/rewardslite/utilities/MessageUtils.java +++ b/src/com/backtobedrock/rewardslite/utilities/MessageUtils.java @@ -3,7 +3,9 @@ import com.backtobedrock.rewardslite.Rewardslite; import com.backtobedrock.rewardslite.domain.enumerations.MinecraftVersion; import com.backtobedrock.rewardslite.domain.enumerations.TimePattern; +import me.clip.placeholderapi.PlaceholderAPI; import net.md_5.bungee.api.ChatColor; +import org.bukkit.entity.Player; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.meta.ItemMeta; import org.bukkit.plugin.java.JavaPlugin; @@ -133,6 +135,14 @@ public static String getTimeFromTicks(long amount, TimePattern pattern) { return sb.toString(); } + public static String replaceAllPlaceholders(Player player, String text, Map internalPlaceholders) { + String result = replacePlaceholders(text, internalPlaceholders); + if (Rewardslite.PAPI_ENABLED) { + result = PlaceholderAPI.setPlaceholders(player, result); + } + return result; + } + public static String replacePlaceholders(String string, Map placeholders) { for (Map.Entry entry : placeholders.entrySet()) { string = string.replaceAll("%" + entry.getKey().toLowerCase() + "%", entry.getValue());