Line 18: |
Line 18: |
| * '''Group by Function''': Another common strategy is to make subpackages for grouping classes that have a common purpose. For example, your blocks classes can be under <code>blocks</code>, your entities classes can be under <code>entities</code>, your helper utilities can be under <code>helpers</code>, etc. | | * '''Group by Function''': Another common strategy is to make subpackages for grouping classes that have a common purpose. For example, your blocks classes can be under <code>blocks</code>, your entities classes can be under <code>entities</code>, your helper utilities can be under <code>helpers</code>, etc. |
| | | |
− | No matter how your final structure looks like it is highly recommended to add a <code>client</code> subpackage under your main package. This helps to isolate your [[Sides|client-only code]] from the rest, such as your GUIs and renderers. | + | No matter how your final structure looks like it is highly recommended to add a <code>client</code> subpackage under your main package. This helps to isolate your [[Sides|client-only code]] from the rest, such as your Screens and renderers. |
| | | |
| By keeping your code in clean subpackages, you can grow your mod much more organically. | | By keeping your code in clean subpackages, you can grow your mod much more organically. |
Line 53: |
Line 53: |
| <syntaxhighlight lang="TOML"> | | <syntaxhighlight lang="TOML"> |
| modLoader="javafml" | | modLoader="javafml" |
− | # Forge for 1.16.5 is version 36 | + | # Forge for 1.17.1 is version 37 |
− | loaderVersion="[36,)" | + | loaderVersion="[37,)" |
| license="All rights reserved" | | license="All rights reserved" |
| issueTrackerURL="github.com/MinecraftForge/MinecraftForge/issues" | | issueTrackerURL="github.com/MinecraftForge/MinecraftForge/issues" |
Line 75: |
Line 75: |
| modId="forge" | | modId="forge" |
| mandatory=true | | mandatory=true |
− | versionRange="[36,)" | + | versionRange="[37,)" |
| ordering="NONE" | | ordering="NONE" |
| side="BOTH" | | side="BOTH" |
Line 82: |
Line 82: |
| modId="minecraft" | | modId="minecraft" |
| mandatory=true | | mandatory=true |
− | versionRange="[1.16.5]" | + | versionRange="[1.17.1,1.18)" |
| ordering="NONE" | | ordering="NONE" |
| side="BOTH" | | side="BOTH" |
Line 90: |
Line 90: |
| If the <code>version</code> is specified as<code>${file.jarVersion}</code>, Forge will replace the string with the 'Implementation Version' specified in the jar manifest at runtime. Since the userdev environment has no jar manifest to pull from, it will be <code>NONE</code> instead. As such, it is usually recommended to leave this field alone. | | If the <code>version</code> is specified as<code>${file.jarVersion}</code>, Forge will replace the string with the 'Implementation Version' specified in the jar manifest at runtime. Since the userdev environment has no jar manifest to pull from, it will be <code>NONE</code> instead. As such, it is usually recommended to leave this field alone. |
| | | |
− | The <code>mods.toml</code> is split into three parts: the non-mod-specific properties, which are linked to the mod file; the mod properties, with a section for each mod; and dependency configurations, with a section for each mod's dependencies.Here is a table of attributes that may be given to a mod, where<code>mandatory</code>means there is no default and the absence of the property causes an error. | + | The <code>mods.toml</code> is split into three parts: the non-mod-specific properties, which are linked to the mod file; the mod properties, with a section for each mod; and dependency configurations, with a section for each mod's dependencies. Here is a table of attributes that may be given to a mod, where<code>mandatory</code>means there is no default and the absence of the property causes an error. |
| ===Non-Mod-Specific Properties=== | | ===Non-Mod-Specific Properties=== |
| | | |
Line 111: |
Line 111: |
| |'''mandatory''' | | |'''mandatory''' |
| |The acceptable version range of the language loader, expressed as a [https://maven.apache.org/enforcer/enforcer-rules/versionRanges.html Maven version spec]. For the Forge-provided Java loader, the version is the major version of the Forge version. | | |The acceptable version range of the language loader, expressed as a [https://maven.apache.org/enforcer/enforcer-rules/versionRanges.html Maven version spec]. For the Forge-provided Java loader, the version is the major version of the Forge version. |
− | |<code>"[36,)"</code> | + | |<code>"[37,)"</code> |
| |- | | |- |
| |<code>license</code> | | |<code>license</code> |