Skip to content

Commit f3b59bf

Browse files
committed
feat: config option placeholderSelfClosingTags
1 parent 962d157 commit f3b59bf

File tree

4 files changed

+46
-17
lines changed

4 files changed

+46
-17
lines changed

src/main/java/de/rexlmanu/fairychat/plugin/configuration/PluginConfiguration.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -140,4 +140,10 @@ public class PluginConfiguration {
140140
"<papi:(placeholder name)> e.g. <papi:player_displayname>"
141141
})
142142
private Messages messages = new Messages();
143+
144+
@Comment({
145+
"Should the internal placeholders be self closing tags?",
146+
"That means styling while not be applied to childrens of the text components."
147+
})
148+
private boolean placeholderSelfClosingTags = true;
143149
}

src/main/java/de/rexlmanu/fairychat/plugin/integration/types/BuiltInPlaceholdersIntegration.java

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import de.rexlmanu.fairychat.plugin.integration.Integration;
77
import de.rexlmanu.fairychat.plugin.integration.chat.PlaceholderSupport;
88
import de.rexlmanu.fairychat.plugin.paper.event.EventMessageUtils;
9+
import de.rexlmanu.fairychat.plugin.utility.TagResolverUtil;
910
import lombok.RequiredArgsConstructor;
1011
import net.kyori.adventure.text.Component;
1112
import net.kyori.adventure.text.minimessage.MiniMessage;
@@ -40,12 +41,13 @@ public TagResolver resolvePlayerPlaceholder(Player player) {
4041
(argumentQueue, context) -> {
4142
String worldName = player.getWorld().getName();
4243

43-
return Tag.selfClosingInserting(
44-
this.miniMessage.deserialize(
45-
this.configurationProvider
46-
.get()
47-
.worldNames()
48-
.getOrDefault(worldName, worldName)));
44+
return TagResolverUtil.resolver(configurationProvider.get())
45+
.apply(
46+
this.miniMessage.deserialize(
47+
this.configurationProvider
48+
.get()
49+
.worldNames()
50+
.getOrDefault(worldName, worldName)));
4951
}),
5052
this.resolvePlaceholder());
5153
}

src/main/java/de/rexlmanu/fairychat/plugin/integration/types/LuckPermsIntegration.java

Lines changed: 20 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,14 @@
11
package de.rexlmanu.fairychat.plugin.integration.types;
22

33
import com.google.inject.Inject;
4+
import com.google.inject.Provider;
45
import com.google.inject.Singleton;
56
import de.rexlmanu.fairychat.plugin.Constants;
7+
import de.rexlmanu.fairychat.plugin.configuration.PluginConfiguration;
68
import de.rexlmanu.fairychat.plugin.integration.Integration;
79
import de.rexlmanu.fairychat.plugin.integration.chat.PlaceholderSupport;
810
import de.rexlmanu.fairychat.plugin.utility.LegacySupport;
11+
import de.rexlmanu.fairychat.plugin.utility.TagResolverUtil;
912
import lombok.RequiredArgsConstructor;
1013
import net.kyori.adventure.text.Component;
1114
import net.kyori.adventure.text.minimessage.tag.Tag;
@@ -27,6 +30,7 @@ public class LuckPermsIntegration implements Integration, PlaceholderSupport {
2730
private final PluginManager pluginManager;
2831
private final ServicesManager servicesManager;
2932
private @Nullable RegisteredServiceProvider<LuckPerms> luckPermsService;
33+
private final Provider<PluginConfiguration> configurationProvider;
3034

3135
@Override
3236
public boolean available() {
@@ -47,20 +51,24 @@ public TagResolver resolvePlayerPlaceholder(Player player) {
4751
return TagResolver.resolver(
4852
TagResolver.resolver(
4953
"fc_luckperms_prefix",
50-
Tag.selfClosingInserting(LegacySupport.parsePossibleLegacy(metaData.getPrefix()))),
54+
TagResolverUtil.resolver(this.configurationProvider.get())
55+
.apply(LegacySupport.parsePossibleLegacy(metaData.getPrefix()))),
5156
TagResolver.resolver(
5257
"fc_luckperms_suffix",
53-
Tag.selfClosingInserting(LegacySupport.parsePossibleLegacy(metaData.getSuffix()))),
58+
TagResolverUtil.resolver(this.configurationProvider.get())
59+
.apply(LegacySupport.parsePossibleLegacy(metaData.getSuffix()))),
5460
TagResolver.resolver(
5561
"fc_luckperms_prefixes",
56-
Tag.selfClosingInserting(
57-
LegacySupport.parsePossibleLegacy(
58-
String.join("", metaData.getPrefixes().values())))),
62+
TagResolverUtil.resolver(this.configurationProvider.get())
63+
.apply(
64+
LegacySupport.parsePossibleLegacy(
65+
String.join("", metaData.getPrefixes().values())))),
5966
TagResolver.resolver(
6067
"fc_luckperms_suffixes",
61-
Tag.selfClosingInserting(
62-
LegacySupport.parsePossibleLegacy(
63-
String.join("", metaData.getSuffixes().values())))),
68+
TagResolverUtil.resolver(this.configurationProvider.get())
69+
.apply(
70+
LegacySupport.parsePossibleLegacy(
71+
String.join("", metaData.getSuffixes().values())))),
6472
TagResolver.resolver(
6573
"fc_luckperms_username_color",
6674
Tag.inserting(
@@ -88,9 +96,10 @@ public TagResolver resolvePlayerPlaceholder(Player player) {
8896
return Tag.selfClosingInserting(Component.empty());
8997
}
9098

91-
return Tag.selfClosingInserting(
92-
LegacySupport.parsePossibleLegacy(
93-
group.getCachedData().getMetaData().getPrefix()));
99+
return TagResolverUtil.resolver(this.configurationProvider.get())
100+
.apply(
101+
LegacySupport.parsePossibleLegacy(
102+
group.getCachedData().getMetaData().getPrefix()));
94103
}));
95104
}
96105
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
package de.rexlmanu.fairychat.plugin.utility;
2+
3+
import de.rexlmanu.fairychat.plugin.configuration.PluginConfiguration;
4+
import java.util.function.Function;
5+
import net.kyori.adventure.text.Component;
6+
import net.kyori.adventure.text.minimessage.tag.Tag;
7+
8+
public class TagResolverUtil {
9+
public static Function<Component, Tag> resolver(PluginConfiguration configuration) {
10+
return configuration.placeholderSelfClosingTags() ? Tag::selfClosingInserting : Tag::inserting;
11+
}
12+
}

0 commit comments

Comments
 (0)