Skip to content

Commit 7ed94e9

Browse files
authored
feat(bukkit): parse placeholderapi tokens in messages (#1030)
fixes #974
1 parent 31f36a0 commit 7ed94e9

File tree

5 files changed

+38
-2
lines changed

5 files changed

+38
-2
lines changed

bukkit/src/main/java/me/confuser/banmanager/bukkit/BMBukkitPlugin.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import lombok.Getter;
44
import me.confuser.banmanager.bukkit.listeners.*;
5+
import me.confuser.banmanager.bukkit.placeholders.PAPIPlaceholderResolver;
56
import me.confuser.banmanager.bukkit.placeholders.PAPIPlaceholders;
67
import me.confuser.banmanager.common.BanManagerPlugin;
78
import me.confuser.banmanager.common.commands.CommonCommand;
@@ -150,6 +151,8 @@ public void setupListeners() {
150151

151152
if(Bukkit.getPluginManager().getPlugin("PlaceholderAPI") != null) {
152153
new PAPIPlaceholders(plugin).register();
154+
plugin.setPlaceholderResolver(new PAPIPlaceholderResolver());
155+
plugin.getLogger().info("PlaceholderAPI support enabled for messages");
153156
}
154157
}
155158

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
package me.confuser.banmanager.bukkit.placeholders;
2+
3+
import me.clip.placeholderapi.PlaceholderAPI;
4+
import me.confuser.banmanager.common.CommonPlayer;
5+
import me.confuser.banmanager.common.PlaceholderResolver;
6+
import org.bukkit.Bukkit;
7+
import org.bukkit.entity.Player;
8+
9+
public class PAPIPlaceholderResolver implements PlaceholderResolver {
10+
@Override
11+
public String resolve(CommonPlayer player, String message) {
12+
Player bukkitPlayer = Bukkit.getPlayer(player.getUniqueId());
13+
if (bukkitPlayer == null) return message;
14+
return PlaceholderAPI.setPlaceholders(bukkitPlayer, message);
15+
}
16+
}

common/src/main/java/me/confuser/banmanager/common/BanManagerPlugin.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -148,6 +148,10 @@ public class BanManagerPlugin {
148148
@Getter
149149
private Runner syncRunner;
150150

151+
@Setter
152+
@Getter
153+
private PlaceholderResolver placeholderResolver;
154+
151155
public BanManagerPlugin(PluginInfo pluginInfo, CommonLogger logger, File dataFolder, CommonScheduler scheduler, CommonServer server, CommonMetrics metrics) {
152156
this.pluginInfo = pluginInfo;
153157
this.logger = logger;
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
package me.confuser.banmanager.common;
2+
3+
@FunctionalInterface
4+
public interface PlaceholderResolver {
5+
String resolve(CommonPlayer player, String message);
6+
}

common/src/main/java/me/confuser/banmanager/common/util/Message.java

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,10 @@
22

33
import lombok.EqualsAndHashCode;
44
import lombok.Getter;
5+
import me.confuser.banmanager.common.BanManagerPlugin;
56
import me.confuser.banmanager.common.CommonLogger;
67
import me.confuser.banmanager.common.CommonPlayer;
8+
import me.confuser.banmanager.common.PlaceholderResolver;
79
import me.confuser.banmanager.common.commands.CommonSender;
810
import me.confuser.banmanager.common.configs.Config;
911
import me.confuser.banmanager.common.configuration.file.YamlConfiguration;
@@ -101,7 +103,13 @@ public boolean sendTo(CommonPlayer player) {
101103
if (player == null) return false;
102104
if (!player.isOnline()) return false;
103105

104-
player.sendMessage(message);
106+
String resolved = message;
107+
PlaceholderResolver resolver = BanManagerPlugin.getInstance().getPlaceholderResolver();
108+
if (resolver != null) {
109+
resolved = resolver.resolve(player, message);
110+
}
111+
112+
player.sendMessage(resolved);
105113

106114
return true;
107115
}
@@ -115,4 +123,3 @@ public String toString() {
115123
return message;
116124
}
117125
}
118-

0 commit comments

Comments
 (0)