From ef26b6ecd4047c3fb1c43f3d9e6f358c21223f4a Mon Sep 17 00:00:00 2001 From: Mathieu Broillet Date: Sun, 5 Jan 2020 13:09:53 +0100 Subject: [PATCH] Release 1.0 and 1.1 --- build.gradle | 26 +++-- docs/README.md | 37 ++++++ .../ch/m4th1eu/flansupdater/Controller.java | 26 +++-- .../java/ch/m4th1eu/flansupdater/Updater.java | 41 ++++++- .../java/ch/m4th1eu/flansupdater/Zip.java | 110 ++++++++++++++---- src/main/resources/icon.png | Bin 13743 -> 6289 bytes src/main/resources/logo_transparent.png | Bin 15160 -> 18797 bytes src/main/resources/logo_transparent_2.png | Bin 0 -> 18814 bytes 8 files changed, 195 insertions(+), 45 deletions(-) create mode 100644 docs/README.md create mode 100644 src/main/resources/logo_transparent_2.png diff --git a/build.gradle b/build.gradle index c99e740..bb11e6c 100644 --- a/build.gradle +++ b/build.gradle @@ -1,17 +1,27 @@ +buildscript { + repositories { + maven { + url "https://plugins.gradle.org/m2/" + } + } + dependencies { + classpath "com.github.jengelman.gradle.plugins:shadow:4.0.4" + } +} + plugins { id 'java' } +apply plugin: "com.github.johnrengelman.shadow" apply plugin: 'java' -apply plugin: 'eclipse' -apply plugin: 'application' group 'flansupdater' -version '1.0-SNAPSHOT' +version '1.1' sourceCompatibility = 1.8 targetCompatibility = 1.8 -mainClassName = 'ch.m4th1eu.flansupdater.Main' + compileJava.options.encoding = 'UTF-8' repositories { @@ -22,16 +32,12 @@ dependencies { compile group: 'commons-io', name: 'commons-io', version: '2.4' compile group: 'com.google.code.gson', name: 'gson', version: '2.8.6' compile group: 'net.lingala.zip4j', name: 'zip4j', version: '2.2.8' - testCompile "junit:junit:4.12" + implementation 'org.zeroturnaround:zt-zip:1.13' } jar { baseName = 'flans-updater' - version = '0.1' - - from { - configurations.compile.collect { it.isDirectory() ? it : zipTree(it) } - } + version = '0.1' manifest { attributes( diff --git a/docs/README.md b/docs/README.md new file mode 100644 index 0000000..ecbb3f2 --- /dev/null +++ b/docs/README.md @@ -0,0 +1,37 @@ +## Welcome to GitHub Pages + +You can use the [editor on GitHub](https://github.com/M4TH1EU/Flan-s-Mod-Updater/edit/master/README.md) to maintain and preview the content for your website in Markdown files. + +Whenever you commit to this repository, GitHub Pages will run [Jekyll](https://jekyllrb.com/) to rebuild the pages in your site, from the content in your Markdown files. + +### Markdown + +Markdown is a lightweight and easy-to-use syntax for styling your writing. It includes conventions for + +```markdown +Syntax highlighted code block + +# Header 1 +## Header 2 +### Header 3 + +- Bulleted +- List + +1. Numbered +2. List + +**Bold** and _Italic_ and `Code` text + +[Link](url) and ![Image](src) +``` + +For more details see [GitHub Flavored Markdown](https://guides.github.com/features/mastering-markdown/). + +### Jekyll Themes + +Your Pages site will use the layout and styles from the Jekyll theme you have selected in your [repository settings](https://github.com/M4TH1EU/Flan-s-Mod-Updater/settings). The name of this theme is saved in the Jekyll `_config.yml` configuration file. + +### Support or Contact + +Having trouble with Pages? Check out our [documentation](https://help.github.com/categories/github-pages-basics/) or [contact support](https://github.com/contact) and we’ll help you sort it out. diff --git a/src/main/java/ch/m4th1eu/flansupdater/Controller.java b/src/main/java/ch/m4th1eu/flansupdater/Controller.java index 5803f0c..c1228e8 100644 --- a/src/main/java/ch/m4th1eu/flansupdater/Controller.java +++ b/src/main/java/ch/m4th1eu/flansupdater/Controller.java @@ -4,6 +4,7 @@ import javafx.application.Platform; import javafx.fxml.FXML; import javafx.scene.control.Button; import javafx.scene.control.TextField; +import javafx.scene.control.*; import javafx.stage.FileChooser; import net.lingala.zip4j.ZipFile; import net.lingala.zip4j.exception.ZipException; @@ -13,6 +14,7 @@ import java.io.File; import java.io.IOException; import java.net.URI; import java.net.URISyntaxException; +import java.util.Optional; import static ch.m4th1eu.flansupdater.Main.primaryStage; @@ -40,8 +42,8 @@ public class Controller { registerHoverableButton(convertir); registerHoverableButton(selectpack); - registerLinkableButton(bug, "xyz"); - registerLinkableButton(idea, "xyz"); + registerLinkableButton(bug, "https://github.com/M4TH1EU/Flan-s-Mod-Updater/issues/new?assignees=&labels=&template=bug_report.md&title="); + registerLinkableButton(idea, "https://github.com/M4TH1EU/Flan-s-Mod-Updater/issues/new?assignees=&labels=&template=feature_request.md&title="); packname.setEditable(false); convertir.setDisable(true); @@ -58,34 +60,42 @@ public class Controller { convertir.setText("Extraction du pack..."); }); - new ZipFile(selectedFile).extractAll(selectedFile.getParent() + "\\"); + new ZipFile(selectedFile).extractAll(selectedFile.getParent() + "\\dontTouch\\"); } catch (ZipException e) { e.printStackTrace(); Platform.runLater(() -> convertir.setText("Erreur, extraction échouée !")); } - java.lang.String[] args = new java.lang.String[]{selectedFile.getParent()}; + String[] args = new String[]{selectedFile.getParent() + "\\dontTouch", selectedFile.getName()}; try { Platform.runLater(() -> convertir.setText("Mise à jour...")); Updater.main(args); Platform.runLater(() -> convertir.setText("Terminé !")); - } catch (Exception e) { Platform.runLater(() -> convertir.setText("Erreur, mise à jour échouée !")); } + Platform.runLater(() -> { + Alert alert = new Alert(Alert.AlertType.INFORMATION); + alert.setTitle("Information"); + alert.setHeaderText("Mise à jour terminée."); + alert.setContentText("La mise à jour du pack " + packname.getText() + " est terminée !" + "\nChemin : " + selectedFile.getParent()); + + alert.showAndWait(); + }); + try { Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } Platform.runLater(() -> { - selectpack.setDisable(false); - selectpack.setText(""); + packname.setText(""); selectedFile = new File(""); convertir.setText("Mettre à jour mon pack"); convertir.setDisable(false); packname.setDisable(false); + selectpack.setDisable(false); }); }).start(); @@ -97,7 +107,7 @@ public class Controller { fileChooser.getExtensionFilters().addAll(new FileChooser.ExtensionFilter("ZIP Files", "*.zip")); selectedFile = fileChooser.showOpenDialog(primaryStage); - if(selectedFile != null){ + if (selectedFile != null) { packname.setText(selectedFile.getName()); } convertir.setDisable(false); diff --git a/src/main/java/ch/m4th1eu/flansupdater/Updater.java b/src/main/java/ch/m4th1eu/flansupdater/Updater.java index 927044d..112abd3 100644 --- a/src/main/java/ch/m4th1eu/flansupdater/Updater.java +++ b/src/main/java/ch/m4th1eu/flansupdater/Updater.java @@ -1,8 +1,6 @@ /** - * * @author Mathieu Broillet (M4TH1EU_#0001 (on discord)) * @description This program update himself your flan's mod packs from 1.7.10/1.8/etc. to 1.12.2 - * * @important This program is not meant to be very pretty or well coded. * It just works, that's all we ask. */ @@ -11,7 +9,9 @@ package ch.m4th1eu.flansupdater; import com.google.gson.Gson; import com.google.gson.JsonObject; +import org.apache.commons.io.FileUtils; import org.apache.commons.io.IOUtils; +import org.zeroturnaround.zip.ZipUtil; import java.io.*; import java.nio.charset.Charset; @@ -27,9 +27,11 @@ public class Updater { private static File MODEL_FILE = new File(""); private static String PATH = null; + private static String ZIP_FILE_NAME = null; public static void main(String[] args) throws Exception { PATH = args[0]; + ZIP_FILE_NAME = args[1]; ArrayList files = new ArrayList<>(); @@ -49,7 +51,7 @@ public class Updater { printWriter.println("{\n" + " \"pack\": {\n" + " \"pack_format\": 1,\n" + - " \"description\": \"Generated by M4TH1EU's Flans Updater.\"\n" + + " \"description\": \"Generated by Flans Updater.\"\n" + " }\n" + "}"); printWriter.close(); @@ -124,9 +126,31 @@ public class Updater { } } + + boolean delete = new File(Paths.get(PATH).getParent() + "\\" + ZIP_FILE_NAME).delete(); + if (delete) { + System.out.println("Old zip deleted"); + } else { + System.out.println("Old zip not deleted (error)"); + } + + //Zip.main(new String[]{Paths.get(PATH).getParent() + "\\" + ZIP_FILE_NAME.replaceAll(".jar", "").replaceAll(".zip", "").replaceAll(".rar", "") + "_UPDATED.zip", PATH}); + ZipUtil.pack(new File(PATH), new File(Paths.get(PATH).getParent() + "\\" + ZIP_FILE_NAME.replaceAll(".jar", "").replaceAll(".zip", "").replaceAll(".rar", "") + "_UPDATED.zip")); + + System.gc(); + Thread.yield(); + FileUtils.deleteDirectory(new File(Paths.get(PATH).getParent() + "\\dontTouch\\")); + while (new File(Paths.get(PATH).getParent() + "\\dontTouch\\").exists()) { + System.gc(); + Thread.yield(); + FileUtils.deleteDirectory(new File(Paths.get(PATH).getParent() + "\\dontTouch\\")); + } + + System.out.println("UPDATED SUCCESSFULLY"); } + public static boolean hasModel(Path filePath) { return new File(PATH + "\\assets\\flansmod\\models\\item\\" + filePath.getFileName().toString().replaceAll(".txt", ".json")).exists(); } @@ -152,6 +176,7 @@ public class Updater { String[] parts = strLine.split(" "); String oldName = "ShortName " + parts[1]; String newName = "ShortName " + parts[1].toLowerCase().replaceAll(" ", "_"); + System.out.println(oldName + " -> " + newName); MODEL_FILE = new File(filePath.getParent().getParent() + "\\assets\\flansmod\\models\\item\\" + parts[1].toLowerCase().replaceAll(" ", "_") + ".json"); modifyFile(String.valueOf(filePath), oldName, newName); } @@ -159,18 +184,22 @@ public class Updater { String[] parts = strLine.split(" "); String oldName = "ArmourTexture " + parts[1]; String newName = "ArmourTexture " + parts[1].toLowerCase(); + System.out.println(oldName + " -> " + newName); modifyFile(String.valueOf(filePath), oldName, newName); } if (strLine.contains("Texture")) { String[] parts = strLine.split(" "); String oldName = "Texture " + parts[1]; String newName = "Texture " + parts[1].toLowerCase().replaceAll(" ", "_"); + System.out.println(oldName + " -> " + newName); + modifyFile(String.valueOf(filePath), oldName, newName); } if (strLine.contains("Icon")) { String[] parts = strLine.split(" "); String oldName = "Icon " + parts[1]; String newName = "Icon " + parts[1].toLowerCase().replaceAll(" ", "_"); + System.out.println(oldName + " -> " + newName); ICON_NAME = parts[1].toLowerCase().replaceAll(" ", "_"); modifyFile(String.valueOf(filePath), oldName, newName); } @@ -202,6 +231,7 @@ public class Updater { if (jsonObject != null) { String oldIcon = jsonObject.getAsJsonObject("textures").get("layer0").getAsString(); String newIcon = "flansmod:items/" + ICON_NAME; + System.out.println(oldIcon + " -> " + newIcon); modifyFile(String.valueOf(filePath), oldIcon, newIcon); } else { @@ -281,6 +311,8 @@ public class Updater { filePath.getParent().toFile().mkdirs(); PrintWriter printWriter = new PrintWriter(filePath.toFile()); printWriter.println(theString); + + System.out.println("Model " + filePath.toFile().getName() + "created."); printWriter.close(); } @@ -321,7 +353,7 @@ public class Updater { } - if (files.get(i).getParent().toString().endsWith("armorFiles")) { + if (files.get(i).getParent().toString().endsWith("armorFiles") || files.get(i).getParent().toString().endsWith("vehicles")) { if (files.get(i).getFileName().toString().endsWith(".txt")) { try { // Open the file @@ -351,6 +383,7 @@ public class Updater { IOUtils.copy(inputStream, writer, Charset.forName("utf-8")); String theString = writer.toString(); theString = theString + "item." + id + ".name=" + name; + System.out.println("New lang entry : " + theString); PrintWriter writer1 = new PrintWriter(LANG_FILE); writer1.println(theString); diff --git a/src/main/java/ch/m4th1eu/flansupdater/Zip.java b/src/main/java/ch/m4th1eu/flansupdater/Zip.java index e7ee9ea..72e37fa 100644 --- a/src/main/java/ch/m4th1eu/flansupdater/Zip.java +++ b/src/main/java/ch/m4th1eu/flansupdater/Zip.java @@ -1,43 +1,107 @@ package ch.m4th1eu.flansupdater; + import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; +import java.util.ArrayList; +import java.util.List; import java.util.zip.ZipEntry; -import java.util.zip.ZipInputStream; +import java.util.zip.ZipOutputStream; public class Zip { - public static void unzip(File file) throws IOException { - String fileZip = file.getPath(); - File destDir = new File(file.getPath()); + private static String OUTPUT_ZIP_FILE = "C:\\MyFile.zip"; + private static String SOURCE_FOLDER = "C:\\testzip"; + List fileList; + + Zip() { + fileList = new ArrayList(); + } + + public static void main(String[] args) { + OUTPUT_ZIP_FILE = args[0]; + SOURCE_FOLDER = args[1]; + + Zip appZip = new Zip(); + appZip.generateFileList(new File(SOURCE_FOLDER)); + appZip.zipIt(OUTPUT_ZIP_FILE); + } + + /** + * Zip it + * + * @param zipFile output ZIP file location + */ + public void zipIt(String zipFile) { + byte[] buffer = new byte[1024]; - ZipInputStream zis = new ZipInputStream(new FileInputStream(fileZip)); - ZipEntry zipEntry = zis.getNextEntry(); - while (zipEntry != null) { - File newFile = newFile(destDir, zipEntry); - FileOutputStream fos = new FileOutputStream(newFile); - int len; - while ((len = zis.read(buffer)) > 0) { - fos.write(buffer, 0, len); + + try { + + FileOutputStream fos = new FileOutputStream(zipFile); + ZipOutputStream zos = new ZipOutputStream(fos); + + System.out.println("Output to Zip : " + zipFile); + + for (String file : this.fileList) { + + ZipEntry ze = new ZipEntry(file); + zos.putNextEntry(ze); + + FileInputStream in = + new FileInputStream(SOURCE_FOLDER + File.separator + file); + + int len; + while ((len = in.read(buffer)) > 0) { + zos.write(buffer, 0, len); + } + in.close(); } + System.out.println("Files added"); + + zos.closeEntry(); + //remember close it + zos.close(); fos.close(); - zipEntry = zis.getNextEntry(); + + System.out.println("Done"); + } catch (IOException ex) { + ex.printStackTrace(); } - zis.closeEntry(); - zis.close(); } - public static File newFile(File destinationDir, ZipEntry zipEntry) throws IOException { - File destFile = new File(destinationDir, zipEntry.getName()); + /** + * Traverse a directory and get all files, + * and add the file into fileList + * + * @param node file or directory + */ + public void generateFileList(File node) { - String destDirPath = destinationDir.getCanonicalPath(); - String destFilePath = destFile.getCanonicalPath(); - - if (!destFilePath.startsWith(destDirPath + File.separator)) { - throw new IOException("Entry is outside of the target dir: " + zipEntry.getName()); + //add file only + if (node.isFile()) { + fileList.add(generateZipEntry(node.getAbsoluteFile().toString())); + } + + if (node.isDirectory()) { + String[] subNote = node.list(); + for (String filename : subNote) { + generateFileList(new File(node, filename)); + } } - return destFile; } + + /** + * Format the file path for zip + * + * @param file file path + * @return Formatted file path + */ + private String generateZipEntry(String file) { + return file.substring(SOURCE_FOLDER.length() + 1); + } + + } \ No newline at end of file diff --git a/src/main/resources/icon.png b/src/main/resources/icon.png index 0c9978ce1462ca53d027ef8ceb6c1b71dcfdb6a4..2a6cc0b388ebc2ac841003ce6c98aec5b8d94dba 100644 GIT binary patch delta 4597 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 delta 12177 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 literal 15160 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