From 4a76b47fb16ce6dd837d4a6f6aac3e084feaa0ff Mon Sep 17 00:00:00 2001 From: yusshu Date: Fri, 2 Feb 2024 21:04:04 -0500 Subject: [PATCH] *: (MiniPlaceholders Integration) deprecate 'unemoji', add 'creativelglyphs' --- .../MiniPlaceholdersIntegration.java | 42 ++++++++++++++----- 1 file changed, 32 insertions(+), 10 deletions(-) diff --git a/plugin/src/main/java/team/unnamed/creativeglyphs/plugin/integration/miniplaceholders/MiniPlaceholdersIntegration.java b/plugin/src/main/java/team/unnamed/creativeglyphs/plugin/integration/miniplaceholders/MiniPlaceholdersIntegration.java index 210acc4..4f55410 100644 --- a/plugin/src/main/java/team/unnamed/creativeglyphs/plugin/integration/miniplaceholders/MiniPlaceholdersIntegration.java +++ b/plugin/src/main/java/team/unnamed/creativeglyphs/plugin/integration/miniplaceholders/MiniPlaceholdersIntegration.java @@ -2,18 +2,26 @@ import io.github.miniplaceholders.api.Expansion; import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.minimessage.Context; import net.kyori.adventure.text.minimessage.tag.Tag; +import net.kyori.adventure.text.minimessage.tag.resolver.ArgumentQueue; import org.bukkit.plugin.Plugin; import org.jetbrains.annotations.NotNull; import team.unnamed.creativeglyphs.Glyph; +import team.unnamed.creativeglyphs.plugin.CreativeGlyphsPlugin; import team.unnamed.creativeglyphs.plugin.integration.PluginIntegration; import team.unnamed.creativeglyphs.plugin.PluginGlyphMap; +import java.util.function.BiFunction; + +import static java.util.Objects.requireNonNull; + public final class MiniPlaceholdersIntegration implements PluginIntegration { - private final PluginGlyphMap registry; + private final CreativeGlyphsPlugin plugin; + private boolean warnAboutDeprecation = true; - public MiniPlaceholdersIntegration(final PluginGlyphMap registry) { - this.registry = registry; + public MiniPlaceholdersIntegration(final @NotNull CreativeGlyphsPlugin plugin) { + this.plugin = requireNonNull(plugin, "plugin"); } @Override @@ -22,16 +30,30 @@ public MiniPlaceholdersIntegration(final PluginGlyphMap registry) { } @Override - public void enable(final @NotNull Plugin hook) { + public void enable(final @NotNull Plugin miniPlaceholders) { + final var placeholder = (BiFunction) (queue, ctx) -> { + final var argument = queue.popOr("You need to provide an argument"); + final var glyph = plugin.registry().getByName(argument.value()); + if (glyph == null) { + return null; + } else { + return Tag.selfClosingInserting(Component.text(glyph.replacement())); + } + }; + + Expansion.builder("creativeglyphs") + .globalPlaceholder("glyph", placeholder) + .build() + .register(); + Expansion.builder("unemoji") .globalPlaceholder("emoji", (queue, ctx) -> { - final Tag.Argument argument = queue.popOr("You need to provide an argument"); - Glyph glyph = registry.getByName(argument.value()); - if (glyph == null) { - return null; - } else { - return Tag.selfClosingInserting(Component.text(glyph.replacement())); + if (warnAboutDeprecation) { + plugin.getLogger().warning("(MiniPlaceholders Integration) Detected usage of deprecated" + + " placeholder format: '', please use '' instead."); + warnAboutDeprecation = false; } + return placeholder.apply(queue, ctx); }) .build() .register();