From 85bfdd46f7362c17607b91404e5fe3d50cd66f98 Mon Sep 17 00:00:00 2001 From: Marcel Schoen Date: Wed, 12 Oct 2022 21:53:13 +0200 Subject: [PATCH 1/2] Adding PAPI support for reward commands. --- pom.xml | 2 +- src/com/backtobedrock/rewardslite/Rewardslite.java | 3 +++ src/com/backtobedrock/rewardslite/domain/Reward.java | 11 ++++++++++- 3 files changed, 14 insertions(+), 2 deletions(-) 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..c0dcb42 100644 --- a/src/com/backtobedrock/rewardslite/domain/Reward.java +++ b/src/com/backtobedrock/rewardslite/domain/Reward.java @@ -4,6 +4,7 @@ import com.backtobedrock.rewardslite.domain.enumerations.CountPrevious; import com.backtobedrock.rewardslite.utilities.MessageUtils; import com.backtobedrock.rewardslite.utilities.PlayerUtils; +import me.clip.placeholderapi.PlaceholderAPI; import org.bukkit.Bukkit; import org.bukkit.entity.Player; import org.bukkit.plugin.java.JavaPlugin; @@ -116,12 +117,20 @@ 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(), replaceAllPlaceholders(player, r, placeholders)))); this.notify(player); return true; } + private String replaceAllPlaceholders(Player player, String text, Map internalPlaceholders) { + String result = MessageUtils.replacePlaceholders(text, internalPlaceholders); + if (Rewardslite.PAPI_ENABLED) { + result = PlaceholderAPI.setPlaceholders(player, result); + } + return result; + } + private void notify(Player player) { if (this.notification != null) this.notification.getNotifications().forEach(n -> n.notify(player, player.getName())); From 9188bc3deef353887dae93ad8c38f65b04dccd65 Mon Sep 17 00:00:00 2001 From: Marcel Schoen Date: Wed, 12 Oct 2022 21:58:00 +0200 Subject: [PATCH 2/2] Adding PAPI support for reward commands. --- src/com/backtobedrock/rewardslite/domain/Reward.java | 11 +---------- .../rewardslite/utilities/MessageUtils.java | 10 ++++++++++ 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/src/com/backtobedrock/rewardslite/domain/Reward.java b/src/com/backtobedrock/rewardslite/domain/Reward.java index c0dcb42..a003fa7 100644 --- a/src/com/backtobedrock/rewardslite/domain/Reward.java +++ b/src/com/backtobedrock/rewardslite/domain/Reward.java @@ -4,7 +4,6 @@ import com.backtobedrock.rewardslite.domain.enumerations.CountPrevious; import com.backtobedrock.rewardslite.utilities.MessageUtils; import com.backtobedrock.rewardslite.utilities.PlayerUtils; -import me.clip.placeholderapi.PlaceholderAPI; import org.bukkit.Bukkit; import org.bukkit.entity.Player; import org.bukkit.plugin.java.JavaPlugin; @@ -117,20 +116,12 @@ 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(), replaceAllPlaceholders(player, 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; } - private String replaceAllPlaceholders(Player player, String text, Map internalPlaceholders) { - String result = MessageUtils.replacePlaceholders(text, internalPlaceholders); - if (Rewardslite.PAPI_ENABLED) { - result = PlaceholderAPI.setPlaceholders(player, result); - } - return result; - } - private void notify(Player player) { if (this.notification != null) this.notification.getNotifications().forEach(n -> n.notify(player, player.getName())); 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());