Skip to content

Commit 570cdf8

Browse files
feat: properly add MiniPlaceholders support everywhere
1 parent 0625f22 commit 570cdf8

3 files changed

Lines changed: 28 additions & 11 deletions

File tree

PistonChat/src/main/java/net/pistonmaster/pistonchat/commands/MainCommand.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ public boolean onCommand(CommandSender sender, Command command, String label, St
3535
sender.sendMessage(command.getPermissionMessage());
3636
}
3737

38-
String headerText = LegacyComponentSerializer.legacySection().serialize(plugin.getCommonTool().getLanguageMessage("help-header", false));
38+
String headerText = LegacyComponentSerializer.legacySection().serialize(plugin.getCommonTool().getLanguageMessage(plugin.getCommonTool().senderAudience(sender), "help-header", false));
3939
ComponentBuilder builder = new ComponentBuilder(headerText).color(ChatColor.GOLD);
4040

4141
for (Map.Entry<String, Map<String, Object>> entry : plugin.getDescription().getCommands().entrySet()) {

PistonChat/src/main/java/net/pistonmaster/pistonchat/hooks/MiniPlaceholdersHook.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,4 +23,12 @@ public static Pointered getRelationalAudience(PistonChat plugin, Audience source
2323
return target;
2424
}
2525
}
26+
27+
public static TagResolver audienceGlobalPlaceholders(PistonChat plugin) {
28+
if (plugin.getServer().getPluginManager().isPluginEnabled("MiniPlaceholders")) {
29+
return MiniPlaceholders.audienceGlobalPlaceholders();
30+
} else {
31+
return TagResolver.empty();
32+
}
33+
}
2634
}

PistonChat/src/main/java/net/pistonmaster/pistonchat/tools/CommonTool.java

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

33
import lombok.RequiredArgsConstructor;
44
import net.kyori.adventure.audience.Audience;
5+
import net.kyori.adventure.pointer.Pointered;
56
import net.kyori.adventure.text.Component;
67
import net.kyori.adventure.text.event.ClickEvent;
78
import net.kyori.adventure.text.event.HoverEvent;
@@ -109,33 +110,40 @@ private void sendReceiver(CommandSender sender, String message, CommandSender re
109110
receiverAudience.sendMessage(MiniMessage.miniMessage().deserialize(senderString, MiniPlaceholdersHook.getRelationalAudience(plugin, senderAudience, receiverAudience), tagResolver));
110111
}
111112

112-
public Component getLanguageMessage(String messageKey, boolean prefix, TagResolver... tagResolvers) {
113+
public Component getLanguageMessage(Audience audience, String messageKey, boolean prefix, TagResolver... tagResolvers) {
113114
String messageString = getMessageByKey(messageKey);
114-
Component messageComponent = MiniMessage.miniMessage().deserialize(messageString, tagResolvers);
115+
TagResolver combinedResolver = TagResolver.resolver(
116+
MiniPlaceholdersHook.audienceGlobalPlaceholders(plugin),
117+
TagResolver.resolver(tagResolvers)
118+
);
119+
Component messageComponent = MiniMessage.miniMessage().deserialize(messageString, audience, combinedResolver);
115120

116121
if (!prefix) {
117122
return messageComponent;
118123
}
119124

120125
String formatString = plugin.getPluginConfig().messages.format;
121126

122-
TagResolver tagResolver = TagResolver.resolver(
127+
TagResolver formatResolver = TagResolver.resolver(
128+
MiniPlaceholdersHook.audienceGlobalPlaceholders(plugin),
123129
Placeholder.component("message", messageComponent)
124130
);
125131

126-
return MiniMessage.miniMessage().deserialize(formatString, tagResolver);
132+
return MiniMessage.miniMessage().deserialize(formatString, audience, formatResolver);
127133
}
128134

129135
private String getMessageByKey(String key) {
130136
return MessageKeyResolver.getMessageByKey(plugin.getPluginConfig().messages, key);
131137
}
132138

133139
public void sendLanguageMessage(CommandSender sender, String messageKey, TagResolver... tagResolvers) {
134-
senderAudience(sender).sendMessage(getLanguageMessage(messageKey, true, tagResolvers));
140+
Audience audience = senderAudience(sender);
141+
audience.sendMessage(getLanguageMessage(audience, messageKey, true, tagResolvers));
135142
}
136143

137144
public void sendLanguageMessageNoPrefix(CommandSender sender, String messageKey, TagResolver... tagResolvers) {
138-
senderAudience(sender).sendMessage(getLanguageMessage(messageKey, false, tagResolvers));
145+
Audience audience = senderAudience(sender);
146+
audience.sendMessage(getLanguageMessage(audience, messageKey, false, tagResolvers));
139147
}
140148

141149
public Optional<TextColor> getChatColorFor(String message, Player player) {
@@ -163,9 +171,10 @@ public void sendChatMessage(Player chatter, String message, Player receiver, @Nu
163171
Audience chatterAudience = senderAudience(chatter);
164172
Audience receiverAudience = senderAudience(receiver);
165173
TagResolver miniPlaceholderResolver = MiniPlaceholdersHook.relationalGlobalPlaceholders(plugin);
174+
Pointered relationalAudience = MiniPlaceholdersHook.getRelationalAudience(plugin, chatterAudience, receiverAudience);
166175
Component formatComponent = overrideFormat != null
167176
? overrideFormat
168-
: getFormat(chatter, miniPlaceholderResolver);
177+
: getFormat(chatter, relationalAudience, miniPlaceholderResolver);
169178

170179
if (receiver.hasPermission("pistonchat.playernamereply")) {
171180
String hoverText = plugin.getPluginConfig().hoverText;
@@ -193,7 +202,7 @@ public void sendChatMessage(Player chatter, String message, Player receiver, @Nu
193202
)));
194203
}
195204

196-
public Component getFormat(Player chatter, TagResolver miniPlaceholderResolver) {
205+
public Component getFormat(Player chatter, Pointered pointered, TagResolver miniPlaceholderResolver) {
197206
PistonChatConfig config = plugin.getPluginConfig();
198207
String formatString = "<player_name>";
199208
for (Map.Entry<String, String> entry : config.chatFormats.entrySet()) {
@@ -203,7 +212,7 @@ public Component getFormat(Player chatter, TagResolver miniPlaceholderResolver)
203212
}
204213
}
205214

206-
return MiniMessage.miniMessage().deserialize(formatString, TagResolver.resolver(
215+
return MiniMessage.miniMessage().deserialize(formatString, pointered, TagResolver.resolver(
207216
miniPlaceholderResolver,
208217
getDisplayNameResolver(chatter)
209218
));
@@ -225,7 +234,7 @@ public TagResolver getDisplayNameResolver(CommandSender sender) {
225234
}
226235
}
227236

228-
private Audience senderAudience(CommandSender sender) {
237+
public Audience senderAudience(CommandSender sender) {
229238
if (sender instanceof Audience audience) {
230239
return audience;
231240
} else {

0 commit comments

Comments
 (0)