mirror of
https://hub.spigotmc.org/stash/scm/spigot/bukkit.git
synced 2025-08-31 22:22:49 +00:00
Guarded against plugins throwing exceptions on enable and disable to prevent potential corruption issues on server start and stop
This commit is contained in:
parent
e0c9b44db9
commit
f3b752c5d9
1 changed files with 12 additions and 4 deletions
|
@ -246,7 +246,11 @@ public final class SimplePluginManager implements PluginManager {
|
||||||
|
|
||||||
public void enablePlugin(final Plugin plugin) {
|
public void enablePlugin(final Plugin plugin) {
|
||||||
if (!plugin.isEnabled()) {
|
if (!plugin.isEnabled()) {
|
||||||
|
try {
|
||||||
plugin.getPluginLoader().enablePlugin(plugin);
|
plugin.getPluginLoader().enablePlugin(plugin);
|
||||||
|
} catch (Throwable ex) {
|
||||||
|
server.getLogger().log(Level.SEVERE, ex.getMessage() + " enabling " + plugin.getDescription().getFullName() + " (Is it up to date?)", ex);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -258,9 +262,13 @@ public final class SimplePluginManager implements PluginManager {
|
||||||
|
|
||||||
public void disablePlugin(final Plugin plugin) {
|
public void disablePlugin(final Plugin plugin) {
|
||||||
if (plugin.isEnabled()) {
|
if (plugin.isEnabled()) {
|
||||||
|
try {
|
||||||
plugin.getPluginLoader().disablePlugin(plugin);
|
plugin.getPluginLoader().disablePlugin(plugin);
|
||||||
server.getScheduler().cancelTasks(plugin);
|
server.getScheduler().cancelTasks(plugin);
|
||||||
server.getServicesManager().unregisterAll(plugin);
|
server.getServicesManager().unregisterAll(plugin);
|
||||||
|
} catch (Throwable ex) {
|
||||||
|
server.getLogger().log(Level.SEVERE, ex.getMessage() + " disabling " + plugin.getDescription().getFullName() + " (Is it up to date?)", ex);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue