From 29f4f80a5c0a77f98d9b8a008ab2089a4bcb2d58 Mon Sep 17 00:00:00 2001 From: Lenni0451 <20379977+Lenni0451@users.noreply.github.com> Date: Sun, 22 Jan 2023 20:10:56 +0100 Subject: [PATCH] Fixed commands missing after loading a plugin --- gradle.properties | 2 +- .../java/net/lenni0451/spm/utils/PluginUtils.java | 12 ++++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index 1a533a9..5825ea7 100644 --- a/gradle.properties +++ b/gradle.properties @@ -6,5 +6,5 @@ org.gradle.configureondemand=true #Maven settings maven_name=SpigotPluginManager maven_group=net.lenni0451 -maven_version=2.7.2 +maven_version=2.7.3 updatable=true diff --git a/src/main/java/net/lenni0451/spm/utils/PluginUtils.java b/src/main/java/net/lenni0451/spm/utils/PluginUtils.java index 267f571..d0ce33c 100644 --- a/src/main/java/net/lenni0451/spm/utils/PluginUtils.java +++ b/src/main/java/net/lenni0451/spm/utils/PluginUtils.java @@ -252,6 +252,12 @@ public Plugin loadPlugin(final String name) { // throw new IllegalStateException("Unable to add to plugin list"); throw new IllegalStateException(I18n.t("pm.pluginutils.loadPlugin.notAdded")); } + try { //Synchronize the commands between client/server on newer versions + Method syncCommands = Bukkit.getServer().getClass().getDeclaredMethod("syncCommands"); + syncCommands.setAccessible(true); + syncCommands.invoke(Bukkit.getServer()); + } catch (Throwable ignored) { + } return targetPlugin; } @@ -363,6 +369,12 @@ public void unloadPlugin(final Plugin plugin) { for (String s : I18n.mt("pm.pluginutils.unloadPlugin.unknownClassLoader")) Logger.sendConsole(s); } + try { //Synchronize the commands between client/server on newer versions + Method syncCommands = Bukkit.getServer().getClass().getDeclaredMethod("syncCommands"); + syncCommands.setAccessible(true); + syncCommands.invoke(Bukkit.getServer()); + } catch (Throwable ignored) { + } System.gc(); //Hopefully remove all leftover plugin classes and references }