From afb3bb0dd4da857c63d1e113f987d92ad8c9bc37 Mon Sep 17 00:00:00 2001 From: Peridot Date: Thu, 16 Nov 2023 02:00:25 +0100 Subject: [PATCH 01/17] GH-33 Use kyori adventure's components whenever it's possible --- README.md | 2 +- build.gradle | 2 +- core/build.gradle | 4 +- .../adventure/AdventureHelper.java | 23 --- .../adventure/MiniComponent.java | 61 ------- .../adventure/RawComponent.java | 30 ---- .../message/MessageDispatcher.java | 54 ++++++- .../message/SendableMessage.java | 22 +-- .../message/holder/impl/ActionBarHolder.java | 16 +- .../message/holder/impl/BossBarHolder.java | 20 +-- .../message/holder/impl/ChatHolder.java | 19 ++- .../message/holder/impl/TitleHolder.java | 34 ++-- .../replace/ComponentReplacer.java | 53 ------- .../replace/replacement/Replacement.java | 58 ------- .../replacement/SimpleReplacement.java | 21 --- .../replacement/SupplierReplacement.java | 29 ---- example/build.gradle | 3 +- .../example/ExamplePlugin.java | 11 +- .../OkaeriPlaceholdersReplaceable.java | 26 +-- .../replace/PlaceholderAPIReplaceable.java | 28 ++-- .../config/serdes/ComponentTransformer.java | 24 +-- .../serdes/RawComponentTransformer.java | 26 --- .../{SerdesMessages.java => YAMLSerdes.java} | 19 ++- .../holder/ActionBarHolderTransformer.java | 12 +- .../holder/BossBarHolderSerializer.java | 16 +- .../config/serdes/holder/ChatSerializer.java | 20 +-- .../serdes/holder/SoundHolderSerializer.java | 10 +- .../serdes/holder/TitleHolderSerializer.java | 23 +-- settings.gradle | 3 +- tools/build.gradle | 3 + .../adventure/GlobalAdventureSerializer.java | 67 ++++++++ .../replace/ComponentReplacer.java | 69 ++++++++ .../replace/Replaceable.java | 14 +- .../replace/StringReplacer.java | 19 ++- .../replacement/ComponentReplacement.java | 22 +++ .../replacement/FunctionReplacement.java | 31 ++++ .../FunctionStringReplacement.java | 34 ++++ .../replace/replacement/Replacement.java | 150 ++++++++++++++++++ .../replacement/SimpleReplacement.java | 25 +++ .../replacement/SimpleStringReplacement.java | 27 ++++ .../util/TriFunction.java | 0 .../util/Validate.java | 0 42 files changed, 677 insertions(+), 453 deletions(-) delete mode 100644 core/src/main/java/dev/peri/yetanothermessageslibrary/adventure/AdventureHelper.java delete mode 100644 core/src/main/java/dev/peri/yetanothermessageslibrary/adventure/MiniComponent.java delete mode 100644 core/src/main/java/dev/peri/yetanothermessageslibrary/adventure/RawComponent.java delete mode 100644 core/src/main/java/dev/peri/yetanothermessageslibrary/replace/ComponentReplacer.java delete mode 100644 core/src/main/java/dev/peri/yetanothermessageslibrary/replace/replacement/Replacement.java delete mode 100644 core/src/main/java/dev/peri/yetanothermessageslibrary/replace/replacement/SimpleReplacement.java delete mode 100644 core/src/main/java/dev/peri/yetanothermessageslibrary/replace/replacement/SupplierReplacement.java delete mode 100644 repository/okaeri/src/main/java/dev/peri/yetanothermessageslibrary/config/serdes/RawComponentTransformer.java rename repository/okaeri/src/main/java/dev/peri/yetanothermessageslibrary/config/serdes/{SerdesMessages.java => YAMLSerdes.java} (60%) create mode 100644 tools/build.gradle create mode 100644 tools/src/main/java/dev/peri/yetanothermessageslibrary/adventure/GlobalAdventureSerializer.java create mode 100644 tools/src/main/java/dev/peri/yetanothermessageslibrary/replace/ComponentReplacer.java rename {core => tools}/src/main/java/dev/peri/yetanothermessageslibrary/replace/Replaceable.java (66%) rename {core => tools}/src/main/java/dev/peri/yetanothermessageslibrary/replace/StringReplacer.java (67%) create mode 100644 tools/src/main/java/dev/peri/yetanothermessageslibrary/replace/replacement/ComponentReplacement.java create mode 100644 tools/src/main/java/dev/peri/yetanothermessageslibrary/replace/replacement/FunctionReplacement.java create mode 100644 tools/src/main/java/dev/peri/yetanothermessageslibrary/replace/replacement/FunctionStringReplacement.java create mode 100644 tools/src/main/java/dev/peri/yetanothermessageslibrary/replace/replacement/Replacement.java create mode 100644 tools/src/main/java/dev/peri/yetanothermessageslibrary/replace/replacement/SimpleReplacement.java create mode 100644 tools/src/main/java/dev/peri/yetanothermessageslibrary/replace/replacement/SimpleStringReplacement.java rename {core => tools}/src/main/java/dev/peri/yetanothermessageslibrary/util/TriFunction.java (100%) rename {core => tools}/src/main/java/dev/peri/yetanothermessageslibrary/util/Validate.java (100%) diff --git a/README.md b/README.md index 66a7e61..48e7f7c 100644 --- a/README.md +++ b/README.md @@ -21,8 +21,8 @@ Implementations of values/messages suppliers or utilities class to easily add su ### Replaceable Implementations of `Replaceable` interface to easily replace placeholders in messages -- [okaeri-placeholders](https://github.com/OkaeriPoland/okaeri-placeholders) - [PlaceholderAPI](https://github.com/PlaceholderAPI/PlaceholderAPI) +- [okaeri-placeholders **\[EXPERIMENTAL\]**](https://github.com/OkaeriPoland/okaeri-placeholders) ## Maven/Gradle diff --git a/build.gradle b/build.gradle index a1bffba..acef567 100644 --- a/build.gradle +++ b/build.gradle @@ -5,7 +5,7 @@ plugins { allprojects { group 'dev.peri.yetanothermessageslibrary' - version '6.8.0-SNAPSHOT' + version '7.0.0-SNAPSHOT' apply plugin: 'java-library' apply plugin: 'maven-publish' diff --git a/core/build.gradle b/core/build.gradle index 32a12d8..ce8b74e 100644 --- a/core/build.gradle +++ b/core/build.gradle @@ -1,5 +1,3 @@ dependencies { - compileOnlyApi adventure.api - compileOnlyApi adventure.minimessage - compileOnlyApi adventure.serializer.legacy + api project(':tools') } \ No newline at end of file diff --git a/core/src/main/java/dev/peri/yetanothermessageslibrary/adventure/AdventureHelper.java b/core/src/main/java/dev/peri/yetanothermessageslibrary/adventure/AdventureHelper.java deleted file mode 100644 index bd01242..0000000 --- a/core/src/main/java/dev/peri/yetanothermessageslibrary/adventure/AdventureHelper.java +++ /dev/null @@ -1,23 +0,0 @@ -package dev.peri.yetanothermessageslibrary.adventure; - -import net.kyori.adventure.text.Component; -import net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer; -import org.jetbrains.annotations.NotNull; - -public final class AdventureHelper { - - private AdventureHelper() { - } - - private static final LegacyComponentSerializer LEGACY_SECTION = LegacyComponentSerializer.legacySection(); - private static final LegacyComponentSerializer LEGACY_AMPERSAND = LegacyComponentSerializer.legacyAmpersand(); - - public static @NotNull Component legacyToComponent(@NotNull String legacyText) { - return LEGACY_SECTION.deserialize(legacyText); //TODO: Find better way without using legacy serializer - } - - public static @NotNull String componentToAmpersandString(@NotNull Component component) { - return LEGACY_AMPERSAND.serialize(component); //TODO: Find better way without using legacy serializer - } - -} diff --git a/core/src/main/java/dev/peri/yetanothermessageslibrary/adventure/MiniComponent.java b/core/src/main/java/dev/peri/yetanothermessageslibrary/adventure/MiniComponent.java deleted file mode 100644 index cdb8a04..0000000 --- a/core/src/main/java/dev/peri/yetanothermessageslibrary/adventure/MiniComponent.java +++ /dev/null @@ -1,61 +0,0 @@ -package dev.peri.yetanothermessageslibrary.adventure; - -import java.util.regex.Pattern; -import net.kyori.adventure.text.TextReplacementConfig; -import net.kyori.adventure.text.minimessage.MiniMessage; -import net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer; -import org.jetbrains.annotations.NotNull; - -/** - * Some utility class to make MiniMessage optional - */ -public final class MiniComponent { - - private static final Pattern SECTION_COLOR_PATTERN = Pattern.compile("(?i)ยง([0-9A-FK-OR])"); - private static final Pattern ALL_TEXT_PATTERN = Pattern.compile(".*"); - - private static final Pattern HEX_TO_LEGACY_PATTERN = Pattern.compile("&#([0-9A-Fa-f]{1})([0-9A-Fa-f]{1})([0-9A-Fa-f]{1})([0-9A-Fa-f]{1})([0-9A-Fa-f]{1})([0-9A-Fa-f]{1})"); - private static final String LEGACY_HEX_REPLACEMENT = "&x&$1&$2&$3&$4&$5&$6"; - - private static final LegacyComponentSerializer AMPERSAND_SERIALIZER = LegacyComponentSerializer.legacyAmpersand(); - private static final TextReplacementConfig COLOR_REPLACEMENTS = TextReplacementConfig.builder() - .match(ALL_TEXT_PATTERN) - .replacement((result, input) -> AMPERSAND_SERIALIZER.deserialize(result.group())) - .build(); - private static final MiniMessage MINI_MESSAGE = MiniMessage.builder() - .preProcessor(text -> { - String processedText = HEX_TO_LEGACY_PATTERN.matcher(text).replaceAll(LEGACY_HEX_REPLACEMENT); // convert simple hex format to legacy - processedText = SECTION_COLOR_PATTERN.matcher(processedText).replaceAll("&$1"); // convert section to ampersand - return processedText; - }) - .postProcessor(component -> component.replaceText(COLOR_REPLACEMENTS)) - .build(); - - private MiniComponent() { - } - - /** - * Parse a string to {@link RawComponent} using {@link MiniMessage}. - * - * @param raw the string to parse. - * @return the parsed component. - */ - public static @NotNull RawComponent of(@NotNull String raw) { - return new RawComponent(raw, MINI_MESSAGE.deserialize(raw)); - } - - /** - * Parse multiple strings to {@link RawComponent} using {@link MiniMessage}. - * - * @param raw array of strings to parse. - * @return array of parsed components. - */ - public static @NotNull RawComponent[] of(@NotNull String... raw) { - RawComponent[] miniComponents = new RawComponent[raw.length]; - for (int i = 0; i < raw.length; i++) { - miniComponents[i] = MiniComponent.of(raw[i]); - } - return miniComponents; - } - -} diff --git a/core/src/main/java/dev/peri/yetanothermessageslibrary/adventure/RawComponent.java b/core/src/main/java/dev/peri/yetanothermessageslibrary/adventure/RawComponent.java deleted file mode 100644 index 64ca3e8..0000000 --- a/core/src/main/java/dev/peri/yetanothermessageslibrary/adventure/RawComponent.java +++ /dev/null @@ -1,30 +0,0 @@ -package dev.peri.yetanothermessageslibrary.adventure; - -import net.kyori.adventure.text.Component; -import org.jetbrains.annotations.NotNull; - -/** - * Utility class to store raw String and Component at the same time. - * Helpful with serialization and deserialization of components. - */ -public class RawComponent { - - public static final RawComponent EMPTY = new RawComponent("", Component.empty()); - - private final String raw; - private final Component component; - - public RawComponent(@NotNull String raw, @NotNull Component component) { - this.raw = raw; - this.component = component; - } - - public @NotNull String getRaw() { - return this.raw; - } - - public @NotNull Component getComponent() { - return this.component; - } - -} diff --git a/core/src/main/java/dev/peri/yetanothermessageslibrary/message/MessageDispatcher.java b/core/src/main/java/dev/peri/yetanothermessageslibrary/message/MessageDispatcher.java index 66981e4..0771e3c 100644 --- a/core/src/main/java/dev/peri/yetanothermessageslibrary/message/MessageDispatcher.java +++ b/core/src/main/java/dev/peri/yetanothermessageslibrary/message/MessageDispatcher.java @@ -19,6 +19,8 @@ import java.util.function.Function; import java.util.function.Predicate; import java.util.function.Supplier; +import java.util.regex.Pattern; +import net.kyori.adventure.text.ComponentLike; import org.jetbrains.annotations.Contract; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -117,14 +119,58 @@ public D with(@NotNull Iterable replacements) { return (D) this; } + public D with(@NotNull String placeholder, @NotNull ComponentLike replacement) { + return this.with(Replacement.component(placeholder, replacement)); + } + + public D with(@NotNull Pattern placeholder, @NotNull ComponentLike replacement) { + return this.with(Replacement.component(placeholder, replacement)); + } + + public D with(@NotNull String placeholder, @NotNull Function<@Nullable Locale, ? extends @NotNull ComponentLike> replacement) { + return this.with(Replacement.component(placeholder, replacement)); + } + + public D with(@NotNull Pattern placeholder, @NotNull Function<@Nullable Locale, ? extends @NotNull ComponentLike> replacement) { + return this.with(Replacement.component(placeholder, replacement)); + } + + public D with(@NotNull String placeholder, @NotNull Supplier replacement) { + return this.with(Replacement.component(placeholder, replacement)); + } + + public D with(@NotNull Pattern placeholder, @NotNull Supplier replacement) { + return this.with(Replacement.component(placeholder, replacement)); + } + + @Contract("_, _ -> this") + public D with(@NotNull String placeholder, @NotNull Object replacement) { + return this.with(Replacement.string(placeholder, replacement)); + } + + @Contract("_, _ -> this") + public D with(@NotNull Pattern placeholder, @NotNull Object replacement) { + return this.with(Replacement.string(placeholder, replacement)); + } + + @Contract("_, _ -> this") + public D withString(@NotNull String placeholder, @NotNull Function<@Nullable Locale, ? extends @NotNull Object> replacement) { + return this.with(Replacement.string(placeholder, replacement)); + } + + @Contract("_, _ -> this") + public D withString(@NotNull Pattern placeholder, @NotNull Function<@Nullable Locale, ? extends @NotNull Object> replacement) { + return this.with(Replacement.string(placeholder, replacement)); + } + @Contract("_, _ -> this") - public D with(@NotNull String from, @NotNull Object to) { - return this.with(Replacement.of(from, to)); + public D withString(@NotNull String placeholder, @NotNull Supplier replacement) { + return this.with(Replacement.string(placeholder, replacement)); } @Contract("_, _ -> this") - public D with(@NotNull String from, @NotNull Supplier<@NotNull Object> to) { - return this.with(Replacement.of(from, to)); + public D withString(@NotNull Pattern placeholder, @NotNull Supplier replacement) { + return this.with(Replacement.string(placeholder, replacement)); } @Contract("_, _, _ -> this") diff --git a/core/src/main/java/dev/peri/yetanothermessageslibrary/message/SendableMessage.java b/core/src/main/java/dev/peri/yetanothermessageslibrary/message/SendableMessage.java index c6d1d0f..1940226 100644 --- a/core/src/main/java/dev/peri/yetanothermessageslibrary/message/SendableMessage.java +++ b/core/src/main/java/dev/peri/yetanothermessageslibrary/message/SendableMessage.java @@ -1,7 +1,6 @@ package dev.peri.yetanothermessageslibrary.message; -import dev.peri.yetanothermessageslibrary.adventure.MiniComponent; -import dev.peri.yetanothermessageslibrary.adventure.RawComponent; +import dev.peri.yetanothermessageslibrary.adventure.GlobalAdventureSerializer; import dev.peri.yetanothermessageslibrary.message.holder.SendableHolder; import dev.peri.yetanothermessageslibrary.message.holder.impl.ActionBarHolder; import dev.peri.yetanothermessageslibrary.message.holder.impl.BossBarHolder; @@ -19,6 +18,7 @@ import net.kyori.adventure.bossbar.BossBar; import net.kyori.adventure.key.Key; import net.kyori.adventure.sound.Sound; +import net.kyori.adventure.text.Component; import org.jetbrains.annotations.Contract; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -85,7 +85,7 @@ public Builder addHolders(@NotNull SendableHolder... holders) { * @return this builder */ @Contract("_, _ -> this") - public Builder chat(boolean onlyConsole, @NotNull RawComponent... messages) { + public Builder chat(boolean onlyConsole, @NotNull Component... messages) { return this.addHolders(new ChatHolder(onlyConsole, messages)); } @@ -96,7 +96,7 @@ public Builder chat(boolean onlyConsole, @NotNull RawComponent... messages) { * @return this builder */ @Contract("_, -> this") - public Builder chat(@NotNull RawComponent... messages) { + public Builder chat(@NotNull Component... messages) { return this.chat(false, messages); } @@ -110,7 +110,7 @@ public Builder chat(@NotNull RawComponent... messages) { */ @Contract("_, _ -> this") public Builder chat(boolean onlyConsole, @NotNull String... messages) { - return this.chat(onlyConsole, MiniComponent.of(messages)); + return this.chat(onlyConsole, GlobalAdventureSerializer.deserializeArray(messages)); } /** @@ -132,7 +132,7 @@ public Builder chat(@NotNull String... messages) { * @return this builder */ @Contract("_, -> this") - public Builder actionBar(@NotNull RawComponent message) { + public Builder actionBar(@NotNull Component message) { return this.addHolders(new ActionBarHolder(message)); } @@ -145,7 +145,7 @@ public Builder actionBar(@NotNull RawComponent message) { */ @Contract("_, -> this") public Builder actionBar(@NotNull String message) { - return this.actionBar(MiniComponent.of(message)); + return this.actionBar(GlobalAdventureSerializer.deserialize(message)); } /** @@ -159,7 +159,7 @@ public Builder actionBar(@NotNull String message) { * @return this builder */ @Contract("_, _, _, _, _ -> this") - public Builder title(@NotNull RawComponent title, @NotNull RawComponent subtitle, int fadeIn, int stay, int fadeOut) { + public Builder title(@NotNull Component title, @NotNull Component subtitle, int fadeIn, int stay, int fadeOut) { return this.addHolders(new TitleHolder(title, subtitle, TitleHolder.times(fadeIn, stay, fadeOut))); } @@ -176,7 +176,7 @@ public Builder title(@NotNull RawComponent title, @NotNull RawComponent subtitle */ @Contract("_, _, _, _, _ -> this") public Builder title(@NotNull String title, @NotNull String subtitle, int fadeIn, int stay, int fadeOut) { - return this.title(MiniComponent.of(title), MiniComponent.of(subtitle), fadeIn, stay, fadeOut); + return this.title(GlobalAdventureSerializer.deserialize(title), GlobalAdventureSerializer.deserialize(subtitle), fadeIn, stay, fadeOut); } /** @@ -190,7 +190,7 @@ public Builder title(@NotNull String title, @NotNull String subtitle, int fadeIn * @return this builder */ @Contract("_, _, _, _, _, _ -> this") - public Builder bossBar(@NotNull RawComponent name, float progress, @NotNull BossBar.Color color, @NotNull BossBar.Overlay overlay, @NotNull Collection flags, int stay) { + public Builder bossBar(@NotNull Component name, float progress, @NotNull BossBar.Color color, @NotNull BossBar.Overlay overlay, @NotNull Collection flags, int stay) { return this.addHolders(BossBarHolder.builder(name) .progress(progress) .color(color) @@ -213,7 +213,7 @@ public Builder bossBar(@NotNull RawComponent name, float progress, @NotNull Boss */ @Contract("_, _, _, _, _, _, -> this") public Builder bossBar(@NotNull String name, float progress, @NotNull BossBar.Color color, @NotNull BossBar.Overlay overlay, @NotNull Collection flags, int stay) { - return this.bossBar(MiniComponent.of(name), progress, color, overlay, flags, stay); + return this.bossBar(GlobalAdventureSerializer.deserialize(name), progress, color, overlay, flags, stay); } /** diff --git a/core/src/main/java/dev/peri/yetanothermessageslibrary/message/holder/impl/ActionBarHolder.java b/core/src/main/java/dev/peri/yetanothermessageslibrary/message/holder/impl/ActionBarHolder.java index e8b2cbe..d2dd3b4 100644 --- a/core/src/main/java/dev/peri/yetanothermessageslibrary/message/holder/impl/ActionBarHolder.java +++ b/core/src/main/java/dev/peri/yetanothermessageslibrary/message/holder/impl/ActionBarHolder.java @@ -1,25 +1,25 @@ package dev.peri.yetanothermessageslibrary.message.holder.impl; -import dev.peri.yetanothermessageslibrary.adventure.MiniComponent; -import dev.peri.yetanothermessageslibrary.adventure.RawComponent; +import dev.peri.yetanothermessageslibrary.adventure.GlobalAdventureSerializer; import dev.peri.yetanothermessageslibrary.message.SendableMessage; import dev.peri.yetanothermessageslibrary.message.holder.SendableHolder; import dev.peri.yetanothermessageslibrary.replace.ComponentReplacer; import dev.peri.yetanothermessageslibrary.replace.Replaceable; import dev.peri.yetanothermessageslibrary.viewer.Viewer; import java.util.Locale; +import net.kyori.adventure.text.Component; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; public class ActionBarHolder extends SendableHolder { - private final RawComponent message; + private final Component message; - public ActionBarHolder(@NotNull RawComponent message) { + public ActionBarHolder(@NotNull Component message) { this.message = message; } - public @NotNull RawComponent getMessage() { + public @NotNull Component getMessage() { return this.message; } @@ -30,15 +30,15 @@ public void send(@Nullable Locale locale, @NotNull Viewer viewer, @NotNull Repla @Override public @NotNull SendableHolder copy(@NotNull Replaceable... replacements) { - return new ActionBarHolder(ComponentReplacer.replaceRaw(this.message, replacements)); + return new ActionBarHolder(ComponentReplacer.replace(this.message, replacements)); } - public static @NotNull SendableMessage message(@NotNull RawComponent message) { + public static @NotNull SendableMessage message(@NotNull Component message) { return SendableMessage.of(new ActionBarHolder(message)); } public static @NotNull SendableMessage message(@NotNull String message) { - return SendableMessage.of(new ActionBarHolder(MiniComponent.of(message))); + return SendableMessage.of(new ActionBarHolder(GlobalAdventureSerializer.deserialize(message))); } } diff --git a/core/src/main/java/dev/peri/yetanothermessageslibrary/message/holder/impl/BossBarHolder.java b/core/src/main/java/dev/peri/yetanothermessageslibrary/message/holder/impl/BossBarHolder.java index 554ff88..4e4ec00 100644 --- a/core/src/main/java/dev/peri/yetanothermessageslibrary/message/holder/impl/BossBarHolder.java +++ b/core/src/main/java/dev/peri/yetanothermessageslibrary/message/holder/impl/BossBarHolder.java @@ -1,7 +1,6 @@ package dev.peri.yetanothermessageslibrary.message.holder.impl; -import dev.peri.yetanothermessageslibrary.adventure.MiniComponent; -import dev.peri.yetanothermessageslibrary.adventure.RawComponent; +import dev.peri.yetanothermessageslibrary.adventure.GlobalAdventureSerializer; import dev.peri.yetanothermessageslibrary.message.holder.SendableHolder; import dev.peri.yetanothermessageslibrary.replace.ComponentReplacer; import dev.peri.yetanothermessageslibrary.replace.Replaceable; @@ -11,13 +10,14 @@ import java.util.Locale; import java.util.Set; import net.kyori.adventure.bossbar.BossBar; +import net.kyori.adventure.text.Component; import org.jetbrains.annotations.Contract; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; public class BossBarHolder extends SendableHolder { - private final RawComponent name; + private final Component name; private final float progress; private final BossBar.Color color; @@ -27,7 +27,7 @@ public class BossBarHolder extends SendableHolder { private final boolean clearOtherBars; - public BossBarHolder(@NotNull RawComponent name, float progress, @NotNull BossBar.Color color, @NotNull BossBar.Overlay overlay, @NotNull Collection flags, int stay, boolean clearOtherBars) { + public BossBarHolder(@NotNull Component name, float progress, @NotNull BossBar.Color color, @NotNull BossBar.Overlay overlay, @NotNull Collection flags, int stay, boolean clearOtherBars) { this.name = name; this.progress = progress; this.color = color; @@ -37,7 +37,7 @@ public BossBarHolder(@NotNull RawComponent name, float progress, @NotNull BossBa this.stay = stay; } - public @NotNull RawComponent getName() { + public @NotNull Component getName() { return this.name; } @@ -81,7 +81,7 @@ public void send(@Nullable Locale locale, @NotNull Viewer viewer, @NotNull Repla @Override public @NotNull SendableHolder copy(@NotNull Replaceable... replacements) { return new BossBarHolder( - ComponentReplacer.replaceRaw(this.name, replacements), + ComponentReplacer.replace(this.name, replacements), this.progress, this.color, this.overlay, @@ -91,17 +91,17 @@ public void send(@Nullable Locale locale, @NotNull Viewer viewer, @NotNull Repla ); } - public static @NotNull Builder builder(@NotNull RawComponent name) { + public static @NotNull Builder builder(@NotNull Component name) { return new Builder(name); } public static @NotNull Builder builder(@NotNull String name) { - return new Builder(MiniComponent.of(name)); + return new Builder(GlobalAdventureSerializer.deserialize(name)); } public static class Builder { - private final RawComponent name; + private final Component name; private float progress = BossBar.MAX_PROGRESS; private BossBar.Color color = BossBar.Color.PINK; @@ -112,7 +112,7 @@ public static class Builder { private boolean clearOtherBars = false; - private Builder(@NotNull RawComponent name) { + private Builder(@NotNull Component name) { this.name = name; } diff --git a/core/src/main/java/dev/peri/yetanothermessageslibrary/message/holder/impl/ChatHolder.java b/core/src/main/java/dev/peri/yetanothermessageslibrary/message/holder/impl/ChatHolder.java index cb813ef..5427be7 100644 --- a/core/src/main/java/dev/peri/yetanothermessageslibrary/message/holder/impl/ChatHolder.java +++ b/core/src/main/java/dev/peri/yetanothermessageslibrary/message/holder/impl/ChatHolder.java @@ -1,7 +1,6 @@ package dev.peri.yetanothermessageslibrary.message.holder.impl; -import dev.peri.yetanothermessageslibrary.adventure.MiniComponent; -import dev.peri.yetanothermessageslibrary.adventure.RawComponent; +import dev.peri.yetanothermessageslibrary.adventure.GlobalAdventureSerializer; import dev.peri.yetanothermessageslibrary.message.SendableMessage; import dev.peri.yetanothermessageslibrary.message.holder.SendableHolder; import dev.peri.yetanothermessageslibrary.replace.ComponentReplacer; @@ -20,14 +19,14 @@ public class ChatHolder extends SendableHolder { protected boolean onlyConsole; - private final List messages = new ArrayList<>(); + private final List messages = new ArrayList<>(); - public ChatHolder(boolean onlyConsole, @NotNull Collection messages) { + public ChatHolder(boolean onlyConsole, @NotNull Collection messages) { this.onlyConsole = onlyConsole; this.messages.addAll(messages); } - public ChatHolder(boolean onlyConsole, @NotNull RawComponent... messages) { + public ChatHolder(boolean onlyConsole, @NotNull Component... messages) { this(onlyConsole, Arrays.asList(messages)); } @@ -35,7 +34,7 @@ public boolean sendOnlyToConsole() { return this.onlyConsole; } - public @NotNull List getMessages() { + public @NotNull List getMessages() { return this.messages; } @@ -53,18 +52,18 @@ public void send(@Nullable Locale locale, @NotNull Viewer viewer, @NotNull Repla @Override public @NotNull SendableHolder copy(@NotNull Replaceable... replacements) { - List finalMessages = this.messages.stream() - .map(message -> ComponentReplacer.replaceRaw(message, replacements)) + List finalMessages = this.messages.stream() + .map(message -> ComponentReplacer.replace(message, replacements)) .collect(Collectors.toList()); return new ChatHolder(this.onlyConsole, finalMessages); } - public static @NotNull SendableMessage message(@NotNull RawComponent... messages) { + public static @NotNull SendableMessage message(@NotNull Component... messages) { return SendableMessage.of(new ChatHolder(false, messages)); } public static @NotNull SendableMessage message(@NotNull String... messages) { - return SendableMessage.of(new ChatHolder(false, MiniComponent.of(messages))); + return SendableMessage.of(new ChatHolder(false, GlobalAdventureSerializer.deserialize(messages))); } } diff --git a/core/src/main/java/dev/peri/yetanothermessageslibrary/message/holder/impl/TitleHolder.java b/core/src/main/java/dev/peri/yetanothermessageslibrary/message/holder/impl/TitleHolder.java index 5f84717..bf37bd1 100644 --- a/core/src/main/java/dev/peri/yetanothermessageslibrary/message/holder/impl/TitleHolder.java +++ b/core/src/main/java/dev/peri/yetanothermessageslibrary/message/holder/impl/TitleHolder.java @@ -1,13 +1,13 @@ package dev.peri.yetanothermessageslibrary.message.holder.impl; -import dev.peri.yetanothermessageslibrary.adventure.MiniComponent; -import dev.peri.yetanothermessageslibrary.adventure.RawComponent; +import dev.peri.yetanothermessageslibrary.adventure.GlobalAdventureSerializer; import dev.peri.yetanothermessageslibrary.message.SendableMessage; import dev.peri.yetanothermessageslibrary.message.holder.SendableHolder; import dev.peri.yetanothermessageslibrary.replace.ComponentReplacer; import dev.peri.yetanothermessageslibrary.replace.Replaceable; import dev.peri.yetanothermessageslibrary.viewer.Viewer; import java.util.Locale; +import net.kyori.adventure.text.Component; import net.kyori.adventure.title.Title; import net.kyori.adventure.title.Title.Times; import net.kyori.adventure.util.Ticks; @@ -17,21 +17,21 @@ public class TitleHolder extends SendableHolder { - private final RawComponent title; - private final RawComponent subTitle; + private final Component title; + private final Component subTitle; private final Times times; - public TitleHolder(@NotNull RawComponent title, @NotNull RawComponent subTitle, @NotNull Times times) { + public TitleHolder(@NotNull Component title, @NotNull Component subTitle, @NotNull Times times) { this.title = title; this.subTitle = subTitle; this.times = times; } - public @NotNull RawComponent getTitle() { + public @NotNull Component getTitle() { return this.title; } - public @NotNull RawComponent getSubTitle() { + public @NotNull Component getSubTitle() { return this.subTitle; } @@ -55,18 +55,18 @@ public void send(@Nullable Locale locale, @NotNull Viewer viewer, @NotNull Repla @Override public @NotNull SendableHolder copy(@NotNull Replaceable... replacements) { return new TitleHolder( - ComponentReplacer.replaceRaw(this.title, replacements), - ComponentReplacer.replaceRaw(this.subTitle, replacements), + ComponentReplacer.replace(this.title, replacements), + ComponentReplacer.replace(this.subTitle, replacements), this.times ); } - public static @NotNull SendableMessage message(@NotNull RawComponent title, @NotNull RawComponent subTitle, int fadeIn, int stay, int fadeOut) { + public static @NotNull SendableMessage message(@NotNull Component title, @NotNull Component subTitle, int fadeIn, int stay, int fadeOut) { return SendableMessage.of(new TitleHolder(title, subTitle, TitleHolder.times(fadeIn, stay, fadeOut))); } public static @NotNull SendableMessage message(@NotNull String title, @NotNull String subTitle, int fadeIn, int stay, int fadeOut) { - return TitleHolder.message(MiniComponent.of(title), MiniComponent.of(subTitle), fadeIn, stay, fadeOut); + return TitleHolder.message(GlobalAdventureSerializer.deserialize(title), GlobalAdventureSerializer.deserialize(subTitle), fadeIn, stay, fadeOut); } public static @NotNull Builder builder() { @@ -75,33 +75,33 @@ public void send(@Nullable Locale locale, @NotNull Viewer viewer, @NotNull Repla public static class Builder { - private RawComponent title = RawComponent.EMPTY; - private RawComponent subTitle = RawComponent.EMPTY; + private Component title = Component.empty(); + private Component subTitle = Component.empty(); private Times times = TitleHolder.times(10, 70, 20); private Builder() { } @Contract("_ -> this") - public Builder title(@NotNull RawComponent title) { + public Builder title(@NotNull Component title) { this.title = title; return this; } @Contract("_ -> this") public Builder title(@NotNull String title) { - return this.title(MiniComponent.of(title)); + return this.title(GlobalAdventureSerializer.deserialize(title)); } @Contract("_ -> this") - public Builder subTitle(@NotNull RawComponent subTitle) { + public Builder subTitle(@NotNull Component subTitle) { this.subTitle = subTitle; return this; } @Contract("_ -> this") public Builder subTitle(@NotNull String subTitle) { - return this.subTitle(MiniComponent.of(subTitle)); + return this.subTitle(GlobalAdventureSerializer.deserialize(subTitle)); } @Contract("_ -> this") diff --git a/core/src/main/java/dev/peri/yetanothermessageslibrary/replace/ComponentReplacer.java b/core/src/main/java/dev/peri/yetanothermessageslibrary/replace/ComponentReplacer.java deleted file mode 100644 index 199eb0a..0000000 --- a/core/src/main/java/dev/peri/yetanothermessageslibrary/replace/ComponentReplacer.java +++ /dev/null @@ -1,53 +0,0 @@ -package dev.peri.yetanothermessageslibrary.replace; - -import dev.peri.yetanothermessageslibrary.adventure.RawComponent; -import java.util.Locale; -import net.kyori.adventure.text.Component; -import org.jetbrains.annotations.Contract; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; - -public final class ComponentReplacer { - - private ComponentReplacer() { - } - - @Contract(pure = true, value = "_, null, _ -> null") - public static Component replace(@Nullable Locale locale, @Nullable Component text, @NotNull Replaceable... replacements) { - if (text == null) { - return null; - } - - for (Replaceable replacement : replacements) { - text = replacement.replace(text); - } - return text; - } - - @Contract(pure = true, value = "null, _ -> null") - public static Component replace(@Nullable Component text, @NotNull Replaceable... replacements) { - return replace(null, text, replacements); - } - - @Contract(pure = true) - public static @NotNull Component replace(@Nullable Locale locale, @NotNull RawComponent text, @NotNull Replaceable... replacements) { - return replace(locale, text.getComponent(), replacements); - } - - @Contract(pure = true) - public static @NotNull Component replace(@NotNull RawComponent text, @NotNull Replaceable... replacements) { - return replace(null, text, replacements); - } - - @Contract(pure = true) - public static @NotNull RawComponent replaceRaw(@NotNull RawComponent text, @NotNull Replaceable... replacements) { - String rawText = text.getRaw(); - Component rawComponent = text.getComponent(); - - return new RawComponent( - StringReplacer.replace(rawText, replacements), - ComponentReplacer.replace(rawComponent, replacements) - ); - } - -} diff --git a/core/src/main/java/dev/peri/yetanothermessageslibrary/replace/replacement/Replacement.java b/core/src/main/java/dev/peri/yetanothermessageslibrary/replace/replacement/Replacement.java deleted file mode 100644 index 63199a4..0000000 --- a/core/src/main/java/dev/peri/yetanothermessageslibrary/replace/replacement/Replacement.java +++ /dev/null @@ -1,58 +0,0 @@ -package dev.peri.yetanothermessageslibrary.replace.replacement; - -import dev.peri.yetanothermessageslibrary.adventure.AdventureHelper; -import dev.peri.yetanothermessageslibrary.replace.Replaceable; -import dev.peri.yetanothermessageslibrary.replace.StringReplacer; -import java.util.Locale; -import java.util.function.Supplier; -import net.kyori.adventure.text.Component; -import net.kyori.adventure.text.TextReplacementConfig; -import org.jetbrains.annotations.Contract; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; - -public abstract class Replacement implements Replaceable { - - private final String from; - - protected Replacement(@NotNull String from) { - this.from = from; - } - - public @NotNull String getFrom() { - return this.from; - } - - public abstract @NotNull String getTo(); - - @Contract(pure = true) - public @NotNull String replace(@Nullable Locale locale, @NotNull String text) { - return text.replace(this.getFrom(), this.getTo()); - } - - @Contract(pure = true) - @Override - public @NotNull Component replace(@Nullable Locale locale, @NotNull Component text) { - return text.replaceText(TextReplacementConfig.builder() - .matchLiteral(this.getFrom()) - .replacement(AdventureHelper.legacyToComponent(this.getTo())) - .build()); - } - - public static @NotNull SimpleReplacement of(@NotNull String from, @Nullable Object to) { - return new SimpleReplacement(from, to); - } - - public static @NotNull SimpleReplacement of(@NotNull String from, @Nullable String to, @NotNull Replacement... replacements) { - return of(from, StringReplacer.replace(to, replacements)); - } - - public static @NotNull SupplierReplacement of(@NotNull String from, @NotNull Supplier<@Nullable Object> to) { - return new SupplierReplacement(from, to); - } - - public static @NotNull SupplierReplacement of(@NotNull String from, @NotNull Supplier<@Nullable Object> to, @NotNull Replacement... replacements) { - return new SupplierReplacement(from, to, replacements); - } - -} diff --git a/core/src/main/java/dev/peri/yetanothermessageslibrary/replace/replacement/SimpleReplacement.java b/core/src/main/java/dev/peri/yetanothermessageslibrary/replace/replacement/SimpleReplacement.java deleted file mode 100644 index fc903da..0000000 --- a/core/src/main/java/dev/peri/yetanothermessageslibrary/replace/replacement/SimpleReplacement.java +++ /dev/null @@ -1,21 +0,0 @@ -package dev.peri.yetanothermessageslibrary.replace.replacement; - -import java.util.Objects; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; - -public class SimpleReplacement extends Replacement { - - private final String to; - - protected SimpleReplacement(@NotNull String from, @Nullable Object to) { - super(from); - this.to = Objects.toString(to); - } - - @Override - public @NotNull String getTo() { - return this.to; - } - -} diff --git a/core/src/main/java/dev/peri/yetanothermessageslibrary/replace/replacement/SupplierReplacement.java b/core/src/main/java/dev/peri/yetanothermessageslibrary/replace/replacement/SupplierReplacement.java deleted file mode 100644 index 0008d6c..0000000 --- a/core/src/main/java/dev/peri/yetanothermessageslibrary/replace/replacement/SupplierReplacement.java +++ /dev/null @@ -1,29 +0,0 @@ -package dev.peri.yetanothermessageslibrary.replace.replacement; - -import dev.peri.yetanothermessageslibrary.replace.StringReplacer; -import java.util.Objects; -import java.util.function.Supplier; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; - -public class SupplierReplacement extends Replacement { - - private final Supplier to; - private final Replacement[] replacements; - - protected SupplierReplacement(@NotNull String from, @NotNull Supplier<@Nullable Object> to, @NotNull Replacement[] replacements) { - super(from); - this.to = to; - this.replacements = replacements; - } - - protected SupplierReplacement(@NotNull String from, @NotNull Supplier<@Nullable Object> to) { - this(from, to, new Replacement[0]); - } - - @Override - public @NotNull String getTo() { - return StringReplacer.replace(Objects.toString(this.to.get()), this.replacements); - } - -} diff --git a/example/build.gradle b/example/build.gradle index a6138db..672f967 100644 --- a/example/build.gradle +++ b/example/build.gradle @@ -17,7 +17,7 @@ dependencies { compileOnly "org.spigotmc:spigot-api:1.19.2-R0.1-SNAPSHOT" // YetAnotherMessagesLibrary - def yamlVersion = "6.5.1" + def yamlVersion = "7.0.0-SNAPSHOT" implementation "dev.peri.yetanothermessageslibrary:core:${yamlVersion}" implementation "dev.peri.yetanothermessageslibrary:platform-bukkit:${yamlVersion}" implementation "dev.peri.yetanothermessageslibrary:repository-okaeri:${yamlVersion}" @@ -25,7 +25,6 @@ dependencies { // Adventure def adventureVersion = "4.14.0" implementation "net.kyori:adventure-api:${adventureVersion}" - implementation "net.kyori:adventure-text-serializer-legacy:${adventureVersion}" implementation "net.kyori:adventure-text-minimessage:${adventureVersion}" implementation "net.kyori:adventure-platform-bukkit:4.3.1" diff --git a/example/src/main/java/dev/peri/yetanothermessageslibrary/example/ExamplePlugin.java b/example/src/main/java/dev/peri/yetanothermessageslibrary/example/ExamplePlugin.java index decb3a5..a6bc810 100644 --- a/example/src/main/java/dev/peri/yetanothermessageslibrary/example/ExamplePlugin.java +++ b/example/src/main/java/dev/peri/yetanothermessageslibrary/example/ExamplePlugin.java @@ -2,7 +2,8 @@ import dev.peri.yetanothermessageslibrary.BukkitMessageService; import dev.peri.yetanothermessageslibrary.SendableMessageService; -import dev.peri.yetanothermessageslibrary.config.serdes.SerdesMessages; +import dev.peri.yetanothermessageslibrary.adventure.GlobalAdventureSerializer; +import dev.peri.yetanothermessageslibrary.config.serdes.YAMLSerdes; import dev.peri.yetanothermessageslibrary.example.complex.ExampleMessageDispatcher; import dev.peri.yetanothermessageslibrary.example.complex.ExampleMessageService; import dev.peri.yetanothermessageslibrary.example.config.MessageConfiguration; @@ -15,11 +16,14 @@ import java.io.File; import java.util.Locale; import net.kyori.adventure.platform.bukkit.BukkitAudiences; +import net.kyori.adventure.text.minimessage.MiniMessage; import org.bukkit.command.CommandSender; import org.bukkit.plugin.java.JavaPlugin; public class ExamplePlugin extends JavaPlugin { + private static final MiniMessage MINI_MESSAGE = MiniMessage.miniMessage(); + private final File englishMessageFile = new File(this.getDataFolder(), "en.yml"); private final File polishMessageFile = new File(this.getDataFolder(), "pl.yml"); @@ -35,6 +39,9 @@ public class ExamplePlugin extends JavaPlugin { public void onEnable() { this.adventure = BukkitAudiences.create(this); + // Register global serializer (used for e.g. by string replacements) + GlobalAdventureSerializer.globalSerializer(MINI_MESSAGE); + // Simple way this.simpleMessageService = new BukkitMessageService<>(this, this.adventure); this.simpleMessageService.registerDefaultRepository(Locale.ENGLISH, prepareMessageConfiguration(this.englishMessageFile)); @@ -60,7 +67,7 @@ public void onDisable() { private static MessageConfiguration prepareMessageConfiguration(File file) { return ConfigManager.create(MessageConfiguration.class, it -> { it.withConfigurer(new YamlBukkitConfigurer()); - it.withSerdesPack(new SerdesMessages()); + it.withSerdesPack(new YAMLSerdes()); it.withBindFile(file); it.saveDefaults(); diff --git a/replaceable/okaeri/src/main/java/dev/peri/yetanothermessageslibrary/replace/OkaeriPlaceholdersReplaceable.java b/replaceable/okaeri/src/main/java/dev/peri/yetanothermessageslibrary/replace/OkaeriPlaceholdersReplaceable.java index 4fe5b78..003e9b9 100644 --- a/replaceable/okaeri/src/main/java/dev/peri/yetanothermessageslibrary/replace/OkaeriPlaceholdersReplaceable.java +++ b/replaceable/okaeri/src/main/java/dev/peri/yetanothermessageslibrary/replace/OkaeriPlaceholdersReplaceable.java @@ -1,18 +1,20 @@ package dev.peri.yetanothermessageslibrary.replace; -import dev.peri.yetanothermessageslibrary.adventure.AdventureHelper; +import dev.peri.yetanothermessageslibrary.adventure.GlobalAdventureSerializer; +import dev.peri.yetanothermessageslibrary.replace.replacement.ComponentReplacement; import eu.okaeri.placeholders.Placeholders; import eu.okaeri.placeholders.context.PlaceholderContext; import eu.okaeri.placeholders.message.CompiledMessage; import java.util.Locale; import java.util.function.Function; import java.util.regex.Pattern; -import net.kyori.adventure.text.Component; import net.kyori.adventure.text.TextReplacementConfig; +import org.jetbrains.annotations.ApiStatus; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -public class OkaeriPlaceholdersReplaceable implements Replaceable { +@ApiStatus.Experimental +public class OkaeriPlaceholdersReplaceable extends ComponentReplacement { private static final Pattern FIELD_PATTERN = Pattern.compile("\\{(?[^}]+)\\}"); @@ -20,22 +22,26 @@ public class OkaeriPlaceholdersReplaceable implements Replaceable { private final Function applyContexts; public OkaeriPlaceholdersReplaceable(@NotNull Placeholders placeholders, @NotNull Function applyContexts) { + super(FIELD_PATTERN); this.placeholders = placeholders; this.applyContexts = applyContexts; } @Override - public @NotNull String replace(@Nullable Locale locale, @NotNull String text) { - return this.replacePlaceholders(locale, text); + public boolean supportsStringReplacement() { + return super.supportsStringReplacement(); } @Override - public @NotNull Component replace(@Nullable Locale locale, @NotNull Component text) { - TextReplacementConfig replacement = TextReplacementConfig.builder() - .match(FIELD_PATTERN) - .replacement((result, input) -> AdventureHelper.legacyToComponent(this.replacePlaceholders(locale, "{" + result.group() + "}"))) + public @NotNull TextReplacementConfig getReplacement(@Nullable Locale locale) { + return this.newReplacementBuilder() + .replacement((result, input) -> GlobalAdventureSerializer.deserialize(this.replacePlaceholders(locale, result.group()))) .build(); - return text.replaceText(replacement); + } + + @Override + public @NotNull String replace(@Nullable Locale locale, @NotNull String text) { + return this.replacePlaceholders(locale, text); } private String replacePlaceholders(@Nullable Locale locale, @NotNull String text) { diff --git a/replaceable/placeholderapi/src/main/java/dev/peri/yetanothermessageslibrary/replace/PlaceholderAPIReplaceable.java b/replaceable/placeholderapi/src/main/java/dev/peri/yetanothermessageslibrary/replace/PlaceholderAPIReplaceable.java index 57c969e..36eb75a 100644 --- a/replaceable/placeholderapi/src/main/java/dev/peri/yetanothermessageslibrary/replace/PlaceholderAPIReplaceable.java +++ b/replaceable/placeholderapi/src/main/java/dev/peri/yetanothermessageslibrary/replace/PlaceholderAPIReplaceable.java @@ -1,38 +1,44 @@ package dev.peri.yetanothermessageslibrary.replace; -import dev.peri.yetanothermessageslibrary.adventure.AdventureHelper; +import dev.peri.yetanothermessageslibrary.adventure.GlobalAdventureSerializer; +import dev.peri.yetanothermessageslibrary.replace.replacement.ComponentReplacement; import java.lang.ref.WeakReference; import java.util.Locale; import java.util.regex.Pattern; import me.clip.placeholderapi.PlaceholderAPI; -import net.kyori.adventure.text.Component; import net.kyori.adventure.text.TextReplacementConfig; import org.bukkit.entity.Player; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -public class PlaceholderAPIReplaceable implements Replaceable { +public class PlaceholderAPIReplaceable extends ComponentReplacement { private static final Pattern PLACEHOLDER_PATTERN = Pattern.compile("[%]([^%]+)[%]"); private final WeakReference playerRef; + private final TextReplacementConfig replacement; public PlaceholderAPIReplaceable(@Nullable Player player) { + super(PLACEHOLDER_PATTERN); this.playerRef = new WeakReference<>(player); + this.replacement = this.newReplacementBuilder() + .replacement((result, input) -> GlobalAdventureSerializer.deserialize(this.replacePlaceholder(result.group()))) + .build(); } @Override - public @NotNull String replace(@Nullable Locale locale, @NotNull String text) { - return this.replacePlaceholder(text); + public boolean supportsStringReplacement() { + return true; } @Override - public @NotNull Component replace(@Nullable Locale locale, @NotNull Component text) { - TextReplacementConfig replacement = TextReplacementConfig.builder() - .match(PLACEHOLDER_PATTERN) - .replacement((result, input) -> AdventureHelper.legacyToComponent(this.replacePlaceholder(result.group()))) - .build(); - return text.replaceText(replacement); + public @NotNull TextReplacementConfig getReplacement(@Nullable Locale locale) { + return this.replacement; + } + + @Override + public @NotNull String replace(@Nullable Locale locale, @NotNull String text) { + return this.replacePlaceholder(text); } private String replacePlaceholder(String text) { diff --git a/repository/okaeri/src/main/java/dev/peri/yetanothermessageslibrary/config/serdes/ComponentTransformer.java b/repository/okaeri/src/main/java/dev/peri/yetanothermessageslibrary/config/serdes/ComponentTransformer.java index 554c7d2..3eb7c76 100644 --- a/repository/okaeri/src/main/java/dev/peri/yetanothermessageslibrary/config/serdes/ComponentTransformer.java +++ b/repository/okaeri/src/main/java/dev/peri/yetanothermessageslibrary/config/serdes/ComponentTransformer.java @@ -1,27 +1,33 @@ package dev.peri.yetanothermessageslibrary.config.serdes; -import dev.peri.yetanothermessageslibrary.adventure.AdventureHelper; -import dev.peri.yetanothermessageslibrary.adventure.RawComponent; import eu.okaeri.configs.schema.GenericsPair; import eu.okaeri.configs.serdes.BidirectionalTransformer; import eu.okaeri.configs.serdes.SerdesContext; import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.serializer.ComponentSerializer; +import org.jetbrains.annotations.NotNull; -public class ComponentTransformer extends BidirectionalTransformer { +public class ComponentTransformer extends BidirectionalTransformer { + + private final ComponentSerializer componentSerializer; + + public ComponentTransformer(@NotNull ComponentSerializer componentSerializer) { + this.componentSerializer = componentSerializer; + } @Override - public GenericsPair getPair() { - return this.genericsPair(RawComponent.class, Component.class); + public GenericsPair getPair() { + return this.genericsPair(String.class, Component.class); } @Override - public Component leftToRight(RawComponent data, SerdesContext serdesContext) { - return data.getComponent(); + public Component leftToRight(String data, SerdesContext serdesContext) { + return this.componentSerializer.deserialize(data); } @Override - public RawComponent rightToLeft(Component data, SerdesContext serdesContext) { - return new RawComponent(AdventureHelper.componentToAmpersandString(data), data); + public String rightToLeft(Component data, SerdesContext serdesContext) { + return this.componentSerializer.serialize(data); } } diff --git a/repository/okaeri/src/main/java/dev/peri/yetanothermessageslibrary/config/serdes/RawComponentTransformer.java b/repository/okaeri/src/main/java/dev/peri/yetanothermessageslibrary/config/serdes/RawComponentTransformer.java deleted file mode 100644 index 4686d42..0000000 --- a/repository/okaeri/src/main/java/dev/peri/yetanothermessageslibrary/config/serdes/RawComponentTransformer.java +++ /dev/null @@ -1,26 +0,0 @@ -package dev.peri.yetanothermessageslibrary.config.serdes; - -import dev.peri.yetanothermessageslibrary.adventure.MiniComponent; -import dev.peri.yetanothermessageslibrary.adventure.RawComponent; -import eu.okaeri.configs.schema.GenericsPair; -import eu.okaeri.configs.serdes.BidirectionalTransformer; -import eu.okaeri.configs.serdes.SerdesContext; - -public class RawComponentTransformer extends BidirectionalTransformer { - - @Override - public GenericsPair getPair() { - return this.genericsPair(String.class, RawComponent.class); - } - - @Override - public RawComponent leftToRight(String data, SerdesContext serdesContext) { - return MiniComponent.of(data); - } - - @Override - public String rightToLeft(RawComponent data, SerdesContext serdesContext) { - return data.getRaw(); - } - -} diff --git a/repository/okaeri/src/main/java/dev/peri/yetanothermessageslibrary/config/serdes/SerdesMessages.java b/repository/okaeri/src/main/java/dev/peri/yetanothermessageslibrary/config/serdes/YAMLSerdes.java similarity index 60% rename from repository/okaeri/src/main/java/dev/peri/yetanothermessageslibrary/config/serdes/SerdesMessages.java rename to repository/okaeri/src/main/java/dev/peri/yetanothermessageslibrary/config/serdes/YAMLSerdes.java index 0522b1d..1de969a 100644 --- a/repository/okaeri/src/main/java/dev/peri/yetanothermessageslibrary/config/serdes/SerdesMessages.java +++ b/repository/okaeri/src/main/java/dev/peri/yetanothermessageslibrary/config/serdes/YAMLSerdes.java @@ -1,5 +1,6 @@ package dev.peri.yetanothermessageslibrary.config.serdes; +import dev.peri.yetanothermessageslibrary.adventure.GlobalAdventureSerializer; import dev.peri.yetanothermessageslibrary.config.serdes.holder.ActionBarHolderTransformer; import dev.peri.yetanothermessageslibrary.config.serdes.holder.BossBarHolderSerializer; import dev.peri.yetanothermessageslibrary.config.serdes.holder.ChatSerializer; @@ -7,8 +8,21 @@ import dev.peri.yetanothermessageslibrary.config.serdes.holder.TitleHolderSerializer; import eu.okaeri.configs.serdes.OkaeriSerdesPack; import eu.okaeri.configs.serdes.SerdesRegistry; +import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.serializer.ComponentSerializer; +import org.jetbrains.annotations.NotNull; -public class SerdesMessages implements OkaeriSerdesPack { +public class YAMLSerdes implements OkaeriSerdesPack { + + private final ComponentSerializer componentSerializer; + + public YAMLSerdes(@NotNull ComponentSerializer componentSerializer) { + this.componentSerializer = componentSerializer; + } + + public YAMLSerdes() { + this(GlobalAdventureSerializer.globalSerializer()); + } @Override public void register(SerdesRegistry registry) { @@ -21,8 +35,7 @@ public void register(SerdesRegistry registry) { registry.register(new SendableMessageSerializer()); // Utilities - registry.register(new RawComponentTransformer()); - registry.register(new ComponentTransformer()); + registry.register(new ComponentTransformer(componentSerializer)); registry.register(new KeyTransformer()); } diff --git a/repository/okaeri/src/main/java/dev/peri/yetanothermessageslibrary/config/serdes/holder/ActionBarHolderTransformer.java b/repository/okaeri/src/main/java/dev/peri/yetanothermessageslibrary/config/serdes/holder/ActionBarHolderTransformer.java index 6c8c0ea..43b29ce 100644 --- a/repository/okaeri/src/main/java/dev/peri/yetanothermessageslibrary/config/serdes/holder/ActionBarHolderTransformer.java +++ b/repository/okaeri/src/main/java/dev/peri/yetanothermessageslibrary/config/serdes/holder/ActionBarHolderTransformer.java @@ -1,25 +1,25 @@ package dev.peri.yetanothermessageslibrary.config.serdes.holder; -import dev.peri.yetanothermessageslibrary.adventure.RawComponent; import dev.peri.yetanothermessageslibrary.message.holder.impl.ActionBarHolder; import eu.okaeri.configs.schema.GenericsPair; import eu.okaeri.configs.serdes.BidirectionalTransformer; import eu.okaeri.configs.serdes.SerdesContext; +import net.kyori.adventure.text.Component; -public class ActionBarHolderTransformer extends BidirectionalTransformer { +public class ActionBarHolderTransformer extends BidirectionalTransformer { @Override - public GenericsPair getPair() { - return this.genericsPair(RawComponent.class, ActionBarHolder.class); + public GenericsPair getPair() { + return this.genericsPair(Component.class, ActionBarHolder.class); } @Override - public ActionBarHolder leftToRight(RawComponent data, SerdesContext serdesContext) { + public ActionBarHolder leftToRight(Component data, SerdesContext serdesContext) { return new ActionBarHolder(data); } @Override - public RawComponent rightToLeft(ActionBarHolder data, SerdesContext serdesContext) { + public Component rightToLeft(ActionBarHolder data, SerdesContext serdesContext) { return data.getMessage(); } diff --git a/repository/okaeri/src/main/java/dev/peri/yetanothermessageslibrary/config/serdes/holder/BossBarHolderSerializer.java b/repository/okaeri/src/main/java/dev/peri/yetanothermessageslibrary/config/serdes/holder/BossBarHolderSerializer.java index e67dbb1..6a90b63 100644 --- a/repository/okaeri/src/main/java/dev/peri/yetanothermessageslibrary/config/serdes/holder/BossBarHolderSerializer.java +++ b/repository/okaeri/src/main/java/dev/peri/yetanothermessageslibrary/config/serdes/holder/BossBarHolderSerializer.java @@ -1,6 +1,5 @@ package dev.peri.yetanothermessageslibrary.config.serdes.holder; -import dev.peri.yetanothermessageslibrary.adventure.RawComponent; import dev.peri.yetanothermessageslibrary.message.holder.impl.BossBarHolder; import eu.okaeri.configs.schema.GenericsDeclaration; import eu.okaeri.configs.serdes.DeserializationData; @@ -8,6 +7,7 @@ import eu.okaeri.configs.serdes.SerializationData; import java.util.HashSet; import net.kyori.adventure.bossbar.BossBar; +import net.kyori.adventure.text.Component; public class BossBarHolderSerializer implements ObjectSerializer { @@ -18,30 +18,30 @@ public boolean supports(Class type) { @Override public void serialize(BossBarHolder holder, SerializationData data, GenericsDeclaration generics) { - data.add("name", holder.getName()); - data.add("color", holder.getColor()); - data.add("overlay", holder.getOverlay()); + data.add("name", holder.getName(), Component.class); + data.add("color", holder.getColor(), BossBar.Color.class); + data.add("overlay", holder.getOverlay(), BossBar.Overlay.class); if (!holder.getFlags().isEmpty()) { data.addCollection("flags", holder.getFlags(), BossBar.Flag.class); } if (holder.getProgress() >= 0) { - data.add("progress", holder.getProgress()); + data.add("progress", holder.getProgress(), float.class); } if (holder.getStay() >= 0) { - data.add("stay", holder.getStay()); + data.add("stay", holder.getStay(), int.class); } if (holder.clearOtherBars()) { - data.add("clear-other-bars", true); + data.add("clear-other-bars", true, boolean.class); } } @Override public BossBarHolder deserialize(DeserializationData data, GenericsDeclaration generics) { - return BossBarHolder.builder(data.get("name", RawComponent.class)) + return BossBarHolder.builder(data.get("name", Component.class)) .progress(data.containsKey("progress") ? data.get("progress", float.class) : 1) .color(data.containsKey("color") ? data.get("color", BossBar.Color.class) : BossBar.Color.PINK) .overlay(data.containsKey("overlay") ? data.get("overlay", BossBar.Overlay.class) : BossBar.Overlay.PROGRESS) diff --git a/repository/okaeri/src/main/java/dev/peri/yetanothermessageslibrary/config/serdes/holder/ChatSerializer.java b/repository/okaeri/src/main/java/dev/peri/yetanothermessageslibrary/config/serdes/holder/ChatSerializer.java index a88a3ac..482d0a9 100644 --- a/repository/okaeri/src/main/java/dev/peri/yetanothermessageslibrary/config/serdes/holder/ChatSerializer.java +++ b/repository/okaeri/src/main/java/dev/peri/yetanothermessageslibrary/config/serdes/holder/ChatSerializer.java @@ -1,6 +1,5 @@ package dev.peri.yetanothermessageslibrary.config.serdes.holder; -import dev.peri.yetanothermessageslibrary.adventure.RawComponent; import dev.peri.yetanothermessageslibrary.message.holder.impl.ChatHolder; import eu.okaeri.configs.schema.GenericsDeclaration; import eu.okaeri.configs.serdes.DeserializationData; @@ -8,6 +7,7 @@ import eu.okaeri.configs.serdes.SerializationData; import java.util.ArrayList; import java.util.List; +import net.kyori.adventure.text.Component; public class ChatSerializer implements ObjectSerializer { @@ -19,7 +19,7 @@ public boolean supports(Class type) { @Override public void serialize(ChatHolder holder, SerializationData data, GenericsDeclaration generics) { boolean sendOnlyToConsole = holder.sendOnlyToConsole(); - List messages = holder.getMessages(); + List messages = holder.getMessages(); if (!sendOnlyToConsole) { Object value = messages.size() == 1 ? messages.get(0) : messages; @@ -27,25 +27,25 @@ public void serialize(ChatHolder holder, SerializationData data, GenericsDeclara return; } - data.add("console", true); + data.add("console", true, boolean.class); if (messages.size() == 1) { - data.add("message", messages.get(0)); + data.add("message", messages.get(0), Component.class); } else { - data.addCollection("message", messages, RawComponent.class); + data.addCollection("message", messages, Component.class); } } @Override public ChatHolder deserialize(DeserializationData data, GenericsDeclaration generics) { boolean onlyConsole = false; - List messages = new ArrayList<>(); + List messages = new ArrayList<>(); if (data.isValue()) { Object raw = data.getValueRaw(); if (raw instanceof String) { - messages.add(data.getValue(RawComponent.class)); + messages.add(data.getValue(Component.class)); } else if (raw instanceof List) { - messages.addAll(data.getValueAsList(RawComponent.class)); + messages.addAll(data.getValueAsList(Component.class)); } } else { onlyConsole = data.containsKey("console") @@ -54,9 +54,9 @@ public ChatHolder deserialize(DeserializationData data, GenericsDeclaration gene Object raw = data.getRaw("message"); if (raw instanceof String) { - messages.add(data.get("message", RawComponent.class)); + messages.add(data.get("message", Component.class)); } else if (raw instanceof List) { - messages.addAll(data.getAsList("message", RawComponent.class)); + messages.addAll(data.getAsList("message", Component.class)); } } diff --git a/repository/okaeri/src/main/java/dev/peri/yetanothermessageslibrary/config/serdes/holder/SoundHolderSerializer.java b/repository/okaeri/src/main/java/dev/peri/yetanothermessageslibrary/config/serdes/holder/SoundHolderSerializer.java index 286aa75..0f1dacb 100644 --- a/repository/okaeri/src/main/java/dev/peri/yetanothermessageslibrary/config/serdes/holder/SoundHolderSerializer.java +++ b/repository/okaeri/src/main/java/dev/peri/yetanothermessageslibrary/config/serdes/holder/SoundHolderSerializer.java @@ -18,12 +18,12 @@ public boolean supports(Class type) { @Override public void serialize(SoundHolder holder, SerializationData data, GenericsDeclaration generics) { Sound sound = holder.getSound(); - data.add("name", sound.name().asString()); - data.add("source", sound.source()); - data.add("volume", sound.volume()); - data.add("pitch", sound.pitch()); + data.add("name", sound.name().asString(), String.class); + data.add("source", sound.source(), Sound.Source.class); + data.add("volume", sound.volume(), float.class); + data.add("pitch", sound.pitch(), float.class); if (holder.stopOtherSounds()) { - data.add("stop-other-sounds", true); + data.add("stop-other-sounds", true, boolean.class); } } diff --git a/repository/okaeri/src/main/java/dev/peri/yetanothermessageslibrary/config/serdes/holder/TitleHolderSerializer.java b/repository/okaeri/src/main/java/dev/peri/yetanothermessageslibrary/config/serdes/holder/TitleHolderSerializer.java index ac479f9..e803542 100644 --- a/repository/okaeri/src/main/java/dev/peri/yetanothermessageslibrary/config/serdes/holder/TitleHolderSerializer.java +++ b/repository/okaeri/src/main/java/dev/peri/yetanothermessageslibrary/config/serdes/holder/TitleHolderSerializer.java @@ -1,12 +1,12 @@ package dev.peri.yetanothermessageslibrary.config.serdes.holder; -import dev.peri.yetanothermessageslibrary.adventure.RawComponent; import dev.peri.yetanothermessageslibrary.message.holder.impl.TitleHolder; import eu.okaeri.configs.schema.GenericsDeclaration; import eu.okaeri.configs.serdes.DeserializationData; import eu.okaeri.configs.serdes.ObjectSerializer; import eu.okaeri.configs.serdes.SerializationData; import java.time.Duration; +import net.kyori.adventure.text.Component; import net.kyori.adventure.title.Title.Times; import net.kyori.adventure.util.Ticks; @@ -19,11 +19,14 @@ public boolean supports(Class type) { @Override public void serialize(TitleHolder holder, SerializationData data, GenericsDeclaration generics) { - if (!holder.getTitle().getRaw().isEmpty()) { - data.add("title", holder.getTitle().getRaw()); + Component title = holder.getTitle(); + if (title.equals(Component.empty())) { + data.add("title", title, Component.class); } - if (!holder.getSubTitle().getRaw().isEmpty()) { - data.add("subtitle", holder.getSubTitle().getRaw()); + + Component subtitle = holder.getSubTitle(); + if (subtitle.equals(Component.empty())) { + data.add("subtitle", subtitle, Component.class); } Times times = holder.getTimes(); @@ -32,15 +35,15 @@ public void serialize(TitleHolder holder, SerializationData data, GenericsDeclar int fadeOut = ticksFromDuration(times.fadeOut()); if (fadeIn > 0) { - data.add("fade-in", fadeIn); + data.add("fade-in", fadeIn, int.class); } if (stay > 0) { - data.add("stay", stay); + data.add("stay", stay, int.class); } if (fadeOut > 0) { - data.add("fade-out", fadeOut); + data.add("fade-out", fadeOut, int.class); } } @@ -49,11 +52,11 @@ public TitleHolder deserialize(DeserializationData data, GenericsDeclaration gen TitleHolder.Builder builder = TitleHolder.builder(); if (data.containsKey("title")) { - builder.title(data.get("title", RawComponent.class)); + builder.title(data.get("title", Component.class)); } if (data.containsKey("subtitle")) { - builder.subTitle(data.get("subtitle", RawComponent.class)); + builder.subTitle(data.get("subtitle", Component.class)); } int fadeIn = 0; diff --git a/settings.gradle b/settings.gradle index a07449a..27965a4 100644 --- a/settings.gradle +++ b/settings.gradle @@ -1,5 +1,6 @@ rootProject.name = 'YetAnotherMessagesLibrary' +this.setupSubproject("tools") this.setupSubproject("core") // Platforms @@ -39,8 +40,6 @@ dependencyResolutionManagement { adventure { String apiVersion = "4.14.0" library("api", "net.kyori:adventure-api:${apiVersion}") - library("minimessage", "net.kyori:adventure-text-minimessage:${apiVersion}") - library("serializer-legacy", "net.kyori:adventure-text-serializer-legacy:${apiVersion}") String platformVersion = "4.3.1" library("platform-bukkit", "net.kyori:adventure-platform-bukkit:${platformVersion}") diff --git a/tools/build.gradle b/tools/build.gradle new file mode 100644 index 0000000..24bbc20 --- /dev/null +++ b/tools/build.gradle @@ -0,0 +1,3 @@ +dependencies { + compileOnlyApi adventure.api +} \ No newline at end of file diff --git a/tools/src/main/java/dev/peri/yetanothermessageslibrary/adventure/GlobalAdventureSerializer.java b/tools/src/main/java/dev/peri/yetanothermessageslibrary/adventure/GlobalAdventureSerializer.java new file mode 100644 index 0000000..30e85d9 --- /dev/null +++ b/tools/src/main/java/dev/peri/yetanothermessageslibrary/adventure/GlobalAdventureSerializer.java @@ -0,0 +1,67 @@ +package dev.peri.yetanothermessageslibrary.adventure; + +import dev.peri.yetanothermessageslibrary.replace.replacement.FunctionStringReplacement; +import java.util.Arrays; +import java.util.List; +import java.util.Objects; +import java.util.stream.Collectors; +import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.serializer.ComponentSerializer; +import org.jetbrains.annotations.NotNull; + +/** + * Simple utility class to provide global access to adventure serializer. + *

+ * This class is used mostly by string replacements ({@link dev.peri.yetanothermessageslibrary.replace.replacement.SimpleStringReplacement}, {@link FunctionStringReplacement}) + * and some of {@link dev.peri.yetanothermessageslibrary.message.holder.SendableHolder} implementations. + */ +public final class GlobalAdventureSerializer { + + private static ComponentSerializer GLOBAL_SERIALIZER = new ComponentSerializer() { + @Override + public @NotNull Component deserialize(@NotNull String input) { + return Component.text(input); + } + + @Override + public @NotNull String serialize(@NotNull Component component) { + throw new UnsupportedOperationException("Register global serializer to serialize components"); + } + }; + + private GlobalAdventureSerializer() { + } + + public static void globalSerializer(@NotNull ComponentSerializer globalSerializer) { + GLOBAL_SERIALIZER = Objects.requireNonNull(globalSerializer, "globalSerializer cannot be null"); + } + + public static @NotNull ComponentSerializer globalSerializer() { + return GLOBAL_SERIALIZER; + } + + public static @NotNull String serialize(@NotNull Component component) { + return GLOBAL_SERIALIZER.serialize(component); + } + + public static @NotNull Component deserialize(@NotNull String input) { + return GLOBAL_SERIALIZER.deserialize(input); + } + + public static @NotNull List deserialize(@NotNull List input) { + return input.stream().map(GlobalAdventureSerializer::deserialize).collect(Collectors.toList()); + } + + public static @NotNull List deserialize(@NotNull String... input) { + return deserialize(Arrays.asList(input)); + } + + public static @NotNull Component[] deserializeArray(@NotNull List input) { + return deserialize(input).toArray(new Component[0]); + } + + public static @NotNull Component[] deserializeArray(@NotNull String... input) { + return deserialize(input).toArray(new Component[0]); + } + +} diff --git a/tools/src/main/java/dev/peri/yetanothermessageslibrary/replace/ComponentReplacer.java b/tools/src/main/java/dev/peri/yetanothermessageslibrary/replace/ComponentReplacer.java new file mode 100644 index 0000000..588a365 --- /dev/null +++ b/tools/src/main/java/dev/peri/yetanothermessageslibrary/replace/ComponentReplacer.java @@ -0,0 +1,69 @@ +package dev.peri.yetanothermessageslibrary.replace; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collection; +import java.util.List; +import java.util.Locale; +import net.kyori.adventure.text.Component; +import org.jetbrains.annotations.Contract; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +public final class ComponentReplacer { + + private ComponentReplacer() { + } + + @Contract(pure = true, value = "_, null, _ -> null") + public static Component replace(@Nullable Locale locale, @Nullable Component text, @NotNull Iterable replacements) { + if (text == null) { + return null; + } + + for (Replaceable replacement : replacements) { + text = replacement.replace(locale, text); + } + return text; + } + + @Contract(pure = true, value = "null, _, -> null") + public static Component replace(@Nullable Component text, @NotNull Iterable replacements) { + return replace(null, text, replacements); + } + + @Contract(pure = true, value = "_, null, _ -> null") + public static Component replace(@Nullable Locale locale, @Nullable Component text, @NotNull Replaceable... replacements) { + return replace(locale, text, Arrays.asList(replacements)); + } + + @Contract(pure = true, value = "null, _, -> null") + public static Component replace(@Nullable Component text, @NotNull Replaceable... replacements) { + return replace(null, text, replacements); + } + + @Contract(pure = true) + public static @NotNull List replace(@Nullable Locale locale, @NotNull Iterable text, @NotNull Iterable replacements) { + List result = new ArrayList<>(); + for (Component line : text) { + result.add(replace(locale, line, replacements)); + } + return result; + } + + @Contract(pure = true) + public static @NotNull List replace(@NotNull Iterable text, @NotNull Collection replacements) { + return replace(null, text, replacements); + } + + @Contract(pure = true) + public static @NotNull List replace(@Nullable Locale locale, @NotNull Iterable text, @NotNull Replaceable... replacements) { + return replace(locale, text, Arrays.asList(replacements)); + } + + @Contract(pure = true) + public static @NotNull List replace(@NotNull Iterable text, @NotNull Replaceable... replacements) { + return replace(null, text, replacements); + } + +} diff --git a/core/src/main/java/dev/peri/yetanothermessageslibrary/replace/Replaceable.java b/tools/src/main/java/dev/peri/yetanothermessageslibrary/replace/Replaceable.java similarity index 66% rename from core/src/main/java/dev/peri/yetanothermessageslibrary/replace/Replaceable.java rename to tools/src/main/java/dev/peri/yetanothermessageslibrary/replace/Replaceable.java index d7cc572..32ec1b4 100644 --- a/core/src/main/java/dev/peri/yetanothermessageslibrary/replace/Replaceable.java +++ b/tools/src/main/java/dev/peri/yetanothermessageslibrary/replace/Replaceable.java @@ -7,10 +7,8 @@ public interface Replaceable { - @NotNull String replace(@Nullable Locale locale, @NotNull String text); - - default @NotNull String replace(@NotNull String text) { - return this.replace(null, text); + default boolean supportsStringReplacement() { + return false; } @NotNull Component replace(@Nullable Locale locale, @NotNull Component text); @@ -19,4 +17,12 @@ public interface Replaceable { return this.replace(null, text); } + default @NotNull String replace(@Nullable Locale locale, @NotNull String text) { + throw new UnsupportedOperationException("This replaceable does not support string replacement"); + } + + default @NotNull String replace(@NotNull String text) { + return this.replace(null, text); + } + } diff --git a/core/src/main/java/dev/peri/yetanothermessageslibrary/replace/StringReplacer.java b/tools/src/main/java/dev/peri/yetanothermessageslibrary/replace/StringReplacer.java similarity index 67% rename from core/src/main/java/dev/peri/yetanothermessageslibrary/replace/StringReplacer.java rename to tools/src/main/java/dev/peri/yetanothermessageslibrary/replace/StringReplacer.java index d8cbe02..ccdb783 100644 --- a/core/src/main/java/dev/peri/yetanothermessageslibrary/replace/StringReplacer.java +++ b/tools/src/main/java/dev/peri/yetanothermessageslibrary/replace/StringReplacer.java @@ -2,7 +2,6 @@ import java.util.ArrayList; import java.util.Arrays; -import java.util.Collection; import java.util.List; import java.util.Locale; import org.jetbrains.annotations.Contract; @@ -15,7 +14,7 @@ private StringReplacer() { } @Contract(pure = true, value = "_, null, _, -> null") - public static String replace(@Nullable Locale locale, @Nullable String text, @NotNull Collection replacements) { + public static String replace(@Nullable Locale locale, @Nullable String text, @NotNull Iterable replacements) { if (text == null || text.isEmpty()) { return text; } @@ -28,7 +27,7 @@ public static String replace(@Nullable Locale locale, @Nullable String text, @No } @Contract(pure = true, value = "null, _, -> null") - public static String replace(@Nullable String text, @NotNull Collection replacements) { + public static String replace(@Nullable String text, @NotNull Iterable replacements) { return replace(null, text, replacements); } @@ -43,7 +42,7 @@ public static String replace(@Nullable String text, @NotNull Replaceable... repl } @Contract(pure = true) - public static @NotNull List replace(@Nullable Locale locale, @NotNull List text, @NotNull Replaceable... replacements) { + public static @NotNull List replace(@Nullable Locale locale, @NotNull Iterable text, @NotNull Iterable replacements) { List result = new ArrayList<>(); for (String line : text) { result.add(replace(locale, line, replacements)); @@ -52,8 +51,18 @@ public static String replace(@Nullable String text, @NotNull Replaceable... repl } @Contract(pure = true) - public static @NotNull List replace(@NotNull List text, @NotNull Replaceable... replacements) { + public static @NotNull List replace(@NotNull Iterable text, @NotNull Iterable replacements) { return replace(null, text, replacements); } + @Contract(pure = true) + public static @NotNull List replace(@NotNull Iterable text, @NotNull Replaceable... replacements) { + return replace(null, text, Arrays.asList(replacements)); + } + + @Contract(pure = true) + public static @NotNull List replace(@Nullable Locale locale, @NotNull Iterable text, @NotNull Replaceable... replacements) { + return replace(locale, text, Arrays.asList(replacements)); + } + } diff --git a/tools/src/main/java/dev/peri/yetanothermessageslibrary/replace/replacement/ComponentReplacement.java b/tools/src/main/java/dev/peri/yetanothermessageslibrary/replace/replacement/ComponentReplacement.java new file mode 100644 index 0000000..6dbf489 --- /dev/null +++ b/tools/src/main/java/dev/peri/yetanothermessageslibrary/replace/replacement/ComponentReplacement.java @@ -0,0 +1,22 @@ +package dev.peri.yetanothermessageslibrary.replace.replacement; + +import java.util.Locale; +import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.TextReplacementConfig; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +public abstract class ComponentReplacement extends Replacement { + + protected ComponentReplacement(@NotNull Object placeholder) { + super(placeholder); + } + + public abstract @NotNull TextReplacementConfig getReplacement(@Nullable Locale locale); + + @Override + public @NotNull Component replace(@Nullable Locale locale, @NotNull Component text) { + return text.replaceText(this.getReplacement(locale)); + } + +} diff --git a/tools/src/main/java/dev/peri/yetanothermessageslibrary/replace/replacement/FunctionReplacement.java b/tools/src/main/java/dev/peri/yetanothermessageslibrary/replace/replacement/FunctionReplacement.java new file mode 100644 index 0000000..b23a812 --- /dev/null +++ b/tools/src/main/java/dev/peri/yetanothermessageslibrary/replace/replacement/FunctionReplacement.java @@ -0,0 +1,31 @@ +package dev.peri.yetanothermessageslibrary.replace.replacement; + +import java.util.Locale; +import java.util.function.Function; +import java.util.function.Supplier; +import net.kyori.adventure.text.ComponentLike; +import net.kyori.adventure.text.TextReplacementConfig; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +public class FunctionReplacement extends ComponentReplacement { + + private final Function<@Nullable Locale, ? extends @NotNull ComponentLike> replacementFunction; + + protected FunctionReplacement(@NotNull Object placeholder, @NotNull Function<@Nullable Locale, ? extends @NotNull ComponentLike> replacementFunction) { + super(placeholder); + this.replacementFunction = replacementFunction; + } + + protected FunctionReplacement(@NotNull Object placeholder, @NotNull Supplier replacementSupplier) { + this(placeholder, locale -> replacementSupplier.get()); + } + + @Override + public @NotNull TextReplacementConfig getReplacement(@Nullable Locale locale) { + return this.newReplacementBuilder() + .replacement(this.replacementFunction.apply(locale)) + .build(); + } + +} diff --git a/tools/src/main/java/dev/peri/yetanothermessageslibrary/replace/replacement/FunctionStringReplacement.java b/tools/src/main/java/dev/peri/yetanothermessageslibrary/replace/replacement/FunctionStringReplacement.java new file mode 100644 index 0000000..75117aa --- /dev/null +++ b/tools/src/main/java/dev/peri/yetanothermessageslibrary/replace/replacement/FunctionStringReplacement.java @@ -0,0 +1,34 @@ +package dev.peri.yetanothermessageslibrary.replace.replacement; + +import dev.peri.yetanothermessageslibrary.adventure.GlobalAdventureSerializer; +import java.util.Locale; +import java.util.function.Function; +import java.util.function.Supplier; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +public class FunctionStringReplacement extends FunctionReplacement { + + private final Function<@Nullable Locale, ? extends @NotNull String> replacementFunction; + + protected FunctionStringReplacement(@NotNull Object placeholder, @NotNull Function<@Nullable Locale, @NotNull String> replacementFunction) { + super(placeholder, locale -> GlobalAdventureSerializer.deserialize(replacementFunction.apply(locale))); + this.replacementFunction = replacementFunction; + } + + protected FunctionStringReplacement(@NotNull Object placeholder, @NotNull Supplier<@NotNull String> replacementSupplier) { + super(placeholder, locale -> GlobalAdventureSerializer.deserialize(replacementSupplier.get())); + this.replacementFunction = locale -> replacementSupplier.get(); + } + + @Override + public boolean supportsStringReplacement() { + return true; + } + + @Override + public @NotNull String replace(@Nullable Locale locale, @NotNull String text) { + return this.getPlaceholderType().replace(text, this.getPlaceholder(), this.replacementFunction.apply(locale)); + } + +} diff --git a/tools/src/main/java/dev/peri/yetanothermessageslibrary/replace/replacement/Replacement.java b/tools/src/main/java/dev/peri/yetanothermessageslibrary/replace/replacement/Replacement.java new file mode 100644 index 0000000..4f878af --- /dev/null +++ b/tools/src/main/java/dev/peri/yetanothermessageslibrary/replace/replacement/Replacement.java @@ -0,0 +1,150 @@ +package dev.peri.yetanothermessageslibrary.replace.replacement; + +import dev.peri.yetanothermessageslibrary.replace.Replaceable; +import dev.peri.yetanothermessageslibrary.util.TriFunction; +import dev.peri.yetanothermessageslibrary.util.Validate; +import java.util.Collections; +import java.util.HashMap; +import java.util.Locale; +import java.util.Map; +import java.util.Objects; +import java.util.function.Function; +import java.util.function.Supplier; +import java.util.regex.Pattern; +import net.kyori.adventure.text.ComponentLike; +import net.kyori.adventure.text.TextReplacementConfig; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +public abstract class Replacement implements Replaceable { + + private final PlaceholderType placeholderType; + private final Object placeholder; + + protected Replacement(@NotNull Object placeholder) { + PlaceholderType placeholderType = PlaceholderType.match(placeholder.getClass()); + Validate.isTrue(placeholderType != null, "placeholder must be a String or Pattern"); + this.placeholderType = placeholderType; + this.placeholder = placeholder; + } + + protected final @NotNull Replacement.PlaceholderType getPlaceholderType() { + return this.placeholderType; + } + + protected final @NotNull TextReplacementConfig.Builder newReplacementBuilder() { + return this.placeholderType.newReplacementBuilder(this.placeholder); + } + + public final @NotNull Object getPlaceholder() { + return this.placeholder; + } + + protected enum PlaceholderType { + + STRING( + String.class, + (text, placeholder, replacement) -> text.replace((String) placeholder, replacement), + replacement -> TextReplacementConfig.builder().matchLiteral((String) replacement) + ), + REGEX( + Pattern.class, + (text, placeholder, replacement) -> ((Pattern) placeholder).matcher(text).replaceAll(replacement), + replacement -> TextReplacementConfig.builder().match((Pattern) replacement) + ); + + private static final Map, PlaceholderType> PLACEHOLDERS_MAP; + + static { + Map, PlaceholderType> map = new HashMap<>(); + for (PlaceholderType placeholderType : PlaceholderType.values()) { + map.put(placeholderType.getClazz(), placeholderType); + } + PLACEHOLDERS_MAP = Collections.unmodifiableMap(map); + } + + private final Class clazz; + private final TriFunction replacer; + private final Function replacementBuilderFactory; + + PlaceholderType( + @NotNull Class clazz, + @NotNull TriFunction<@NotNull String, @NotNull Object, @NotNull String, @NotNull String> replacer, + @NotNull Function<@NotNull Object, TextReplacementConfig.Builder> replacementBuilderFactory + ) { + this.clazz = clazz; + this.replacer = replacer; + this.replacementBuilderFactory = replacementBuilderFactory; + } + + public Class getClazz() { + return this.clazz; + } + + public boolean isInstance(Object obj) { + return this.clazz.isInstance(obj); + } + + public @NotNull String replace(@NotNull String text, @NotNull Object placeholder, @NotNull String replacement) { + return this.replacer.apply(text, placeholder, replacement); + } + + public @NotNull TextReplacementConfig.Builder newReplacementBuilder(@NotNull Object placeholder) { + return this.replacementBuilderFactory.apply(placeholder); + } + + public static @Nullable Replacement.PlaceholderType match(@NotNull Class clazz) { + return PLACEHOLDERS_MAP.get(clazz); + } + + } + + public static @NotNull SimpleStringReplacement string(@NotNull String placeholder, @NotNull Object replacement) { + return new SimpleStringReplacement(placeholder, Objects.toString(replacement)); + } + + public static @NotNull SimpleStringReplacement string(@NotNull Pattern placeholder, @NotNull Object replacement) { + return new SimpleStringReplacement(placeholder, Objects.toString(replacement)); + } + + public static @NotNull FunctionStringReplacement string(@NotNull String placeholder, @NotNull Function<@Nullable Locale, ? extends @NotNull Object> replacementFunction) { + return new FunctionStringReplacement(placeholder, locale -> Objects.toString(replacementFunction.apply(locale))); + } + + public static @NotNull FunctionStringReplacement string(@NotNull Pattern placeholder, @NotNull Function<@Nullable Locale, ? extends @NotNull Object> replacementFunction) { + return new FunctionStringReplacement(placeholder, locale -> Objects.toString(replacementFunction.apply(locale))); + } + + public static @NotNull FunctionStringReplacement string(@NotNull String placeholder, @NotNull Supplier replacementSupplier) { + return new FunctionStringReplacement(placeholder, locale -> Objects.toString(replacementSupplier.get())); + } + + public static @NotNull FunctionStringReplacement string(@NotNull Pattern placeholder, @NotNull Supplier replacementSupplier) { + return new FunctionStringReplacement(placeholder, locale -> Objects.toString(replacementSupplier.get())); + } + + public static @NotNull SimpleReplacement component(@NotNull String placeholder, @NotNull ComponentLike replacement) { + return new SimpleReplacement(placeholder, replacement); + } + + public static @NotNull SimpleReplacement component(@NotNull Pattern placeholder, @NotNull ComponentLike replacement) { + return new SimpleReplacement(placeholder, replacement); + } + + public static @NotNull FunctionReplacement component(@NotNull String placeholder, @NotNull Function<@Nullable Locale, ? extends @NotNull ComponentLike> replacementFunction) { + return new FunctionReplacement(placeholder, replacementFunction); + } + + public static @NotNull FunctionReplacement component(@NotNull Pattern placeholder, @NotNull Function<@Nullable Locale, ? extends @NotNull ComponentLike> replacementFunction) { + return new FunctionReplacement(placeholder, replacementFunction); + } + + public static @NotNull FunctionReplacement component(@NotNull String placeholder, @NotNull Supplier replacementSupplier) { + return new FunctionReplacement(placeholder, replacementSupplier); + } + + public static @NotNull FunctionReplacement component(@NotNull Pattern placeholder, @NotNull Supplier replacementSupplier) { + return new FunctionReplacement(placeholder, replacementSupplier); + } + +} diff --git a/tools/src/main/java/dev/peri/yetanothermessageslibrary/replace/replacement/SimpleReplacement.java b/tools/src/main/java/dev/peri/yetanothermessageslibrary/replace/replacement/SimpleReplacement.java new file mode 100644 index 0000000..6c67ee0 --- /dev/null +++ b/tools/src/main/java/dev/peri/yetanothermessageslibrary/replace/replacement/SimpleReplacement.java @@ -0,0 +1,25 @@ +package dev.peri.yetanothermessageslibrary.replace.replacement; + +import java.util.Locale; +import net.kyori.adventure.text.ComponentLike; +import net.kyori.adventure.text.TextReplacementConfig; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +public class SimpleReplacement extends ComponentReplacement { + + private final TextReplacementConfig replacement; + + protected SimpleReplacement(@NotNull Object placeholder, @NotNull ComponentLike replacement) { + super(placeholder); + this.replacement = this.newReplacementBuilder() + .replacement(replacement) + .build(); + } + + @Override + public @NotNull TextReplacementConfig getReplacement(@Nullable Locale locale) { + return this.replacement; + } + +} diff --git a/tools/src/main/java/dev/peri/yetanothermessageslibrary/replace/replacement/SimpleStringReplacement.java b/tools/src/main/java/dev/peri/yetanothermessageslibrary/replace/replacement/SimpleStringReplacement.java new file mode 100644 index 0000000..f41cbf4 --- /dev/null +++ b/tools/src/main/java/dev/peri/yetanothermessageslibrary/replace/replacement/SimpleStringReplacement.java @@ -0,0 +1,27 @@ +package dev.peri.yetanothermessageslibrary.replace.replacement; + +import dev.peri.yetanothermessageslibrary.adventure.GlobalAdventureSerializer; +import java.util.Locale; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +public class SimpleStringReplacement extends SimpleReplacement { + + private final String replacement; + + protected SimpleStringReplacement(@NotNull Object placeholder, @NotNull String replacement) { + super(placeholder, GlobalAdventureSerializer.deserialize(replacement)); + this.replacement = replacement; + } + + @Override + public boolean supportsStringReplacement() { + return true; + } + + @Override + public @NotNull String replace(@Nullable Locale locale, @NotNull String text) { + return this.getPlaceholderType().replace(text, this.getPlaceholder(), this.replacement); + } + +} diff --git a/core/src/main/java/dev/peri/yetanothermessageslibrary/util/TriFunction.java b/tools/src/main/java/dev/peri/yetanothermessageslibrary/util/TriFunction.java similarity index 100% rename from core/src/main/java/dev/peri/yetanothermessageslibrary/util/TriFunction.java rename to tools/src/main/java/dev/peri/yetanothermessageslibrary/util/TriFunction.java diff --git a/core/src/main/java/dev/peri/yetanothermessageslibrary/util/Validate.java b/tools/src/main/java/dev/peri/yetanothermessageslibrary/util/Validate.java similarity index 100% rename from core/src/main/java/dev/peri/yetanothermessageslibrary/util/Validate.java rename to tools/src/main/java/dev/peri/yetanothermessageslibrary/util/Validate.java From d9be20ec3e273e2ee0ec978502f90893b6405e1c Mon Sep 17 00:00:00 2001 From: Peridot Date: Thu, 16 Nov 2023 02:13:50 +0100 Subject: [PATCH 02/17] Rebrand from dev.peri to org.mythicprojects --- README.md | 24 ++++++++--------- build.gradle | 16 ++++++------ .../MessageRepository.java | 5 ---- .../MessageRepository.java | 5 ++++ .../MessageService.java | 8 +++--- .../SendableMessageService.java | 10 +++---- .../SimpleMessageService.java | 6 ++--- .../SimpleSendableMessageService.java | 12 ++++----- .../locale/LocaleProvider.java | 2 +- .../message/MessageDispatcher.java | 12 ++++----- .../message/MessageDispatcherFactory.java | 4 +-- .../message/Sendable.java | 6 ++--- .../message/SendableMessage.java | 20 +++++++------- .../message/holder/SendableHolder.java | 6 ++--- .../message/holder/impl/ActionBarHolder.java | 16 ++++++------ .../message/holder/impl/BossBarHolder.java | 12 ++++----- .../message/holder/impl/ChatHolder.java | 14 +++++----- .../message/holder/impl/SoundHolder.java | 8 +++--- .../message/holder/impl/TitleHolder.java | 16 ++++++------ .../viewer/Viewer.java | 2 +- .../viewer/ViewerDataSupplier.java | 2 +- .../viewer/ViewerFactory.java | 2 +- .../viewer/ViewerService.java | 2 +- example/build.gradle | 8 +++--- .../example/ExampleListener.java | 10 +++---- .../example/ExamplePlugin.java | 26 +++++++++---------- .../complex/ExampleMessageDispatcher.java | 8 +++--- .../complex/ExampleMessageService.java | 12 ++++----- .../example/config/MessageConfiguration.java | 12 ++++----- example/src/main/resources/plugin.yml | 2 +- .../BukkitMessageService.java | 10 +++---- .../locale/BukkitPlayerLocaleProvider.java | 4 +-- .../message/BukkitMessageDispatcher.java | 4 +-- .../util/BukkitLocaleHelper.java | 2 +- .../viewer/BukkitViewerDataSupplier.java | 2 +- .../BungeeMessageService.java | 10 +++---- .../message/BungeeMessageDispatcher.java | 4 +-- .../viewer/BungeeViewerDataSupplier.java | 2 +- .../VelocityMessageService.java | 10 +++---- .../message/VelocityMessageDispatcher.java | 4 +-- .../viewer/VelocityViewerDataSupplier.java | 2 +- .../OkaeriPlaceholdersReplaceable.java | 6 ++--- .../replace/PlaceholderAPIReplaceable.java | 6 ++--- .../config/serdes/ComponentTransformer.java | 2 +- .../config/serdes/KeyTransformer.java | 2 +- .../serdes/SendableMessageSerializer.java | 16 ++++++------ .../config/serdes/YAMLSerdes.java | 16 ++++++------ .../holder/ActionBarHolderTransformer.java | 4 +-- .../holder/BossBarHolderSerializer.java | 4 +-- .../config/serdes/holder/ChatSerializer.java | 4 +-- .../serdes/holder/SoundHolderSerializer.java | 4 +-- .../serdes/holder/TitleHolderSerializer.java | 4 +-- .../adventure/GlobalAdventureSerializer.java | 9 ++++--- .../replace/ComponentReplacer.java | 2 +- .../replace/Replaceable.java | 2 +- .../replace/StringReplacer.java | 2 +- .../replacement/ComponentReplacement.java | 2 +- .../replacement/FunctionReplacement.java | 2 +- .../FunctionStringReplacement.java | 4 +-- .../replace/replacement/Replacement.java | 8 +++--- .../replacement/SimpleReplacement.java | 2 +- .../replacement/SimpleStringReplacement.java | 4 +-- .../util/TriFunction.java | 2 +- .../util/Validate.java | 2 +- 64 files changed, 226 insertions(+), 225 deletions(-) delete mode 100644 core/src/main/java/dev/peri/yetanothermessageslibrary/MessageRepository.java create mode 100644 core/src/main/java/org/mythicprojects/yetanothermessageslibrary/MessageRepository.java rename core/src/main/java/{dev/peri => org/mythicprojects}/yetanothermessageslibrary/MessageService.java (95%) rename core/src/main/java/{dev/peri => org/mythicprojects}/yetanothermessageslibrary/SendableMessageService.java (70%) rename core/src/main/java/{dev/peri => org/mythicprojects}/yetanothermessageslibrary/SimpleMessageService.java (93%) rename core/src/main/java/{dev/peri => org/mythicprojects}/yetanothermessageslibrary/SimpleSendableMessageService.java (74%) rename core/src/main/java/{dev/peri => org/mythicprojects}/yetanothermessageslibrary/locale/LocaleProvider.java (91%) rename core/src/main/java/{dev/peri => org/mythicprojects}/yetanothermessageslibrary/message/MessageDispatcher.java (96%) rename core/src/main/java/{dev/peri => org/mythicprojects}/yetanothermessageslibrary/message/MessageDispatcherFactory.java (78%) rename core/src/main/java/{dev/peri => org/mythicprojects}/yetanothermessageslibrary/message/Sendable.java (65%) rename core/src/main/java/{dev/peri => org/mythicprojects}/yetanothermessageslibrary/message/SendableMessage.java (92%) rename core/src/main/java/{dev/peri => org/mythicprojects}/yetanothermessageslibrary/message/holder/SendableHolder.java (74%) rename core/src/main/java/{dev/peri => org/mythicprojects}/yetanothermessageslibrary/message/holder/impl/ActionBarHolder.java (68%) rename core/src/main/java/{dev/peri => org/mythicprojects}/yetanothermessageslibrary/message/holder/impl/BossBarHolder.java (91%) rename core/src/main/java/{dev/peri => org/mythicprojects}/yetanothermessageslibrary/message/holder/impl/ChatHolder.java (79%) rename core/src/main/java/{dev/peri => org/mythicprojects}/yetanothermessageslibrary/message/holder/impl/SoundHolder.java (77%) rename core/src/main/java/{dev/peri => org/mythicprojects}/yetanothermessageslibrary/message/holder/impl/TitleHolder.java (88%) rename core/src/main/java/{dev/peri => org/mythicprojects}/yetanothermessageslibrary/viewer/Viewer.java (97%) rename core/src/main/java/{dev/peri => org/mythicprojects}/yetanothermessageslibrary/viewer/ViewerDataSupplier.java (89%) rename core/src/main/java/{dev/peri => org/mythicprojects}/yetanothermessageslibrary/viewer/ViewerFactory.java (88%) rename core/src/main/java/{dev/peri => org/mythicprojects}/yetanothermessageslibrary/viewer/ViewerService.java (96%) rename example/src/main/java/{dev/peri => org/mythicprojects}/yetanothermessageslibrary/example/ExampleListener.java (81%) rename example/src/main/java/{dev/peri => org/mythicprojects}/yetanothermessageslibrary/example/ExamplePlugin.java (73%) rename example/src/main/java/{dev/peri => org/mythicprojects}/yetanothermessageslibrary/example/complex/ExampleMessageDispatcher.java (77%) rename example/src/main/java/{dev/peri => org/mythicprojects}/yetanothermessageslibrary/example/complex/ExampleMessageService.java (55%) rename example/src/main/java/{dev/peri => org/mythicprojects}/yetanothermessageslibrary/example/config/MessageConfiguration.java (65%) rename platform/bukkit/src/main/java/{dev/peri => org/mythicprojects}/yetanothermessageslibrary/BukkitMessageService.java (73%) rename platform/bukkit/src/main/java/{dev/peri => org/mythicprojects}/yetanothermessageslibrary/locale/BukkitPlayerLocaleProvider.java (78%) rename platform/bukkit/src/main/java/{dev/peri => org/mythicprojects}/yetanothermessageslibrary/message/BukkitMessageDispatcher.java (90%) rename platform/bukkit/src/main/java/{dev/peri => org/mythicprojects}/yetanothermessageslibrary/util/BukkitLocaleHelper.java (95%) rename platform/bukkit/src/main/java/{dev/peri => org/mythicprojects}/yetanothermessageslibrary/viewer/BukkitViewerDataSupplier.java (94%) rename platform/bungee/src/main/java/{dev/peri => org/mythicprojects}/yetanothermessageslibrary/BungeeMessageService.java (74%) rename platform/bungee/src/main/java/{dev/peri => org/mythicprojects}/yetanothermessageslibrary/message/BungeeMessageDispatcher.java (90%) rename platform/bungee/src/main/java/{dev/peri => org/mythicprojects}/yetanothermessageslibrary/viewer/BungeeViewerDataSupplier.java (94%) rename platform/velocity/src/main/java/{dev/peri => org/mythicprojects}/yetanothermessageslibrary/VelocityMessageService.java (75%) rename platform/velocity/src/main/java/{dev/peri => org/mythicprojects}/yetanothermessageslibrary/message/VelocityMessageDispatcher.java (91%) rename platform/velocity/src/main/java/{dev/peri => org/mythicprojects}/yetanothermessageslibrary/viewer/VelocityViewerDataSupplier.java (92%) rename replaceable/okaeri/src/main/java/{dev/peri => org/mythicprojects}/yetanothermessageslibrary/replace/OkaeriPlaceholdersReplaceable.java (88%) rename replaceable/placeholderapi/src/main/java/{dev/peri => org/mythicprojects}/yetanothermessageslibrary/replace/PlaceholderAPIReplaceable.java (86%) rename repository/okaeri/src/main/java/{dev/peri => org/mythicprojects}/yetanothermessageslibrary/config/serdes/ComponentTransformer.java (94%) rename repository/okaeri/src/main/java/{dev/peri => org/mythicprojects}/yetanothermessageslibrary/config/serdes/KeyTransformer.java (90%) rename repository/okaeri/src/main/java/{dev/peri => org/mythicprojects}/yetanothermessageslibrary/config/serdes/SendableMessageSerializer.java (81%) rename repository/okaeri/src/main/java/{dev/peri => org/mythicprojects}/yetanothermessageslibrary/config/serdes/YAMLSerdes.java (65%) rename repository/okaeri/src/main/java/{dev/peri => org/mythicprojects}/yetanothermessageslibrary/config/serdes/holder/ActionBarHolderTransformer.java (82%) rename repository/okaeri/src/main/java/{dev/peri => org/mythicprojects}/yetanothermessageslibrary/config/serdes/holder/BossBarHolderSerializer.java (93%) rename repository/okaeri/src/main/java/{dev/peri => org/mythicprojects}/yetanothermessageslibrary/config/serdes/holder/ChatSerializer.java (93%) rename repository/okaeri/src/main/java/{dev/peri => org/mythicprojects}/yetanothermessageslibrary/config/serdes/holder/SoundHolderSerializer.java (91%) rename repository/okaeri/src/main/java/{dev/peri => org/mythicprojects}/yetanothermessageslibrary/config/serdes/holder/TitleHolderSerializer.java (94%) rename tools/src/main/java/{dev/peri => org/mythicprojects}/yetanothermessageslibrary/adventure/GlobalAdventureSerializer.java (81%) rename tools/src/main/java/{dev/peri => org/mythicprojects}/yetanothermessageslibrary/replace/ComponentReplacer.java (97%) rename tools/src/main/java/{dev/peri => org/mythicprojects}/yetanothermessageslibrary/replace/Replaceable.java (92%) rename tools/src/main/java/{dev/peri => org/mythicprojects}/yetanothermessageslibrary/replace/StringReplacer.java (97%) rename tools/src/main/java/{dev/peri => org/mythicprojects}/yetanothermessageslibrary/replace/replacement/ComponentReplacement.java (89%) rename tools/src/main/java/{dev/peri => org/mythicprojects}/yetanothermessageslibrary/replace/replacement/FunctionReplacement.java (93%) rename tools/src/main/java/{dev/peri => org/mythicprojects}/yetanothermessageslibrary/replace/replacement/FunctionStringReplacement.java (88%) rename tools/src/main/java/{dev/peri => org/mythicprojects}/yetanothermessageslibrary/replace/replacement/Replacement.java (95%) rename tools/src/main/java/{dev/peri => org/mythicprojects}/yetanothermessageslibrary/replace/replacement/SimpleReplacement.java (90%) rename tools/src/main/java/{dev/peri => org/mythicprojects}/yetanothermessageslibrary/replace/replacement/SimpleStringReplacement.java (81%) rename tools/src/main/java/{dev/peri => org/mythicprojects}/yetanothermessageslibrary/util/TriFunction.java (62%) rename tools/src/main/java/{dev/peri => org/mythicprojects}/yetanothermessageslibrary/util/Validate.java (89%) diff --git a/README.md b/README.md index 48e7f7c..4c91f90 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,8 @@ YetAnotherMessagesLibrary (YAML) =========== [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) -![Version](https://repo.titanvale.net/api/badge/latest/releases/dev/peri/yetanothermessageslibrary/core?color=42c611&name=Releases&prefix=v) -![Version](https://repo.titanvale.net/api/badge/latest/snapshots/dev/peri/yetanothermessageslibrary/core?color=d45f48&name=Snapshots&prefix=v) +![Version](https://repo.mythicprojects.org/api/badge/latest/releases/org/mythicprojects/yetanothermessageslibrary/core?color=42c611&name=Releases&prefix=v) +![Version](https://repo.mythicprojects.org/api/badge/latest/snapshots/org/mythicprojects/yetanothermessageslibrary/core?color=d45f48&name=Snapshots&prefix=v) ![GitHub repo size](https://img.shields.io/github/repo-size/P3ridot/YetAnotherMessagesLibrary) Lightweight and modular *Minecraft Messages Library* based on [adventure](https://github.com/KyoriPowered/adventure). @@ -31,20 +31,20 @@ Implementations of `Replaceable` interface to easily replace placeholders in mes ```xml - titanvale-releases - https://repo.titanvale.net/releases + mythic-releases + https://repo.mythicprojects.org/releases - titanvale-snapshots - https://repo.titanvale.net/snapshots + mythic-snapshots + https://repo.mythicprojects.org/snapshots ``` ```xml - dev.peri.yetanothermessageslibrary + org.mythicprojects.yetanothermessageslibrary [module] [version] @@ -55,19 +55,19 @@ Implementations of `Replaceable` interface to easily replace placeholders in mes repositories { // Releases maven { - name = "titanvale-releases" - url = "https://repo.titanvale.net/releases" + name = "mythic-releases" + url = "https://repo.mythicprojects.org/releases" } // Snapshots maven { - name = "titanvale-snapshots" - url = "https://repo.titanvale.net/snapshots" + name = "mythic-snapshots" + url = "https://repo.mythicprojects.org/snapshots" } } ``` ```groovy dependencies { - implementation 'dev.peri.yetanothermessageslibrary:[module]:[version]' + implementation 'org.mythicprojects.yetanothermessageslibrary:[module]:[version]' } ``` diff --git a/build.gradle b/build.gradle index acef567..9e23811 100644 --- a/build.gradle +++ b/build.gradle @@ -4,7 +4,7 @@ plugins { } allprojects { - group 'dev.peri.yetanothermessageslibrary' + group 'org.mythicprojects.yetanothermessageslibrary' version '7.0.0-SNAPSHOT' apply plugin: 'java-library' @@ -47,9 +47,9 @@ subprojects { from components.java pom { - url = "https://github.com/P3ridot/YetAnotherMessagesLibrary" + url = "https://github.com/Mythic-Projects/YetAnotherMessagesLibrary" name = project.name - description = "YetAnotherMessagesLibrary is simple Miecraft Messages Library based on `adventure`. It allows to easily send messages to players with built-in support for localization and placeholders." + description = "YetAnotherMessagesLibrary is simple Minecraft Messages Library based on `adventure`. It allows to easily send messages to players with built-in support for localization and placeholders." developers { developer { @@ -60,9 +60,9 @@ subprojects { } scm { - url = "https://github.com/P3ridot/YetAnotherMessagesLibrary.git" - connection = "git@github.com:P3ridot/YetAnotherMessagesLibrary.git" - developerConnection = "git@github.com:P3ridot/YetAnotherMessagesLibrary.git" + url = "https://github.com/Mythic-Projects/YetAnotherMessagesLibrary.git" + connection = "git@github.com:Mythic-Projects/YetAnotherMessagesLibrary.git" + developerConnection = "git@github.com:Mythic-Projects/YetAnotherMessagesLibrary.git" } licenses { @@ -93,8 +93,8 @@ subprojects { repositories { maven { - name "titanvale-repo" - url "https://repo.titanvale.net/${version.toString().endsWith('SNAPSHOT') ? 'snapshots' : 'releases'}" + name "mythic" + url "https://repo.mythicprojects.org/${version.toString().endsWith('SNAPSHOT') ? 'snapshots' : 'releases'}" credentials { username = System.getenv("MAVEN_NAME") diff --git a/core/src/main/java/dev/peri/yetanothermessageslibrary/MessageRepository.java b/core/src/main/java/dev/peri/yetanothermessageslibrary/MessageRepository.java deleted file mode 100644 index 56f258f..0000000 --- a/core/src/main/java/dev/peri/yetanothermessageslibrary/MessageRepository.java +++ /dev/null @@ -1,5 +0,0 @@ -package dev.peri.yetanothermessageslibrary; - -public interface MessageRepository { - -} diff --git a/core/src/main/java/org/mythicprojects/yetanothermessageslibrary/MessageRepository.java b/core/src/main/java/org/mythicprojects/yetanothermessageslibrary/MessageRepository.java new file mode 100644 index 0000000..b78c292 --- /dev/null +++ b/core/src/main/java/org/mythicprojects/yetanothermessageslibrary/MessageRepository.java @@ -0,0 +1,5 @@ +package org.mythicprojects.yetanothermessageslibrary; + +public interface MessageRepository { + +} diff --git a/core/src/main/java/dev/peri/yetanothermessageslibrary/MessageService.java b/core/src/main/java/org/mythicprojects/yetanothermessageslibrary/MessageService.java similarity index 95% rename from core/src/main/java/dev/peri/yetanothermessageslibrary/MessageService.java rename to core/src/main/java/org/mythicprojects/yetanothermessageslibrary/MessageService.java index 56d4e00..dc3fdc8 100644 --- a/core/src/main/java/dev/peri/yetanothermessageslibrary/MessageService.java +++ b/core/src/main/java/org/mythicprojects/yetanothermessageslibrary/MessageService.java @@ -1,8 +1,5 @@ -package dev.peri.yetanothermessageslibrary; +package org.mythicprojects.yetanothermessageslibrary; -import dev.peri.yetanothermessageslibrary.locale.LocaleProvider; -import dev.peri.yetanothermessageslibrary.replace.Replaceable; -import dev.peri.yetanothermessageslibrary.replace.StringReplacer; import java.util.List; import java.util.Locale; import java.util.Map; @@ -10,6 +7,9 @@ import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Unmodifiable; +import org.mythicprojects.yetanothermessageslibrary.locale.LocaleProvider; +import org.mythicprojects.yetanothermessageslibrary.replace.Replaceable; +import org.mythicprojects.yetanothermessageslibrary.replace.StringReplacer; public interface MessageService { diff --git a/core/src/main/java/dev/peri/yetanothermessageslibrary/SendableMessageService.java b/core/src/main/java/org/mythicprojects/yetanothermessageslibrary/SendableMessageService.java similarity index 70% rename from core/src/main/java/dev/peri/yetanothermessageslibrary/SendableMessageService.java rename to core/src/main/java/org/mythicprojects/yetanothermessageslibrary/SendableMessageService.java index 9d136b0..4472a72 100644 --- a/core/src/main/java/dev/peri/yetanothermessageslibrary/SendableMessageService.java +++ b/core/src/main/java/org/mythicprojects/yetanothermessageslibrary/SendableMessageService.java @@ -1,12 +1,12 @@ -package dev.peri.yetanothermessageslibrary; +package org.mythicprojects.yetanothermessageslibrary; -import dev.peri.yetanothermessageslibrary.message.MessageDispatcher; -import dev.peri.yetanothermessageslibrary.message.MessageDispatcherFactory; -import dev.peri.yetanothermessageslibrary.message.Sendable; -import dev.peri.yetanothermessageslibrary.viewer.ViewerService; import java.util.function.Function; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; +import org.mythicprojects.yetanothermessageslibrary.message.MessageDispatcher; +import org.mythicprojects.yetanothermessageslibrary.message.MessageDispatcherFactory; +import org.mythicprojects.yetanothermessageslibrary.message.Sendable; +import org.mythicprojects.yetanothermessageslibrary.viewer.ViewerService; public interface SendableMessageService> extends MessageService { diff --git a/core/src/main/java/dev/peri/yetanothermessageslibrary/SimpleMessageService.java b/core/src/main/java/org/mythicprojects/yetanothermessageslibrary/SimpleMessageService.java similarity index 93% rename from core/src/main/java/dev/peri/yetanothermessageslibrary/SimpleMessageService.java rename to core/src/main/java/org/mythicprojects/yetanothermessageslibrary/SimpleMessageService.java index 4c300a7..b2556d3 100644 --- a/core/src/main/java/dev/peri/yetanothermessageslibrary/SimpleMessageService.java +++ b/core/src/main/java/org/mythicprojects/yetanothermessageslibrary/SimpleMessageService.java @@ -1,7 +1,5 @@ -package dev.peri.yetanothermessageslibrary; +package org.mythicprojects.yetanothermessageslibrary; -import dev.peri.yetanothermessageslibrary.locale.LocaleProvider; -import dev.peri.yetanothermessageslibrary.util.Validate; import java.util.Collection; import java.util.Collections; import java.util.LinkedHashMap; @@ -11,6 +9,8 @@ import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Unmodifiable; +import org.mythicprojects.yetanothermessageslibrary.locale.LocaleProvider; +import org.mythicprojects.yetanothermessageslibrary.util.Validate; public abstract class SimpleMessageService implements MessageService { diff --git a/core/src/main/java/dev/peri/yetanothermessageslibrary/SimpleSendableMessageService.java b/core/src/main/java/org/mythicprojects/yetanothermessageslibrary/SimpleSendableMessageService.java similarity index 74% rename from core/src/main/java/dev/peri/yetanothermessageslibrary/SimpleSendableMessageService.java rename to core/src/main/java/org/mythicprojects/yetanothermessageslibrary/SimpleSendableMessageService.java index e87b4b7..912fb34 100644 --- a/core/src/main/java/dev/peri/yetanothermessageslibrary/SimpleSendableMessageService.java +++ b/core/src/main/java/org/mythicprojects/yetanothermessageslibrary/SimpleSendableMessageService.java @@ -1,11 +1,11 @@ -package dev.peri.yetanothermessageslibrary; +package org.mythicprojects.yetanothermessageslibrary; -import dev.peri.yetanothermessageslibrary.message.MessageDispatcher; -import dev.peri.yetanothermessageslibrary.message.MessageDispatcherFactory; -import dev.peri.yetanothermessageslibrary.viewer.ViewerDataSupplier; -import dev.peri.yetanothermessageslibrary.viewer.ViewerFactory; -import dev.peri.yetanothermessageslibrary.viewer.ViewerService; import org.jetbrains.annotations.NotNull; +import org.mythicprojects.yetanothermessageslibrary.message.MessageDispatcher; +import org.mythicprojects.yetanothermessageslibrary.message.MessageDispatcherFactory; +import org.mythicprojects.yetanothermessageslibrary.viewer.ViewerDataSupplier; +import org.mythicprojects.yetanothermessageslibrary.viewer.ViewerFactory; +import org.mythicprojects.yetanothermessageslibrary.viewer.ViewerService; public abstract class SimpleSendableMessageService> extends SimpleMessageService implements SendableMessageService { diff --git a/core/src/main/java/dev/peri/yetanothermessageslibrary/locale/LocaleProvider.java b/core/src/main/java/org/mythicprojects/yetanothermessageslibrary/locale/LocaleProvider.java similarity index 91% rename from core/src/main/java/dev/peri/yetanothermessageslibrary/locale/LocaleProvider.java rename to core/src/main/java/org/mythicprojects/yetanothermessageslibrary/locale/LocaleProvider.java index 6c4115a..17b7dbb 100644 --- a/core/src/main/java/dev/peri/yetanothermessageslibrary/locale/LocaleProvider.java +++ b/core/src/main/java/org/mythicprojects/yetanothermessageslibrary/locale/LocaleProvider.java @@ -1,4 +1,4 @@ -package dev.peri.yetanothermessageslibrary.locale; +package org.mythicprojects.yetanothermessageslibrary.locale; import java.util.Locale; import org.jetbrains.annotations.NotNull; diff --git a/core/src/main/java/dev/peri/yetanothermessageslibrary/message/MessageDispatcher.java b/core/src/main/java/org/mythicprojects/yetanothermessageslibrary/message/MessageDispatcher.java similarity index 96% rename from core/src/main/java/dev/peri/yetanothermessageslibrary/message/MessageDispatcher.java rename to core/src/main/java/org/mythicprojects/yetanothermessageslibrary/message/MessageDispatcher.java index 0771e3c..5df5301 100644 --- a/core/src/main/java/dev/peri/yetanothermessageslibrary/message/MessageDispatcher.java +++ b/core/src/main/java/org/mythicprojects/yetanothermessageslibrary/message/MessageDispatcher.java @@ -1,10 +1,5 @@ -package dev.peri.yetanothermessageslibrary.message; +package org.mythicprojects.yetanothermessageslibrary.message; -import dev.peri.yetanothermessageslibrary.replace.Replaceable; -import dev.peri.yetanothermessageslibrary.replace.replacement.Replacement; -import dev.peri.yetanothermessageslibrary.util.TriFunction; -import dev.peri.yetanothermessageslibrary.viewer.Viewer; -import dev.peri.yetanothermessageslibrary.viewer.ViewerService; import java.util.ArrayList; import java.util.Collection; import java.util.Collections; @@ -24,6 +19,11 @@ import org.jetbrains.annotations.Contract; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; +import org.mythicprojects.yetanothermessageslibrary.replace.Replaceable; +import org.mythicprojects.yetanothermessageslibrary.replace.replacement.Replacement; +import org.mythicprojects.yetanothermessageslibrary.util.TriFunction; +import org.mythicprojects.yetanothermessageslibrary.viewer.Viewer; +import org.mythicprojects.yetanothermessageslibrary.viewer.ViewerService; @SuppressWarnings("unchecked") public class MessageDispatcher> { diff --git a/core/src/main/java/dev/peri/yetanothermessageslibrary/message/MessageDispatcherFactory.java b/core/src/main/java/org/mythicprojects/yetanothermessageslibrary/message/MessageDispatcherFactory.java similarity index 78% rename from core/src/main/java/dev/peri/yetanothermessageslibrary/message/MessageDispatcherFactory.java rename to core/src/main/java/org/mythicprojects/yetanothermessageslibrary/message/MessageDispatcherFactory.java index 89e0bb2..3d024c1 100644 --- a/core/src/main/java/dev/peri/yetanothermessageslibrary/message/MessageDispatcherFactory.java +++ b/core/src/main/java/org/mythicprojects/yetanothermessageslibrary/message/MessageDispatcherFactory.java @@ -1,10 +1,10 @@ -package dev.peri.yetanothermessageslibrary.message; +package org.mythicprojects.yetanothermessageslibrary.message; -import dev.peri.yetanothermessageslibrary.viewer.ViewerService; import java.util.Locale; import java.util.function.Function; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; +import org.mythicprojects.yetanothermessageslibrary.viewer.ViewerService; public interface MessageDispatcherFactory> { diff --git a/core/src/main/java/dev/peri/yetanothermessageslibrary/message/Sendable.java b/core/src/main/java/org/mythicprojects/yetanothermessageslibrary/message/Sendable.java similarity index 65% rename from core/src/main/java/dev/peri/yetanothermessageslibrary/message/Sendable.java rename to core/src/main/java/org/mythicprojects/yetanothermessageslibrary/message/Sendable.java index 890786d..e1018c7 100644 --- a/core/src/main/java/dev/peri/yetanothermessageslibrary/message/Sendable.java +++ b/core/src/main/java/org/mythicprojects/yetanothermessageslibrary/message/Sendable.java @@ -1,10 +1,10 @@ -package dev.peri.yetanothermessageslibrary.message; +package org.mythicprojects.yetanothermessageslibrary.message; -import dev.peri.yetanothermessageslibrary.replace.Replaceable; -import dev.peri.yetanothermessageslibrary.viewer.Viewer; import java.util.Locale; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; +import org.mythicprojects.yetanothermessageslibrary.replace.Replaceable; +import org.mythicprojects.yetanothermessageslibrary.viewer.Viewer; public interface Sendable { diff --git a/core/src/main/java/dev/peri/yetanothermessageslibrary/message/SendableMessage.java b/core/src/main/java/org/mythicprojects/yetanothermessageslibrary/message/SendableMessage.java similarity index 92% rename from core/src/main/java/dev/peri/yetanothermessageslibrary/message/SendableMessage.java rename to core/src/main/java/org/mythicprojects/yetanothermessageslibrary/message/SendableMessage.java index 1940226..a595e0c 100644 --- a/core/src/main/java/dev/peri/yetanothermessageslibrary/message/SendableMessage.java +++ b/core/src/main/java/org/mythicprojects/yetanothermessageslibrary/message/SendableMessage.java @@ -1,14 +1,5 @@ -package dev.peri.yetanothermessageslibrary.message; +package org.mythicprojects.yetanothermessageslibrary.message; -import dev.peri.yetanothermessageslibrary.adventure.GlobalAdventureSerializer; -import dev.peri.yetanothermessageslibrary.message.holder.SendableHolder; -import dev.peri.yetanothermessageslibrary.message.holder.impl.ActionBarHolder; -import dev.peri.yetanothermessageslibrary.message.holder.impl.BossBarHolder; -import dev.peri.yetanothermessageslibrary.message.holder.impl.ChatHolder; -import dev.peri.yetanothermessageslibrary.message.holder.impl.SoundHolder; -import dev.peri.yetanothermessageslibrary.message.holder.impl.TitleHolder; -import dev.peri.yetanothermessageslibrary.replace.Replaceable; -import dev.peri.yetanothermessageslibrary.viewer.Viewer; import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; @@ -22,6 +13,15 @@ import org.jetbrains.annotations.Contract; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; +import org.mythicprojects.yetanothermessageslibrary.adventure.GlobalAdventureSerializer; +import org.mythicprojects.yetanothermessageslibrary.message.holder.SendableHolder; +import org.mythicprojects.yetanothermessageslibrary.message.holder.impl.ActionBarHolder; +import org.mythicprojects.yetanothermessageslibrary.message.holder.impl.BossBarHolder; +import org.mythicprojects.yetanothermessageslibrary.message.holder.impl.ChatHolder; +import org.mythicprojects.yetanothermessageslibrary.message.holder.impl.SoundHolder; +import org.mythicprojects.yetanothermessageslibrary.message.holder.impl.TitleHolder; +import org.mythicprojects.yetanothermessageslibrary.replace.Replaceable; +import org.mythicprojects.yetanothermessageslibrary.viewer.Viewer; public class SendableMessage implements Sendable { diff --git a/core/src/main/java/dev/peri/yetanothermessageslibrary/message/holder/SendableHolder.java b/core/src/main/java/org/mythicprojects/yetanothermessageslibrary/message/holder/SendableHolder.java similarity index 74% rename from core/src/main/java/dev/peri/yetanothermessageslibrary/message/holder/SendableHolder.java rename to core/src/main/java/org/mythicprojects/yetanothermessageslibrary/message/holder/SendableHolder.java index eef59bd..45d41d8 100644 --- a/core/src/main/java/dev/peri/yetanothermessageslibrary/message/holder/SendableHolder.java +++ b/core/src/main/java/org/mythicprojects/yetanothermessageslibrary/message/holder/SendableHolder.java @@ -1,9 +1,9 @@ -package dev.peri.yetanothermessageslibrary.message.holder; +package org.mythicprojects.yetanothermessageslibrary.message.holder; -import dev.peri.yetanothermessageslibrary.message.Sendable; -import dev.peri.yetanothermessageslibrary.replace.Replaceable; import org.jetbrains.annotations.Contract; import org.jetbrains.annotations.NotNull; +import org.mythicprojects.yetanothermessageslibrary.message.Sendable; +import org.mythicprojects.yetanothermessageslibrary.replace.Replaceable; public abstract class SendableHolder implements Sendable { diff --git a/core/src/main/java/dev/peri/yetanothermessageslibrary/message/holder/impl/ActionBarHolder.java b/core/src/main/java/org/mythicprojects/yetanothermessageslibrary/message/holder/impl/ActionBarHolder.java similarity index 68% rename from core/src/main/java/dev/peri/yetanothermessageslibrary/message/holder/impl/ActionBarHolder.java rename to core/src/main/java/org/mythicprojects/yetanothermessageslibrary/message/holder/impl/ActionBarHolder.java index d2dd3b4..fe463b7 100644 --- a/core/src/main/java/dev/peri/yetanothermessageslibrary/message/holder/impl/ActionBarHolder.java +++ b/core/src/main/java/org/mythicprojects/yetanothermessageslibrary/message/holder/impl/ActionBarHolder.java @@ -1,15 +1,15 @@ -package dev.peri.yetanothermessageslibrary.message.holder.impl; - -import dev.peri.yetanothermessageslibrary.adventure.GlobalAdventureSerializer; -import dev.peri.yetanothermessageslibrary.message.SendableMessage; -import dev.peri.yetanothermessageslibrary.message.holder.SendableHolder; -import dev.peri.yetanothermessageslibrary.replace.ComponentReplacer; -import dev.peri.yetanothermessageslibrary.replace.Replaceable; -import dev.peri.yetanothermessageslibrary.viewer.Viewer; +package org.mythicprojects.yetanothermessageslibrary.message.holder.impl; + import java.util.Locale; import net.kyori.adventure.text.Component; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; +import org.mythicprojects.yetanothermessageslibrary.adventure.GlobalAdventureSerializer; +import org.mythicprojects.yetanothermessageslibrary.message.SendableMessage; +import org.mythicprojects.yetanothermessageslibrary.message.holder.SendableHolder; +import org.mythicprojects.yetanothermessageslibrary.replace.ComponentReplacer; +import org.mythicprojects.yetanothermessageslibrary.replace.Replaceable; +import org.mythicprojects.yetanothermessageslibrary.viewer.Viewer; public class ActionBarHolder extends SendableHolder { diff --git a/core/src/main/java/dev/peri/yetanothermessageslibrary/message/holder/impl/BossBarHolder.java b/core/src/main/java/org/mythicprojects/yetanothermessageslibrary/message/holder/impl/BossBarHolder.java similarity index 91% rename from core/src/main/java/dev/peri/yetanothermessageslibrary/message/holder/impl/BossBarHolder.java rename to core/src/main/java/org/mythicprojects/yetanothermessageslibrary/message/holder/impl/BossBarHolder.java index 4e4ec00..3c0d72d 100644 --- a/core/src/main/java/dev/peri/yetanothermessageslibrary/message/holder/impl/BossBarHolder.java +++ b/core/src/main/java/org/mythicprojects/yetanothermessageslibrary/message/holder/impl/BossBarHolder.java @@ -1,10 +1,5 @@ -package dev.peri.yetanothermessageslibrary.message.holder.impl; +package org.mythicprojects.yetanothermessageslibrary.message.holder.impl; -import dev.peri.yetanothermessageslibrary.adventure.GlobalAdventureSerializer; -import dev.peri.yetanothermessageslibrary.message.holder.SendableHolder; -import dev.peri.yetanothermessageslibrary.replace.ComponentReplacer; -import dev.peri.yetanothermessageslibrary.replace.Replaceable; -import dev.peri.yetanothermessageslibrary.viewer.Viewer; import java.util.Collection; import java.util.HashSet; import java.util.Locale; @@ -14,6 +9,11 @@ import org.jetbrains.annotations.Contract; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; +import org.mythicprojects.yetanothermessageslibrary.adventure.GlobalAdventureSerializer; +import org.mythicprojects.yetanothermessageslibrary.message.holder.SendableHolder; +import org.mythicprojects.yetanothermessageslibrary.replace.ComponentReplacer; +import org.mythicprojects.yetanothermessageslibrary.replace.Replaceable; +import org.mythicprojects.yetanothermessageslibrary.viewer.Viewer; public class BossBarHolder extends SendableHolder { diff --git a/core/src/main/java/dev/peri/yetanothermessageslibrary/message/holder/impl/ChatHolder.java b/core/src/main/java/org/mythicprojects/yetanothermessageslibrary/message/holder/impl/ChatHolder.java similarity index 79% rename from core/src/main/java/dev/peri/yetanothermessageslibrary/message/holder/impl/ChatHolder.java rename to core/src/main/java/org/mythicprojects/yetanothermessageslibrary/message/holder/impl/ChatHolder.java index 5427be7..b02f534 100644 --- a/core/src/main/java/dev/peri/yetanothermessageslibrary/message/holder/impl/ChatHolder.java +++ b/core/src/main/java/org/mythicprojects/yetanothermessageslibrary/message/holder/impl/ChatHolder.java @@ -1,11 +1,5 @@ -package dev.peri.yetanothermessageslibrary.message.holder.impl; +package org.mythicprojects.yetanothermessageslibrary.message.holder.impl; -import dev.peri.yetanothermessageslibrary.adventure.GlobalAdventureSerializer; -import dev.peri.yetanothermessageslibrary.message.SendableMessage; -import dev.peri.yetanothermessageslibrary.message.holder.SendableHolder; -import dev.peri.yetanothermessageslibrary.replace.ComponentReplacer; -import dev.peri.yetanothermessageslibrary.replace.Replaceable; -import dev.peri.yetanothermessageslibrary.viewer.Viewer; import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; @@ -15,6 +9,12 @@ import net.kyori.adventure.text.Component; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; +import org.mythicprojects.yetanothermessageslibrary.adventure.GlobalAdventureSerializer; +import org.mythicprojects.yetanothermessageslibrary.message.SendableMessage; +import org.mythicprojects.yetanothermessageslibrary.message.holder.SendableHolder; +import org.mythicprojects.yetanothermessageslibrary.replace.ComponentReplacer; +import org.mythicprojects.yetanothermessageslibrary.replace.Replaceable; +import org.mythicprojects.yetanothermessageslibrary.viewer.Viewer; public class ChatHolder extends SendableHolder { diff --git a/core/src/main/java/dev/peri/yetanothermessageslibrary/message/holder/impl/SoundHolder.java b/core/src/main/java/org/mythicprojects/yetanothermessageslibrary/message/holder/impl/SoundHolder.java similarity index 77% rename from core/src/main/java/dev/peri/yetanothermessageslibrary/message/holder/impl/SoundHolder.java rename to core/src/main/java/org/mythicprojects/yetanothermessageslibrary/message/holder/impl/SoundHolder.java index 393c838..b6c658f 100644 --- a/core/src/main/java/dev/peri/yetanothermessageslibrary/message/holder/impl/SoundHolder.java +++ b/core/src/main/java/org/mythicprojects/yetanothermessageslibrary/message/holder/impl/SoundHolder.java @@ -1,12 +1,12 @@ -package dev.peri.yetanothermessageslibrary.message.holder.impl; +package org.mythicprojects.yetanothermessageslibrary.message.holder.impl; -import dev.peri.yetanothermessageslibrary.message.holder.SendableHolder; -import dev.peri.yetanothermessageslibrary.replace.Replaceable; -import dev.peri.yetanothermessageslibrary.viewer.Viewer; import java.util.Locale; import net.kyori.adventure.sound.Sound; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; +import org.mythicprojects.yetanothermessageslibrary.message.holder.SendableHolder; +import org.mythicprojects.yetanothermessageslibrary.replace.Replaceable; +import org.mythicprojects.yetanothermessageslibrary.viewer.Viewer; public class SoundHolder extends SendableHolder { diff --git a/core/src/main/java/dev/peri/yetanothermessageslibrary/message/holder/impl/TitleHolder.java b/core/src/main/java/org/mythicprojects/yetanothermessageslibrary/message/holder/impl/TitleHolder.java similarity index 88% rename from core/src/main/java/dev/peri/yetanothermessageslibrary/message/holder/impl/TitleHolder.java rename to core/src/main/java/org/mythicprojects/yetanothermessageslibrary/message/holder/impl/TitleHolder.java index bf37bd1..c85c7b0 100644 --- a/core/src/main/java/dev/peri/yetanothermessageslibrary/message/holder/impl/TitleHolder.java +++ b/core/src/main/java/org/mythicprojects/yetanothermessageslibrary/message/holder/impl/TitleHolder.java @@ -1,11 +1,5 @@ -package dev.peri.yetanothermessageslibrary.message.holder.impl; - -import dev.peri.yetanothermessageslibrary.adventure.GlobalAdventureSerializer; -import dev.peri.yetanothermessageslibrary.message.SendableMessage; -import dev.peri.yetanothermessageslibrary.message.holder.SendableHolder; -import dev.peri.yetanothermessageslibrary.replace.ComponentReplacer; -import dev.peri.yetanothermessageslibrary.replace.Replaceable; -import dev.peri.yetanothermessageslibrary.viewer.Viewer; +package org.mythicprojects.yetanothermessageslibrary.message.holder.impl; + import java.util.Locale; import net.kyori.adventure.text.Component; import net.kyori.adventure.title.Title; @@ -14,6 +8,12 @@ import org.jetbrains.annotations.Contract; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; +import org.mythicprojects.yetanothermessageslibrary.adventure.GlobalAdventureSerializer; +import org.mythicprojects.yetanothermessageslibrary.message.SendableMessage; +import org.mythicprojects.yetanothermessageslibrary.message.holder.SendableHolder; +import org.mythicprojects.yetanothermessageslibrary.replace.ComponentReplacer; +import org.mythicprojects.yetanothermessageslibrary.replace.Replaceable; +import org.mythicprojects.yetanothermessageslibrary.viewer.Viewer; public class TitleHolder extends SendableHolder { diff --git a/core/src/main/java/dev/peri/yetanothermessageslibrary/viewer/Viewer.java b/core/src/main/java/org/mythicprojects/yetanothermessageslibrary/viewer/Viewer.java similarity index 97% rename from core/src/main/java/dev/peri/yetanothermessageslibrary/viewer/Viewer.java rename to core/src/main/java/org/mythicprojects/yetanothermessageslibrary/viewer/Viewer.java index 82869a9..43ea79a 100644 --- a/core/src/main/java/dev/peri/yetanothermessageslibrary/viewer/Viewer.java +++ b/core/src/main/java/org/mythicprojects/yetanothermessageslibrary/viewer/Viewer.java @@ -1,4 +1,4 @@ -package dev.peri.yetanothermessageslibrary.viewer; +package org.mythicprojects.yetanothermessageslibrary.viewer; import java.util.Collection; import java.util.Set; diff --git a/core/src/main/java/dev/peri/yetanothermessageslibrary/viewer/ViewerDataSupplier.java b/core/src/main/java/org/mythicprojects/yetanothermessageslibrary/viewer/ViewerDataSupplier.java similarity index 89% rename from core/src/main/java/dev/peri/yetanothermessageslibrary/viewer/ViewerDataSupplier.java rename to core/src/main/java/org/mythicprojects/yetanothermessageslibrary/viewer/ViewerDataSupplier.java index 4d71078..baff659 100644 --- a/core/src/main/java/dev/peri/yetanothermessageslibrary/viewer/ViewerDataSupplier.java +++ b/core/src/main/java/org/mythicprojects/yetanothermessageslibrary/viewer/ViewerDataSupplier.java @@ -1,4 +1,4 @@ -package dev.peri.yetanothermessageslibrary.viewer; +package org.mythicprojects.yetanothermessageslibrary.viewer; import java.util.UUID; import net.kyori.adventure.audience.Audience; diff --git a/core/src/main/java/dev/peri/yetanothermessageslibrary/viewer/ViewerFactory.java b/core/src/main/java/org/mythicprojects/yetanothermessageslibrary/viewer/ViewerFactory.java similarity index 88% rename from core/src/main/java/dev/peri/yetanothermessageslibrary/viewer/ViewerFactory.java rename to core/src/main/java/org/mythicprojects/yetanothermessageslibrary/viewer/ViewerFactory.java index 1d3dce5..6bf23d0 100644 --- a/core/src/main/java/dev/peri/yetanothermessageslibrary/viewer/ViewerFactory.java +++ b/core/src/main/java/org/mythicprojects/yetanothermessageslibrary/viewer/ViewerFactory.java @@ -1,4 +1,4 @@ -package dev.peri.yetanothermessageslibrary.viewer; +package org.mythicprojects.yetanothermessageslibrary.viewer; import java.util.function.BiConsumer; import net.kyori.adventure.audience.Audience; diff --git a/core/src/main/java/dev/peri/yetanothermessageslibrary/viewer/ViewerService.java b/core/src/main/java/org/mythicprojects/yetanothermessageslibrary/viewer/ViewerService.java similarity index 96% rename from core/src/main/java/dev/peri/yetanothermessageslibrary/viewer/ViewerService.java rename to core/src/main/java/org/mythicprojects/yetanothermessageslibrary/viewer/ViewerService.java index da0bf9e..20977f3 100644 --- a/core/src/main/java/dev/peri/yetanothermessageslibrary/viewer/ViewerService.java +++ b/core/src/main/java/org/mythicprojects/yetanothermessageslibrary/viewer/ViewerService.java @@ -1,4 +1,4 @@ -package dev.peri.yetanothermessageslibrary.viewer; +package org.mythicprojects.yetanothermessageslibrary.viewer; import java.util.Map; import java.util.UUID; diff --git a/example/build.gradle b/example/build.gradle index 672f967..f44fadb 100644 --- a/example/build.gradle +++ b/example/build.gradle @@ -18,9 +18,9 @@ dependencies { // YetAnotherMessagesLibrary def yamlVersion = "7.0.0-SNAPSHOT" - implementation "dev.peri.yetanothermessageslibrary:core:${yamlVersion}" - implementation "dev.peri.yetanothermessageslibrary:platform-bukkit:${yamlVersion}" - implementation "dev.peri.yetanothermessageslibrary:repository-okaeri:${yamlVersion}" + implementation "org.mythicprojects.yetanothermessageslibrary:core:${yamlVersion}" + implementation "org.mythicprojects.yetanothermessageslibrary:platform-bukkit:${yamlVersion}" + implementation "org.mythicprojects.yetanothermessageslibrary:repository-okaeri:${yamlVersion}" // Adventure def adventureVersion = "4.14.0" @@ -34,5 +34,5 @@ dependencies { shadowJar { mergeServiceFiles() - relocate("net.kyori", "dev.peri.yetanothermessageslibrary.example.kyori") // Relocation of adventure is required while using `adventure-platform` -> otherwise title/actionbar/bossbar will not display on Paper servers + relocate("net.kyori", "org.mythicprojects.yetanothermessageslibrary.example.kyori") // Relocation of adventure is required while using `adventure-platform` -> otherwise title/actionbar/bossbar will not display on Paper servers } \ No newline at end of file diff --git a/example/src/main/java/dev/peri/yetanothermessageslibrary/example/ExampleListener.java b/example/src/main/java/org/mythicprojects/yetanothermessageslibrary/example/ExampleListener.java similarity index 81% rename from example/src/main/java/dev/peri/yetanothermessageslibrary/example/ExampleListener.java rename to example/src/main/java/org/mythicprojects/yetanothermessageslibrary/example/ExampleListener.java index 09ad695..096d66b 100644 --- a/example/src/main/java/dev/peri/yetanothermessageslibrary/example/ExampleListener.java +++ b/example/src/main/java/org/mythicprojects/yetanothermessageslibrary/example/ExampleListener.java @@ -1,9 +1,5 @@ -package dev.peri.yetanothermessageslibrary.example; +package org.mythicprojects.yetanothermessageslibrary.example; -import dev.peri.yetanothermessageslibrary.SendableMessageService; -import dev.peri.yetanothermessageslibrary.example.complex.ExampleMessageDispatcher; -import dev.peri.yetanothermessageslibrary.example.config.MessageConfiguration; -import dev.peri.yetanothermessageslibrary.message.BukkitMessageDispatcher; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; @@ -11,6 +7,10 @@ import org.bukkit.event.player.PlayerJoinEvent; import org.bukkit.event.player.PlayerMoveEvent; import org.bukkit.event.player.PlayerTeleportEvent; +import org.mythicprojects.yetanothermessageslibrary.SendableMessageService; +import org.mythicprojects.yetanothermessageslibrary.example.complex.ExampleMessageDispatcher; +import org.mythicprojects.yetanothermessageslibrary.example.config.MessageConfiguration; +import org.mythicprojects.yetanothermessageslibrary.message.BukkitMessageDispatcher; public class ExampleListener implements Listener { diff --git a/example/src/main/java/dev/peri/yetanothermessageslibrary/example/ExamplePlugin.java b/example/src/main/java/org/mythicprojects/yetanothermessageslibrary/example/ExamplePlugin.java similarity index 73% rename from example/src/main/java/dev/peri/yetanothermessageslibrary/example/ExamplePlugin.java rename to example/src/main/java/org/mythicprojects/yetanothermessageslibrary/example/ExamplePlugin.java index a6bc810..6126d66 100644 --- a/example/src/main/java/dev/peri/yetanothermessageslibrary/example/ExamplePlugin.java +++ b/example/src/main/java/org/mythicprojects/yetanothermessageslibrary/example/ExamplePlugin.java @@ -1,16 +1,5 @@ -package dev.peri.yetanothermessageslibrary.example; - -import dev.peri.yetanothermessageslibrary.BukkitMessageService; -import dev.peri.yetanothermessageslibrary.SendableMessageService; -import dev.peri.yetanothermessageslibrary.adventure.GlobalAdventureSerializer; -import dev.peri.yetanothermessageslibrary.config.serdes.YAMLSerdes; -import dev.peri.yetanothermessageslibrary.example.complex.ExampleMessageDispatcher; -import dev.peri.yetanothermessageslibrary.example.complex.ExampleMessageService; -import dev.peri.yetanothermessageslibrary.example.config.MessageConfiguration; -import dev.peri.yetanothermessageslibrary.locale.BukkitPlayerLocaleProvider; -import dev.peri.yetanothermessageslibrary.message.BukkitMessageDispatcher; -import dev.peri.yetanothermessageslibrary.viewer.BukkitViewerDataSupplier; -import dev.peri.yetanothermessageslibrary.viewer.ViewerFactory; +package org.mythicprojects.yetanothermessageslibrary.example; + import eu.okaeri.configs.ConfigManager; import eu.okaeri.configs.yaml.bukkit.YamlBukkitConfigurer; import java.io.File; @@ -19,6 +8,17 @@ import net.kyori.adventure.text.minimessage.MiniMessage; import org.bukkit.command.CommandSender; import org.bukkit.plugin.java.JavaPlugin; +import org.mythicprojects.yetanothermessageslibrary.BukkitMessageService; +import org.mythicprojects.yetanothermessageslibrary.SendableMessageService; +import org.mythicprojects.yetanothermessageslibrary.adventure.GlobalAdventureSerializer; +import org.mythicprojects.yetanothermessageslibrary.config.serdes.YAMLSerdes; +import org.mythicprojects.yetanothermessageslibrary.example.complex.ExampleMessageDispatcher; +import org.mythicprojects.yetanothermessageslibrary.example.complex.ExampleMessageService; +import org.mythicprojects.yetanothermessageslibrary.example.config.MessageConfiguration; +import org.mythicprojects.yetanothermessageslibrary.locale.BukkitPlayerLocaleProvider; +import org.mythicprojects.yetanothermessageslibrary.message.BukkitMessageDispatcher; +import org.mythicprojects.yetanothermessageslibrary.viewer.BukkitViewerDataSupplier; +import org.mythicprojects.yetanothermessageslibrary.viewer.ViewerFactory; public class ExamplePlugin extends JavaPlugin { diff --git a/example/src/main/java/dev/peri/yetanothermessageslibrary/example/complex/ExampleMessageDispatcher.java b/example/src/main/java/org/mythicprojects/yetanothermessageslibrary/example/complex/ExampleMessageDispatcher.java similarity index 77% rename from example/src/main/java/dev/peri/yetanothermessageslibrary/example/complex/ExampleMessageDispatcher.java rename to example/src/main/java/org/mythicprojects/yetanothermessageslibrary/example/complex/ExampleMessageDispatcher.java index f018ff5..977723b 100644 --- a/example/src/main/java/dev/peri/yetanothermessageslibrary/example/complex/ExampleMessageDispatcher.java +++ b/example/src/main/java/org/mythicprojects/yetanothermessageslibrary/example/complex/ExampleMessageDispatcher.java @@ -1,8 +1,5 @@ -package dev.peri.yetanothermessageslibrary.example.complex; +package org.mythicprojects.yetanothermessageslibrary.example.complex; -import dev.peri.yetanothermessageslibrary.message.BukkitMessageDispatcher; -import dev.peri.yetanothermessageslibrary.message.Sendable; -import dev.peri.yetanothermessageslibrary.viewer.ViewerService; import java.util.Locale; import java.util.function.Function; import org.bukkit.World; @@ -11,6 +8,9 @@ import org.bukkit.entity.Player; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; +import org.mythicprojects.yetanothermessageslibrary.message.BukkitMessageDispatcher; +import org.mythicprojects.yetanothermessageslibrary.message.Sendable; +import org.mythicprojects.yetanothermessageslibrary.viewer.ViewerService; public class ExampleMessageDispatcher extends BukkitMessageDispatcher { diff --git a/example/src/main/java/dev/peri/yetanothermessageslibrary/example/complex/ExampleMessageService.java b/example/src/main/java/org/mythicprojects/yetanothermessageslibrary/example/complex/ExampleMessageService.java similarity index 55% rename from example/src/main/java/dev/peri/yetanothermessageslibrary/example/complex/ExampleMessageService.java rename to example/src/main/java/org/mythicprojects/yetanothermessageslibrary/example/complex/ExampleMessageService.java index b63f8f3..522629b 100644 --- a/example/src/main/java/dev/peri/yetanothermessageslibrary/example/complex/ExampleMessageService.java +++ b/example/src/main/java/org/mythicprojects/yetanothermessageslibrary/example/complex/ExampleMessageService.java @@ -1,12 +1,12 @@ -package dev.peri.yetanothermessageslibrary.example.complex; +package org.mythicprojects.yetanothermessageslibrary.example.complex; -import dev.peri.yetanothermessageslibrary.SimpleSendableMessageService; -import dev.peri.yetanothermessageslibrary.example.config.MessageConfiguration; -import dev.peri.yetanothermessageslibrary.message.MessageDispatcherFactory; -import dev.peri.yetanothermessageslibrary.viewer.ViewerDataSupplier; -import dev.peri.yetanothermessageslibrary.viewer.ViewerFactory; import org.bukkit.command.CommandSender; import org.jetbrains.annotations.NotNull; +import org.mythicprojects.yetanothermessageslibrary.SimpleSendableMessageService; +import org.mythicprojects.yetanothermessageslibrary.example.config.MessageConfiguration; +import org.mythicprojects.yetanothermessageslibrary.message.MessageDispatcherFactory; +import org.mythicprojects.yetanothermessageslibrary.viewer.ViewerDataSupplier; +import org.mythicprojects.yetanothermessageslibrary.viewer.ViewerFactory; public class ExampleMessageService extends SimpleSendableMessageService { diff --git a/example/src/main/java/dev/peri/yetanothermessageslibrary/example/config/MessageConfiguration.java b/example/src/main/java/org/mythicprojects/yetanothermessageslibrary/example/config/MessageConfiguration.java similarity index 65% rename from example/src/main/java/dev/peri/yetanothermessageslibrary/example/config/MessageConfiguration.java rename to example/src/main/java/org/mythicprojects/yetanothermessageslibrary/example/config/MessageConfiguration.java index b37c1bb..7d9416f 100644 --- a/example/src/main/java/dev/peri/yetanothermessageslibrary/example/config/MessageConfiguration.java +++ b/example/src/main/java/org/mythicprojects/yetanothermessageslibrary/example/config/MessageConfiguration.java @@ -1,12 +1,12 @@ -package dev.peri.yetanothermessageslibrary.example.config; +package org.mythicprojects.yetanothermessageslibrary.example.config; -import dev.peri.yetanothermessageslibrary.MessageRepository; -import dev.peri.yetanothermessageslibrary.message.SendableMessage; -import dev.peri.yetanothermessageslibrary.message.holder.impl.ActionBarHolder; -import dev.peri.yetanothermessageslibrary.message.holder.impl.BossBarHolder; -import dev.peri.yetanothermessageslibrary.message.holder.impl.ChatHolder; import eu.okaeri.configs.OkaeriConfig; import net.kyori.adventure.bossbar.BossBar; +import org.mythicprojects.yetanothermessageslibrary.MessageRepository; +import org.mythicprojects.yetanothermessageslibrary.message.SendableMessage; +import org.mythicprojects.yetanothermessageslibrary.message.holder.impl.ActionBarHolder; +import org.mythicprojects.yetanothermessageslibrary.message.holder.impl.BossBarHolder; +import org.mythicprojects.yetanothermessageslibrary.message.holder.impl.ChatHolder; public class MessageConfiguration extends OkaeriConfig implements MessageRepository { diff --git a/example/src/main/resources/plugin.yml b/example/src/main/resources/plugin.yml index f301e96..94353b0 100644 --- a/example/src/main/resources/plugin.yml +++ b/example/src/main/resources/plugin.yml @@ -1,5 +1,5 @@ name: YAML-Example version: 4.2.0 -main: dev.peri.yetanothermessageslibrary.example.ExamplePlugin +main: org.mythicprojects.yetanothermessageslibrary.example.ExamplePlugin author: Peridot website: peri.dev \ No newline at end of file diff --git a/platform/bukkit/src/main/java/dev/peri/yetanothermessageslibrary/BukkitMessageService.java b/platform/bukkit/src/main/java/org/mythicprojects/yetanothermessageslibrary/BukkitMessageService.java similarity index 73% rename from platform/bukkit/src/main/java/dev/peri/yetanothermessageslibrary/BukkitMessageService.java rename to platform/bukkit/src/main/java/org/mythicprojects/yetanothermessageslibrary/BukkitMessageService.java index 0321767..30a061e 100644 --- a/platform/bukkit/src/main/java/dev/peri/yetanothermessageslibrary/BukkitMessageService.java +++ b/platform/bukkit/src/main/java/org/mythicprojects/yetanothermessageslibrary/BukkitMessageService.java @@ -1,14 +1,14 @@ -package dev.peri.yetanothermessageslibrary; +package org.mythicprojects.yetanothermessageslibrary; -import dev.peri.yetanothermessageslibrary.message.BukkitMessageDispatcher; -import dev.peri.yetanothermessageslibrary.viewer.BukkitViewerDataSupplier; -import dev.peri.yetanothermessageslibrary.viewer.ViewerFactory; -import dev.peri.yetanothermessageslibrary.viewer.ViewerService; import java.util.function.BiConsumer; import net.kyori.adventure.platform.bukkit.BukkitAudiences; import org.bukkit.command.CommandSender; import org.bukkit.plugin.java.JavaPlugin; import org.jetbrains.annotations.NotNull; +import org.mythicprojects.yetanothermessageslibrary.message.BukkitMessageDispatcher; +import org.mythicprojects.yetanothermessageslibrary.viewer.BukkitViewerDataSupplier; +import org.mythicprojects.yetanothermessageslibrary.viewer.ViewerFactory; +import org.mythicprojects.yetanothermessageslibrary.viewer.ViewerService; public class BukkitMessageService extends SimpleSendableMessageService> { diff --git a/platform/bukkit/src/main/java/dev/peri/yetanothermessageslibrary/locale/BukkitPlayerLocaleProvider.java b/platform/bukkit/src/main/java/org/mythicprojects/yetanothermessageslibrary/locale/BukkitPlayerLocaleProvider.java similarity index 78% rename from platform/bukkit/src/main/java/dev/peri/yetanothermessageslibrary/locale/BukkitPlayerLocaleProvider.java rename to platform/bukkit/src/main/java/org/mythicprojects/yetanothermessageslibrary/locale/BukkitPlayerLocaleProvider.java index e0ae000..a628c60 100644 --- a/platform/bukkit/src/main/java/dev/peri/yetanothermessageslibrary/locale/BukkitPlayerLocaleProvider.java +++ b/platform/bukkit/src/main/java/org/mythicprojects/yetanothermessageslibrary/locale/BukkitPlayerLocaleProvider.java @@ -1,10 +1,10 @@ -package dev.peri.yetanothermessageslibrary.locale; +package org.mythicprojects.yetanothermessageslibrary.locale; -import dev.peri.yetanothermessageslibrary.util.BukkitLocaleHelper; import java.util.Locale; import org.bukkit.entity.Player; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; +import org.mythicprojects.yetanothermessageslibrary.util.BukkitLocaleHelper; public class BukkitPlayerLocaleProvider implements LocaleProvider { diff --git a/platform/bukkit/src/main/java/dev/peri/yetanothermessageslibrary/message/BukkitMessageDispatcher.java b/platform/bukkit/src/main/java/org/mythicprojects/yetanothermessageslibrary/message/BukkitMessageDispatcher.java similarity index 90% rename from platform/bukkit/src/main/java/dev/peri/yetanothermessageslibrary/message/BukkitMessageDispatcher.java rename to platform/bukkit/src/main/java/org/mythicprojects/yetanothermessageslibrary/message/BukkitMessageDispatcher.java index ad4a9c7..10d6059 100644 --- a/platform/bukkit/src/main/java/dev/peri/yetanothermessageslibrary/message/BukkitMessageDispatcher.java +++ b/platform/bukkit/src/main/java/org/mythicprojects/yetanothermessageslibrary/message/BukkitMessageDispatcher.java @@ -1,6 +1,5 @@ -package dev.peri.yetanothermessageslibrary.message; +package org.mythicprojects.yetanothermessageslibrary.message; -import dev.peri.yetanothermessageslibrary.viewer.ViewerService; import java.util.Locale; import java.util.function.Function; import org.bukkit.Bukkit; @@ -8,6 +7,7 @@ import org.jetbrains.annotations.Contract; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; +import org.mythicprojects.yetanothermessageslibrary.viewer.ViewerService; public class BukkitMessageDispatcher> extends MessageDispatcher { diff --git a/platform/bukkit/src/main/java/dev/peri/yetanothermessageslibrary/util/BukkitLocaleHelper.java b/platform/bukkit/src/main/java/org/mythicprojects/yetanothermessageslibrary/util/BukkitLocaleHelper.java similarity index 95% rename from platform/bukkit/src/main/java/dev/peri/yetanothermessageslibrary/util/BukkitLocaleHelper.java rename to platform/bukkit/src/main/java/org/mythicprojects/yetanothermessageslibrary/util/BukkitLocaleHelper.java index 83cdd51..ec5bd0f 100644 --- a/platform/bukkit/src/main/java/dev/peri/yetanothermessageslibrary/util/BukkitLocaleHelper.java +++ b/platform/bukkit/src/main/java/org/mythicprojects/yetanothermessageslibrary/util/BukkitLocaleHelper.java @@ -1,4 +1,4 @@ -package dev.peri.yetanothermessageslibrary.util; +package org.mythicprojects.yetanothermessageslibrary.util; import java.lang.reflect.Method; import java.util.Locale; diff --git a/platform/bukkit/src/main/java/dev/peri/yetanothermessageslibrary/viewer/BukkitViewerDataSupplier.java b/platform/bukkit/src/main/java/org/mythicprojects/yetanothermessageslibrary/viewer/BukkitViewerDataSupplier.java similarity index 94% rename from platform/bukkit/src/main/java/dev/peri/yetanothermessageslibrary/viewer/BukkitViewerDataSupplier.java rename to platform/bukkit/src/main/java/org/mythicprojects/yetanothermessageslibrary/viewer/BukkitViewerDataSupplier.java index af7aec8..d245385 100644 --- a/platform/bukkit/src/main/java/dev/peri/yetanothermessageslibrary/viewer/BukkitViewerDataSupplier.java +++ b/platform/bukkit/src/main/java/org/mythicprojects/yetanothermessageslibrary/viewer/BukkitViewerDataSupplier.java @@ -1,4 +1,4 @@ -package dev.peri.yetanothermessageslibrary.viewer; +package org.mythicprojects.yetanothermessageslibrary.viewer; import java.util.UUID; import net.kyori.adventure.audience.Audience; diff --git a/platform/bungee/src/main/java/dev/peri/yetanothermessageslibrary/BungeeMessageService.java b/platform/bungee/src/main/java/org/mythicprojects/yetanothermessageslibrary/BungeeMessageService.java similarity index 74% rename from platform/bungee/src/main/java/dev/peri/yetanothermessageslibrary/BungeeMessageService.java rename to platform/bungee/src/main/java/org/mythicprojects/yetanothermessageslibrary/BungeeMessageService.java index 5e80a0a..814c319 100644 --- a/platform/bungee/src/main/java/dev/peri/yetanothermessageslibrary/BungeeMessageService.java +++ b/platform/bungee/src/main/java/org/mythicprojects/yetanothermessageslibrary/BungeeMessageService.java @@ -1,15 +1,15 @@ -package dev.peri.yetanothermessageslibrary; +package org.mythicprojects.yetanothermessageslibrary; -import dev.peri.yetanothermessageslibrary.message.BungeeMessageDispatcher; -import dev.peri.yetanothermessageslibrary.viewer.BungeeViewerDataSupplier; -import dev.peri.yetanothermessageslibrary.viewer.ViewerFactory; -import dev.peri.yetanothermessageslibrary.viewer.ViewerService; import java.util.concurrent.TimeUnit; import java.util.function.BiConsumer; import net.kyori.adventure.platform.bungeecord.BungeeAudiences; import net.md_5.bungee.api.CommandSender; import net.md_5.bungee.api.plugin.Plugin; import org.jetbrains.annotations.NotNull; +import org.mythicprojects.yetanothermessageslibrary.message.BungeeMessageDispatcher; +import org.mythicprojects.yetanothermessageslibrary.viewer.BungeeViewerDataSupplier; +import org.mythicprojects.yetanothermessageslibrary.viewer.ViewerFactory; +import org.mythicprojects.yetanothermessageslibrary.viewer.ViewerService; public class BungeeMessageService extends SimpleSendableMessageService> { diff --git a/platform/bungee/src/main/java/dev/peri/yetanothermessageslibrary/message/BungeeMessageDispatcher.java b/platform/bungee/src/main/java/org/mythicprojects/yetanothermessageslibrary/message/BungeeMessageDispatcher.java similarity index 90% rename from platform/bungee/src/main/java/dev/peri/yetanothermessageslibrary/message/BungeeMessageDispatcher.java rename to platform/bungee/src/main/java/org/mythicprojects/yetanothermessageslibrary/message/BungeeMessageDispatcher.java index 31636ce..2049f6f 100644 --- a/platform/bungee/src/main/java/dev/peri/yetanothermessageslibrary/message/BungeeMessageDispatcher.java +++ b/platform/bungee/src/main/java/org/mythicprojects/yetanothermessageslibrary/message/BungeeMessageDispatcher.java @@ -1,6 +1,5 @@ -package dev.peri.yetanothermessageslibrary.message; +package org.mythicprojects.yetanothermessageslibrary.message; -import dev.peri.yetanothermessageslibrary.viewer.ViewerService; import java.util.Locale; import java.util.function.Function; import net.md_5.bungee.api.CommandSender; @@ -8,6 +7,7 @@ import org.jetbrains.annotations.Contract; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; +import org.mythicprojects.yetanothermessageslibrary.viewer.ViewerService; public class BungeeMessageDispatcher> extends MessageDispatcher { diff --git a/platform/bungee/src/main/java/dev/peri/yetanothermessageslibrary/viewer/BungeeViewerDataSupplier.java b/platform/bungee/src/main/java/org/mythicprojects/yetanothermessageslibrary/viewer/BungeeViewerDataSupplier.java similarity index 94% rename from platform/bungee/src/main/java/dev/peri/yetanothermessageslibrary/viewer/BungeeViewerDataSupplier.java rename to platform/bungee/src/main/java/org/mythicprojects/yetanothermessageslibrary/viewer/BungeeViewerDataSupplier.java index 9b58109..de07114 100644 --- a/platform/bungee/src/main/java/dev/peri/yetanothermessageslibrary/viewer/BungeeViewerDataSupplier.java +++ b/platform/bungee/src/main/java/org/mythicprojects/yetanothermessageslibrary/viewer/BungeeViewerDataSupplier.java @@ -1,4 +1,4 @@ -package dev.peri.yetanothermessageslibrary.viewer; +package org.mythicprojects.yetanothermessageslibrary.viewer; import java.util.UUID; import net.kyori.adventure.audience.Audience; diff --git a/platform/velocity/src/main/java/dev/peri/yetanothermessageslibrary/VelocityMessageService.java b/platform/velocity/src/main/java/org/mythicprojects/yetanothermessageslibrary/VelocityMessageService.java similarity index 75% rename from platform/velocity/src/main/java/dev/peri/yetanothermessageslibrary/VelocityMessageService.java rename to platform/velocity/src/main/java/org/mythicprojects/yetanothermessageslibrary/VelocityMessageService.java index 0f2a315..a53b624 100644 --- a/platform/velocity/src/main/java/dev/peri/yetanothermessageslibrary/VelocityMessageService.java +++ b/platform/velocity/src/main/java/org/mythicprojects/yetanothermessageslibrary/VelocityMessageService.java @@ -1,14 +1,14 @@ -package dev.peri.yetanothermessageslibrary; +package org.mythicprojects.yetanothermessageslibrary; import com.velocitypowered.api.command.CommandSource; import com.velocitypowered.api.proxy.ProxyServer; -import dev.peri.yetanothermessageslibrary.message.VelocityMessageDispatcher; -import dev.peri.yetanothermessageslibrary.viewer.VelocityViewerDataSupplier; -import dev.peri.yetanothermessageslibrary.viewer.ViewerFactory; -import dev.peri.yetanothermessageslibrary.viewer.ViewerService; import java.util.concurrent.TimeUnit; import java.util.function.BiConsumer; import org.jetbrains.annotations.NotNull; +import org.mythicprojects.yetanothermessageslibrary.message.VelocityMessageDispatcher; +import org.mythicprojects.yetanothermessageslibrary.viewer.VelocityViewerDataSupplier; +import org.mythicprojects.yetanothermessageslibrary.viewer.ViewerFactory; +import org.mythicprojects.yetanothermessageslibrary.viewer.ViewerService; public class VelocityMessageService extends SimpleSendableMessageService> { diff --git a/platform/velocity/src/main/java/dev/peri/yetanothermessageslibrary/message/VelocityMessageDispatcher.java b/platform/velocity/src/main/java/org/mythicprojects/yetanothermessageslibrary/message/VelocityMessageDispatcher.java similarity index 91% rename from platform/velocity/src/main/java/dev/peri/yetanothermessageslibrary/message/VelocityMessageDispatcher.java rename to platform/velocity/src/main/java/org/mythicprojects/yetanothermessageslibrary/message/VelocityMessageDispatcher.java index d227ee3..f08a34c 100644 --- a/platform/velocity/src/main/java/dev/peri/yetanothermessageslibrary/message/VelocityMessageDispatcher.java +++ b/platform/velocity/src/main/java/org/mythicprojects/yetanothermessageslibrary/message/VelocityMessageDispatcher.java @@ -1,13 +1,13 @@ -package dev.peri.yetanothermessageslibrary.message; +package org.mythicprojects.yetanothermessageslibrary.message; import com.velocitypowered.api.command.CommandSource; import com.velocitypowered.api.proxy.ProxyServer; -import dev.peri.yetanothermessageslibrary.viewer.ViewerService; import java.util.Locale; import java.util.function.Function; import org.jetbrains.annotations.Contract; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; +import org.mythicprojects.yetanothermessageslibrary.viewer.ViewerService; public class VelocityMessageDispatcher> extends MessageDispatcher { diff --git a/platform/velocity/src/main/java/dev/peri/yetanothermessageslibrary/viewer/VelocityViewerDataSupplier.java b/platform/velocity/src/main/java/org/mythicprojects/yetanothermessageslibrary/viewer/VelocityViewerDataSupplier.java similarity index 92% rename from platform/velocity/src/main/java/dev/peri/yetanothermessageslibrary/viewer/VelocityViewerDataSupplier.java rename to platform/velocity/src/main/java/org/mythicprojects/yetanothermessageslibrary/viewer/VelocityViewerDataSupplier.java index 32455a5..bc87b66 100644 --- a/platform/velocity/src/main/java/dev/peri/yetanothermessageslibrary/viewer/VelocityViewerDataSupplier.java +++ b/platform/velocity/src/main/java/org/mythicprojects/yetanothermessageslibrary/viewer/VelocityViewerDataSupplier.java @@ -1,4 +1,4 @@ -package dev.peri.yetanothermessageslibrary.viewer; +package org.mythicprojects.yetanothermessageslibrary.viewer; import com.velocitypowered.api.command.CommandSource; import com.velocitypowered.api.proxy.Player; diff --git a/replaceable/okaeri/src/main/java/dev/peri/yetanothermessageslibrary/replace/OkaeriPlaceholdersReplaceable.java b/replaceable/okaeri/src/main/java/org/mythicprojects/yetanothermessageslibrary/replace/OkaeriPlaceholdersReplaceable.java similarity index 88% rename from replaceable/okaeri/src/main/java/dev/peri/yetanothermessageslibrary/replace/OkaeriPlaceholdersReplaceable.java rename to replaceable/okaeri/src/main/java/org/mythicprojects/yetanothermessageslibrary/replace/OkaeriPlaceholdersReplaceable.java index 003e9b9..b33f820 100644 --- a/replaceable/okaeri/src/main/java/dev/peri/yetanothermessageslibrary/replace/OkaeriPlaceholdersReplaceable.java +++ b/replaceable/okaeri/src/main/java/org/mythicprojects/yetanothermessageslibrary/replace/OkaeriPlaceholdersReplaceable.java @@ -1,7 +1,5 @@ -package dev.peri.yetanothermessageslibrary.replace; +package org.mythicprojects.yetanothermessageslibrary.replace; -import dev.peri.yetanothermessageslibrary.adventure.GlobalAdventureSerializer; -import dev.peri.yetanothermessageslibrary.replace.replacement.ComponentReplacement; import eu.okaeri.placeholders.Placeholders; import eu.okaeri.placeholders.context.PlaceholderContext; import eu.okaeri.placeholders.message.CompiledMessage; @@ -12,6 +10,8 @@ import org.jetbrains.annotations.ApiStatus; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; +import org.mythicprojects.yetanothermessageslibrary.adventure.GlobalAdventureSerializer; +import org.mythicprojects.yetanothermessageslibrary.replace.replacement.ComponentReplacement; @ApiStatus.Experimental public class OkaeriPlaceholdersReplaceable extends ComponentReplacement { diff --git a/replaceable/placeholderapi/src/main/java/dev/peri/yetanothermessageslibrary/replace/PlaceholderAPIReplaceable.java b/replaceable/placeholderapi/src/main/java/org/mythicprojects/yetanothermessageslibrary/replace/PlaceholderAPIReplaceable.java similarity index 86% rename from replaceable/placeholderapi/src/main/java/dev/peri/yetanothermessageslibrary/replace/PlaceholderAPIReplaceable.java rename to replaceable/placeholderapi/src/main/java/org/mythicprojects/yetanothermessageslibrary/replace/PlaceholderAPIReplaceable.java index 36eb75a..5ae406e 100644 --- a/replaceable/placeholderapi/src/main/java/dev/peri/yetanothermessageslibrary/replace/PlaceholderAPIReplaceable.java +++ b/replaceable/placeholderapi/src/main/java/org/mythicprojects/yetanothermessageslibrary/replace/PlaceholderAPIReplaceable.java @@ -1,7 +1,5 @@ -package dev.peri.yetanothermessageslibrary.replace; +package org.mythicprojects.yetanothermessageslibrary.replace; -import dev.peri.yetanothermessageslibrary.adventure.GlobalAdventureSerializer; -import dev.peri.yetanothermessageslibrary.replace.replacement.ComponentReplacement; import java.lang.ref.WeakReference; import java.util.Locale; import java.util.regex.Pattern; @@ -10,6 +8,8 @@ import org.bukkit.entity.Player; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; +import org.mythicprojects.yetanothermessageslibrary.adventure.GlobalAdventureSerializer; +import org.mythicprojects.yetanothermessageslibrary.replace.replacement.ComponentReplacement; public class PlaceholderAPIReplaceable extends ComponentReplacement { diff --git a/repository/okaeri/src/main/java/dev/peri/yetanothermessageslibrary/config/serdes/ComponentTransformer.java b/repository/okaeri/src/main/java/org/mythicprojects/yetanothermessageslibrary/config/serdes/ComponentTransformer.java similarity index 94% rename from repository/okaeri/src/main/java/dev/peri/yetanothermessageslibrary/config/serdes/ComponentTransformer.java rename to repository/okaeri/src/main/java/org/mythicprojects/yetanothermessageslibrary/config/serdes/ComponentTransformer.java index 3eb7c76..575f564 100644 --- a/repository/okaeri/src/main/java/dev/peri/yetanothermessageslibrary/config/serdes/ComponentTransformer.java +++ b/repository/okaeri/src/main/java/org/mythicprojects/yetanothermessageslibrary/config/serdes/ComponentTransformer.java @@ -1,4 +1,4 @@ -package dev.peri.yetanothermessageslibrary.config.serdes; +package org.mythicprojects.yetanothermessageslibrary.config.serdes; import eu.okaeri.configs.schema.GenericsPair; import eu.okaeri.configs.serdes.BidirectionalTransformer; diff --git a/repository/okaeri/src/main/java/dev/peri/yetanothermessageslibrary/config/serdes/KeyTransformer.java b/repository/okaeri/src/main/java/org/mythicprojects/yetanothermessageslibrary/config/serdes/KeyTransformer.java similarity index 90% rename from repository/okaeri/src/main/java/dev/peri/yetanothermessageslibrary/config/serdes/KeyTransformer.java rename to repository/okaeri/src/main/java/org/mythicprojects/yetanothermessageslibrary/config/serdes/KeyTransformer.java index 34f2f9d..60421db 100644 --- a/repository/okaeri/src/main/java/dev/peri/yetanothermessageslibrary/config/serdes/KeyTransformer.java +++ b/repository/okaeri/src/main/java/org/mythicprojects/yetanothermessageslibrary/config/serdes/KeyTransformer.java @@ -1,4 +1,4 @@ -package dev.peri.yetanothermessageslibrary.config.serdes; +package org.mythicprojects.yetanothermessageslibrary.config.serdes; import eu.okaeri.configs.schema.GenericsPair; import eu.okaeri.configs.serdes.BidirectionalTransformer; diff --git a/repository/okaeri/src/main/java/dev/peri/yetanothermessageslibrary/config/serdes/SendableMessageSerializer.java b/repository/okaeri/src/main/java/org/mythicprojects/yetanothermessageslibrary/config/serdes/SendableMessageSerializer.java similarity index 81% rename from repository/okaeri/src/main/java/dev/peri/yetanothermessageslibrary/config/serdes/SendableMessageSerializer.java rename to repository/okaeri/src/main/java/org/mythicprojects/yetanothermessageslibrary/config/serdes/SendableMessageSerializer.java index 85077d8..eae0712 100644 --- a/repository/okaeri/src/main/java/dev/peri/yetanothermessageslibrary/config/serdes/SendableMessageSerializer.java +++ b/repository/okaeri/src/main/java/org/mythicprojects/yetanothermessageslibrary/config/serdes/SendableMessageSerializer.java @@ -1,12 +1,5 @@ -package dev.peri.yetanothermessageslibrary.config.serdes; +package org.mythicprojects.yetanothermessageslibrary.config.serdes; -import dev.peri.yetanothermessageslibrary.message.SendableMessage; -import dev.peri.yetanothermessageslibrary.message.holder.SendableHolder; -import dev.peri.yetanothermessageslibrary.message.holder.impl.ActionBarHolder; -import dev.peri.yetanothermessageslibrary.message.holder.impl.BossBarHolder; -import dev.peri.yetanothermessageslibrary.message.holder.impl.ChatHolder; -import dev.peri.yetanothermessageslibrary.message.holder.impl.SoundHolder; -import dev.peri.yetanothermessageslibrary.message.holder.impl.TitleHolder; import eu.okaeri.configs.schema.GenericsDeclaration; import eu.okaeri.configs.serdes.DeserializationData; import eu.okaeri.configs.serdes.ObjectSerializer; @@ -15,6 +8,13 @@ import java.util.LinkedHashMap; import java.util.List; import java.util.Map; +import org.mythicprojects.yetanothermessageslibrary.message.SendableMessage; +import org.mythicprojects.yetanothermessageslibrary.message.holder.SendableHolder; +import org.mythicprojects.yetanothermessageslibrary.message.holder.impl.ActionBarHolder; +import org.mythicprojects.yetanothermessageslibrary.message.holder.impl.BossBarHolder; +import org.mythicprojects.yetanothermessageslibrary.message.holder.impl.ChatHolder; +import org.mythicprojects.yetanothermessageslibrary.message.holder.impl.SoundHolder; +import org.mythicprojects.yetanothermessageslibrary.message.holder.impl.TitleHolder; public class SendableMessageSerializer implements ObjectSerializer { diff --git a/repository/okaeri/src/main/java/dev/peri/yetanothermessageslibrary/config/serdes/YAMLSerdes.java b/repository/okaeri/src/main/java/org/mythicprojects/yetanothermessageslibrary/config/serdes/YAMLSerdes.java similarity index 65% rename from repository/okaeri/src/main/java/dev/peri/yetanothermessageslibrary/config/serdes/YAMLSerdes.java rename to repository/okaeri/src/main/java/org/mythicprojects/yetanothermessageslibrary/config/serdes/YAMLSerdes.java index 1de969a..71674f6 100644 --- a/repository/okaeri/src/main/java/dev/peri/yetanothermessageslibrary/config/serdes/YAMLSerdes.java +++ b/repository/okaeri/src/main/java/org/mythicprojects/yetanothermessageslibrary/config/serdes/YAMLSerdes.java @@ -1,16 +1,16 @@ -package dev.peri.yetanothermessageslibrary.config.serdes; - -import dev.peri.yetanothermessageslibrary.adventure.GlobalAdventureSerializer; -import dev.peri.yetanothermessageslibrary.config.serdes.holder.ActionBarHolderTransformer; -import dev.peri.yetanothermessageslibrary.config.serdes.holder.BossBarHolderSerializer; -import dev.peri.yetanothermessageslibrary.config.serdes.holder.ChatSerializer; -import dev.peri.yetanothermessageslibrary.config.serdes.holder.SoundHolderSerializer; -import dev.peri.yetanothermessageslibrary.config.serdes.holder.TitleHolderSerializer; +package org.mythicprojects.yetanothermessageslibrary.config.serdes; + import eu.okaeri.configs.serdes.OkaeriSerdesPack; import eu.okaeri.configs.serdes.SerdesRegistry; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.serializer.ComponentSerializer; import org.jetbrains.annotations.NotNull; +import org.mythicprojects.yetanothermessageslibrary.adventure.GlobalAdventureSerializer; +import org.mythicprojects.yetanothermessageslibrary.config.serdes.holder.ActionBarHolderTransformer; +import org.mythicprojects.yetanothermessageslibrary.config.serdes.holder.BossBarHolderSerializer; +import org.mythicprojects.yetanothermessageslibrary.config.serdes.holder.ChatSerializer; +import org.mythicprojects.yetanothermessageslibrary.config.serdes.holder.SoundHolderSerializer; +import org.mythicprojects.yetanothermessageslibrary.config.serdes.holder.TitleHolderSerializer; public class YAMLSerdes implements OkaeriSerdesPack { diff --git a/repository/okaeri/src/main/java/dev/peri/yetanothermessageslibrary/config/serdes/holder/ActionBarHolderTransformer.java b/repository/okaeri/src/main/java/org/mythicprojects/yetanothermessageslibrary/config/serdes/holder/ActionBarHolderTransformer.java similarity index 82% rename from repository/okaeri/src/main/java/dev/peri/yetanothermessageslibrary/config/serdes/holder/ActionBarHolderTransformer.java rename to repository/okaeri/src/main/java/org/mythicprojects/yetanothermessageslibrary/config/serdes/holder/ActionBarHolderTransformer.java index 43b29ce..3f63815 100644 --- a/repository/okaeri/src/main/java/dev/peri/yetanothermessageslibrary/config/serdes/holder/ActionBarHolderTransformer.java +++ b/repository/okaeri/src/main/java/org/mythicprojects/yetanothermessageslibrary/config/serdes/holder/ActionBarHolderTransformer.java @@ -1,10 +1,10 @@ -package dev.peri.yetanothermessageslibrary.config.serdes.holder; +package org.mythicprojects.yetanothermessageslibrary.config.serdes.holder; -import dev.peri.yetanothermessageslibrary.message.holder.impl.ActionBarHolder; import eu.okaeri.configs.schema.GenericsPair; import eu.okaeri.configs.serdes.BidirectionalTransformer; import eu.okaeri.configs.serdes.SerdesContext; import net.kyori.adventure.text.Component; +import org.mythicprojects.yetanothermessageslibrary.message.holder.impl.ActionBarHolder; public class ActionBarHolderTransformer extends BidirectionalTransformer { diff --git a/repository/okaeri/src/main/java/dev/peri/yetanothermessageslibrary/config/serdes/holder/BossBarHolderSerializer.java b/repository/okaeri/src/main/java/org/mythicprojects/yetanothermessageslibrary/config/serdes/holder/BossBarHolderSerializer.java similarity index 93% rename from repository/okaeri/src/main/java/dev/peri/yetanothermessageslibrary/config/serdes/holder/BossBarHolderSerializer.java rename to repository/okaeri/src/main/java/org/mythicprojects/yetanothermessageslibrary/config/serdes/holder/BossBarHolderSerializer.java index 6a90b63..b92a098 100644 --- a/repository/okaeri/src/main/java/dev/peri/yetanothermessageslibrary/config/serdes/holder/BossBarHolderSerializer.java +++ b/repository/okaeri/src/main/java/org/mythicprojects/yetanothermessageslibrary/config/serdes/holder/BossBarHolderSerializer.java @@ -1,6 +1,5 @@ -package dev.peri.yetanothermessageslibrary.config.serdes.holder; +package org.mythicprojects.yetanothermessageslibrary.config.serdes.holder; -import dev.peri.yetanothermessageslibrary.message.holder.impl.BossBarHolder; import eu.okaeri.configs.schema.GenericsDeclaration; import eu.okaeri.configs.serdes.DeserializationData; import eu.okaeri.configs.serdes.ObjectSerializer; @@ -8,6 +7,7 @@ import java.util.HashSet; import net.kyori.adventure.bossbar.BossBar; import net.kyori.adventure.text.Component; +import org.mythicprojects.yetanothermessageslibrary.message.holder.impl.BossBarHolder; public class BossBarHolderSerializer implements ObjectSerializer { diff --git a/repository/okaeri/src/main/java/dev/peri/yetanothermessageslibrary/config/serdes/holder/ChatSerializer.java b/repository/okaeri/src/main/java/org/mythicprojects/yetanothermessageslibrary/config/serdes/holder/ChatSerializer.java similarity index 93% rename from repository/okaeri/src/main/java/dev/peri/yetanothermessageslibrary/config/serdes/holder/ChatSerializer.java rename to repository/okaeri/src/main/java/org/mythicprojects/yetanothermessageslibrary/config/serdes/holder/ChatSerializer.java index 482d0a9..804e680 100644 --- a/repository/okaeri/src/main/java/dev/peri/yetanothermessageslibrary/config/serdes/holder/ChatSerializer.java +++ b/repository/okaeri/src/main/java/org/mythicprojects/yetanothermessageslibrary/config/serdes/holder/ChatSerializer.java @@ -1,6 +1,5 @@ -package dev.peri.yetanothermessageslibrary.config.serdes.holder; +package org.mythicprojects.yetanothermessageslibrary.config.serdes.holder; -import dev.peri.yetanothermessageslibrary.message.holder.impl.ChatHolder; import eu.okaeri.configs.schema.GenericsDeclaration; import eu.okaeri.configs.serdes.DeserializationData; import eu.okaeri.configs.serdes.ObjectSerializer; @@ -8,6 +7,7 @@ import java.util.ArrayList; import java.util.List; import net.kyori.adventure.text.Component; +import org.mythicprojects.yetanothermessageslibrary.message.holder.impl.ChatHolder; public class ChatSerializer implements ObjectSerializer { diff --git a/repository/okaeri/src/main/java/dev/peri/yetanothermessageslibrary/config/serdes/holder/SoundHolderSerializer.java b/repository/okaeri/src/main/java/org/mythicprojects/yetanothermessageslibrary/config/serdes/holder/SoundHolderSerializer.java similarity index 91% rename from repository/okaeri/src/main/java/dev/peri/yetanothermessageslibrary/config/serdes/holder/SoundHolderSerializer.java rename to repository/okaeri/src/main/java/org/mythicprojects/yetanothermessageslibrary/config/serdes/holder/SoundHolderSerializer.java index 0f1dacb..1599ba4 100644 --- a/repository/okaeri/src/main/java/dev/peri/yetanothermessageslibrary/config/serdes/holder/SoundHolderSerializer.java +++ b/repository/okaeri/src/main/java/org/mythicprojects/yetanothermessageslibrary/config/serdes/holder/SoundHolderSerializer.java @@ -1,12 +1,12 @@ -package dev.peri.yetanothermessageslibrary.config.serdes.holder; +package org.mythicprojects.yetanothermessageslibrary.config.serdes.holder; -import dev.peri.yetanothermessageslibrary.message.holder.impl.SoundHolder; import eu.okaeri.configs.schema.GenericsDeclaration; import eu.okaeri.configs.serdes.DeserializationData; import eu.okaeri.configs.serdes.ObjectSerializer; import eu.okaeri.configs.serdes.SerializationData; import net.kyori.adventure.key.Key; import net.kyori.adventure.sound.Sound; +import org.mythicprojects.yetanothermessageslibrary.message.holder.impl.SoundHolder; public class SoundHolderSerializer implements ObjectSerializer { diff --git a/repository/okaeri/src/main/java/dev/peri/yetanothermessageslibrary/config/serdes/holder/TitleHolderSerializer.java b/repository/okaeri/src/main/java/org/mythicprojects/yetanothermessageslibrary/config/serdes/holder/TitleHolderSerializer.java similarity index 94% rename from repository/okaeri/src/main/java/dev/peri/yetanothermessageslibrary/config/serdes/holder/TitleHolderSerializer.java rename to repository/okaeri/src/main/java/org/mythicprojects/yetanothermessageslibrary/config/serdes/holder/TitleHolderSerializer.java index e803542..3251847 100644 --- a/repository/okaeri/src/main/java/dev/peri/yetanothermessageslibrary/config/serdes/holder/TitleHolderSerializer.java +++ b/repository/okaeri/src/main/java/org/mythicprojects/yetanothermessageslibrary/config/serdes/holder/TitleHolderSerializer.java @@ -1,6 +1,5 @@ -package dev.peri.yetanothermessageslibrary.config.serdes.holder; +package org.mythicprojects.yetanothermessageslibrary.config.serdes.holder; -import dev.peri.yetanothermessageslibrary.message.holder.impl.TitleHolder; import eu.okaeri.configs.schema.GenericsDeclaration; import eu.okaeri.configs.serdes.DeserializationData; import eu.okaeri.configs.serdes.ObjectSerializer; @@ -9,6 +8,7 @@ import net.kyori.adventure.text.Component; import net.kyori.adventure.title.Title.Times; import net.kyori.adventure.util.Ticks; +import org.mythicprojects.yetanothermessageslibrary.message.holder.impl.TitleHolder; public class TitleHolderSerializer implements ObjectSerializer { diff --git a/tools/src/main/java/dev/peri/yetanothermessageslibrary/adventure/GlobalAdventureSerializer.java b/tools/src/main/java/org/mythicprojects/yetanothermessageslibrary/adventure/GlobalAdventureSerializer.java similarity index 81% rename from tools/src/main/java/dev/peri/yetanothermessageslibrary/adventure/GlobalAdventureSerializer.java rename to tools/src/main/java/org/mythicprojects/yetanothermessageslibrary/adventure/GlobalAdventureSerializer.java index 30e85d9..d53a155 100644 --- a/tools/src/main/java/dev/peri/yetanothermessageslibrary/adventure/GlobalAdventureSerializer.java +++ b/tools/src/main/java/org/mythicprojects/yetanothermessageslibrary/adventure/GlobalAdventureSerializer.java @@ -1,6 +1,5 @@ -package dev.peri.yetanothermessageslibrary.adventure; +package org.mythicprojects.yetanothermessageslibrary.adventure; -import dev.peri.yetanothermessageslibrary.replace.replacement.FunctionStringReplacement; import java.util.Arrays; import java.util.List; import java.util.Objects; @@ -8,12 +7,14 @@ import net.kyori.adventure.text.Component; import net.kyori.adventure.text.serializer.ComponentSerializer; import org.jetbrains.annotations.NotNull; +import org.mythicprojects.yetanothermessageslibrary.replace.replacement.FunctionStringReplacement; +import org.mythicprojects.yetanothermessageslibrary.replace.replacement.SimpleStringReplacement; /** * Simple utility class to provide global access to adventure serializer. *

- * This class is used mostly by string replacements ({@link dev.peri.yetanothermessageslibrary.replace.replacement.SimpleStringReplacement}, {@link FunctionStringReplacement}) - * and some of {@link dev.peri.yetanothermessageslibrary.message.holder.SendableHolder} implementations. + * This class is used mostly by string replacements ({@link SimpleStringReplacement}, {@link FunctionStringReplacement}) + * and some of {@link org.mythicprojects.yetanothermessageslibrary.message.holder.SendableHolder} implementations. */ public final class GlobalAdventureSerializer { diff --git a/tools/src/main/java/dev/peri/yetanothermessageslibrary/replace/ComponentReplacer.java b/tools/src/main/java/org/mythicprojects/yetanothermessageslibrary/replace/ComponentReplacer.java similarity index 97% rename from tools/src/main/java/dev/peri/yetanothermessageslibrary/replace/ComponentReplacer.java rename to tools/src/main/java/org/mythicprojects/yetanothermessageslibrary/replace/ComponentReplacer.java index 588a365..6171192 100644 --- a/tools/src/main/java/dev/peri/yetanothermessageslibrary/replace/ComponentReplacer.java +++ b/tools/src/main/java/org/mythicprojects/yetanothermessageslibrary/replace/ComponentReplacer.java @@ -1,4 +1,4 @@ -package dev.peri.yetanothermessageslibrary.replace; +package org.mythicprojects.yetanothermessageslibrary.replace; import java.util.ArrayList; import java.util.Arrays; diff --git a/tools/src/main/java/dev/peri/yetanothermessageslibrary/replace/Replaceable.java b/tools/src/main/java/org/mythicprojects/yetanothermessageslibrary/replace/Replaceable.java similarity index 92% rename from tools/src/main/java/dev/peri/yetanothermessageslibrary/replace/Replaceable.java rename to tools/src/main/java/org/mythicprojects/yetanothermessageslibrary/replace/Replaceable.java index 32ec1b4..b8ed5c2 100644 --- a/tools/src/main/java/dev/peri/yetanothermessageslibrary/replace/Replaceable.java +++ b/tools/src/main/java/org/mythicprojects/yetanothermessageslibrary/replace/Replaceable.java @@ -1,4 +1,4 @@ -package dev.peri.yetanothermessageslibrary.replace; +package org.mythicprojects.yetanothermessageslibrary.replace; import java.util.Locale; import net.kyori.adventure.text.Component; diff --git a/tools/src/main/java/dev/peri/yetanothermessageslibrary/replace/StringReplacer.java b/tools/src/main/java/org/mythicprojects/yetanothermessageslibrary/replace/StringReplacer.java similarity index 97% rename from tools/src/main/java/dev/peri/yetanothermessageslibrary/replace/StringReplacer.java rename to tools/src/main/java/org/mythicprojects/yetanothermessageslibrary/replace/StringReplacer.java index ccdb783..ad95a81 100644 --- a/tools/src/main/java/dev/peri/yetanothermessageslibrary/replace/StringReplacer.java +++ b/tools/src/main/java/org/mythicprojects/yetanothermessageslibrary/replace/StringReplacer.java @@ -1,4 +1,4 @@ -package dev.peri.yetanothermessageslibrary.replace; +package org.mythicprojects.yetanothermessageslibrary.replace; import java.util.ArrayList; import java.util.Arrays; diff --git a/tools/src/main/java/dev/peri/yetanothermessageslibrary/replace/replacement/ComponentReplacement.java b/tools/src/main/java/org/mythicprojects/yetanothermessageslibrary/replace/replacement/ComponentReplacement.java similarity index 89% rename from tools/src/main/java/dev/peri/yetanothermessageslibrary/replace/replacement/ComponentReplacement.java rename to tools/src/main/java/org/mythicprojects/yetanothermessageslibrary/replace/replacement/ComponentReplacement.java index 6dbf489..436f9ea 100644 --- a/tools/src/main/java/dev/peri/yetanothermessageslibrary/replace/replacement/ComponentReplacement.java +++ b/tools/src/main/java/org/mythicprojects/yetanothermessageslibrary/replace/replacement/ComponentReplacement.java @@ -1,4 +1,4 @@ -package dev.peri.yetanothermessageslibrary.replace.replacement; +package org.mythicprojects.yetanothermessageslibrary.replace.replacement; import java.util.Locale; import net.kyori.adventure.text.Component; diff --git a/tools/src/main/java/dev/peri/yetanothermessageslibrary/replace/replacement/FunctionReplacement.java b/tools/src/main/java/org/mythicprojects/yetanothermessageslibrary/replace/replacement/FunctionReplacement.java similarity index 93% rename from tools/src/main/java/dev/peri/yetanothermessageslibrary/replace/replacement/FunctionReplacement.java rename to tools/src/main/java/org/mythicprojects/yetanothermessageslibrary/replace/replacement/FunctionReplacement.java index b23a812..244f4ac 100644 --- a/tools/src/main/java/dev/peri/yetanothermessageslibrary/replace/replacement/FunctionReplacement.java +++ b/tools/src/main/java/org/mythicprojects/yetanothermessageslibrary/replace/replacement/FunctionReplacement.java @@ -1,4 +1,4 @@ -package dev.peri.yetanothermessageslibrary.replace.replacement; +package org.mythicprojects.yetanothermessageslibrary.replace.replacement; import java.util.Locale; import java.util.function.Function; diff --git a/tools/src/main/java/dev/peri/yetanothermessageslibrary/replace/replacement/FunctionStringReplacement.java b/tools/src/main/java/org/mythicprojects/yetanothermessageslibrary/replace/replacement/FunctionStringReplacement.java similarity index 88% rename from tools/src/main/java/dev/peri/yetanothermessageslibrary/replace/replacement/FunctionStringReplacement.java rename to tools/src/main/java/org/mythicprojects/yetanothermessageslibrary/replace/replacement/FunctionStringReplacement.java index 75117aa..785757b 100644 --- a/tools/src/main/java/dev/peri/yetanothermessageslibrary/replace/replacement/FunctionStringReplacement.java +++ b/tools/src/main/java/org/mythicprojects/yetanothermessageslibrary/replace/replacement/FunctionStringReplacement.java @@ -1,11 +1,11 @@ -package dev.peri.yetanothermessageslibrary.replace.replacement; +package org.mythicprojects.yetanothermessageslibrary.replace.replacement; -import dev.peri.yetanothermessageslibrary.adventure.GlobalAdventureSerializer; import java.util.Locale; import java.util.function.Function; import java.util.function.Supplier; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; +import org.mythicprojects.yetanothermessageslibrary.adventure.GlobalAdventureSerializer; public class FunctionStringReplacement extends FunctionReplacement { diff --git a/tools/src/main/java/dev/peri/yetanothermessageslibrary/replace/replacement/Replacement.java b/tools/src/main/java/org/mythicprojects/yetanothermessageslibrary/replace/replacement/Replacement.java similarity index 95% rename from tools/src/main/java/dev/peri/yetanothermessageslibrary/replace/replacement/Replacement.java rename to tools/src/main/java/org/mythicprojects/yetanothermessageslibrary/replace/replacement/Replacement.java index 4f878af..380c7ba 100644 --- a/tools/src/main/java/dev/peri/yetanothermessageslibrary/replace/replacement/Replacement.java +++ b/tools/src/main/java/org/mythicprojects/yetanothermessageslibrary/replace/replacement/Replacement.java @@ -1,8 +1,5 @@ -package dev.peri.yetanothermessageslibrary.replace.replacement; +package org.mythicprojects.yetanothermessageslibrary.replace.replacement; -import dev.peri.yetanothermessageslibrary.replace.Replaceable; -import dev.peri.yetanothermessageslibrary.util.TriFunction; -import dev.peri.yetanothermessageslibrary.util.Validate; import java.util.Collections; import java.util.HashMap; import java.util.Locale; @@ -15,6 +12,9 @@ import net.kyori.adventure.text.TextReplacementConfig; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; +import org.mythicprojects.yetanothermessageslibrary.replace.Replaceable; +import org.mythicprojects.yetanothermessageslibrary.util.TriFunction; +import org.mythicprojects.yetanothermessageslibrary.util.Validate; public abstract class Replacement implements Replaceable { diff --git a/tools/src/main/java/dev/peri/yetanothermessageslibrary/replace/replacement/SimpleReplacement.java b/tools/src/main/java/org/mythicprojects/yetanothermessageslibrary/replace/replacement/SimpleReplacement.java similarity index 90% rename from tools/src/main/java/dev/peri/yetanothermessageslibrary/replace/replacement/SimpleReplacement.java rename to tools/src/main/java/org/mythicprojects/yetanothermessageslibrary/replace/replacement/SimpleReplacement.java index 6c67ee0..7afe3b7 100644 --- a/tools/src/main/java/dev/peri/yetanothermessageslibrary/replace/replacement/SimpleReplacement.java +++ b/tools/src/main/java/org/mythicprojects/yetanothermessageslibrary/replace/replacement/SimpleReplacement.java @@ -1,4 +1,4 @@ -package dev.peri.yetanothermessageslibrary.replace.replacement; +package org.mythicprojects.yetanothermessageslibrary.replace.replacement; import java.util.Locale; import net.kyori.adventure.text.ComponentLike; diff --git a/tools/src/main/java/dev/peri/yetanothermessageslibrary/replace/replacement/SimpleStringReplacement.java b/tools/src/main/java/org/mythicprojects/yetanothermessageslibrary/replace/replacement/SimpleStringReplacement.java similarity index 81% rename from tools/src/main/java/dev/peri/yetanothermessageslibrary/replace/replacement/SimpleStringReplacement.java rename to tools/src/main/java/org/mythicprojects/yetanothermessageslibrary/replace/replacement/SimpleStringReplacement.java index f41cbf4..443932b 100644 --- a/tools/src/main/java/dev/peri/yetanothermessageslibrary/replace/replacement/SimpleStringReplacement.java +++ b/tools/src/main/java/org/mythicprojects/yetanothermessageslibrary/replace/replacement/SimpleStringReplacement.java @@ -1,9 +1,9 @@ -package dev.peri.yetanothermessageslibrary.replace.replacement; +package org.mythicprojects.yetanothermessageslibrary.replace.replacement; -import dev.peri.yetanothermessageslibrary.adventure.GlobalAdventureSerializer; import java.util.Locale; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; +import org.mythicprojects.yetanothermessageslibrary.adventure.GlobalAdventureSerializer; public class SimpleStringReplacement extends SimpleReplacement { diff --git a/tools/src/main/java/dev/peri/yetanothermessageslibrary/util/TriFunction.java b/tools/src/main/java/org/mythicprojects/yetanothermessageslibrary/util/TriFunction.java similarity index 62% rename from tools/src/main/java/dev/peri/yetanothermessageslibrary/util/TriFunction.java rename to tools/src/main/java/org/mythicprojects/yetanothermessageslibrary/util/TriFunction.java index 82240f6..39c86c2 100644 --- a/tools/src/main/java/dev/peri/yetanothermessageslibrary/util/TriFunction.java +++ b/tools/src/main/java/org/mythicprojects/yetanothermessageslibrary/util/TriFunction.java @@ -1,4 +1,4 @@ -package dev.peri.yetanothermessageslibrary.util; +package org.mythicprojects.yetanothermessageslibrary.util; @FunctionalInterface public interface TriFunction { diff --git a/tools/src/main/java/dev/peri/yetanothermessageslibrary/util/Validate.java b/tools/src/main/java/org/mythicprojects/yetanothermessageslibrary/util/Validate.java similarity index 89% rename from tools/src/main/java/dev/peri/yetanothermessageslibrary/util/Validate.java rename to tools/src/main/java/org/mythicprojects/yetanothermessageslibrary/util/Validate.java index 45506c1..bb2eaf2 100644 --- a/tools/src/main/java/dev/peri/yetanothermessageslibrary/util/Validate.java +++ b/tools/src/main/java/org/mythicprojects/yetanothermessageslibrary/util/Validate.java @@ -1,4 +1,4 @@ -package dev.peri.yetanothermessageslibrary.util; +package org.mythicprojects.yetanothermessageslibrary.util; public class Validate { From 2eacf7d020156b0913ac773d4e29075e1f776550 Mon Sep 17 00:00:00 2001 From: Peridot Date: Fri, 29 Mar 2024 19:09:16 +0100 Subject: [PATCH 03/17] Set default GlobalAdventureSerializer if MiniMessage or legacy serializer is available --- .../message/holder/impl/ChatHolder.java | 5 +-- .../viewer/Viewer.java | 6 ++- settings.gradle | 4 +- tools/build.gradle | 2 + .../adventure/GlobalAdventureSerializer.java | 40 +++++++++++++++++-- .../adventure/NativeLegacySerializer.java | 16 ++++++++ .../NativeMiniMessageLegacySerializer.java | 37 +++++++++++++++++ .../NativeMiniMessageSerializer.java | 16 ++++++++ 8 files changed, 117 insertions(+), 9 deletions(-) create mode 100644 tools/src/main/java/org/mythicprojects/yetanothermessageslibrary/adventure/NativeLegacySerializer.java create mode 100644 tools/src/main/java/org/mythicprojects/yetanothermessageslibrary/adventure/NativeMiniMessageLegacySerializer.java create mode 100644 tools/src/main/java/org/mythicprojects/yetanothermessageslibrary/adventure/NativeMiniMessageSerializer.java diff --git a/core/src/main/java/org/mythicprojects/yetanothermessageslibrary/message/holder/impl/ChatHolder.java b/core/src/main/java/org/mythicprojects/yetanothermessageslibrary/message/holder/impl/ChatHolder.java index b02f534..c558f0b 100644 --- a/core/src/main/java/org/mythicprojects/yetanothermessageslibrary/message/holder/impl/ChatHolder.java +++ b/core/src/main/java/org/mythicprojects/yetanothermessageslibrary/message/holder/impl/ChatHolder.java @@ -44,10 +44,9 @@ public void send(@Nullable Locale locale, @NotNull Viewer viewer, @NotNull Repla return; } - List finalMessage = this.messages.stream() + this.messages.stream() .map(message -> ComponentReplacer.replace(locale, message, replacements)) - .collect(Collectors.toList()); - viewer.sendChatMessage(finalMessage); + .forEachOrdered(viewer::sendChatMessage); } @Override diff --git a/core/src/main/java/org/mythicprojects/yetanothermessageslibrary/viewer/Viewer.java b/core/src/main/java/org/mythicprojects/yetanothermessageslibrary/viewer/Viewer.java index 43ea79a..e43c831 100644 --- a/core/src/main/java/org/mythicprojects/yetanothermessageslibrary/viewer/Viewer.java +++ b/core/src/main/java/org/mythicprojects/yetanothermessageslibrary/viewer/Viewer.java @@ -35,7 +35,11 @@ public boolean isConsole() { } public void sendChatMessage(@NotNull Collection messages) { - messages.forEach(this.audience::sendMessage); + messages.forEach(this::sendChatMessage); + } + + public void sendChatMessage(@NotNull Component message) { + this.audience.sendMessage(message); } public void sendActionBar(@NotNull Component message) { diff --git a/settings.gradle b/settings.gradle index 27965a4..76aaac7 100644 --- a/settings.gradle +++ b/settings.gradle @@ -38,8 +38,10 @@ dependencyResolutionManagement { library("velocity", "com.velocitypowered:velocity-api:3.1.1") } adventure { - String apiVersion = "4.14.0" + String apiVersion = "4.16.0" library("api", "net.kyori:adventure-api:${apiVersion}") + library("serializer-legacy", "net.kyori:adventure-text-serializer-legacy:${apiVersion}") + library("serializer-minimessage", "net.kyori:adventure-text-minimessage:${apiVersion}") String platformVersion = "4.3.1" library("platform-bukkit", "net.kyori:adventure-platform-bukkit:${platformVersion}") diff --git a/tools/build.gradle b/tools/build.gradle index 24bbc20..f0bf4f3 100644 --- a/tools/build.gradle +++ b/tools/build.gradle @@ -1,3 +1,5 @@ dependencies { compileOnlyApi adventure.api + compileOnlyApi adventure.serializer.legacy + compileOnlyApi adventure.serializer.minimessage } \ No newline at end of file diff --git a/tools/src/main/java/org/mythicprojects/yetanothermessageslibrary/adventure/GlobalAdventureSerializer.java b/tools/src/main/java/org/mythicprojects/yetanothermessageslibrary/adventure/GlobalAdventureSerializer.java index d53a155..2311b1f 100644 --- a/tools/src/main/java/org/mythicprojects/yetanothermessageslibrary/adventure/GlobalAdventureSerializer.java +++ b/tools/src/main/java/org/mythicprojects/yetanothermessageslibrary/adventure/GlobalAdventureSerializer.java @@ -18,7 +18,7 @@ */ public final class GlobalAdventureSerializer { - private static ComponentSerializer GLOBAL_SERIALIZER = new ComponentSerializer() { + private static ComponentSerializer GLOBAL_SERIALIZER = new ComponentSerializer() { @Override public @NotNull Component deserialize(@NotNull String input) { return Component.text(input); @@ -30,19 +30,51 @@ public final class GlobalAdventureSerializer { } }; + private static final boolean IS_NATIVE_LEGACY_SERIALIZER; + private static final boolean IS_NATIVE_MINIMESSAGE_SERIALIZER; + private GlobalAdventureSerializer() { } - public static void globalSerializer(@NotNull ComponentSerializer globalSerializer) { + static { + boolean isNativeLegacySerializer = false; + boolean isNativeMiniMessageSerializer = false; + + try { + Class.forName("net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer"); + isNativeLegacySerializer = true; + } catch (ClassNotFoundException ignored) { + } + + try { + Class.forName("net.kyori.adventure.text.serializer.minimessage.MiniMessage"); + isNativeMiniMessageSerializer = true; + } catch (ClassNotFoundException ignored) { + } + + IS_NATIVE_LEGACY_SERIALIZER = isNativeLegacySerializer; + IS_NATIVE_MINIMESSAGE_SERIALIZER = isNativeMiniMessageSerializer; + + if (IS_NATIVE_LEGACY_SERIALIZER && IS_NATIVE_MINIMESSAGE_SERIALIZER) { + NativeMiniMessageLegacySerializer.init(); + } else if (IS_NATIVE_LEGACY_SERIALIZER) { + NativeLegacySerializer.init(); + } else if (IS_NATIVE_MINIMESSAGE_SERIALIZER) { + NativeMiniMessageSerializer.init(); + } + } + + public static void globalSerializer(@NotNull ComponentSerializer globalSerializer) { GLOBAL_SERIALIZER = Objects.requireNonNull(globalSerializer, "globalSerializer cannot be null"); } - public static @NotNull ComponentSerializer globalSerializer() { + public static @NotNull ComponentSerializer globalSerializer() { return GLOBAL_SERIALIZER; } + @SuppressWarnings("unchecked") public static @NotNull String serialize(@NotNull Component component) { - return GLOBAL_SERIALIZER.serialize(component); + return ((ComponentSerializer) GLOBAL_SERIALIZER).serialize(component); } public static @NotNull Component deserialize(@NotNull String input) { diff --git a/tools/src/main/java/org/mythicprojects/yetanothermessageslibrary/adventure/NativeLegacySerializer.java b/tools/src/main/java/org/mythicprojects/yetanothermessageslibrary/adventure/NativeLegacySerializer.java new file mode 100644 index 0000000..e8ee560 --- /dev/null +++ b/tools/src/main/java/org/mythicprojects/yetanothermessageslibrary/adventure/NativeLegacySerializer.java @@ -0,0 +1,16 @@ +package org.mythicprojects.yetanothermessageslibrary.adventure; + +import net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer; + +final class NativeLegacySerializer { + + private static final LegacyComponentSerializer LEGACY_AMPERSAND = LegacyComponentSerializer.legacyAmpersand(); + + private NativeLegacySerializer() { + } + + static void init() { + GlobalAdventureSerializer.globalSerializer(LEGACY_AMPERSAND); + } + +} diff --git a/tools/src/main/java/org/mythicprojects/yetanothermessageslibrary/adventure/NativeMiniMessageLegacySerializer.java b/tools/src/main/java/org/mythicprojects/yetanothermessageslibrary/adventure/NativeMiniMessageLegacySerializer.java new file mode 100644 index 0000000..199f590 --- /dev/null +++ b/tools/src/main/java/org/mythicprojects/yetanothermessageslibrary/adventure/NativeMiniMessageLegacySerializer.java @@ -0,0 +1,37 @@ +package org.mythicprojects.yetanothermessageslibrary.adventure; + +import java.util.regex.Pattern; +import net.kyori.adventure.text.TextReplacementConfig; +import net.kyori.adventure.text.minimessage.MiniMessage; +import net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer; + +final class NativeMiniMessageLegacySerializer { + + private static final Pattern SECTION_COLOR_PATTERN = Pattern.compile("(?i)ยง([0-9A-FK-OR])"); + private static final Pattern ALL_TEXT_PATTERN = Pattern.compile(".*"); + + private static final Pattern HEX_TO_LEGACY_PATTERN = Pattern.compile("&#([0-9A-Fa-f]{1})([0-9A-Fa-f]{1})([0-9A-Fa-f]{1})([0-9A-Fa-f]{1})([0-9A-Fa-f]{1})([0-9A-Fa-f]{1})"); + private static final String LEGACY_HEX_REPLACEMENT = "&x&$1&$2&$3&$4&$5&$6"; + + private static final LegacyComponentSerializer LEGACY_AMPERSAND = LegacyComponentSerializer.legacyAmpersand(); + private static final TextReplacementConfig COLOR_REPLACEMENTS = TextReplacementConfig.builder() + .match(ALL_TEXT_PATTERN) + .replacement((result, input) -> LEGACY_AMPERSAND.deserialize(result.group())) + .build(); + private static final MiniMessage MINI_MESSAGE = MiniMessage.builder() + .preProcessor(text -> { + String processedText = HEX_TO_LEGACY_PATTERN.matcher(text).replaceAll(LEGACY_HEX_REPLACEMENT); // convert simple hex format to legacy + processedText = SECTION_COLOR_PATTERN.matcher(processedText).replaceAll("&$1"); // convert section to ampersand + return processedText; + }) + .postProcessor(component -> component.replaceText(COLOR_REPLACEMENTS)) + .build(); + + private NativeMiniMessageLegacySerializer() { + } + + static void init() { + GlobalAdventureSerializer.globalSerializer(MINI_MESSAGE); + } + +} diff --git a/tools/src/main/java/org/mythicprojects/yetanothermessageslibrary/adventure/NativeMiniMessageSerializer.java b/tools/src/main/java/org/mythicprojects/yetanothermessageslibrary/adventure/NativeMiniMessageSerializer.java new file mode 100644 index 0000000..90daf7c --- /dev/null +++ b/tools/src/main/java/org/mythicprojects/yetanothermessageslibrary/adventure/NativeMiniMessageSerializer.java @@ -0,0 +1,16 @@ +package org.mythicprojects.yetanothermessageslibrary.adventure; + +import net.kyori.adventure.text.minimessage.MiniMessage; + +final class NativeMiniMessageSerializer { + + private static final MiniMessage MINI_MESSAGE = MiniMessage.miniMessage(); + + private NativeMiniMessageSerializer() { + } + + static void init() { + GlobalAdventureSerializer.globalSerializer(MINI_MESSAGE); + } + +} From a4c69f9e80a1fa17ec53730d3c2330742e5190e3 Mon Sep 17 00:00:00 2001 From: Peridot Date: Fri, 29 Mar 2024 21:46:46 +0100 Subject: [PATCH 04/17] Simplify GlobalAdventureSerializer code --- .../OkaeriPlaceholdersReplaceable.java | 5 ++- .../config/serdes/ComponentTransformer.java | 4 +- .../config/serdes/YAMLSerdes.java | 6 +-- .../adventure/GlobalAdventureSerializer.java | 29 +++++---------- .../adventure/NativeLegacySerializer.java | 4 +- .../NativeMiniMessageLegacySerializer.java | 37 ------------------- .../NativeMiniMessageSerializer.java | 4 +- .../replace/replacement/Replacement.java | 2 + 8 files changed, 23 insertions(+), 68 deletions(-) delete mode 100644 tools/src/main/java/org/mythicprojects/yetanothermessageslibrary/adventure/NativeMiniMessageLegacySerializer.java diff --git a/replaceable/okaeri/src/main/java/org/mythicprojects/yetanothermessageslibrary/replace/OkaeriPlaceholdersReplaceable.java b/replaceable/okaeri/src/main/java/org/mythicprojects/yetanothermessageslibrary/replace/OkaeriPlaceholdersReplaceable.java index b33f820..fc1704c 100644 --- a/replaceable/okaeri/src/main/java/org/mythicprojects/yetanothermessageslibrary/replace/OkaeriPlaceholdersReplaceable.java +++ b/replaceable/okaeri/src/main/java/org/mythicprojects/yetanothermessageslibrary/replace/OkaeriPlaceholdersReplaceable.java @@ -21,7 +21,10 @@ public class OkaeriPlaceholdersReplaceable extends ComponentReplacement { private final Placeholders placeholders; private final Function applyContexts; - public OkaeriPlaceholdersReplaceable(@NotNull Placeholders placeholders, @NotNull Function applyContexts) { + public OkaeriPlaceholdersReplaceable( + @NotNull Placeholders placeholders, + @NotNull Function applyContexts + ) { super(FIELD_PATTERN); this.placeholders = placeholders; this.applyContexts = applyContexts; diff --git a/repository/okaeri/src/main/java/org/mythicprojects/yetanothermessageslibrary/config/serdes/ComponentTransformer.java b/repository/okaeri/src/main/java/org/mythicprojects/yetanothermessageslibrary/config/serdes/ComponentTransformer.java index 575f564..85835c3 100644 --- a/repository/okaeri/src/main/java/org/mythicprojects/yetanothermessageslibrary/config/serdes/ComponentTransformer.java +++ b/repository/okaeri/src/main/java/org/mythicprojects/yetanothermessageslibrary/config/serdes/ComponentTransformer.java @@ -9,9 +9,9 @@ public class ComponentTransformer extends BidirectionalTransformer { - private final ComponentSerializer componentSerializer; + private final ComponentSerializer componentSerializer; - public ComponentTransformer(@NotNull ComponentSerializer componentSerializer) { + public ComponentTransformer(@NotNull ComponentSerializer componentSerializer) { this.componentSerializer = componentSerializer; } diff --git a/repository/okaeri/src/main/java/org/mythicprojects/yetanothermessageslibrary/config/serdes/YAMLSerdes.java b/repository/okaeri/src/main/java/org/mythicprojects/yetanothermessageslibrary/config/serdes/YAMLSerdes.java index 71674f6..184a889 100644 --- a/repository/okaeri/src/main/java/org/mythicprojects/yetanothermessageslibrary/config/serdes/YAMLSerdes.java +++ b/repository/okaeri/src/main/java/org/mythicprojects/yetanothermessageslibrary/config/serdes/YAMLSerdes.java @@ -14,9 +14,9 @@ public class YAMLSerdes implements OkaeriSerdesPack { - private final ComponentSerializer componentSerializer; + private final ComponentSerializer componentSerializer; - public YAMLSerdes(@NotNull ComponentSerializer componentSerializer) { + public YAMLSerdes(@NotNull ComponentSerializer componentSerializer) { this.componentSerializer = componentSerializer; } @@ -35,7 +35,7 @@ public void register(SerdesRegistry registry) { registry.register(new SendableMessageSerializer()); // Utilities - registry.register(new ComponentTransformer(componentSerializer)); + registry.register(new ComponentTransformer(this.componentSerializer)); registry.register(new KeyTransformer()); } diff --git a/tools/src/main/java/org/mythicprojects/yetanothermessageslibrary/adventure/GlobalAdventureSerializer.java b/tools/src/main/java/org/mythicprojects/yetanothermessageslibrary/adventure/GlobalAdventureSerializer.java index 2311b1f..161a5bd 100644 --- a/tools/src/main/java/org/mythicprojects/yetanothermessageslibrary/adventure/GlobalAdventureSerializer.java +++ b/tools/src/main/java/org/mythicprojects/yetanothermessageslibrary/adventure/GlobalAdventureSerializer.java @@ -18,7 +18,7 @@ */ public final class GlobalAdventureSerializer { - private static ComponentSerializer GLOBAL_SERIALIZER = new ComponentSerializer() { + private static ComponentSerializer GLOBAL_SERIALIZER = new ComponentSerializer() { @Override public @NotNull Component deserialize(@NotNull String input) { return Component.text(input); @@ -30,9 +30,6 @@ public final class GlobalAdventureSerializer { } }; - private static final boolean IS_NATIVE_LEGACY_SERIALIZER; - private static final boolean IS_NATIVE_MINIMESSAGE_SERIALIZER; - private GlobalAdventureSerializer() { } @@ -52,29 +49,19 @@ private GlobalAdventureSerializer() { } catch (ClassNotFoundException ignored) { } - IS_NATIVE_LEGACY_SERIALIZER = isNativeLegacySerializer; - IS_NATIVE_MINIMESSAGE_SERIALIZER = isNativeMiniMessageSerializer; - - if (IS_NATIVE_LEGACY_SERIALIZER && IS_NATIVE_MINIMESSAGE_SERIALIZER) { - NativeMiniMessageLegacySerializer.init(); - } else if (IS_NATIVE_LEGACY_SERIALIZER) { + if (isNativeLegacySerializer) { NativeLegacySerializer.init(); - } else if (IS_NATIVE_MINIMESSAGE_SERIALIZER) { + } else if (isNativeMiniMessageSerializer) { NativeMiniMessageSerializer.init(); } } - public static void globalSerializer(@NotNull ComponentSerializer globalSerializer) { - GLOBAL_SERIALIZER = Objects.requireNonNull(globalSerializer, "globalSerializer cannot be null"); - } - - public static @NotNull ComponentSerializer globalSerializer() { + public static @NotNull ComponentSerializer globalSerializer() { return GLOBAL_SERIALIZER; } - @SuppressWarnings("unchecked") - public static @NotNull String serialize(@NotNull Component component) { - return ((ComponentSerializer) GLOBAL_SERIALIZER).serialize(component); + public static void globalSerializer(@NotNull ComponentSerializer globalSerializer) { + GLOBAL_SERIALIZER = Objects.requireNonNull(globalSerializer, "globalSerializer cannot be null"); } public static @NotNull Component deserialize(@NotNull String input) { @@ -97,4 +84,8 @@ public static void globalSerializer(@NotNull ComponentSerializer LEGACY_AMPERSAND.deserialize(result.group())) - .build(); - private static final MiniMessage MINI_MESSAGE = MiniMessage.builder() - .preProcessor(text -> { - String processedText = HEX_TO_LEGACY_PATTERN.matcher(text).replaceAll(LEGACY_HEX_REPLACEMENT); // convert simple hex format to legacy - processedText = SECTION_COLOR_PATTERN.matcher(processedText).replaceAll("&$1"); // convert section to ampersand - return processedText; - }) - .postProcessor(component -> component.replaceText(COLOR_REPLACEMENTS)) - .build(); - - private NativeMiniMessageLegacySerializer() { - } - - static void init() { - GlobalAdventureSerializer.globalSerializer(MINI_MESSAGE); - } - -} diff --git a/tools/src/main/java/org/mythicprojects/yetanothermessageslibrary/adventure/NativeMiniMessageSerializer.java b/tools/src/main/java/org/mythicprojects/yetanothermessageslibrary/adventure/NativeMiniMessageSerializer.java index 90daf7c..10fb5d5 100644 --- a/tools/src/main/java/org/mythicprojects/yetanothermessageslibrary/adventure/NativeMiniMessageSerializer.java +++ b/tools/src/main/java/org/mythicprojects/yetanothermessageslibrary/adventure/NativeMiniMessageSerializer.java @@ -4,13 +4,11 @@ final class NativeMiniMessageSerializer { - private static final MiniMessage MINI_MESSAGE = MiniMessage.miniMessage(); - private NativeMiniMessageSerializer() { } static void init() { - GlobalAdventureSerializer.globalSerializer(MINI_MESSAGE); + GlobalAdventureSerializer.globalSerializer(MiniMessage.miniMessage()); } } diff --git a/tools/src/main/java/org/mythicprojects/yetanothermessageslibrary/replace/replacement/Replacement.java b/tools/src/main/java/org/mythicprojects/yetanothermessageslibrary/replace/replacement/Replacement.java index 380c7ba..6b08ec5 100644 --- a/tools/src/main/java/org/mythicprojects/yetanothermessageslibrary/replace/replacement/Replacement.java +++ b/tools/src/main/java/org/mythicprojects/yetanothermessageslibrary/replace/replacement/Replacement.java @@ -10,6 +10,7 @@ import java.util.regex.Pattern; import net.kyori.adventure.text.ComponentLike; import net.kyori.adventure.text.TextReplacementConfig; +import org.jetbrains.annotations.ApiStatus; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.mythicprojects.yetanothermessageslibrary.replace.Replaceable; @@ -36,6 +37,7 @@ protected Replacement(@NotNull Object placeholder) { return this.placeholderType.newReplacementBuilder(this.placeholder); } + @ApiStatus.Internal public final @NotNull Object getPlaceholder() { return this.placeholder; } From 0d82a3e188be9f743ee0189e09c7d116fdcda910 Mon Sep 17 00:00:00 2001 From: Peridot Date: Fri, 29 Mar 2024 22:46:56 +0100 Subject: [PATCH 05/17] Move MessageDispatcher to interface --- .../MessageService.java | 58 +++- .../SendableMessageService.java | 9 +- .../SimpleMessageService.java | 12 +- .../SimpleSendableMessageService.java | 22 +- .../message/MessageDispatcher.java | 290 ++++++++---------- .../message/MessageDispatcherFactory.java | 6 +- .../message/SimpleMessageDispatcher.java | 185 +++++++++++ .../BukkitMessageService.java | 5 +- .../message/BukkitMessageDispatcher.java | 23 +- .../message/BungeeMessageDispatcher.java | 23 +- .../message/VelocityMessageDispatcher.java | 23 +- 11 files changed, 412 insertions(+), 244 deletions(-) create mode 100644 core/src/main/java/org/mythicprojects/yetanothermessageslibrary/message/SimpleMessageDispatcher.java diff --git a/core/src/main/java/org/mythicprojects/yetanothermessageslibrary/MessageService.java b/core/src/main/java/org/mythicprojects/yetanothermessageslibrary/MessageService.java index dc3fdc8..6a881d8 100644 --- a/core/src/main/java/org/mythicprojects/yetanothermessageslibrary/MessageService.java +++ b/core/src/main/java/org/mythicprojects/yetanothermessageslibrary/MessageService.java @@ -4,14 +4,16 @@ import java.util.Locale; import java.util.Map; import java.util.function.Function; +import net.kyori.adventure.text.Component; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Unmodifiable; import org.mythicprojects.yetanothermessageslibrary.locale.LocaleProvider; +import org.mythicprojects.yetanothermessageslibrary.replace.ComponentReplacer; import org.mythicprojects.yetanothermessageslibrary.replace.Replaceable; import org.mythicprojects.yetanothermessageslibrary.replace.StringReplacer; -public interface MessageService { +public interface MessageService { /** * Get message from repository @@ -23,7 +25,7 @@ public interface MessageService { * @param type of message * @return message */ - default T get(@Nullable Object entity, @NotNull Function<@NotNull C, @Nullable T> valueSupplier) { + default T get(@Nullable Object entity, @NotNull Function<@NotNull REPOSITORY, @Nullable T> valueSupplier) { Locale locale = this.getLocale(entity); return valueSupplier.apply(this.getRepository(locale)); } @@ -36,7 +38,7 @@ default T get(@Nullable Object entity, @NotNull Function<@NotNull C, @Nullab * @param type of message * @return message */ - default T get(@NotNull Function<@NotNull C, @Nullable T> valueSupplier) { + default T get(@NotNull Function<@NotNull REPOSITORY, @Nullable T> valueSupplier) { return this.get(null, valueSupplier); } @@ -50,7 +52,7 @@ default T get(@NotNull Function<@NotNull C, @Nullable T> valueSupplier) { * @param replacements replacements to replace in message * @return message with replaced placeholders */ - default String get(@Nullable Object entity, @NotNull Function<@NotNull C, @Nullable String> stringSupplier, @NotNull Replaceable... replacements) { + default String getString(@Nullable Object entity, @NotNull Function<@NotNull REPOSITORY, @Nullable String> stringSupplier, @NotNull Replaceable... replacements) { String string = this.get(entity, stringSupplier); if (string == null) { return null; @@ -59,6 +61,25 @@ default String get(@Nullable Object entity, @NotNull Function<@NotNull C, @Nulla return StringReplacer.replace(locale, string, replacements); } + /** + * Get message from repository and replace placeholders + * + * @param entity entity to find locale for using registered {@link LocaleProvider} + * use default locale if entity is null or no {@link LocaleProvider} is registered + * can be {@link Locale} if you want to use specific locale + * @param componentSupplier function to get message from repository + * @param replacements replacements to replace in message + * @return message with replaced placeholders + */ + default Component getComponent(@Nullable Object entity, @NotNull Function<@NotNull REPOSITORY, @Nullable Component> componentSupplier, @NotNull Replaceable... replacements) { + Component component = this.get(entity, componentSupplier); + if (component == null) { + return null; + } + Locale locale = this.getLocale(entity); + return ComponentReplacer.replace(locale, component, replacements); + } + /** * Get message from repository with default locale and replace placeholders * @@ -69,7 +90,7 @@ default String get(@Nullable Object entity, @NotNull Function<@NotNull C, @Nulla * @param replacements replacements to replace in message * @return message with replaced placeholders */ - default List getList(@Nullable Object entity, @NotNull Function<@NotNull C, @Nullable List> listSupplier, @NotNull Replaceable... replacements) { + default List getStringList(@Nullable Object entity, @NotNull Function<@NotNull REPOSITORY, @Nullable List> listSupplier, @NotNull Replaceable... replacements) { List stringList = this.get(entity, listSupplier); if (stringList == null || stringList.isEmpty()) { return stringList; @@ -78,6 +99,25 @@ default List getList(@Nullable Object entity, @NotNull Function<@NotNull return StringReplacer.replace(locale, stringList, replacements); } + /** + * Get message from repository with default locale and replace placeholders + * + * @param entity entity to find locale for using registered {@link LocaleProvider} + * use default locale if entity is null or no {@link LocaleProvider} is registered + * can be {@link Locale} if you want to use specific locale + * @param listSupplier function to get message from repository + * @param replacements replacements to replace in message + * @return message with replaced placeholders + */ + default List getComponentList(@Nullable Object entity, @NotNull Function<@NotNull REPOSITORY, @Nullable List> listSupplier, @NotNull Replaceable... replacements) { + List componentList = this.get(entity, listSupplier); + if (componentList == null || componentList.isEmpty()) { + return componentList; + } + Locale locale = this.getLocale(entity); + return ComponentReplacer.replace(locale, componentList, replacements); + } + /** * Set default locale that will be used if: *

    @@ -148,7 +188,7 @@ default List getList(@Nullable Object entity, @NotNull Function<@NotNull * * @return message repositories */ - @NotNull @Unmodifiable Map getMessageRepositories(); + @NotNull @Unmodifiable Map getMessageRepositories(); /** * Get message repository for locale @@ -156,7 +196,7 @@ default List getList(@Nullable Object entity, @NotNull Function<@NotNull * @param locale locale * @return message repository */ - @NotNull C getRepository(@NotNull Locale locale); + @NotNull REPOSITORY getRepository(@NotNull Locale locale); /** * Register message repository for locale @@ -164,7 +204,7 @@ default List getList(@Nullable Object entity, @NotNull Function<@NotNull * @param locale locale * @param messageRepository message repository */ - void registerRepository(@NotNull Locale locale, @NotNull C messageRepository); + void registerRepository(@NotNull Locale locale, @NotNull REPOSITORY messageRepository); /** * Register message repository for locale and set it as default @@ -172,7 +212,7 @@ default List getList(@Nullable Object entity, @NotNull Function<@NotNull * @param defaultLocale default locale * @param messageRepository message repository */ - default void registerDefaultRepository(@NotNull Locale defaultLocale, @NotNull C messageRepository) { + default void registerDefaultRepository(@NotNull Locale defaultLocale, @NotNull REPOSITORY messageRepository) { this.setDefaultLocale(defaultLocale); this.registerRepository(defaultLocale, messageRepository); } diff --git a/core/src/main/java/org/mythicprojects/yetanothermessageslibrary/SendableMessageService.java b/core/src/main/java/org/mythicprojects/yetanothermessageslibrary/SendableMessageService.java index 4472a72..f522304 100644 --- a/core/src/main/java/org/mythicprojects/yetanothermessageslibrary/SendableMessageService.java +++ b/core/src/main/java/org/mythicprojects/yetanothermessageslibrary/SendableMessageService.java @@ -8,7 +8,8 @@ import org.mythicprojects.yetanothermessageslibrary.message.Sendable; import org.mythicprojects.yetanothermessageslibrary.viewer.ViewerService; -public interface SendableMessageService> extends MessageService { +public interface SendableMessageService> + extends MessageService { /** * Wrap message in {@link MessageDispatcher} to easily send it @@ -17,12 +18,12 @@ public interface SendableMessageService messageSupplier) { + default DISPATCHER getMessage(@NotNull Function<@NotNull REPOSITORY, @Nullable Sendable> messageSupplier) { return this.getDispatcherFactory().prepareDispatcher(this.getViewerService(), this::getLocale, (entity) -> this.get(entity, messageSupplier)); } - @NotNull ViewerService getViewerService(); + @NotNull ViewerService getViewerService(); - @NotNull MessageDispatcherFactory getDispatcherFactory(); + @NotNull MessageDispatcherFactory getDispatcherFactory(); } diff --git a/core/src/main/java/org/mythicprojects/yetanothermessageslibrary/SimpleMessageService.java b/core/src/main/java/org/mythicprojects/yetanothermessageslibrary/SimpleMessageService.java index b2556d3..c9a922e 100644 --- a/core/src/main/java/org/mythicprojects/yetanothermessageslibrary/SimpleMessageService.java +++ b/core/src/main/java/org/mythicprojects/yetanothermessageslibrary/SimpleMessageService.java @@ -12,11 +12,11 @@ import org.mythicprojects.yetanothermessageslibrary.locale.LocaleProvider; import org.mythicprojects.yetanothermessageslibrary.util.Validate; -public abstract class SimpleMessageService implements MessageService { +public abstract class SimpleMessageService implements MessageService { private Locale defaultLocale = Locale.getDefault(); private final Collection> localeProviders = new LinkedHashSet<>(); - private final Map messageRepositories = new LinkedHashMap<>(); + private final Map messageRepositories = new LinkedHashMap<>(); @Override public @NotNull Locale getDefaultLocale() { @@ -45,13 +45,13 @@ public void registerLocaleProvider(@NotNull LocaleProvider localeProvider) { } @Override - public @NotNull @Unmodifiable Map getMessageRepositories() { + public @NotNull @Unmodifiable Map getMessageRepositories() { return Collections.unmodifiableMap(this.messageRepositories); } @Override - public @NotNull C getRepository(@NotNull Locale locale) { - C messageRepository = this.messageRepositories.get(locale); + public @NotNull REPOSITORY getRepository(@NotNull Locale locale) { + REPOSITORY messageRepository = this.messageRepositories.get(locale); if (messageRepository == null) { // If we can't find message repository for language wariant (for e.g. en_GB) we will try to find message repository for language (for e.g. en) messageRepository = this.messageRepositories.get(Locale.forLanguageTag(locale.getLanguage())); @@ -69,7 +69,7 @@ public void registerLocaleProvider(@NotNull LocaleProvider localeProvider) { } @Override - public void registerRepository(@NotNull Locale locale, @NotNull C messageRepository) { + public void registerRepository(@NotNull Locale locale, @NotNull REPOSITORY messageRepository) { Validate.notNull(locale, "Locale cannot be null"); Validate.notNull(messageRepository, "Message repository cannot be null"); this.messageRepositories.put(locale, messageRepository); diff --git a/core/src/main/java/org/mythicprojects/yetanothermessageslibrary/SimpleSendableMessageService.java b/core/src/main/java/org/mythicprojects/yetanothermessageslibrary/SimpleSendableMessageService.java index 912fb34..a0945df 100644 --- a/core/src/main/java/org/mythicprojects/yetanothermessageslibrary/SimpleSendableMessageService.java +++ b/core/src/main/java/org/mythicprojects/yetanothermessageslibrary/SimpleSendableMessageService.java @@ -7,23 +7,25 @@ import org.mythicprojects.yetanothermessageslibrary.viewer.ViewerFactory; import org.mythicprojects.yetanothermessageslibrary.viewer.ViewerService; -public abstract class SimpleSendableMessageService> extends SimpleMessageService implements SendableMessageService { +public abstract class SimpleSendableMessageService> + extends SimpleMessageService + implements SendableMessageService { - private final ViewerService viewerService; - private final MessageDispatcherFactory dispatcherFactory; + private final ViewerService viewerService; + private final MessageDispatcherFactory dispatcherFactory; public SimpleSendableMessageService( - @NotNull ViewerService viewerService, - @NotNull MessageDispatcherFactory dispatcherFactory + @NotNull ViewerService viewerService, + @NotNull MessageDispatcherFactory dispatcherFactory ) { this.viewerService = viewerService; this.dispatcherFactory = dispatcherFactory; } public SimpleSendableMessageService( - @NotNull ViewerDataSupplier viewerDataSupplier, - @NotNull ViewerFactory viewerFactory, - @NotNull MessageDispatcherFactory dispatcherFactory + @NotNull ViewerDataSupplier viewerDataSupplier, + @NotNull ViewerFactory viewerFactory, + @NotNull MessageDispatcherFactory dispatcherFactory ) { this( new ViewerService<>(viewerDataSupplier, viewerFactory), @@ -32,12 +34,12 @@ public SimpleSendableMessageService( } @Override - public @NotNull ViewerService getViewerService() { + public @NotNull ViewerService getViewerService() { return this.viewerService; } @Override - public @NotNull MessageDispatcherFactory getDispatcherFactory() { + public @NotNull MessageDispatcherFactory getDispatcherFactory() { return this.dispatcherFactory; } diff --git a/core/src/main/java/org/mythicprojects/yetanothermessageslibrary/message/MessageDispatcher.java b/core/src/main/java/org/mythicprojects/yetanothermessageslibrary/message/MessageDispatcher.java index 5df5301..1f65e22 100644 --- a/core/src/main/java/org/mythicprojects/yetanothermessageslibrary/message/MessageDispatcher.java +++ b/core/src/main/java/org/mythicprojects/yetanothermessageslibrary/message/MessageDispatcher.java @@ -1,15 +1,8 @@ package org.mythicprojects.yetanothermessageslibrary.message; -import java.util.ArrayList; import java.util.Collection; -import java.util.Collections; -import java.util.HashSet; -import java.util.List; import java.util.Locale; import java.util.Map; -import java.util.Objects; -import java.util.Set; -import java.util.WeakHashMap; import java.util.function.Consumer; import java.util.function.Function; import java.util.function.Predicate; @@ -22,169 +15,188 @@ import org.mythicprojects.yetanothermessageslibrary.replace.Replaceable; import org.mythicprojects.yetanothermessageslibrary.replace.replacement.Replacement; import org.mythicprojects.yetanothermessageslibrary.util.TriFunction; -import org.mythicprojects.yetanothermessageslibrary.viewer.Viewer; -import org.mythicprojects.yetanothermessageslibrary.viewer.ViewerService; @SuppressWarnings("unchecked") -public class MessageDispatcher> { +public interface MessageDispatcher> { - private final ViewerService viewerService; - private final Function localeSupplier; - private final Function messageSupplier; - - private final Set receivers = Collections.newSetFromMap(new WeakHashMap<>()); - private final Set> predicates = new HashSet<>(); - private final Set> actions = new HashSet<>(); - - private final Map fields = new WeakHashMap<>(); - private final List replacements = new ArrayList<>(); - @SuppressWarnings("rawtypes") - private final List replacementSuppliers = new ArrayList<>(); + /** + * Add a receiver to the dispatcher + * @param receiver the receiver + * @return this dispatcher + */ + @Contract("_ -> this") + DISPATCHER receiver(@Nullable RECEIVER receiver); - public MessageDispatcher( - @NotNull ViewerService viewerService, - @NotNull Function<@Nullable Object, @NotNull Locale> localeSupplier, - @NotNull Function<@Nullable Object, @Nullable Sendable> messageSupplier - ) { - this.viewerService = viewerService; - this.localeSupplier = localeSupplier; - this.messageSupplier = messageSupplier; + /** + * Add multiple receivers to the dispatcher + * @param receivers the receivers + * @return this dispatcher + */ + @Contract("_ -> this") + default DISPATCHER receivers(@NotNull Collection receivers) { + receivers.forEach(this::receiver); + return (DISPATCHER) this; } + /** + * Add multiple receivers to the dispatcher + * @param receivers the receivers + * @return this dispatcher + */ @Contract("_ -> this") - public D receiver(@Nullable R receiver) { - if (receiver == null) { - return (D) this; + default DISPATCHER receivers(@NotNull RECEIVER... receivers) { + for (RECEIVER receiver : receivers) { + this.receiver(receiver); } + return (DISPATCHER) this; + } - this.receivers.add(receiver); - return (D) this; + /** + * Add all players to the dispatcher + * @return this dispatcher + * @throws UnsupportedOperationException if the operation is not implemented in the current MessageDispatcher + */ + @Contract(" -> this") + default DISPATCHER all() throws UnsupportedOperationException { + this.allPlayers(); + this.console(); + return (DISPATCHER) this; } - @Contract("_ -> this") - public D receivers(@NotNull Collection receivers) { - receivers.forEach(this::receiver); - return (D) this; + /** + * Add all players to the dispatcher + * @return this dispatcher + * @throws UnsupportedOperationException if the operation is not implemented in the current MessageDispatcher + */ + @Contract(" -> this") + default DISPATCHER allPlayers() throws UnsupportedOperationException { + throw new UnsupportedOperationException("allPlayers is not supported by this MessageDispatcher"); } - @Contract("_ -> this") - public D predicate(@NotNull Predicate<@NotNull R> predicate) { - this.predicates.add(predicate); - return (D) this; + /** + * Add all viewers to the dispatcher + * @return this dispatcher + * @throws UnsupportedOperationException if the operation is not implemented in the current MessageDispatcher + */ + @Contract(" -> this") + default DISPATCHER console() throws UnsupportedOperationException { + throw new UnsupportedOperationException("console is not supported by this MessageDispatcher"); } + /** + * Add a predicate to the dispatcher + * @param predicate the predicate + * @return this dispatcher + */ + @Contract("_ -> this") + DISPATCHER predicate(@NotNull Predicate predicate); + + /** + * Add a predicate to the dispatcher for a specific receiver class + * @param receiverClass the class of the receiver + * @param predicate the predicate + * @param the type of the receiver + * @return this dispatcher + */ @Contract("_, _ -> this") - public D predicate(@NotNull Class requiredType, @NotNull Predicate<@NotNull T> predicate) { + default DISPATCHER predicate(@NotNull Class receiverClass, @NotNull Predicate predicate) { return this.predicate(receiver -> { - if (!requiredType.isInstance(receiver)) { + if (!receiverClass.isInstance(receiver)) { return false; } - return predicate.test(requiredType.cast(receiver)); + return predicate.test(receiverClass.cast(receiver)); }); } - @Contract("_ -> this") - public D action(@NotNull Consumer<@NotNull R> action) { - this.actions.add(action); - return (D) this; - } - + /** + * Add a field to the dispatcher to use by the replacements + * @param key the key of the field + * @param value the value of the field + * @return this dispatcher + */ @Contract("_, _ -> this") - public D field(@NotNull String key, @Nullable Object value) { - this.fields.put(key, value); - return (D) this; - } + DISPATCHER field(@NotNull String key, @Nullable Object value); - @Contract("_, -> this") - public D fields(@NotNull Map<@NotNull String, @Nullable Object> fields) { - this.fields.putAll(fields); - return (D) this; - } + /** + * Add multiple fields to the dispatcher to use by the replacements + * @param fields the fields + * @return this dispatcher + */ + @Contract("_ -> this") + DISPATCHER fields(@NotNull Map fields); @Contract("_ -> this") - public D with(@NotNull Replaceable replacement) { - this.replacements.add(replacement); - return (D) this; - } + DISPATCHER with(@NotNull Replaceable replacement); @Contract("_ -> this") - public D with(@NotNull Replaceable @NotNull ... replacement) { - Collections.addAll(this.replacements, replacement); - return (D) this; - } + DISPATCHER with(@NotNull Replaceable @NotNull ... replacement); @Contract("_ -> this") - public D with(@NotNull Iterable replacements) { - replacements.forEach(this.replacements::add); - return (D) this; - } + DISPATCHER with(@NotNull Iterable replacements); - public D with(@NotNull String placeholder, @NotNull ComponentLike replacement) { + default DISPATCHER with(@NotNull String placeholder, @NotNull ComponentLike replacement) { return this.with(Replacement.component(placeholder, replacement)); } - public D with(@NotNull Pattern placeholder, @NotNull ComponentLike replacement) { + default DISPATCHER with(@NotNull Pattern placeholder, @NotNull ComponentLike replacement) { return this.with(Replacement.component(placeholder, replacement)); } - public D with(@NotNull String placeholder, @NotNull Function<@Nullable Locale, ? extends @NotNull ComponentLike> replacement) { + default DISPATCHER with(@NotNull String placeholder, @NotNull Function<@Nullable Locale, ? extends @NotNull ComponentLike> replacement) { return this.with(Replacement.component(placeholder, replacement)); } - public D with(@NotNull Pattern placeholder, @NotNull Function<@Nullable Locale, ? extends @NotNull ComponentLike> replacement) { + default DISPATCHER with(@NotNull Pattern placeholder, @NotNull Function<@Nullable Locale, ? extends @NotNull ComponentLike> replacement) { return this.with(Replacement.component(placeholder, replacement)); } - public D with(@NotNull String placeholder, @NotNull Supplier replacement) { + default DISPATCHER with(@NotNull String placeholder, @NotNull Supplier replacement) { return this.with(Replacement.component(placeholder, replacement)); } - public D with(@NotNull Pattern placeholder, @NotNull Supplier replacement) { + default DISPATCHER with(@NotNull Pattern placeholder, @NotNull Supplier replacement) { return this.with(Replacement.component(placeholder, replacement)); } @Contract("_, _ -> this") - public D with(@NotNull String placeholder, @NotNull Object replacement) { + default DISPATCHER with(@NotNull String placeholder, @NotNull Object replacement) { return this.with(Replacement.string(placeholder, replacement)); } @Contract("_, _ -> this") - public D with(@NotNull Pattern placeholder, @NotNull Object replacement) { + default DISPATCHER with(@NotNull Pattern placeholder, @NotNull Object replacement) { return this.with(Replacement.string(placeholder, replacement)); } @Contract("_, _ -> this") - public D withString(@NotNull String placeholder, @NotNull Function<@Nullable Locale, ? extends @NotNull Object> replacement) { + default DISPATCHER withString(@NotNull String placeholder, @NotNull Function<@Nullable Locale, ? extends @NotNull Object> replacement) { return this.with(Replacement.string(placeholder, replacement)); } @Contract("_, _ -> this") - public D withString(@NotNull Pattern placeholder, @NotNull Function<@Nullable Locale, ? extends @NotNull Object> replacement) { + default DISPATCHER withString(@NotNull Pattern placeholder, @NotNull Function<@Nullable Locale, ? extends @NotNull Object> replacement) { return this.with(Replacement.string(placeholder, replacement)); } @Contract("_, _ -> this") - public D withString(@NotNull String placeholder, @NotNull Supplier replacement) { + default DISPATCHER withString(@NotNull String placeholder, @NotNull Supplier replacement) { return this.with(Replacement.string(placeholder, replacement)); } @Contract("_, _ -> this") - public D withString(@NotNull Pattern placeholder, @NotNull Supplier replacement) { + default DISPATCHER withString(@NotNull Pattern placeholder, @NotNull Supplier replacement) { return this.with(Replacement.string(placeholder, replacement)); } @Contract("_, _, _ -> this") - public D with( + DISPATCHER with( @NotNull Class requiredType, @NotNull TriFunction<@NotNull T, @NotNull Locale, @NotNull Map<@NotNull String, @Nullable Object>, ? extends @NotNull Replaceable> replacementSupplier, - @Nullable TriFunction<@NotNull R, @NotNull Locale, @NotNull Map<@NotNull String, @Nullable Object>, ? extends @NotNull Replaceable> fallbackSupplier - ) { - this.replacementSuppliers.add(new ReplaceableSupplier<>(requiredType, replacementSupplier, fallbackSupplier)); - return (D) this; - } + @Nullable TriFunction<@NotNull RECEIVER, @NotNull Locale, @NotNull Map<@NotNull String, @Nullable Object>, ? extends @NotNull Replaceable> fallbackSupplier + ); @Contract("_, _ -> this") - public D with( + default DISPATCHER with( @NotNull Class requiredType, @NotNull TriFunction<@NotNull T, @NotNull Locale, @NotNull Map<@NotNull String, @Nullable Object>, ? extends @NotNull Replaceable> replacementSupplier ) { @@ -192,10 +204,10 @@ public D with( } @Contract("_, _, _ -> this") - public D with( + default DISPATCHER with( @NotNull Class requiredType, @NotNull Function<@NotNull T, ? extends @NotNull Replaceable> replacementSupplier, - @Nullable Function<@NotNull R, ? extends @NotNull Replaceable> fallbackSupplier + @Nullable Function<@NotNull RECEIVER, ? extends @NotNull Replaceable> fallbackSupplier ) { return this.with( requiredType, @@ -207,7 +219,7 @@ public D with( } @Contract("_, _ -> this") - public D with( + default DISPATCHER with( @NotNull Class requiredType, @NotNull Function<@NotNull T, ? extends @NotNull Replaceable> replacementSupplier ) { @@ -215,85 +227,27 @@ public D with( } @Contract("_, _ -> this") - public D with( + default DISPATCHER with( @NotNull Class requiredType, @NotNull Collection> replacementSuppliers ) { replacementSuppliers.forEach(replacementSupplier -> this.with(requiredType, replacementSupplier)); - return (D) this; + return (DISPATCHER) this; } - @Contract(" -> this") - public D send() { - this.receivers.forEach(this::sendTo); - return (D) this; - } - - private void sendTo(@NotNull R receiver) { - Locale locale = this.localeSupplier.apply(receiver); - - Sendable message = this.messageSupplier.apply(locale); - if (message == null) { - return; - } - - if (this.predicates.stream().anyMatch(predicate -> !predicate.test(receiver))) { - return; - } - - Viewer viewer = this.viewerService.findOrCreateViewer(receiver); - List replaceables = this.prepareReplacements(receiver, locale); - message.send(locale, viewer, replaceables.toArray(new Replaceable[0])); - this.actions.forEach(action -> action.accept(receiver)); - } - - protected @NotNull List prepareReplacements(@NotNull R receiver, @NotNull Locale locale) { - List replacement = new ArrayList<>(this.replacements); - this.replacementSuppliers - .stream() - .map(supplier -> { - return supplier.supplyReplacement( - supplier.getEntityType().cast(receiver), - locale, - this.fields - ); - }) - .filter(Objects::nonNull) - .forEachOrdered(replacement::add); - return replacement; - } - - private class ReplaceableSupplier { - - private final Class entityType; - private final TriFunction<@NotNull T, @NotNull Locale, @NotNull Map<@NotNull String, @Nullable Object>, ? extends @NotNull Replaceable> supplier; - private final TriFunction<@NotNull R, @NotNull Locale, @NotNull Map<@NotNull String, @Nullable Object>, ? extends @NotNull Replaceable> fallbackSupplier; - - private ReplaceableSupplier( - @NotNull Class entityType, - @NotNull TriFunction<@NotNull T, @NotNull Locale, @NotNull Map<@NotNull String, @Nullable Object>, ? extends @NotNull Replaceable> supplier, - @Nullable TriFunction<@NotNull R, @NotNull Locale, @NotNull Map<@NotNull String, @Nullable Object>, ? extends @NotNull Replaceable> fallbackSupplier - ) { - this.entityType = entityType; - this.supplier = supplier; - this.fallbackSupplier = fallbackSupplier; - } - - public @NotNull Class getEntityType() { - return this.entityType; - } - - public @Nullable Replaceable supplyReplacement(@NotNull R receiver, @NotNull Locale locale, @NotNull Map<@NotNull String, @Nullable Object> fields) { - if (this.entityType.isInstance(receiver)) { - return this.supplier.apply(this.entityType.cast(receiver), locale, fields); - } - - if (this.fallbackSupplier == null) { - return null; - } - return this.fallbackSupplier.apply(receiver, locale, fields); - } + /** + * Add an action to the dispatcher that will be executed after the message is sent + * @param action the action + * @return this dispatcher + */ + @Contract("_ -> this") + DISPATCHER action(@NotNull Consumer action); - } + /** + * Send the message to all receivers + * @return this dispatcher + */ + @Contract(" -> this") + DISPATCHER send(); } diff --git a/core/src/main/java/org/mythicprojects/yetanothermessageslibrary/message/MessageDispatcherFactory.java b/core/src/main/java/org/mythicprojects/yetanothermessageslibrary/message/MessageDispatcherFactory.java index 3d024c1..7cbecd2 100644 --- a/core/src/main/java/org/mythicprojects/yetanothermessageslibrary/message/MessageDispatcherFactory.java +++ b/core/src/main/java/org/mythicprojects/yetanothermessageslibrary/message/MessageDispatcherFactory.java @@ -6,10 +6,10 @@ import org.jetbrains.annotations.Nullable; import org.mythicprojects.yetanothermessageslibrary.viewer.ViewerService; -public interface MessageDispatcherFactory> { +public interface MessageDispatcherFactory> { - @NotNull D prepareDispatcher( - @NotNull ViewerService viewerService, + @NotNull DISPATCHER prepareDispatcher( + @NotNull ViewerService viewerService, @NotNull Function<@Nullable Object, @NotNull Locale> localeSupplier, @NotNull Function<@Nullable Object, @Nullable Sendable> messageSupplier ); diff --git a/core/src/main/java/org/mythicprojects/yetanothermessageslibrary/message/SimpleMessageDispatcher.java b/core/src/main/java/org/mythicprojects/yetanothermessageslibrary/message/SimpleMessageDispatcher.java new file mode 100644 index 0000000..9141408 --- /dev/null +++ b/core/src/main/java/org/mythicprojects/yetanothermessageslibrary/message/SimpleMessageDispatcher.java @@ -0,0 +1,185 @@ +package org.mythicprojects.yetanothermessageslibrary.message; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashSet; +import java.util.List; +import java.util.Locale; +import java.util.Map; +import java.util.Objects; +import java.util.Set; +import java.util.WeakHashMap; +import java.util.function.Consumer; +import java.util.function.Function; +import java.util.function.Predicate; +import org.jetbrains.annotations.Contract; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; +import org.mythicprojects.yetanothermessageslibrary.replace.Replaceable; +import org.mythicprojects.yetanothermessageslibrary.util.TriFunction; +import org.mythicprojects.yetanothermessageslibrary.viewer.Viewer; +import org.mythicprojects.yetanothermessageslibrary.viewer.ViewerService; + +@SuppressWarnings("unchecked") +public class SimpleMessageDispatcher> + implements MessageDispatcher { + + private final ViewerService viewerService; + private final Function localeSupplier; + private final Function messageSupplier; + + private final Set receivers = Collections.newSetFromMap(new WeakHashMap<>()); + private final Set> predicates = new HashSet<>(); + private final Set> actions = new HashSet<>(); + + private final Map fields = new WeakHashMap<>(); + private final List replacements = new ArrayList<>(); + @SuppressWarnings("rawtypes") + private final List replacementSuppliers = new ArrayList<>(); + + public SimpleMessageDispatcher( + @NotNull ViewerService viewerService, + @NotNull Function<@Nullable Object, @NotNull Locale> localeSupplier, + @NotNull Function<@Nullable Object, @Nullable Sendable> messageSupplier + ) { + this.viewerService = viewerService; + this.localeSupplier = localeSupplier; + this.messageSupplier = messageSupplier; + } + + @Contract("_ -> this") + public DISPATCHER receiver(@Nullable RECEIVER receiver) { + if (receiver == null) { + return (DISPATCHER) this; + } + + this.receivers.add(receiver); + return (DISPATCHER) this; + } + + @Contract("_ -> this") + public DISPATCHER predicate(@NotNull Predicate<@NotNull RECEIVER> predicate) { + this.predicates.add(predicate); + return (DISPATCHER) this; + } + + @Contract("_, _ -> this") + public DISPATCHER field(@NotNull String key, @Nullable Object value) { + this.fields.put(key, value); + return (DISPATCHER) this; + } + + @Contract("_, -> this") + public DISPATCHER fields(@NotNull Map<@NotNull String, @Nullable Object> fields) { + this.fields.putAll(fields); + return (DISPATCHER) this; + } + + @Contract("_ -> this") + public DISPATCHER with(@NotNull Replaceable replacement) { + this.replacements.add(replacement); + return (DISPATCHER) this; + } + + @Contract("_ -> this") + public DISPATCHER with(@NotNull Replaceable @NotNull ... replacement) { + Collections.addAll(this.replacements, replacement); + return (DISPATCHER) this; + } + + @Contract("_ -> this") + public DISPATCHER with(@NotNull Iterable replacements) { + replacements.forEach(this.replacements::add); + return (DISPATCHER) this; + } + + @Contract("_, _, _ -> this") + public DISPATCHER with( + @NotNull Class requiredType, + @NotNull TriFunction<@NotNull T, @NotNull Locale, @NotNull Map<@NotNull String, @Nullable Object>, ? extends @NotNull Replaceable> replacementSupplier, + @Nullable TriFunction<@NotNull RECEIVER, @NotNull Locale, @NotNull Map<@NotNull String, @Nullable Object>, ? extends @NotNull Replaceable> fallbackSupplier + ) { + this.replacementSuppliers.add(new ReplaceableSupplier<>(requiredType, replacementSupplier, fallbackSupplier)); + return (DISPATCHER) this; + } + + @Contract("_ -> this") + public DISPATCHER action(@NotNull Consumer<@NotNull RECEIVER> action) { + this.actions.add(action); + return (DISPATCHER) this; + } + + @Contract(" -> this") + public DISPATCHER send() { + this.receivers.forEach(this::sendTo); + return (DISPATCHER) this; + } + + private void sendTo(@NotNull RECEIVER receiver) { + Locale locale = this.localeSupplier.apply(receiver); + + Sendable message = this.messageSupplier.apply(locale); + if (message == null) { + return; + } + + if (this.predicates.stream().anyMatch(predicate -> !predicate.test(receiver))) { + return; + } + + Viewer viewer = this.viewerService.findOrCreateViewer(receiver); + List replaceables = this.prepareReplacements(receiver, locale); + message.send(locale, viewer, replaceables.toArray(new Replaceable[0])); + this.actions.forEach(action -> action.accept(receiver)); + } + + protected @NotNull List prepareReplacements(@NotNull RECEIVER receiver, @NotNull Locale locale) { + List replacement = new ArrayList<>(this.replacements); + this.replacementSuppliers + .stream() + .map(supplier -> { + return supplier.supplyReplacement( + supplier.getEntityType().cast(receiver), + locale, + this.fields + ); + }) + .filter(Objects::nonNull) + .forEachOrdered(replacement::add); + return replacement; + } + + private class ReplaceableSupplier { + + private final Class entityType; + private final TriFunction<@NotNull T, @NotNull Locale, @NotNull Map<@NotNull String, @Nullable Object>, ? extends @NotNull Replaceable> supplier; + private final TriFunction<@NotNull RECEIVER, @NotNull Locale, @NotNull Map<@NotNull String, @Nullable Object>, ? extends @NotNull Replaceable> fallbackSupplier; + + private ReplaceableSupplier( + @NotNull Class entityType, + @NotNull TriFunction<@NotNull T, @NotNull Locale, @NotNull Map<@NotNull String, @Nullable Object>, ? extends @NotNull Replaceable> supplier, + @Nullable TriFunction<@NotNull RECEIVER, @NotNull Locale, @NotNull Map<@NotNull String, @Nullable Object>, ? extends @NotNull Replaceable> fallbackSupplier + ) { + this.entityType = entityType; + this.supplier = supplier; + this.fallbackSupplier = fallbackSupplier; + } + + public @NotNull Class getEntityType() { + return this.entityType; + } + + public @Nullable Replaceable supplyReplacement(@NotNull RECEIVER receiver, @NotNull Locale locale, @NotNull Map<@NotNull String, @Nullable Object> fields) { + if (this.entityType.isInstance(receiver)) { + return this.supplier.apply(this.entityType.cast(receiver), locale, fields); + } + + if (this.fallbackSupplier == null) { + return null; + } + return this.fallbackSupplier.apply(receiver, locale, fields); + } + + } + +} diff --git a/platform/bukkit/src/main/java/org/mythicprojects/yetanothermessageslibrary/BukkitMessageService.java b/platform/bukkit/src/main/java/org/mythicprojects/yetanothermessageslibrary/BukkitMessageService.java index 30a061e..3ff3734 100644 --- a/platform/bukkit/src/main/java/org/mythicprojects/yetanothermessageslibrary/BukkitMessageService.java +++ b/platform/bukkit/src/main/java/org/mythicprojects/yetanothermessageslibrary/BukkitMessageService.java @@ -10,7 +10,8 @@ import org.mythicprojects.yetanothermessageslibrary.viewer.ViewerFactory; import org.mythicprojects.yetanothermessageslibrary.viewer.ViewerService; -public class BukkitMessageService extends SimpleSendableMessageService> { +public class BukkitMessageService + extends SimpleSendableMessageService> { public BukkitMessageService(@NotNull ViewerService viewerService) { super( @@ -26,7 +27,7 @@ public BukkitMessageService(@NotNull JavaPlugin plugin, @NotNull BukkitAudiences )); } - public static BiConsumer wrapScheduler(JavaPlugin plugin) { + public static BiConsumer wrapScheduler(@NotNull JavaPlugin plugin) { return (runnable, delay) -> plugin.getServer().getScheduler().runTaskLater(plugin, runnable, delay); } diff --git a/platform/bukkit/src/main/java/org/mythicprojects/yetanothermessageslibrary/message/BukkitMessageDispatcher.java b/platform/bukkit/src/main/java/org/mythicprojects/yetanothermessageslibrary/message/BukkitMessageDispatcher.java index 10d6059..bccfeae 100644 --- a/platform/bukkit/src/main/java/org/mythicprojects/yetanothermessageslibrary/message/BukkitMessageDispatcher.java +++ b/platform/bukkit/src/main/java/org/mythicprojects/yetanothermessageslibrary/message/BukkitMessageDispatcher.java @@ -9,7 +9,9 @@ import org.jetbrains.annotations.Nullable; import org.mythicprojects.yetanothermessageslibrary.viewer.ViewerService; -public class BukkitMessageDispatcher> extends MessageDispatcher { +@SuppressWarnings("unchecked") +public class BukkitMessageDispatcher> + extends SimpleMessageDispatcher { public BukkitMessageDispatcher( @NotNull ViewerService viewerService, @@ -20,28 +22,21 @@ public BukkitMessageDispatcher( } @Contract(" -> this") - public D broadcast() { - this.broadcastPlayers(); - this.console(); - return (D) this; - } - - @Contract(" -> this") - public D broadcastPlayers() { + public DISPATCHER allPlayers() { this.receivers(Bukkit.getOnlinePlayers()); - return (D) this; + return (DISPATCHER) this; } @Contract(" -> this") - public D console() { + public DISPATCHER console() { this.receiver(Bukkit.getConsoleSender()); - return (D) this; + return (DISPATCHER) this; } @Contract("_ -> this") - public D permission(@NotNull String permission) { + public DISPATCHER permission(@NotNull String permission) { this.predicate(sender -> sender.hasPermission(permission)); - return (D) this; + return (DISPATCHER) this; } } diff --git a/platform/bungee/src/main/java/org/mythicprojects/yetanothermessageslibrary/message/BungeeMessageDispatcher.java b/platform/bungee/src/main/java/org/mythicprojects/yetanothermessageslibrary/message/BungeeMessageDispatcher.java index 2049f6f..278a489 100644 --- a/platform/bungee/src/main/java/org/mythicprojects/yetanothermessageslibrary/message/BungeeMessageDispatcher.java +++ b/platform/bungee/src/main/java/org/mythicprojects/yetanothermessageslibrary/message/BungeeMessageDispatcher.java @@ -9,7 +9,9 @@ import org.jetbrains.annotations.Nullable; import org.mythicprojects.yetanothermessageslibrary.viewer.ViewerService; -public class BungeeMessageDispatcher> extends MessageDispatcher { +@SuppressWarnings("unchecked") +public class BungeeMessageDispatcher> + extends SimpleMessageDispatcher { public BungeeMessageDispatcher( @NotNull ViewerService viewerService, @@ -20,28 +22,21 @@ public BungeeMessageDispatcher( } @Contract(" -> this") - public D broadcast() { - this.broadcastPlayers(); - this.console(); - return (D) this; - } - - @Contract(" -> this") - public D broadcastPlayers() { + public DISPATCHER allPlayers() { this.receivers(ProxyServer.getInstance().getPlayers()); - return (D) this; + return (DISPATCHER) this; } @Contract(" -> this") - public D console() { + public DISPATCHER console() { this.receiver(ProxyServer.getInstance().getConsole()); - return (D) this; + return (DISPATCHER) this; } @Contract("_ -> this") - public D permission(@NotNull String permission) { + public DISPATCHER permission(@NotNull String permission) { this.predicate(sender -> sender.hasPermission(permission)); - return (D) this; + return (DISPATCHER) this; } } diff --git a/platform/velocity/src/main/java/org/mythicprojects/yetanothermessageslibrary/message/VelocityMessageDispatcher.java b/platform/velocity/src/main/java/org/mythicprojects/yetanothermessageslibrary/message/VelocityMessageDispatcher.java index f08a34c..a219ec2 100644 --- a/platform/velocity/src/main/java/org/mythicprojects/yetanothermessageslibrary/message/VelocityMessageDispatcher.java +++ b/platform/velocity/src/main/java/org/mythicprojects/yetanothermessageslibrary/message/VelocityMessageDispatcher.java @@ -9,7 +9,9 @@ import org.jetbrains.annotations.Nullable; import org.mythicprojects.yetanothermessageslibrary.viewer.ViewerService; -public class VelocityMessageDispatcher> extends MessageDispatcher { +@SuppressWarnings("unchecked") +public class VelocityMessageDispatcher> + extends SimpleMessageDispatcher { public VelocityMessageDispatcher( @NotNull ViewerService viewerService, @@ -20,28 +22,21 @@ public VelocityMessageDispatcher( } @Contract("_ -> this") - public D broadcast(@NotNull ProxyServer proxy) { - this.broadcastPlayers(proxy); - this.console(proxy); - return (D) this; - } - - @Contract("_ -> this") - public D broadcastPlayers(@NotNull ProxyServer proxy) { + public DISPATCHER allPlayers(@NotNull ProxyServer proxy) { proxy.getAllPlayers().forEach(this::receiver); - return (D) this; + return (DISPATCHER) this; } @Contract("_ -> this") - public D console(@NotNull ProxyServer proxy) { + public DISPATCHER console(@NotNull ProxyServer proxy) { this.receiver(proxy.getConsoleCommandSource()); - return (D) this; + return (DISPATCHER) this; } @Contract("_ -> this") - public D permission(@NotNull String permission) { + public DISPATCHER permission(@NotNull String permission) { this.predicate(sender -> sender.hasPermission(permission)); - return (D) this; + return (DISPATCHER) this; } } From e540f28aabf1ec63f2a1d48d712257a2ab1ad13a Mon Sep 17 00:00:00 2001 From: Peridot Date: Sat, 30 Mar 2024 00:15:12 +0100 Subject: [PATCH 06/17] Utilize new MessageDispatcher API --- .../message/MessageDispatcher.java | 12 +++---- .../message/SimpleMessageDispatcher.java | 35 +++++++++---------- .../OkaeriPlaceholdersMessageDispatcher.java | 21 +++++++++++ .../PlaceholderAPIMessageDispatcher.java | 16 +++++++++ 4 files changed, 59 insertions(+), 25 deletions(-) create mode 100644 replaceable/okaeri/src/main/java/org/mythicprojects/yetanothermessageslibrary/replace/OkaeriPlaceholdersMessageDispatcher.java create mode 100644 replaceable/placeholderapi/src/main/java/org/mythicprojects/yetanothermessageslibrary/replace/PlaceholderAPIMessageDispatcher.java diff --git a/core/src/main/java/org/mythicprojects/yetanothermessageslibrary/message/MessageDispatcher.java b/core/src/main/java/org/mythicprojects/yetanothermessageslibrary/message/MessageDispatcher.java index 1f65e22..733ff1e 100644 --- a/core/src/main/java/org/mythicprojects/yetanothermessageslibrary/message/MessageDispatcher.java +++ b/core/src/main/java/org/mythicprojects/yetanothermessageslibrary/message/MessageDispatcher.java @@ -99,7 +99,7 @@ default DISPATCHER console() throws UnsupportedOperationException { * @return this dispatcher */ @Contract("_, _ -> this") - default DISPATCHER predicate(@NotNull Class receiverClass, @NotNull Predicate predicate) { + default DISPATCHER predicate(@NotNull Class receiverClass, @NotNull Predicate predicate) { return this.predicate(receiver -> { if (!receiverClass.isInstance(receiver)) { return false; @@ -190,14 +190,14 @@ default DISPATCHER withString(@NotNull Pattern placeholder, @NotNull Supplier this") DISPATCHER with( - @NotNull Class requiredType, + @Nullable Class requiredType, @NotNull TriFunction<@NotNull T, @NotNull Locale, @NotNull Map<@NotNull String, @Nullable Object>, ? extends @NotNull Replaceable> replacementSupplier, @Nullable TriFunction<@NotNull RECEIVER, @NotNull Locale, @NotNull Map<@NotNull String, @Nullable Object>, ? extends @NotNull Replaceable> fallbackSupplier ); @Contract("_, _ -> this") default DISPATCHER with( - @NotNull Class requiredType, + @Nullable Class requiredType, @NotNull TriFunction<@NotNull T, @NotNull Locale, @NotNull Map<@NotNull String, @Nullable Object>, ? extends @NotNull Replaceable> replacementSupplier ) { return this.with(requiredType, replacementSupplier, null); @@ -205,7 +205,7 @@ default DISPATCHER with( @Contract("_, _, _ -> this") default DISPATCHER with( - @NotNull Class requiredType, + @Nullable Class requiredType, @NotNull Function<@NotNull T, ? extends @NotNull Replaceable> replacementSupplier, @Nullable Function<@NotNull RECEIVER, ? extends @NotNull Replaceable> fallbackSupplier ) { @@ -220,7 +220,7 @@ default DISPATCHER with( @Contract("_, _ -> this") default DISPATCHER with( - @NotNull Class requiredType, + @Nullable Class requiredType, @NotNull Function<@NotNull T, ? extends @NotNull Replaceable> replacementSupplier ) { return this.with(requiredType, replacementSupplier, null); @@ -228,7 +228,7 @@ default DISPATCHER with( @Contract("_, _ -> this") default DISPATCHER with( - @NotNull Class requiredType, + @Nullable Class requiredType, @NotNull Collection> replacementSuppliers ) { replacementSuppliers.forEach(replacementSupplier -> this.with(requiredType, replacementSupplier)); diff --git a/core/src/main/java/org/mythicprojects/yetanothermessageslibrary/message/SimpleMessageDispatcher.java b/core/src/main/java/org/mythicprojects/yetanothermessageslibrary/message/SimpleMessageDispatcher.java index 9141408..85b6eb4 100644 --- a/core/src/main/java/org/mythicprojects/yetanothermessageslibrary/message/SimpleMessageDispatcher.java +++ b/core/src/main/java/org/mythicprojects/yetanothermessageslibrary/message/SimpleMessageDispatcher.java @@ -95,7 +95,7 @@ public DISPATCHER with(@NotNull Iterable replace @Contract("_, _, _ -> this") public DISPATCHER with( - @NotNull Class requiredType, + @Nullable Class requiredType, @NotNull TriFunction<@NotNull T, @NotNull Locale, @NotNull Map<@NotNull String, @Nullable Object>, ? extends @NotNull Replaceable> replacementSupplier, @Nullable TriFunction<@NotNull RECEIVER, @NotNull Locale, @NotNull Map<@NotNull String, @Nullable Object>, ? extends @NotNull Replaceable> fallbackSupplier ) { @@ -137,13 +137,11 @@ private void sendTo(@NotNull RECEIVER receiver) { List replacement = new ArrayList<>(this.replacements); this.replacementSuppliers .stream() - .map(supplier -> { - return supplier.supplyReplacement( - supplier.getEntityType().cast(receiver), - locale, - this.fields - ); - }) + .map(supplier -> supplier.supplyReplacement( + receiver, + locale, + this.fields + )) .filter(Objects::nonNull) .forEachOrdered(replacement::add); return replacement; @@ -156,7 +154,7 @@ private class ReplaceableSupplier { private final TriFunction<@NotNull RECEIVER, @NotNull Locale, @NotNull Map<@NotNull String, @Nullable Object>, ? extends @NotNull Replaceable> fallbackSupplier; private ReplaceableSupplier( - @NotNull Class entityType, + @Nullable Class entityType, @NotNull TriFunction<@NotNull T, @NotNull Locale, @NotNull Map<@NotNull String, @Nullable Object>, ? extends @NotNull Replaceable> supplier, @Nullable TriFunction<@NotNull RECEIVER, @NotNull Locale, @NotNull Map<@NotNull String, @Nullable Object>, ? extends @NotNull Replaceable> fallbackSupplier ) { @@ -165,19 +163,18 @@ private ReplaceableSupplier( this.fallbackSupplier = fallbackSupplier; } - public @NotNull Class getEntityType() { - return this.entityType; - } - public @Nullable Replaceable supplyReplacement(@NotNull RECEIVER receiver, @NotNull Locale locale, @NotNull Map<@NotNull String, @Nullable Object> fields) { - if (this.entityType.isInstance(receiver)) { - return this.supplier.apply(this.entityType.cast(receiver), locale, fields); + boolean needCast = this.entityType != null; + if (needCast && !this.entityType.isInstance(receiver)) { + return this.fallbackSupplier != null + ? this.fallbackSupplier.apply(receiver, locale, fields) + : null; } - if (this.fallbackSupplier == null) { - return null; - } - return this.fallbackSupplier.apply(receiver, locale, fields); + T entity = needCast + ? this.entityType.cast(receiver) + : (T) receiver; + return this.supplier.apply(entity, locale, fields); } } diff --git a/replaceable/okaeri/src/main/java/org/mythicprojects/yetanothermessageslibrary/replace/OkaeriPlaceholdersMessageDispatcher.java b/replaceable/okaeri/src/main/java/org/mythicprojects/yetanothermessageslibrary/replace/OkaeriPlaceholdersMessageDispatcher.java new file mode 100644 index 0000000..810b138 --- /dev/null +++ b/replaceable/okaeri/src/main/java/org/mythicprojects/yetanothermessageslibrary/replace/OkaeriPlaceholdersMessageDispatcher.java @@ -0,0 +1,21 @@ +package org.mythicprojects.yetanothermessageslibrary.replace; + +import eu.okaeri.placeholders.Placeholders; +import org.jetbrains.annotations.Contract; +import org.jetbrains.annotations.NotNull; +import org.mythicprojects.yetanothermessageslibrary.message.MessageDispatcher; + +public interface OkaeriPlaceholdersMessageDispatcher> + extends MessageDispatcher { + + @Contract("_ -> this") + default DISPATCHER okaeriPlaceholders(@NotNull Placeholders placeholder) { + return this.with(null, (receiver, locale, fields) -> new OkaeriPlaceholdersReplaceable(placeholder, context -> { + context.with("receiver", receiver); + context.with("locale", locale); + context.with(fields); + return context; + })); + }; + +} diff --git a/replaceable/placeholderapi/src/main/java/org/mythicprojects/yetanothermessageslibrary/replace/PlaceholderAPIMessageDispatcher.java b/replaceable/placeholderapi/src/main/java/org/mythicprojects/yetanothermessageslibrary/replace/PlaceholderAPIMessageDispatcher.java new file mode 100644 index 0000000..68b48ec --- /dev/null +++ b/replaceable/placeholderapi/src/main/java/org/mythicprojects/yetanothermessageslibrary/replace/PlaceholderAPIMessageDispatcher.java @@ -0,0 +1,16 @@ +package org.mythicprojects.yetanothermessageslibrary.replace; + +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; +import org.jetbrains.annotations.Contract; +import org.mythicprojects.yetanothermessageslibrary.message.MessageDispatcher; + +public interface PlaceholderAPIMessageDispatcher> + extends MessageDispatcher { + + @Contract(" -> this") + default DISPATCHER placeholderAPI() { + return this.with((Class) Player.class, player -> new PlaceholderAPIReplaceable((Player) player)); + } + +} From 9f92cb79cba4e99e1b8ea5f58d3ba7bc5fa53f39 Mon Sep 17 00:00:00 2001 From: Peridot Date: Sat, 30 Mar 2024 00:27:09 +0100 Subject: [PATCH 07/17] Add more javadocs --- .../message/MessageDispatcher.java | 25 ++++++++++++++++--- .../replace/Replaceable.java | 3 +++ .../replace/StringReplacer.java | 1 - .../replace/replacement/Replacement.java | 23 +++++++++-------- 4 files changed, 38 insertions(+), 14 deletions(-) diff --git a/core/src/main/java/org/mythicprojects/yetanothermessageslibrary/message/MessageDispatcher.java b/core/src/main/java/org/mythicprojects/yetanothermessageslibrary/message/MessageDispatcher.java index 733ff1e..5efec23 100644 --- a/core/src/main/java/org/mythicprojects/yetanothermessageslibrary/message/MessageDispatcher.java +++ b/core/src/main/java/org/mythicprojects/yetanothermessageslibrary/message/MessageDispatcher.java @@ -16,11 +16,19 @@ import org.mythicprojects.yetanothermessageslibrary.replace.replacement.Replacement; import org.mythicprojects.yetanothermessageslibrary.util.TriFunction; +/** + * MessageDispatcher is a class that allows you to send messages to receivers with placeholders and actions. + * It highly simplifies the process of sending messages to multiple receivers in multiple languages etc. + * + * @param the type of the receiver + * @param the type of the dispatcher itself + */ @SuppressWarnings("unchecked") public interface MessageDispatcher> { /** * Add a receiver to the dispatcher + * * @param receiver the receiver * @return this dispatcher */ @@ -29,6 +37,7 @@ public interface MessageDispatcher r /** * Add multiple receivers to the dispatcher + * * @param receivers the receivers * @return this dispatcher */ @@ -53,6 +63,7 @@ default DISPATCHER receivers(@NotNull RECEIVER... receivers) { /** * Add all players to the dispatcher + * * @return this dispatcher * @throws UnsupportedOperationException if the operation is not implemented in the current MessageDispatcher */ @@ -65,6 +76,7 @@ default DISPATCHER all() throws UnsupportedOperationException { /** * Add all players to the dispatcher + * * @return this dispatcher * @throws UnsupportedOperationException if the operation is not implemented in the current MessageDispatcher */ @@ -75,6 +87,7 @@ default DISPATCHER allPlayers() throws UnsupportedOperationException { /** * Add all viewers to the dispatcher + * * @return this dispatcher * @throws UnsupportedOperationException if the operation is not implemented in the current MessageDispatcher */ @@ -85,6 +98,7 @@ default DISPATCHER console() throws UnsupportedOperationException { /** * Add a predicate to the dispatcher + * * @param predicate the predicate * @return this dispatcher */ @@ -93,9 +107,10 @@ default DISPATCHER console() throws UnsupportedOperationException { /** * Add a predicate to the dispatcher for a specific receiver class + * * @param receiverClass the class of the receiver - * @param predicate the predicate - * @param the type of the receiver + * @param predicate the predicate + * @param the type of the receiver * @return this dispatcher */ @Contract("_, _ -> this") @@ -110,7 +125,8 @@ default DISPATCHER predicate(@NotNull Class receiverClas /** * Add a field to the dispatcher to use by the replacements - * @param key the key of the field + * + * @param key the key of the field * @param value the value of the field * @return this dispatcher */ @@ -119,6 +135,7 @@ default DISPATCHER predicate(@NotNull Class receiverClas /** * Add multiple fields to the dispatcher to use by the replacements + * * @param fields the fields * @return this dispatcher */ @@ -237,6 +254,7 @@ default DISPATCHER with( /** * Add an action to the dispatcher that will be executed after the message is sent + * * @param action the action * @return this dispatcher */ @@ -245,6 +263,7 @@ default DISPATCHER with( /** * Send the message to all receivers + * * @return this dispatcher */ @Contract(" -> this") diff --git a/tools/src/main/java/org/mythicprojects/yetanothermessageslibrary/replace/Replaceable.java b/tools/src/main/java/org/mythicprojects/yetanothermessageslibrary/replace/Replaceable.java index b8ed5c2..9f46290 100644 --- a/tools/src/main/java/org/mythicprojects/yetanothermessageslibrary/replace/Replaceable.java +++ b/tools/src/main/java/org/mythicprojects/yetanothermessageslibrary/replace/Replaceable.java @@ -7,6 +7,9 @@ public interface Replaceable { + /** + * @return whether this replaceable supports string replacement + */ default boolean supportsStringReplacement() { return false; } diff --git a/tools/src/main/java/org/mythicprojects/yetanothermessageslibrary/replace/StringReplacer.java b/tools/src/main/java/org/mythicprojects/yetanothermessageslibrary/replace/StringReplacer.java index ad95a81..b1f0506 100644 --- a/tools/src/main/java/org/mythicprojects/yetanothermessageslibrary/replace/StringReplacer.java +++ b/tools/src/main/java/org/mythicprojects/yetanothermessageslibrary/replace/StringReplacer.java @@ -22,7 +22,6 @@ public static String replace(@Nullable Locale locale, @Nullable String text, @No for (Replaceable replacement : replacements) { text = replacement.replace(locale, text); } - return text; } diff --git a/tools/src/main/java/org/mythicprojects/yetanothermessageslibrary/replace/replacement/Replacement.java b/tools/src/main/java/org/mythicprojects/yetanothermessageslibrary/replace/replacement/Replacement.java index 6b08ec5..34d6121 100644 --- a/tools/src/main/java/org/mythicprojects/yetanothermessageslibrary/replace/replacement/Replacement.java +++ b/tools/src/main/java/org/mythicprojects/yetanothermessageslibrary/replace/replacement/Replacement.java @@ -10,7 +10,6 @@ import java.util.regex.Pattern; import net.kyori.adventure.text.ComponentLike; import net.kyori.adventure.text.TextReplacementConfig; -import org.jetbrains.annotations.ApiStatus; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.mythicprojects.yetanothermessageslibrary.replace.Replaceable; @@ -23,22 +22,30 @@ public abstract class Replacement implements Replaceable { private final Object placeholder; protected Replacement(@NotNull Object placeholder) { - PlaceholderType placeholderType = PlaceholderType.match(placeholder.getClass()); + PlaceholderType placeholderType = PlaceholderType.findType(placeholder.getClass()); Validate.isTrue(placeholderType != null, "placeholder must be a String or Pattern"); this.placeholderType = placeholderType; this.placeholder = placeholder; } + /** + * @return the type of placeholder (String or Pattern) + */ protected final @NotNull Replacement.PlaceholderType getPlaceholderType() { return this.placeholderType; } + /** + * @return a new TextReplacementConfig.Builder that matches the placeholder + */ protected final @NotNull TextReplacementConfig.Builder newReplacementBuilder() { return this.placeholderType.newReplacementBuilder(this.placeholder); } - @ApiStatus.Internal - public final @NotNull Object getPlaceholder() { + /** + * @return the placeholder object to match (String or Pattern) + */ + protected final @NotNull Object getPlaceholder() { return this.placeholder; } @@ -79,14 +86,10 @@ protected enum PlaceholderType { this.replacementBuilderFactory = replacementBuilderFactory; } - public Class getClazz() { + private @NotNull Class getClazz() { return this.clazz; } - public boolean isInstance(Object obj) { - return this.clazz.isInstance(obj); - } - public @NotNull String replace(@NotNull String text, @NotNull Object placeholder, @NotNull String replacement) { return this.replacer.apply(text, placeholder, replacement); } @@ -95,7 +98,7 @@ public boolean isInstance(Object obj) { return this.replacementBuilderFactory.apply(placeholder); } - public static @Nullable Replacement.PlaceholderType match(@NotNull Class clazz) { + public static @Nullable Replacement.PlaceholderType findType(@NotNull Class clazz) { return PLACEHOLDERS_MAP.get(clazz); } From 8d2cb7b68245059bc1ccd3220e63d882fa175f56 Mon Sep 17 00:00:00 2001 From: Peridot Date: Sat, 1 Jun 2024 15:42:26 +0200 Subject: [PATCH 08/17] add VelocityMessageDispatcher#all --- .../message/VelocityMessageDispatcher.java | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/platform/velocity/src/main/java/org/mythicprojects/yetanothermessageslibrary/message/VelocityMessageDispatcher.java b/platform/velocity/src/main/java/org/mythicprojects/yetanothermessageslibrary/message/VelocityMessageDispatcher.java index a219ec2..c60a957 100644 --- a/platform/velocity/src/main/java/org/mythicprojects/yetanothermessageslibrary/message/VelocityMessageDispatcher.java +++ b/platform/velocity/src/main/java/org/mythicprojects/yetanothermessageslibrary/message/VelocityMessageDispatcher.java @@ -21,6 +21,13 @@ public VelocityMessageDispatcher( super(viewerService, localeSupplier, messageSupplier); } + @Contract("_ -> this") + public DISPATCHER all(@NotNull ProxyServer proxy) { + this.allPlayers(proxy); + this.console(proxy); + return (DISPATCHER) this; + } + @Contract("_ -> this") public DISPATCHER allPlayers(@NotNull ProxyServer proxy) { proxy.getAllPlayers().forEach(this::receiver); From dd44293feb3b39535e8c4217703153760daf31a6 Mon Sep 17 00:00:00 2001 From: Peridot Date: Sat, 1 Jun 2024 15:45:05 +0200 Subject: [PATCH 09/17] Mark #all #allPlayers and #console as deprecated in VelocityMessageDispatcher --- .../message/VelocityMessageDispatcher.java | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/platform/velocity/src/main/java/org/mythicprojects/yetanothermessageslibrary/message/VelocityMessageDispatcher.java b/platform/velocity/src/main/java/org/mythicprojects/yetanothermessageslibrary/message/VelocityMessageDispatcher.java index c60a957..f1d559e 100644 --- a/platform/velocity/src/main/java/org/mythicprojects/yetanothermessageslibrary/message/VelocityMessageDispatcher.java +++ b/platform/velocity/src/main/java/org/mythicprojects/yetanothermessageslibrary/message/VelocityMessageDispatcher.java @@ -21,6 +21,33 @@ public VelocityMessageDispatcher( super(viewerService, localeSupplier, messageSupplier); } + /** + * @deprecated use {@link #all(ProxyServer)} instead + */ + @Deprecated + @Override + public DISPATCHER all() throws UnsupportedOperationException { + return super.all(); + } + + /** + * @deprecated use {@link #allPlayers(ProxyServer)} instead + */ + @Deprecated + @Override + public DISPATCHER allPlayers() throws UnsupportedOperationException { + return super.allPlayers(); + } + + /** + * @deprecated use {@link #console(ProxyServer)} instead + */ + @Deprecated + @Override + public DISPATCHER console() throws UnsupportedOperationException { + return super.console(); + } + @Contract("_ -> this") public DISPATCHER all(@NotNull ProxyServer proxy) { this.allPlayers(proxy); From 6c0825fa45e963fd7c70497228c54901bf723daf Mon Sep 17 00:00:00 2001 From: Peridot Date: Thu, 8 Aug 2024 23:54:53 +0200 Subject: [PATCH 10/17] Convert ComponentTransformer to ComponentSerializer to allow serialzation of any Component type --- build.gradle | 1 - .../config/serdes/ComponentSerializer.java | 33 +++++++++++++++++++ .../config/serdes/ComponentTransformer.java | 33 ------------------- .../config/serdes/YAMLSerdes.java | 7 ++-- 4 files changed, 36 insertions(+), 38 deletions(-) create mode 100644 repository/okaeri/src/main/java/org/mythicprojects/yetanothermessageslibrary/config/serdes/ComponentSerializer.java delete mode 100644 repository/okaeri/src/main/java/org/mythicprojects/yetanothermessageslibrary/config/serdes/ComponentTransformer.java diff --git a/build.gradle b/build.gradle index 9e23811..27e08c3 100644 --- a/build.gradle +++ b/build.gradle @@ -43,7 +43,6 @@ subprojects { publications { libraries(MavenPublication) { artifactId = project.name.toLowerCase() - from components.java pom { diff --git a/repository/okaeri/src/main/java/org/mythicprojects/yetanothermessageslibrary/config/serdes/ComponentSerializer.java b/repository/okaeri/src/main/java/org/mythicprojects/yetanothermessageslibrary/config/serdes/ComponentSerializer.java new file mode 100644 index 0000000..ae12c72 --- /dev/null +++ b/repository/okaeri/src/main/java/org/mythicprojects/yetanothermessageslibrary/config/serdes/ComponentSerializer.java @@ -0,0 +1,33 @@ +package org.mythicprojects.yetanothermessageslibrary.config.serdes; + +import eu.okaeri.configs.schema.GenericsDeclaration; +import eu.okaeri.configs.serdes.DeserializationData; +import eu.okaeri.configs.serdes.ObjectSerializer; +import eu.okaeri.configs.serdes.SerializationData; +import net.kyori.adventure.text.Component; +import org.jetbrains.annotations.NotNull; + +public class ComponentSerializer implements ObjectSerializer { + + private final net.kyori.adventure.text.serializer.ComponentSerializer componentSerializer; + + public ComponentSerializer(@NotNull net.kyori.adventure.text.serializer.ComponentSerializer componentSerializer) { + this.componentSerializer = componentSerializer; + } + + @Override + public boolean supports(Class type) { + return Component.class.isAssignableFrom(type); + } + + @Override + public void serialize(Component object, SerializationData data, GenericsDeclaration generics) { + data.setValue(this.componentSerializer.serialize(object), String.class); + } + + @Override + public Component deserialize(DeserializationData data, GenericsDeclaration generics) { + return this.componentSerializer.deserialize(data.getValue(String.class)); + } + +} diff --git a/repository/okaeri/src/main/java/org/mythicprojects/yetanothermessageslibrary/config/serdes/ComponentTransformer.java b/repository/okaeri/src/main/java/org/mythicprojects/yetanothermessageslibrary/config/serdes/ComponentTransformer.java deleted file mode 100644 index 85835c3..0000000 --- a/repository/okaeri/src/main/java/org/mythicprojects/yetanothermessageslibrary/config/serdes/ComponentTransformer.java +++ /dev/null @@ -1,33 +0,0 @@ -package org.mythicprojects.yetanothermessageslibrary.config.serdes; - -import eu.okaeri.configs.schema.GenericsPair; -import eu.okaeri.configs.serdes.BidirectionalTransformer; -import eu.okaeri.configs.serdes.SerdesContext; -import net.kyori.adventure.text.Component; -import net.kyori.adventure.text.serializer.ComponentSerializer; -import org.jetbrains.annotations.NotNull; - -public class ComponentTransformer extends BidirectionalTransformer { - - private final ComponentSerializer componentSerializer; - - public ComponentTransformer(@NotNull ComponentSerializer componentSerializer) { - this.componentSerializer = componentSerializer; - } - - @Override - public GenericsPair getPair() { - return this.genericsPair(String.class, Component.class); - } - - @Override - public Component leftToRight(String data, SerdesContext serdesContext) { - return this.componentSerializer.deserialize(data); - } - - @Override - public String rightToLeft(Component data, SerdesContext serdesContext) { - return this.componentSerializer.serialize(data); - } - -} diff --git a/repository/okaeri/src/main/java/org/mythicprojects/yetanothermessageslibrary/config/serdes/YAMLSerdes.java b/repository/okaeri/src/main/java/org/mythicprojects/yetanothermessageslibrary/config/serdes/YAMLSerdes.java index 184a889..8caf85d 100644 --- a/repository/okaeri/src/main/java/org/mythicprojects/yetanothermessageslibrary/config/serdes/YAMLSerdes.java +++ b/repository/okaeri/src/main/java/org/mythicprojects/yetanothermessageslibrary/config/serdes/YAMLSerdes.java @@ -3,7 +3,6 @@ import eu.okaeri.configs.serdes.OkaeriSerdesPack; import eu.okaeri.configs.serdes.SerdesRegistry; import net.kyori.adventure.text.Component; -import net.kyori.adventure.text.serializer.ComponentSerializer; import org.jetbrains.annotations.NotNull; import org.mythicprojects.yetanothermessageslibrary.adventure.GlobalAdventureSerializer; import org.mythicprojects.yetanothermessageslibrary.config.serdes.holder.ActionBarHolderTransformer; @@ -14,9 +13,9 @@ public class YAMLSerdes implements OkaeriSerdesPack { - private final ComponentSerializer componentSerializer; + private final net.kyori.adventure.text.serializer.ComponentSerializer componentSerializer; - public YAMLSerdes(@NotNull ComponentSerializer componentSerializer) { + public YAMLSerdes(@NotNull net.kyori.adventure.text.serializer.ComponentSerializer componentSerializer) { this.componentSerializer = componentSerializer; } @@ -35,7 +34,7 @@ public void register(SerdesRegistry registry) { registry.register(new SendableMessageSerializer()); // Utilities - registry.register(new ComponentTransformer(this.componentSerializer)); + registry.register(new ComponentSerializer(this.componentSerializer)); registry.register(new KeyTransformer()); } From 00dfa6514ae886437d18f0877761adf039368d46 Mon Sep 17 00:00:00 2001 From: Peridot Date: Fri, 9 Aug 2024 00:06:03 +0200 Subject: [PATCH 11/17] Create StringReplaceable to different from standard Replaceable and prevent using wrong placeholder type --- .../MessageService.java | 5 +++-- .../replace/OkaeriPlaceholdersReplaceable.java | 7 +------ .../replace/PlaceholderAPIReplaceable.java | 7 +------ .../replace/Replaceable.java | 15 --------------- .../replace/StringReplaceable.java | 15 +++++++++++++++ .../replace/StringReplacer.java | 18 +++++++++--------- .../replacement/FunctionStringReplacement.java | 8 ++------ .../replacement/SimpleStringReplacement.java | 8 ++------ 8 files changed, 33 insertions(+), 50 deletions(-) create mode 100644 tools/src/main/java/org/mythicprojects/yetanothermessageslibrary/replace/StringReplaceable.java diff --git a/core/src/main/java/org/mythicprojects/yetanothermessageslibrary/MessageService.java b/core/src/main/java/org/mythicprojects/yetanothermessageslibrary/MessageService.java index 6a881d8..077af26 100644 --- a/core/src/main/java/org/mythicprojects/yetanothermessageslibrary/MessageService.java +++ b/core/src/main/java/org/mythicprojects/yetanothermessageslibrary/MessageService.java @@ -11,6 +11,7 @@ import org.mythicprojects.yetanothermessageslibrary.locale.LocaleProvider; import org.mythicprojects.yetanothermessageslibrary.replace.ComponentReplacer; import org.mythicprojects.yetanothermessageslibrary.replace.Replaceable; +import org.mythicprojects.yetanothermessageslibrary.replace.StringReplaceable; import org.mythicprojects.yetanothermessageslibrary.replace.StringReplacer; public interface MessageService { @@ -52,7 +53,7 @@ default T get(@NotNull Function<@NotNull REPOSITORY, @Nullable T> valueSuppl * @param replacements replacements to replace in message * @return message with replaced placeholders */ - default String getString(@Nullable Object entity, @NotNull Function<@NotNull REPOSITORY, @Nullable String> stringSupplier, @NotNull Replaceable... replacements) { + default String getString(@Nullable Object entity, @NotNull Function<@NotNull REPOSITORY, @Nullable String> stringSupplier, @NotNull StringReplaceable... replacements) { String string = this.get(entity, stringSupplier); if (string == null) { return null; @@ -90,7 +91,7 @@ default Component getComponent(@Nullable Object entity, @NotNull Function<@NotNu * @param replacements replacements to replace in message * @return message with replaced placeholders */ - default List getStringList(@Nullable Object entity, @NotNull Function<@NotNull REPOSITORY, @Nullable List> listSupplier, @NotNull Replaceable... replacements) { + default List getStringList(@Nullable Object entity, @NotNull Function<@NotNull REPOSITORY, @Nullable List> listSupplier, @NotNull StringReplaceable... replacements) { List stringList = this.get(entity, listSupplier); if (stringList == null || stringList.isEmpty()) { return stringList; diff --git a/replaceable/okaeri/src/main/java/org/mythicprojects/yetanothermessageslibrary/replace/OkaeriPlaceholdersReplaceable.java b/replaceable/okaeri/src/main/java/org/mythicprojects/yetanothermessageslibrary/replace/OkaeriPlaceholdersReplaceable.java index fc1704c..2be70f4 100644 --- a/replaceable/okaeri/src/main/java/org/mythicprojects/yetanothermessageslibrary/replace/OkaeriPlaceholdersReplaceable.java +++ b/replaceable/okaeri/src/main/java/org/mythicprojects/yetanothermessageslibrary/replace/OkaeriPlaceholdersReplaceable.java @@ -14,7 +14,7 @@ import org.mythicprojects.yetanothermessageslibrary.replace.replacement.ComponentReplacement; @ApiStatus.Experimental -public class OkaeriPlaceholdersReplaceable extends ComponentReplacement { +public class OkaeriPlaceholdersReplaceable extends ComponentReplacement implements StringReplaceable { private static final Pattern FIELD_PATTERN = Pattern.compile("\\{(?[^}]+)\\}"); @@ -30,11 +30,6 @@ public OkaeriPlaceholdersReplaceable( this.applyContexts = applyContexts; } - @Override - public boolean supportsStringReplacement() { - return super.supportsStringReplacement(); - } - @Override public @NotNull TextReplacementConfig getReplacement(@Nullable Locale locale) { return this.newReplacementBuilder() diff --git a/replaceable/placeholderapi/src/main/java/org/mythicprojects/yetanothermessageslibrary/replace/PlaceholderAPIReplaceable.java b/replaceable/placeholderapi/src/main/java/org/mythicprojects/yetanothermessageslibrary/replace/PlaceholderAPIReplaceable.java index 5ae406e..1115a21 100644 --- a/replaceable/placeholderapi/src/main/java/org/mythicprojects/yetanothermessageslibrary/replace/PlaceholderAPIReplaceable.java +++ b/replaceable/placeholderapi/src/main/java/org/mythicprojects/yetanothermessageslibrary/replace/PlaceholderAPIReplaceable.java @@ -11,7 +11,7 @@ import org.mythicprojects.yetanothermessageslibrary.adventure.GlobalAdventureSerializer; import org.mythicprojects.yetanothermessageslibrary.replace.replacement.ComponentReplacement; -public class PlaceholderAPIReplaceable extends ComponentReplacement { +public class PlaceholderAPIReplaceable extends ComponentReplacement implements StringReplaceable { private static final Pattern PLACEHOLDER_PATTERN = Pattern.compile("[%]([^%]+)[%]"); @@ -26,11 +26,6 @@ public PlaceholderAPIReplaceable(@Nullable Player player) { .build(); } - @Override - public boolean supportsStringReplacement() { - return true; - } - @Override public @NotNull TextReplacementConfig getReplacement(@Nullable Locale locale) { return this.replacement; diff --git a/tools/src/main/java/org/mythicprojects/yetanothermessageslibrary/replace/Replaceable.java b/tools/src/main/java/org/mythicprojects/yetanothermessageslibrary/replace/Replaceable.java index 9f46290..f08fbf8 100644 --- a/tools/src/main/java/org/mythicprojects/yetanothermessageslibrary/replace/Replaceable.java +++ b/tools/src/main/java/org/mythicprojects/yetanothermessageslibrary/replace/Replaceable.java @@ -7,25 +7,10 @@ public interface Replaceable { - /** - * @return whether this replaceable supports string replacement - */ - default boolean supportsStringReplacement() { - return false; - } - @NotNull Component replace(@Nullable Locale locale, @NotNull Component text); default @NotNull Component replace(@NotNull Component text) { return this.replace(null, text); } - default @NotNull String replace(@Nullable Locale locale, @NotNull String text) { - throw new UnsupportedOperationException("This replaceable does not support string replacement"); - } - - default @NotNull String replace(@NotNull String text) { - return this.replace(null, text); - } - } diff --git a/tools/src/main/java/org/mythicprojects/yetanothermessageslibrary/replace/StringReplaceable.java b/tools/src/main/java/org/mythicprojects/yetanothermessageslibrary/replace/StringReplaceable.java new file mode 100644 index 0000000..62f1b1c --- /dev/null +++ b/tools/src/main/java/org/mythicprojects/yetanothermessageslibrary/replace/StringReplaceable.java @@ -0,0 +1,15 @@ +package org.mythicprojects.yetanothermessageslibrary.replace; + +import java.util.Locale; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +public interface StringReplaceable extends Replaceable { + + @NotNull String replace(@Nullable Locale locale, @NotNull String text); + + default @NotNull String replace(@NotNull String text) { + return this.replace(null, text); + } + +} diff --git a/tools/src/main/java/org/mythicprojects/yetanothermessageslibrary/replace/StringReplacer.java b/tools/src/main/java/org/mythicprojects/yetanothermessageslibrary/replace/StringReplacer.java index b1f0506..662769e 100644 --- a/tools/src/main/java/org/mythicprojects/yetanothermessageslibrary/replace/StringReplacer.java +++ b/tools/src/main/java/org/mythicprojects/yetanothermessageslibrary/replace/StringReplacer.java @@ -14,34 +14,34 @@ private StringReplacer() { } @Contract(pure = true, value = "_, null, _, -> null") - public static String replace(@Nullable Locale locale, @Nullable String text, @NotNull Iterable replacements) { + public static String replace(@Nullable Locale locale, @Nullable String text, @NotNull Iterable replacements) { if (text == null || text.isEmpty()) { return text; } - for (Replaceable replacement : replacements) { + for (StringReplaceable replacement : replacements) { text = replacement.replace(locale, text); } return text; } @Contract(pure = true, value = "null, _, -> null") - public static String replace(@Nullable String text, @NotNull Iterable replacements) { + public static String replace(@Nullable String text, @NotNull Iterable replacements) { return replace(null, text, replacements); } @Contract(pure = true, value = "_, null, _, -> null") - public static String replace(@Nullable Locale locale, @Nullable String text, @NotNull Replaceable... replacements) { + public static String replace(@Nullable Locale locale, @Nullable String text, @NotNull StringReplaceable... replacements) { return replace(locale, text, Arrays.asList(replacements)); } @Contract(pure = true, value = "null, _, -> null") - public static String replace(@Nullable String text, @NotNull Replaceable... replacements) { + public static String replace(@Nullable String text, @NotNull StringReplaceable... replacements) { return replace(null, text, replacements); } @Contract(pure = true) - public static @NotNull List replace(@Nullable Locale locale, @NotNull Iterable text, @NotNull Iterable replacements) { + public static @NotNull List replace(@Nullable Locale locale, @NotNull Iterable text, @NotNull Iterable replacements) { List result = new ArrayList<>(); for (String line : text) { result.add(replace(locale, line, replacements)); @@ -50,17 +50,17 @@ public static String replace(@Nullable String text, @NotNull Replaceable... repl } @Contract(pure = true) - public static @NotNull List replace(@NotNull Iterable text, @NotNull Iterable replacements) { + public static @NotNull List replace(@NotNull Iterable text, @NotNull Iterable replacements) { return replace(null, text, replacements); } @Contract(pure = true) - public static @NotNull List replace(@NotNull Iterable text, @NotNull Replaceable... replacements) { + public static @NotNull List replace(@NotNull Iterable text, @NotNull StringReplaceable... replacements) { return replace(null, text, Arrays.asList(replacements)); } @Contract(pure = true) - public static @NotNull List replace(@Nullable Locale locale, @NotNull Iterable text, @NotNull Replaceable... replacements) { + public static @NotNull List replace(@Nullable Locale locale, @NotNull Iterable text, @NotNull StringReplaceable... replacements) { return replace(locale, text, Arrays.asList(replacements)); } diff --git a/tools/src/main/java/org/mythicprojects/yetanothermessageslibrary/replace/replacement/FunctionStringReplacement.java b/tools/src/main/java/org/mythicprojects/yetanothermessageslibrary/replace/replacement/FunctionStringReplacement.java index 785757b..ee219ed 100644 --- a/tools/src/main/java/org/mythicprojects/yetanothermessageslibrary/replace/replacement/FunctionStringReplacement.java +++ b/tools/src/main/java/org/mythicprojects/yetanothermessageslibrary/replace/replacement/FunctionStringReplacement.java @@ -6,8 +6,9 @@ import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.mythicprojects.yetanothermessageslibrary.adventure.GlobalAdventureSerializer; +import org.mythicprojects.yetanothermessageslibrary.replace.StringReplaceable; -public class FunctionStringReplacement extends FunctionReplacement { +public class FunctionStringReplacement extends FunctionReplacement implements StringReplaceable { private final Function<@Nullable Locale, ? extends @NotNull String> replacementFunction; @@ -21,11 +22,6 @@ protected FunctionStringReplacement(@NotNull Object placeholder, @NotNull Suppli this.replacementFunction = locale -> replacementSupplier.get(); } - @Override - public boolean supportsStringReplacement() { - return true; - } - @Override public @NotNull String replace(@Nullable Locale locale, @NotNull String text) { return this.getPlaceholderType().replace(text, this.getPlaceholder(), this.replacementFunction.apply(locale)); diff --git a/tools/src/main/java/org/mythicprojects/yetanothermessageslibrary/replace/replacement/SimpleStringReplacement.java b/tools/src/main/java/org/mythicprojects/yetanothermessageslibrary/replace/replacement/SimpleStringReplacement.java index 443932b..4c0d65d 100644 --- a/tools/src/main/java/org/mythicprojects/yetanothermessageslibrary/replace/replacement/SimpleStringReplacement.java +++ b/tools/src/main/java/org/mythicprojects/yetanothermessageslibrary/replace/replacement/SimpleStringReplacement.java @@ -4,8 +4,9 @@ import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.mythicprojects.yetanothermessageslibrary.adventure.GlobalAdventureSerializer; +import org.mythicprojects.yetanothermessageslibrary.replace.StringReplaceable; -public class SimpleStringReplacement extends SimpleReplacement { +public class SimpleStringReplacement extends SimpleReplacement implements StringReplaceable { private final String replacement; @@ -14,11 +15,6 @@ protected SimpleStringReplacement(@NotNull Object placeholder, @NotNull String r this.replacement = replacement; } - @Override - public boolean supportsStringReplacement() { - return true; - } - @Override public @NotNull String replace(@Nullable Locale locale, @NotNull String text) { return this.getPlaceholderType().replace(text, this.getPlaceholder(), this.replacement); From 72741615a66868085735d269ccbf2b0e505e11a6 Mon Sep 17 00:00:00 2001 From: Peridot Date: Sat, 24 Aug 2024 19:54:41 +0200 Subject: [PATCH 12/17] Don't unnecessarily change package --- README.md | 4 ++-- build.gradle | 2 +- .../MessageRepository.java | 5 +++++ .../MessageService.java | 12 +++++------ .../SendableMessageService.java | 10 +++++----- .../SimpleMessageService.java | 6 +++--- .../SimpleSendableMessageService.java | 12 +++++------ .../locale/LocaleProvider.java | 2 +- .../message/MessageDispatcher.java | 8 ++++---- .../message/MessageDispatcherFactory.java | 4 ++-- .../message/Sendable.java | 6 +++--- .../message/SendableMessage.java | 20 +++++++++---------- .../message/SimpleMessageDispatcher.java | 10 +++++----- .../message/holder/SendableHolder.java | 6 +++--- .../message/holder/impl/ActionBarHolder.java | 16 +++++++-------- .../message/holder/impl/BossBarHolder.java | 12 +++++------ .../message/holder/impl/ChatHolder.java | 14 ++++++------- .../message/holder/impl/SoundHolder.java | 8 ++++---- .../message/holder/impl/TitleHolder.java | 16 +++++++-------- .../viewer/Viewer.java | 2 +- .../viewer/ViewerDataSupplier.java | 2 +- .../viewer/ViewerFactory.java | 2 +- .../viewer/ViewerService.java | 2 +- .../MessageRepository.java | 5 ----- .../example/ExampleListener.java | 6 +++--- .../example/ExamplePlugin.java | 8 ++++---- .../complex/ExampleMessageDispatcher.java | 2 +- .../complex/ExampleMessageService.java | 4 ++-- .../example/config/MessageConfiguration.java | 2 +- .../BukkitMessageService.java | 10 +++++----- .../locale/BukkitPlayerLocaleProvider.java | 4 ++-- .../message/BukkitMessageDispatcher.java | 4 ++-- .../util/BukkitLocaleHelper.java | 2 +- .../viewer/BukkitViewerDataSupplier.java | 2 +- .../BungeeMessageService.java | 10 +++++----- .../message/BungeeMessageDispatcher.java | 4 ++-- .../viewer/BungeeViewerDataSupplier.java | 2 +- .../VelocityMessageService.java | 10 +++++----- .../message/VelocityMessageDispatcher.java | 4 ++-- .../viewer/VelocityViewerDataSupplier.java | 2 +- .../OkaeriPlaceholdersMessageDispatcher.java | 4 ++-- .../OkaeriPlaceholdersReplaceable.java | 6 +++--- .../PlaceholderAPIMessageDispatcher.java | 4 ++-- .../replace/PlaceholderAPIReplaceable.java | 6 +++--- .../config/serdes/ComponentSerializer.java | 2 +- .../config/serdes/KeyTransformer.java | 2 +- .../serdes/SendableMessageSerializer.java | 16 +++++++-------- .../config/serdes/YAMLSerdes.java | 16 +++++++-------- .../holder/ActionBarHolderTransformer.java | 4 ++-- .../holder/BossBarHolderSerializer.java | 4 ++-- .../config/serdes/holder/ChatSerializer.java | 4 ++-- .../serdes/holder/SoundHolderSerializer.java | 4 ++-- .../serdes/holder/TitleHolderSerializer.java | 4 ++-- .../adventure/GlobalAdventureSerializer.java | 6 +++--- .../adventure/NativeLegacySerializer.java | 2 +- .../NativeMiniMessageSerializer.java | 2 +- .../replace/ComponentReplacer.java | 2 +- .../replace/Replaceable.java | 2 +- .../replace/StringReplaceable.java | 2 +- .../replace/StringReplacer.java | 2 +- .../replacement/ComponentReplacement.java | 2 +- .../replacement/FunctionReplacement.java | 2 +- .../FunctionStringReplacement.java | 6 +++--- .../replace/replacement/Replacement.java | 8 ++++---- .../replacement/SimpleReplacement.java | 2 +- .../replacement/SimpleStringReplacement.java | 6 +++--- .../util/TriFunction.java | 2 +- .../util/Validate.java | 2 +- 68 files changed, 193 insertions(+), 193 deletions(-) create mode 100644 core/src/main/java/dev/peri/yetanothermessageslibrary/MessageRepository.java rename core/src/main/java/{org/mythicprojects => dev/peri}/yetanothermessageslibrary/MessageService.java (95%) rename core/src/main/java/{org/mythicprojects => dev/peri}/yetanothermessageslibrary/SendableMessageService.java (72%) rename core/src/main/java/{org/mythicprojects => dev/peri}/yetanothermessageslibrary/SimpleMessageService.java (93%) rename core/src/main/java/{org/mythicprojects => dev/peri}/yetanothermessageslibrary/SimpleSendableMessageService.java (77%) rename core/src/main/java/{org/mythicprojects => dev/peri}/yetanothermessageslibrary/locale/LocaleProvider.java (91%) rename core/src/main/java/{org/mythicprojects => dev/peri}/yetanothermessageslibrary/message/MessageDispatcher.java (97%) rename core/src/main/java/{org/mythicprojects => dev/peri}/yetanothermessageslibrary/message/MessageDispatcherFactory.java (80%) rename core/src/main/java/{org/mythicprojects => dev/peri}/yetanothermessageslibrary/message/Sendable.java (65%) rename core/src/main/java/{org/mythicprojects => dev/peri}/yetanothermessageslibrary/message/SendableMessage.java (92%) rename core/src/main/java/{org/mythicprojects => dev/peri}/yetanothermessageslibrary/message/SimpleMessageDispatcher.java (95%) rename core/src/main/java/{org/mythicprojects => dev/peri}/yetanothermessageslibrary/message/holder/SendableHolder.java (74%) rename core/src/main/java/{org/mythicprojects => dev/peri}/yetanothermessageslibrary/message/holder/impl/ActionBarHolder.java (68%) rename core/src/main/java/{org/mythicprojects => dev/peri}/yetanothermessageslibrary/message/holder/impl/BossBarHolder.java (91%) rename core/src/main/java/{org/mythicprojects => dev/peri}/yetanothermessageslibrary/message/holder/impl/ChatHolder.java (78%) rename core/src/main/java/{org/mythicprojects => dev/peri}/yetanothermessageslibrary/message/holder/impl/SoundHolder.java (77%) rename core/src/main/java/{org/mythicprojects => dev/peri}/yetanothermessageslibrary/message/holder/impl/TitleHolder.java (88%) rename core/src/main/java/{org/mythicprojects => dev/peri}/yetanothermessageslibrary/viewer/Viewer.java (97%) rename core/src/main/java/{org/mythicprojects => dev/peri}/yetanothermessageslibrary/viewer/ViewerDataSupplier.java (89%) rename core/src/main/java/{org/mythicprojects => dev/peri}/yetanothermessageslibrary/viewer/ViewerFactory.java (88%) rename core/src/main/java/{org/mythicprojects => dev/peri}/yetanothermessageslibrary/viewer/ViewerService.java (96%) delete mode 100644 core/src/main/java/org/mythicprojects/yetanothermessageslibrary/MessageRepository.java rename example/src/main/java/{org/mythicprojects => dev/peri}/yetanothermessageslibrary/example/ExampleListener.java (89%) rename example/src/main/java/{org/mythicprojects => dev/peri}/yetanothermessageslibrary/example/ExamplePlugin.java (90%) rename example/src/main/java/{org/mythicprojects => dev/peri}/yetanothermessageslibrary/example/complex/ExampleMessageDispatcher.java (94%) rename example/src/main/java/{org/mythicprojects => dev/peri}/yetanothermessageslibrary/example/complex/ExampleMessageService.java (85%) rename example/src/main/java/{org/mythicprojects => dev/peri}/yetanothermessageslibrary/example/config/MessageConfiguration.java (94%) rename platform/bukkit/src/main/java/{org/mythicprojects => dev/peri}/yetanothermessageslibrary/BukkitMessageService.java (74%) rename platform/bukkit/src/main/java/{org/mythicprojects => dev/peri}/yetanothermessageslibrary/locale/BukkitPlayerLocaleProvider.java (78%) rename platform/bukkit/src/main/java/{org/mythicprojects => dev/peri}/yetanothermessageslibrary/message/BukkitMessageDispatcher.java (90%) rename platform/bukkit/src/main/java/{org/mythicprojects => dev/peri}/yetanothermessageslibrary/util/BukkitLocaleHelper.java (95%) rename platform/bukkit/src/main/java/{org/mythicprojects => dev/peri}/yetanothermessageslibrary/viewer/BukkitViewerDataSupplier.java (94%) rename platform/bungee/src/main/java/{org/mythicprojects => dev/peri}/yetanothermessageslibrary/BungeeMessageService.java (74%) rename platform/bungee/src/main/java/{org/mythicprojects => dev/peri}/yetanothermessageslibrary/message/BungeeMessageDispatcher.java (90%) rename platform/bungee/src/main/java/{org/mythicprojects => dev/peri}/yetanothermessageslibrary/viewer/BungeeViewerDataSupplier.java (94%) rename platform/velocity/src/main/java/{org/mythicprojects => dev/peri}/yetanothermessageslibrary/VelocityMessageService.java (75%) rename platform/velocity/src/main/java/{org/mythicprojects => dev/peri}/yetanothermessageslibrary/message/VelocityMessageDispatcher.java (94%) rename platform/velocity/src/main/java/{org/mythicprojects => dev/peri}/yetanothermessageslibrary/viewer/VelocityViewerDataSupplier.java (92%) rename replaceable/okaeri/src/main/java/{org/mythicprojects => dev/peri}/yetanothermessageslibrary/replace/OkaeriPlaceholdersMessageDispatcher.java (83%) rename replaceable/okaeri/src/main/java/{org/mythicprojects => dev/peri}/yetanothermessageslibrary/replace/OkaeriPlaceholdersReplaceable.java (88%) rename replaceable/placeholderapi/src/main/java/{org/mythicprojects => dev/peri}/yetanothermessageslibrary/replace/PlaceholderAPIMessageDispatcher.java (79%) rename replaceable/placeholderapi/src/main/java/{org/mythicprojects => dev/peri}/yetanothermessageslibrary/replace/PlaceholderAPIReplaceable.java (85%) rename repository/okaeri/src/main/java/{org/mythicprojects => dev/peri}/yetanothermessageslibrary/config/serdes/ComponentSerializer.java (94%) rename repository/okaeri/src/main/java/{org/mythicprojects => dev/peri}/yetanothermessageslibrary/config/serdes/KeyTransformer.java (90%) rename repository/okaeri/src/main/java/{org/mythicprojects => dev/peri}/yetanothermessageslibrary/config/serdes/SendableMessageSerializer.java (81%) rename repository/okaeri/src/main/java/{org/mythicprojects => dev/peri}/yetanothermessageslibrary/config/serdes/YAMLSerdes.java (66%) rename repository/okaeri/src/main/java/{org/mythicprojects => dev/peri}/yetanothermessageslibrary/config/serdes/holder/ActionBarHolderTransformer.java (82%) rename repository/okaeri/src/main/java/{org/mythicprojects => dev/peri}/yetanothermessageslibrary/config/serdes/holder/BossBarHolderSerializer.java (93%) rename repository/okaeri/src/main/java/{org/mythicprojects => dev/peri}/yetanothermessageslibrary/config/serdes/holder/ChatSerializer.java (93%) rename repository/okaeri/src/main/java/{org/mythicprojects => dev/peri}/yetanothermessageslibrary/config/serdes/holder/SoundHolderSerializer.java (91%) rename repository/okaeri/src/main/java/{org/mythicprojects => dev/peri}/yetanothermessageslibrary/config/serdes/holder/TitleHolderSerializer.java (94%) rename tools/src/main/java/{org/mythicprojects => dev/peri}/yetanothermessageslibrary/adventure/GlobalAdventureSerializer.java (92%) rename tools/src/main/java/{org/mythicprojects => dev/peri}/yetanothermessageslibrary/adventure/NativeLegacySerializer.java (82%) rename tools/src/main/java/{org/mythicprojects => dev/peri}/yetanothermessageslibrary/adventure/NativeMiniMessageSerializer.java (80%) rename tools/src/main/java/{org/mythicprojects => dev/peri}/yetanothermessageslibrary/replace/ComponentReplacer.java (97%) rename tools/src/main/java/{org/mythicprojects => dev/peri}/yetanothermessageslibrary/replace/Replaceable.java (86%) rename tools/src/main/java/{org/mythicprojects => dev/peri}/yetanothermessageslibrary/replace/StringReplaceable.java (85%) rename tools/src/main/java/{org/mythicprojects => dev/peri}/yetanothermessageslibrary/replace/StringReplacer.java (97%) rename tools/src/main/java/{org/mythicprojects => dev/peri}/yetanothermessageslibrary/replace/replacement/ComponentReplacement.java (89%) rename tools/src/main/java/{org/mythicprojects => dev/peri}/yetanothermessageslibrary/replace/replacement/FunctionReplacement.java (93%) rename tools/src/main/java/{org/mythicprojects => dev/peri}/yetanothermessageslibrary/replace/replacement/FunctionStringReplacement.java (83%) rename tools/src/main/java/{org/mythicprojects => dev/peri}/yetanothermessageslibrary/replace/replacement/Replacement.java (95%) rename tools/src/main/java/{org/mythicprojects => dev/peri}/yetanothermessageslibrary/replace/replacement/SimpleReplacement.java (90%) rename tools/src/main/java/{org/mythicprojects => dev/peri}/yetanothermessageslibrary/replace/replacement/SimpleStringReplacement.java (73%) rename tools/src/main/java/{org/mythicprojects => dev/peri}/yetanothermessageslibrary/util/TriFunction.java (62%) rename tools/src/main/java/{org/mythicprojects => dev/peri}/yetanothermessageslibrary/util/Validate.java (89%) diff --git a/README.md b/README.md index 4c91f90..a818bfe 100644 --- a/README.md +++ b/README.md @@ -44,7 +44,7 @@ Implementations of `Replaceable` interface to easily replace placeholders in mes ```xml - org.mythicprojects.yetanothermessageslibrary + dev.peri.yetanothermessageslibrary [module] [version] @@ -68,6 +68,6 @@ repositories { ```groovy dependencies { - implementation 'org.mythicprojects.yetanothermessageslibrary:[module]:[version]' + implementation 'dev.peri.yetanothermessageslibrary:[module]:[version]' } ``` diff --git a/build.gradle b/build.gradle index 27e08c3..797e413 100644 --- a/build.gradle +++ b/build.gradle @@ -4,7 +4,7 @@ plugins { } allprojects { - group 'org.mythicprojects.yetanothermessageslibrary' + group 'dev.peri.yetanothermessageslibrary' version '7.0.0-SNAPSHOT' apply plugin: 'java-library' diff --git a/core/src/main/java/dev/peri/yetanothermessageslibrary/MessageRepository.java b/core/src/main/java/dev/peri/yetanothermessageslibrary/MessageRepository.java new file mode 100644 index 0000000..56f258f --- /dev/null +++ b/core/src/main/java/dev/peri/yetanothermessageslibrary/MessageRepository.java @@ -0,0 +1,5 @@ +package dev.peri.yetanothermessageslibrary; + +public interface MessageRepository { + +} diff --git a/core/src/main/java/org/mythicprojects/yetanothermessageslibrary/MessageService.java b/core/src/main/java/dev/peri/yetanothermessageslibrary/MessageService.java similarity index 95% rename from core/src/main/java/org/mythicprojects/yetanothermessageslibrary/MessageService.java rename to core/src/main/java/dev/peri/yetanothermessageslibrary/MessageService.java index 077af26..b7045ca 100644 --- a/core/src/main/java/org/mythicprojects/yetanothermessageslibrary/MessageService.java +++ b/core/src/main/java/dev/peri/yetanothermessageslibrary/MessageService.java @@ -1,5 +1,10 @@ -package org.mythicprojects.yetanothermessageslibrary; +package dev.peri.yetanothermessageslibrary; +import dev.peri.yetanothermessageslibrary.locale.LocaleProvider; +import dev.peri.yetanothermessageslibrary.replace.ComponentReplacer; +import dev.peri.yetanothermessageslibrary.replace.Replaceable; +import dev.peri.yetanothermessageslibrary.replace.StringReplaceable; +import dev.peri.yetanothermessageslibrary.replace.StringReplacer; import java.util.List; import java.util.Locale; import java.util.Map; @@ -8,11 +13,6 @@ import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Unmodifiable; -import org.mythicprojects.yetanothermessageslibrary.locale.LocaleProvider; -import org.mythicprojects.yetanothermessageslibrary.replace.ComponentReplacer; -import org.mythicprojects.yetanothermessageslibrary.replace.Replaceable; -import org.mythicprojects.yetanothermessageslibrary.replace.StringReplaceable; -import org.mythicprojects.yetanothermessageslibrary.replace.StringReplacer; public interface MessageService { diff --git a/core/src/main/java/org/mythicprojects/yetanothermessageslibrary/SendableMessageService.java b/core/src/main/java/dev/peri/yetanothermessageslibrary/SendableMessageService.java similarity index 72% rename from core/src/main/java/org/mythicprojects/yetanothermessageslibrary/SendableMessageService.java rename to core/src/main/java/dev/peri/yetanothermessageslibrary/SendableMessageService.java index f522304..1d0bc6a 100644 --- a/core/src/main/java/org/mythicprojects/yetanothermessageslibrary/SendableMessageService.java +++ b/core/src/main/java/dev/peri/yetanothermessageslibrary/SendableMessageService.java @@ -1,12 +1,12 @@ -package org.mythicprojects.yetanothermessageslibrary; +package dev.peri.yetanothermessageslibrary; +import dev.peri.yetanothermessageslibrary.message.MessageDispatcher; +import dev.peri.yetanothermessageslibrary.message.MessageDispatcherFactory; +import dev.peri.yetanothermessageslibrary.message.Sendable; +import dev.peri.yetanothermessageslibrary.viewer.ViewerService; import java.util.function.Function; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -import org.mythicprojects.yetanothermessageslibrary.message.MessageDispatcher; -import org.mythicprojects.yetanothermessageslibrary.message.MessageDispatcherFactory; -import org.mythicprojects.yetanothermessageslibrary.message.Sendable; -import org.mythicprojects.yetanothermessageslibrary.viewer.ViewerService; public interface SendableMessageService> extends MessageService { diff --git a/core/src/main/java/org/mythicprojects/yetanothermessageslibrary/SimpleMessageService.java b/core/src/main/java/dev/peri/yetanothermessageslibrary/SimpleMessageService.java similarity index 93% rename from core/src/main/java/org/mythicprojects/yetanothermessageslibrary/SimpleMessageService.java rename to core/src/main/java/dev/peri/yetanothermessageslibrary/SimpleMessageService.java index c9a922e..31737ad 100644 --- a/core/src/main/java/org/mythicprojects/yetanothermessageslibrary/SimpleMessageService.java +++ b/core/src/main/java/dev/peri/yetanothermessageslibrary/SimpleMessageService.java @@ -1,5 +1,7 @@ -package org.mythicprojects.yetanothermessageslibrary; +package dev.peri.yetanothermessageslibrary; +import dev.peri.yetanothermessageslibrary.locale.LocaleProvider; +import dev.peri.yetanothermessageslibrary.util.Validate; import java.util.Collection; import java.util.Collections; import java.util.LinkedHashMap; @@ -9,8 +11,6 @@ import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Unmodifiable; -import org.mythicprojects.yetanothermessageslibrary.locale.LocaleProvider; -import org.mythicprojects.yetanothermessageslibrary.util.Validate; public abstract class SimpleMessageService implements MessageService { diff --git a/core/src/main/java/org/mythicprojects/yetanothermessageslibrary/SimpleSendableMessageService.java b/core/src/main/java/dev/peri/yetanothermessageslibrary/SimpleSendableMessageService.java similarity index 77% rename from core/src/main/java/org/mythicprojects/yetanothermessageslibrary/SimpleSendableMessageService.java rename to core/src/main/java/dev/peri/yetanothermessageslibrary/SimpleSendableMessageService.java index a0945df..093c846 100644 --- a/core/src/main/java/org/mythicprojects/yetanothermessageslibrary/SimpleSendableMessageService.java +++ b/core/src/main/java/dev/peri/yetanothermessageslibrary/SimpleSendableMessageService.java @@ -1,11 +1,11 @@ -package org.mythicprojects.yetanothermessageslibrary; +package dev.peri.yetanothermessageslibrary; +import dev.peri.yetanothermessageslibrary.message.MessageDispatcher; +import dev.peri.yetanothermessageslibrary.message.MessageDispatcherFactory; +import dev.peri.yetanothermessageslibrary.viewer.ViewerDataSupplier; +import dev.peri.yetanothermessageslibrary.viewer.ViewerFactory; +import dev.peri.yetanothermessageslibrary.viewer.ViewerService; import org.jetbrains.annotations.NotNull; -import org.mythicprojects.yetanothermessageslibrary.message.MessageDispatcher; -import org.mythicprojects.yetanothermessageslibrary.message.MessageDispatcherFactory; -import org.mythicprojects.yetanothermessageslibrary.viewer.ViewerDataSupplier; -import org.mythicprojects.yetanothermessageslibrary.viewer.ViewerFactory; -import org.mythicprojects.yetanothermessageslibrary.viewer.ViewerService; public abstract class SimpleSendableMessageService> extends SimpleMessageService diff --git a/core/src/main/java/org/mythicprojects/yetanothermessageslibrary/locale/LocaleProvider.java b/core/src/main/java/dev/peri/yetanothermessageslibrary/locale/LocaleProvider.java similarity index 91% rename from core/src/main/java/org/mythicprojects/yetanothermessageslibrary/locale/LocaleProvider.java rename to core/src/main/java/dev/peri/yetanothermessageslibrary/locale/LocaleProvider.java index 17b7dbb..6c4115a 100644 --- a/core/src/main/java/org/mythicprojects/yetanothermessageslibrary/locale/LocaleProvider.java +++ b/core/src/main/java/dev/peri/yetanothermessageslibrary/locale/LocaleProvider.java @@ -1,4 +1,4 @@ -package org.mythicprojects.yetanothermessageslibrary.locale; +package dev.peri.yetanothermessageslibrary.locale; import java.util.Locale; import org.jetbrains.annotations.NotNull; diff --git a/core/src/main/java/org/mythicprojects/yetanothermessageslibrary/message/MessageDispatcher.java b/core/src/main/java/dev/peri/yetanothermessageslibrary/message/MessageDispatcher.java similarity index 97% rename from core/src/main/java/org/mythicprojects/yetanothermessageslibrary/message/MessageDispatcher.java rename to core/src/main/java/dev/peri/yetanothermessageslibrary/message/MessageDispatcher.java index 5efec23..f258e07 100644 --- a/core/src/main/java/org/mythicprojects/yetanothermessageslibrary/message/MessageDispatcher.java +++ b/core/src/main/java/dev/peri/yetanothermessageslibrary/message/MessageDispatcher.java @@ -1,5 +1,8 @@ -package org.mythicprojects.yetanothermessageslibrary.message; +package dev.peri.yetanothermessageslibrary.message; +import dev.peri.yetanothermessageslibrary.replace.Replaceable; +import dev.peri.yetanothermessageslibrary.replace.replacement.Replacement; +import dev.peri.yetanothermessageslibrary.util.TriFunction; import java.util.Collection; import java.util.Locale; import java.util.Map; @@ -12,9 +15,6 @@ import org.jetbrains.annotations.Contract; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -import org.mythicprojects.yetanothermessageslibrary.replace.Replaceable; -import org.mythicprojects.yetanothermessageslibrary.replace.replacement.Replacement; -import org.mythicprojects.yetanothermessageslibrary.util.TriFunction; /** * MessageDispatcher is a class that allows you to send messages to receivers with placeholders and actions. diff --git a/core/src/main/java/org/mythicprojects/yetanothermessageslibrary/message/MessageDispatcherFactory.java b/core/src/main/java/dev/peri/yetanothermessageslibrary/message/MessageDispatcherFactory.java similarity index 80% rename from core/src/main/java/org/mythicprojects/yetanothermessageslibrary/message/MessageDispatcherFactory.java rename to core/src/main/java/dev/peri/yetanothermessageslibrary/message/MessageDispatcherFactory.java index 7cbecd2..18679c8 100644 --- a/core/src/main/java/org/mythicprojects/yetanothermessageslibrary/message/MessageDispatcherFactory.java +++ b/core/src/main/java/dev/peri/yetanothermessageslibrary/message/MessageDispatcherFactory.java @@ -1,10 +1,10 @@ -package org.mythicprojects.yetanothermessageslibrary.message; +package dev.peri.yetanothermessageslibrary.message; +import dev.peri.yetanothermessageslibrary.viewer.ViewerService; import java.util.Locale; import java.util.function.Function; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -import org.mythicprojects.yetanothermessageslibrary.viewer.ViewerService; public interface MessageDispatcherFactory> { diff --git a/core/src/main/java/org/mythicprojects/yetanothermessageslibrary/message/Sendable.java b/core/src/main/java/dev/peri/yetanothermessageslibrary/message/Sendable.java similarity index 65% rename from core/src/main/java/org/mythicprojects/yetanothermessageslibrary/message/Sendable.java rename to core/src/main/java/dev/peri/yetanothermessageslibrary/message/Sendable.java index e1018c7..890786d 100644 --- a/core/src/main/java/org/mythicprojects/yetanothermessageslibrary/message/Sendable.java +++ b/core/src/main/java/dev/peri/yetanothermessageslibrary/message/Sendable.java @@ -1,10 +1,10 @@ -package org.mythicprojects.yetanothermessageslibrary.message; +package dev.peri.yetanothermessageslibrary.message; +import dev.peri.yetanothermessageslibrary.replace.Replaceable; +import dev.peri.yetanothermessageslibrary.viewer.Viewer; import java.util.Locale; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -import org.mythicprojects.yetanothermessageslibrary.replace.Replaceable; -import org.mythicprojects.yetanothermessageslibrary.viewer.Viewer; public interface Sendable { diff --git a/core/src/main/java/org/mythicprojects/yetanothermessageslibrary/message/SendableMessage.java b/core/src/main/java/dev/peri/yetanothermessageslibrary/message/SendableMessage.java similarity index 92% rename from core/src/main/java/org/mythicprojects/yetanothermessageslibrary/message/SendableMessage.java rename to core/src/main/java/dev/peri/yetanothermessageslibrary/message/SendableMessage.java index a595e0c..1940226 100644 --- a/core/src/main/java/org/mythicprojects/yetanothermessageslibrary/message/SendableMessage.java +++ b/core/src/main/java/dev/peri/yetanothermessageslibrary/message/SendableMessage.java @@ -1,5 +1,14 @@ -package org.mythicprojects.yetanothermessageslibrary.message; +package dev.peri.yetanothermessageslibrary.message; +import dev.peri.yetanothermessageslibrary.adventure.GlobalAdventureSerializer; +import dev.peri.yetanothermessageslibrary.message.holder.SendableHolder; +import dev.peri.yetanothermessageslibrary.message.holder.impl.ActionBarHolder; +import dev.peri.yetanothermessageslibrary.message.holder.impl.BossBarHolder; +import dev.peri.yetanothermessageslibrary.message.holder.impl.ChatHolder; +import dev.peri.yetanothermessageslibrary.message.holder.impl.SoundHolder; +import dev.peri.yetanothermessageslibrary.message.holder.impl.TitleHolder; +import dev.peri.yetanothermessageslibrary.replace.Replaceable; +import dev.peri.yetanothermessageslibrary.viewer.Viewer; import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; @@ -13,15 +22,6 @@ import org.jetbrains.annotations.Contract; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -import org.mythicprojects.yetanothermessageslibrary.adventure.GlobalAdventureSerializer; -import org.mythicprojects.yetanothermessageslibrary.message.holder.SendableHolder; -import org.mythicprojects.yetanothermessageslibrary.message.holder.impl.ActionBarHolder; -import org.mythicprojects.yetanothermessageslibrary.message.holder.impl.BossBarHolder; -import org.mythicprojects.yetanothermessageslibrary.message.holder.impl.ChatHolder; -import org.mythicprojects.yetanothermessageslibrary.message.holder.impl.SoundHolder; -import org.mythicprojects.yetanothermessageslibrary.message.holder.impl.TitleHolder; -import org.mythicprojects.yetanothermessageslibrary.replace.Replaceable; -import org.mythicprojects.yetanothermessageslibrary.viewer.Viewer; public class SendableMessage implements Sendable { diff --git a/core/src/main/java/org/mythicprojects/yetanothermessageslibrary/message/SimpleMessageDispatcher.java b/core/src/main/java/dev/peri/yetanothermessageslibrary/message/SimpleMessageDispatcher.java similarity index 95% rename from core/src/main/java/org/mythicprojects/yetanothermessageslibrary/message/SimpleMessageDispatcher.java rename to core/src/main/java/dev/peri/yetanothermessageslibrary/message/SimpleMessageDispatcher.java index 85b6eb4..6b9945e 100644 --- a/core/src/main/java/org/mythicprojects/yetanothermessageslibrary/message/SimpleMessageDispatcher.java +++ b/core/src/main/java/dev/peri/yetanothermessageslibrary/message/SimpleMessageDispatcher.java @@ -1,5 +1,9 @@ -package org.mythicprojects.yetanothermessageslibrary.message; +package dev.peri.yetanothermessageslibrary.message; +import dev.peri.yetanothermessageslibrary.replace.Replaceable; +import dev.peri.yetanothermessageslibrary.util.TriFunction; +import dev.peri.yetanothermessageslibrary.viewer.Viewer; +import dev.peri.yetanothermessageslibrary.viewer.ViewerService; import java.util.ArrayList; import java.util.Collections; import java.util.HashSet; @@ -15,10 +19,6 @@ import org.jetbrains.annotations.Contract; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -import org.mythicprojects.yetanothermessageslibrary.replace.Replaceable; -import org.mythicprojects.yetanothermessageslibrary.util.TriFunction; -import org.mythicprojects.yetanothermessageslibrary.viewer.Viewer; -import org.mythicprojects.yetanothermessageslibrary.viewer.ViewerService; @SuppressWarnings("unchecked") public class SimpleMessageDispatcher> diff --git a/core/src/main/java/org/mythicprojects/yetanothermessageslibrary/message/holder/SendableHolder.java b/core/src/main/java/dev/peri/yetanothermessageslibrary/message/holder/SendableHolder.java similarity index 74% rename from core/src/main/java/org/mythicprojects/yetanothermessageslibrary/message/holder/SendableHolder.java rename to core/src/main/java/dev/peri/yetanothermessageslibrary/message/holder/SendableHolder.java index 45d41d8..eef59bd 100644 --- a/core/src/main/java/org/mythicprojects/yetanothermessageslibrary/message/holder/SendableHolder.java +++ b/core/src/main/java/dev/peri/yetanothermessageslibrary/message/holder/SendableHolder.java @@ -1,9 +1,9 @@ -package org.mythicprojects.yetanothermessageslibrary.message.holder; +package dev.peri.yetanothermessageslibrary.message.holder; +import dev.peri.yetanothermessageslibrary.message.Sendable; +import dev.peri.yetanothermessageslibrary.replace.Replaceable; import org.jetbrains.annotations.Contract; import org.jetbrains.annotations.NotNull; -import org.mythicprojects.yetanothermessageslibrary.message.Sendable; -import org.mythicprojects.yetanothermessageslibrary.replace.Replaceable; public abstract class SendableHolder implements Sendable { diff --git a/core/src/main/java/org/mythicprojects/yetanothermessageslibrary/message/holder/impl/ActionBarHolder.java b/core/src/main/java/dev/peri/yetanothermessageslibrary/message/holder/impl/ActionBarHolder.java similarity index 68% rename from core/src/main/java/org/mythicprojects/yetanothermessageslibrary/message/holder/impl/ActionBarHolder.java rename to core/src/main/java/dev/peri/yetanothermessageslibrary/message/holder/impl/ActionBarHolder.java index fe463b7..d2dd3b4 100644 --- a/core/src/main/java/org/mythicprojects/yetanothermessageslibrary/message/holder/impl/ActionBarHolder.java +++ b/core/src/main/java/dev/peri/yetanothermessageslibrary/message/holder/impl/ActionBarHolder.java @@ -1,15 +1,15 @@ -package org.mythicprojects.yetanothermessageslibrary.message.holder.impl; - +package dev.peri.yetanothermessageslibrary.message.holder.impl; + +import dev.peri.yetanothermessageslibrary.adventure.GlobalAdventureSerializer; +import dev.peri.yetanothermessageslibrary.message.SendableMessage; +import dev.peri.yetanothermessageslibrary.message.holder.SendableHolder; +import dev.peri.yetanothermessageslibrary.replace.ComponentReplacer; +import dev.peri.yetanothermessageslibrary.replace.Replaceable; +import dev.peri.yetanothermessageslibrary.viewer.Viewer; import java.util.Locale; import net.kyori.adventure.text.Component; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -import org.mythicprojects.yetanothermessageslibrary.adventure.GlobalAdventureSerializer; -import org.mythicprojects.yetanothermessageslibrary.message.SendableMessage; -import org.mythicprojects.yetanothermessageslibrary.message.holder.SendableHolder; -import org.mythicprojects.yetanothermessageslibrary.replace.ComponentReplacer; -import org.mythicprojects.yetanothermessageslibrary.replace.Replaceable; -import org.mythicprojects.yetanothermessageslibrary.viewer.Viewer; public class ActionBarHolder extends SendableHolder { diff --git a/core/src/main/java/org/mythicprojects/yetanothermessageslibrary/message/holder/impl/BossBarHolder.java b/core/src/main/java/dev/peri/yetanothermessageslibrary/message/holder/impl/BossBarHolder.java similarity index 91% rename from core/src/main/java/org/mythicprojects/yetanothermessageslibrary/message/holder/impl/BossBarHolder.java rename to core/src/main/java/dev/peri/yetanothermessageslibrary/message/holder/impl/BossBarHolder.java index 3c0d72d..4e4ec00 100644 --- a/core/src/main/java/org/mythicprojects/yetanothermessageslibrary/message/holder/impl/BossBarHolder.java +++ b/core/src/main/java/dev/peri/yetanothermessageslibrary/message/holder/impl/BossBarHolder.java @@ -1,5 +1,10 @@ -package org.mythicprojects.yetanothermessageslibrary.message.holder.impl; +package dev.peri.yetanothermessageslibrary.message.holder.impl; +import dev.peri.yetanothermessageslibrary.adventure.GlobalAdventureSerializer; +import dev.peri.yetanothermessageslibrary.message.holder.SendableHolder; +import dev.peri.yetanothermessageslibrary.replace.ComponentReplacer; +import dev.peri.yetanothermessageslibrary.replace.Replaceable; +import dev.peri.yetanothermessageslibrary.viewer.Viewer; import java.util.Collection; import java.util.HashSet; import java.util.Locale; @@ -9,11 +14,6 @@ import org.jetbrains.annotations.Contract; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -import org.mythicprojects.yetanothermessageslibrary.adventure.GlobalAdventureSerializer; -import org.mythicprojects.yetanothermessageslibrary.message.holder.SendableHolder; -import org.mythicprojects.yetanothermessageslibrary.replace.ComponentReplacer; -import org.mythicprojects.yetanothermessageslibrary.replace.Replaceable; -import org.mythicprojects.yetanothermessageslibrary.viewer.Viewer; public class BossBarHolder extends SendableHolder { diff --git a/core/src/main/java/org/mythicprojects/yetanothermessageslibrary/message/holder/impl/ChatHolder.java b/core/src/main/java/dev/peri/yetanothermessageslibrary/message/holder/impl/ChatHolder.java similarity index 78% rename from core/src/main/java/org/mythicprojects/yetanothermessageslibrary/message/holder/impl/ChatHolder.java rename to core/src/main/java/dev/peri/yetanothermessageslibrary/message/holder/impl/ChatHolder.java index c558f0b..5dbb6a7 100644 --- a/core/src/main/java/org/mythicprojects/yetanothermessageslibrary/message/holder/impl/ChatHolder.java +++ b/core/src/main/java/dev/peri/yetanothermessageslibrary/message/holder/impl/ChatHolder.java @@ -1,5 +1,11 @@ -package org.mythicprojects.yetanothermessageslibrary.message.holder.impl; +package dev.peri.yetanothermessageslibrary.message.holder.impl; +import dev.peri.yetanothermessageslibrary.adventure.GlobalAdventureSerializer; +import dev.peri.yetanothermessageslibrary.message.SendableMessage; +import dev.peri.yetanothermessageslibrary.message.holder.SendableHolder; +import dev.peri.yetanothermessageslibrary.replace.ComponentReplacer; +import dev.peri.yetanothermessageslibrary.replace.Replaceable; +import dev.peri.yetanothermessageslibrary.viewer.Viewer; import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; @@ -9,12 +15,6 @@ import net.kyori.adventure.text.Component; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -import org.mythicprojects.yetanothermessageslibrary.adventure.GlobalAdventureSerializer; -import org.mythicprojects.yetanothermessageslibrary.message.SendableMessage; -import org.mythicprojects.yetanothermessageslibrary.message.holder.SendableHolder; -import org.mythicprojects.yetanothermessageslibrary.replace.ComponentReplacer; -import org.mythicprojects.yetanothermessageslibrary.replace.Replaceable; -import org.mythicprojects.yetanothermessageslibrary.viewer.Viewer; public class ChatHolder extends SendableHolder { diff --git a/core/src/main/java/org/mythicprojects/yetanothermessageslibrary/message/holder/impl/SoundHolder.java b/core/src/main/java/dev/peri/yetanothermessageslibrary/message/holder/impl/SoundHolder.java similarity index 77% rename from core/src/main/java/org/mythicprojects/yetanothermessageslibrary/message/holder/impl/SoundHolder.java rename to core/src/main/java/dev/peri/yetanothermessageslibrary/message/holder/impl/SoundHolder.java index b6c658f..393c838 100644 --- a/core/src/main/java/org/mythicprojects/yetanothermessageslibrary/message/holder/impl/SoundHolder.java +++ b/core/src/main/java/dev/peri/yetanothermessageslibrary/message/holder/impl/SoundHolder.java @@ -1,12 +1,12 @@ -package org.mythicprojects.yetanothermessageslibrary.message.holder.impl; +package dev.peri.yetanothermessageslibrary.message.holder.impl; +import dev.peri.yetanothermessageslibrary.message.holder.SendableHolder; +import dev.peri.yetanothermessageslibrary.replace.Replaceable; +import dev.peri.yetanothermessageslibrary.viewer.Viewer; import java.util.Locale; import net.kyori.adventure.sound.Sound; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -import org.mythicprojects.yetanothermessageslibrary.message.holder.SendableHolder; -import org.mythicprojects.yetanothermessageslibrary.replace.Replaceable; -import org.mythicprojects.yetanothermessageslibrary.viewer.Viewer; public class SoundHolder extends SendableHolder { diff --git a/core/src/main/java/org/mythicprojects/yetanothermessageslibrary/message/holder/impl/TitleHolder.java b/core/src/main/java/dev/peri/yetanothermessageslibrary/message/holder/impl/TitleHolder.java similarity index 88% rename from core/src/main/java/org/mythicprojects/yetanothermessageslibrary/message/holder/impl/TitleHolder.java rename to core/src/main/java/dev/peri/yetanothermessageslibrary/message/holder/impl/TitleHolder.java index c85c7b0..bf37bd1 100644 --- a/core/src/main/java/org/mythicprojects/yetanothermessageslibrary/message/holder/impl/TitleHolder.java +++ b/core/src/main/java/dev/peri/yetanothermessageslibrary/message/holder/impl/TitleHolder.java @@ -1,5 +1,11 @@ -package org.mythicprojects.yetanothermessageslibrary.message.holder.impl; - +package dev.peri.yetanothermessageslibrary.message.holder.impl; + +import dev.peri.yetanothermessageslibrary.adventure.GlobalAdventureSerializer; +import dev.peri.yetanothermessageslibrary.message.SendableMessage; +import dev.peri.yetanothermessageslibrary.message.holder.SendableHolder; +import dev.peri.yetanothermessageslibrary.replace.ComponentReplacer; +import dev.peri.yetanothermessageslibrary.replace.Replaceable; +import dev.peri.yetanothermessageslibrary.viewer.Viewer; import java.util.Locale; import net.kyori.adventure.text.Component; import net.kyori.adventure.title.Title; @@ -8,12 +14,6 @@ import org.jetbrains.annotations.Contract; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -import org.mythicprojects.yetanothermessageslibrary.adventure.GlobalAdventureSerializer; -import org.mythicprojects.yetanothermessageslibrary.message.SendableMessage; -import org.mythicprojects.yetanothermessageslibrary.message.holder.SendableHolder; -import org.mythicprojects.yetanothermessageslibrary.replace.ComponentReplacer; -import org.mythicprojects.yetanothermessageslibrary.replace.Replaceable; -import org.mythicprojects.yetanothermessageslibrary.viewer.Viewer; public class TitleHolder extends SendableHolder { diff --git a/core/src/main/java/org/mythicprojects/yetanothermessageslibrary/viewer/Viewer.java b/core/src/main/java/dev/peri/yetanothermessageslibrary/viewer/Viewer.java similarity index 97% rename from core/src/main/java/org/mythicprojects/yetanothermessageslibrary/viewer/Viewer.java rename to core/src/main/java/dev/peri/yetanothermessageslibrary/viewer/Viewer.java index e43c831..f3e6161 100644 --- a/core/src/main/java/org/mythicprojects/yetanothermessageslibrary/viewer/Viewer.java +++ b/core/src/main/java/dev/peri/yetanothermessageslibrary/viewer/Viewer.java @@ -1,4 +1,4 @@ -package org.mythicprojects.yetanothermessageslibrary.viewer; +package dev.peri.yetanothermessageslibrary.viewer; import java.util.Collection; import java.util.Set; diff --git a/core/src/main/java/org/mythicprojects/yetanothermessageslibrary/viewer/ViewerDataSupplier.java b/core/src/main/java/dev/peri/yetanothermessageslibrary/viewer/ViewerDataSupplier.java similarity index 89% rename from core/src/main/java/org/mythicprojects/yetanothermessageslibrary/viewer/ViewerDataSupplier.java rename to core/src/main/java/dev/peri/yetanothermessageslibrary/viewer/ViewerDataSupplier.java index baff659..4d71078 100644 --- a/core/src/main/java/org/mythicprojects/yetanothermessageslibrary/viewer/ViewerDataSupplier.java +++ b/core/src/main/java/dev/peri/yetanothermessageslibrary/viewer/ViewerDataSupplier.java @@ -1,4 +1,4 @@ -package org.mythicprojects.yetanothermessageslibrary.viewer; +package dev.peri.yetanothermessageslibrary.viewer; import java.util.UUID; import net.kyori.adventure.audience.Audience; diff --git a/core/src/main/java/org/mythicprojects/yetanothermessageslibrary/viewer/ViewerFactory.java b/core/src/main/java/dev/peri/yetanothermessageslibrary/viewer/ViewerFactory.java similarity index 88% rename from core/src/main/java/org/mythicprojects/yetanothermessageslibrary/viewer/ViewerFactory.java rename to core/src/main/java/dev/peri/yetanothermessageslibrary/viewer/ViewerFactory.java index 6bf23d0..1d3dce5 100644 --- a/core/src/main/java/org/mythicprojects/yetanothermessageslibrary/viewer/ViewerFactory.java +++ b/core/src/main/java/dev/peri/yetanothermessageslibrary/viewer/ViewerFactory.java @@ -1,4 +1,4 @@ -package org.mythicprojects.yetanothermessageslibrary.viewer; +package dev.peri.yetanothermessageslibrary.viewer; import java.util.function.BiConsumer; import net.kyori.adventure.audience.Audience; diff --git a/core/src/main/java/org/mythicprojects/yetanothermessageslibrary/viewer/ViewerService.java b/core/src/main/java/dev/peri/yetanothermessageslibrary/viewer/ViewerService.java similarity index 96% rename from core/src/main/java/org/mythicprojects/yetanothermessageslibrary/viewer/ViewerService.java rename to core/src/main/java/dev/peri/yetanothermessageslibrary/viewer/ViewerService.java index 20977f3..da0bf9e 100644 --- a/core/src/main/java/org/mythicprojects/yetanothermessageslibrary/viewer/ViewerService.java +++ b/core/src/main/java/dev/peri/yetanothermessageslibrary/viewer/ViewerService.java @@ -1,4 +1,4 @@ -package org.mythicprojects.yetanothermessageslibrary.viewer; +package dev.peri.yetanothermessageslibrary.viewer; import java.util.Map; import java.util.UUID; diff --git a/core/src/main/java/org/mythicprojects/yetanothermessageslibrary/MessageRepository.java b/core/src/main/java/org/mythicprojects/yetanothermessageslibrary/MessageRepository.java deleted file mode 100644 index b78c292..0000000 --- a/core/src/main/java/org/mythicprojects/yetanothermessageslibrary/MessageRepository.java +++ /dev/null @@ -1,5 +0,0 @@ -package org.mythicprojects.yetanothermessageslibrary; - -public interface MessageRepository { - -} diff --git a/example/src/main/java/org/mythicprojects/yetanothermessageslibrary/example/ExampleListener.java b/example/src/main/java/dev/peri/yetanothermessageslibrary/example/ExampleListener.java similarity index 89% rename from example/src/main/java/org/mythicprojects/yetanothermessageslibrary/example/ExampleListener.java rename to example/src/main/java/dev/peri/yetanothermessageslibrary/example/ExampleListener.java index 096d66b..7534d35 100644 --- a/example/src/main/java/org/mythicprojects/yetanothermessageslibrary/example/ExampleListener.java +++ b/example/src/main/java/dev/peri/yetanothermessageslibrary/example/ExampleListener.java @@ -1,5 +1,7 @@ -package org.mythicprojects.yetanothermessageslibrary.example; +package dev.peri.yetanothermessageslibrary.example; +import dev.peri.yetanothermessageslibrary.example.complex.ExampleMessageDispatcher; +import dev.peri.yetanothermessageslibrary.example.config.MessageConfiguration; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; @@ -8,8 +10,6 @@ import org.bukkit.event.player.PlayerMoveEvent; import org.bukkit.event.player.PlayerTeleportEvent; import org.mythicprojects.yetanothermessageslibrary.SendableMessageService; -import org.mythicprojects.yetanothermessageslibrary.example.complex.ExampleMessageDispatcher; -import org.mythicprojects.yetanothermessageslibrary.example.config.MessageConfiguration; import org.mythicprojects.yetanothermessageslibrary.message.BukkitMessageDispatcher; public class ExampleListener implements Listener { diff --git a/example/src/main/java/org/mythicprojects/yetanothermessageslibrary/example/ExamplePlugin.java b/example/src/main/java/dev/peri/yetanothermessageslibrary/example/ExamplePlugin.java similarity index 90% rename from example/src/main/java/org/mythicprojects/yetanothermessageslibrary/example/ExamplePlugin.java rename to example/src/main/java/dev/peri/yetanothermessageslibrary/example/ExamplePlugin.java index 6126d66..8359c33 100644 --- a/example/src/main/java/org/mythicprojects/yetanothermessageslibrary/example/ExamplePlugin.java +++ b/example/src/main/java/dev/peri/yetanothermessageslibrary/example/ExamplePlugin.java @@ -1,5 +1,8 @@ -package org.mythicprojects.yetanothermessageslibrary.example; +package dev.peri.yetanothermessageslibrary.example; +import dev.peri.yetanothermessageslibrary.example.complex.ExampleMessageDispatcher; +import dev.peri.yetanothermessageslibrary.example.complex.ExampleMessageService; +import dev.peri.yetanothermessageslibrary.example.config.MessageConfiguration; import eu.okaeri.configs.ConfigManager; import eu.okaeri.configs.yaml.bukkit.YamlBukkitConfigurer; import java.io.File; @@ -12,9 +15,6 @@ import org.mythicprojects.yetanothermessageslibrary.SendableMessageService; import org.mythicprojects.yetanothermessageslibrary.adventure.GlobalAdventureSerializer; import org.mythicprojects.yetanothermessageslibrary.config.serdes.YAMLSerdes; -import org.mythicprojects.yetanothermessageslibrary.example.complex.ExampleMessageDispatcher; -import org.mythicprojects.yetanothermessageslibrary.example.complex.ExampleMessageService; -import org.mythicprojects.yetanothermessageslibrary.example.config.MessageConfiguration; import org.mythicprojects.yetanothermessageslibrary.locale.BukkitPlayerLocaleProvider; import org.mythicprojects.yetanothermessageslibrary.message.BukkitMessageDispatcher; import org.mythicprojects.yetanothermessageslibrary.viewer.BukkitViewerDataSupplier; diff --git a/example/src/main/java/org/mythicprojects/yetanothermessageslibrary/example/complex/ExampleMessageDispatcher.java b/example/src/main/java/dev/peri/yetanothermessageslibrary/example/complex/ExampleMessageDispatcher.java similarity index 94% rename from example/src/main/java/org/mythicprojects/yetanothermessageslibrary/example/complex/ExampleMessageDispatcher.java rename to example/src/main/java/dev/peri/yetanothermessageslibrary/example/complex/ExampleMessageDispatcher.java index 977723b..9023c74 100644 --- a/example/src/main/java/org/mythicprojects/yetanothermessageslibrary/example/complex/ExampleMessageDispatcher.java +++ b/example/src/main/java/dev/peri/yetanothermessageslibrary/example/complex/ExampleMessageDispatcher.java @@ -1,4 +1,4 @@ -package org.mythicprojects.yetanothermessageslibrary.example.complex; +package dev.peri.yetanothermessageslibrary.example.complex; import java.util.Locale; import java.util.function.Function; diff --git a/example/src/main/java/org/mythicprojects/yetanothermessageslibrary/example/complex/ExampleMessageService.java b/example/src/main/java/dev/peri/yetanothermessageslibrary/example/complex/ExampleMessageService.java similarity index 85% rename from example/src/main/java/org/mythicprojects/yetanothermessageslibrary/example/complex/ExampleMessageService.java rename to example/src/main/java/dev/peri/yetanothermessageslibrary/example/complex/ExampleMessageService.java index 522629b..5643f5e 100644 --- a/example/src/main/java/org/mythicprojects/yetanothermessageslibrary/example/complex/ExampleMessageService.java +++ b/example/src/main/java/dev/peri/yetanothermessageslibrary/example/complex/ExampleMessageService.java @@ -1,9 +1,9 @@ -package org.mythicprojects.yetanothermessageslibrary.example.complex; +package dev.peri.yetanothermessageslibrary.example.complex; +import dev.peri.yetanothermessageslibrary.example.config.MessageConfiguration; import org.bukkit.command.CommandSender; import org.jetbrains.annotations.NotNull; import org.mythicprojects.yetanothermessageslibrary.SimpleSendableMessageService; -import org.mythicprojects.yetanothermessageslibrary.example.config.MessageConfiguration; import org.mythicprojects.yetanothermessageslibrary.message.MessageDispatcherFactory; import org.mythicprojects.yetanothermessageslibrary.viewer.ViewerDataSupplier; import org.mythicprojects.yetanothermessageslibrary.viewer.ViewerFactory; diff --git a/example/src/main/java/org/mythicprojects/yetanothermessageslibrary/example/config/MessageConfiguration.java b/example/src/main/java/dev/peri/yetanothermessageslibrary/example/config/MessageConfiguration.java similarity index 94% rename from example/src/main/java/org/mythicprojects/yetanothermessageslibrary/example/config/MessageConfiguration.java rename to example/src/main/java/dev/peri/yetanothermessageslibrary/example/config/MessageConfiguration.java index 7d9416f..3b93305 100644 --- a/example/src/main/java/org/mythicprojects/yetanothermessageslibrary/example/config/MessageConfiguration.java +++ b/example/src/main/java/dev/peri/yetanothermessageslibrary/example/config/MessageConfiguration.java @@ -1,4 +1,4 @@ -package org.mythicprojects.yetanothermessageslibrary.example.config; +package dev.peri.yetanothermessageslibrary.example.config; import eu.okaeri.configs.OkaeriConfig; import net.kyori.adventure.bossbar.BossBar; diff --git a/platform/bukkit/src/main/java/org/mythicprojects/yetanothermessageslibrary/BukkitMessageService.java b/platform/bukkit/src/main/java/dev/peri/yetanothermessageslibrary/BukkitMessageService.java similarity index 74% rename from platform/bukkit/src/main/java/org/mythicprojects/yetanothermessageslibrary/BukkitMessageService.java rename to platform/bukkit/src/main/java/dev/peri/yetanothermessageslibrary/BukkitMessageService.java index 3ff3734..dde6dca 100644 --- a/platform/bukkit/src/main/java/org/mythicprojects/yetanothermessageslibrary/BukkitMessageService.java +++ b/platform/bukkit/src/main/java/dev/peri/yetanothermessageslibrary/BukkitMessageService.java @@ -1,14 +1,14 @@ -package org.mythicprojects.yetanothermessageslibrary; +package dev.peri.yetanothermessageslibrary; +import dev.peri.yetanothermessageslibrary.message.BukkitMessageDispatcher; +import dev.peri.yetanothermessageslibrary.viewer.BukkitViewerDataSupplier; +import dev.peri.yetanothermessageslibrary.viewer.ViewerFactory; +import dev.peri.yetanothermessageslibrary.viewer.ViewerService; import java.util.function.BiConsumer; import net.kyori.adventure.platform.bukkit.BukkitAudiences; import org.bukkit.command.CommandSender; import org.bukkit.plugin.java.JavaPlugin; import org.jetbrains.annotations.NotNull; -import org.mythicprojects.yetanothermessageslibrary.message.BukkitMessageDispatcher; -import org.mythicprojects.yetanothermessageslibrary.viewer.BukkitViewerDataSupplier; -import org.mythicprojects.yetanothermessageslibrary.viewer.ViewerFactory; -import org.mythicprojects.yetanothermessageslibrary.viewer.ViewerService; public class BukkitMessageService extends SimpleSendableMessageService> { diff --git a/platform/bukkit/src/main/java/org/mythicprojects/yetanothermessageslibrary/locale/BukkitPlayerLocaleProvider.java b/platform/bukkit/src/main/java/dev/peri/yetanothermessageslibrary/locale/BukkitPlayerLocaleProvider.java similarity index 78% rename from platform/bukkit/src/main/java/org/mythicprojects/yetanothermessageslibrary/locale/BukkitPlayerLocaleProvider.java rename to platform/bukkit/src/main/java/dev/peri/yetanothermessageslibrary/locale/BukkitPlayerLocaleProvider.java index a628c60..e0ae000 100644 --- a/platform/bukkit/src/main/java/org/mythicprojects/yetanothermessageslibrary/locale/BukkitPlayerLocaleProvider.java +++ b/platform/bukkit/src/main/java/dev/peri/yetanothermessageslibrary/locale/BukkitPlayerLocaleProvider.java @@ -1,10 +1,10 @@ -package org.mythicprojects.yetanothermessageslibrary.locale; +package dev.peri.yetanothermessageslibrary.locale; +import dev.peri.yetanothermessageslibrary.util.BukkitLocaleHelper; import java.util.Locale; import org.bukkit.entity.Player; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -import org.mythicprojects.yetanothermessageslibrary.util.BukkitLocaleHelper; public class BukkitPlayerLocaleProvider implements LocaleProvider { diff --git a/platform/bukkit/src/main/java/org/mythicprojects/yetanothermessageslibrary/message/BukkitMessageDispatcher.java b/platform/bukkit/src/main/java/dev/peri/yetanothermessageslibrary/message/BukkitMessageDispatcher.java similarity index 90% rename from platform/bukkit/src/main/java/org/mythicprojects/yetanothermessageslibrary/message/BukkitMessageDispatcher.java rename to platform/bukkit/src/main/java/dev/peri/yetanothermessageslibrary/message/BukkitMessageDispatcher.java index bccfeae..4c5ec41 100644 --- a/platform/bukkit/src/main/java/org/mythicprojects/yetanothermessageslibrary/message/BukkitMessageDispatcher.java +++ b/platform/bukkit/src/main/java/dev/peri/yetanothermessageslibrary/message/BukkitMessageDispatcher.java @@ -1,5 +1,6 @@ -package org.mythicprojects.yetanothermessageslibrary.message; +package dev.peri.yetanothermessageslibrary.message; +import dev.peri.yetanothermessageslibrary.viewer.ViewerService; import java.util.Locale; import java.util.function.Function; import org.bukkit.Bukkit; @@ -7,7 +8,6 @@ import org.jetbrains.annotations.Contract; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -import org.mythicprojects.yetanothermessageslibrary.viewer.ViewerService; @SuppressWarnings("unchecked") public class BukkitMessageDispatcher> diff --git a/platform/bukkit/src/main/java/org/mythicprojects/yetanothermessageslibrary/util/BukkitLocaleHelper.java b/platform/bukkit/src/main/java/dev/peri/yetanothermessageslibrary/util/BukkitLocaleHelper.java similarity index 95% rename from platform/bukkit/src/main/java/org/mythicprojects/yetanothermessageslibrary/util/BukkitLocaleHelper.java rename to platform/bukkit/src/main/java/dev/peri/yetanothermessageslibrary/util/BukkitLocaleHelper.java index ec5bd0f..83cdd51 100644 --- a/platform/bukkit/src/main/java/org/mythicprojects/yetanothermessageslibrary/util/BukkitLocaleHelper.java +++ b/platform/bukkit/src/main/java/dev/peri/yetanothermessageslibrary/util/BukkitLocaleHelper.java @@ -1,4 +1,4 @@ -package org.mythicprojects.yetanothermessageslibrary.util; +package dev.peri.yetanothermessageslibrary.util; import java.lang.reflect.Method; import java.util.Locale; diff --git a/platform/bukkit/src/main/java/org/mythicprojects/yetanothermessageslibrary/viewer/BukkitViewerDataSupplier.java b/platform/bukkit/src/main/java/dev/peri/yetanothermessageslibrary/viewer/BukkitViewerDataSupplier.java similarity index 94% rename from platform/bukkit/src/main/java/org/mythicprojects/yetanothermessageslibrary/viewer/BukkitViewerDataSupplier.java rename to platform/bukkit/src/main/java/dev/peri/yetanothermessageslibrary/viewer/BukkitViewerDataSupplier.java index d245385..af7aec8 100644 --- a/platform/bukkit/src/main/java/org/mythicprojects/yetanothermessageslibrary/viewer/BukkitViewerDataSupplier.java +++ b/platform/bukkit/src/main/java/dev/peri/yetanothermessageslibrary/viewer/BukkitViewerDataSupplier.java @@ -1,4 +1,4 @@ -package org.mythicprojects.yetanothermessageslibrary.viewer; +package dev.peri.yetanothermessageslibrary.viewer; import java.util.UUID; import net.kyori.adventure.audience.Audience; diff --git a/platform/bungee/src/main/java/org/mythicprojects/yetanothermessageslibrary/BungeeMessageService.java b/platform/bungee/src/main/java/dev/peri/yetanothermessageslibrary/BungeeMessageService.java similarity index 74% rename from platform/bungee/src/main/java/org/mythicprojects/yetanothermessageslibrary/BungeeMessageService.java rename to platform/bungee/src/main/java/dev/peri/yetanothermessageslibrary/BungeeMessageService.java index 814c319..5e80a0a 100644 --- a/platform/bungee/src/main/java/org/mythicprojects/yetanothermessageslibrary/BungeeMessageService.java +++ b/platform/bungee/src/main/java/dev/peri/yetanothermessageslibrary/BungeeMessageService.java @@ -1,15 +1,15 @@ -package org.mythicprojects.yetanothermessageslibrary; +package dev.peri.yetanothermessageslibrary; +import dev.peri.yetanothermessageslibrary.message.BungeeMessageDispatcher; +import dev.peri.yetanothermessageslibrary.viewer.BungeeViewerDataSupplier; +import dev.peri.yetanothermessageslibrary.viewer.ViewerFactory; +import dev.peri.yetanothermessageslibrary.viewer.ViewerService; import java.util.concurrent.TimeUnit; import java.util.function.BiConsumer; import net.kyori.adventure.platform.bungeecord.BungeeAudiences; import net.md_5.bungee.api.CommandSender; import net.md_5.bungee.api.plugin.Plugin; import org.jetbrains.annotations.NotNull; -import org.mythicprojects.yetanothermessageslibrary.message.BungeeMessageDispatcher; -import org.mythicprojects.yetanothermessageslibrary.viewer.BungeeViewerDataSupplier; -import org.mythicprojects.yetanothermessageslibrary.viewer.ViewerFactory; -import org.mythicprojects.yetanothermessageslibrary.viewer.ViewerService; public class BungeeMessageService extends SimpleSendableMessageService> { diff --git a/platform/bungee/src/main/java/org/mythicprojects/yetanothermessageslibrary/message/BungeeMessageDispatcher.java b/platform/bungee/src/main/java/dev/peri/yetanothermessageslibrary/message/BungeeMessageDispatcher.java similarity index 90% rename from platform/bungee/src/main/java/org/mythicprojects/yetanothermessageslibrary/message/BungeeMessageDispatcher.java rename to platform/bungee/src/main/java/dev/peri/yetanothermessageslibrary/message/BungeeMessageDispatcher.java index 278a489..8643567 100644 --- a/platform/bungee/src/main/java/org/mythicprojects/yetanothermessageslibrary/message/BungeeMessageDispatcher.java +++ b/platform/bungee/src/main/java/dev/peri/yetanothermessageslibrary/message/BungeeMessageDispatcher.java @@ -1,5 +1,6 @@ -package org.mythicprojects.yetanothermessageslibrary.message; +package dev.peri.yetanothermessageslibrary.message; +import dev.peri.yetanothermessageslibrary.viewer.ViewerService; import java.util.Locale; import java.util.function.Function; import net.md_5.bungee.api.CommandSender; @@ -7,7 +8,6 @@ import org.jetbrains.annotations.Contract; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -import org.mythicprojects.yetanothermessageslibrary.viewer.ViewerService; @SuppressWarnings("unchecked") public class BungeeMessageDispatcher> diff --git a/platform/bungee/src/main/java/org/mythicprojects/yetanothermessageslibrary/viewer/BungeeViewerDataSupplier.java b/platform/bungee/src/main/java/dev/peri/yetanothermessageslibrary/viewer/BungeeViewerDataSupplier.java similarity index 94% rename from platform/bungee/src/main/java/org/mythicprojects/yetanothermessageslibrary/viewer/BungeeViewerDataSupplier.java rename to platform/bungee/src/main/java/dev/peri/yetanothermessageslibrary/viewer/BungeeViewerDataSupplier.java index de07114..9b58109 100644 --- a/platform/bungee/src/main/java/org/mythicprojects/yetanothermessageslibrary/viewer/BungeeViewerDataSupplier.java +++ b/platform/bungee/src/main/java/dev/peri/yetanothermessageslibrary/viewer/BungeeViewerDataSupplier.java @@ -1,4 +1,4 @@ -package org.mythicprojects.yetanothermessageslibrary.viewer; +package dev.peri.yetanothermessageslibrary.viewer; import java.util.UUID; import net.kyori.adventure.audience.Audience; diff --git a/platform/velocity/src/main/java/org/mythicprojects/yetanothermessageslibrary/VelocityMessageService.java b/platform/velocity/src/main/java/dev/peri/yetanothermessageslibrary/VelocityMessageService.java similarity index 75% rename from platform/velocity/src/main/java/org/mythicprojects/yetanothermessageslibrary/VelocityMessageService.java rename to platform/velocity/src/main/java/dev/peri/yetanothermessageslibrary/VelocityMessageService.java index a53b624..0f2a315 100644 --- a/platform/velocity/src/main/java/org/mythicprojects/yetanothermessageslibrary/VelocityMessageService.java +++ b/platform/velocity/src/main/java/dev/peri/yetanothermessageslibrary/VelocityMessageService.java @@ -1,14 +1,14 @@ -package org.mythicprojects.yetanothermessageslibrary; +package dev.peri.yetanothermessageslibrary; import com.velocitypowered.api.command.CommandSource; import com.velocitypowered.api.proxy.ProxyServer; +import dev.peri.yetanothermessageslibrary.message.VelocityMessageDispatcher; +import dev.peri.yetanothermessageslibrary.viewer.VelocityViewerDataSupplier; +import dev.peri.yetanothermessageslibrary.viewer.ViewerFactory; +import dev.peri.yetanothermessageslibrary.viewer.ViewerService; import java.util.concurrent.TimeUnit; import java.util.function.BiConsumer; import org.jetbrains.annotations.NotNull; -import org.mythicprojects.yetanothermessageslibrary.message.VelocityMessageDispatcher; -import org.mythicprojects.yetanothermessageslibrary.viewer.VelocityViewerDataSupplier; -import org.mythicprojects.yetanothermessageslibrary.viewer.ViewerFactory; -import org.mythicprojects.yetanothermessageslibrary.viewer.ViewerService; public class VelocityMessageService extends SimpleSendableMessageService> { diff --git a/platform/velocity/src/main/java/org/mythicprojects/yetanothermessageslibrary/message/VelocityMessageDispatcher.java b/platform/velocity/src/main/java/dev/peri/yetanothermessageslibrary/message/VelocityMessageDispatcher.java similarity index 94% rename from platform/velocity/src/main/java/org/mythicprojects/yetanothermessageslibrary/message/VelocityMessageDispatcher.java rename to platform/velocity/src/main/java/dev/peri/yetanothermessageslibrary/message/VelocityMessageDispatcher.java index f1d559e..d519389 100644 --- a/platform/velocity/src/main/java/org/mythicprojects/yetanothermessageslibrary/message/VelocityMessageDispatcher.java +++ b/platform/velocity/src/main/java/dev/peri/yetanothermessageslibrary/message/VelocityMessageDispatcher.java @@ -1,13 +1,13 @@ -package org.mythicprojects.yetanothermessageslibrary.message; +package dev.peri.yetanothermessageslibrary.message; import com.velocitypowered.api.command.CommandSource; import com.velocitypowered.api.proxy.ProxyServer; +import dev.peri.yetanothermessageslibrary.viewer.ViewerService; import java.util.Locale; import java.util.function.Function; import org.jetbrains.annotations.Contract; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -import org.mythicprojects.yetanothermessageslibrary.viewer.ViewerService; @SuppressWarnings("unchecked") public class VelocityMessageDispatcher> diff --git a/platform/velocity/src/main/java/org/mythicprojects/yetanothermessageslibrary/viewer/VelocityViewerDataSupplier.java b/platform/velocity/src/main/java/dev/peri/yetanothermessageslibrary/viewer/VelocityViewerDataSupplier.java similarity index 92% rename from platform/velocity/src/main/java/org/mythicprojects/yetanothermessageslibrary/viewer/VelocityViewerDataSupplier.java rename to platform/velocity/src/main/java/dev/peri/yetanothermessageslibrary/viewer/VelocityViewerDataSupplier.java index bc87b66..32455a5 100644 --- a/platform/velocity/src/main/java/org/mythicprojects/yetanothermessageslibrary/viewer/VelocityViewerDataSupplier.java +++ b/platform/velocity/src/main/java/dev/peri/yetanothermessageslibrary/viewer/VelocityViewerDataSupplier.java @@ -1,4 +1,4 @@ -package org.mythicprojects.yetanothermessageslibrary.viewer; +package dev.peri.yetanothermessageslibrary.viewer; import com.velocitypowered.api.command.CommandSource; import com.velocitypowered.api.proxy.Player; diff --git a/replaceable/okaeri/src/main/java/org/mythicprojects/yetanothermessageslibrary/replace/OkaeriPlaceholdersMessageDispatcher.java b/replaceable/okaeri/src/main/java/dev/peri/yetanothermessageslibrary/replace/OkaeriPlaceholdersMessageDispatcher.java similarity index 83% rename from replaceable/okaeri/src/main/java/org/mythicprojects/yetanothermessageslibrary/replace/OkaeriPlaceholdersMessageDispatcher.java rename to replaceable/okaeri/src/main/java/dev/peri/yetanothermessageslibrary/replace/OkaeriPlaceholdersMessageDispatcher.java index 810b138..948efa3 100644 --- a/replaceable/okaeri/src/main/java/org/mythicprojects/yetanothermessageslibrary/replace/OkaeriPlaceholdersMessageDispatcher.java +++ b/replaceable/okaeri/src/main/java/dev/peri/yetanothermessageslibrary/replace/OkaeriPlaceholdersMessageDispatcher.java @@ -1,9 +1,9 @@ -package org.mythicprojects.yetanothermessageslibrary.replace; +package dev.peri.yetanothermessageslibrary.replace; +import dev.peri.yetanothermessageslibrary.message.MessageDispatcher; import eu.okaeri.placeholders.Placeholders; import org.jetbrains.annotations.Contract; import org.jetbrains.annotations.NotNull; -import org.mythicprojects.yetanothermessageslibrary.message.MessageDispatcher; public interface OkaeriPlaceholdersMessageDispatcher> extends MessageDispatcher { diff --git a/replaceable/okaeri/src/main/java/org/mythicprojects/yetanothermessageslibrary/replace/OkaeriPlaceholdersReplaceable.java b/replaceable/okaeri/src/main/java/dev/peri/yetanothermessageslibrary/replace/OkaeriPlaceholdersReplaceable.java similarity index 88% rename from replaceable/okaeri/src/main/java/org/mythicprojects/yetanothermessageslibrary/replace/OkaeriPlaceholdersReplaceable.java rename to replaceable/okaeri/src/main/java/dev/peri/yetanothermessageslibrary/replace/OkaeriPlaceholdersReplaceable.java index 2be70f4..465d68d 100644 --- a/replaceable/okaeri/src/main/java/org/mythicprojects/yetanothermessageslibrary/replace/OkaeriPlaceholdersReplaceable.java +++ b/replaceable/okaeri/src/main/java/dev/peri/yetanothermessageslibrary/replace/OkaeriPlaceholdersReplaceable.java @@ -1,5 +1,7 @@ -package org.mythicprojects.yetanothermessageslibrary.replace; +package dev.peri.yetanothermessageslibrary.replace; +import dev.peri.yetanothermessageslibrary.adventure.GlobalAdventureSerializer; +import dev.peri.yetanothermessageslibrary.replace.replacement.ComponentReplacement; import eu.okaeri.placeholders.Placeholders; import eu.okaeri.placeholders.context.PlaceholderContext; import eu.okaeri.placeholders.message.CompiledMessage; @@ -10,8 +12,6 @@ import org.jetbrains.annotations.ApiStatus; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -import org.mythicprojects.yetanothermessageslibrary.adventure.GlobalAdventureSerializer; -import org.mythicprojects.yetanothermessageslibrary.replace.replacement.ComponentReplacement; @ApiStatus.Experimental public class OkaeriPlaceholdersReplaceable extends ComponentReplacement implements StringReplaceable { diff --git a/replaceable/placeholderapi/src/main/java/org/mythicprojects/yetanothermessageslibrary/replace/PlaceholderAPIMessageDispatcher.java b/replaceable/placeholderapi/src/main/java/dev/peri/yetanothermessageslibrary/replace/PlaceholderAPIMessageDispatcher.java similarity index 79% rename from replaceable/placeholderapi/src/main/java/org/mythicprojects/yetanothermessageslibrary/replace/PlaceholderAPIMessageDispatcher.java rename to replaceable/placeholderapi/src/main/java/dev/peri/yetanothermessageslibrary/replace/PlaceholderAPIMessageDispatcher.java index 68b48ec..8cd6f2c 100644 --- a/replaceable/placeholderapi/src/main/java/org/mythicprojects/yetanothermessageslibrary/replace/PlaceholderAPIMessageDispatcher.java +++ b/replaceable/placeholderapi/src/main/java/dev/peri/yetanothermessageslibrary/replace/PlaceholderAPIMessageDispatcher.java @@ -1,9 +1,9 @@ -package org.mythicprojects.yetanothermessageslibrary.replace; +package dev.peri.yetanothermessageslibrary.replace; +import dev.peri.yetanothermessageslibrary.message.MessageDispatcher; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import org.jetbrains.annotations.Contract; -import org.mythicprojects.yetanothermessageslibrary.message.MessageDispatcher; public interface PlaceholderAPIMessageDispatcher> extends MessageDispatcher { diff --git a/replaceable/placeholderapi/src/main/java/org/mythicprojects/yetanothermessageslibrary/replace/PlaceholderAPIReplaceable.java b/replaceable/placeholderapi/src/main/java/dev/peri/yetanothermessageslibrary/replace/PlaceholderAPIReplaceable.java similarity index 85% rename from replaceable/placeholderapi/src/main/java/org/mythicprojects/yetanothermessageslibrary/replace/PlaceholderAPIReplaceable.java rename to replaceable/placeholderapi/src/main/java/dev/peri/yetanothermessageslibrary/replace/PlaceholderAPIReplaceable.java index 1115a21..c575e05 100644 --- a/replaceable/placeholderapi/src/main/java/org/mythicprojects/yetanothermessageslibrary/replace/PlaceholderAPIReplaceable.java +++ b/replaceable/placeholderapi/src/main/java/dev/peri/yetanothermessageslibrary/replace/PlaceholderAPIReplaceable.java @@ -1,5 +1,7 @@ -package org.mythicprojects.yetanothermessageslibrary.replace; +package dev.peri.yetanothermessageslibrary.replace; +import dev.peri.yetanothermessageslibrary.adventure.GlobalAdventureSerializer; +import dev.peri.yetanothermessageslibrary.replace.replacement.ComponentReplacement; import java.lang.ref.WeakReference; import java.util.Locale; import java.util.regex.Pattern; @@ -8,8 +10,6 @@ import org.bukkit.entity.Player; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -import org.mythicprojects.yetanothermessageslibrary.adventure.GlobalAdventureSerializer; -import org.mythicprojects.yetanothermessageslibrary.replace.replacement.ComponentReplacement; public class PlaceholderAPIReplaceable extends ComponentReplacement implements StringReplaceable { diff --git a/repository/okaeri/src/main/java/org/mythicprojects/yetanothermessageslibrary/config/serdes/ComponentSerializer.java b/repository/okaeri/src/main/java/dev/peri/yetanothermessageslibrary/config/serdes/ComponentSerializer.java similarity index 94% rename from repository/okaeri/src/main/java/org/mythicprojects/yetanothermessageslibrary/config/serdes/ComponentSerializer.java rename to repository/okaeri/src/main/java/dev/peri/yetanothermessageslibrary/config/serdes/ComponentSerializer.java index ae12c72..8f812d4 100644 --- a/repository/okaeri/src/main/java/org/mythicprojects/yetanothermessageslibrary/config/serdes/ComponentSerializer.java +++ b/repository/okaeri/src/main/java/dev/peri/yetanothermessageslibrary/config/serdes/ComponentSerializer.java @@ -1,4 +1,4 @@ -package org.mythicprojects.yetanothermessageslibrary.config.serdes; +package dev.peri.yetanothermessageslibrary.config.serdes; import eu.okaeri.configs.schema.GenericsDeclaration; import eu.okaeri.configs.serdes.DeserializationData; diff --git a/repository/okaeri/src/main/java/org/mythicprojects/yetanothermessageslibrary/config/serdes/KeyTransformer.java b/repository/okaeri/src/main/java/dev/peri/yetanothermessageslibrary/config/serdes/KeyTransformer.java similarity index 90% rename from repository/okaeri/src/main/java/org/mythicprojects/yetanothermessageslibrary/config/serdes/KeyTransformer.java rename to repository/okaeri/src/main/java/dev/peri/yetanothermessageslibrary/config/serdes/KeyTransformer.java index 60421db..34f2f9d 100644 --- a/repository/okaeri/src/main/java/org/mythicprojects/yetanothermessageslibrary/config/serdes/KeyTransformer.java +++ b/repository/okaeri/src/main/java/dev/peri/yetanothermessageslibrary/config/serdes/KeyTransformer.java @@ -1,4 +1,4 @@ -package org.mythicprojects.yetanothermessageslibrary.config.serdes; +package dev.peri.yetanothermessageslibrary.config.serdes; import eu.okaeri.configs.schema.GenericsPair; import eu.okaeri.configs.serdes.BidirectionalTransformer; diff --git a/repository/okaeri/src/main/java/org/mythicprojects/yetanothermessageslibrary/config/serdes/SendableMessageSerializer.java b/repository/okaeri/src/main/java/dev/peri/yetanothermessageslibrary/config/serdes/SendableMessageSerializer.java similarity index 81% rename from repository/okaeri/src/main/java/org/mythicprojects/yetanothermessageslibrary/config/serdes/SendableMessageSerializer.java rename to repository/okaeri/src/main/java/dev/peri/yetanothermessageslibrary/config/serdes/SendableMessageSerializer.java index eae0712..85077d8 100644 --- a/repository/okaeri/src/main/java/org/mythicprojects/yetanothermessageslibrary/config/serdes/SendableMessageSerializer.java +++ b/repository/okaeri/src/main/java/dev/peri/yetanothermessageslibrary/config/serdes/SendableMessageSerializer.java @@ -1,5 +1,12 @@ -package org.mythicprojects.yetanothermessageslibrary.config.serdes; +package dev.peri.yetanothermessageslibrary.config.serdes; +import dev.peri.yetanothermessageslibrary.message.SendableMessage; +import dev.peri.yetanothermessageslibrary.message.holder.SendableHolder; +import dev.peri.yetanothermessageslibrary.message.holder.impl.ActionBarHolder; +import dev.peri.yetanothermessageslibrary.message.holder.impl.BossBarHolder; +import dev.peri.yetanothermessageslibrary.message.holder.impl.ChatHolder; +import dev.peri.yetanothermessageslibrary.message.holder.impl.SoundHolder; +import dev.peri.yetanothermessageslibrary.message.holder.impl.TitleHolder; import eu.okaeri.configs.schema.GenericsDeclaration; import eu.okaeri.configs.serdes.DeserializationData; import eu.okaeri.configs.serdes.ObjectSerializer; @@ -8,13 +15,6 @@ import java.util.LinkedHashMap; import java.util.List; import java.util.Map; -import org.mythicprojects.yetanothermessageslibrary.message.SendableMessage; -import org.mythicprojects.yetanothermessageslibrary.message.holder.SendableHolder; -import org.mythicprojects.yetanothermessageslibrary.message.holder.impl.ActionBarHolder; -import org.mythicprojects.yetanothermessageslibrary.message.holder.impl.BossBarHolder; -import org.mythicprojects.yetanothermessageslibrary.message.holder.impl.ChatHolder; -import org.mythicprojects.yetanothermessageslibrary.message.holder.impl.SoundHolder; -import org.mythicprojects.yetanothermessageslibrary.message.holder.impl.TitleHolder; public class SendableMessageSerializer implements ObjectSerializer { diff --git a/repository/okaeri/src/main/java/org/mythicprojects/yetanothermessageslibrary/config/serdes/YAMLSerdes.java b/repository/okaeri/src/main/java/dev/peri/yetanothermessageslibrary/config/serdes/YAMLSerdes.java similarity index 66% rename from repository/okaeri/src/main/java/org/mythicprojects/yetanothermessageslibrary/config/serdes/YAMLSerdes.java rename to repository/okaeri/src/main/java/dev/peri/yetanothermessageslibrary/config/serdes/YAMLSerdes.java index 8caf85d..3e73f59 100644 --- a/repository/okaeri/src/main/java/org/mythicprojects/yetanothermessageslibrary/config/serdes/YAMLSerdes.java +++ b/repository/okaeri/src/main/java/dev/peri/yetanothermessageslibrary/config/serdes/YAMLSerdes.java @@ -1,15 +1,15 @@ -package org.mythicprojects.yetanothermessageslibrary.config.serdes; - +package dev.peri.yetanothermessageslibrary.config.serdes; + +import dev.peri.yetanothermessageslibrary.adventure.GlobalAdventureSerializer; +import dev.peri.yetanothermessageslibrary.config.serdes.holder.ActionBarHolderTransformer; +import dev.peri.yetanothermessageslibrary.config.serdes.holder.BossBarHolderSerializer; +import dev.peri.yetanothermessageslibrary.config.serdes.holder.ChatSerializer; +import dev.peri.yetanothermessageslibrary.config.serdes.holder.SoundHolderSerializer; +import dev.peri.yetanothermessageslibrary.config.serdes.holder.TitleHolderSerializer; import eu.okaeri.configs.serdes.OkaeriSerdesPack; import eu.okaeri.configs.serdes.SerdesRegistry; import net.kyori.adventure.text.Component; import org.jetbrains.annotations.NotNull; -import org.mythicprojects.yetanothermessageslibrary.adventure.GlobalAdventureSerializer; -import org.mythicprojects.yetanothermessageslibrary.config.serdes.holder.ActionBarHolderTransformer; -import org.mythicprojects.yetanothermessageslibrary.config.serdes.holder.BossBarHolderSerializer; -import org.mythicprojects.yetanothermessageslibrary.config.serdes.holder.ChatSerializer; -import org.mythicprojects.yetanothermessageslibrary.config.serdes.holder.SoundHolderSerializer; -import org.mythicprojects.yetanothermessageslibrary.config.serdes.holder.TitleHolderSerializer; public class YAMLSerdes implements OkaeriSerdesPack { diff --git a/repository/okaeri/src/main/java/org/mythicprojects/yetanothermessageslibrary/config/serdes/holder/ActionBarHolderTransformer.java b/repository/okaeri/src/main/java/dev/peri/yetanothermessageslibrary/config/serdes/holder/ActionBarHolderTransformer.java similarity index 82% rename from repository/okaeri/src/main/java/org/mythicprojects/yetanothermessageslibrary/config/serdes/holder/ActionBarHolderTransformer.java rename to repository/okaeri/src/main/java/dev/peri/yetanothermessageslibrary/config/serdes/holder/ActionBarHolderTransformer.java index 3f63815..43b29ce 100644 --- a/repository/okaeri/src/main/java/org/mythicprojects/yetanothermessageslibrary/config/serdes/holder/ActionBarHolderTransformer.java +++ b/repository/okaeri/src/main/java/dev/peri/yetanothermessageslibrary/config/serdes/holder/ActionBarHolderTransformer.java @@ -1,10 +1,10 @@ -package org.mythicprojects.yetanothermessageslibrary.config.serdes.holder; +package dev.peri.yetanothermessageslibrary.config.serdes.holder; +import dev.peri.yetanothermessageslibrary.message.holder.impl.ActionBarHolder; import eu.okaeri.configs.schema.GenericsPair; import eu.okaeri.configs.serdes.BidirectionalTransformer; import eu.okaeri.configs.serdes.SerdesContext; import net.kyori.adventure.text.Component; -import org.mythicprojects.yetanothermessageslibrary.message.holder.impl.ActionBarHolder; public class ActionBarHolderTransformer extends BidirectionalTransformer { diff --git a/repository/okaeri/src/main/java/org/mythicprojects/yetanothermessageslibrary/config/serdes/holder/BossBarHolderSerializer.java b/repository/okaeri/src/main/java/dev/peri/yetanothermessageslibrary/config/serdes/holder/BossBarHolderSerializer.java similarity index 93% rename from repository/okaeri/src/main/java/org/mythicprojects/yetanothermessageslibrary/config/serdes/holder/BossBarHolderSerializer.java rename to repository/okaeri/src/main/java/dev/peri/yetanothermessageslibrary/config/serdes/holder/BossBarHolderSerializer.java index b92a098..6a90b63 100644 --- a/repository/okaeri/src/main/java/org/mythicprojects/yetanothermessageslibrary/config/serdes/holder/BossBarHolderSerializer.java +++ b/repository/okaeri/src/main/java/dev/peri/yetanothermessageslibrary/config/serdes/holder/BossBarHolderSerializer.java @@ -1,5 +1,6 @@ -package org.mythicprojects.yetanothermessageslibrary.config.serdes.holder; +package dev.peri.yetanothermessageslibrary.config.serdes.holder; +import dev.peri.yetanothermessageslibrary.message.holder.impl.BossBarHolder; import eu.okaeri.configs.schema.GenericsDeclaration; import eu.okaeri.configs.serdes.DeserializationData; import eu.okaeri.configs.serdes.ObjectSerializer; @@ -7,7 +8,6 @@ import java.util.HashSet; import net.kyori.adventure.bossbar.BossBar; import net.kyori.adventure.text.Component; -import org.mythicprojects.yetanothermessageslibrary.message.holder.impl.BossBarHolder; public class BossBarHolderSerializer implements ObjectSerializer { diff --git a/repository/okaeri/src/main/java/org/mythicprojects/yetanothermessageslibrary/config/serdes/holder/ChatSerializer.java b/repository/okaeri/src/main/java/dev/peri/yetanothermessageslibrary/config/serdes/holder/ChatSerializer.java similarity index 93% rename from repository/okaeri/src/main/java/org/mythicprojects/yetanothermessageslibrary/config/serdes/holder/ChatSerializer.java rename to repository/okaeri/src/main/java/dev/peri/yetanothermessageslibrary/config/serdes/holder/ChatSerializer.java index 804e680..482d0a9 100644 --- a/repository/okaeri/src/main/java/org/mythicprojects/yetanothermessageslibrary/config/serdes/holder/ChatSerializer.java +++ b/repository/okaeri/src/main/java/dev/peri/yetanothermessageslibrary/config/serdes/holder/ChatSerializer.java @@ -1,5 +1,6 @@ -package org.mythicprojects.yetanothermessageslibrary.config.serdes.holder; +package dev.peri.yetanothermessageslibrary.config.serdes.holder; +import dev.peri.yetanothermessageslibrary.message.holder.impl.ChatHolder; import eu.okaeri.configs.schema.GenericsDeclaration; import eu.okaeri.configs.serdes.DeserializationData; import eu.okaeri.configs.serdes.ObjectSerializer; @@ -7,7 +8,6 @@ import java.util.ArrayList; import java.util.List; import net.kyori.adventure.text.Component; -import org.mythicprojects.yetanothermessageslibrary.message.holder.impl.ChatHolder; public class ChatSerializer implements ObjectSerializer { diff --git a/repository/okaeri/src/main/java/org/mythicprojects/yetanothermessageslibrary/config/serdes/holder/SoundHolderSerializer.java b/repository/okaeri/src/main/java/dev/peri/yetanothermessageslibrary/config/serdes/holder/SoundHolderSerializer.java similarity index 91% rename from repository/okaeri/src/main/java/org/mythicprojects/yetanothermessageslibrary/config/serdes/holder/SoundHolderSerializer.java rename to repository/okaeri/src/main/java/dev/peri/yetanothermessageslibrary/config/serdes/holder/SoundHolderSerializer.java index 1599ba4..0f1dacb 100644 --- a/repository/okaeri/src/main/java/org/mythicprojects/yetanothermessageslibrary/config/serdes/holder/SoundHolderSerializer.java +++ b/repository/okaeri/src/main/java/dev/peri/yetanothermessageslibrary/config/serdes/holder/SoundHolderSerializer.java @@ -1,12 +1,12 @@ -package org.mythicprojects.yetanothermessageslibrary.config.serdes.holder; +package dev.peri.yetanothermessageslibrary.config.serdes.holder; +import dev.peri.yetanothermessageslibrary.message.holder.impl.SoundHolder; import eu.okaeri.configs.schema.GenericsDeclaration; import eu.okaeri.configs.serdes.DeserializationData; import eu.okaeri.configs.serdes.ObjectSerializer; import eu.okaeri.configs.serdes.SerializationData; import net.kyori.adventure.key.Key; import net.kyori.adventure.sound.Sound; -import org.mythicprojects.yetanothermessageslibrary.message.holder.impl.SoundHolder; public class SoundHolderSerializer implements ObjectSerializer { diff --git a/repository/okaeri/src/main/java/org/mythicprojects/yetanothermessageslibrary/config/serdes/holder/TitleHolderSerializer.java b/repository/okaeri/src/main/java/dev/peri/yetanothermessageslibrary/config/serdes/holder/TitleHolderSerializer.java similarity index 94% rename from repository/okaeri/src/main/java/org/mythicprojects/yetanothermessageslibrary/config/serdes/holder/TitleHolderSerializer.java rename to repository/okaeri/src/main/java/dev/peri/yetanothermessageslibrary/config/serdes/holder/TitleHolderSerializer.java index 3251847..e803542 100644 --- a/repository/okaeri/src/main/java/org/mythicprojects/yetanothermessageslibrary/config/serdes/holder/TitleHolderSerializer.java +++ b/repository/okaeri/src/main/java/dev/peri/yetanothermessageslibrary/config/serdes/holder/TitleHolderSerializer.java @@ -1,5 +1,6 @@ -package org.mythicprojects.yetanothermessageslibrary.config.serdes.holder; +package dev.peri.yetanothermessageslibrary.config.serdes.holder; +import dev.peri.yetanothermessageslibrary.message.holder.impl.TitleHolder; import eu.okaeri.configs.schema.GenericsDeclaration; import eu.okaeri.configs.serdes.DeserializationData; import eu.okaeri.configs.serdes.ObjectSerializer; @@ -8,7 +9,6 @@ import net.kyori.adventure.text.Component; import net.kyori.adventure.title.Title.Times; import net.kyori.adventure.util.Ticks; -import org.mythicprojects.yetanothermessageslibrary.message.holder.impl.TitleHolder; public class TitleHolderSerializer implements ObjectSerializer { diff --git a/tools/src/main/java/org/mythicprojects/yetanothermessageslibrary/adventure/GlobalAdventureSerializer.java b/tools/src/main/java/dev/peri/yetanothermessageslibrary/adventure/GlobalAdventureSerializer.java similarity index 92% rename from tools/src/main/java/org/mythicprojects/yetanothermessageslibrary/adventure/GlobalAdventureSerializer.java rename to tools/src/main/java/dev/peri/yetanothermessageslibrary/adventure/GlobalAdventureSerializer.java index 161a5bd..fe8f5e8 100644 --- a/tools/src/main/java/org/mythicprojects/yetanothermessageslibrary/adventure/GlobalAdventureSerializer.java +++ b/tools/src/main/java/dev/peri/yetanothermessageslibrary/adventure/GlobalAdventureSerializer.java @@ -1,5 +1,7 @@ -package org.mythicprojects.yetanothermessageslibrary.adventure; +package dev.peri.yetanothermessageslibrary.adventure; +import dev.peri.yetanothermessageslibrary.replace.replacement.FunctionStringReplacement; +import dev.peri.yetanothermessageslibrary.replace.replacement.SimpleStringReplacement; import java.util.Arrays; import java.util.List; import java.util.Objects; @@ -7,8 +9,6 @@ import net.kyori.adventure.text.Component; import net.kyori.adventure.text.serializer.ComponentSerializer; import org.jetbrains.annotations.NotNull; -import org.mythicprojects.yetanothermessageslibrary.replace.replacement.FunctionStringReplacement; -import org.mythicprojects.yetanothermessageslibrary.replace.replacement.SimpleStringReplacement; /** * Simple utility class to provide global access to adventure serializer. diff --git a/tools/src/main/java/org/mythicprojects/yetanothermessageslibrary/adventure/NativeLegacySerializer.java b/tools/src/main/java/dev/peri/yetanothermessageslibrary/adventure/NativeLegacySerializer.java similarity index 82% rename from tools/src/main/java/org/mythicprojects/yetanothermessageslibrary/adventure/NativeLegacySerializer.java rename to tools/src/main/java/dev/peri/yetanothermessageslibrary/adventure/NativeLegacySerializer.java index 903c923..970cfa9 100644 --- a/tools/src/main/java/org/mythicprojects/yetanothermessageslibrary/adventure/NativeLegacySerializer.java +++ b/tools/src/main/java/dev/peri/yetanothermessageslibrary/adventure/NativeLegacySerializer.java @@ -1,4 +1,4 @@ -package org.mythicprojects.yetanothermessageslibrary.adventure; +package dev.peri.yetanothermessageslibrary.adventure; import net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer; diff --git a/tools/src/main/java/org/mythicprojects/yetanothermessageslibrary/adventure/NativeMiniMessageSerializer.java b/tools/src/main/java/dev/peri/yetanothermessageslibrary/adventure/NativeMiniMessageSerializer.java similarity index 80% rename from tools/src/main/java/org/mythicprojects/yetanothermessageslibrary/adventure/NativeMiniMessageSerializer.java rename to tools/src/main/java/dev/peri/yetanothermessageslibrary/adventure/NativeMiniMessageSerializer.java index 10fb5d5..71597e8 100644 --- a/tools/src/main/java/org/mythicprojects/yetanothermessageslibrary/adventure/NativeMiniMessageSerializer.java +++ b/tools/src/main/java/dev/peri/yetanothermessageslibrary/adventure/NativeMiniMessageSerializer.java @@ -1,4 +1,4 @@ -package org.mythicprojects.yetanothermessageslibrary.adventure; +package dev.peri.yetanothermessageslibrary.adventure; import net.kyori.adventure.text.minimessage.MiniMessage; diff --git a/tools/src/main/java/org/mythicprojects/yetanothermessageslibrary/replace/ComponentReplacer.java b/tools/src/main/java/dev/peri/yetanothermessageslibrary/replace/ComponentReplacer.java similarity index 97% rename from tools/src/main/java/org/mythicprojects/yetanothermessageslibrary/replace/ComponentReplacer.java rename to tools/src/main/java/dev/peri/yetanothermessageslibrary/replace/ComponentReplacer.java index 6171192..588a365 100644 --- a/tools/src/main/java/org/mythicprojects/yetanothermessageslibrary/replace/ComponentReplacer.java +++ b/tools/src/main/java/dev/peri/yetanothermessageslibrary/replace/ComponentReplacer.java @@ -1,4 +1,4 @@ -package org.mythicprojects.yetanothermessageslibrary.replace; +package dev.peri.yetanothermessageslibrary.replace; import java.util.ArrayList; import java.util.Arrays; diff --git a/tools/src/main/java/org/mythicprojects/yetanothermessageslibrary/replace/Replaceable.java b/tools/src/main/java/dev/peri/yetanothermessageslibrary/replace/Replaceable.java similarity index 86% rename from tools/src/main/java/org/mythicprojects/yetanothermessageslibrary/replace/Replaceable.java rename to tools/src/main/java/dev/peri/yetanothermessageslibrary/replace/Replaceable.java index f08fbf8..40f562d 100644 --- a/tools/src/main/java/org/mythicprojects/yetanothermessageslibrary/replace/Replaceable.java +++ b/tools/src/main/java/dev/peri/yetanothermessageslibrary/replace/Replaceable.java @@ -1,4 +1,4 @@ -package org.mythicprojects.yetanothermessageslibrary.replace; +package dev.peri.yetanothermessageslibrary.replace; import java.util.Locale; import net.kyori.adventure.text.Component; diff --git a/tools/src/main/java/org/mythicprojects/yetanothermessageslibrary/replace/StringReplaceable.java b/tools/src/main/java/dev/peri/yetanothermessageslibrary/replace/StringReplaceable.java similarity index 85% rename from tools/src/main/java/org/mythicprojects/yetanothermessageslibrary/replace/StringReplaceable.java rename to tools/src/main/java/dev/peri/yetanothermessageslibrary/replace/StringReplaceable.java index 62f1b1c..ae0da7c 100644 --- a/tools/src/main/java/org/mythicprojects/yetanothermessageslibrary/replace/StringReplaceable.java +++ b/tools/src/main/java/dev/peri/yetanothermessageslibrary/replace/StringReplaceable.java @@ -1,4 +1,4 @@ -package org.mythicprojects.yetanothermessageslibrary.replace; +package dev.peri.yetanothermessageslibrary.replace; import java.util.Locale; import org.jetbrains.annotations.NotNull; diff --git a/tools/src/main/java/org/mythicprojects/yetanothermessageslibrary/replace/StringReplacer.java b/tools/src/main/java/dev/peri/yetanothermessageslibrary/replace/StringReplacer.java similarity index 97% rename from tools/src/main/java/org/mythicprojects/yetanothermessageslibrary/replace/StringReplacer.java rename to tools/src/main/java/dev/peri/yetanothermessageslibrary/replace/StringReplacer.java index 662769e..b37bfd2 100644 --- a/tools/src/main/java/org/mythicprojects/yetanothermessageslibrary/replace/StringReplacer.java +++ b/tools/src/main/java/dev/peri/yetanothermessageslibrary/replace/StringReplacer.java @@ -1,4 +1,4 @@ -package org.mythicprojects.yetanothermessageslibrary.replace; +package dev.peri.yetanothermessageslibrary.replace; import java.util.ArrayList; import java.util.Arrays; diff --git a/tools/src/main/java/org/mythicprojects/yetanothermessageslibrary/replace/replacement/ComponentReplacement.java b/tools/src/main/java/dev/peri/yetanothermessageslibrary/replace/replacement/ComponentReplacement.java similarity index 89% rename from tools/src/main/java/org/mythicprojects/yetanothermessageslibrary/replace/replacement/ComponentReplacement.java rename to tools/src/main/java/dev/peri/yetanothermessageslibrary/replace/replacement/ComponentReplacement.java index 436f9ea..6dbf489 100644 --- a/tools/src/main/java/org/mythicprojects/yetanothermessageslibrary/replace/replacement/ComponentReplacement.java +++ b/tools/src/main/java/dev/peri/yetanothermessageslibrary/replace/replacement/ComponentReplacement.java @@ -1,4 +1,4 @@ -package org.mythicprojects.yetanothermessageslibrary.replace.replacement; +package dev.peri.yetanothermessageslibrary.replace.replacement; import java.util.Locale; import net.kyori.adventure.text.Component; diff --git a/tools/src/main/java/org/mythicprojects/yetanothermessageslibrary/replace/replacement/FunctionReplacement.java b/tools/src/main/java/dev/peri/yetanothermessageslibrary/replace/replacement/FunctionReplacement.java similarity index 93% rename from tools/src/main/java/org/mythicprojects/yetanothermessageslibrary/replace/replacement/FunctionReplacement.java rename to tools/src/main/java/dev/peri/yetanothermessageslibrary/replace/replacement/FunctionReplacement.java index 244f4ac..b23a812 100644 --- a/tools/src/main/java/org/mythicprojects/yetanothermessageslibrary/replace/replacement/FunctionReplacement.java +++ b/tools/src/main/java/dev/peri/yetanothermessageslibrary/replace/replacement/FunctionReplacement.java @@ -1,4 +1,4 @@ -package org.mythicprojects.yetanothermessageslibrary.replace.replacement; +package dev.peri.yetanothermessageslibrary.replace.replacement; import java.util.Locale; import java.util.function.Function; diff --git a/tools/src/main/java/org/mythicprojects/yetanothermessageslibrary/replace/replacement/FunctionStringReplacement.java b/tools/src/main/java/dev/peri/yetanothermessageslibrary/replace/replacement/FunctionStringReplacement.java similarity index 83% rename from tools/src/main/java/org/mythicprojects/yetanothermessageslibrary/replace/replacement/FunctionStringReplacement.java rename to tools/src/main/java/dev/peri/yetanothermessageslibrary/replace/replacement/FunctionStringReplacement.java index ee219ed..a0f52b0 100644 --- a/tools/src/main/java/org/mythicprojects/yetanothermessageslibrary/replace/replacement/FunctionStringReplacement.java +++ b/tools/src/main/java/dev/peri/yetanothermessageslibrary/replace/replacement/FunctionStringReplacement.java @@ -1,12 +1,12 @@ -package org.mythicprojects.yetanothermessageslibrary.replace.replacement; +package dev.peri.yetanothermessageslibrary.replace.replacement; +import dev.peri.yetanothermessageslibrary.adventure.GlobalAdventureSerializer; +import dev.peri.yetanothermessageslibrary.replace.StringReplaceable; import java.util.Locale; import java.util.function.Function; import java.util.function.Supplier; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -import org.mythicprojects.yetanothermessageslibrary.adventure.GlobalAdventureSerializer; -import org.mythicprojects.yetanothermessageslibrary.replace.StringReplaceable; public class FunctionStringReplacement extends FunctionReplacement implements StringReplaceable { diff --git a/tools/src/main/java/org/mythicprojects/yetanothermessageslibrary/replace/replacement/Replacement.java b/tools/src/main/java/dev/peri/yetanothermessageslibrary/replace/replacement/Replacement.java similarity index 95% rename from tools/src/main/java/org/mythicprojects/yetanothermessageslibrary/replace/replacement/Replacement.java rename to tools/src/main/java/dev/peri/yetanothermessageslibrary/replace/replacement/Replacement.java index 34d6121..2b86808 100644 --- a/tools/src/main/java/org/mythicprojects/yetanothermessageslibrary/replace/replacement/Replacement.java +++ b/tools/src/main/java/dev/peri/yetanothermessageslibrary/replace/replacement/Replacement.java @@ -1,5 +1,8 @@ -package org.mythicprojects.yetanothermessageslibrary.replace.replacement; +package dev.peri.yetanothermessageslibrary.replace.replacement; +import dev.peri.yetanothermessageslibrary.replace.Replaceable; +import dev.peri.yetanothermessageslibrary.util.TriFunction; +import dev.peri.yetanothermessageslibrary.util.Validate; import java.util.Collections; import java.util.HashMap; import java.util.Locale; @@ -12,9 +15,6 @@ import net.kyori.adventure.text.TextReplacementConfig; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -import org.mythicprojects.yetanothermessageslibrary.replace.Replaceable; -import org.mythicprojects.yetanothermessageslibrary.util.TriFunction; -import org.mythicprojects.yetanothermessageslibrary.util.Validate; public abstract class Replacement implements Replaceable { diff --git a/tools/src/main/java/org/mythicprojects/yetanothermessageslibrary/replace/replacement/SimpleReplacement.java b/tools/src/main/java/dev/peri/yetanothermessageslibrary/replace/replacement/SimpleReplacement.java similarity index 90% rename from tools/src/main/java/org/mythicprojects/yetanothermessageslibrary/replace/replacement/SimpleReplacement.java rename to tools/src/main/java/dev/peri/yetanothermessageslibrary/replace/replacement/SimpleReplacement.java index 7afe3b7..6c67ee0 100644 --- a/tools/src/main/java/org/mythicprojects/yetanothermessageslibrary/replace/replacement/SimpleReplacement.java +++ b/tools/src/main/java/dev/peri/yetanothermessageslibrary/replace/replacement/SimpleReplacement.java @@ -1,4 +1,4 @@ -package org.mythicprojects.yetanothermessageslibrary.replace.replacement; +package dev.peri.yetanothermessageslibrary.replace.replacement; import java.util.Locale; import net.kyori.adventure.text.ComponentLike; diff --git a/tools/src/main/java/org/mythicprojects/yetanothermessageslibrary/replace/replacement/SimpleStringReplacement.java b/tools/src/main/java/dev/peri/yetanothermessageslibrary/replace/replacement/SimpleStringReplacement.java similarity index 73% rename from tools/src/main/java/org/mythicprojects/yetanothermessageslibrary/replace/replacement/SimpleStringReplacement.java rename to tools/src/main/java/dev/peri/yetanothermessageslibrary/replace/replacement/SimpleStringReplacement.java index 4c0d65d..beed8dd 100644 --- a/tools/src/main/java/org/mythicprojects/yetanothermessageslibrary/replace/replacement/SimpleStringReplacement.java +++ b/tools/src/main/java/dev/peri/yetanothermessageslibrary/replace/replacement/SimpleStringReplacement.java @@ -1,10 +1,10 @@ -package org.mythicprojects.yetanothermessageslibrary.replace.replacement; +package dev.peri.yetanothermessageslibrary.replace.replacement; +import dev.peri.yetanothermessageslibrary.adventure.GlobalAdventureSerializer; +import dev.peri.yetanothermessageslibrary.replace.StringReplaceable; import java.util.Locale; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -import org.mythicprojects.yetanothermessageslibrary.adventure.GlobalAdventureSerializer; -import org.mythicprojects.yetanothermessageslibrary.replace.StringReplaceable; public class SimpleStringReplacement extends SimpleReplacement implements StringReplaceable { diff --git a/tools/src/main/java/org/mythicprojects/yetanothermessageslibrary/util/TriFunction.java b/tools/src/main/java/dev/peri/yetanothermessageslibrary/util/TriFunction.java similarity index 62% rename from tools/src/main/java/org/mythicprojects/yetanothermessageslibrary/util/TriFunction.java rename to tools/src/main/java/dev/peri/yetanothermessageslibrary/util/TriFunction.java index 39c86c2..82240f6 100644 --- a/tools/src/main/java/org/mythicprojects/yetanothermessageslibrary/util/TriFunction.java +++ b/tools/src/main/java/dev/peri/yetanothermessageslibrary/util/TriFunction.java @@ -1,4 +1,4 @@ -package org.mythicprojects.yetanothermessageslibrary.util; +package dev.peri.yetanothermessageslibrary.util; @FunctionalInterface public interface TriFunction { diff --git a/tools/src/main/java/org/mythicprojects/yetanothermessageslibrary/util/Validate.java b/tools/src/main/java/dev/peri/yetanothermessageslibrary/util/Validate.java similarity index 89% rename from tools/src/main/java/org/mythicprojects/yetanothermessageslibrary/util/Validate.java rename to tools/src/main/java/dev/peri/yetanothermessageslibrary/util/Validate.java index bb2eaf2..45506c1 100644 --- a/tools/src/main/java/org/mythicprojects/yetanothermessageslibrary/util/Validate.java +++ b/tools/src/main/java/dev/peri/yetanothermessageslibrary/util/Validate.java @@ -1,4 +1,4 @@ -package org.mythicprojects.yetanothermessageslibrary.util; +package dev.peri.yetanothermessageslibrary.util; public class Validate { From 30d7e481d062e71bd430214611d7afce4202cf7d Mon Sep 17 00:00:00 2001 From: Peridot Date: Sat, 24 Aug 2024 19:58:14 +0200 Subject: [PATCH 13/17] Update package in example --- example/build.gradle | 8 ++++---- .../example/ExampleListener.java | 4 ++-- .../example/ExamplePlugin.java | 16 ++++++++-------- .../complex/ExampleMessageDispatcher.java | 6 +++--- .../example/complex/ExampleMessageService.java | 8 ++++---- .../example/config/MessageConfiguration.java | 10 +++++----- example/src/main/resources/plugin.yml | 2 +- .../adventure/GlobalAdventureSerializer.java | 2 +- 8 files changed, 28 insertions(+), 28 deletions(-) diff --git a/example/build.gradle b/example/build.gradle index f44fadb..672f967 100644 --- a/example/build.gradle +++ b/example/build.gradle @@ -18,9 +18,9 @@ dependencies { // YetAnotherMessagesLibrary def yamlVersion = "7.0.0-SNAPSHOT" - implementation "org.mythicprojects.yetanothermessageslibrary:core:${yamlVersion}" - implementation "org.mythicprojects.yetanothermessageslibrary:platform-bukkit:${yamlVersion}" - implementation "org.mythicprojects.yetanothermessageslibrary:repository-okaeri:${yamlVersion}" + implementation "dev.peri.yetanothermessageslibrary:core:${yamlVersion}" + implementation "dev.peri.yetanothermessageslibrary:platform-bukkit:${yamlVersion}" + implementation "dev.peri.yetanothermessageslibrary:repository-okaeri:${yamlVersion}" // Adventure def adventureVersion = "4.14.0" @@ -34,5 +34,5 @@ dependencies { shadowJar { mergeServiceFiles() - relocate("net.kyori", "org.mythicprojects.yetanothermessageslibrary.example.kyori") // Relocation of adventure is required while using `adventure-platform` -> otherwise title/actionbar/bossbar will not display on Paper servers + relocate("net.kyori", "dev.peri.yetanothermessageslibrary.example.kyori") // Relocation of adventure is required while using `adventure-platform` -> otherwise title/actionbar/bossbar will not display on Paper servers } \ No newline at end of file diff --git a/example/src/main/java/dev/peri/yetanothermessageslibrary/example/ExampleListener.java b/example/src/main/java/dev/peri/yetanothermessageslibrary/example/ExampleListener.java index 7534d35..09ad695 100644 --- a/example/src/main/java/dev/peri/yetanothermessageslibrary/example/ExampleListener.java +++ b/example/src/main/java/dev/peri/yetanothermessageslibrary/example/ExampleListener.java @@ -1,7 +1,9 @@ package dev.peri.yetanothermessageslibrary.example; +import dev.peri.yetanothermessageslibrary.SendableMessageService; import dev.peri.yetanothermessageslibrary.example.complex.ExampleMessageDispatcher; import dev.peri.yetanothermessageslibrary.example.config.MessageConfiguration; +import dev.peri.yetanothermessageslibrary.message.BukkitMessageDispatcher; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; @@ -9,8 +11,6 @@ import org.bukkit.event.player.PlayerJoinEvent; import org.bukkit.event.player.PlayerMoveEvent; import org.bukkit.event.player.PlayerTeleportEvent; -import org.mythicprojects.yetanothermessageslibrary.SendableMessageService; -import org.mythicprojects.yetanothermessageslibrary.message.BukkitMessageDispatcher; public class ExampleListener implements Listener { diff --git a/example/src/main/java/dev/peri/yetanothermessageslibrary/example/ExamplePlugin.java b/example/src/main/java/dev/peri/yetanothermessageslibrary/example/ExamplePlugin.java index 8359c33..a6bc810 100644 --- a/example/src/main/java/dev/peri/yetanothermessageslibrary/example/ExamplePlugin.java +++ b/example/src/main/java/dev/peri/yetanothermessageslibrary/example/ExamplePlugin.java @@ -1,8 +1,16 @@ package dev.peri.yetanothermessageslibrary.example; +import dev.peri.yetanothermessageslibrary.BukkitMessageService; +import dev.peri.yetanothermessageslibrary.SendableMessageService; +import dev.peri.yetanothermessageslibrary.adventure.GlobalAdventureSerializer; +import dev.peri.yetanothermessageslibrary.config.serdes.YAMLSerdes; import dev.peri.yetanothermessageslibrary.example.complex.ExampleMessageDispatcher; import dev.peri.yetanothermessageslibrary.example.complex.ExampleMessageService; import dev.peri.yetanothermessageslibrary.example.config.MessageConfiguration; +import dev.peri.yetanothermessageslibrary.locale.BukkitPlayerLocaleProvider; +import dev.peri.yetanothermessageslibrary.message.BukkitMessageDispatcher; +import dev.peri.yetanothermessageslibrary.viewer.BukkitViewerDataSupplier; +import dev.peri.yetanothermessageslibrary.viewer.ViewerFactory; import eu.okaeri.configs.ConfigManager; import eu.okaeri.configs.yaml.bukkit.YamlBukkitConfigurer; import java.io.File; @@ -11,14 +19,6 @@ import net.kyori.adventure.text.minimessage.MiniMessage; import org.bukkit.command.CommandSender; import org.bukkit.plugin.java.JavaPlugin; -import org.mythicprojects.yetanothermessageslibrary.BukkitMessageService; -import org.mythicprojects.yetanothermessageslibrary.SendableMessageService; -import org.mythicprojects.yetanothermessageslibrary.adventure.GlobalAdventureSerializer; -import org.mythicprojects.yetanothermessageslibrary.config.serdes.YAMLSerdes; -import org.mythicprojects.yetanothermessageslibrary.locale.BukkitPlayerLocaleProvider; -import org.mythicprojects.yetanothermessageslibrary.message.BukkitMessageDispatcher; -import org.mythicprojects.yetanothermessageslibrary.viewer.BukkitViewerDataSupplier; -import org.mythicprojects.yetanothermessageslibrary.viewer.ViewerFactory; public class ExamplePlugin extends JavaPlugin { diff --git a/example/src/main/java/dev/peri/yetanothermessageslibrary/example/complex/ExampleMessageDispatcher.java b/example/src/main/java/dev/peri/yetanothermessageslibrary/example/complex/ExampleMessageDispatcher.java index 9023c74..f018ff5 100644 --- a/example/src/main/java/dev/peri/yetanothermessageslibrary/example/complex/ExampleMessageDispatcher.java +++ b/example/src/main/java/dev/peri/yetanothermessageslibrary/example/complex/ExampleMessageDispatcher.java @@ -1,5 +1,8 @@ package dev.peri.yetanothermessageslibrary.example.complex; +import dev.peri.yetanothermessageslibrary.message.BukkitMessageDispatcher; +import dev.peri.yetanothermessageslibrary.message.Sendable; +import dev.peri.yetanothermessageslibrary.viewer.ViewerService; import java.util.Locale; import java.util.function.Function; import org.bukkit.World; @@ -8,9 +11,6 @@ import org.bukkit.entity.Player; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -import org.mythicprojects.yetanothermessageslibrary.message.BukkitMessageDispatcher; -import org.mythicprojects.yetanothermessageslibrary.message.Sendable; -import org.mythicprojects.yetanothermessageslibrary.viewer.ViewerService; public class ExampleMessageDispatcher extends BukkitMessageDispatcher { diff --git a/example/src/main/java/dev/peri/yetanothermessageslibrary/example/complex/ExampleMessageService.java b/example/src/main/java/dev/peri/yetanothermessageslibrary/example/complex/ExampleMessageService.java index 5643f5e..b63f8f3 100644 --- a/example/src/main/java/dev/peri/yetanothermessageslibrary/example/complex/ExampleMessageService.java +++ b/example/src/main/java/dev/peri/yetanothermessageslibrary/example/complex/ExampleMessageService.java @@ -1,12 +1,12 @@ package dev.peri.yetanothermessageslibrary.example.complex; +import dev.peri.yetanothermessageslibrary.SimpleSendableMessageService; import dev.peri.yetanothermessageslibrary.example.config.MessageConfiguration; +import dev.peri.yetanothermessageslibrary.message.MessageDispatcherFactory; +import dev.peri.yetanothermessageslibrary.viewer.ViewerDataSupplier; +import dev.peri.yetanothermessageslibrary.viewer.ViewerFactory; import org.bukkit.command.CommandSender; import org.jetbrains.annotations.NotNull; -import org.mythicprojects.yetanothermessageslibrary.SimpleSendableMessageService; -import org.mythicprojects.yetanothermessageslibrary.message.MessageDispatcherFactory; -import org.mythicprojects.yetanothermessageslibrary.viewer.ViewerDataSupplier; -import org.mythicprojects.yetanothermessageslibrary.viewer.ViewerFactory; public class ExampleMessageService extends SimpleSendableMessageService { diff --git a/example/src/main/java/dev/peri/yetanothermessageslibrary/example/config/MessageConfiguration.java b/example/src/main/java/dev/peri/yetanothermessageslibrary/example/config/MessageConfiguration.java index 3b93305..b37c1bb 100644 --- a/example/src/main/java/dev/peri/yetanothermessageslibrary/example/config/MessageConfiguration.java +++ b/example/src/main/java/dev/peri/yetanothermessageslibrary/example/config/MessageConfiguration.java @@ -1,12 +1,12 @@ package dev.peri.yetanothermessageslibrary.example.config; +import dev.peri.yetanothermessageslibrary.MessageRepository; +import dev.peri.yetanothermessageslibrary.message.SendableMessage; +import dev.peri.yetanothermessageslibrary.message.holder.impl.ActionBarHolder; +import dev.peri.yetanothermessageslibrary.message.holder.impl.BossBarHolder; +import dev.peri.yetanothermessageslibrary.message.holder.impl.ChatHolder; import eu.okaeri.configs.OkaeriConfig; import net.kyori.adventure.bossbar.BossBar; -import org.mythicprojects.yetanothermessageslibrary.MessageRepository; -import org.mythicprojects.yetanothermessageslibrary.message.SendableMessage; -import org.mythicprojects.yetanothermessageslibrary.message.holder.impl.ActionBarHolder; -import org.mythicprojects.yetanothermessageslibrary.message.holder.impl.BossBarHolder; -import org.mythicprojects.yetanothermessageslibrary.message.holder.impl.ChatHolder; public class MessageConfiguration extends OkaeriConfig implements MessageRepository { diff --git a/example/src/main/resources/plugin.yml b/example/src/main/resources/plugin.yml index 94353b0..f301e96 100644 --- a/example/src/main/resources/plugin.yml +++ b/example/src/main/resources/plugin.yml @@ -1,5 +1,5 @@ name: YAML-Example version: 4.2.0 -main: org.mythicprojects.yetanothermessageslibrary.example.ExamplePlugin +main: dev.peri.yetanothermessageslibrary.example.ExamplePlugin author: Peridot website: peri.dev \ No newline at end of file diff --git a/tools/src/main/java/dev/peri/yetanothermessageslibrary/adventure/GlobalAdventureSerializer.java b/tools/src/main/java/dev/peri/yetanothermessageslibrary/adventure/GlobalAdventureSerializer.java index fe8f5e8..ced393d 100644 --- a/tools/src/main/java/dev/peri/yetanothermessageslibrary/adventure/GlobalAdventureSerializer.java +++ b/tools/src/main/java/dev/peri/yetanothermessageslibrary/adventure/GlobalAdventureSerializer.java @@ -14,7 +14,7 @@ * Simple utility class to provide global access to adventure serializer. *

    * This class is used mostly by string replacements ({@link SimpleStringReplacement}, {@link FunctionStringReplacement}) - * and some of {@link org.mythicprojects.yetanothermessageslibrary.message.holder.SendableHolder} implementations. + * and some of {@link dev.peri.yetanothermessageslibrary.message.holder.SendableHolder} implementations. */ public final class GlobalAdventureSerializer { From 1a4320ea905941a66853da20d6596d0f360dea5d Mon Sep 17 00:00:00 2001 From: Peridot Date: Sat, 24 Aug 2024 22:15:14 +0200 Subject: [PATCH 14/17] Fix ActionBarHolderSerializer --- .../config/serdes/YAMLSerdes.java | 4 +-- .../holder/ActionBarHolderSerializer.java | 35 +++++++++++++++++++ .../holder/ActionBarHolderTransformer.java | 26 -------------- 3 files changed, 37 insertions(+), 28 deletions(-) create mode 100644 repository/okaeri/src/main/java/dev/peri/yetanothermessageslibrary/config/serdes/holder/ActionBarHolderSerializer.java delete mode 100644 repository/okaeri/src/main/java/dev/peri/yetanothermessageslibrary/config/serdes/holder/ActionBarHolderTransformer.java diff --git a/repository/okaeri/src/main/java/dev/peri/yetanothermessageslibrary/config/serdes/YAMLSerdes.java b/repository/okaeri/src/main/java/dev/peri/yetanothermessageslibrary/config/serdes/YAMLSerdes.java index 3e73f59..7016e75 100644 --- a/repository/okaeri/src/main/java/dev/peri/yetanothermessageslibrary/config/serdes/YAMLSerdes.java +++ b/repository/okaeri/src/main/java/dev/peri/yetanothermessageslibrary/config/serdes/YAMLSerdes.java @@ -1,7 +1,7 @@ package dev.peri.yetanothermessageslibrary.config.serdes; import dev.peri.yetanothermessageslibrary.adventure.GlobalAdventureSerializer; -import dev.peri.yetanothermessageslibrary.config.serdes.holder.ActionBarHolderTransformer; +import dev.peri.yetanothermessageslibrary.config.serdes.holder.ActionBarHolderSerializer; import dev.peri.yetanothermessageslibrary.config.serdes.holder.BossBarHolderSerializer; import dev.peri.yetanothermessageslibrary.config.serdes.holder.ChatSerializer; import dev.peri.yetanothermessageslibrary.config.serdes.holder.SoundHolderSerializer; @@ -27,7 +27,7 @@ public YAMLSerdes() { public void register(SerdesRegistry registry) { // Messages registry.register(new ChatSerializer()); - registry.register(new ActionBarHolderTransformer()); + registry.register(new ActionBarHolderSerializer(this.componentSerializer)); registry.register(new TitleHolderSerializer()); registry.register(new BossBarHolderSerializer()); registry.register(new SoundHolderSerializer()); diff --git a/repository/okaeri/src/main/java/dev/peri/yetanothermessageslibrary/config/serdes/holder/ActionBarHolderSerializer.java b/repository/okaeri/src/main/java/dev/peri/yetanothermessageslibrary/config/serdes/holder/ActionBarHolderSerializer.java new file mode 100644 index 0000000..b7f6ab4 --- /dev/null +++ b/repository/okaeri/src/main/java/dev/peri/yetanothermessageslibrary/config/serdes/holder/ActionBarHolderSerializer.java @@ -0,0 +1,35 @@ +package dev.peri.yetanothermessageslibrary.config.serdes.holder; + +import dev.peri.yetanothermessageslibrary.message.holder.impl.ActionBarHolder; +import eu.okaeri.configs.schema.GenericsDeclaration; +import eu.okaeri.configs.serdes.DeserializationData; +import eu.okaeri.configs.serdes.ObjectSerializer; +import eu.okaeri.configs.serdes.SerializationData; +import net.kyori.adventure.text.Component; +import org.jetbrains.annotations.NotNull; + +public class ActionBarHolderSerializer implements ObjectSerializer { + + private final net.kyori.adventure.text.serializer.ComponentSerializer componentSerializer; + + public ActionBarHolderSerializer(@NotNull net.kyori.adventure.text.serializer.ComponentSerializer componentSerializer) { + this.componentSerializer = componentSerializer; + } + + @Override + public boolean supports(Class type) { + return ActionBarHolder.class.isAssignableFrom(type); + } + + @Override + public void serialize(ActionBarHolder actionBar, SerializationData data, GenericsDeclaration generics) { + data.setValue(this.componentSerializer.serialize(actionBar.getMessage()), String.class); + } + + @Override + public ActionBarHolder deserialize(DeserializationData data, GenericsDeclaration generics) { + Component component = this.componentSerializer.deserialize(data.getValue(String.class)); + return new ActionBarHolder(component); + } + +} diff --git a/repository/okaeri/src/main/java/dev/peri/yetanothermessageslibrary/config/serdes/holder/ActionBarHolderTransformer.java b/repository/okaeri/src/main/java/dev/peri/yetanothermessageslibrary/config/serdes/holder/ActionBarHolderTransformer.java deleted file mode 100644 index 43b29ce..0000000 --- a/repository/okaeri/src/main/java/dev/peri/yetanothermessageslibrary/config/serdes/holder/ActionBarHolderTransformer.java +++ /dev/null @@ -1,26 +0,0 @@ -package dev.peri.yetanothermessageslibrary.config.serdes.holder; - -import dev.peri.yetanothermessageslibrary.message.holder.impl.ActionBarHolder; -import eu.okaeri.configs.schema.GenericsPair; -import eu.okaeri.configs.serdes.BidirectionalTransformer; -import eu.okaeri.configs.serdes.SerdesContext; -import net.kyori.adventure.text.Component; - -public class ActionBarHolderTransformer extends BidirectionalTransformer { - - @Override - public GenericsPair getPair() { - return this.genericsPair(Component.class, ActionBarHolder.class); - } - - @Override - public ActionBarHolder leftToRight(Component data, SerdesContext serdesContext) { - return new ActionBarHolder(data); - } - - @Override - public Component rightToLeft(ActionBarHolder data, SerdesContext serdesContext) { - return data.getMessage(); - } - -} From f4b85e9462912e3f29216af1da51088fa1135fd0 Mon Sep 17 00:00:00 2001 From: Peridot Date: Tue, 27 Aug 2024 18:44:03 +0200 Subject: [PATCH 15/17] Fix title serialization, revert old actionbar serialization --- .../config/serdes/YAMLSerdes.java | 2 +- .../serdes/holder/ActionBarHolderSerializer.java | 12 ++---------- .../config/serdes/holder/TitleHolderSerializer.java | 4 ++-- 3 files changed, 5 insertions(+), 13 deletions(-) diff --git a/repository/okaeri/src/main/java/dev/peri/yetanothermessageslibrary/config/serdes/YAMLSerdes.java b/repository/okaeri/src/main/java/dev/peri/yetanothermessageslibrary/config/serdes/YAMLSerdes.java index 7016e75..504e9ef 100644 --- a/repository/okaeri/src/main/java/dev/peri/yetanothermessageslibrary/config/serdes/YAMLSerdes.java +++ b/repository/okaeri/src/main/java/dev/peri/yetanothermessageslibrary/config/serdes/YAMLSerdes.java @@ -27,7 +27,7 @@ public YAMLSerdes() { public void register(SerdesRegistry registry) { // Messages registry.register(new ChatSerializer()); - registry.register(new ActionBarHolderSerializer(this.componentSerializer)); + registry.register(new ActionBarHolderSerializer()); registry.register(new TitleHolderSerializer()); registry.register(new BossBarHolderSerializer()); registry.register(new SoundHolderSerializer()); diff --git a/repository/okaeri/src/main/java/dev/peri/yetanothermessageslibrary/config/serdes/holder/ActionBarHolderSerializer.java b/repository/okaeri/src/main/java/dev/peri/yetanothermessageslibrary/config/serdes/holder/ActionBarHolderSerializer.java index b7f6ab4..bd0d249 100644 --- a/repository/okaeri/src/main/java/dev/peri/yetanothermessageslibrary/config/serdes/holder/ActionBarHolderSerializer.java +++ b/repository/okaeri/src/main/java/dev/peri/yetanothermessageslibrary/config/serdes/holder/ActionBarHolderSerializer.java @@ -6,16 +6,9 @@ import eu.okaeri.configs.serdes.ObjectSerializer; import eu.okaeri.configs.serdes.SerializationData; import net.kyori.adventure.text.Component; -import org.jetbrains.annotations.NotNull; public class ActionBarHolderSerializer implements ObjectSerializer { - private final net.kyori.adventure.text.serializer.ComponentSerializer componentSerializer; - - public ActionBarHolderSerializer(@NotNull net.kyori.adventure.text.serializer.ComponentSerializer componentSerializer) { - this.componentSerializer = componentSerializer; - } - @Override public boolean supports(Class type) { return ActionBarHolder.class.isAssignableFrom(type); @@ -23,13 +16,12 @@ public boolean supports(Class type) { @Override public void serialize(ActionBarHolder actionBar, SerializationData data, GenericsDeclaration generics) { - data.setValue(this.componentSerializer.serialize(actionBar.getMessage()), String.class); + data.setValue(actionBar.getMessage(), Component.class); } @Override public ActionBarHolder deserialize(DeserializationData data, GenericsDeclaration generics) { - Component component = this.componentSerializer.deserialize(data.getValue(String.class)); - return new ActionBarHolder(component); + return new ActionBarHolder(data.getValue(Component.class)); } } diff --git a/repository/okaeri/src/main/java/dev/peri/yetanothermessageslibrary/config/serdes/holder/TitleHolderSerializer.java b/repository/okaeri/src/main/java/dev/peri/yetanothermessageslibrary/config/serdes/holder/TitleHolderSerializer.java index e803542..37a0391 100644 --- a/repository/okaeri/src/main/java/dev/peri/yetanothermessageslibrary/config/serdes/holder/TitleHolderSerializer.java +++ b/repository/okaeri/src/main/java/dev/peri/yetanothermessageslibrary/config/serdes/holder/TitleHolderSerializer.java @@ -20,12 +20,12 @@ public boolean supports(Class type) { @Override public void serialize(TitleHolder holder, SerializationData data, GenericsDeclaration generics) { Component title = holder.getTitle(); - if (title.equals(Component.empty())) { + if (!title.equals(Component.empty())) { data.add("title", title, Component.class); } Component subtitle = holder.getSubTitle(); - if (subtitle.equals(Component.empty())) { + if (!subtitle.equals(Component.empty())) { data.add("subtitle", subtitle, Component.class); } From 1d384a9f0bb74d56ac9ab2657cdbe3d39c43b7d8 Mon Sep 17 00:00:00 2001 From: Piotr Karnak Date: Mon, 22 Dec 2025 00:22:06 +0100 Subject: [PATCH 16/17] Make compilable, bump dependencies, force Java 21 --- build.gradle | 11 +++-- platform/bungee/build.gradle | 6 --- .../BungeeMessageService.java | 34 --------------- .../message/BungeeMessageDispatcher.java | 42 ------------------- .../viewer/BungeeViewerDataSupplier.java | 36 ---------------- replaceable/placeholderapi/build.gradle | 4 +- .../config/serdes/ComponentSerializer.java | 2 +- .../serdes/SendableMessageSerializer.java | 2 +- .../holder/ActionBarHolderSerializer.java | 2 +- .../holder/BossBarHolderSerializer.java | 2 +- .../config/serdes/holder/ChatSerializer.java | 2 +- .../serdes/holder/SoundHolderSerializer.java | 2 +- .../serdes/holder/TitleHolderSerializer.java | 2 +- settings.gradle | 13 +++--- 14 files changed, 19 insertions(+), 141 deletions(-) delete mode 100644 platform/bungee/build.gradle delete mode 100644 platform/bungee/src/main/java/dev/peri/yetanothermessageslibrary/BungeeMessageService.java delete mode 100644 platform/bungee/src/main/java/dev/peri/yetanothermessageslibrary/message/BungeeMessageDispatcher.java delete mode 100644 platform/bungee/src/main/java/dev/peri/yetanothermessageslibrary/viewer/BungeeViewerDataSupplier.java diff --git a/build.gradle b/build.gradle index 797e413..4c98729 100644 --- a/build.gradle +++ b/build.gradle @@ -11,20 +11,19 @@ allprojects { apply plugin: 'maven-publish' apply plugin: 'com.github.johnrengelman.shadow' - sourceCompatibility = JavaVersion.VERSION_1_8 - targetCompatibility = JavaVersion.VERSION_1_8 + sourceCompatibility = JavaVersion.VERSION_21 + targetCompatibility = JavaVersion.VERSION_21 compileJava.options.encoding = 'UTF-8' } subprojects { repositories { - mavenCentral() + maven { url "https://repo.titanvale.net/releases" } + maven { url "https://repo.titanvale.net/snapshots" } maven { url "https://hub.spigotmc.org/nexus/content/repositories/snapshots/" } maven { url "https://s01.oss.sonatype.org/content/repositories/snapshots/" } - maven { url "https://repo.papermc.io/repository/maven-public/" } - maven { url "https://storehouse.okaeri.eu/repository/maven-public/" } maven { url "https://repo.extendedclip.com/content/repositories/placeholderapi/" } } @@ -102,4 +101,4 @@ subprojects { } } } -} \ No newline at end of file +} diff --git a/platform/bungee/build.gradle b/platform/bungee/build.gradle deleted file mode 100644 index 8d32f36..0000000 --- a/platform/bungee/build.gradle +++ /dev/null @@ -1,6 +0,0 @@ -dependencies { - api project(':core') - - shadow libs.bungee - shadow adventure.platform.bungee -} \ No newline at end of file diff --git a/platform/bungee/src/main/java/dev/peri/yetanothermessageslibrary/BungeeMessageService.java b/platform/bungee/src/main/java/dev/peri/yetanothermessageslibrary/BungeeMessageService.java deleted file mode 100644 index 5e80a0a..0000000 --- a/platform/bungee/src/main/java/dev/peri/yetanothermessageslibrary/BungeeMessageService.java +++ /dev/null @@ -1,34 +0,0 @@ -package dev.peri.yetanothermessageslibrary; - -import dev.peri.yetanothermessageslibrary.message.BungeeMessageDispatcher; -import dev.peri.yetanothermessageslibrary.viewer.BungeeViewerDataSupplier; -import dev.peri.yetanothermessageslibrary.viewer.ViewerFactory; -import dev.peri.yetanothermessageslibrary.viewer.ViewerService; -import java.util.concurrent.TimeUnit; -import java.util.function.BiConsumer; -import net.kyori.adventure.platform.bungeecord.BungeeAudiences; -import net.md_5.bungee.api.CommandSender; -import net.md_5.bungee.api.plugin.Plugin; -import org.jetbrains.annotations.NotNull; - -public class BungeeMessageService extends SimpleSendableMessageService> { - - public BungeeMessageService(@NotNull ViewerService viewerService) { - super( - viewerService, - BungeeMessageDispatcher::new - ); - } - - public BungeeMessageService(@NotNull Plugin plugin, @NotNull BungeeAudiences adventure) { - this(new ViewerService<>( - new BungeeViewerDataSupplier(adventure), - ViewerFactory.create( wrapScheduler(plugin)) - )); - } - - public static BiConsumer wrapScheduler(Plugin plugin) { - return (runnable, delay) -> plugin.getProxy().getScheduler().schedule(plugin, runnable, delay * 50L, TimeUnit.MILLISECONDS); - } - -} diff --git a/platform/bungee/src/main/java/dev/peri/yetanothermessageslibrary/message/BungeeMessageDispatcher.java b/platform/bungee/src/main/java/dev/peri/yetanothermessageslibrary/message/BungeeMessageDispatcher.java deleted file mode 100644 index 8643567..0000000 --- a/platform/bungee/src/main/java/dev/peri/yetanothermessageslibrary/message/BungeeMessageDispatcher.java +++ /dev/null @@ -1,42 +0,0 @@ -package dev.peri.yetanothermessageslibrary.message; - -import dev.peri.yetanothermessageslibrary.viewer.ViewerService; -import java.util.Locale; -import java.util.function.Function; -import net.md_5.bungee.api.CommandSender; -import net.md_5.bungee.api.ProxyServer; -import org.jetbrains.annotations.Contract; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; - -@SuppressWarnings("unchecked") -public class BungeeMessageDispatcher> - extends SimpleMessageDispatcher { - - public BungeeMessageDispatcher( - @NotNull ViewerService viewerService, - @NotNull Function<@Nullable Object, @NotNull Locale> localeSupplier, - @NotNull Function<@Nullable Object, @Nullable Sendable> messageSupplier - ) { - super(viewerService, localeSupplier, messageSupplier); - } - - @Contract(" -> this") - public DISPATCHER allPlayers() { - this.receivers(ProxyServer.getInstance().getPlayers()); - return (DISPATCHER) this; - } - - @Contract(" -> this") - public DISPATCHER console() { - this.receiver(ProxyServer.getInstance().getConsole()); - return (DISPATCHER) this; - } - - @Contract("_ -> this") - public DISPATCHER permission(@NotNull String permission) { - this.predicate(sender -> sender.hasPermission(permission)); - return (DISPATCHER) this; - } - -} diff --git a/platform/bungee/src/main/java/dev/peri/yetanothermessageslibrary/viewer/BungeeViewerDataSupplier.java b/platform/bungee/src/main/java/dev/peri/yetanothermessageslibrary/viewer/BungeeViewerDataSupplier.java deleted file mode 100644 index 9b58109..0000000 --- a/platform/bungee/src/main/java/dev/peri/yetanothermessageslibrary/viewer/BungeeViewerDataSupplier.java +++ /dev/null @@ -1,36 +0,0 @@ -package dev.peri.yetanothermessageslibrary.viewer; - -import java.util.UUID; -import net.kyori.adventure.audience.Audience; -import net.kyori.adventure.platform.bungeecord.BungeeAudiences; -import net.md_5.bungee.api.CommandSender; -import net.md_5.bungee.api.connection.ProxiedPlayer; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; - -public class BungeeViewerDataSupplier implements ViewerDataSupplier { - - private final BungeeAudiences adventure; - - public BungeeViewerDataSupplier(@NotNull BungeeAudiences adventure) { - this.adventure = adventure; - } - - @Override - public @NotNull Audience getAudience(@NotNull CommandSender receiver) { - return this.adventure.sender(receiver); - } - - @Override - public boolean isConsole(@NotNull CommandSender receiver) { - return !(receiver instanceof ProxiedPlayer); - } - - @Override - public @Nullable UUID getKey(@NotNull CommandSender receiver) { - return receiver instanceof ProxiedPlayer - ? ((ProxiedPlayer) receiver).getUniqueId() - : null; - } - -} diff --git a/replaceable/placeholderapi/build.gradle b/replaceable/placeholderapi/build.gradle index 6cfda84..b4de6e8 100644 --- a/replaceable/placeholderapi/build.gradle +++ b/replaceable/placeholderapi/build.gradle @@ -1,6 +1,6 @@ dependencies { compileOnlyApi project(':core') - compileOnlyApi "me.clip:placeholderapi:2.10.9" + compileOnlyApi "me.clip:placeholderapi:2.11.7" shadow libs.spigot -} \ No newline at end of file +} diff --git a/repository/okaeri/src/main/java/dev/peri/yetanothermessageslibrary/config/serdes/ComponentSerializer.java b/repository/okaeri/src/main/java/dev/peri/yetanothermessageslibrary/config/serdes/ComponentSerializer.java index 8f812d4..4af968a 100644 --- a/repository/okaeri/src/main/java/dev/peri/yetanothermessageslibrary/config/serdes/ComponentSerializer.java +++ b/repository/okaeri/src/main/java/dev/peri/yetanothermessageslibrary/config/serdes/ComponentSerializer.java @@ -16,7 +16,7 @@ public ComponentSerializer(@NotNull net.kyori.adventure.text.serializer.Componen } @Override - public boolean supports(Class type) { + public boolean supports(Class type) { return Component.class.isAssignableFrom(type); } diff --git a/repository/okaeri/src/main/java/dev/peri/yetanothermessageslibrary/config/serdes/SendableMessageSerializer.java b/repository/okaeri/src/main/java/dev/peri/yetanothermessageslibrary/config/serdes/SendableMessageSerializer.java index 85077d8..83dd71d 100644 --- a/repository/okaeri/src/main/java/dev/peri/yetanothermessageslibrary/config/serdes/SendableMessageSerializer.java +++ b/repository/okaeri/src/main/java/dev/peri/yetanothermessageslibrary/config/serdes/SendableMessageSerializer.java @@ -27,7 +27,7 @@ public class SendableMessageSerializer implements ObjectSerializer type) { + public boolean supports(Class type) { return SendableMessage.class.isAssignableFrom(type); } diff --git a/repository/okaeri/src/main/java/dev/peri/yetanothermessageslibrary/config/serdes/holder/ActionBarHolderSerializer.java b/repository/okaeri/src/main/java/dev/peri/yetanothermessageslibrary/config/serdes/holder/ActionBarHolderSerializer.java index bd0d249..657bab0 100644 --- a/repository/okaeri/src/main/java/dev/peri/yetanothermessageslibrary/config/serdes/holder/ActionBarHolderSerializer.java +++ b/repository/okaeri/src/main/java/dev/peri/yetanothermessageslibrary/config/serdes/holder/ActionBarHolderSerializer.java @@ -10,7 +10,7 @@ public class ActionBarHolderSerializer implements ObjectSerializer { @Override - public boolean supports(Class type) { + public boolean supports(Class type) { return ActionBarHolder.class.isAssignableFrom(type); } diff --git a/repository/okaeri/src/main/java/dev/peri/yetanothermessageslibrary/config/serdes/holder/BossBarHolderSerializer.java b/repository/okaeri/src/main/java/dev/peri/yetanothermessageslibrary/config/serdes/holder/BossBarHolderSerializer.java index 6a90b63..01f1a2b 100644 --- a/repository/okaeri/src/main/java/dev/peri/yetanothermessageslibrary/config/serdes/holder/BossBarHolderSerializer.java +++ b/repository/okaeri/src/main/java/dev/peri/yetanothermessageslibrary/config/serdes/holder/BossBarHolderSerializer.java @@ -12,7 +12,7 @@ public class BossBarHolderSerializer implements ObjectSerializer { @Override - public boolean supports(Class type) { + public boolean supports(Class type) { return BossBarHolder.class.isAssignableFrom(type); } diff --git a/repository/okaeri/src/main/java/dev/peri/yetanothermessageslibrary/config/serdes/holder/ChatSerializer.java b/repository/okaeri/src/main/java/dev/peri/yetanothermessageslibrary/config/serdes/holder/ChatSerializer.java index 482d0a9..6281f2b 100644 --- a/repository/okaeri/src/main/java/dev/peri/yetanothermessageslibrary/config/serdes/holder/ChatSerializer.java +++ b/repository/okaeri/src/main/java/dev/peri/yetanothermessageslibrary/config/serdes/holder/ChatSerializer.java @@ -12,7 +12,7 @@ public class ChatSerializer implements ObjectSerializer { @Override - public boolean supports(Class type) { + public boolean supports(Class type) { return ChatHolder.class.isAssignableFrom(type); } diff --git a/repository/okaeri/src/main/java/dev/peri/yetanothermessageslibrary/config/serdes/holder/SoundHolderSerializer.java b/repository/okaeri/src/main/java/dev/peri/yetanothermessageslibrary/config/serdes/holder/SoundHolderSerializer.java index 0f1dacb..d51fd54 100644 --- a/repository/okaeri/src/main/java/dev/peri/yetanothermessageslibrary/config/serdes/holder/SoundHolderSerializer.java +++ b/repository/okaeri/src/main/java/dev/peri/yetanothermessageslibrary/config/serdes/holder/SoundHolderSerializer.java @@ -11,7 +11,7 @@ public class SoundHolderSerializer implements ObjectSerializer { @Override - public boolean supports(Class type) { + public boolean supports(Class type) { return SoundHolder.class.isAssignableFrom(type); } diff --git a/repository/okaeri/src/main/java/dev/peri/yetanothermessageslibrary/config/serdes/holder/TitleHolderSerializer.java b/repository/okaeri/src/main/java/dev/peri/yetanothermessageslibrary/config/serdes/holder/TitleHolderSerializer.java index 37a0391..2248282 100644 --- a/repository/okaeri/src/main/java/dev/peri/yetanothermessageslibrary/config/serdes/holder/TitleHolderSerializer.java +++ b/repository/okaeri/src/main/java/dev/peri/yetanothermessageslibrary/config/serdes/holder/TitleHolderSerializer.java @@ -13,7 +13,7 @@ public class TitleHolderSerializer implements ObjectSerializer { @Override - public boolean supports(Class type) { + public boolean supports(Class type) { return TitleHolder.class.isAssignableFrom(type); } diff --git a/settings.gradle b/settings.gradle index 76aaac7..b07dc7a 100644 --- a/settings.gradle +++ b/settings.gradle @@ -6,7 +6,6 @@ this.setupSubproject("core") // Platforms this.setupSubproject("platform") this.setupSubproject("platform:bukkit", "platform-bukkit") -this.setupSubproject("platform:bungee", "platform-bungee") this.setupSubproject("platform:velocity", "platform-velocity") // Repositories (Data Supplier) @@ -34,22 +33,20 @@ dependencyResolutionManagement { versionCatalogs { libs { library("spigot", "org.spigotmc:spigot-api:1.12.2-R0.1-SNAPSHOT") - library("bungee", "net.md-5:bungeecord-api:1.20-R0.1") - library("velocity", "com.velocitypowered:velocity-api:3.1.1") + library("velocity", "com.velocitypowered:velocity-api:3.4.0-SNAPSHOT") } adventure { - String apiVersion = "4.16.0" + String apiVersion = "4.26.1" library("api", "net.kyori:adventure-api:${apiVersion}") library("serializer-legacy", "net.kyori:adventure-text-serializer-legacy:${apiVersion}") library("serializer-minimessage", "net.kyori:adventure-text-minimessage:${apiVersion}") - String platformVersion = "4.3.1" + String platformVersion = "4.4.1" library("platform-bukkit", "net.kyori:adventure-platform-bukkit:${platformVersion}") - library("platform-bungee", "net.kyori:adventure-platform-bungeecord:${platformVersion}") } okaeri { - library("config", "eu.okaeri:okaeri-configs-core:5.0.0-beta.5") - library("placeholders", "eu.okaeri:okaeri-placeholders-core:4.0.7") + library("config", "eu.okaeri:okaeri-configs-core:6.0.0-beta.27") + library("placeholders", "eu.okaeri:okaeri-placeholders-core:5.1.2") } } } From 34c782f312ce3f1fb37a51e5a41ab0b39ec04c6c Mon Sep 17 00:00:00 2001 From: Piotr Karnak Date: Mon, 22 Dec 2025 00:24:57 +0100 Subject: [PATCH 17/17] Drop deprecated API, hopes everything works --- .../config/serdes/YAMLSerdes.java | 3 +- .../holder/BossBarHolderSerializer.java | 42 +++++++++++++++---- .../serdes/holder/SoundHolderSerializer.java | 30 ++++++++++--- .../serdes/holder/TitleHolderSerializer.java | 30 ++++++++++--- 4 files changed, 87 insertions(+), 18 deletions(-) diff --git a/repository/okaeri/src/main/java/dev/peri/yetanothermessageslibrary/config/serdes/YAMLSerdes.java b/repository/okaeri/src/main/java/dev/peri/yetanothermessageslibrary/config/serdes/YAMLSerdes.java index 504e9ef..37a1a98 100644 --- a/repository/okaeri/src/main/java/dev/peri/yetanothermessageslibrary/config/serdes/YAMLSerdes.java +++ b/repository/okaeri/src/main/java/dev/peri/yetanothermessageslibrary/config/serdes/YAMLSerdes.java @@ -6,12 +6,13 @@ import dev.peri.yetanothermessageslibrary.config.serdes.holder.ChatSerializer; import dev.peri.yetanothermessageslibrary.config.serdes.holder.SoundHolderSerializer; import dev.peri.yetanothermessageslibrary.config.serdes.holder.TitleHolderSerializer; +import eu.okaeri.configs.serdes.OkaeriSerdes; import eu.okaeri.configs.serdes.OkaeriSerdesPack; import eu.okaeri.configs.serdes.SerdesRegistry; import net.kyori.adventure.text.Component; import org.jetbrains.annotations.NotNull; -public class YAMLSerdes implements OkaeriSerdesPack { +public class YAMLSerdes implements OkaeriSerdes { private final net.kyori.adventure.text.serializer.ComponentSerializer componentSerializer; diff --git a/repository/okaeri/src/main/java/dev/peri/yetanothermessageslibrary/config/serdes/holder/BossBarHolderSerializer.java b/repository/okaeri/src/main/java/dev/peri/yetanothermessageslibrary/config/serdes/holder/BossBarHolderSerializer.java index 01f1a2b..09fa488 100644 --- a/repository/okaeri/src/main/java/dev/peri/yetanothermessageslibrary/config/serdes/holder/BossBarHolderSerializer.java +++ b/repository/okaeri/src/main/java/dev/peri/yetanothermessageslibrary/config/serdes/holder/BossBarHolderSerializer.java @@ -18,24 +18,52 @@ public boolean supports(Class type) { @Override public void serialize(BossBarHolder holder, SerializationData data, GenericsDeclaration generics) { - data.add("name", holder.getName(), Component.class); - data.add("color", holder.getColor(), BossBar.Color.class); - data.add("overlay", holder.getOverlay(), BossBar.Overlay.class); + data.set( + "name", + holder.getName(), + Component.class + ); + data.set( + "color", + holder.getColor(), + BossBar.Color.class + ); + data.set( + "overlay", + holder.getOverlay(), + BossBar.Overlay.class + ); if (!holder.getFlags().isEmpty()) { - data.addCollection("flags", holder.getFlags(), BossBar.Flag.class); + data.setCollection( + "flags", + holder.getFlags(), + BossBar.Flag.class + ); } if (holder.getProgress() >= 0) { - data.add("progress", holder.getProgress(), float.class); + data.set( + "progress", + holder.getProgress(), + float.class + ); } if (holder.getStay() >= 0) { - data.add("stay", holder.getStay(), int.class); + data.set( + "stay", + holder.getStay(), + int.class + ); } if (holder.clearOtherBars()) { - data.add("clear-other-bars", true, boolean.class); + data.set( + "clear-other-bars", + true, + boolean.class + ); } } diff --git a/repository/okaeri/src/main/java/dev/peri/yetanothermessageslibrary/config/serdes/holder/SoundHolderSerializer.java b/repository/okaeri/src/main/java/dev/peri/yetanothermessageslibrary/config/serdes/holder/SoundHolderSerializer.java index d51fd54..bf28955 100644 --- a/repository/okaeri/src/main/java/dev/peri/yetanothermessageslibrary/config/serdes/holder/SoundHolderSerializer.java +++ b/repository/okaeri/src/main/java/dev/peri/yetanothermessageslibrary/config/serdes/holder/SoundHolderSerializer.java @@ -18,12 +18,32 @@ public boolean supports(Class type) { @Override public void serialize(SoundHolder holder, SerializationData data, GenericsDeclaration generics) { Sound sound = holder.getSound(); - data.add("name", sound.name().asString(), String.class); - data.add("source", sound.source(), Sound.Source.class); - data.add("volume", sound.volume(), float.class); - data.add("pitch", sound.pitch(), float.class); + data.set( + "name", + sound.name().asString(), + String.class + ); + data.set( + "source", + sound.source(), + Sound.Source.class + ); + data.set( + "volume", + sound.volume(), + float.class + ); + data.set( + "pitch", + sound.pitch(), + float.class + ); if (holder.stopOtherSounds()) { - data.add("stop-other-sounds", true, boolean.class); + data.set( + "stop-other-sounds", + true, + boolean.class + ); } } diff --git a/repository/okaeri/src/main/java/dev/peri/yetanothermessageslibrary/config/serdes/holder/TitleHolderSerializer.java b/repository/okaeri/src/main/java/dev/peri/yetanothermessageslibrary/config/serdes/holder/TitleHolderSerializer.java index 2248282..99ef858 100644 --- a/repository/okaeri/src/main/java/dev/peri/yetanothermessageslibrary/config/serdes/holder/TitleHolderSerializer.java +++ b/repository/okaeri/src/main/java/dev/peri/yetanothermessageslibrary/config/serdes/holder/TitleHolderSerializer.java @@ -21,12 +21,20 @@ public boolean supports(Class type) { public void serialize(TitleHolder holder, SerializationData data, GenericsDeclaration generics) { Component title = holder.getTitle(); if (!title.equals(Component.empty())) { - data.add("title", title, Component.class); + data.set( + "title", + title, + Component.class + ); } Component subtitle = holder.getSubTitle(); if (!subtitle.equals(Component.empty())) { - data.add("subtitle", subtitle, Component.class); + data.set( + "subtitle", + subtitle, + Component.class + ); } Times times = holder.getTimes(); @@ -35,15 +43,27 @@ public void serialize(TitleHolder holder, SerializationData data, GenericsDeclar int fadeOut = ticksFromDuration(times.fadeOut()); if (fadeIn > 0) { - data.add("fade-in", fadeIn, int.class); + data.set( + "fade-in", + fadeIn, + int.class + ); } if (stay > 0) { - data.add("stay", stay, int.class); + data.set( + "stay", + stay, + int.class + ); } if (fadeOut > 0) { - data.add("fade-out", fadeOut, int.class); + data.set( + "fade-out", + fadeOut, + int.class + ); } }