From 0862e3c541481a8e1cbd1f7ab4e7548c8a430e57 Mon Sep 17 00:00:00 2001 From: Gravit Date: Wed, 26 Dec 2018 16:34:18 +0700 Subject: [PATCH] =?UTF-8?q?=D0=A4=D0=B8=D1=82=D1=87=D0=B0=20=D0=B4=D0=BB?= =?UTF-8?q?=D1=8F=20=D0=BC=D0=BE=D0=B4=D1=83=D0=BB=D0=B5=D0=B9=20-=20?= =?UTF-8?q?=D1=81=D0=BF=D0=B8=D1=81=D0=BE=D0=BA=20=D1=84=D0=B0=D0=B9=D0=BB?= =?UTF-8?q?=D0=BE=D0=B2=20=D0=B2=20jar=20=D0=BB=D0=B0=D1=83=D0=BD=D1=87?= =?UTF-8?q?=D0=B5=D1=80=D0=B0=20=D0=A3=D0=BF=D1=80=D0=BE=D1=89=D0=B0=D0=B5?= =?UTF-8?q?=D1=82=20=D0=BF=D1=80=D0=BE=D1=86=D0=B5=D0=B4=D1=83=D1=80=D1=83?= =?UTF-8?q?=20=D0=B2=D0=BD=D0=B5=D0=B4=D1=80=D0=B5=D0=BD=D0=B8=D1=8F=20?= =?UTF-8?q?=D1=81=D0=B2=D0=BE=D0=B8=D1=85=20=D1=84=D0=B0=D0=B9=D0=BB=D0=BE?= =?UTF-8?q?=D0=B2=20=D0=B2=20JAR?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ru/gravit/launchserver/binary/BuildContext.java | 11 +++++++++++ .../gravit/launchserver/binary/JARLauncherBinary.java | 1 + 2 files changed, 12 insertions(+) diff --git a/LaunchServer/src/main/java/ru/gravit/launchserver/binary/BuildContext.java b/LaunchServer/src/main/java/ru/gravit/launchserver/binary/BuildContext.java index c8905f15..b04d42f6 100644 --- a/LaunchServer/src/main/java/ru/gravit/launchserver/binary/BuildContext.java +++ b/LaunchServer/src/main/java/ru/gravit/launchserver/binary/BuildContext.java @@ -4,6 +4,7 @@ import java.io.IOException; import java.io.InputStream; +import java.util.HashSet; import java.util.Set; import java.util.zip.ZipEntry; import java.util.zip.ZipInputStream; @@ -13,24 +14,33 @@ public class BuildContext { public final ZipOutputStream output; public final JAConfigurator config; public final JARLauncherBinary data; + public final HashSet fileList; + public BuildContext(ZipOutputStream output, JAConfigurator config, JARLauncherBinary data) { this.output = output; this.config = config; this.data = data; + fileList = new HashSet<>(1024); } public void pushFile(String filename, InputStream inputStream) throws IOException { ZipEntry zip = IOHelper.newZipEntry(filename); output.putNextEntry(zip); IOHelper.transfer(inputStream, output); + fileList.add(filename); } public void pushJarFile(ZipInputStream input) throws IOException { ZipEntry e = input.getNextEntry(); while (e != null) { + if (fileList.contains(e.getName())) { + e = input.getNextEntry(); + continue; + } output.putNextEntry(e); IOHelper.transfer(input, output); + fileList.add(e.getName()); e = input.getNextEntry(); } } @@ -44,6 +54,7 @@ public void pushJarFile(ZipInputStream input, Set blacklist) throws IOEx } output.putNextEntry(e); IOHelper.transfer(input, output); + fileList.add(e.getName()); e = input.getNextEntry(); } } diff --git a/LaunchServer/src/main/java/ru/gravit/launchserver/binary/JARLauncherBinary.java b/LaunchServer/src/main/java/ru/gravit/launchserver/binary/JARLauncherBinary.java index 7cfe660b..1375dfde 100644 --- a/LaunchServer/src/main/java/ru/gravit/launchserver/binary/JARLauncherBinary.java +++ b/LaunchServer/src/main/java/ru/gravit/launchserver/binary/JARLauncherBinary.java @@ -242,6 +242,7 @@ private void stdBuild() throws IOException { } } else IOHelper.transfer(input, output); + context.fileList.add(filename); e = input.getNextEntry(); } }