Migrate plugin to MineDown/Kyori-adventure

feat/data-edit-commands
William 2 years ago
parent 2ed7705903
commit 049cd8ecca

@ -10,6 +10,7 @@ version "$ext.plugin_version-${versionMetadata()}"
ext { ext {
set 'version', version.toString() set 'version', version.toString()
set 'adventure_version', adventure_version.toString()
set 'jedis_version', jedis_version.toString() set 'jedis_version', jedis_version.toString()
set 'mysql_driver_version', mysql_driver_version.toString() set 'mysql_driver_version', mysql_driver_version.toString()
set 'snappy_version', snappy_version.toString() set 'snappy_version', snappy_version.toString()

@ -5,14 +5,13 @@ dependencies {
implementation 'net.william278:hsldataconverter:1.0' implementation 'net.william278:hsldataconverter:1.0'
implementation 'me.lucko:commodore:2.2' 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 '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 'dev.dejvokep:boosted-yaml:1.3'
compileOnly 'com.zaxxer:HikariCP:5.0.1' compileOnly 'com.zaxxer:HikariCP:5.0.1'
compileOnly 'net.william278:DesertWell:1.0' compileOnly 'net.william278:DesertWell:1.1'
testImplementation 'org.spigotmc:spigot-api:1.16.5-R0.1-SNAPSHOT'
} }
shadowJar { shadowJar {

@ -6,6 +6,7 @@ import dev.dejvokep.boostedyaml.settings.dumper.DumperSettings;
import dev.dejvokep.boostedyaml.settings.general.GeneralSettings; import dev.dejvokep.boostedyaml.settings.general.GeneralSettings;
import dev.dejvokep.boostedyaml.settings.loader.LoaderSettings; import dev.dejvokep.boostedyaml.settings.loader.LoaderSettings;
import dev.dejvokep.boostedyaml.settings.updater.UpdaterSettings; import dev.dejvokep.boostedyaml.settings.updater.UpdaterSettings;
import net.kyori.adventure.platform.bukkit.BukkitAudiences;
import net.william278.desertwell.Version; import net.william278.desertwell.Version;
import net.william278.husksync.command.BukkitCommand; import net.william278.husksync.command.BukkitCommand;
import net.william278.husksync.command.BukkitCommandType; import net.william278.husksync.command.BukkitCommandType;
@ -67,6 +68,8 @@ public class BukkitHuskSync extends JavaPlugin implements HuskSync {
private Settings settings; private Settings settings;
private Locales locales; private Locales locales;
private List<Migrator> availableMigrators; private List<Migrator> availableMigrators;
private BukkitAudiences audiences;
private static BukkitHuskSync instance; private static BukkitHuskSync instance;
/** /**
@ -92,6 +95,9 @@ public class BukkitHuskSync extends JavaPlugin implements HuskSync {
this.logger = new BukkitLogger(this.getLogger()); this.logger = new BukkitLogger(this.getLogger());
this.resourceReader = new BukkitResourceReader(this); this.resourceReader = new BukkitResourceReader(this);
// Create adventure audience
this.audiences = BukkitAudiences.create(this);
// Load settings and locales // Load settings and locales
getLoggingAdapter().log(Level.INFO, "Loading plugin configuration settings & locales..."); getLoggingAdapter().log(Level.INFO, "Loading plugin configuration settings & locales...");
initialized.set(reload().join()); 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"); getLoggingAdapter().log(Level.INFO, "Successfully established a connection to the database");
} else { } else {
throw new HuskSyncInitializationException("Failed to establish a connection to the database. " + 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 // 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"); getLoggingAdapter().log(Level.INFO, "Successfully established a connection to the Redis server");
} else { } else {
throw new HuskSyncInitializationException("Failed to establish a connection to the Redis server. " + 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 // Register events
@ -188,7 +194,7 @@ public class BukkitHuskSync extends JavaPlugin implements HuskSync {
getLatestVersionIfOutdated().thenAccept(newestVersion -> getLatestVersionIfOutdated().thenAccept(newestVersion ->
newestVersion.ifPresent(newVersion -> getLoggingAdapter().log(Level.WARNING, newestVersion.ifPresent(newVersion -> getLoggingAdapter().log(Level.WARNING,
"An update is available for HuskSync, v" + newVersion "An update is available for HuskSync, v" + newVersion
+ " (Currently running v" + getPluginVersion() + ")"))); + " (Currently running v" + getPluginVersion() + ")")));
} }
} catch (HuskSyncInitializationException exception) { } catch (HuskSyncInitializationException exception) {
getLoggingAdapter().log(Level.SEVERE, """ getLoggingAdapter().log(Level.SEVERE, """
@ -305,6 +311,16 @@ public class BukkitHuskSync extends JavaPlugin implements HuskSync {
return Version.fromMinecraftVersionString(Bukkit.getBukkitVersion()); return Version.fromMinecraftVersionString(Bukkit.getBukkitVersion());
} }
/**
* Returns the adventure Bukkit audiences
*
* @return The adventure Bukkit audiences
*/
@NotNull
public BukkitAudiences getAudiences() {
return audiences;
}
@Override @Override
public CompletableFuture<Boolean> reload() { public CompletableFuture<Boolean> reload() {
return CompletableFuture.supplyAsync(() -> { return CompletableFuture.supplyAsync(() -> {

@ -55,8 +55,9 @@ public class BukkitCommand implements CommandExecutor, TabExecutor {
if (this.command instanceof ConsoleExecutable consoleExecutable) { if (this.command instanceof ConsoleExecutable consoleExecutable) {
consoleExecutable.onConsoleExecute(args); consoleExecutable.onConsoleExecute(args);
} else { } else {
plugin.getLocales().getLocale("error_in_game_command_only"). plugin.getLocales().getLocale("error_in_game_command_only")
ifPresent(locale -> sender.spigot().sendMessage(locale.toComponent())); .ifPresent(locale -> plugin.getAudiences().sender(sender)
.sendMessage(locale.toComponent()));
} }
} }
return true; return true;

@ -1,6 +1,8 @@
package net.william278.husksync.player; 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.ChatMessageType;
import net.md_5.bungee.api.chat.BaseComponent; import net.md_5.bungee.api.chat.BaseComponent;
import net.william278.husksync.BukkitHuskSync; import net.william278.husksync.BukkitHuskSync;
@ -47,10 +49,12 @@ public class BukkitPlayer extends OnlineUser {
PersistentDataType.TAG_CONTAINER}; PersistentDataType.TAG_CONTAINER};
private final Player player; private final Player player;
private final Audience audience;
private BukkitPlayer(@NotNull Player player) { private BukkitPlayer(@NotNull Player player) {
super(player.getUniqueId(), player.getName()); super(player.getUniqueId(), player.getName());
this.player = player; this.player = player;
this.audience = BukkitHuskSync.getInstance().getAudiences().player(player);
} }
public static BukkitPlayer adapt(@NotNull Player player) { public static BukkitPlayer adapt(@NotNull Player player) {
@ -565,8 +569,11 @@ public class BukkitPlayer extends OnlineUser {
@Override @Override
public void showMenu(@NotNull ItemEditorMenu menu) { public void showMenu(@NotNull ItemEditorMenu menu) {
BukkitSerializer.deserializeItemStackArray(menu.itemData.serializedItems).thenAccept(inventoryContents -> { 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, final Inventory inventory = Bukkit.createInventory(player, menu.itemEditorMenuType.slotCount,
BaseComponent.toLegacyText(menu.menuTitle.toComponent())); menu.menuTitle.message());
inventory.setContents(inventoryContents); inventory.setContents(inventoryContents);
Bukkit.getScheduler().runTask(BukkitHuskSync.getInstance(), () -> player.openInventory(inventory)); Bukkit.getScheduler().runTask(BukkitHuskSync.getInstance(), () -> player.openInventory(inventory));
}); });
@ -579,12 +586,16 @@ public class BukkitPlayer extends OnlineUser {
@Override @Override
public void sendActionBar(@NotNull MineDown mineDown) { 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 @Override
public void sendMessage(@NotNull MineDown mineDown) { public void sendMessage(@NotNull MineDown mineDown) {
player.spigot().sendMessage(mineDown.replace().toComponent()); audience.sendMessage(mineDown
.disable(MineDownParser.Option.SIMPLE_FORMATTING)
.replace().toComponent());
} }
/** /**

@ -1,7 +1,5 @@
package net.william278.husksync.util; package net.william278.husksync.util;
import de.themoep.minedown.MineDown;
import net.md_5.bungee.api.chat.TextComponent;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import java.util.logging.Level; import java.util.logging.Level;
@ -24,11 +22,6 @@ public class BukkitLogger extends Logger {
logger.log(level, message); logger.log(level, message);
} }
@Override
public void log(@NotNull Level level, @NotNull MineDown mineDown) {
logger.log(level, TextComponent.toLegacyText(mineDown.toComponent()));
}
@Override @Override
public void info(@NotNull String message) { public void info(@NotNull String message) {
logger.info(message); logger.info(message);

@ -9,6 +9,7 @@ softdepend:
- MysqlPlayerDataBridge - MysqlPlayerDataBridge
- Plan - Plan
libraries: libraries:
- 'net.kyori:adventure-platform-bukkit:${adventure_version}'
- 'redis.clients:jedis:${jedis_version}' - 'redis.clients:jedis:${jedis_version}'
- 'mysql:mysql-connector-java:${mysql_driver_version}' - 'mysql:mysql-connector-java:${mysql_driver_version}'
- 'org.xerial.snappy:snappy-java:${snappy_version}' - 'org.xerial.snappy:snappy-java:${snappy_version}'

@ -1,9 +1,9 @@
dependencies { dependencies {
implementation 'commons-io:commons-io:2.11.0' 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 'com.google.code.gson:gson:2.9.0'
implementation 'dev.dejvokep:boosted-yaml:1.3' 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') { implementation ('com.zaxxer:HikariCP:5.0.1') {
exclude module: 'slf4j-api' exclude module: 'slf4j-api'
} }

@ -1,6 +1,6 @@
package net.william278.husksync.command; package net.william278.husksync.command;
import de.themoep.minedown.MineDown; import de.themoep.minedown.adventure.MineDown;
import net.william278.desertwell.AboutMenu; import net.william278.desertwell.AboutMenu;
import net.william278.husksync.HuskSync; import net.william278.husksync.HuskSync;
import net.william278.husksync.migrator.Migrator; import net.william278.husksync.migrator.Migrator;

@ -1,6 +1,6 @@
package net.william278.husksync.config; package net.william278.husksync.config;
import de.themoep.minedown.MineDown; import de.themoep.minedown.adventure.MineDown;
import dev.dejvokep.boostedyaml.YamlDocument; import dev.dejvokep.boostedyaml.YamlDocument;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;

@ -1,6 +1,6 @@
package net.william278.husksync.editor; 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.command.Permission;
import net.william278.husksync.config.Locales; import net.william278.husksync.config.Locales;
import net.william278.husksync.data.ItemData; import net.william278.husksync.data.ItemData;

@ -1,6 +1,6 @@
package net.william278.husksync.player; 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.config.Settings;
import net.william278.husksync.data.*; import net.william278.husksync.data.*;
import net.william278.husksync.editor.ItemEditorMenu; import net.william278.husksync.editor.ItemEditorMenu;

@ -1,6 +1,5 @@
package net.william278.husksync.util; package net.william278.husksync.util;
import de.themoep.minedown.MineDown;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import java.util.logging.Level; 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 String message);
public abstract void log(@NotNull Level level, @NotNull MineDown mineDown);
public abstract void info(@NotNull String message); public abstract void info(@NotNull String message);
public abstract void severe(@NotNull String message); public abstract void severe(@NotNull String message);

@ -1,6 +1,6 @@
package net.william278.husksync.logger; package net.william278.husksync.logger;
import de.themoep.minedown.MineDown; import de.themoep.minedown.adventure.MineDown;
import net.william278.husksync.util.Logger; import net.william278.husksync.util.Logger;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
@ -22,11 +22,6 @@ public class DummyLogger extends Logger {
System.out.println(level.getName() + ": " + message); System.out.println(level.getName() + ": " + message);
} }
@Override
public void log(@NotNull Level level, @NotNull MineDown mineDown) {
System.out.println(level.getName() + ": " + mineDown.message());
}
@Override @Override
public void info(@NotNull String message) { public void info(@NotNull String message) {
System.out.println(Level.INFO.getName() + ": " + message); System.out.println(Level.INFO.getName() + ": " + message);

@ -1,6 +1,6 @@
package net.william278.husksync.player; 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.data.*;
import net.william278.husksync.editor.ItemEditorMenu; import net.william278.husksync.editor.ItemEditorMenu;
import net.william278.desertwell.Version; import net.william278.desertwell.Version;

@ -8,4 +8,5 @@ plugin_archive=husksync
jedis_version=4.2.3 jedis_version=4.2.3
mysql_driver_version=8.0.30 mysql_driver_version=8.0.30
snappy_version=1.1.8.4 snappy_version=1.1.8.4
adventure_version=4.1.2
Loading…
Cancel
Save