diff --git a/build.gradle b/build.gradle index d6a0883b..e771856e 100644 --- a/build.gradle +++ b/build.gradle @@ -10,6 +10,7 @@ version "$ext.plugin_version-${versionMetadata()}" ext { set 'version', version.toString() + set 'adventure_version', adventure_version.toString() set 'jedis_version', jedis_version.toString() set 'mysql_driver_version', mysql_driver_version.toString() set 'snappy_version', snappy_version.toString() diff --git a/bukkit/build.gradle b/bukkit/build.gradle index 5af21039..d9aa59d8 100644 --- a/bukkit/build.gradle +++ b/bukkit/build.gradle @@ -5,14 +5,13 @@ dependencies { implementation 'net.william278:hsldataconverter:1.0' implementation 'me.lucko:commodore:2.2' - compileOnly 'commons-io:commons-io:2.11.0' - compileOnly 'de.themoep:minedown:1.7.1-SNAPSHOT' compileOnly 'org.spigotmc:spigot-api:1.16.5-R0.1-SNAPSHOT' + compileOnly 'commons-io:commons-io:2.11.0' + compileOnly 'net.kyori:adventure-platform-bukkit:' + adventure_version + compileOnly 'de.themoep:minedown-adventure:1.7.1-SNAPSHOT' compileOnly 'dev.dejvokep:boosted-yaml:1.3' compileOnly 'com.zaxxer:HikariCP:5.0.1' - compileOnly 'net.william278:DesertWell:1.0' - - testImplementation 'org.spigotmc:spigot-api:1.16.5-R0.1-SNAPSHOT' + compileOnly 'net.william278:DesertWell:1.1' } shadowJar { diff --git a/bukkit/src/main/java/net/william278/husksync/BukkitHuskSync.java b/bukkit/src/main/java/net/william278/husksync/BukkitHuskSync.java index 5f566f5d..b0074b0c 100644 --- a/bukkit/src/main/java/net/william278/husksync/BukkitHuskSync.java +++ b/bukkit/src/main/java/net/william278/husksync/BukkitHuskSync.java @@ -6,6 +6,7 @@ import dev.dejvokep.boostedyaml.settings.dumper.DumperSettings; import dev.dejvokep.boostedyaml.settings.general.GeneralSettings; import dev.dejvokep.boostedyaml.settings.loader.LoaderSettings; import dev.dejvokep.boostedyaml.settings.updater.UpdaterSettings; +import net.kyori.adventure.platform.bukkit.BukkitAudiences; import net.william278.desertwell.Version; import net.william278.husksync.command.BukkitCommand; import net.william278.husksync.command.BukkitCommandType; @@ -67,6 +68,8 @@ public class BukkitHuskSync extends JavaPlugin implements HuskSync { private Settings settings; private Locales locales; private List availableMigrators; + + private BukkitAudiences audiences; private static BukkitHuskSync instance; /** @@ -92,6 +95,9 @@ public class BukkitHuskSync extends JavaPlugin implements HuskSync { this.logger = new BukkitLogger(this.getLogger()); this.resourceReader = new BukkitResourceReader(this); + // Create adventure audience + this.audiences = BukkitAudiences.create(this); + // Load settings and locales getLoggingAdapter().log(Level.INFO, "Loading plugin configuration settings & locales..."); initialized.set(reload().join()); @@ -131,7 +137,7 @@ public class BukkitHuskSync extends JavaPlugin implements HuskSync { getLoggingAdapter().log(Level.INFO, "Successfully established a connection to the database"); } else { throw new HuskSyncInitializationException("Failed to establish a connection to the database. " + - "Please check the supplied database credentials in the config file"); + "Please check the supplied database credentials in the config file"); } // Prepare redis connection @@ -142,7 +148,7 @@ public class BukkitHuskSync extends JavaPlugin implements HuskSync { getLoggingAdapter().log(Level.INFO, "Successfully established a connection to the Redis server"); } else { throw new HuskSyncInitializationException("Failed to establish a connection to the Redis server. " + - "Please check the supplied Redis credentials in the config file"); + "Please check the supplied Redis credentials in the config file"); } // Register events @@ -188,7 +194,7 @@ public class BukkitHuskSync extends JavaPlugin implements HuskSync { getLatestVersionIfOutdated().thenAccept(newestVersion -> newestVersion.ifPresent(newVersion -> getLoggingAdapter().log(Level.WARNING, "An update is available for HuskSync, v" + newVersion - + " (Currently running v" + getPluginVersion() + ")"))); + + " (Currently running v" + getPluginVersion() + ")"))); } } catch (HuskSyncInitializationException exception) { getLoggingAdapter().log(Level.SEVERE, """ @@ -305,6 +311,16 @@ public class BukkitHuskSync extends JavaPlugin implements HuskSync { return Version.fromMinecraftVersionString(Bukkit.getBukkitVersion()); } + /** + * Returns the adventure Bukkit audiences + * + * @return The adventure Bukkit audiences + */ + @NotNull + public BukkitAudiences getAudiences() { + return audiences; + } + @Override public CompletableFuture reload() { return CompletableFuture.supplyAsync(() -> { diff --git a/bukkit/src/main/java/net/william278/husksync/command/BukkitCommand.java b/bukkit/src/main/java/net/william278/husksync/command/BukkitCommand.java index ef9e39bd..173216ce 100644 --- a/bukkit/src/main/java/net/william278/husksync/command/BukkitCommand.java +++ b/bukkit/src/main/java/net/william278/husksync/command/BukkitCommand.java @@ -55,8 +55,9 @@ public class BukkitCommand implements CommandExecutor, TabExecutor { if (this.command instanceof ConsoleExecutable consoleExecutable) { consoleExecutable.onConsoleExecute(args); } else { - plugin.getLocales().getLocale("error_in_game_command_only"). - ifPresent(locale -> sender.spigot().sendMessage(locale.toComponent())); + plugin.getLocales().getLocale("error_in_game_command_only") + .ifPresent(locale -> plugin.getAudiences().sender(sender) + .sendMessage(locale.toComponent())); } } return true; diff --git a/bukkit/src/main/java/net/william278/husksync/player/BukkitPlayer.java b/bukkit/src/main/java/net/william278/husksync/player/BukkitPlayer.java index e1503c60..87e07cf4 100644 --- a/bukkit/src/main/java/net/william278/husksync/player/BukkitPlayer.java +++ b/bukkit/src/main/java/net/william278/husksync/player/BukkitPlayer.java @@ -1,6 +1,8 @@ package net.william278.husksync.player; -import de.themoep.minedown.MineDown; +import de.themoep.minedown.adventure.MineDown; +import de.themoep.minedown.adventure.MineDownParser; +import net.kyori.adventure.audience.Audience; import net.md_5.bungee.api.ChatMessageType; import net.md_5.bungee.api.chat.BaseComponent; import net.william278.husksync.BukkitHuskSync; @@ -47,10 +49,12 @@ public class BukkitPlayer extends OnlineUser { PersistentDataType.TAG_CONTAINER}; private final Player player; + private final Audience audience; private BukkitPlayer(@NotNull Player player) { super(player.getUniqueId(), player.getName()); this.player = player; + this.audience = BukkitHuskSync.getInstance().getAudiences().player(player); } public static BukkitPlayer adapt(@NotNull Player player) { @@ -565,8 +569,11 @@ public class BukkitPlayer extends OnlineUser { @Override public void showMenu(@NotNull ItemEditorMenu menu) { BukkitSerializer.deserializeItemStackArray(menu.itemData.serializedItems).thenAccept(inventoryContents -> { + //todo show the inventory properly + /*final Inventory inventory = Bukkit.createInventory(player, menu.itemEditorMenuType.slotCount, + BaseComponent.toLegacyText(menu.menuTitle.toComponent()));*/ final Inventory inventory = Bukkit.createInventory(player, menu.itemEditorMenuType.slotCount, - BaseComponent.toLegacyText(menu.menuTitle.toComponent())); + menu.menuTitle.message()); inventory.setContents(inventoryContents); Bukkit.getScheduler().runTask(BukkitHuskSync.getInstance(), () -> player.openInventory(inventory)); }); @@ -579,12 +586,16 @@ public class BukkitPlayer extends OnlineUser { @Override public void sendActionBar(@NotNull MineDown mineDown) { - player.spigot().sendMessage(ChatMessageType.ACTION_BAR, mineDown.replace().toComponent()); + audience.sendActionBar(mineDown + .disable(MineDownParser.Option.SIMPLE_FORMATTING) + .replace().toComponent()); } @Override public void sendMessage(@NotNull MineDown mineDown) { - player.spigot().sendMessage(mineDown.replace().toComponent()); + audience.sendMessage(mineDown + .disable(MineDownParser.Option.SIMPLE_FORMATTING) + .replace().toComponent()); } /** diff --git a/bukkit/src/main/java/net/william278/husksync/util/BukkitLogger.java b/bukkit/src/main/java/net/william278/husksync/util/BukkitLogger.java index c6941e92..c87a5673 100644 --- a/bukkit/src/main/java/net/william278/husksync/util/BukkitLogger.java +++ b/bukkit/src/main/java/net/william278/husksync/util/BukkitLogger.java @@ -1,7 +1,5 @@ package net.william278.husksync.util; -import de.themoep.minedown.MineDown; -import net.md_5.bungee.api.chat.TextComponent; import org.jetbrains.annotations.NotNull; import java.util.logging.Level; @@ -24,11 +22,6 @@ public class BukkitLogger extends Logger { logger.log(level, message); } - @Override - public void log(@NotNull Level level, @NotNull MineDown mineDown) { - logger.log(level, TextComponent.toLegacyText(mineDown.toComponent())); - } - @Override public void info(@NotNull String message) { logger.info(message); diff --git a/bukkit/src/main/resources/plugin.yml b/bukkit/src/main/resources/plugin.yml index 1487b018..2d0c9e46 100644 --- a/bukkit/src/main/resources/plugin.yml +++ b/bukkit/src/main/resources/plugin.yml @@ -9,6 +9,7 @@ softdepend: - MysqlPlayerDataBridge - Plan libraries: + - 'net.kyori:adventure-platform-bukkit:${adventure_version}' - 'redis.clients:jedis:${jedis_version}' - 'mysql:mysql-connector-java:${mysql_driver_version}' - 'org.xerial.snappy:snappy-java:${snappy_version}' diff --git a/common/build.gradle b/common/build.gradle index 951a3f09..0f447118 100644 --- a/common/build.gradle +++ b/common/build.gradle @@ -1,9 +1,9 @@ dependencies { implementation 'commons-io:commons-io:2.11.0' - implementation 'de.themoep:minedown:1.7.1-SNAPSHOT' + implementation 'de.themoep:minedown-adventure:1.7.1-SNAPSHOT' implementation 'com.google.code.gson:gson:2.9.0' implementation 'dev.dejvokep:boosted-yaml:1.3' - implementation 'net.william278:DesertWell:1.0' + implementation 'net.william278:DesertWell:1.1' implementation ('com.zaxxer:HikariCP:5.0.1') { exclude module: 'slf4j-api' } diff --git a/common/src/main/java/net/william278/husksync/command/HuskSyncCommand.java b/common/src/main/java/net/william278/husksync/command/HuskSyncCommand.java index f6a5fe89..de53c4d6 100644 --- a/common/src/main/java/net/william278/husksync/command/HuskSyncCommand.java +++ b/common/src/main/java/net/william278/husksync/command/HuskSyncCommand.java @@ -1,6 +1,6 @@ package net.william278.husksync.command; -import de.themoep.minedown.MineDown; +import de.themoep.minedown.adventure.MineDown; import net.william278.desertwell.AboutMenu; import net.william278.husksync.HuskSync; import net.william278.husksync.migrator.Migrator; diff --git a/common/src/main/java/net/william278/husksync/config/Locales.java b/common/src/main/java/net/william278/husksync/config/Locales.java index cf5c3deb..330c8d00 100644 --- a/common/src/main/java/net/william278/husksync/config/Locales.java +++ b/common/src/main/java/net/william278/husksync/config/Locales.java @@ -1,6 +1,6 @@ package net.william278.husksync.config; -import de.themoep.minedown.MineDown; +import de.themoep.minedown.adventure.MineDown; import dev.dejvokep.boostedyaml.YamlDocument; import org.jetbrains.annotations.NotNull; diff --git a/common/src/main/java/net/william278/husksync/editor/ItemEditorMenu.java b/common/src/main/java/net/william278/husksync/editor/ItemEditorMenu.java index 7accc80f..36b984f8 100644 --- a/common/src/main/java/net/william278/husksync/editor/ItemEditorMenu.java +++ b/common/src/main/java/net/william278/husksync/editor/ItemEditorMenu.java @@ -1,6 +1,6 @@ package net.william278.husksync.editor; -import de.themoep.minedown.MineDown; +import de.themoep.minedown.adventure.MineDown; import net.william278.husksync.command.Permission; import net.william278.husksync.config.Locales; import net.william278.husksync.data.ItemData; diff --git a/common/src/main/java/net/william278/husksync/player/OnlineUser.java b/common/src/main/java/net/william278/husksync/player/OnlineUser.java index a28a35d8..b3deb3c0 100644 --- a/common/src/main/java/net/william278/husksync/player/OnlineUser.java +++ b/common/src/main/java/net/william278/husksync/player/OnlineUser.java @@ -1,6 +1,6 @@ package net.william278.husksync.player; -import de.themoep.minedown.MineDown; +import de.themoep.minedown.adventure.MineDown; import net.william278.husksync.config.Settings; import net.william278.husksync.data.*; import net.william278.husksync.editor.ItemEditorMenu; diff --git a/common/src/main/java/net/william278/husksync/util/Logger.java b/common/src/main/java/net/william278/husksync/util/Logger.java index 05fd74b1..d13546cc 100644 --- a/common/src/main/java/net/william278/husksync/util/Logger.java +++ b/common/src/main/java/net/william278/husksync/util/Logger.java @@ -1,6 +1,5 @@ package net.william278.husksync.util; -import de.themoep.minedown.MineDown; import org.jetbrains.annotations.NotNull; import java.util.logging.Level; @@ -16,8 +15,6 @@ public abstract class Logger { public abstract void log(@NotNull Level level, @NotNull String message); - public abstract void log(@NotNull Level level, @NotNull MineDown mineDown); - public abstract void info(@NotNull String message); public abstract void severe(@NotNull String message); diff --git a/common/src/test/java/net/william278/husksync/logger/DummyLogger.java b/common/src/test/java/net/william278/husksync/logger/DummyLogger.java index c44378a1..ffd60dba 100644 --- a/common/src/test/java/net/william278/husksync/logger/DummyLogger.java +++ b/common/src/test/java/net/william278/husksync/logger/DummyLogger.java @@ -1,6 +1,6 @@ package net.william278.husksync.logger; -import de.themoep.minedown.MineDown; +import de.themoep.minedown.adventure.MineDown; import net.william278.husksync.util.Logger; import org.jetbrains.annotations.NotNull; @@ -22,11 +22,6 @@ public class DummyLogger extends Logger { System.out.println(level.getName() + ": " + message); } - @Override - public void log(@NotNull Level level, @NotNull MineDown mineDown) { - System.out.println(level.getName() + ": " + mineDown.message()); - } - @Override public void info(@NotNull String message) { System.out.println(Level.INFO.getName() + ": " + message); diff --git a/common/src/test/java/net/william278/husksync/player/DummyPlayer.java b/common/src/test/java/net/william278/husksync/player/DummyPlayer.java index 06bfdd69..1a059a99 100644 --- a/common/src/test/java/net/william278/husksync/player/DummyPlayer.java +++ b/common/src/test/java/net/william278/husksync/player/DummyPlayer.java @@ -1,6 +1,6 @@ package net.william278.husksync.player; -import de.themoep.minedown.MineDown; +import de.themoep.minedown.adventure.MineDown; import net.william278.husksync.data.*; import net.william278.husksync.editor.ItemEditorMenu; import net.william278.desertwell.Version; diff --git a/gradle.properties b/gradle.properties index d2bffd12..49e654a6 100644 --- a/gradle.properties +++ b/gradle.properties @@ -8,4 +8,5 @@ plugin_archive=husksync jedis_version=4.2.3 mysql_driver_version=8.0.30 -snappy_version=1.1.8.4 \ No newline at end of file +snappy_version=1.1.8.4 +adventure_version=4.1.2 \ No newline at end of file