mirror of
https://github.com/CitizensDev/Citizens2.git
synced 2024-06-22 20:44:56 +02:00
Make plugin disable hack more conservative
This commit is contained in:
parent
cfa4b5fc59
commit
9904e034fd
|
@ -80,6 +80,7 @@ public class Citizens extends JavaPlugin implements CitizensPlugin {
|
|||
private Settings config;
|
||||
private boolean enabled;
|
||||
private CitizensNPCRegistry npcRegistry;
|
||||
private boolean saveOnDisable = true;
|
||||
private NPCDataStore saves;
|
||||
private NPCSelector selector;
|
||||
private final SkullMetaProvider skullMetaProvider = new SkullMetaProvider() {
|
||||
|
@ -99,7 +100,6 @@ public class Citizens extends JavaPlugin implements CitizensPlugin {
|
|||
};
|
||||
private CitizensSpeechFactory speechFactory;
|
||||
private final Map<String, NPCRegistry> storedRegistries = Maps.newHashMap();
|
||||
|
||||
private CitizensTraitFactory traitFactory;
|
||||
|
||||
@Override
|
||||
|
@ -283,11 +283,12 @@ public class Citizens extends JavaPlugin implements CitizensPlugin {
|
|||
return;
|
||||
Bukkit.getPluginManager().callEvent(new CitizensDisableEvent());
|
||||
Editor.leaveAll();
|
||||
despawnNPCs(true);
|
||||
despawnNPCs(saveOnDisable);
|
||||
HandlerList.unregisterAll(this);
|
||||
npcRegistry = null;
|
||||
NMS.shutdown();
|
||||
enabled = false;
|
||||
saveOnDisable = true;
|
||||
CitizensAPI.shutdown();
|
||||
}
|
||||
|
||||
|
@ -350,6 +351,11 @@ public class Citizens extends JavaPlugin implements CitizensPlugin {
|
|||
Bukkit.getPluginManager().disablePlugin(this);
|
||||
}
|
||||
|
||||
public void onDependentPluginDisable() {
|
||||
storeNPCs();
|
||||
saveOnDisable = false;
|
||||
}
|
||||
|
||||
public void registerCommandClass(Class<?> clazz) {
|
||||
try {
|
||||
commands.register(clazz);
|
||||
|
|
|
@ -570,7 +570,7 @@ public class EventListen implements Listener {
|
|||
PluginDescriptionFile file = event.getPlugin().getDescription();
|
||||
for (String plugin : Iterables.concat(file.getDepend(), file.getSoftDepend())) {
|
||||
if (plugin.equalsIgnoreCase("citizens") && CitizensAPI.hasImplementation()) {
|
||||
CitizensAPI.getPlugin().onDisable();
|
||||
((Citizens) CitizensAPI.getPlugin()).onDependentPluginDisable();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue
Block a user