diff --git a/Bukkit/src/main/java/net/frankheijden/serverutils/bukkit/commands/BukkitCommandServerUtils.java b/Bukkit/src/main/java/net/frankheijden/serverutils/bukkit/commands/BukkitCommandServerUtils.java index ffaa7f4..23715ff 100644 --- a/Bukkit/src/main/java/net/frankheijden/serverutils/bukkit/commands/BukkitCommandServerUtils.java +++ b/Bukkit/src/main/java/net/frankheijden/serverutils/bukkit/commands/BukkitCommandServerUtils.java @@ -28,7 +28,8 @@ import net.frankheijden.serverutils.common.utils.ForwardFilter; import net.frankheijden.serverutils.common.utils.ListComponentBuilder; import net.kyori.adventure.text.Component; -import net.kyori.adventure.text.minimessage.Template; +import net.kyori.adventure.text.minimessage.tag.resolver.Placeholder; +import net.kyori.adventure.text.minimessage.tag.resolver.TagResolver; import org.bukkit.Bukkit; import org.bukkit.command.Command; import org.bukkit.command.PluginIdentifiableCommand; @@ -126,7 +127,7 @@ private void handleReloadConfig(CommandContext context) { if (handler == null) { messages.get(BukkitMessageKey.RELOADCONFIG_NOT_EXISTS).sendTo( sender, - Template.of("config", config) + TagResolver.resolver(Placeholder.parsed("config", config)) ); return; } @@ -138,7 +139,7 @@ private void handleReloadConfig(CommandContext context) { if (MinecraftReflectionVersion.MINOR > max) { messages.get(BukkitMessageKey.RELOADCONFIG_NOT_SUPPORTED).sendTo( sender, - Template.of("config", config) + TagResolver.resolver(Placeholder.parsed("config", config)) ); return; } @@ -153,7 +154,8 @@ private void handleReloadConfig(CommandContext context) { BukkitMessageKey key = filter.hasWarnings() ? BukkitMessageKey.RELOADCONFIG_WARNINGS : BukkitMessageKey.RELOADCONFIG_SUCCESS; - plugin.getMessagesResource().get(key).sendTo(sender, Template.of("config", config)); + plugin.getMessagesResource().get(key).sendTo(sender, + TagResolver.resolver(Placeholder.parsed("config", config))); } catch (Exception ex) { filter.stop(Bukkit.getLogger()); diff --git a/Common/src/main/java/net/frankheijden/serverutils/common/commands/CommandPlugins.java b/Common/src/main/java/net/frankheijden/serverutils/common/commands/CommandPlugins.java index 2a36699..06eada2 100644 --- a/Common/src/main/java/net/frankheijden/serverutils/common/commands/CommandPlugins.java +++ b/Common/src/main/java/net/frankheijden/serverutils/common/commands/CommandPlugins.java @@ -14,7 +14,8 @@ import net.frankheijden.serverutils.common.utils.ListComponentBuilder; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.TextComponent; -import net.kyori.adventure.text.minimessage.Template; +import net.kyori.adventure.text.minimessage.tag.resolver.Placeholder; +import net.kyori.adventure.text.minimessage.tag.resolver.TagResolver; @SuppressWarnings("LineLength") public abstract class CommandPlugins, P, C extends ServerUtilsAudience, D extends ServerUtilsPluginDescription> @@ -30,7 +31,7 @@ protected CommandPlugins(U plugin) { * Sends a plugin list to the receiver. * @param sender The receiver of the plugin list. * @param plugins The plugins to be sent. - * @param pluginFormat The format of the plugins to be sent. + * @param hasVersionFlag The format of the plugins to be sent. */ protected void handlePlugins(C sender, List

plugins, boolean hasVersionFlag) { List

filteredPlugins = new ArrayList<>(plugins.size()); @@ -49,7 +50,7 @@ protected void handlePlugins(C sender, List

plugins, boolean hasVersionFlag) sender.sendMessage(messages.get(MessageKey.PLUGINS_HEADER).toComponent()); TextComponent.Builder builder = Component.text(); builder.append(messages.get(MessageKey.PLUGINS_PREFIX).toComponent( - Template.of("count", String.valueOf(filteredPlugins.size())) + TagResolver.resolver(Placeholder.parsed("count", String.valueOf(filteredPlugins.size()))) )); builder.append(ListComponentBuilder.create(filteredPlugins) .separator(messages.get(MessageKey.PLUGINS_SEPARATOR).toComponent()) @@ -62,11 +63,11 @@ protected void handlePlugins(C sender, List

plugins, boolean hasVersionFlag) ? MessageKey.PLUGINS_FORMAT : MessageKey.PLUGINS_FORMAT_DISABLED; formatBuilder.append(messages.get(formatKey).toComponent( - Template.of("plugin", description.getName()) + TagResolver.resolver(Placeholder.parsed("plugin", description.getName())) )); if (hasVersionFlag) { formatBuilder.append(messages.get(MessageKey.PLUGINS_VERSION).toComponent( - Template.of("version", description.getVersion()) + TagResolver.resolver(Placeholder.parsed("version", description.getVersion())) )); } diff --git a/Common/src/main/java/net/frankheijden/serverutils/common/commands/CommandServerUtils.java b/Common/src/main/java/net/frankheijden/serverutils/common/commands/CommandServerUtils.java index 0af37a0..deb2fa9 100644 --- a/Common/src/main/java/net/frankheijden/serverutils/common/commands/CommandServerUtils.java +++ b/Common/src/main/java/net/frankheijden/serverutils/common/commands/CommandServerUtils.java @@ -32,7 +32,8 @@ import net.frankheijden.serverutils.common.utils.KeyValueComponentBuilder; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.TextComponent; -import net.kyori.adventure.text.minimessage.Template; +import net.kyori.adventure.text.minimessage.tag.resolver.Placeholder; +import net.kyori.adventure.text.minimessage.tag.resolver.TagResolver; public abstract class CommandServerUtils, P, C extends ServerUtilsAudience> extends ServerUtilsCommand { @@ -113,8 +114,12 @@ private void handleHelpCommand(CommandContext context) { if (commandElement.shouldDisplayInHelp()) { sender.sendMessage(helpFormatMessage.toComponent( - Template.of("command", shortestCommandAlias), - Template.of("help", commandElement.getDescription().getDescription()) + TagResolver.resolver( + Placeholder.parsed("command", shortestCommandAlias) + ), + TagResolver.resolver( + Placeholder.parsed("help", commandElement.getDescription().getDescription()) + ) )); } @@ -128,8 +133,10 @@ private void handleHelpCommand(CommandContext context) { if (subcommandElement.shouldDisplayInHelp()) { String shortestSubcommandAlias = determineShortestAlias(subcommandElement); sender.sendMessage(helpFormatMessage.toComponent( - Template.of("command", shortestCommandAlias + ' ' + shortestSubcommandAlias), - Template.of("help", subcommandElement.getDescription().getDescription()) + TagResolver.resolver(Placeholder.parsed("command", + shortestCommandAlias + ' ' + shortestSubcommandAlias)), + TagResolver.resolver(Placeholder.parsed("help", + subcommandElement.getDescription().getDescription())) )); } } @@ -146,8 +153,10 @@ private void handleHelpCommand(CommandContext context) { String shortestFlagAlias = determineShortestAlias(flagElement); String flagPrefix = "-" + (flagElement.getMain().equals(shortestFlagAlias) ? "_" : ""); sender.sendMessage(helpFormatMessage.toComponent( - Template.of("command", shortestCommandAlias + ' ' + flagPrefix + shortestFlagAlias), - Template.of("help", flagElement.getDescription().getDescription()) + TagResolver.resolver(Placeholder.parsed("command", + shortestCommandAlias + ' ' + flagPrefix + shortestFlagAlias)), + TagResolver.resolver(Placeholder.parsed("help", + flagElement.getDescription().getDescription())) )); } } @@ -258,11 +267,11 @@ protected boolean checkDependingPlugins(CommandContext context, C sender, Lis if (!dependingPlugins.isEmpty()) { TextComponent.Builder builder = Component.text(); builder.append(messages.get(MessageKey.DEPENDING_PLUGINS_PREFIX).toComponent( - Template.of("plugin", pluginId) + TagResolver.resolver(Placeholder.parsed("plugin", pluginId)) )); builder.append(ListComponentBuilder.create(dependingPlugins) .format(p -> messages.get(MessageKey.DEPENDING_PLUGINS_FORMAT).toComponent( - Template.of("plugin", pluginManager.getPluginId(p)) + TagResolver.resolver(Placeholder.parsed("plugin", pluginManager.getPluginId(p))) )) .separator(messages.get(MessageKey.DEPENDING_PLUGINS_SEPARATOR).toComponent()) .lastSeparator(messages.get(MessageKey.DEPENDING_PLUGINS_LAST_SEPARATOR).toComponent()) @@ -279,7 +288,7 @@ protected boolean checkDependingPlugins(CommandContext context, C sender, Lis .orElse("-f"); sender.sendMessage(messages.get(MessageKey.DEPENDING_PLUGINS_OVERRIDE).toComponent( - Template.of("command", context.getRawInputJoined() + " " + forceFlag) + TagResolver.resolver(Placeholder.parsed("command", context.getRawInputJoined() + " " + forceFlag)) )); } @@ -293,7 +302,8 @@ protected boolean checkServerUtils(CommandContext context, C sender, List

.min(Comparator.comparingInt(String::length)) .orElse("restart"); Component component = plugin.getMessagesResource().get(MessageKey.RELOADPLUGIN_SERVERUTILS).toComponent( - Template.of("command", context.getRawInput().peekFirst() + " " + restartCommand) + TagResolver.resolver(Placeholder.parsed("command", + context.getRawInput().peekFirst() + " " + restartCommand)) ); sender.sendMessage(component); return true; @@ -311,7 +321,7 @@ protected boolean checkProtectedPlugins(C sender, List

plugins) { String pluginId = pluginManager.getPluginId(plugin); if (protectedPlugins.contains(pluginId)) { sender.sendMessage(messagesResource.get(MessageKey.GENERIC_PROTECTED_PLUGIN).toComponent( - Template.of("plugin", pluginId) + TagResolver.resolver(Placeholder.parsed("plugin", pluginId)) )); return true; } @@ -388,7 +398,8 @@ private void createInfo(C sender, String command, T item, InfoCreator cre KeyValueComponentBuilder.create(formatMessage, "key", "value"), listBuilderConsumer -> { ListComponentBuilder listBuilder = ListComponentBuilder.create() - .format(str -> listFormatMessage.toComponent(Template.of("value", str))) + .format(str -> listFormatMessage.toComponent( + TagResolver.resolver(Placeholder.parsed("value", str)))) .separator(separator) .lastSeparator(lastSeparator) .emptyValue(null); diff --git a/Common/src/main/java/net/frankheijden/serverutils/common/config/MessagesResource.java b/Common/src/main/java/net/frankheijden/serverutils/common/config/MessagesResource.java index 652d6ec..6067c4f 100644 --- a/Common/src/main/java/net/frankheijden/serverutils/common/config/MessagesResource.java +++ b/Common/src/main/java/net/frankheijden/serverutils/common/config/MessagesResource.java @@ -7,7 +7,8 @@ import net.frankheijden.serverutils.common.entities.ServerUtilsPlugin; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.minimessage.MiniMessage; -import net.kyori.adventure.text.minimessage.Template; +import net.kyori.adventure.text.minimessage.tag.resolver.Placeholder; +import net.kyori.adventure.text.minimessage.tag.resolver.TagResolver; public class MessagesResource extends ServerUtilsResource { @@ -22,7 +23,7 @@ public class MessagesResource extends ServerUtilsResource { public MessagesResource(ServerUtilsPlugin plugin) { super(plugin, MESSAGES_RESOURCE); this.messageMap = new HashMap<>(); - this.miniMessage = MiniMessage.get(); + this.miniMessage = MiniMessage.miniMessage(); } public Message get(String path) { @@ -54,31 +55,41 @@ public class Message { public Message(PlaceholderConfigKey key) { this.key = key; this.messageString = getConfig().getString("messages." + key.getPath()); - this.component = key.hasPlaceholders() ? null : miniMessage.parse(messageString); + this.component = key.hasPlaceholders() ? null : miniMessage.deserialize(messageString); } /** * Creates a {@link Component}. */ public Component toComponent() { - return this.component == null ? miniMessage.parse(messageString) : this.component; + return this.component == null ? miniMessage.deserialize(messageString) : this.component; } /** * Creates a {@link Component}. */ - public Component toComponent(Template... templates) { - return this.component == null ? miniMessage.parse(messageString, templates) : this.component; + public Component toComponent(TagResolver... templates) { + return this.component == null ? miniMessage.deserialize(messageString, templates) : this.component; } /** * Creates a {@link Component}. */ public Component toComponent(String... placeholders) { - return this.component == null ? miniMessage.parse(messageString, placeholders) : this.component; + if (placeholders.length % 2 != 0) { + throw new IllegalArgumentException("Placeholders must be provided in key-value pairs."); + } + + TagResolver.Builder resolverBuilder = TagResolver.builder(); + for (int i = 0; i < placeholders.length; i += 2) { + resolverBuilder.resolver(Placeholder.parsed(placeholders[i], placeholders[i + 1])); + } + return this.component == null + ? miniMessage.deserialize(messageString, resolverBuilder.build()) + : this.component; } - public void sendTo(ServerUtilsAudience serverAudience, Template... placeholders) { + public void sendTo(ServerUtilsAudience serverAudience, TagResolver... placeholders) { serverAudience.sendMessage(toComponent(placeholders)); } } diff --git a/Common/src/main/java/net/frankheijden/serverutils/common/entities/results/WatchResult.java b/Common/src/main/java/net/frankheijden/serverutils/common/entities/results/WatchResult.java index 9b8b1ad..120eead 100644 --- a/Common/src/main/java/net/frankheijden/serverutils/common/entities/results/WatchResult.java +++ b/Common/src/main/java/net/frankheijden/serverutils/common/entities/results/WatchResult.java @@ -5,7 +5,7 @@ import net.frankheijden.serverutils.common.config.MessageKey; import net.frankheijden.serverutils.common.entities.ServerUtilsAudience; import net.kyori.adventure.text.Component; -import net.kyori.adventure.text.minimessage.Template; +import net.kyori.adventure.text.minimessage.tag.resolver.TagResolver; public enum WatchResult implements AbstractResult { START(MessageKey.WATCHPLUGIN_START), @@ -23,7 +23,7 @@ public enum WatchResult implements AbstractResult { this.key = key; } - public void sendTo(ServerUtilsAudience sender, Template... templates) { + public void sendTo(ServerUtilsAudience sender, TagResolver... templates) { Component component = ServerUtilsApp.getPlugin().getMessagesResource().get(key).toComponent(templates); sender.sendMessage(component); } diff --git a/Common/src/main/java/net/frankheijden/serverutils/common/tasks/PluginWatcherTask.java b/Common/src/main/java/net/frankheijden/serverutils/common/tasks/PluginWatcherTask.java index 26b084f..c5f661b 100644 --- a/Common/src/main/java/net/frankheijden/serverutils/common/tasks/PluginWatcherTask.java +++ b/Common/src/main/java/net/frankheijden/serverutils/common/tasks/PluginWatcherTask.java @@ -28,7 +28,8 @@ import net.frankheijden.serverutils.common.entities.results.WatchResult; import net.frankheijden.serverutils.common.managers.AbstractPluginManager; import net.frankheijden.serverutils.common.utils.FileUtils; -import net.kyori.adventure.text.minimessage.Template; +import net.kyori.adventure.text.minimessage.tag.resolver.Placeholder; +import net.kyori.adventure.text.minimessage.tag.resolver.TagResolver; public class PluginWatcherTask extends AbstractTask { @@ -116,7 +117,8 @@ private void handleWatchEvent(Path path) { ServerUtilsPluginDescription description = descriptionOptional.get(); WatchEntry foundEntry = pluginIdToWatchEntryMap.remove(description.getId()); if (foundEntry != null) { - send(WatchResult.DELETED_FILE_IS_CREATED, Template.of("plugin", foundEntry.pluginId)); + send(WatchResult.DELETED_FILE_IS_CREATED, + TagResolver.resolver(Placeholder.parsed("plugin", foundEntry.pluginId))); fileNameToWatchEntryMap.put(fileName, foundEntry); if (pluginIdToWatchEntryMap.isEmpty()) { @@ -139,7 +141,7 @@ private void checkWatchEntry(WatchEntry entry, String fileName) { AbstractPluginManager pluginManager = plugin.getPluginManager(); Optional fileOptional = pluginManager.getPluginFile(entry.pluginId); if (!fileOptional.isPresent()) { - send(WatchResult.FILE_DELETED, Template.of("plugin", entry.pluginId)); + send(WatchResult.FILE_DELETED, TagResolver.resolver(Placeholder.parsed("plugin", entry.pluginId))); fileNameToWatchEntryMap.remove(fileName); pluginIdToWatchEntryMap.put(entry.pluginId, entry); @@ -183,7 +185,7 @@ private void checkWatchEntry(WatchEntry entry, String fileName) { }, 10L); } - private void send(WatchResult result, Template... templates) { + private void send(WatchResult result, TagResolver... templates) { result.sendTo(sender, templates); if (sender.isPlayer()) { result.sendTo(plugin.getChatProvider().getConsoleServerAudience(), templates); diff --git a/Common/src/main/java/net/frankheijden/serverutils/common/tasks/UpdateCheckerTask.java b/Common/src/main/java/net/frankheijden/serverutils/common/tasks/UpdateCheckerTask.java index b69cf14..0be432d 100644 --- a/Common/src/main/java/net/frankheijden/serverutils/common/tasks/UpdateCheckerTask.java +++ b/Common/src/main/java/net/frankheijden/serverutils/common/tasks/UpdateCheckerTask.java @@ -25,7 +25,8 @@ import net.frankheijden.serverutils.common.utils.VersionUtils; import net.frankheijden.serverutilsupdater.common.Updater; import net.kyori.adventure.text.Component; -import net.kyori.adventure.text.minimessage.Template; +import net.kyori.adventure.text.minimessage.tag.resolver.Placeholder; +import net.kyori.adventure.text.minimessage.tag.resolver.TagResolver; public class UpdateCheckerTask, P> implements Runnable { @@ -136,9 +137,9 @@ public void run() { if (!download || pluginAsset == null) { if (sender.isPlayer()) { Component component = plugin.getMessagesResource().get(MessageKey.UPDATE_AVAILABLE).toComponent( - Template.of("old", ServerUtilsApp.VERSION), - Template.of("new", githubVersion), - Template.of("info", body) + TagResolver.resolver(Placeholder.parsed("old", ServerUtilsApp.VERSION)), + TagResolver.resolver(Placeholder.parsed("new", githubVersion)), + TagResolver.resolver(Placeholder.parsed("info", body)) ); sender.sendMessage(component); } @@ -148,9 +149,9 @@ public void run() { plugin.getLogger().log(Level.INFO, DOWNLOAD_START, pluginAsset.getDownloadUrl()); if (sender.isPlayer()) { Component component = plugin.getMessagesResource().get(MessageKey.UPDATE_DOWNLOADING).toComponent( - Template.of("old", ServerUtilsApp.VERSION), - Template.of("new", githubVersion), - Template.of("info", body) + TagResolver.resolver(Placeholder.parsed("old", ServerUtilsApp.VERSION)), + TagResolver.resolver(Placeholder.parsed("new", githubVersion)), + TagResolver.resolver(Placeholder.parsed("info", body)) ); sender.sendMessage(component); } @@ -286,7 +287,8 @@ private void tryReloadPlugin(File pluginFile, File updaterFile) { private void broadcastDownloadStatus(String githubVersion, boolean isError) { ConfigKey key = isError ? MessageKey.UPDATE_DOWNLOAD_FAILED : MessageKey.UPDATE_DOWNLOAD_SUCCESS; - Component component = plugin.getMessagesResource().get(key).toComponent(Template.of("new", githubVersion)); + Component component = plugin.getMessagesResource().get(key).toComponent( + TagResolver.resolver(Placeholder.parsed("new", githubVersion))); plugin.getChatProvider().broadcast(component, "serverutils.notification.update"); } } diff --git a/Common/src/main/java/net/frankheijden/serverutils/common/utils/KeyValueComponentBuilder.java b/Common/src/main/java/net/frankheijden/serverutils/common/utils/KeyValueComponentBuilder.java index b2e0db3..527eb1d 100644 --- a/Common/src/main/java/net/frankheijden/serverutils/common/utils/KeyValueComponentBuilder.java +++ b/Common/src/main/java/net/frankheijden/serverutils/common/utils/KeyValueComponentBuilder.java @@ -4,12 +4,13 @@ import java.util.List; import net.frankheijden.serverutils.common.config.MessagesResource; import net.kyori.adventure.text.Component; -import net.kyori.adventure.text.minimessage.Template; +import net.kyori.adventure.text.minimessage.tag.resolver.Placeholder; +import net.kyori.adventure.text.minimessage.tag.resolver.TagResolver; public class KeyValueComponentBuilder { private final MessagesResource.Message format; - private final List templatesList; + private final List templatesList; private final String keyPlaceholder; private final String valuePlaceholder; @@ -43,8 +44,8 @@ public KeyValueComponentBuilder.KeyValuePair key(Component key) { return new KeyValuePair(key); } - private KeyValueComponentBuilder add(Template key, Template value) { - this.templatesList.add(new Template[]{ key, value }); + private KeyValueComponentBuilder add(TagResolver key, TagResolver value) { + this.templatesList.add(new TagResolver[]{ key, value }); return this; } @@ -54,7 +55,7 @@ private KeyValueComponentBuilder add(Template key, Template value) { public List build() { List components = new ArrayList<>(templatesList.size()); - for (Template[] templates : templatesList) { + for (TagResolver[] templates : templatesList) { components.add(format.toComponent(templates)); } @@ -63,24 +64,24 @@ public List build() { public class KeyValuePair { - private final Template key; + private final TagResolver key; private KeyValuePair(String key) { - this.key = Template.of(keyPlaceholder, key); + this.key = TagResolver.resolver(Placeholder.parsed(keyPlaceholder, key)); } private KeyValuePair(Component key) { - this.key = Template.of(keyPlaceholder, key); + this.key = TagResolver.resolver(Placeholder.component(keyPlaceholder, key)); } public KeyValueComponentBuilder value(String value) { if (value == null) return KeyValueComponentBuilder.this; - return add(key, Template.of(valuePlaceholder, value)); + return add(key, TagResolver.resolver(Placeholder.parsed(valuePlaceholder, value))); } public KeyValueComponentBuilder value(Component value) { if (value == null) return KeyValueComponentBuilder.this; - return add(key, Template.of(valuePlaceholder, value)); + return add(key, TagResolver.resolver(Placeholder.component(valuePlaceholder, value))); } } } diff --git a/Velocity/src/main/java/net/frankheijden/serverutils/velocity/managers/VelocityPluginManager.java b/Velocity/src/main/java/net/frankheijden/serverutils/velocity/managers/VelocityPluginManager.java index 15ea2c3..3b8968e 100644 --- a/Velocity/src/main/java/net/frankheijden/serverutils/velocity/managers/VelocityPluginManager.java +++ b/Velocity/src/main/java/net/frankheijden/serverutils/velocity/managers/VelocityPluginManager.java @@ -22,9 +22,10 @@ import java.io.File; import java.nio.file.Path; import java.util.ArrayList; +import java.util.Iterator; +import java.util.Set; import java.util.List; import java.util.Optional; -import java.util.Set; import java.util.stream.Collectors; import net.frankheijden.serverutils.common.entities.exceptions.InvalidPluginDescriptionException; import net.frankheijden.serverutils.common.entities.results.CloseablePluginResults; @@ -288,7 +289,13 @@ public CloseablePluginResults unloadOrderedPlugins(List getPlugins() { - return new ArrayList<>(proxy.getPluginManager().getPlugins()); + Iterator plugins = proxy.getPluginManager().getPlugins().iterator(); + List result = new ArrayList<>(); + while (plugins.hasNext()) { + PluginContainer plugin = plugins.next(); + if (plugin.getDescription().getId() != "velocity") result.add(plugin); + } + return result; } @Override diff --git a/Velocity/src/main/java/net/frankheijden/serverutils/velocity/reflection/RVelocityEventManager.java b/Velocity/src/main/java/net/frankheijden/serverutils/velocity/reflection/RVelocityEventManager.java index 0161b11..f9d57ec 100644 --- a/Velocity/src/main/java/net/frankheijden/serverutils/velocity/reflection/RVelocityEventManager.java +++ b/Velocity/src/main/java/net/frankheijden/serverutils/velocity/reflection/RVelocityEventManager.java @@ -1,6 +1,7 @@ package net.frankheijden.serverutils.velocity.reflection; import com.google.common.collect.Multimap; +import com.google.common.util.concurrent.ThreadFactoryBuilder; import com.velocitypowered.api.event.EventHandler; import com.velocitypowered.api.event.EventManager; import com.velocitypowered.api.plugin.PluginContainer; @@ -9,7 +10,8 @@ import java.lang.reflect.Array; import java.util.List; import java.util.concurrent.CompletableFuture; -import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executor; +import java.util.concurrent.Executors; import java.util.stream.Collectors; public class RVelocityEventManager { @@ -17,6 +19,10 @@ public class RVelocityEventManager { private static final MinecraftReflection reflection = MinecraftReflection .of("com.velocitypowered.proxy.event.VelocityEventManager"); + private static final Executor asyncExecutor = Executors + .newFixedThreadPool(1, new ThreadFactoryBuilder() + .setNameFormat("ServerUtils Async Event Executor - #%d").setDaemon(true).build()); + private RVelocityEventManager() {} @SuppressWarnings("rawtypes") @@ -65,8 +71,7 @@ public static CompletableFuture fireForPlugins( Object registrationsEmptyArray = Array.newInstance(RHandlerRegistration.reflection.getClazz(), 0); Class registrationsArrayClass = registrationsEmptyArray.getClass(); - ExecutorService executor = reflection.invoke(manager, "getAsyncExecutor"); - executor.execute(() -> reflection.invoke( + asyncExecutor.execute(() -> reflection.invoke( manager, "fire", ClassObject.of(CompletableFuture.class, future), diff --git a/build.gradle.kts b/build.gradle.kts index 22f6c5c..551b5bc 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -3,7 +3,7 @@ import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar plugins { `java-library` `maven-publish` - id("com.github.johnrengelman.shadow") version "7.1.2" + id("com.gradleup.shadow") version "8.3.5" } group = "net.frankheijden.serverutils" @@ -19,7 +19,7 @@ subprojects { apply(plugin = "java") apply(plugin = "maven-publish") apply(plugin = "checkstyle") - apply(plugin = "com.github.johnrengelman.shadow") + apply(plugin = "com.gradleup.shadow") java { sourceCompatibility = JavaVersion.VERSION_1_8 @@ -30,7 +30,7 @@ subprojects { mavenCentral() maven("https://jitpack.io") maven("https://oss.sonatype.org/content/repositories/snapshots") - maven("https://papermc.io/repo/repository/maven-public/") + maven("https://repo.papermc.io/repository/maven-public/") maven("https://libraries.minecraft.net") } @@ -38,7 +38,7 @@ subprojects { implementation("cloud.commandframework:cloud-core:${VersionConstants.cloudVersion}") implementation("cloud.commandframework:cloud-brigadier:${VersionConstants.cloudVersion}") implementation("com.github.FrankHeijden:MinecraftReflection:1.0.0") - implementation("com.google.code.gson:gson:2.8.6") + implementation("com.google.code.gson:gson:2.11.0") implementation("me.lucko:commodore:2.2") compileOnly("com.mojang:brigadier:1.0.18") diff --git a/buildSrc/src/main/kotlin/VersionConstants.kt b/buildSrc/src/main/kotlin/VersionConstants.kt index 3c4f43e..d9fd39f 100644 --- a/buildSrc/src/main/kotlin/VersionConstants.kt +++ b/buildSrc/src/main/kotlin/VersionConstants.kt @@ -1,7 +1,7 @@ object VersionConstants { - const val cloudVersion = "1.8.0" - const val adventureVersion = "4.11.0" - const val adventurePlatformVersion = "4.1.2" - const val adventureMinimessageVersion = "4.2.0-SNAPSHOT" - const val bstatsVersion = "3.0.0" + const val cloudVersion = "1.8.4" + const val adventureVersion = "4.17.0" + const val adventurePlatformVersion = "4.3.4" + const val adventureMinimessageVersion = "4.17.0" + const val bstatsVersion = "3.1.0" } diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index ae04661..81aa1c0 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.5.1-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.11.1-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists