public void reload() throws NPCLoadException { Editor.leaveAll(); config.reload(); despawnNPCs(); saves.loadInto(npcRegistry); getServer().getPluginManager().callEvent(new CitizensReloadEvent()); }
@Override public void onDisable() { Bukkit.getPluginManager().callEvent(new CitizensDisableEvent()); Editor.leaveAll(); CitizensAPI.shutdown(); tearDownScripting(); // Don't bother with this part if MC versions are not compatible if (compatible) { saves.storeAll(npcRegistry); saves.saveToDiskImmediate(); despawnNPCs(); npcRegistry = null; } Messaging.logTr(Messages.CITIZENS_DISABLED, getDescription().getVersion()); }
@Override public void onEnable() { // Disable if the server is not using the compatible Minecraft version String mcVersion = ((CraftServer) getServer()).getServer().getVersion(); compatible = mcVersion.startsWith(COMPATIBLE_MC_VERSION); if (!compatible) { Messaging.severeTr(Messages.CITIZENS_INCOMPATIBLE, getDescription().getVersion(), mcVersion); getServer().getPluginManager().disablePlugin(this); return; } config = new Settings(getDataFolder()); setupTranslator(); registerScriptHelpers(); saves = NPCDataStore.create(getDataFolder()); if (saves == null) { Messaging.severeTr(Messages.FAILED_LOAD_SAVES); getServer().getPluginManager().disablePlugin(this); return; } npcRegistry = new CitizensNPCRegistry(saves); traitFactory = new CitizensTraitFactory(); selector = new NPCSelector(this); CitizensAPI.setImplementation(this); getServer().getPluginManager().registerEvents(new EventListen(), this); if (Setting.NPC_COST.asDouble() > 0) setupEconomy(); registerCommands(); enableSubPlugins(); Messaging.logTr(Messages.CITIZENS_ENABLED, getDescription().getVersion()); // Setup NPCs after all plugins have been enabled (allows for multiworld // support and for NPCs to properly register external settings) if (getServer() .getScheduler() .scheduleSyncDelayedTask( this, new Runnable() { @Override public void run() { saves.loadInto(npcRegistry); startMetrics(); scheduleSaveTask(Setting.SAVE_TASK_DELAY.asInt()); Bukkit.getPluginManager().callEvent(new CitizensEnableEvent()); } }, 1) == -1) { Messaging.severeTr(Messages.LOAD_TASK_NOT_SCHEDULED); getServer().getPluginManager().disablePlugin(this); } }
public void storeNPCs(CommandContext args) { storeNPCs(); boolean async = args.hasFlag('a'); if (async) saves.saveToDisk(); else saves.saveToDiskImmediate(); }
public void storeNPCs() { if (saves == null) return; for (NPC npc : npcRegistry) saves.store(npc); }