Close plugins internally when reloading them instead of externally

This commit is contained in:
Frank van der Heijden 2020-07-19 21:55:00 +02:00
parent a0e0072f12
commit 4b6008299b
No known key found for this signature in database
GPG key ID: 26DA56488D314D11
6 changed files with 23 additions and 26 deletions

View file

@ -195,9 +195,8 @@ public class CommandServerUtils extends BaseCommand {
@CommandPermission("serverutils.reloadplugin")
@Description("Reloads a specified plugin.")
public void onReloadPlugin(CommandSender sender, String pluginName) {
CloseableResult result = BukkitPluginManager.get().reloadPlugin(pluginName);
result.getResult().sendTo(BukkitUtils.wrap(sender), "reload", pluginName);
result.tryClose();
Result result = BukkitPluginManager.get().reloadPlugin(pluginName);
result.sendTo(BukkitUtils.wrap(sender), "reload", pluginName);
}
/**

View file

@ -179,9 +179,9 @@ public class BukkitPluginManager extends AbstractPluginManager<Plugin> {
* @return The result of the reload.
*/
@Override
public CloseableResult reloadPlugin(String pluginName) {
public Result reloadPlugin(String pluginName) {
Plugin plugin = Bukkit.getPluginManager().getPlugin(pluginName);
if (plugin == null) return new CloseableResult(Result.NOT_EXISTS);
if (plugin == null) return Result.NOT_EXISTS;
return reloadPlugin(plugin);
}
@ -191,21 +191,22 @@ public class BukkitPluginManager extends AbstractPluginManager<Plugin> {
* @return The result of the reload.
*/
@Override
public CloseableResult reloadPlugin(Plugin plugin) {
public Result reloadPlugin(Plugin plugin) {
Result disableResult = disablePlugin(plugin);
if (disableResult != Result.SUCCESS && disableResult != Result.ALREADY_DISABLED) {
return new CloseableResult(disableResult);
return disableResult;
}
CloseableResult result = unloadPlugin(plugin);
if (result.getResult() != Result.SUCCESS) return result;
if (result.getResult() != Result.SUCCESS) return result.getResult();
result.tryClose();
File pluginFile = getPluginFile(plugin.getName());
if (pluginFile == null) return result.set(Result.FILE_DELETED);
if (pluginFile == null) return Result.FILE_DELETED;
BukkitLoadResult loadResult = loadPlugin(pluginFile);
if (!loadResult.isSuccess()) return result.set(loadResult.getResult());
return result.set(enablePlugin(loadResult.get()));
if (!loadResult.isSuccess()) return loadResult.getResult();
return enablePlugin(loadResult.get());
}
/**

View file

@ -136,9 +136,8 @@ public class CommandServerUtils extends BaseCommand {
@CommandPermission("serverutils.reloadplugin")
@Description("Reloads a specified plugin.")
public void onReloadPlugin(CommandSender sender, String pluginName) {
CloseableResult result = BungeePluginManager.get().reloadPlugin(pluginName);
result.getResult().sendTo(BungeeUtils.wrap(sender), "reload", pluginName);
result.tryClose();
Result result = BungeePluginManager.get().reloadPlugin(pluginName);
result.sendTo(BungeeUtils.wrap(sender), "reload", pluginName);
}
/**

View file

@ -115,25 +115,25 @@ public class BungeePluginManager extends AbstractPluginManager<Plugin> {
}
@Override
public CloseableResult reloadPlugin(String pluginName) {
public Result reloadPlugin(String pluginName) {
Plugin plugin = proxy.getPluginManager().getPlugin(pluginName);
if (plugin == null) return new CloseableResult(Result.NOT_ENABLED);
if (plugin == null) return Result.NOT_ENABLED;
return reloadPlugin(plugin);
}
@Override
public CloseableResult reloadPlugin(Plugin plugin) {
public Result reloadPlugin(Plugin plugin) {
CloseableResult result = unloadPlugin(plugin);
if (result.getResult() != Result.SUCCESS) return result;
if (result.getResult() != Result.SUCCESS) return result.getResult();
result.tryClose();
File file = getPluginFile(plugin.getDescription().getName());
if (file == null) return result.set(Result.FILE_DELETED);
if (file == null) return Result.FILE_DELETED;
BungeeLoadResult loadResult = loadPlugin(file);
if (!loadResult.isSuccess()) return result.set(loadResult.getResult());
if (!loadResult.isSuccess()) return loadResult.getResult();
return result.set(enablePlugin(loadResult.get()));
return enablePlugin(loadResult.get());
}
@Override

View file

@ -15,9 +15,9 @@ public abstract class AbstractPluginManager<T> extends PluginProvider<T> {
public abstract Result enablePlugin(T plugin);
public abstract CloseableResult reloadPlugin(String pluginName);
public abstract Result reloadPlugin(String pluginName);
public abstract CloseableResult reloadPlugin(T plugin);
public abstract Result reloadPlugin(T plugin);
public abstract CloseableResult unloadPlugin(String pluginName);

View file

@ -16,7 +16,6 @@ import net.frankheijden.serverutils.common.ServerUtilsApp;
import net.frankheijden.serverutils.common.config.Config;
import net.frankheijden.serverutils.common.config.Messenger;
import net.frankheijden.serverutils.common.config.YamlConfig;
import net.frankheijden.serverutils.common.entities.CloseableResult;
import net.frankheijden.serverutils.common.entities.ServerCommandSender;
import net.frankheijden.serverutils.common.entities.ServerUtilsPlugin;
import net.frankheijden.serverutils.common.managers.AbstractVersionManager;
@ -181,9 +180,8 @@ public class UpdateCheckerTask implements Runnable {
if (isStartupCheck()) {
plugin.getLogger().info(String.format(DOWNLOADED_RESTART, downloadedVersion));
CloseableResult result = plugin.getPluginManager().reloadPlugin((Object)ServerUtilsApp.getPlatformPlugin());
plugin.getPluginManager().reloadPlugin((Object)ServerUtilsApp.getPlatformPlugin());
plugin.getLogger().info(String.format(UPGRADE_SUCCESS, downloadedVersion));
result.tryClose();
} else {
broadcastDownloadStatus(downloadedVersion, false);
}