diff --git a/CREDITS.txt b/CREDITS.txt index 589f482ef..a70c53d5a 100644 --- a/CREDITS.txt +++ b/CREDITS.txt @@ -10,7 +10,7 @@ alpha. Eloraam of RedPower, and SpaceToad of Buildcraft, without their acceptian of me taking over the project, who knows what Minecraft modding would be today. Secondly, someone who has worked with me, and developed some of the core features -that allow modding to he as functional, and as simple as it is, cpw. For developing +that allow modding to be as functional, and as simple as it is, cpw. For developing FML, which stabelized the client and server modding ecosystem. As well as the base loading system that allows us to modify Minecraft's code as elegently as possible. diff --git a/build.gradle b/build.gradle index 5c50d32f8..13f1958cd 100644 --- a/build.gradle +++ b/build.gradle @@ -190,6 +190,41 @@ project(':forge') { } version = getVersion() + + ext { + MANIFESTS = [ + '/': [ + 'Timestamp': new Date().format("yyyy-MM-dd'T'HH:mm:ssZ"), + 'GitCommit': grgit.head().getAbbreviatedId(8), + 'Git-Branch': grgit.branch.current().getName() + ] as LinkedHashMap, + 'net/minecraftforge/versions/forge/': [ + 'Specification-Title': 'Forge', + 'Specification-Vendor': 'Forge Development LLC', + 'Specification-Version': SPEC_VERSION, + 'Implementation-Title': project.group, + 'Implementation-Version': project.version.substring(MC_VERSION.length() + 1), + 'Implementation-Vendor': 'Forge Development LLC' + ] as LinkedHashMap, + 'net/minecraftforge/versions/mcp/': [ + 'Specification-Title': 'Minecraft', + 'Specification-Vendor': 'Mojang', + 'Specification-Version': MC_VERSION, + 'Implementation-Title': 'MCP', + 'Implementation-Version': MCP_VERSION, + 'Implementation-Vendor': 'Forge' + ] as LinkedHashMap, + 'net/minecraftforge/fml/javafmlmod/': [ + 'Specification-Title': 'Mod Language Provider', + 'Specification-Vendor': 'Forge Development LLC', + 'Specification-Version': '1', + 'Implementation-Title': 'FML Java Mod', + 'Implementation-Version': SPEC_VERSION, + 'Implementation-Vendor': 'Forge' + ] as LinkedHashMap + ] + } + applyPatches { canonicalizeAccess true canonicalizeWhitespace true @@ -200,6 +235,7 @@ project(':forge') { transitive = false //Don't pull all libraries, if we're missing something, add it to the installer list so the installer knows to download it. } api.extendsFrom(installer) + fmllauncherImplementation.extendsFrom(installer) } dependencies { api 'net.minecraft:client:1.13:extra' @@ -220,19 +256,6 @@ project(':forge') { installer 'java3d:vecmath:1.5.2' installer 'org.apache.logging.log4j:log4j-api:2.11.1' installer 'org.apache.logging.log4j:log4j-core:2.11.1' - fmllauncherImplementation 'org.ow2.asm:asm:6.2' - fmllauncherImplementation 'org.ow2.asm:asm-commons:6.2' - fmllauncherImplementation 'org.ow2.asm:asm-tree:6.2' - fmllauncherImplementation 'cpw.mods:modlauncher:0.1.0' - fmllauncherImplementation 'net.minecraftforge:accesstransformers:0.10+:shadowed' - fmllauncherImplementation 'net.minecraftforge:eventbus:0.1+:service' - fmllauncherImplementation 'net.minecraftforge:forgespi:0.1+' - fmllauncherImplementation 'net.minecraftforge:coremods:0.1+' - fmllauncherImplementation 'com.electronwill.night-config:core:3.4.0' - fmllauncherImplementation 'com.electronwill.night-config:toml:3.4.0' - fmllauncherImplementation 'org.apache.maven:maven-artifact:3.5.3' - fmllauncherImplementation 'org.apache.logging.log4j:log4j-api:2.11.1' - fmllauncherImplementation 'org.apache.logging.log4j:log4j-core:2.11.1' fmllauncherImplementation 'com.google.guava:guava:21.0' fmllauncherImplementation 'com.google.code.gson:gson:2.8.0' } @@ -249,21 +272,9 @@ project(':forge') { } //jvmArgs = ['-verbose:class'] classpath sourceSets.main.runtimeClasspath - main 'net.minecraftforge.fml.LaunchTesting' - systemProperties = [ - "org.lwjgl.util.Debug": "true", - "org.lwjgl.util.DebugLoader": "true", - "mc.version": "${MC_VERSION}", - "mcp.version": "${MCP_VERSION}", - "forge.version": "${project.version.substring(MC_VERSION.length() + 1)}", - "forge.spec":"${SPEC_VERSION}", - "forge.group": project.group - ] - environment += [ - target:'fmldevclient', - assetDirectory: downloadAssets.output, - nativesDirectory: extractNatives.output - ] + main patcher.clientRun.main + systemProperties = patcher.clientRun.properties + environment += patcher.clientRun.environment workingDir 'runclient' } @@ -278,16 +289,10 @@ project(':forge') { } } classpath sourceSets.main.runtimeClasspath - main 'net.minecraftforge.fml.LaunchTesting' + main patcher.serverRun.main args 'nogui' - systemProperties = [ - "mc.version": "${MC_VERSION}", - "mcp.version": "${MCP_VERSION}", - "forge.version": "${project.version.substring(MC_VERSION.length() + 1)}", - "forge.spec":"${SPEC_VERSION}", - "forge.group": project.group - ] - environment target:'fmldevserver' + systemProperties = patcher.serverRun.properties + environment += patcher.serverRun.environment workingDir 'runserver' standardInput = System.in } @@ -405,7 +410,7 @@ project(':forge') { } } - task launcherJson(dependsOn: 'signUniversal') { + task launcherJson(dependsOn: ['signUniversalJar', 'signLauncherJar']) { inputs.file universalJar.archivePath ext { output = file('build/version.json') @@ -431,28 +436,31 @@ project(':forge') { type: 'release', mainClass: 'cpw.mods.modlauncher.Launcher', inheritsFrom: MC_VERSION, - logging: [ client: [ + logging: [ + client: [ argument: '-Dlog4j.configurationFile=${path}', file: [ - id:'client-1.12.xml', - sha1:'ef4f57b922df243d0cef096efe808c72db042149', - size:877, - url:'https://launcher.mojang.com/v1/objects/ef4f57b922df243d0cef096efe808c72db042149/client-1.12.xml' + id:'client-1.12.xml', + sha1:'ef4f57b922df243d0cef096efe808c72db042149', + size:877, + url:'https://launcher.mojang.com/v1/objects/ef4f57b922df243d0cef096efe808c72db042149/client-1.12.xml' ], type: 'log4j2-xml' - ]], + ] + ], arguments: [ game: ['--launchTarget', 'fmlclient'] ], libraries: [ [ + //Package our launcher jar as the 'main' jar Mojang's launcher loads. It will in turn load Forge's regular jars itself. name: "${project.group}:${project.name}:${project.version}", downloads: [ artifact: [ path: "${project.group.replace('.', '/')}/${project.name}/${project.version}/${project.name}-${project.version}.jar", url: "", //Do not include the URL so that the installer/launcher won't grab it. This is also why we don't have the universal classifier - sha1: sha1(universalJar.archivePath), - size: universalJar.archivePath.length() + sha1: sha1(launcherJar.archivePath), + size: launcherJar.archivePath.length() ] ] ] @@ -483,7 +491,19 @@ project(':forge') { inputs.file launcherJson.output outputs.file output doLast { - def libs = [:] + def libs = [ + "${project.group}:${project.name}:${project.version}:universal": [ + name: "${project.group}:${project.name}:${project.version}:universal", + downloads: [ + artifact: [ + path: "${project.group.replace('.', '/')}/${project.name}/${project.version}/${project.name}-${project.version}-universal.jar", + url: "", //Do not include the URL so that the installer/launcher won't grab it. This is also why we don't have the universal classifier + sha1: sha1(universalJar.archivePath), + size: universalJar.archivePath.length() + ] + ] + ] + ] def json = [ _comment_: launcherJson.comment, spec: 0, @@ -636,6 +656,20 @@ project(':forge') { from { !crowdin.state.skipped ? zipTree(crowdin.archivePath) : null} dependsOn crowdin + doFirst { + MANIFESTS.each{ pkg, values -> + if (pkg == '/') { + manifest.attributes(values) + } else { + manifest.attributes(values, pkg) + } + } + } + } + + task launcherJar(type: Jar) { + classifier 'launcher' + from sourceSets.fmllauncher.output doFirst { def classpath = new StringBuilder() def artifacts = getArtifacts(project, project.configurations.installer, false) @@ -645,88 +679,25 @@ project(':forge') { classpath += "libraries/net/minecraft/server/${MC_VERSION}/server-${MC_VERSION}-data.jar " classpath += "libraries/net/minecraft/server/${MC_VERSION}/server-${MC_VERSION}-extra.jar" - - manifest.attributes([ - 'Main-Class': 'net.minecraftforge.server.ServerMain', - 'Timestamp': new Date().format("yyyy-MM-dd'T'HH:mm:ssZ"), - 'GitCommit': grgit.head().getAbbreviatedId(8), - 'Git-Branch': grgit.branch.current().getName(), - 'Class-Path': classpath.toString() - ] as LinkedHashMap) - manifest.attributes([ - 'Specification-Title': 'Forge', - 'Specification-Vendor': 'Forge Development LLC', - 'Specification-Version': SPEC_VERSION, - 'Implementation-Title': project.group, - 'Implementation-Version': project.version.substring(MC_VERSION.length() + 1), - 'Implementation-Vendor': 'Forge Development LLC' - ] as LinkedHashMap, 'net/minecraftforge/versions/forge/') - manifest.attributes([ - 'Specification-Title': 'Minecraft', - 'Specification-Vendor': 'Mojang', - 'Specification-Version': MC_VERSION, - 'Implementation-Title': 'MCP', - 'Implementation-Version': MCP_VERSION, - 'Implementation-Vendor': 'Forge' - ] as LinkedHashMap, 'net/minecraftforge/versions/mcp/') - // manifest entry for FML @Mod - manifest.attributes([ - 'Specification-Title': 'Mod Language Provider', - 'Specification-Vendor': 'Forge Development LLC', - 'Specification-Version': '1', - 'Implementation-Title': 'FML Java Mod', - 'Implementation-Version': SPEC_VERSION, - 'Implementation-Vendor': 'Forge' - ] as LinkedHashMap, 'net/minecraftforge/fml/javafmlmod/') + MANIFESTS.each{ pkg, values -> + if (pkg == '/') { + manifest.attributes(values += [ + 'Main-Class': 'net.minecraftforge.server.ServerMain', + 'Class-Path': classpath.toString() + ]) + } else { + manifest.attributes(values, pkg) + } + } } } - - task fmllauncherJar(type: Jar) { - from sourceSets.fmllauncher.output - doFirst { - manifest.attributes([ - 'Specification-Title' : 'Forge', - 'Specification-Vendor' : 'Forge Development LLC', - 'Specification-Version' : SPEC_VERSION, - 'Implementation-Title' : project.group, - 'Implementation-Version': project.version.substring(MC_VERSION.length() + 1), - 'Implementation-Vendor' : 'Forge Development LLC' - ] as LinkedHashMap, 'net/minecraftforge/versions/forge/') - manifest.attributes([ - 'Specification-Title' : 'Minecraft', - 'Specification-Vendor' : 'Mojang', - 'Specification-Version' : MC_VERSION, - 'Implementation-Title' : 'MCP', - 'Implementation-Version': MCP_VERSION, - 'Implementation-Vendor' : 'Forge' - ] as LinkedHashMap, 'net/minecraftforge/versions/mcp/') - } - } - - task signUniversal(type: SignJar, dependsOn: universalJar) { - onlyIf { - JAR_SIGNER != null && universalJar.state.failure == null - } - - def jarsigner = JAR_SIGNER == null ? [:] : JAR_SIGNER - alias = 'forge' - storePass = jarsigner.storepass - keyPass = jarsigner.keypass - keyStore = jarsigner.keystore - inputFile = universalJar.archivePath - outputFile = universalJar.archivePath - doFirst { - project.logger.lifecycle('Signing: ' + inputFile) - } - } - universalJar.finalizedBy(signUniversal) task downloadInstaller(type: DownloadMavenArtifact) { artifact = 'net.minecraftforge:installer:2.0.+:shrunk' changing = true } - task installerJar(type: Zip, dependsOn: [downloadInstaller, signUniversal, installerJson, launcherJson, genClientBinPatches, genServerBinPatches]) { + task installerJar(type: Zip, dependsOn: [downloadInstaller, installerJson, launcherJson, genClientBinPatches, genServerBinPatches, 'signUniversalJar', 'signLauncherJar']) { classifier = 'installer' extension = 'jar' //Needs to be Zip task to not override Manifest, so set extension destinationDir = file('build/libs') @@ -743,6 +714,9 @@ project(':forge') { } from(universalJar) { into "/maven/${project.group.replace('.', '/')}/${project.name}/${project.version}/" + } + from(launcherJar) { + into "/maven/${project.group.replace('.', '/')}/${project.name}/${project.version}/" rename { "${project.name}-${project.version}.jar" } } from(installerJson.output) @@ -751,23 +725,25 @@ project(':forge') { duplicatesStrategy = 'exclude' } } - task signInstaller(type: SignJar, dependsOn: installerJar) { - onlyIf { - JAR_SIGNER != null && installerJar.state.failure == null - } - - def jarsigner = JAR_SIGNER == null ? [:] : JAR_SIGNER - alias = 'forge' - storePass = jarsigner.storepass - keyPass = jarsigner.keypass - keyStore = jarsigner.keystore - inputFile = installerJar.archivePath - outputFile = installerJar.archivePath - doFirst { - project.logger.lifecycle('Signing: ' + inputFile) + + [universalJar, launcherJar, installerJar].each { t -> + task "sign${t.name.capitalize()}"(type: SignJar, dependsOn: t) { + onlyIf { + JAR_SIGNER != null && t.state.failure == null + } + def jarsigner = JAR_SIGNER == null ? [:] : JAR_SIGNER + alias = 'forge' + storePass = jarsigner.storepass + keyPass = jarsigner.keypass + keyStore = jarsigner.keystore + inputFile = t.archivePath + outputFile = t.archivePath + doFirst { + project.logger.lifecycle('Signing: ' + inputFile) + } } + t.finalizedBy(tasks.getByName("sign${t.name.capitalize()}")) } - installerJar.finalizedBy(signInstaller) task makeMdk(type: Zip) { baseName = project.name @@ -867,7 +843,7 @@ project(':forge') { artifact makeMdk artifact userdevJar artifact sourcesJar - artifact fmllauncherJar + artifact launcherJar pom { name = 'forge' diff --git a/src/fmllauncher/java/net/minecraftforge/fml/language/ILifecycleEvent.java b/src/fmllauncher/java/net/minecraftforge/fml/language/ILifecycleEvent.java index 6525987a2..975a1bbdd 100644 --- a/src/fmllauncher/java/net/minecraftforge/fml/language/ILifecycleEvent.java +++ b/src/fmllauncher/java/net/minecraftforge/fml/language/ILifecycleEvent.java @@ -1,3 +1,22 @@ +/* + * Minecraft Forge + * Copyright (c) 2016-2018. + * + * This library 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 version 2.1 + * of the License. + * + * This library 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 this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + package net.minecraftforge.fml.language; public interface ILifecycleEvent> { diff --git a/src/fmllauncher/java/net/minecraftforge/fml/loading/JarVersionLookupHandler.java b/src/fmllauncher/java/net/minecraftforge/fml/loading/JarVersionLookupHandler.java index 053ac0339..edc6deaf3 100644 --- a/src/fmllauncher/java/net/minecraftforge/fml/loading/JarVersionLookupHandler.java +++ b/src/fmllauncher/java/net/minecraftforge/fml/loading/JarVersionLookupHandler.java @@ -1,3 +1,22 @@ +/* + * Minecraft Forge + * Copyright (c) 2016-2018. + * + * This library 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 version 2.1 + * of the License. + * + * This library 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 this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + package net.minecraftforge.fml.loading; import java.util.Optional; diff --git a/src/fmllauncher/java/net/minecraftforge/fml/loading/LauncherVersion.java b/src/fmllauncher/java/net/minecraftforge/fml/loading/LauncherVersion.java index 7c0954bbb..7f7d07208 100644 --- a/src/fmllauncher/java/net/minecraftforge/fml/loading/LauncherVersion.java +++ b/src/fmllauncher/java/net/minecraftforge/fml/loading/LauncherVersion.java @@ -1,3 +1,22 @@ +/* + * Minecraft Forge + * Copyright (c) 2016-2018. + * + * This library 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 version 2.1 + * of the License. + * + * This library 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 this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + package net.minecraftforge.fml.loading; import org.apache.logging.log4j.LogManager; diff --git a/src/fmllauncher/java/net/minecraftforge/fml/loading/LibraryFinder.java b/src/fmllauncher/java/net/minecraftforge/fml/loading/LibraryFinder.java index 973617849..bcd9d20a0 100644 --- a/src/fmllauncher/java/net/minecraftforge/fml/loading/LibraryFinder.java +++ b/src/fmllauncher/java/net/minecraftforge/fml/loading/LibraryFinder.java @@ -1,3 +1,22 @@ +/* + * Minecraft Forge + * Copyright (c) 2016-2018. + * + * This library 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 version 2.1 + * of the License. + * + * This library 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 this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + package net.minecraftforge.fml.loading; import com.google.common.collect.ObjectArrays; diff --git a/src/fmllauncher/java/net/minecraftforge/fml/loading/LogMarkers.java b/src/fmllauncher/java/net/minecraftforge/fml/loading/LogMarkers.java index a70bb6c86..435154e95 100644 --- a/src/fmllauncher/java/net/minecraftforge/fml/loading/LogMarkers.java +++ b/src/fmllauncher/java/net/minecraftforge/fml/loading/LogMarkers.java @@ -1,3 +1,22 @@ +/* + * Minecraft Forge + * Copyright (c) 2016-2018. + * + * This library 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 version 2.1 + * of the License. + * + * This library 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 this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + package net.minecraftforge.fml.loading; import org.apache.logging.log4j.Marker; diff --git a/src/fmllauncher/java/net/minecraftforge/fml/loading/MavenCoordinateResolver.java b/src/fmllauncher/java/net/minecraftforge/fml/loading/MavenCoordinateResolver.java index 7ed0af42c..3db254545 100644 --- a/src/fmllauncher/java/net/minecraftforge/fml/loading/MavenCoordinateResolver.java +++ b/src/fmllauncher/java/net/minecraftforge/fml/loading/MavenCoordinateResolver.java @@ -1,3 +1,22 @@ +/* + * Minecraft Forge + * Copyright (c) 2016-2018. + * + * This library 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 version 2.1 + * of the License. + * + * This library 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 this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + package net.minecraftforge.fml.loading; import java.nio.file.Path; diff --git a/src/fmllauncher/java/net/minecraftforge/fml/loading/moddiscovery/AbstractJarFileLocator.java b/src/fmllauncher/java/net/minecraftforge/fml/loading/moddiscovery/AbstractJarFileLocator.java index 4a6b82051..70dfddd77 100644 --- a/src/fmllauncher/java/net/minecraftforge/fml/loading/moddiscovery/AbstractJarFileLocator.java +++ b/src/fmllauncher/java/net/minecraftforge/fml/loading/moddiscovery/AbstractJarFileLocator.java @@ -1,3 +1,22 @@ +/* + * Minecraft Forge + * Copyright (c) 2016-2018. + * + * This library 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 version 2.1 + * of the License. + * + * This library 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 this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + package net.minecraftforge.fml.loading.moddiscovery; import org.apache.logging.log4j.LogManager; diff --git a/src/fmllauncher/java/net/minecraftforge/fml/loading/moddiscovery/MavenDirectoryLocator.java b/src/fmllauncher/java/net/minecraftforge/fml/loading/moddiscovery/MavenDirectoryLocator.java index e7a1fb947..b9923eaee 100644 --- a/src/fmllauncher/java/net/minecraftforge/fml/loading/moddiscovery/MavenDirectoryLocator.java +++ b/src/fmllauncher/java/net/minecraftforge/fml/loading/moddiscovery/MavenDirectoryLocator.java @@ -1,3 +1,22 @@ +/* + * Minecraft Forge + * Copyright (c) 2016-2018. + * + * This library 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 version 2.1 + * of the License. + * + * This library 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 this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + package net.minecraftforge.fml.loading.moddiscovery; import net.minecraftforge.fml.loading.FMLPaths; diff --git a/src/main/java/net/minecraftforge/client/extensions/IForgeBakedModel.java b/src/main/java/net/minecraftforge/client/extensions/IForgeBakedModel.java index 02e034338..a2f4b927d 100644 --- a/src/main/java/net/minecraftforge/client/extensions/IForgeBakedModel.java +++ b/src/main/java/net/minecraftforge/client/extensions/IForgeBakedModel.java @@ -1,3 +1,22 @@ +/* + * Minecraft Forge + * Copyright (c) 2016-2018. + * + * This library 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 version 2.1 + * of the License. + * + * This library 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 this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + package net.minecraftforge.client.extensions; import net.minecraft.block.state.IBlockState; diff --git a/src/main/java/net/minecraftforge/client/extensions/IForgeRenderChunk.java b/src/main/java/net/minecraftforge/client/extensions/IForgeRenderChunk.java index 8c8690470..a07fac4d3 100644 --- a/src/main/java/net/minecraftforge/client/extensions/IForgeRenderChunk.java +++ b/src/main/java/net/minecraftforge/client/extensions/IForgeRenderChunk.java @@ -1,3 +1,22 @@ +/* + * Minecraft Forge + * Copyright (c) 2016-2018. + * + * This library 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 version 2.1 + * of the License. + * + * This library 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 this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + package net.minecraftforge.client.extensions; import net.minecraft.util.math.BlockPos; diff --git a/src/main/java/net/minecraftforge/client/extensions/IForgeTextureAtlasSprite.java b/src/main/java/net/minecraftforge/client/extensions/IForgeTextureAtlasSprite.java index b1a3f8339..79746f3ce 100644 --- a/src/main/java/net/minecraftforge/client/extensions/IForgeTextureAtlasSprite.java +++ b/src/main/java/net/minecraftforge/client/extensions/IForgeTextureAtlasSprite.java @@ -1,3 +1,22 @@ +/* + * Minecraft Forge + * Copyright (c) 2016-2018. + * + * This library 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 version 2.1 + * of the License. + * + * This library 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 this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + package net.minecraftforge.client.extensions; import java.util.Collection; diff --git a/src/main/java/net/minecraftforge/common/extensions/IForgeEntityMinecart.java b/src/main/java/net/minecraftforge/common/extensions/IForgeEntityMinecart.java index 9fdbba8b6..4c4873180 100644 --- a/src/main/java/net/minecraftforge/common/extensions/IForgeEntityMinecart.java +++ b/src/main/java/net/minecraftforge/common/extensions/IForgeEntityMinecart.java @@ -16,6 +16,7 @@ * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ + package net.minecraftforge.common.extensions; import net.minecraft.block.BlockRailBase; diff --git a/src/main/java/net/minecraftforge/common/extensions/IForgeWorldType.java b/src/main/java/net/minecraftforge/common/extensions/IForgeWorldType.java index 0fbdb5ece..0bdcd6f64 100644 --- a/src/main/java/net/minecraftforge/common/extensions/IForgeWorldType.java +++ b/src/main/java/net/minecraftforge/common/extensions/IForgeWorldType.java @@ -1,3 +1,22 @@ +/* + * Minecraft Forge + * Copyright (c) 2016-2018. + * + * This library 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 version 2.1 + * of the License. + * + * This library 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 this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + package net.minecraftforge.common.extensions; import java.util.function.LongFunction; diff --git a/src/main/java/net/minecraftforge/fml/ResourceLocationUtils.java b/src/main/java/net/minecraftforge/fml/ResourceLocationUtils.java index 9033460c8..aa204b07c 100644 --- a/src/main/java/net/minecraftforge/fml/ResourceLocationUtils.java +++ b/src/main/java/net/minecraftforge/fml/ResourceLocationUtils.java @@ -1,3 +1,22 @@ +/* + * Minecraft Forge + * Copyright (c) 2016-2018. + * + * This library 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 version 2.1 + * of the License. + * + * This library 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 this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + package net.minecraftforge.fml; import com.google.common.base.Joiner; diff --git a/src/test/java/net/minecraftforge/test/TestProgressBar.java b/src/test/java/net/minecraftforge/test/TestProgressBar.java index b58feb3bc..00837d845 100644 --- a/src/test/java/net/minecraftforge/test/TestProgressBar.java +++ b/src/test/java/net/minecraftforge/test/TestProgressBar.java @@ -1,3 +1,22 @@ +/* + * Minecraft Forge + * Copyright (c) 2016-2018. + * + * This library 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 version 2.1 + * of the License. + * + * This library 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 this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + package net.minecraftforge.test; import net.minecraftforge.fml.common.progress.IProgressBarTracker;