Ejemplo n.º 1
0
  /**
   * Provide simple natural order comparison for version numbers (ie. 2.9 is less than 2.10)
   *
   * @param version the new found version
   * @return true if the provided version is newer, false otherwise
   */
  private boolean isNewerVersion(String newVersion) {
    String oldVersion = plugin.getDescription().getVersion();
    if (oldVersion.equals(newVersion)) {
      return false;
    }

    oldVersion = oldVersion.split("-pre")[0];

    String[] oldSplit = oldVersion.split("\\.");
    String[] newSplit = newVersion.split("\\.");
    int newInt;
    int oldInt;

    for (int i = 0; i < oldSplit.length || i < newSplit.length; i++) {
      if (i >= newSplit.length) {
        newInt = 0;
      } else {
        newInt = Integer.parseInt(newSplit[i]);
      }

      if (i >= oldSplit.length) {
        oldInt = 0;
      } else {
        oldInt = Integer.parseInt(oldSplit[i]);
      }

      if (newInt == oldInt) {
        continue;
      } else {
        return (newInt > oldInt);
      }
    }

    return false;
  }
Ejemplo n.º 2
0
  @Override
  public void run() {
    plugin.log(Localization.getString(Strings.UPDATECHECKER_STARTED));

    try {
      URL url = new URL(updateAddress);
      URLConnection connection = url.openConnection();
      connection.setConnectTimeout(5000);
      connection.setReadTimeout(10000);
      BufferedReader reader =
          new BufferedReader(new InputStreamReader(connection.getInputStream()));
      String version = reader.readLine();
      String changes = reader.readLine();
      plugin.log(
          String.format(Localization.getString(Strings.UPDATECHECKER_VERSION_FOUND), version));
      plugin.log(
          String.format(Localization.getString(Strings.UPDATECHECKER_CHANGES_FOUND), changes));

      if (version != null && isNewerVersion(version)) {
        plugin.latestKnownVersion = version;
        plugin.changes = changes;
        plugin.updateAvailable = true;

        plugin.getLogger().info(Localization.getString(Strings.UPDATE_AVAILIBLE));
        plugin
            .getLogger()
            .info(
                String.format(
                    Localization.getString(Strings.UPDATE_VERSION_INFO),
                    plugin.getDescription().getVersion(),
                    version));
        plugin
            .getLogger()
            .info(String.format(Localization.getString(Strings.UPDATE_CHANGES), changes));
      } else {
        plugin.log(Localization.getString(Strings.PLUGIN_UP_TO_DATE));
      }
    } catch (Exception e) {
      plugin.getLogger().info(Localization.getString(Strings.UPDATE_CHECK_FAILURE));
    }
  }