@Override
  public void onDisable() {
    SMSPersistence.saveMenusAndViews();
    SMSPersistence.saveMacros();
    for (SMSMenu menu : SMSMenu.listMenus()) {
      // this also deletes all the menu's views...
      menu.deleteTemporary();
    }
    for (SMSMacro macro : SMSMacro.listMacros()) {
      macro.deleteTemporary();
    }

    economy = null;
    permission = null;
    setInstance(null);

    MiscUtil.log(
        Level.INFO,
        getDescription().getName() + " version " + getDescription().getVersion() + " is disabled!");
  }
  public static void loadMenus() {
    MenuManager mm = ScrollingMenuSign.getInstance().getMenuManager();

    for (SMSMenu menu : mm.listMenus()) {
      menu.deleteTemporary();
    }

    for (File f : DirectoryStructure.getMenusFolder().listFiles(ymlFilter)) {
      try {
        Debugger.getInstance().debug(2, "loading menu: " + f);
        YamlConfiguration conf = YamlConfiguration.loadConfiguration(f);
        SMSMenu menu = new SMSMenu(conf);
        mm.registerMenu(menu.getName(), menu);
        menu.notifyObservers();
      } catch (SMSException e) {
        LogUtils.severe("Can't load menu data from " + f + ": " + e.getMessage());
      }
    }
    Debugger.getInstance().debug("Loaded " + mm.listMenus().size() + " menus from file.");
  }