Close plugins internally when reloading them instead of externally
This commit is contained in:
parent
a0e0072f12
commit
4b6008299b
6 changed files with 23 additions and 26 deletions
|
|
@ -195,9 +195,8 @@ public class CommandServerUtils extends BaseCommand {
|
||||||
@CommandPermission("serverutils.reloadplugin")
|
@CommandPermission("serverutils.reloadplugin")
|
||||||
@Description("Reloads a specified plugin.")
|
@Description("Reloads a specified plugin.")
|
||||||
public void onReloadPlugin(CommandSender sender, String pluginName) {
|
public void onReloadPlugin(CommandSender sender, String pluginName) {
|
||||||
CloseableResult result = BukkitPluginManager.get().reloadPlugin(pluginName);
|
Result result = BukkitPluginManager.get().reloadPlugin(pluginName);
|
||||||
result.getResult().sendTo(BukkitUtils.wrap(sender), "reload", pluginName);
|
result.sendTo(BukkitUtils.wrap(sender), "reload", pluginName);
|
||||||
result.tryClose();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
|
|
@ -179,9 +179,9 @@ public class BukkitPluginManager extends AbstractPluginManager<Plugin> {
|
||||||
* @return The result of the reload.
|
* @return The result of the reload.
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public CloseableResult reloadPlugin(String pluginName) {
|
public Result reloadPlugin(String pluginName) {
|
||||||
Plugin plugin = Bukkit.getPluginManager().getPlugin(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);
|
return reloadPlugin(plugin);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -191,21 +191,22 @@ public class BukkitPluginManager extends AbstractPluginManager<Plugin> {
|
||||||
* @return The result of the reload.
|
* @return The result of the reload.
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public CloseableResult reloadPlugin(Plugin plugin) {
|
public Result reloadPlugin(Plugin plugin) {
|
||||||
Result disableResult = disablePlugin(plugin);
|
Result disableResult = disablePlugin(plugin);
|
||||||
if (disableResult != Result.SUCCESS && disableResult != Result.ALREADY_DISABLED) {
|
if (disableResult != Result.SUCCESS && disableResult != Result.ALREADY_DISABLED) {
|
||||||
return new CloseableResult(disableResult);
|
return disableResult;
|
||||||
}
|
}
|
||||||
|
|
||||||
CloseableResult result = unloadPlugin(plugin);
|
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());
|
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);
|
BukkitLoadResult loadResult = loadPlugin(pluginFile);
|
||||||
if (!loadResult.isSuccess()) return result.set(loadResult.getResult());
|
if (!loadResult.isSuccess()) return loadResult.getResult();
|
||||||
return result.set(enablePlugin(loadResult.get()));
|
return enablePlugin(loadResult.get());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
|
|
@ -136,9 +136,8 @@ public class CommandServerUtils extends BaseCommand {
|
||||||
@CommandPermission("serverutils.reloadplugin")
|
@CommandPermission("serverutils.reloadplugin")
|
||||||
@Description("Reloads a specified plugin.")
|
@Description("Reloads a specified plugin.")
|
||||||
public void onReloadPlugin(CommandSender sender, String pluginName) {
|
public void onReloadPlugin(CommandSender sender, String pluginName) {
|
||||||
CloseableResult result = BungeePluginManager.get().reloadPlugin(pluginName);
|
Result result = BungeePluginManager.get().reloadPlugin(pluginName);
|
||||||
result.getResult().sendTo(BungeeUtils.wrap(sender), "reload", pluginName);
|
result.sendTo(BungeeUtils.wrap(sender), "reload", pluginName);
|
||||||
result.tryClose();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
|
|
@ -115,25 +115,25 @@ public class BungeePluginManager extends AbstractPluginManager<Plugin> {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public CloseableResult reloadPlugin(String pluginName) {
|
public Result reloadPlugin(String pluginName) {
|
||||||
Plugin plugin = proxy.getPluginManager().getPlugin(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);
|
return reloadPlugin(plugin);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public CloseableResult reloadPlugin(Plugin plugin) {
|
public Result reloadPlugin(Plugin plugin) {
|
||||||
CloseableResult result = unloadPlugin(plugin);
|
CloseableResult result = unloadPlugin(plugin);
|
||||||
if (result.getResult() != Result.SUCCESS) return result;
|
if (result.getResult() != Result.SUCCESS) return result.getResult();
|
||||||
result.tryClose();
|
result.tryClose();
|
||||||
|
|
||||||
File file = getPluginFile(plugin.getDescription().getName());
|
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);
|
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
|
@Override
|
||||||
|
|
|
||||||
|
|
@ -15,9 +15,9 @@ public abstract class AbstractPluginManager<T> extends PluginProvider<T> {
|
||||||
|
|
||||||
public abstract Result enablePlugin(T plugin);
|
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);
|
public abstract CloseableResult unloadPlugin(String pluginName);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -16,7 +16,6 @@ import net.frankheijden.serverutils.common.ServerUtilsApp;
|
||||||
import net.frankheijden.serverutils.common.config.Config;
|
import net.frankheijden.serverutils.common.config.Config;
|
||||||
import net.frankheijden.serverutils.common.config.Messenger;
|
import net.frankheijden.serverutils.common.config.Messenger;
|
||||||
import net.frankheijden.serverutils.common.config.YamlConfig;
|
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.ServerCommandSender;
|
||||||
import net.frankheijden.serverutils.common.entities.ServerUtilsPlugin;
|
import net.frankheijden.serverutils.common.entities.ServerUtilsPlugin;
|
||||||
import net.frankheijden.serverutils.common.managers.AbstractVersionManager;
|
import net.frankheijden.serverutils.common.managers.AbstractVersionManager;
|
||||||
|
|
@ -181,9 +180,8 @@ public class UpdateCheckerTask implements Runnable {
|
||||||
|
|
||||||
if (isStartupCheck()) {
|
if (isStartupCheck()) {
|
||||||
plugin.getLogger().info(String.format(DOWNLOADED_RESTART, downloadedVersion));
|
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));
|
plugin.getLogger().info(String.format(UPGRADE_SUCCESS, downloadedVersion));
|
||||||
result.tryClose();
|
|
||||||
} else {
|
} else {
|
||||||
broadcastDownloadStatus(downloadedVersion, false);
|
broadcastDownloadStatus(downloadedVersion, false);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue