Null checks to prevent NPEs when trying to disable the plugin while already disabled (??)

It's not like it is going to happen anyway, but who knows ¯\_(ツ)_/¯
This commit is contained in:
Jaime Martínez Rincón 2017-12-13 22:16:00 +01:00
parent a71e2ae842
commit 73631efc76
2 changed files with 40 additions and 22 deletions

View File

@ -169,48 +169,66 @@ public class PlayerBalancer extends Plugin {
}
private void execStop() {
getProxy().getPluginManager().unregisterCommand(mainCommand);
mainCommand = null;
if (mainCommand != null) {
getProxy().getPluginManager().unregisterCommand(mainCommand);
mainCommand = null;
}
if (settings.getGeneralProps().isEnabled()) {
//Do not try to do anything if the plugin has not loaded correctly
if (failed) return;
if (settings.getGeneralProps().isAutoReload()) {
getProxy().getPluginManager().unregisterListener(reloadListener);
reloadListener = null;
if (reloadListener != null) {
getProxy().getPluginManager().unregisterListener(reloadListener);
reloadListener = null;
}
}
if (settings.getServerCheckerProps().isEnabled()) {
statusManager.stop();
if (statusManager != null) {
statusManager.stop();
}
}
if (settings.getFallbackCommandProps().isEnabled()) {
getProxy().getPluginManager().unregisterCommand(fallbackService);
if (fallbackService != null) {
if (settings.getFallbackCommandProps().isEnabled()) {
getProxy().getPluginManager().unregisterCommand(fallbackService);
}
getProxy().getPluginManager().unregisterListener(fallbackService);
fallbackService = null;
}
getProxy().getPluginManager().unregisterListener(fallbackService);
fallbackService = null;
if (settings.getKickHandlerProps().isEnabled()) {
getProxy().getPluginManager().unregisterListener(kickListener);
kickListener = null;
if (kickListener != null) {
getProxy().getPluginManager().unregisterListener(kickListener);
kickListener = null;
}
}
getProxy().getPluginManager().unregisterListener(connectListener);
connectListener = null;
if (connectListener != null) {
getProxy().getPluginManager().unregisterListener(connectListener);
connectListener = null;
}
if (settings.getGeneralProps().isPluginMessaging()) {
getProxy().unregisterChannel("PlayerBalancer");
getProxy().getPluginManager().unregisterListener(messagingService);
messagingService = null;
if (messagingService != null) {
getProxy().unregisterChannel("PlayerBalancer");
getProxy().getPluginManager().unregisterListener(messagingService);
messagingService = null;
}
}
getProxy().getPluginManager().unregisterCommand(manageCommand);
manageCommand = null;
if (manageCommand != null) {
getProxy().getPluginManager().unregisterCommand(manageCommand);
manageCommand = null;
}
sectionManager.flush();
if (sectionManager != null) {
sectionManager.flush();
}
ServerAssignRegistry.getTable().clear();
}

View File

@ -12,7 +12,7 @@ public class MainCommand extends Command {
private final PlayerBalancer plugin;
public MainCommand(PlayerBalancer plugin) {
super("balancer", "", "playerbalancer", "pb");
super("balancer", "", "playerbalancer");
this.plugin = plugin;
}