Merge pull request #549 from zkitefly/forge-downloadlist-time

显示 Forge 发版时间
This commit is contained in:
ShirosakiMio 2024-08-24 12:28:03 +08:00 committed by GitHub
commit f697d80e3b
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 20 additions and 5 deletions

View File

@ -27,7 +27,7 @@ public final class ForgeVersion implements Validation {
private final String jobver; private final String jobver;
private final String version; private final String version;
private final int build; private final int build;
private final double modified; private final String modified;
private final String[][] files; private final String[][] files;
/** /**
@ -35,10 +35,10 @@ public final class ForgeVersion implements Validation {
*/ */
@SuppressWarnings("unused") @SuppressWarnings("unused")
public ForgeVersion() { public ForgeVersion() {
this(null, null, null, null, 0, 0, null); this(null, null, null, null, 0, null, null);
} }
public ForgeVersion(String branch, String mcversion, String jobver, String version, int build, double modified, String[][] files) { public ForgeVersion(String branch, String mcversion, String jobver, String version, int build, String modified, String[][] files) {
this.branch = branch; this.branch = branch;
this.mcversion = mcversion; this.mcversion = mcversion;
this.jobver = jobver; this.jobver = jobver;
@ -68,7 +68,7 @@ public final class ForgeVersion implements Validation {
return build; return build;
} }
public double getModified() { public String getModified() {
return modified; return modified;
} }

View File

@ -23,9 +23,13 @@ import com.tungsten.fclcore.util.StringUtils;
import com.tungsten.fclcore.util.io.HttpRequest; import com.tungsten.fclcore.util.io.HttpRequest;
import com.tungsten.fclcore.util.versioning.VersionNumber; import com.tungsten.fclcore.util.versioning.VersionNumber;
import java.time.Instant;
import java.util.Collections; import java.util.Collections;
import java.util.Map; import java.util.Map;
import java.util.concurrent.CompletableFuture; import java.util.concurrent.CompletableFuture;
import java.util.logging.Level;
import static com.tungsten.fclcore.util.Logging.LOG;
public final class ForgeVersionList extends VersionList<ForgeRemoteVersion> { public final class ForgeVersionList extends VersionList<ForgeRemoteVersion> {
private final DownloadProvider downloadProvider; private final DownloadProvider downloadProvider;
@ -75,8 +79,19 @@ public final class ForgeVersionList extends VersionList<ForgeRemoteVersion> {
if (jar == null) if (jar == null)
continue; continue;
Instant releaseDate = null;
if (version.getModified() != null) {
try {
long timestamp = Long.parseLong(version.getModified());
releaseDate = Instant.ofEpochSecond(timestamp);
} catch (NumberFormatException e) {
LOG.log(Level.WARNING, "Failed to parse instant " + version.getModified(), e);
}
}
versions.put(gameVersion, new ForgeRemoteVersion( versions.put(gameVersion, new ForgeRemoteVersion(
toLookupVersion(version.getGameVersion()), version.getVersion(), null, Collections.singletonList(jar) toLookupVersion(version.getGameVersion()), version.getVersion(), releaseDate, Collections.singletonList(jar)
)); ));
} }
} }