From cb5391ed28b9c2805009d5db05adaa19bc9dfdc4 Mon Sep 17 00:00:00 2001 From: huangyuhui Date: Mon, 8 Feb 2016 12:06:39 +0800 Subject: [PATCH] Fix mis-encoding in Windows --- HMCL/modpack.zip | Bin 2417 -> 0 bytes .../hellominecraft/launcher/Launcher.java | 25 ------ .../hellominecraft/launcher/core/MCUtils.java | 5 -- .../core/launch/DefaultGameLauncher.java | 4 +- .../core/version/DecompressLibraryJob.java | 4 +- .../launcher/core/version/Extract.java | 14 +-- .../core/version/IMinecraftLibrary.java | 2 +- .../core/version/MinecraftLibrary.java | 59 ++++--------- .../core/version/MinecraftVersionManager.java | 4 +- .../launcher/core/version/Natives.java | 26 +----- .../version/{OS.java => OSRestriction.java} | 9 +- .../launcher/core/version/Rules.java | 20 +---- .../hellominecraft/util/StrUtils.java | 9 ++ .../util/lang/Localization.java | 2 +- common.gradle~ | 81 ------------------ 15 files changed, 54 insertions(+), 210 deletions(-) delete mode 100644 HMCL/modpack.zip rename HMCL/src/main/java/org/jackhuang/hellominecraft/launcher/core/version/{OS.java => OSRestriction.java} (81%) delete mode 100755 common.gradle~ diff --git a/HMCL/modpack.zip b/HMCL/modpack.zip deleted file mode 100644 index c23f9c5b2f7ba227c5a460404825a1cec0ce2c30..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2417 zcmb7GdpMJQA0H+XQO#OrW}wxU-xz0zx%$wpX+yhf8Xo#`QWTYfFOXlxH!Nr z*wPB{6Ci8PWFLP5KG4%USTm3iLk(II!9@mK<$xw?`LygJ=KxpmrVA>$Zqdm6b%lBZMZkHvIEsY~WUj`G8#d$kX+^h*Ls2eKjbO~;r%bc-8h zwo1L3US%&Nit2X5k>Aj2d$lFwx0%~#iO(dQ4maBRmw0d9^+JJ+`>N88Tc0nqD zUK~JKgL*tx4J+lXG3L;iOw90CcT#Z1vZ+K36=O8ljSE&%SuR07nei zkDlcUJ;8r3yZaudcdQ?CVAM_Q_3{^7I-|?jJjVoFJ!xAo(cH)0`d(1m$>@I zU7BVBt$}etA%>7@@?^&J$EMk8mZmYRMukxH+5{6W-e^3E`EH>`Om7L@ba^PIy?uts zi-zJqCA7TPofVsrX#!Ss_TNs}eXQ%?}iEGxc6ZH#xZwFZ`GtMUQIMvJe1Z z4Fs&Me>a0N8)hfSGnDZE&EAd;^@7>e@C~B)kGfb>M)YKud>4oXC7Coq=xl;>H13(! zWp1MF2X9j8JLrK0S*cxuEZrZmZP5cZSBz3J_C}^qkn;U0h;&xPoMb%|xg2H{JvGHki4 zX934e;U#0&bVEdwg9Bs7q?uz?f=Y zJM8O#aAjLY)Mo&y_i!F{c)aXS$cy8nFQw(q%#mrA0}@441%CV#&eylJzeq_+B(zNOALwbo)g0nLQC8B z5xtt7w;YvIix|D&3h=B?d}p2(XJkhqkur(A!^eww;gwxqfFn(h10br_V0e{b>)9*3 z`Ys;^EF=``TA8d}w)cMa`}5`5xy4uAI8Mc>bEO)>WYUvszGFhYk1E(TPp3{-zdZk} zw9Y6IiJ<}uVz!|7hb5<0zu-d_Um&~1O!4%cqWJ-pH!9kw*?s2O?beJ@LX&I3ad3sF z+*m1MDWo`4i#VUvy~6Bmnq$`#EzdpM+spEm*1e{woV3HzNIw4&sGvXS?bXS^oIaJO zJ`A_}?1PNk=G)8?I|;kW#}BK4G43m}RPOTB3CC~C{1yTxX=EtIfPDLHLmpk{LC!;c z?&jNY^ngbR!jP0PjJ8+ycd&Y5mDoD2(+L;gJxpbgldVVDn zez8jNiTqEpuqaLTVWNnlXIlI|IYjv&N!@J+>118>WgZgsCEzQ3I#$Drl}M(SIq44q z>AP0)7GKU7ocnIm8sWE~cjZK=&3H!an}Q=#wHc{!zhbH{6|7QWKO+B}Ms_8SmeHSd z&ba?EwB^2Pxm2-?On6crq?!NrN&RPR2Ug1|B=Y8>o_kVZij!;}JkHU_4iAUgEE~(D znrauEGQ5hm6w+Xwg5-XVY^d??WsP=mH3xID;S^3!D)Z0Xr^jp3a(L);<`&cpJ%2!q zeeR-Ky+NYiAHh-_=G3;Yu~COa()ZJ!;%OkqBs%ACqv^PnM)SS9&+8-<>~5(-)kz|{ zwXtsY>><8#fMZyNX&RdDUiTN;dA@3|9UphR-6^U5^kmS%8zmy}X7Vdlw|AV#+F@^8 zYMTLm&v%PM`Uw_JCAO0Oxk{atKAtOI&qx%SekfAq@umwA?!T!yoPW&cKPa}UNqv^_Crk^NTu|xsX}BcWgkG@&4z0Ml6*+aY%DTZM5uEfp*|B5nBj@^s=5dMTUORcfnf99>xT1;?XH5+9 zzpli!?p)ACHnUcrHh&{t@;d}fe`Lm2H=lj8bu4^#)iII#NxL!h=ITS#xz$|;N&QPk zG`uWq6(}&(8nYX%S!<%$x29dc7e+~euu;7JQM9{b4mezgb(hVtDhHgJU6&AA1(xcH z^$iHL_eNp7BNWhBOC=qb+&#+2l;HP^>yIcQObT~v>$~M1)YUe#zjzn?LzROe3Q=Zj z)HZ83&RR$q1lX7j{&ssoHrR;YC52yEe%5_KGFXQoe5|vq=Y(Gw1QmbpL*NhVh+TWV z&hTHi__g}y_6po#9gjCu|I^uD34U&o;1t%8BewBOaMq%m1YbqhF4UUU$^8gS{{gc; B)nWhu diff --git a/HMCL/src/main/java/org/jackhuang/hellominecraft/launcher/Launcher.java b/HMCL/src/main/java/org/jackhuang/hellominecraft/launcher/Launcher.java index c7660bb25..ab93a4efd 100755 --- a/HMCL/src/main/java/org/jackhuang/hellominecraft/launcher/Launcher.java +++ b/HMCL/src/main/java/org/jackhuang/hellominecraft/launcher/Launcher.java @@ -46,7 +46,6 @@ public final class Launcher { static final Logger LOGGER = Logger.getLogger(Launcher.class.getName()); static String classPath = ""; - //state String proxyHost = "", proxyPort = "", proxyUsername = "", proxyPassword = ""; public static void main(String[] args) { LOGGER.log(Level.INFO, "*** {0} ***", Main.makeTitle()); @@ -61,14 +60,6 @@ public final class Launcher { classPath = classPath.concat(s.substring("-cp=".length())); else if (s.startsWith("-mainClass=")) mainClass = s.substring("-mainClass=".length()); - /*else if (s.startsWith("-proxyHost=")) - proxyHost = s.substring("-proxyHost=".length()); - else if (s.startsWith("-proxyPort=")) - proxyPort = s.substring("-proxyPort=".length()); - else if (s.startsWith("-proxyUsername=")) - proxyUsername = s.substring("-proxyUsername=".length()); - else if (s.startsWith("-proxyPassword=")) - proxyPassword = s.substring("-proxyPassword=".length());*/ else if (s.equals("-debug")) showInfo = true; else @@ -106,22 +97,6 @@ public final class Launcher { LOGGER.log(Level.INFO, "Class Path: '{'\n{0}\n'}'", StrUtils.parseParams(" ", tokenized, "\n")); SwingUtilities.invokeLater(() -> LogWindow.INSTANCE.setVisible(true)); } - /* - if (StrUtils.isNotBlank(proxyHost) && StrUtils.isNotBlank(proxyPort) && MathUtils.canParseInt(proxyPort)) { - HMCLog.log("Initializing customized proxy"); - System.setProperty("http.proxyHost", proxyHost); - System.setProperty("http.proxyPort", proxyPort); - if (StrUtils.isNotBlank(proxyUsername) && StrUtils.isNotBlank(proxyPassword)) - Authenticator.setDefault(new Authenticator() { - @Override - protected PasswordAuthentication getPasswordAuthentication() { - return new PasswordAuthentication(proxyUsername, proxyPassword.toCharArray()); - } - }); - //PROXY = new Proxy(Proxy.Type.HTTP, new InetSocketAddress(Settings.getInstance().getProxyHost(), Integer.parseInt(Settings.getInstance().getProxyPort()))); - } else { - //PROXY = Proxy.NO_PROXY; - }*/ URL[] urls = new URL[len]; diff --git a/HMCL/src/main/java/org/jackhuang/hellominecraft/launcher/core/MCUtils.java b/HMCL/src/main/java/org/jackhuang/hellominecraft/launcher/core/MCUtils.java index 0ad1e4458..9a629069f 100755 --- a/HMCL/src/main/java/org/jackhuang/hellominecraft/launcher/core/MCUtils.java +++ b/HMCL/src/main/java/org/jackhuang/hellominecraft/launcher/core/MCUtils.java @@ -56,11 +56,6 @@ public final class MCUtils { return getWorkingDirectory("minecraft"); } - public static boolean is16Folder(String path) { - path = IOUtils.addSeparator(path); - return new File(path, "versions").exists(); - } - public static String minecraft() { if (OS.os() == OS.OSX) return "minecraft"; diff --git a/HMCL/src/main/java/org/jackhuang/hellominecraft/launcher/core/launch/DefaultGameLauncher.java b/HMCL/src/main/java/org/jackhuang/hellominecraft/launcher/core/launch/DefaultGameLauncher.java index ab9cdc4a2..2b3eacd60 100755 --- a/HMCL/src/main/java/org/jackhuang/hellominecraft/launcher/core/launch/DefaultGameLauncher.java +++ b/HMCL/src/main/java/org/jackhuang/hellominecraft/launcher/core/launch/DefaultGameLauncher.java @@ -28,7 +28,6 @@ import org.jackhuang.hellominecraft.util.tasks.ParallelTask; import org.jackhuang.hellominecraft.util.tasks.TaskWindow; import org.jackhuang.hellominecraft.util.system.Compressor; import org.jackhuang.hellominecraft.util.MessageBox; -import org.jackhuang.hellominecraft.util.StrUtils; public class DefaultGameLauncher extends GameLauncher { @@ -56,8 +55,7 @@ public class DefaultGameLauncher extends GameLauncher { return false; for (int i = 0; i < value.decompressFiles.length; i++) try { - String[] rules = value.extractRules[i]; - Compressor.unzip(value.decompressFiles[i], value.getDecompressTo(), t -> !StrUtils.startsWithOne(rules, t), false); + Compressor.unzip(value.decompressFiles[i], value.getDecompressTo(), value.extractRules[i]::allow, false); } catch (IOException ex) { HMCLog.err("Unable to decompress library file: " + value.decompressFiles[i] + " to " + value.getDecompressTo(), ex); } diff --git a/HMCL/src/main/java/org/jackhuang/hellominecraft/launcher/core/version/DecompressLibraryJob.java b/HMCL/src/main/java/org/jackhuang/hellominecraft/launcher/core/version/DecompressLibraryJob.java index fdbd85f55..c531d82f7 100644 --- a/HMCL/src/main/java/org/jackhuang/hellominecraft/launcher/core/version/DecompressLibraryJob.java +++ b/HMCL/src/main/java/org/jackhuang/hellominecraft/launcher/core/version/DecompressLibraryJob.java @@ -26,10 +26,10 @@ import java.io.File; public class DecompressLibraryJob { public File[] decompressFiles; - public String[][] extractRules; + public Extract[] extractRules; private File decompressTo; - public DecompressLibraryJob(File[] decompressFiles, String[][] extractRules, File decompressTo) { + public DecompressLibraryJob(File[] decompressFiles, Extract[] extractRules, File decompressTo) { this.decompressFiles = decompressFiles.clone(); this.extractRules = extractRules.clone(); this.decompressTo = decompressTo; diff --git a/HMCL/src/main/java/org/jackhuang/hellominecraft/launcher/core/version/Extract.java b/HMCL/src/main/java/org/jackhuang/hellominecraft/launcher/core/version/Extract.java index e26eefe8b..994177b08 100755 --- a/HMCL/src/main/java/org/jackhuang/hellominecraft/launcher/core/version/Extract.java +++ b/HMCL/src/main/java/org/jackhuang/hellominecraft/launcher/core/version/Extract.java @@ -17,20 +17,20 @@ */ package org.jackhuang.hellominecraft.launcher.core.version; +import java.util.ArrayList; +import java.util.List; +import org.jackhuang.hellominecraft.util.StrUtils; + /** * * @author huangyuhui */ public class Extract implements Cloneable { - public String[] exclude; + public List exclude = new ArrayList<>(); - public Extract(String[] exclude) { - this(); - this.exclude = exclude.clone(); - } - - public Extract() { + public boolean allow(String path) { + return !StrUtils.startsWithOne(exclude, path); } @Override diff --git a/HMCL/src/main/java/org/jackhuang/hellominecraft/launcher/core/version/IMinecraftLibrary.java b/HMCL/src/main/java/org/jackhuang/hellominecraft/launcher/core/version/IMinecraftLibrary.java index 93cee3e7c..e49b50d62 100755 --- a/HMCL/src/main/java/org/jackhuang/hellominecraft/launcher/core/version/IMinecraftLibrary.java +++ b/HMCL/src/main/java/org/jackhuang/hellominecraft/launcher/core/version/IMinecraftLibrary.java @@ -34,7 +34,7 @@ public abstract class IMinecraftLibrary implements Cloneable { public abstract boolean isRequiredToUnzip(); - public abstract String[] getDecompressExtractRules(); + public abstract Extract getDecompressExtractRules(); public abstract void init(); diff --git a/HMCL/src/main/java/org/jackhuang/hellominecraft/launcher/core/version/MinecraftLibrary.java b/HMCL/src/main/java/org/jackhuang/hellominecraft/launcher/core/version/MinecraftLibrary.java index c7c4edc2e..57c1f7224 100755 --- a/HMCL/src/main/java/org/jackhuang/hellominecraft/launcher/core/version/MinecraftLibrary.java +++ b/HMCL/src/main/java/org/jackhuang/hellominecraft/launcher/core/version/MinecraftLibrary.java @@ -48,15 +48,6 @@ public class MinecraftLibrary extends IMinecraftLibrary { this.extract = extract == null ? null : (Extract) extract.clone(); } - @Override - public Object clone() { - MinecraftLibrary ml = (MinecraftLibrary) super.clone(); - ml.extract = (Extract) ml.extract.clone(); - ml.natives = (Natives) ml.natives.clone(); - ml.rules = (ArrayList) ml.rules.clone(); - return ml; - } - /** * is the library allowed to load. * @@ -64,19 +55,14 @@ public class MinecraftLibrary extends IMinecraftLibrary { */ @Override public boolean allow() { - boolean flag = false; - if (rules == null || rules.isEmpty()) - flag = true; - else + if (rules != null) { + String action = "disallow"; for (Rules r : rules) - if ("disallow".equals(r.getAction())) { - if (r.getOS() != null && (StrUtils.isBlank(r.getOS().getName()) || r.getOS().getName().equalsIgnoreCase(OS.os().toString()))) { - flag = false; - break; - } - } else if (r.getOS() == null || (r.getOS() != null && (StrUtils.isBlank(r.getOS().getName()) || r.getOS().getName().equalsIgnoreCase(OS.os().toString())))) - flag = true; - return flag; + if (r.action() != null) + action = r.action(); + return "allow".equals(action); + } + return true; } private String formatArch(String nati) { @@ -86,11 +72,11 @@ public class MinecraftLibrary extends IMinecraftLibrary { private String getNative() { switch (OS.os()) { case WINDOWS: - return formatArch(natives.getWindows()); + return formatArch(natives.windows); case OSX: - return formatArch(natives.getOsx()); + return formatArch(natives.osx); default: - return formatArch(natives.getLinux()); + return formatArch(natives.linux); } } @@ -101,25 +87,16 @@ public class MinecraftLibrary extends IMinecraftLibrary { @Override public void init() { - String str = name; - String[] s = str.split(":"); - str = s[0]; - str = str.replace('.', File.separatorChar); - if (natives == null) - str += File.separator + s[1] + File.separator + s[2] - + File.separator + s[1] + '-' + s[2] + ".jar"; - else { - str += File.separator + s[1] + File.separator + s[2] - + File.separator + s[1] + '-' + s[2] + '-'; - str += getNative(); - str += ".jar"; - } - formatted = str; + String[] s = name.split(":"); + StringBuilder sb = new StringBuilder(s[0].replace('.', '/')).append('/').append(s[1]).append('/').append(s[2]).append('/').append(s[1]).append('-').append(s[2]); + if (natives != null) + sb.append('-').append(getNative()); + formatted = sb.append(".jar").toString(); } @Override public File getFilePath(File gameDir) { - return new File(gameDir, "libraries" + File.separatorChar + formatted); + return new File(gameDir, "libraries/" + formatted); } @Override @@ -132,7 +109,7 @@ public class MinecraftLibrary extends IMinecraftLibrary { } @Override - public String[] getDecompressExtractRules() { - return extract == null || extract.exclude == null ? new String[0] : extract.exclude; + public Extract getDecompressExtractRules() { + return extract == null ? new Extract() : extract; } } diff --git a/HMCL/src/main/java/org/jackhuang/hellominecraft/launcher/core/version/MinecraftVersionManager.java b/HMCL/src/main/java/org/jackhuang/hellominecraft/launcher/core/version/MinecraftVersionManager.java index b937c7e5d..fe87ab5be 100755 --- a/HMCL/src/main/java/org/jackhuang/hellominecraft/launcher/core/version/MinecraftVersionManager.java +++ b/HMCL/src/main/java/org/jackhuang/hellominecraft/launcher/core/version/MinecraftVersionManager.java @@ -220,7 +220,7 @@ public class MinecraftVersionManager extends IMinecraftProvider { if (v.libraries == null) throw new GameException("Wrong format: minecraft.json"); ArrayList unzippings = new ArrayList<>(); - ArrayList extractRules = new ArrayList<>(); + ArrayList extractRules = new ArrayList<>(); for (IMinecraftLibrary l : v.libraries) { l.init(); if (l.isRequiredToUnzip() && v.isAllowedToUnpackNatives()) { @@ -228,7 +228,7 @@ public class MinecraftVersionManager extends IMinecraftProvider { extractRules.add(l.getDecompressExtractRules()); } } - return new DecompressLibraryJob(unzippings.toArray(new File[unzippings.size()]), extractRules.toArray(new String[extractRules.size()][]), getDecompressNativesToLocation(v)); + return new DecompressLibraryJob(unzippings.toArray(new File[unzippings.size()]), extractRules.toArray(new Extract[extractRules.size()]), getDecompressNativesToLocation(v)); } @Override diff --git a/HMCL/src/main/java/org/jackhuang/hellominecraft/launcher/core/version/Natives.java b/HMCL/src/main/java/org/jackhuang/hellominecraft/launcher/core/version/Natives.java index 57cdf2164..703fb9c92 100755 --- a/HMCL/src/main/java/org/jackhuang/hellominecraft/launcher/core/version/Natives.java +++ b/HMCL/src/main/java/org/jackhuang/hellominecraft/launcher/core/version/Natives.java @@ -23,31 +23,7 @@ package org.jackhuang.hellominecraft.launcher.core.version; */ public class Natives implements Cloneable { - private String windows, osx, linux; - - public String getWindows() { - return windows; - } - - public void setWindows(String windows) { - this.windows = windows; - } - - public String getOsx() { - return osx; - } - - public void setOsx(String osx) { - this.osx = osx; - } - - public String getLinux() { - return linux; - } - - public void setLinux(String linux) { - this.linux = linux; - } + public String windows, osx, linux; @Override @SuppressWarnings("CloneDeclaresCloneNotSupported") diff --git a/HMCL/src/main/java/org/jackhuang/hellominecraft/launcher/core/version/OS.java b/HMCL/src/main/java/org/jackhuang/hellominecraft/launcher/core/version/OSRestriction.java similarity index 81% rename from HMCL/src/main/java/org/jackhuang/hellominecraft/launcher/core/version/OS.java rename to HMCL/src/main/java/org/jackhuang/hellominecraft/launcher/core/version/OSRestriction.java index 27691d794..3e7b6eff2 100755 --- a/HMCL/src/main/java/org/jackhuang/hellominecraft/launcher/core/version/OS.java +++ b/HMCL/src/main/java/org/jackhuang/hellominecraft/launcher/core/version/OSRestriction.java @@ -17,11 +17,14 @@ */ package org.jackhuang.hellominecraft.launcher.core.version; +import org.jackhuang.hellominecraft.util.StrUtils; +import org.jackhuang.hellominecraft.util.system.OS; + /** * * @author huangyuhui */ -public class OS { +public class OSRestriction { private String version, name; @@ -40,4 +43,8 @@ public class OS { public void setName(String name) { this.name = name; } + + public boolean isCurrentOS() { + return StrUtils.isBlank(getName()) || OS.os().name().equalsIgnoreCase(getName()); + } } diff --git a/HMCL/src/main/java/org/jackhuang/hellominecraft/launcher/core/version/Rules.java b/HMCL/src/main/java/org/jackhuang/hellominecraft/launcher/core/version/Rules.java index f3027d608..1dd62bf26 100755 --- a/HMCL/src/main/java/org/jackhuang/hellominecraft/launcher/core/version/Rules.java +++ b/HMCL/src/main/java/org/jackhuang/hellominecraft/launcher/core/version/Rules.java @@ -24,31 +24,19 @@ package org.jackhuang.hellominecraft.launcher.core.version; public class Rules { private String action; - private OS os; + private OSRestriction os; public Rules() { } - public Rules(String action, OS os) { + public Rules(String action, OSRestriction os) { this(); this.action = action; this.os = os; } - public String getAction() { - return action; - } - - public void setAction(String action) { - this.action = action; - } - - public OS getOS() { - return os; - } - - public void setOS(OS os) { - this.os = os; + public String action() { + return os != null && os.isCurrentOS() ? action : null; } } diff --git a/HMCLAPI/src/main/java/org/jackhuang/hellominecraft/util/StrUtils.java b/HMCLAPI/src/main/java/org/jackhuang/hellominecraft/util/StrUtils.java index 8ce28d8ce..ad3f90331 100755 --- a/HMCLAPI/src/main/java/org/jackhuang/hellominecraft/util/StrUtils.java +++ b/HMCLAPI/src/main/java/org/jackhuang/hellominecraft/util/StrUtils.java @@ -84,6 +84,15 @@ public final class StrUtils { return false; } + public static boolean startsWithOne(Collection a, String match) { + if (a == null) + return false; + for (String b : a) + if (startsWith(match, b)) + return true; + return false; + } + public static boolean equalsOne(String base, String... a) { for (String s : a) if (base.equals(s)) diff --git a/HMCLAPI/src/main/java/org/jackhuang/hellominecraft/util/lang/Localization.java b/HMCLAPI/src/main/java/org/jackhuang/hellominecraft/util/lang/Localization.java index 9b754d53c..e5705c225 100644 --- a/HMCLAPI/src/main/java/org/jackhuang/hellominecraft/util/lang/Localization.java +++ b/HMCLAPI/src/main/java/org/jackhuang/hellominecraft/util/lang/Localization.java @@ -48,7 +48,7 @@ public class Localization { this.lang = new HashMap<>(); try { - String[] strings = IOUtils.readFully(is).toString().split("\n"); + String[] strings = IOUtils.readFully(is).toString("UTF-8").split("\n"); for (String s : strings) if (!s.isEmpty() && s.charAt(0) != 35) { int i = s.indexOf("="); diff --git a/common.gradle~ b/common.gradle~ deleted file mode 100755 index 946b9f18c..000000000 --- a/common.gradle~ +++ /dev/null @@ -1,81 +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/}. - */ -apply plugin: 'java' -apply plugin: 'maven' -apply plugin: 'findbugs' - -//sourceCompatibility = '1.7' -[compileJava, compileTestJava]*.options*.encoding = 'UTF-8' - -repositories { - mavenCentral(); -} - -buildscript { - repositories { - mavenCentral(); - } -} - -dependencies { - // Adding dependencies here will add the dependencies to each subproject. - - compile 'com.google.code.gson:gson:2.2.4' // Apache License 2.0 -} - -task sourcesJar(type: Jar, dependsOn: classes, description: 'Creates a jar from the source files.') { - classifier = 'sources' - from sourceSets.main.allSource -} - -artifacts { - archives jar - archives sourcesJar -} - -task createFolders(description: 'Creates the source folders if they do not exist.') doLast { - sourceSets*.allSource*.srcDirs*.each { File srcDir -> - if (!srcDir.isDirectory()) { - println "Creating source folder: ${srcDir}" - srcDir.mkdirs() - } - } -} - -task makeExecutable(dependsOn: jar) << { - ext { - jar.classifier = '' - makeExecutableinjar = jar.archivePath - jar.classifier = '' - makeExecutableoutjar = jar.archivePath - jar.classifier = '' - } - def loc = new File(project.buildDir, "libs/" + makeExecutableoutjar.getName().substring(0, makeExecutableoutjar.getName().length()-4)+".exe") - def fos = new FileOutputStream(loc) - def is = new FileInputStream(new File(project.buildDir, '../HMCLauncher.exe')) - int read - def bytes = new byte[8192] - while((read = is.read(bytes)) != -1) - fos.write(bytes, 0, read); - is.close() - is = new FileInputStream(makeExecutableinjar) - while((read = is.read(bytes)) != -1) - fos.write(bytes, 0, read); - is.close() - fos.close() -} \ No newline at end of file