Compare commits

..
2 Commits
Author SHA1 Message Date
Paint_Ninja 5e421e8b8b Add c:tools/trident item tag, update contents of c:tools/melee_weapon, remove c:tools/spear (#10808)
- Breaking change: `c:tools/spear` has been renamed to `c:tools/trident` to match other loaders
- The contents of the `c:tools/melee_weapon` tag now includes spears
2026-04-08 20:26:14 +01:00
LexManos 5f37e8af53 Work around 3rd party launchers who build incorrect classpaths Closes #10797 2026-04-03 09:31:40 -07:00
9 changed files with 27 additions and 20 deletions

No files matched your search

+5 -5
View File
@@ -88,7 +88,7 @@ ext {
}
final String MAVEN_PATH = ext.MAVEN_PATH
final String BINPATCH_TOOL = 'net.minecraftforge:binarypatcher:1.2.0:fatjar'
final String BINPATCH_TOOL = 'net.minecraftforge:binarypatcher:1.3.0:fatjar'
final String INSTALLER_TOOLS = 'net.minecraftforge:installertools:1.4.5'
final String FART = 'net.minecraftforge:ForgeAutoRenamingTool:1.0.6'
final String S2S_TOOL = 'net.minecraftforge:Srg2Source:8.2.0:fatjar'
@@ -459,14 +459,14 @@ tasks.register('applyClientBinPatches', ApplyBinPatches) {
tool = BINPATCH_TOOL
clean = downloadClientRaw.dest
patch = genClientBinPatches.output
args.addAll(['--data', '--unpatched'])
args.addAll(['--data', '--unpatched', '--store', '--marker', '.forge_patched_minecraft'])
}
tasks.register('applyServerBinPatches', ApplyBinPatches) {
dependsOn extractServer
tool = BINPATCH_TOOL
clean = extractServer.output
patch = genServerBinPatches.output
args.addAll(['--data', '--unpatched'])
args.addAll(['--data', '--unpatched', '--store'])
}
tasks.register('applyJoinedBinPatches', ApplyBinPatches) {
tool = BINPATCH_TOOL
@@ -718,7 +718,7 @@ tasks.register('installerJson', InstallerJson) {
'--clean', '{MC_UNPACKED}',
'--output', '{PATCHED}',
'--apply', '{BINPATCH}',
'--data', '--unpatched'
'--data', '--unpatched', '--store'
],
outputs: [
'{PATCHED}': '{PATCHED_SHA}'
@@ -731,7 +731,7 @@ tasks.register('installerJson', InstallerJson) {
'--clean', '{MINECRAFT_JAR}',
'--output', '{PATCHED}',
'--apply', '{BINPATCH}',
'--data', '--unpatched'
'--data', '--unpatched', '--store', '--marker', '.forge_patched_minecraft'
],
outputs: [
'{PATCHED}': '{PATCHED_SHA}'
@@ -25,7 +25,9 @@ sealed abstract class ForgeProdLaunchHandler extends CommonLaunchHandler {
@Override
public List<Path> getMinecraftPaths() {
return List.of(getPathFromResource("net/minecraft/client/Minecraft.class"));
// We use a marker because 3rd party launcher don't build their class paths correctly
// https://github.com/MinecraftForge/MinecraftForge/issues/10797
return List.of(getPathFromResource(".forge_patched_minecraft"));
}
}
@@ -4,10 +4,6 @@
"minecraft:lilac",
"minecraft:peony",
"minecraft:rose_bush",
"minecraft:pitcher_plant",
{
"id": "minecraft:tall_flowers",
"required": false
}
"minecraft:pitcher_plant"
]
}
@@ -12,7 +12,7 @@
"#c:tools/shear",
"#c:tools/igniter",
"#c:tools/shield",
"#c:tools/spear",
"#c:tools/trident",
"#c:tools/mace",
"#c:tools/mining_tool",
"#c:tools/melee_weapon",
@@ -15,6 +15,13 @@
"minecraft:golden_axe",
"minecraft:iron_axe",
"minecraft:diamond_axe",
"minecraft:netherite_axe"
"minecraft:netherite_axe",
"minecraft:wooden_spear",
"minecraft:stone_spear",
"minecraft:copper_spear",
"minecraft:iron_spear",
"minecraft:golden_spear",
"minecraft:diamond_spear",
"minecraft:netherite_spear"
]
}
@@ -238,7 +238,7 @@ public final class TagConventionMappings {
legacyToCommon(Registries.ITEM, forgeRl("tools/bows"), Tags.Items.TOOLS_BOW),
legacyToCommon(Registries.ITEM, forgeRl("tools/crossbows"), Tags.Items.TOOLS_CROSSBOW),
legacyToCommon(Registries.ITEM, forgeRl("tools/fishing_rods"), Tags.Items.TOOLS_FISHING_ROD),
legacyToCommon(Registries.ITEM, forgeRl("tools/tridents"), Tags.Items.TOOLS_SPEAR),
legacyToCommon(Registries.ITEM, forgeRl("tools/tridents"), Tags.Items.TOOLS_TRIDENT),
legacyToCommon(Registries.ITEM, forgeRl("tools/shears"), Tags.Items.TOOLS_SHEAR),
legacyToCommon(Registries.ITEM, forgeRl("armors"), Tags.Items.ARMORS),
@@ -780,15 +780,16 @@ public class Tags {
*/
public static final TagKey<Item> TOOLS_FISHING_ROD = cTag("tools/fishing_rod");
/**
* A tag containing all existing spears. Other tools such as throwing knives or boomerangs
* should not be put into this tag and should be put into their own tool tags.
* A tag containing all existing throwable stick-like weapons like tridents.
* Other tools such as throwing knives or boomerangs should not be put into
* this tag and should be put into their own tool tags.
* Do not use this tag for determining a tool's behavior.
* Please use {@link ToolActions} instead for what action a tool can do.
*
* @see ToolAction
* @see ToolActions
*/
public static final TagKey<Item> TOOLS_SPEAR = cTag("tools/spear");
public static final TagKey<Item> TOOLS_TRIDENT = cTag("tools/trident");
/**
* A tag containing all existing shears. Do not use this tag for determining a tool's behavior.
* Please use {@link ToolActions} instead for what action a tool can do.
@@ -248,20 +248,21 @@ public final class ForgeItemTagsProvider extends VanillaItemTagsProvider {
.add(Items.FISHING_ROD);
tag(Tags.Items.TOOLS_SHEAR)
.add(Items.SHEARS);
tag(Tags.Items.TOOLS_SPEAR).add(Items.TRIDENT);
tag(Tags.Items.TOOLS_TRIDENT).add(Items.TRIDENT);
tag(Tags.Items.TOOLS_MACE).add(Items.MACE);
tag(Tags.Items.TOOLS_IGNITER).add(Items.FLINT_AND_STEEL);
tag(Tags.Items.MINING_TOOL_TOOLS).add(Items.WOODEN_PICKAXE, Items.STONE_PICKAXE, Items.COPPER_PICKAXE, Items.IRON_PICKAXE, Items.GOLDEN_PICKAXE, Items.DIAMOND_PICKAXE, Items.NETHERITE_PICKAXE);
tag(Tags.Items.MELEE_WEAPON_TOOLS).add(
Items.MACE, Items.TRIDENT,
Items.WOODEN_SWORD, Items.STONE_SWORD, Items.COPPER_SWORD, Items.GOLDEN_SWORD, Items.IRON_SWORD, Items.DIAMOND_SWORD, Items.NETHERITE_SWORD,
Items.WOODEN_AXE, Items.STONE_AXE, Items.COPPER_AXE, Items.GOLDEN_AXE, Items.IRON_AXE, Items.DIAMOND_AXE, Items.NETHERITE_AXE
Items.WOODEN_AXE, Items.STONE_AXE, Items.COPPER_AXE, Items.GOLDEN_AXE, Items.IRON_AXE, Items.DIAMOND_AXE, Items.NETHERITE_AXE,
Items.WOODEN_SPEAR, Items.STONE_SPEAR, Items.COPPER_SPEAR, Items.IRON_SPEAR, Items.GOLDEN_SPEAR, Items.DIAMOND_SPEAR, Items.NETHERITE_SPEAR
);
tag(Tags.Items.RANGED_WEAPON_TOOLS).add(Items.BOW, Items.CROSSBOW, Items.TRIDENT);
tag(Tags.Items.TOOLS_WRENCH);
tag(Tags.Items.TOOLS)
.addTags(ItemTags.AXES, ItemTags.HOES, ItemTags.PICKAXES, ItemTags.SHOVELS, ItemTags.SWORDS)
.addTags(Tags.Items.TOOLS_BOW, Tags.Items.TOOLS_BRUSH, Tags.Items.TOOLS_CROSSBOW, Tags.Items.TOOLS_FISHING_ROD, Tags.Items.TOOLS_SHEAR, Tags.Items.TOOLS_IGNITER, Tags.Items.TOOLS_SHIELD, Tags.Items.TOOLS_SPEAR, Tags.Items.TOOLS_MACE, Tags.Items.MINING_TOOL_TOOLS, Tags.Items.MELEE_WEAPON_TOOLS, Tags.Items.RANGED_WEAPON_TOOLS, Tags.Items.TOOLS_WRENCH);
.addTags(Tags.Items.TOOLS_BOW, Tags.Items.TOOLS_BRUSH, Tags.Items.TOOLS_CROSSBOW, Tags.Items.TOOLS_FISHING_ROD, Tags.Items.TOOLS_SHEAR, Tags.Items.TOOLS_IGNITER, Tags.Items.TOOLS_SHIELD, Tags.Items.TOOLS_TRIDENT, Tags.Items.TOOLS_MACE, Tags.Items.MINING_TOOL_TOOLS, Tags.Items.MELEE_WEAPON_TOOLS, Tags.Items.RANGED_WEAPON_TOOLS, Tags.Items.TOOLS_WRENCH);
tag(Tags.Items.ARMORS_HORSE)
.add(
Items.COPPER_HORSE_ARMOR,