Feed codacy and leijurv at the same time?
This commit is contained in:
		| @@ -20,9 +20,7 @@ package baritone.gradle.task; | ||||
| import baritone.gradle.util.Determinizer; | ||||
| import baritone.gradle.util.MappingType; | ||||
| import baritone.gradle.util.ReobfWrapper; | ||||
| import com.google.gson.*; | ||||
| import java.lang.reflect.Field; | ||||
| import java.nio.file.StandardCopyOption; | ||||
| import java.util.stream.Collectors; | ||||
| import org.apache.commons.io.IOUtils; | ||||
| import org.gradle.api.NamedDomainObjectContainer; | ||||
| @@ -59,10 +57,6 @@ public class ProguardTask extends BaritoneGradleTask { | ||||
|     @Input | ||||
|     private String extract; | ||||
|  | ||||
|     @Input | ||||
|     private String versionManifest; | ||||
|  | ||||
|     private Map<String, String> versionDownloadMap; | ||||
|     private List<String> requiredLibraries; | ||||
|  | ||||
|     @TaskAction | ||||
| @@ -74,7 +68,6 @@ public class ProguardTask extends BaritoneGradleTask { | ||||
|         downloadProguard(); | ||||
|         extractProguard(); | ||||
|         generateConfigs(); | ||||
|         downloadVersionManifest(); | ||||
|         acquireDependencies(); | ||||
|         proguardApi(); | ||||
|         proguardStandalone(); | ||||
| @@ -139,20 +132,6 @@ public class ProguardTask extends BaritoneGradleTask { | ||||
|         }); | ||||
|     } | ||||
|  | ||||
|     private void downloadVersionManifest() throws Exception { | ||||
|         Path manifestJson = getTemporaryFile(VERSION_MANIFEST); | ||||
|         write(new URL(this.versionManifest).openStream(), manifestJson); | ||||
|  | ||||
|         // Place all the versions in the map with their download URL | ||||
|         this.versionDownloadMap = new HashMap<>(); | ||||
|         JsonObject json = readJson(Files.readAllLines(manifestJson)).getAsJsonObject(); | ||||
|         JsonArray versions = json.getAsJsonArray("versions"); | ||||
|         versions.forEach(element -> { | ||||
|             JsonObject object = element.getAsJsonObject(); | ||||
|             this.versionDownloadMap.put(object.get("id").getAsString(), object.get("url").getAsString()); | ||||
|         }); | ||||
|     } | ||||
|  | ||||
|     private void acquireDependencies() throws Exception { | ||||
|  | ||||
|         // Create a map of all of the dependencies that we are able to access in this project | ||||
| @@ -173,7 +152,7 @@ public class ProguardTask extends BaritoneGradleTask { | ||||
|             // copy from the forgegradle cache | ||||
|             if (lib.equals("minecraft")) { | ||||
|                 final Path cachedJar = getMinecraftJar(); | ||||
|                 final Path inTempDir = getTemporaryFile("tempLibraries/" + "minecraft.jar"); | ||||
|                 final Path inTempDir = getTemporaryFile("tempLibraries/minecraft.jar"); | ||||
|                 // TODO: maybe try not to copy every time | ||||
|                 Files.copy(cachedJar, inTempDir, REPLACE_EXISTING); | ||||
|  | ||||
| @@ -200,14 +179,14 @@ public class ProguardTask extends BaritoneGradleTask { | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     // a bunch of bullshit to get the path to the cached jar | ||||
|     // a bunch of epic stuff to get the path to the cached jar | ||||
|     private Path getMinecraftJar() throws Exception { | ||||
|         MappingType mappingType; | ||||
|         try { | ||||
|             mappingType = getMappingType(); | ||||
|         } catch (Exception e) { | ||||
|             System.err.println("Failed to get mapping type, assuming NOTCH"); | ||||
|             mappingType = MappingType.SEARGE; | ||||
|             System.err.println("Failed to get mapping type, assuming NOTCH."); | ||||
|             mappingType = MappingType.NOTCH; | ||||
|         } | ||||
|  | ||||
|         String suffix; | ||||
| @@ -219,12 +198,12 @@ public class ProguardTask extends BaritoneGradleTask { | ||||
|                 suffix = "-srgBin"; | ||||
|                 break; | ||||
|             case CUSTOM: | ||||
|                 throw new IllegalStateException("custom mappings not supported"); | ||||
|                 throw new IllegalStateException("Custom mappings not supported!"); | ||||
|             default: | ||||
|                 throw new IllegalStateException("Unknown mapping type: " + mappingType); | ||||
|         } | ||||
|  | ||||
|         DefaultConvention convention = (DefaultConvention)this.getProject().getConvention(); | ||||
|         DefaultConvention convention = (DefaultConvention) this.getProject().getConvention(); | ||||
|         final Object extension = convention.getAsMap().get("minecraft"); | ||||
|         Objects.requireNonNull(extension); | ||||
|  | ||||
| @@ -237,24 +216,23 @@ public class ProguardTask extends BaritoneGradleTask { | ||||
|         Field replacement_replaceMap = class_replacementProvider.getDeclaredField("replaceMap"); | ||||
|         replacement_replaceMap.setAccessible(true); | ||||
|  | ||||
|         final Map<String, Object> replacements = (Map)replacement_replaceMap.get(replacer); | ||||
|         final Map<String, Object> replacements = (Map) replacement_replaceMap.get(replacer); | ||||
|         final String cacheDir = replacements.get("CACHE_DIR").toString() + "/net/minecraft"; | ||||
|         final String mcVersion = replacements.get("MC_VERSION").toString(); | ||||
|         final String mcpInsert = replacements.get("MAPPING_CHANNEL").toString() + "/" + replacements.get("MAPPING_VERSION").toString(); | ||||
|         final String fullJarName = "minecraft" + "-" + mcVersion + suffix + ".jar"; | ||||
|         final String fullJarName = "minecraft-" + mcVersion + suffix + ".jar"; | ||||
|  | ||||
|         final String baseDir = String.format("%s/minecraft/%s/", cacheDir, mcVersion); | ||||
|  | ||||
|         String jarPath; | ||||
|         if (mappingType == MappingType.SEARGE) { | ||||
|             jarPath = String.format("%s/%s/%s", baseDir, mcpInsert, fullJarName); | ||||
|  | ||||
|         } else { | ||||
|             jarPath = baseDir + fullJarName; | ||||
|         } | ||||
|         jarPath = jarPath | ||||
|             .replace("/",  File.separator) | ||||
|             .replace("\\", File.separator);// fucking regex | ||||
|                 .replace("/", File.separator) | ||||
|                 .replace("\\", File.separator); // hecking regex | ||||
|  | ||||
|         return new File(jarPath).toPath(); | ||||
|     } | ||||
| @@ -266,10 +244,11 @@ public class ProguardTask extends BaritoneGradleTask { | ||||
|  | ||||
|         final List<MappingType> mappingTypes = getUsedMappingTypes(reobf); | ||||
|         final long mappingTypesUsed = mappingTypes.size(); | ||||
|         if (mappingTypesUsed == 0) | ||||
|         if (mappingTypesUsed == 0) { | ||||
|             throw new IllegalStateException("Failed to find mapping type (no jar task?)"); | ||||
|         if (mappingTypesUsed > 1) | ||||
|         } if (mappingTypesUsed > 1) { | ||||
|             throw new IllegalStateException("Ambiguous mapping type (multiple jars with different mapping types?)"); | ||||
|         } | ||||
|  | ||||
|         return mappingTypes.get(0); | ||||
|     } | ||||
| @@ -306,10 +285,6 @@ public class ProguardTask extends BaritoneGradleTask { | ||||
|         this.extract = extract; | ||||
|     } | ||||
|  | ||||
|     public void setVersionManifest(String versionManifest) { | ||||
|         this.versionManifest = versionManifest; | ||||
|     } | ||||
|  | ||||
|     private void runProguard(Path config) throws Exception { | ||||
|         // Delete the existing proguard output file. Proguard probably handles this already, but why not do it ourselves | ||||
|         if (Files.exists(this.proguardOut)) { | ||||
|   | ||||
| @@ -1,9 +1,29 @@ | ||||
| /* | ||||
|  * This file is part of Baritone. | ||||
|  * | ||||
|  * Baritone is free software: you can redistribute it and/or modify | ||||
|  * it under the terms of the GNU Lesser General Public License as published by | ||||
|  * the Free Software Foundation, either version 3 of the License, or | ||||
|  * (at your option) any later version. | ||||
|  * | ||||
|  * Baritone 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 Lesser General Public License for more details. | ||||
|  * | ||||
|  * You should have received a copy of the GNU Lesser General Public License | ||||
|  * along with Baritone.  If not, see <https://www.gnu.org/licenses/>. | ||||
|  */ | ||||
|  | ||||
| package baritone.gradle.util; | ||||
|  | ||||
| // this should be the same as in ForgeGradle | ||||
| // credit 2 asmlibgradle (i made this btw) | ||||
| /** | ||||
|  * All credits go to AsmLibGradle and its contributors. | ||||
|  * | ||||
|  * @see <a href="https://github.com/pozzed/AsmLibGradle/blob/8f917dbc3939eab7a3d9daf54d9d285fdf34f4b2/src/main/java/net/futureclient/asmlib/forgegradle/MappingType.java">Original Source</a> | ||||
|  */ | ||||
| public enum MappingType { | ||||
|   SEARGE, | ||||
|   NOTCH, | ||||
|   CUSTOM // forgegradle | ||||
|     SEARGE, | ||||
|     NOTCH, | ||||
|     CUSTOM // forgegradle | ||||
| } | ||||
| @@ -1,40 +1,63 @@ | ||||
| /* | ||||
|  * This file is part of Baritone. | ||||
|  * | ||||
|  * Baritone is free software: you can redistribute it and/or modify | ||||
|  * it under the terms of the GNU Lesser General Public License as published by | ||||
|  * the Free Software Foundation, either version 3 of the License, or | ||||
|  * (at your option) any later version. | ||||
|  * | ||||
|  * Baritone 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 Lesser General Public License for more details. | ||||
|  * | ||||
|  * You should have received a copy of the GNU Lesser General Public License | ||||
|  * along with Baritone.  If not, see <https://www.gnu.org/licenses/>. | ||||
|  */ | ||||
|  | ||||
| package baritone.gradle.util; | ||||
|  | ||||
| import java.lang.reflect.Field; | ||||
| import java.util.Objects; | ||||
|  | ||||
| /** | ||||
|  * All credits go to AsmLibGradle and its contributors. | ||||
|  * | ||||
|  * @see <a href="https://github.com/pozzed/AsmLibGradle/blob/8f917dbc3939eab7a3d9daf54d9d285fdf34f4b2/src/main/java/net/futureclient/asmlib/forgegradle/ReobfWrapper.java">Original Source</a> | ||||
|  */ | ||||
| public class ReobfWrapper { | ||||
|  | ||||
|   private final Object instance; | ||||
|   private final Class<?> type; | ||||
|     private final Object instance; | ||||
|     private final Class<?> type; | ||||
|  | ||||
|   public ReobfWrapper(Object instance) { | ||||
|     this.instance = instance; | ||||
|     Objects.requireNonNull(instance); | ||||
|     this.type = instance.getClass(); | ||||
|   } | ||||
|  | ||||
|   public String getName() { | ||||
|     try { | ||||
|       Field nameField = type.getDeclaredField("name"); | ||||
|       nameField.setAccessible(true); | ||||
|       return (String)nameField.get(this.instance); | ||||
|     } catch (ReflectiveOperationException ex) { | ||||
|       throw new Error(ex); | ||||
|     public ReobfWrapper(Object instance) { | ||||
|         this.instance = instance; | ||||
|         Objects.requireNonNull(instance); | ||||
|         this.type = instance.getClass(); | ||||
|     } | ||||
|   } | ||||
|  | ||||
|   public MappingType getMappingType() { | ||||
|     try { | ||||
|       Field enumField = type.getDeclaredField("mappingType"); | ||||
|       enumField.setAccessible(true); | ||||
|       Enum<?> meme = (Enum<?>) enumField.get(this.instance); | ||||
|       MappingType mappingType = MappingType.values()[meme.ordinal()]; | ||||
|       if (!meme.name().equals(mappingType.name())) | ||||
|         throw new IllegalStateException("ForgeGradle ReobfMappingType is not equivalent to MappingType (version error?)"); | ||||
|       return mappingType; | ||||
|     } catch (ReflectiveOperationException ex) { | ||||
|       throw new Error(ex); | ||||
|     public String getName() { | ||||
|         try { | ||||
|             Field nameField = type.getDeclaredField("name"); | ||||
|             nameField.setAccessible(true); | ||||
|             return (String) nameField.get(this.instance); | ||||
|         } catch (ReflectiveOperationException ex) { | ||||
|             throw new IllegalStateException(ex); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     public MappingType getMappingType() { | ||||
|         try { | ||||
|             Field enumField = type.getDeclaredField("mappingType"); | ||||
|             enumField.setAccessible(true); | ||||
|             Enum<?> aEnum = (Enum<?>) enumField.get(this.instance); | ||||
|             MappingType mappingType = MappingType.values()[aEnum.ordinal()]; | ||||
|             if (!aEnum.name().equals(mappingType.name())) { | ||||
|                 throw new IllegalStateException("ForgeGradle ReobfMappingType is not equivalent to MappingType (version error?)"); | ||||
|             } | ||||
|             return mappingType; | ||||
|         } catch (ReflectiveOperationException ex) { | ||||
|             throw new IllegalStateException(ex); | ||||
|         } | ||||
|     } | ||||
|   } | ||||
| } | ||||
		Reference in New Issue
	
	Block a user