diff --git a/build.gradle b/build.gradle index 2c1cfbad64..be6ceb3842 100644 --- a/build.gradle +++ b/build.gradle @@ -448,8 +448,8 @@ project(':forge') { installer 'cpw.mods:grossjava9hacks:1.3.+' installer 'net.minecraftforge:accesstransformers:2.2.+:shadowed' installer 'net.minecraftforge:eventbus:3.0.+:service' - installer 'net.minecraftforge:forgespi:3.0.+' - installer 'net.minecraftforge:coremods:2.0.+' + installer 'net.minecraftforge:forgespi:3.1.+' + installer 'net.minecraftforge:coremods:3.0.+' installer 'net.minecraftforge:unsafe:0.2.+' installer 'com.electronwill.night-config:core:3.6.2' installer 'com.electronwill.night-config:toml:3.6.2' diff --git a/mdk/src/main/resources/META-INF/mods.toml b/mdk/src/main/resources/META-INF/mods.toml index 490e8bffb5..8d888bc392 100644 --- a/mdk/src/main/resources/META-INF/mods.toml +++ b/mdk/src/main/resources/META-INF/mods.toml @@ -7,6 +7,8 @@ modLoader="javafml" #mandatory # A version range to match for said mod loader - for regular FML @Mod it will be the forge version loaderVersion="[32,)" #mandatory This is typically bumped every Minecraft version by Forge. See our download page for lists of versions. +# The license for you mod. This is mandatory metadata and allows for easier comprehension of your redistributive properties +license="CHOOSE YOUR LICENSE" # A URL to refer people to when problems occur with this mod issueTrackerURL="http://my.issue.tracker/" #optional # A list of mods - how many allowed here is determined by the individual mod loader diff --git a/src/fmllauncher/java/net/minecraftforge/fml/loading/moddiscovery/ModFileInfo.java b/src/fmllauncher/java/net/minecraftforge/fml/loading/moddiscovery/ModFileInfo.java index 6bf1469820..f8b20afd02 100644 --- a/src/fmllauncher/java/net/minecraftforge/fml/loading/moddiscovery/ModFileInfo.java +++ b/src/fmllauncher/java/net/minecraftforge/fml/loading/moddiscovery/ModFileInfo.java @@ -51,16 +51,19 @@ public class ModFileInfo implements IModFileInfo, IConfigurable private final boolean showAsResourcePack; private final List mods; private final Map properties; + private final String license; ModFileInfo(final ModFile modFile, final IConfigurable config) { this.modFile = modFile; this.config = config; - this.modLoader = config.getConfigElement("modLoader"). - orElseThrow(()->new InvalidModFileException("Missing ModLoader in file", this)); - this.modLoaderVersion = config.getConfigElement("loaderVersion"). - map(MavenVersionAdapter::createFromVersionSpec). - orElseThrow(()->new InvalidModFileException("Missing ModLoader version in file", this)); + this.modLoader = config.getConfigElement("modLoader") + .orElseThrow(()->new InvalidModFileException("Missing ModLoader in file", this)); + this.modLoaderVersion = config.getConfigElement("loaderVersion") + .map(MavenVersionAdapter::createFromVersionSpec) + .orElseThrow(()->new InvalidModFileException("Missing ModLoader version in file", this)); + this.license = config.getConfigElement("license") + .orElseThrow(()->new InvalidModFileException("Missing License, please supply a license.", this)); this.showAsResourcePack = config.getConfigElement("showAsResourcePack").orElse(false); this.properties = config.getConfigElement("properties"). map(UnmodifiableConfig::valueMap).orElse(Collections.emptyMap()); @@ -125,4 +128,9 @@ public class ModFileInfo implements IModFileInfo, IConfigurable public List getConfigList(final String... key) { return this.config.getConfigList(key); } + + @Override + public String getLicense() { + return license; + } } diff --git a/src/fmllauncher/resources/minecraftmod.toml b/src/fmllauncher/resources/minecraftmod.toml index 0ca20bf28b..37b3ad3d57 100644 --- a/src/fmllauncher/resources/minecraftmod.toml +++ b/src/fmllauncher/resources/minecraftmod.toml @@ -1,5 +1,6 @@ modLoader="minecraft" loaderVersion="1" +license="Mojang all rights reserved" [[mods]] modId="minecraft" version="${global.mcVersion}" diff --git a/src/main/java/net/minecraftforge/client/event/ColorHandlerEvent.java b/src/main/java/net/minecraftforge/client/event/ColorHandlerEvent.java index 8d6892a74a..1056bb6847 100644 --- a/src/main/java/net/minecraftforge/client/event/ColorHandlerEvent.java +++ b/src/main/java/net/minecraftforge/client/event/ColorHandlerEvent.java @@ -22,12 +22,13 @@ package net.minecraftforge.client.event; import net.minecraft.client.renderer.color.BlockColors; import net.minecraft.client.renderer.color.ItemColors; import net.minecraftforge.eventbus.api.Event; +import net.minecraftforge.fml.event.lifecycle.IModBusEvent; /** * Use these events to register block/item * color handlers at the appropriate time. */ -public abstract class ColorHandlerEvent extends Event +public abstract class ColorHandlerEvent extends Event implements IModBusEvent { public static class Block extends ColorHandlerEvent { diff --git a/src/main/java/net/minecraftforge/client/event/ModelBakeEvent.java b/src/main/java/net/minecraftforge/client/event/ModelBakeEvent.java index b9b62885ab..997302757a 100644 --- a/src/main/java/net/minecraftforge/client/event/ModelBakeEvent.java +++ b/src/main/java/net/minecraftforge/client/event/ModelBakeEvent.java @@ -27,13 +27,14 @@ import net.minecraft.client.renderer.model.ModelResourceLocation; import net.minecraft.util.ResourceLocation; import net.minecraftforge.client.model.ModelLoader; import net.minecraftforge.eventbus.api.Event; +import net.minecraftforge.fml.event.lifecycle.IModBusEvent; /** * Fired when the ModelManager is notified of the resource manager reloading. * Called after model registry is setup, but before it's passed to BlockModelShapes. */ // TODO: try to merge with ICustomModelLoader -public class ModelBakeEvent extends Event +public class ModelBakeEvent extends Event implements IModBusEvent { private final ModelManager modelManager; private final Map modelRegistry; diff --git a/src/main/java/net/minecraftforge/client/event/ParticleFactoryRegisterEvent.java b/src/main/java/net/minecraftforge/client/event/ParticleFactoryRegisterEvent.java index d1ffbce3ac..3e85733693 100644 --- a/src/main/java/net/minecraftforge/client/event/ParticleFactoryRegisterEvent.java +++ b/src/main/java/net/minecraftforge/client/event/ParticleFactoryRegisterEvent.java @@ -20,10 +20,11 @@ package net.minecraftforge.client.event; import net.minecraftforge.eventbus.api.Event; +import net.minecraftforge.fml.event.lifecycle.IModBusEvent; /** * Fired when you should call {@link net.minecraft.client.particle.ParticleManager#registerFactory}. * Note that your {@code ParticleType}s should still be registered during the usual registry events, this * is only for the factories. */ -public class ParticleFactoryRegisterEvent extends Event {} +public class ParticleFactoryRegisterEvent extends Event implements IModBusEvent {} diff --git a/src/main/java/net/minecraftforge/client/event/TextureStitchEvent.java b/src/main/java/net/minecraftforge/client/event/TextureStitchEvent.java index 775617703b..fd9063ea50 100644 --- a/src/main/java/net/minecraftforge/client/event/TextureStitchEvent.java +++ b/src/main/java/net/minecraftforge/client/event/TextureStitchEvent.java @@ -22,11 +22,12 @@ package net.minecraftforge.client.event; import net.minecraft.util.ResourceLocation; import net.minecraftforge.eventbus.api.Event; import net.minecraft.client.renderer.texture.AtlasTexture; +import net.minecraftforge.fml.event.lifecycle.IModBusEvent; import java.util.Set; -public class TextureStitchEvent extends Event +public class TextureStitchEvent extends Event implements IModBusEvent { private final AtlasTexture map; diff --git a/src/main/java/net/minecraftforge/client/event/sound/SoundLoadEvent.java b/src/main/java/net/minecraftforge/client/event/sound/SoundLoadEvent.java index e6ce2dbeeb..6f4941f7c6 100644 --- a/src/main/java/net/minecraftforge/client/event/sound/SoundLoadEvent.java +++ b/src/main/java/net/minecraftforge/client/event/sound/SoundLoadEvent.java @@ -20,12 +20,13 @@ package net.minecraftforge.client.event.sound; import net.minecraft.client.audio.SoundEngine; +import net.minecraftforge.fml.event.lifecycle.IModBusEvent; /** * Raised by the SoundManager.loadSoundSettings, this would be a good place for * adding your custom sounds to the SoundPool. */ -public class SoundLoadEvent extends SoundEvent +public class SoundLoadEvent extends SoundEvent implements IModBusEvent { public SoundLoadEvent(SoundEngine manager) { diff --git a/src/main/java/net/minecraftforge/fml/client/gui/screen/ModListScreen.java b/src/main/java/net/minecraftforge/fml/client/gui/screen/ModListScreen.java index 743ca6e80b..45f9d68988 100644 --- a/src/main/java/net/minecraftforge/fml/client/gui/screen/ModListScreen.java +++ b/src/main/java/net/minecraftforge/fml/client/gui/screen/ModListScreen.java @@ -457,7 +457,7 @@ public class ModListScreen extends Screen if (vercheck.status == VersionChecker.Status.OUTDATED || vercheck.status == VersionChecker.Status.BETA_OUTDATED) lines.add(ForgeI18n.parseMessage("fml.menu.mods.info.updateavailable", vercheck.url == null ? "" : vercheck.url)); - + lines.add(ForgeI18n.parseMessage("fml.menu.mods.info.license", selectedMod.getOwningFile().getLicense())); lines.add(null); lines.add(selectedMod.getDescription()); diff --git a/src/main/resources/META-INF/mods.toml b/src/main/resources/META-INF/mods.toml index f90ca51ab8..8f46eae921 100644 --- a/src/main/resources/META-INF/mods.toml +++ b/src/main/resources/META-INF/mods.toml @@ -2,6 +2,7 @@ modLoader="javafml" loaderVersion="[24,]" issueTrackerURL="http://www.minecraftforge.net/" logoFile="forge_logo.png" +license="LGPL v2.1" [[mods]] modId="forge" diff --git a/src/main/resources/assets/forge/lang/en_us.json b/src/main/resources/assets/forge/lang/en_us.json index 48f8850dd6..d6dde36a30 100644 --- a/src/main/resources/assets/forge/lang/en_us.json +++ b/src/main/resources/assets/forge/lang/en_us.json @@ -13,6 +13,7 @@ "fml.menu.mods.info.credits":"Credits: {0}", "fml.menu.mods.info.authors":"Authors: {0}", "fml.menu.mods.info.displayurl":"Homepage: {0}", + "fml.menu.mods.info.license":"License: {0}", "fml.menu.mods.info.nochildmods":"No child mods found", "fml.menu.mods.info.childmods":"Child mods: {0}", "fml.menu.mods.info.updateavailable":"Update available: {0}", diff --git a/src/test/resources/META-INF/mods.toml b/src/test/resources/META-INF/mods.toml index 8e55a8763b..219ca60d05 100644 --- a/src/test/resources/META-INF/mods.toml +++ b/src/test/resources/META-INF/mods.toml @@ -1,5 +1,6 @@ modLoader="javafml" loaderVersion="[28,)" +license="LGPL v2.1" [[mods]] modId="containertypetest"