Пример #1
0
  public void reload() throws NPCLoadException {
    Editor.leaveAll();
    config.reload();
    despawnNPCs();
    saves.loadInto(npcRegistry);

    getServer().getPluginManager().callEvent(new CitizensReloadEvent());
  }
Пример #2
0
  @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());
  }
Пример #3
0
  @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);
    }
  }
Пример #4
0
 public void storeNPCs(CommandContext args) {
   storeNPCs();
   boolean async = args.hasFlag('a');
   if (async) saves.saveToDisk();
   else saves.saveToDiskImmediate();
 }
Пример #5
0
 public void storeNPCs() {
   if (saves == null) return;
   for (NPC npc : npcRegistry) saves.store(npc);
 }