/* * SK's Minecraft Launcher * Copyright (C) 2010-2014 Albert Pham <http://www.sk89q.com> and contributors * Please see LICENSE.txt for license information. */ package com.skcraft.launcher.model.modpack; import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonManagedReference; import com.fasterxml.jackson.annotation.JsonProperty; import com.google.common.base.Strings; import com.skcraft.launcher.Instance; import com.skcraft.launcher.LauncherUtils; import com.skcraft.launcher.model.minecraft.VersionManifest; import com.skcraft.launcher.install.Installer; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.Getter; import lombok.Setter; import java.net.MalformedURLException; import java.net.URL; import java.util.ArrayList; import java.util.List; @Data @EqualsAndHashCode(callSuper = true) public class Manifest extends BaseManifest { public static final int MIN_PROTOCOL_VERSION = 2; private int minimumVersion; private URL baseUrl; private String librariesLocation; private String objectsLocation; private String gameVersion; @JsonProperty("launch") private LaunchModifier launchModifier; private List<Feature> features = new ArrayList<Feature>(); @JsonManagedReference("manifest") private List<ManifestEntry> tasks = new ArrayList<ManifestEntry>(); @Getter @Setter @JsonIgnore private Installer installer; private VersionManifest versionManifest; @JsonIgnore public URL getLibrariesUrl() { if (Strings.nullToEmpty(getLibrariesLocation()) == null) { return null; } try { return LauncherUtils.concat(baseUrl, Strings.nullToEmpty(getLibrariesLocation()) + "/"); } catch (MalformedURLException e) { throw new RuntimeException(e); } } @JsonIgnore public URL getObjectsUrl() { if (Strings.nullToEmpty(getObjectsLocation()) == null) { return baseUrl; } try { return LauncherUtils.concat(baseUrl, Strings.nullToEmpty(getObjectsLocation()) + "/"); } catch (MalformedURLException e) { throw new RuntimeException(e); } } public void updateName(String name) { if (name != null) { setName(name); } } public void updateTitle(String title) { if (title != null) { setTitle(title); } } public void updateGameVersion(String gameVersion) { if (gameVersion != null) { setGameVersion(gameVersion); } } public void update(Instance instance) { instance.setLaunchModifier(getLaunchModifier()); } }