diff --git a/.gitignore b/.gitignore
index efb879487..d98830a22 100644
--- a/.gitignore
+++ b/.gitignore
@@ -26,6 +26,4 @@ HMCLServer/
HMCSM/build/
MetroLookAndFeel/build/
/HMCUtils/build/
-/HMCLaF/build/
-HMCL/version.properties
-.idea/
+/HMCLaF/build/
\ No newline at end of file
diff --git a/.nb-gradle-properties b/.nb-gradle-properties
index a27e06991..aa17ec6af 100755
--- a/.nb-gradle-properties
+++ b/.nb-gradle-properties
@@ -31,6 +31,6 @@
GNU General Public License
license-header.txt
- HMCLSoft
+ huangyuhui
diff --git a/.travis.yml b/.travis.yml
index 7e48f78b0..9fce3d616 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,10 +1,18 @@
language: java
-sudo: false
jdk:
- oraclejdk8
+branches:
+ only:
+ - master
+before_deploy:
+ - git config --global user.email ${GITHUB_EMAIL}
+ - git config --global user.name ${GITHUB_NAME}
+ - git tag ${TRAVIS_BUILD_NUMBER}
+ - git push -q ${REPO} --tags
deploy:
provider: releases
- api_key: ${DEPLOY_REPO}
+ api_key:
+ secure: lfFEwKtij/s9Ao/SKL7oVdsWcfASshZuwT27gllMrTx1ZQqLCG2I5mGJOp5ukx7lb3y4Tu316nFasLjy9NI3eLXSx9f0w4q+wMf0K5Yj9iOwu/TIn7JkLyHDMQ20qRwGxZplS2WUb669gIRg+l6jUHeTBW+dlTxr0mMa6WHIl8UDpHwfFrGC3i6dL4y6WlDwGl2rYktvOoA/iqvtglBcHuXaL2sDfhp5MXRcYULTIw+b9zmiQXP665DQN+Su5I3gwB4y5X8RH72GAacZn13fEIo5i8UUoHM7UQxM8y8DKSO3avyFCfpUle9+9sErQVW7b6JV1c+AoLWuAhNJLMlUTKarZE7UMqfjvoQHxX5hp2B2WHLEON/UJiGf25HJWx6VhJitE0/odujqnG/umesqki2jMTs6gPcxbc9iBjzUg+ZmFztdtC+Emnni7lpqVVl+Y5hsJRn3Z6rIiNgwmaE0r2OQgAm1vRYFc7jvOdRfyFG+uCRZF6nS56BzJ7dLc0WW8dTgSft6YFll4ZYL6hiI9qiIaBAK948y5HV+6VBWuO3xf/G2CUFbE1Y9qUCjToh3ahxNDzZvXB+rXqvlvNQOi5l8n594oQ61n45qIHSKlMBn9Bxhw29oWT5mo1aYIaNXbpzKam2w4mK0T3VrgTszu/3282wRbNr+VAwdGMfwW1s=
file:
- HMCL/build/libs/HMCL-${HMCL_VERSION_ROOT}.${TRAVIS_BUILD_NUMBER}.jar
- HMCL/build/libs/HMCL-${HMCL_VERSION_ROOT}.${TRAVIS_BUILD_NUMBER}.exe
@@ -13,9 +21,8 @@ deploy:
- HMCSM/build/libs/HMCSM-${HMCSM_VERSION_ROOT}.${TRAVIS_BUILD_NUMBER}.exe
- HMCSM/build/libs/HMCSM-${HMCSM_VERSION_ROOT}.${TRAVIS_BUILD_NUMBER}-MacOSApp.zip
on:
- repo: mclauncher/HMCL
- branch: master
- tags: true
+ repo: huanghongxun/HMCL
+ tags: false
skip_cleanup: true
install: echo "skip 'gradle assemble' step"
script: gradle build --continue
@@ -24,4 +31,4 @@ before_cache:
cache:
directories:
- "$HOME/.gradle/caches/"
- - "$HOME/.gradle/wrapper/"
\ No newline at end of file
+ - "$HOME/.gradle/wrapper/"
diff --git a/HMCL/build.gradle b/HMCL/build.gradle
index 19c436e0a..6bc999f7d 100755
--- a/HMCL/build.gradle
+++ b/HMCL/build.gradle
@@ -27,7 +27,6 @@ buildscript {
classpath 'net.sf.proguard:proguard-gradle:4.10'
classpath 'edu.sc.seis.gradle:launch4j:1.0.6'
classpath 'me.tatarka:gradle-retrolambda:3.1.0'
- classpath 'com.google.code.gson:gson:2.2.4'
}
}
}
@@ -39,7 +38,6 @@ plugins {
import java.util.jar.JarOutputStream
import java.util.zip.ZipEntry
import java.util.zip.ZipFile
-import com.google.gson.JsonParser
apply plugin: 'launch4j'
apply plugin: 'me.tatarka.retrolambda'
@@ -48,46 +46,15 @@ if (!hasProperty('mainClass')) {
ext.mainClass = 'org.jackhuang.hellominecraft.launcher.Main'
}
-def readBuildNumber() {
- def versionPropsFile = file('version.properties')
- def Properties versionProps = new Properties()
-
- if (versionPropsFile.canRead()) {
- versionProps.load(new FileInputStream(versionPropsFile))
- def code = versionProps['VERSION_CODE'].toInteger()
- return code.toString()
- } else {
- versionPropsFile.createNewFile()
-
- String url = 'https://api.travis-ci.org/repos/mclauncher/HMCL/branches'
- def json = new JsonParser().parse(url.toURL().text);
- if (json.has('branches') && json.get('branches').isJsonArray()) {
- def branches = json.getAsJsonArray('branches')
- if (branches != null && branches.size() > 0) {
- def info = branches.get(0).getAsJsonObject()
- def code = info.get('number').getAsInt().toString()
- versionProps['VERSION_CODE'] = code
- versionProps.store(versionPropsFile.newWriter(), null)
- return code
- }
- }
- }
- return '233'
-}
-
-task cleanVersionFile << {
- file("version.properties").delete()
-}
-
def buildnumber = System.getenv("TRAVIS_BUILD_NUMBER")
if (buildnumber == null)
buildnumber = System.getenv("BUILD_NUMBER")
if (buildnumber == null)
- buildnumber = readBuildNumber()
-
-def versionroot = System.getenv("HMCL_VERSION_ROOT")
+ buildnumber = "233"
+
+def versionroot = System.getenv("VERSION_ROOT")
if (versionroot == null)
- versionroot = "2.5.3"
+ versionroot = "2.4.1"
String mavenGroupId = 'HMCL'
String mavenVersion = versionroot + '.' + buildnumber
@@ -173,20 +140,22 @@ jar {
from { configurations.compile.collect { it.isDirectory() ? it : zipTree(it) } }
manifest {
- attributes 'Created-By' : 'Copyright(c) 2013-2016 HMCLSoft.',
+ attributes 'Created-By' : 'Copyright(c) 2013-2016 huangyuhui.',
'Main-Class' : mainClass
}
}
launch4j {
- supportUrl = 'http://www.hmclsoft.com'
+ launch4jCmd = 'D:\\Develop\\Java\\Launch4j\\launch4j.exe'
+ //launch4jCmd = '/home/huangyuhui/softwares/launch4j/launch4j'
+ supportUrl = 'http://www.mcbbs.net/thread-142335-1-1.html'
jreMinVersion = '1.6.0'
mainClassName = mainClass
icon = new File(project.buildDir, '../icon.ico').absolutePath
version = mavenVersion
downloadUrl = 'http://java.com/download'
- copyright = "Copyright(c) 2013-2016 HMCLSoft."
+ copyright = "Copyright(c) 2013-2015 huangyuhui."
jar = new File(project.buildDir, 'libs/' + mavenGroupId + '-' + mavenVersion + '.jar').absolutePath
outfile = mavenGroupId + '-' + mavenVersion + '.exe'
@@ -199,7 +168,6 @@ processResources {
}
}
-build.dependsOn cleanVersionFile
build.dependsOn makeExecutable
build.dependsOn makePackGZ
build.dependsOn macAppCompressed
\ No newline at end of file
diff --git a/HMCL/src/core/java/org/jackhuang/hellominecraft/launcher/core/asset/AssetsMojangLoader.java b/HMCL/src/core/java/org/jackhuang/hellominecraft/launcher/core/asset/AssetsMojangLoader.java
index 126788fd4..ad24a5015 100755
--- a/HMCL/src/core/java/org/jackhuang/hellominecraft/launcher/core/asset/AssetsMojangLoader.java
+++ b/HMCL/src/core/java/org/jackhuang/hellominecraft/launcher/core/asset/AssetsMojangLoader.java
@@ -98,7 +98,7 @@ public class AssetsMojangLoader extends IAssetsHandler {
@Override
public Task getDownloadTask(IDownloadProvider sourceType) {
- return new AssetsTask(sourceType.getAssetsDownloadURL(), sourceType.getRetryAssetsDownloadURL());
+ return new AssetsTask(sourceType.getAssetsDownloadURL());
}
@Override
diff --git a/HMCL/src/core/java/org/jackhuang/hellominecraft/launcher/core/asset/IAssetsHandler.java b/HMCL/src/core/java/org/jackhuang/hellominecraft/launcher/core/asset/IAssetsHandler.java
index 96b772a56..7302fba16 100755
--- a/HMCL/src/core/java/org/jackhuang/hellominecraft/launcher/core/asset/IAssetsHandler.java
+++ b/HMCL/src/core/java/org/jackhuang/hellominecraft/launcher/core/asset/IAssetsHandler.java
@@ -34,8 +34,6 @@ import org.jackhuang.hellominecraft.util.code.DigestUtils;
import org.jackhuang.hellominecraft.util.system.IOUtils;
import org.jackhuang.hellominecraft.util.NetUtils;
import org.jackhuang.hellominecraft.util.OverridableSwingWorker;
-import org.jackhuang.hellominecraft.util.StrUtils;
-import org.jackhuang.hellominecraft.util.func.Function;
import org.jackhuang.hellominecraft.util.tasks.TaskInfo;
/**
@@ -91,37 +89,30 @@ public abstract class IAssetsHandler {
protected class AssetsTask extends TaskInfo {
- ArrayList tasks;
- String baseUrl;
- String retryBaseUrl;
+ ArrayList al;
+ String u;
- public AssetsTask(String url, String retryUrl) {
+ public AssetsTask(String url) {
super(C.i18n("assets.download"));
- this.baseUrl = url;
- this.retryBaseUrl = retryUrl;
+ this.u = url;
}
@Override
public void executeTask() {
if (assetsDownloadURLs == null || assetsLocalNames == null || contents == null)
throw new IllegalStateException(C.i18n("assets.not_refreshed"));
-
- tasks = new ArrayList<>();
int max = assetsDownloadURLs.size();
+ al = new ArrayList<>();
int hasDownloaded = 0;
for (int i = 0; i < max; i++) {
String mark = assetsDownloadURLs.get(i);
- String downloadUrl = baseUrl + mark;
- String downloadRetryUrl = StrUtils.isNotBlank(retryBaseUrl) ? retryBaseUrl + mark : "";
+ String url = u + mark;
File location = assetsLocalNames.get(i);
-
if (!location.getParentFile().exists() && !location.getParentFile().mkdirs())
HMCLog.warn("Failed to make directories: " + location.getParent());
-
if (location.isDirectory())
continue;
-
- boolean needDownload = true;
+ boolean need = true;
try {
if (location.exists()) {
FileInputStream fis = new FileInputStream(location);
@@ -130,39 +121,23 @@ public abstract class IAssetsHandler {
if (contents.get(i).geteTag().equals(sha)) {
++hasDownloaded;
HMCLog.log("File " + assetsLocalNames.get(i) + " has been downloaded successfully, skipped downloading.");
- if (ppl != null) {
+ if (ppl != null)
ppl.setProgress(this, hasDownloaded, max);
- }
continue;
}
}
} catch (IOException e) {
HMCLog.warn("Failed to get hash: " + location, e);
- needDownload = !location.exists();
+ need = !location.exists();
}
-
- if (needDownload) {
- FileDownloadTask fileDownloadTask = new FileDownloadTask(downloadUrl, location);
- fileDownloadTask.setTag(mark);
-
- // retry
- if (StrUtils.isNotBlank(downloadRetryUrl)) {
- fileDownloadTask.setFailedCallbackReturnsNewURL(new Function() {
- @Override
- public String apply(Integer t) {
- return downloadRetryUrl;
- }
- });
- }
-
- tasks.add(fileDownloadTask);
- }
+ if (need)
+ al.add(new FileDownloadTask(url, location).setTag(mark));
}
}
@Override
public Collection getAfterTasks() {
- return tasks;
+ return al;
}
}
}
diff --git a/HMCL/src/core/java/org/jackhuang/hellominecraft/launcher/core/asset/MinecraftAssetService.java b/HMCL/src/core/java/org/jackhuang/hellominecraft/launcher/core/asset/MinecraftAssetService.java
index 6070e8117..626dbe7cf 100755
--- a/HMCL/src/core/java/org/jackhuang/hellominecraft/launcher/core/asset/MinecraftAssetService.java
+++ b/HMCL/src/core/java/org/jackhuang/hellominecraft/launcher/core/asset/MinecraftAssetService.java
@@ -56,8 +56,7 @@ public class MinecraftAssetService extends IMinecraftAssetService {
public Task downloadAssets(final MinecraftVersion mv) {
if (mv == null)
return null;
- return IAssetsHandler.ASSETS_HANDLER.getList(mv, service.asset())
- .after(IAssetsHandler.ASSETS_HANDLER.getDownloadTask(service.getDownloadType().getProvider()));
+ return IAssetsHandler.ASSETS_HANDLER.getList(mv, service.asset()).after(IAssetsHandler.ASSETS_HANDLER.getDownloadTask(service.getDownloadType().getProvider()));
}
@Override
diff --git a/HMCL/src/core/java/org/jackhuang/hellominecraft/launcher/core/download/DownloadLibraryJob.java b/HMCL/src/core/java/org/jackhuang/hellominecraft/launcher/core/download/DownloadLibraryJob.java
index a3735004d..7c5e28592 100644
--- a/HMCL/src/core/java/org/jackhuang/hellominecraft/launcher/core/download/DownloadLibraryJob.java
+++ b/HMCL/src/core/java/org/jackhuang/hellominecraft/launcher/core/download/DownloadLibraryJob.java
@@ -29,12 +29,10 @@ public class DownloadLibraryJob {
public IMinecraftLibrary lib;
public String url;
- public String retryUrl;
public File path;
- public DownloadLibraryJob(IMinecraftLibrary n, String u, String retry, File p) {
+ public DownloadLibraryJob(IMinecraftLibrary n, String u, File p) {
url = u;
- retryUrl = retry;
lib = n;
path = IOUtils.tryGetCanonicalFile(p);
}
diff --git a/HMCL/src/core/java/org/jackhuang/hellominecraft/launcher/core/download/DownloadType.java b/HMCL/src/core/java/org/jackhuang/hellominecraft/launcher/core/download/DownloadType.java
index c9dadd4c8..1a7644ef7 100755
--- a/HMCL/src/core/java/org/jackhuang/hellominecraft/launcher/core/download/DownloadType.java
+++ b/HMCL/src/core/java/org/jackhuang/hellominecraft/launcher/core/download/DownloadType.java
@@ -29,8 +29,7 @@ public enum DownloadType {
Mojang("download.mojang", new MojangDownloadProvider()),
BMCL("download.BMCL", new BMCLAPIDownloadProvider()),
//RapidData("download.rapid_data", new RapidDataDownloadProvider()),
- Curse("Curse CDN", new CurseDownloadProvider()),
- Dynamic("HMCLSoft", DynamicDownloadProvider.getInstance());
+ Curse("Curse CDN", new CurseDownloadProvider());
private final String name;
private final IDownloadProvider provider;
@@ -48,7 +47,7 @@ public enum DownloadType {
return C.i18n(name);
}
- private static DownloadType suggestedDownloadType = Dynamic;
+ private static DownloadType suggestedDownloadType = Mojang;
public static DownloadType getSuggestedDownloadType() {
return suggestedDownloadType;
diff --git a/HMCL/src/core/java/org/jackhuang/hellominecraft/launcher/core/download/DynamicDownloadProvider.java b/HMCL/src/core/java/org/jackhuang/hellominecraft/launcher/core/download/DynamicDownloadProvider.java
deleted file mode 100644
index 8cbe9dbf1..000000000
--- a/HMCL/src/core/java/org/jackhuang/hellominecraft/launcher/core/download/DynamicDownloadProvider.java
+++ /dev/null
@@ -1,161 +0,0 @@
-/*
- * Hello Minecraft! Launcher.
- * Copyright (C) 2013 huangyuhui
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see {http://www.gnu.org/licenses/}.
- */
-package org.jackhuang.hellominecraft.launcher.core.download;
-
-import com.google.gson.reflect.TypeToken;
-import java.io.IOException;
-import java.util.Map;
-import org.jackhuang.hellominecraft.util.C;
-import org.jackhuang.hellominecraft.util.NetUtils;
-import org.jackhuang.hellominecraft.util.StrUtils;
-
-/**
- *
- * @author evilwk
- */
-public class DynamicDownloadProvider extends MojangDownloadProvider {
-
- private static final String PROVIDER_ADDR = "http://client.api.mcgogogo.com:81/provider.php";
-
- private volatile static DynamicDownloadProvider instance;
-
- private String versionManifestAddr = null;
- private String launcherMetaAddr = null;
- private String launcherAddr = null;
-
- private String librariesAddr = null;
- private String assetsAddr = null;
-
- public void setVersionManifestAddr(String versionManifestAddr) {
- this.versionManifestAddr = versionManifestAddr;
- }
-
- public void setLauncherMetaAddr(String launcherMetaAddr) {
- this.launcherMetaAddr = launcherMetaAddr;
- }
-
- public void setLauncherAddr(String launcherAddr) {
- this.launcherAddr = launcherAddr;
- }
-
- public void setLibrariesAddr(String librariesAddr) {
- this.librariesAddr = librariesAddr;
- }
-
- public void setAssetsAddr(String assetsAddr) {
- this.assetsAddr = assetsAddr;
- }
-
- private DynamicDownloadProvider() {
-
- }
-
- public static DynamicDownloadProvider getInstance() {
- if (instance == null) {
- synchronized (DynamicDownloadProvider.class) {
- if (instance == null) {
- instance = new DynamicDownloadProvider();
- }
- }
- }
- return instance;
- }
-
- @Override
- public String getRetryAssetsDownloadURL() {
- return super.getAssetsDownloadURL();
- }
-
- @Override
- public String getRetryLibraryDownloadURL() {
- return super.getLibraryDownloadURL();
- }
-
- @Override
- public String getAssetsDownloadURL() {
- if (StrUtils.isNotBlank(assetsAddr)) {
- return assetsAddr;
- }
- return super.getAssetsDownloadURL();
- }
-
- @Override
- public String getLibraryDownloadURL() {
- if (StrUtils.isNotBlank(librariesAddr)) {
- return librariesAddr;
- }
- return super.getLibraryDownloadURL();
- }
-
- @Override
- public String getVersionsListDownloadURL() {
- if (StrUtils.isNotBlank(versionManifestAddr)) {
- return versionManifestAddr;
- }
- return super.getVersionsListDownloadURL();
- }
-
- @Override
- public String getParsedDownloadURL(String str) {
- if (str != null) {
- if (StrUtils.isNotBlank(librariesAddr)) {
- str = str.replace("https://libraries.minecraft.net", librariesAddr);
- }
- if (StrUtils.isNotBlank(launcherMetaAddr)) {
- str = str.replace("https://launchermeta.mojang.com", launcherMetaAddr);
- }
- if (StrUtils.isNotBlank(launcherAddr)) {
- str = str.replace("https://launcher.mojang.com", launcherAddr);
- }
- }
- return super.getParsedDownloadURL(str);
- }
-
- public void init() {
- new Thread() {
-
- private String getValue(Map addrInfo, String key) {
- String value = null;
- do {
- if (!addrInfo.containsKey(key))
- continue;
- value = addrInfo.get(key);
- } while(false);
- return value;
- }
-
- @Override
- public void run() {
- try {
- String providerInfo = NetUtils.get(PROVIDER_ADDR);
- Map addrInfo = null;
- addrInfo = C.GSON.fromJson(providerInfo, new TypeToken