Skip to content

Commit

Permalink
feat: config option placeholderSelfClosingTags
Browse files Browse the repository at this point in the history
  • Loading branch information
rexlManu committed Aug 15, 2024
1 parent 962d157 commit f3b59bf
Show file tree
Hide file tree
Showing 4 changed files with 46 additions and 17 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -140,4 +140,10 @@ public class PluginConfiguration {
"<papi:(placeholder name)> e.g. <papi:player_displayname>"
})
private Messages messages = new Messages();

@Comment({
"Should the internal placeholders be self closing tags?",
"That means styling while not be applied to childrens of the text components."
})
private boolean placeholderSelfClosingTags = true;
}
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
import de.rexlmanu.fairychat.plugin.integration.Integration;
import de.rexlmanu.fairychat.plugin.integration.chat.PlaceholderSupport;
import de.rexlmanu.fairychat.plugin.paper.event.EventMessageUtils;
import de.rexlmanu.fairychat.plugin.utility.TagResolverUtil;
import lombok.RequiredArgsConstructor;
import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.minimessage.MiniMessage;
Expand Down Expand Up @@ -40,12 +41,13 @@ public TagResolver resolvePlayerPlaceholder(Player player) {
(argumentQueue, context) -> {
String worldName = player.getWorld().getName();

return Tag.selfClosingInserting(
this.miniMessage.deserialize(
this.configurationProvider
.get()
.worldNames()
.getOrDefault(worldName, worldName)));
return TagResolverUtil.resolver(configurationProvider.get())
.apply(
this.miniMessage.deserialize(
this.configurationProvider
.get()
.worldNames()
.getOrDefault(worldName, worldName)));
}),
this.resolvePlaceholder());
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,14 @@
package de.rexlmanu.fairychat.plugin.integration.types;

import com.google.inject.Inject;
import com.google.inject.Provider;
import com.google.inject.Singleton;
import de.rexlmanu.fairychat.plugin.Constants;
import de.rexlmanu.fairychat.plugin.configuration.PluginConfiguration;
import de.rexlmanu.fairychat.plugin.integration.Integration;
import de.rexlmanu.fairychat.plugin.integration.chat.PlaceholderSupport;
import de.rexlmanu.fairychat.plugin.utility.LegacySupport;
import de.rexlmanu.fairychat.plugin.utility.TagResolverUtil;
import lombok.RequiredArgsConstructor;
import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.minimessage.tag.Tag;
Expand All @@ -27,6 +30,7 @@ public class LuckPermsIntegration implements Integration, PlaceholderSupport {
private final PluginManager pluginManager;
private final ServicesManager servicesManager;
private @Nullable RegisteredServiceProvider<LuckPerms> luckPermsService;
private final Provider<PluginConfiguration> configurationProvider;

@Override
public boolean available() {
Expand All @@ -47,20 +51,24 @@ public TagResolver resolvePlayerPlaceholder(Player player) {
return TagResolver.resolver(
TagResolver.resolver(
"fc_luckperms_prefix",
Tag.selfClosingInserting(LegacySupport.parsePossibleLegacy(metaData.getPrefix()))),
TagResolverUtil.resolver(this.configurationProvider.get())
.apply(LegacySupport.parsePossibleLegacy(metaData.getPrefix()))),
TagResolver.resolver(
"fc_luckperms_suffix",
Tag.selfClosingInserting(LegacySupport.parsePossibleLegacy(metaData.getSuffix()))),
TagResolverUtil.resolver(this.configurationProvider.get())
.apply(LegacySupport.parsePossibleLegacy(metaData.getSuffix()))),
TagResolver.resolver(
"fc_luckperms_prefixes",
Tag.selfClosingInserting(
LegacySupport.parsePossibleLegacy(
String.join("", metaData.getPrefixes().values())))),
TagResolverUtil.resolver(this.configurationProvider.get())
.apply(
LegacySupport.parsePossibleLegacy(
String.join("", metaData.getPrefixes().values())))),
TagResolver.resolver(
"fc_luckperms_suffixes",
Tag.selfClosingInserting(
LegacySupport.parsePossibleLegacy(
String.join("", metaData.getSuffixes().values())))),
TagResolverUtil.resolver(this.configurationProvider.get())
.apply(
LegacySupport.parsePossibleLegacy(
String.join("", metaData.getSuffixes().values())))),
TagResolver.resolver(
"fc_luckperms_username_color",
Tag.inserting(
Expand Down Expand Up @@ -88,9 +96,10 @@ public TagResolver resolvePlayerPlaceholder(Player player) {
return Tag.selfClosingInserting(Component.empty());
}

return Tag.selfClosingInserting(
LegacySupport.parsePossibleLegacy(
group.getCachedData().getMetaData().getPrefix()));
return TagResolverUtil.resolver(this.configurationProvider.get())
.apply(
LegacySupport.parsePossibleLegacy(
group.getCachedData().getMetaData().getPrefix()));
}));
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
package de.rexlmanu.fairychat.plugin.utility;

import de.rexlmanu.fairychat.plugin.configuration.PluginConfiguration;
import java.util.function.Function;
import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.minimessage.tag.Tag;

public class TagResolverUtil {
public static Function<Component, Tag> resolver(PluginConfiguration configuration) {
return configuration.placeholderSelfClosingTags() ? Tag::selfClosingInserting : Tag::inserting;
}
}

0 comments on commit f3b59bf

Please sign in to comment.