diff --git a/CREDITS.txt b/CREDITS.txt index 589f482efd6..a70c53d5a98 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 5c50d32f818..13f1958cd35 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/') - } - } - - 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) + MANIFESTS.each{ pkg, values -> + if (pkg == '/') { + manifest.attributes(values += [ + 'Main-Class': 'net.minecraftforge.server.ServerMain', + 'Class-Path': classpath.toString() + ]) + } else { + manifest.attributes(values, pkg) + } + } } } - 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 6525987a2de..975a1bbdd32 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 053ac033948..edc6deaf301 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 7c0954bbb1b..7f7d0720848 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 973617849d8..bcd9d20a075 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 a70bb6c8665..435154e95f0 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 7ed0af42c71..3db254545f5 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 4a6b82051df..70dfddd77cd 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 e7a1fb9475d..b9923eaee15 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 02e03433804..a2f4b927d93 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 8c869047035..a07fac4d3d7 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 b1a3f833912..79746f3cefa 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 9fdbba8b666..4c48731802c 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 0fbdb5eceec..0bdcd6f640d 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 9033460c8dd..aa204b07c5b 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 b58feb3bc6e..00837d845eb 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;