Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[1.20.6] Unify tag namespace and conventions between all loaders #9955

Draft
wants to merge 10 commits into
base: 1.20.x
Choose a base branch
from

Conversation

PaintNinja
Copy link
Contributor

@PaintNinja PaintNinja commented May 2, 2024

This PR implements support for the common tags spec that has been implemented by other loaders, aiding multiplatform mod devs and datapack authors.

A (hopefully) comprehensive list of tag changes

Click a category to expand it. Roughly 176 additions, 108 removals and 218 renames/namespace moves.

Blocks
  • forge:barrels -> c:barrels

  • forge:barrels/wooden -> c:barrels/wooden

  • forge:bookshelves -> c:bookshelves

  • N/A -> c:budding_blocks (${\textsf{\color{lightgreen}added}}$)

  • N/A -> c:buds (${\textsf{\color{lightgreen}added}}$)

  • N/A -> c:chains (${\textsf{\color{lightgreen}added}}$)

  • N/A -> c:clusters (${\textsf{\color{lightgreen}added}}$)

  • forge:chests -> c:chests

  • forge:chests/ender -> c:chests/ender

  • forge:chests/trapped -> c:chests/trapped

  • forge:chests/wooden -> c:chests/wooden

  • forge:cobblestone -> c:cobblestones

  • forge:cobblestone/normal -> c:cobblestones/normal

  • forge:cobblestone/infested -> c:cobblestones/infested

  • forge:cobblestone/mossy -> c:cobblestones/mossy

  • forge:cobblestone/deepslate -> c:cobblestones/deepslate

  • N/A -> c:dyed (${\textsf{\color{lightgreen}added}}$)

  • N/A -> c:dyed/black (${\textsf{\color{lightgreen}added}}$)

  • N/A -> c:dyed/blue (${\textsf{\color{lightgreen}added}}$)

  • N/A -> c:dyed/brown (${\textsf{\color{lightgreen}added}}$)

  • N/A -> c:dyed/cyan (${\textsf{\color{lightgreen}added}}$)

  • N/A -> c:dyed/gray (${\textsf{\color{lightgreen}added}}$)

  • N/A -> c:dyed/green (${\textsf{\color{lightgreen}added}}$)

  • N/A -> c:dyed/light_blue (${\textsf{\color{lightgreen}added}}$)

  • N/A -> c:dyed/light_gray (${\textsf{\color{lightgreen}added}}$)

  • N/A -> c:dyed/lime (${\textsf{\color{lightgreen}added}}$)

  • N/A -> c:dyed/magenta (${\textsf{\color{lightgreen}added}}$)

  • N/A -> c:dyed/orange (${\textsf{\color{lightgreen}added}}$)

  • N/A -> c:dyed/pink (${\textsf{\color{lightgreen}added}}$)

  • N/A -> c:dyed/purple (${\textsf{\color{lightgreen}added}}$)

  • N/A -> c:dyed/red (${\textsf{\color{lightgreen}added}}$)

  • N/A -> c:dyed/white (${\textsf{\color{lightgreen}added}}$)

  • N/A -> c:dyed/yellow (${\textsf{\color{lightgreen}added}}$)

  • forge:end_stones -> c:end_stones

  • forge:fence_gates -> c:fence_gates

  • forge:fence_gates/wooden -> c:fence_gates/wooden

  • forge:fences -> c:fences

  • forge:fences/nether_brick -> c:fences/nether_brick

  • forge:fences/wooden -> c:fences/wooden

  • forge:glass -> N/A (${\textsf{\color{red}removed}}$)

  • forge:glass/black -> N/A (${\textsf{\color{red}removed}}$)

  • forge:glass/blue -> N/A (${\textsf{\color{red}removed}}$)

  • forge:glass/brown -> N/A (${\textsf{\color{red}removed}}$)

  • forge:glass/colorless -> N/A (${\textsf{\color{red}removed}}$)

  • forge:glass/cyan -> N/A (${\textsf{\color{red}removed}}$)

  • forge:glass/gray -> N/A (${\textsf{\color{red}removed}}$)

  • forge:glass/green -> N/A (${\textsf{\color{red}removed}}$)

  • forge:glass/light_blue -> N/A (${\textsf{\color{red}removed}}$)

  • forge:glass/light_gray -> N/A (${\textsf{\color{red}removed}}$)

  • forge:glass/lime -> N/A (${\textsf{\color{red}removed}}$)

  • forge:glass/magenta -> N/A (${\textsf{\color{red}removed}}$)

  • forge:glass/orange -> N/A (${\textsf{\color{red}removed}}$)

  • forge:glass/pink -> N/A (${\textsf{\color{red}removed}}$)

  • forge:glass/purple -> N/A (${\textsf{\color{red}removed}}$)

  • forge:glass/red -> N/A (${\textsf{\color{red}removed}}$)

  • forge:glass/silica -> N/A (${\textsf{\color{red}removed}}$)

  • forge:glass/tinted -> N/A (${\textsf{\color{red}removed}}$)

  • forge:glass/white -> N/A (${\textsf{\color{red}removed}}$)

  • forge:glass/yellow -> N/A (${\textsf{\color{red}removed}}$)

  • N/A -> c:glass_blocks (${\textsf{\color{lightgreen}added}}$)

  • N/A -> c:glass_blocks/colorless (${\textsf{\color{lightgreen}added}}$)

  • N/A -> c:glass_blocks/cheap (${\textsf{\color{lightgreen}added}}$)

  • N/A -> c:glass_blocks/tinted (${\textsf{\color{lightgreen}added}}$)

  • forge:glass_panes -> c:glass_panes

  • forge:glass_panes/colorless -> c:glass_panes/colorless

  • forge:glass_panes/black -> N/A (${\textsf{\color{red}removed}}$)

  • forge:glass_panes/blue -> N/A (${\textsf{\color{red}removed}}$)

  • forge:glass_panes/brown -> N/A (${\textsf{\color{red}removed}}$)

  • forge:glass_panes/cyan -> N/A (${\textsf{\color{red}removed}}$)

  • forge:glass_panes/gray -> N/A (${\textsf{\color{red}removed}}$)

  • forge:glass_panes/green -> N/A (${\textsf{\color{red}removed}}$)

  • forge:glass_panes/light_blue -> N/A (${\textsf{\color{red}removed}}$)

  • forge:glass_panes/light_gray -> N/A (${\textsf{\color{red}removed}}$)

  • forge:glass_panes/lime -> N/A (${\textsf{\color{red}removed}}$)

  • forge:glass_panes/magenta -> N/A (${\textsf{\color{red}removed}}$)

  • forge:glass_panes/orange -> N/A (${\textsf{\color{red}removed}}$)

  • forge:glass_panes/pink -> N/A (${\textsf{\color{red}removed}}$)

  • forge:glass_panes/purple -> N/A (${\textsf{\color{red}removed}}$)

  • forge:glass_panes/red -> N/A (${\textsf{\color{red}removed}}$)

  • forge:glass_panes/white -> N/A (${\textsf{\color{red}removed}}$)

  • forge:glass_panes/yellow -> N/A (${\textsf{\color{red}removed}}$)

  • forge:gravel -> c:gravels

  • forge:netherrack -> c:netherrack

  • forge:obsidian -> c:obsidians

  • forge:ore_bearing_ground/deepslate -> c:ore_bearing_ground/deepslate

  • forge:ore_bearing_ground/netherrack -> c:ore_bearing_ground/netherrack

  • forge:ore_bearing_ground/stone -> c:ore_bearing_ground/stone

  • forge:ore_rates/dense -> c:ore_rates/dense

  • forge:ore_rates/singular -> c:ore_rates/singular

  • forge:ore_rates/sparse -> c:ore_rates/sparse

  • forge:ores -> c:ores

  • forge:ores/coal -> c:ores/coal

  • forge:ores/copper -> c:ores/copper

  • forge:ores/diamond -> c:ores/diamond

  • forge:ores/emerald -> c:ores/emerald

  • forge:ores/gold -> c:ores/gold

  • forge:ores/iron -> c:ores/iron

  • forge:ores/lapis -> c:ores/lapis

  • forge:ores/netherite_scrap -> c:ores/netherite_scrap

  • forge:ores/quartz -> c:ores/quartz

  • forge:ores/redstone -> c:ores/redstone

  • forge:ores_in_ground/deepslate -> c:ores_in_ground/deepslate

  • forge:ores_in_ground/netherrack -> c:ores_in_ground/netherrack

  • forge:ores_in_ground/stone -> c:ores_in_ground/stone

  • N/A -> c:player_workstations/crafting_tables (${\textsf{\color{lightgreen}added}}$)

  • N/A -> c:player_workstations/furnaces (${\textsf{\color{lightgreen}added}}$)

  • N/A -> c:relocation_not_supported (${\textsf{\color{lightgreen}added}}$)

  • N/A -> c:ropes (${\textsf{\color{lightgreen}added}}$)

  • forge:sand -> c:sands

  • forge:sand/colorless -> c:sands/colorless

  • forge:sand/red -> c:sands/red

  • forge:sandstone -> N/A (${\textsf{\color{red}removed}}$)

  • N/A -> c:sandstone/blocks (${\textsf{\color{lightgreen}added}}$)

  • N/A -> c:sandstone/slabs (${\textsf{\color{lightgreen}added}}$)

  • N/A -> c:sandstone/stairs (${\textsf{\color{lightgreen}added}}$)

  • N/A -> c:sandstone/red_blocks (${\textsf{\color{lightgreen}added}}$)

  • N/A -> c:sandstone/red_slabs (${\textsf{\color{lightgreen}added}}$)

  • N/A -> c:sandstone/red_stairs (${\textsf{\color{lightgreen}added}}$)

  • N/A -> c:sandstone/uncolored_blocks (${\textsf{\color{lightgreen}added}}$)

  • N/A -> c:sandstone/uncolored_slabs (${\textsf{\color{lightgreen}added}}$)

  • N/A -> c:sandstone/uncolored_stairs (${\textsf{\color{lightgreen}added}}$)

  • N/A -> c:skulls (${\textsf{\color{lightgreen}added}}$)

  • forge:stained_glass -> N/A (${\textsf{\color{red}removed}}$)

  • forge:stained_glass_panes -> N/A (${\textsf{\color{red}removed}}$)

  • forge:stone -> c:stones

  • forge:storage_blocks -> c:storage_blocks

  • forge:storage_blocks/amethyst -> N/A (${\textsf{\color{red}removed}}$)

  • N/A -> c:storage_blocks/bone_meal (${\textsf{\color{lightgreen}added}}$)

  • forge:storage_blocks/coal -> c:storage_blocks/coal

  • forge:storage_blocks/copper -> c:storage_blocks/copper

  • forge:storage_blocks/diamond -> c:storage_blocks/diamond

  • N/A -> c:storage_blocks/dried_kelp (${\textsf{\color{lightgreen}added}}$)

  • forge:storage_blocks/emerald -> c:storage_blocks/emerald

  • forge:storage_blocks/gold -> c:storage_blocks/gold

  • forge:storage_blocks/iron -> c:storage_blocks/iron

  • forge:storage_blocks/lapis -> c:storage_blocks/lapis

  • forge:storage_blocks/netherite -> c:storage_blocks/netherite

  • forge:storage_blocks/quartz -> N/A (${\textsf{\color{red}removed}}$)

  • forge:storage_blocks/raw_copper -> c:storage_blocks/raw_copper

  • forge:storage_blocks/raw_gold -> c:storage_blocks/raw_gold

  • forge:storage_blocks/raw_iron -> c:storage_blocks/raw_iron

  • forge:storage_blocks/redstone -> c:storage_blocks/redstone

  • N/A -> c:storage_blocks/slime (${\textsf{\color{lightgreen}added}}$)

  • N/A -> c:storage_blocks/wheat (${\textsf{\color{lightgreen}added}}$)

  • N/A -> c:villager_job_sites (${\textsf{\color{lightgreen}added}}$)

  • N/A -> c:hidden_from_recipe_viewers (${\textsf{\color{lightgreen}added}}$)

Entity types
  • forge:bosses -> c:bosses
  • N/A -> c:minecarts (${\textsf{\color{lightgreen}added}}$)
  • N/A -> c:boats (${\textsf{\color{lightgreen}added}}$)
  • N/A -> c:capturing_not_supported (${\textsf{\color{lightgreen}added}}$)
  • N/A -> c:teleporting_not_supported (${\textsf{\color{lightgreen}added}}$)
Items
  • forge:barrels -> c:barrels

  • forge:barrels/wooden -> c:barrels/wooden

  • forge:bones -> c:bones

  • forge:bookshelves -> c:bookshelves

  • N/A -> c:bricks (${\textsf{\color{lightgreen}added}}$)

  • N/A -> c:bricks/normal (${\textsf{\color{lightgreen}added}}$)

  • N/A -> c:bricks/nether (${\textsf{\color{lightgreen}added}}$)

  • N/A -> c:budding_blocks (${\textsf{\color{lightgreen}added}}$)

  • N/A -> c:buds (${\textsf{\color{lightgreen}added}}$)

  • N/A -> c:chains (${\textsf{\color{lightgreen}added}}$)

  • forge:chests -> c:chests

  • forge:chests/ender -> c:chests/ender

  • forge:chests/trapped -> c:chests/trapped

  • forge:chests/wooden -> c:chests/wooden

  • forge:cobblestone -> c:cobblestones

  • forge:cobblestone/normal -> c:cobblestones/normal

  • forge:cobblestone/infested -> c:cobblestones/infested

  • forge:cobblestone/mossy -> c:cobblestones/mossy

  • forge:cobblestone/deepslate -> c:cobblestones/deepslate

  • N/A -> c:clusters (${\textsf{\color{lightgreen}added}}$)

  • forge:crops -> c:crops

  • forge:crops/beetroot -> c:crops/beetroot

  • forge:crops/carrot -> c:crops/carrot

  • forge:crops/potato -> c:crops/potato

  • forge:crops/wheat -> c:crops/wheat

  • forge:dusts -> c:dusts

  • forge:dusts/prismarine -> N/A (${\textsf{\color{red}removed}}$)

  • forge:dusts/redstone -> c:dusts/redstone

  • forge:dusts/glowstone -> c:dusts/glowstone

  • N/A -> c:dyed (${\textsf{\color{lightgreen}added}}$)

  • N/A -> c:dyed/black (${\textsf{\color{lightgreen}added}}$)

  • N/A -> c:dyed/blue (${\textsf{\color{lightgreen}added}}$)

  • N/A -> c:dyed/brown (${\textsf{\color{lightgreen}added}}$)

  • N/A -> c:dyed/cyan (${\textsf{\color{lightgreen}added}}$)

  • N/A -> c:dyed/gray (${\textsf{\color{lightgreen}added}}$)

  • N/A -> c:dyed/green (${\textsf{\color{lightgreen}added}}$)

  • N/A -> c:dyed/light_blue (${\textsf{\color{lightgreen}added}}$)

  • N/A -> c:dyed/light_gray (${\textsf{\color{lightgreen}added}}$)

  • N/A -> c:dyed/lime (${\textsf{\color{lightgreen}added}}$)

  • N/A -> c:dyed/magenta (${\textsf{\color{lightgreen}added}}$)

  • N/A -> c:dyed/orange (${\textsf{\color{lightgreen}added}}$)

  • N/A -> c:dyed/pink (${\textsf{\color{lightgreen}added}}$)

  • N/A -> c:dyed/purple (${\textsf{\color{lightgreen}added}}$)

  • N/A -> c:dyed/red (${\textsf{\color{lightgreen}added}}$)

  • N/A -> c:dyed/white (${\textsf{\color{lightgreen}added}}$)

  • N/A -> c:dyed/yellow (${\textsf{\color{lightgreen}added}}$)

  • forge:dyes -> c:dyes

  • forge:dyes/black -> c:dyes/black

  • forge:dyes/red -> c:dyes/red

  • forge:dyes/green -> c:dyes/green

  • forge:dyes/brown -> c:dyes/brown

  • forge:dyes/blue -> c:dyes/blue

  • forge:dyes/purple -> c:dyes/purple

  • forge:dyes/cyan -> c:dyes/cyan

  • forge:dyes/light_gray -> c:dyes/light_gray

  • forge:dyes/gray -> c:dyes/gray

  • forge:dyes/pink -> c:dyes/pink

  • forge:dyes/lime -> c:dyes/lime

  • forge:dyes/yellow -> c:dyes/yellow

  • forge:dyes/light_blue -> c:dyes/light_blue

  • forge:dyes/magenta -> c:dyes/magenta

  • forge:dyes/orange -> c:dyes/orange

  • forge:dyes/white -> c:dyes/white

  • forge:eggs -> c:eggs

  • forge:enchanting_fuels -> N/A (${\textsf{\color{red}removed}}$)

  • forge:end_stones -> c:end_stones

  • forge:ender_pearls -> c:ender_pearls

  • forge:feathers -> c:feathers

  • forge:fence_gates -> c:fence_gates

  • forge:fence_gates/wooden -> c:fence_gates/wooden

  • forge:fences -> c:fences

  • forge:fences/nether_brick -> c:fences/nether_brick

  • forge:fences/wooden -> c:fences/wooden

  • N/A -> c:foods (${\textsf{\color{lightgreen}added}}$)

  • N/A -> c:foods/fruits (${\textsf{\color{lightgreen}added}}$)

  • N/A -> c:foods/vegetables (${\textsf{\color{lightgreen}added}}$)

  • N/A -> c:foods/berries (${\textsf{\color{lightgreen}added}}$)

  • N/A -> c:foods/breads (${\textsf{\color{lightgreen}added}}$)

  • N/A -> c:foods/cookies (${\textsf{\color{lightgreen}added}}$)

  • N/A -> c:foods/raw_meats (${\textsf{\color{lightgreen}added}}$)

  • N/A -> c:foods/cooked_meats (${\textsf{\color{lightgreen}added}}$)

  • N/A -> c:foods/raw_fishes (${\textsf{\color{lightgreen}added}}$)

  • N/A -> c:foods/cooked_fishes (${\textsf{\color{lightgreen}added}}$)

  • N/A -> c:foods/soups (${\textsf{\color{lightgreen}added}}$)

  • N/A -> c:foods/candies (${\textsf{\color{lightgreen}added}}$)

  • N/A -> c:foods/edible_when_placed (${\textsf{\color{lightgreen}added}}$)

  • N/A -> c:foods/food_poisoning (${\textsf{\color{lightgreen}added}}$)

  • forge:gems -> c:gems

  • forge:gems/diamond -> c:gems/diamond

  • forge:gems/emerald -> c:gems/emerald

  • forge:gems/amethyst -> c:gems/amethyst

  • forge:gems/lapis -> c:gems/lapis

  • forge:gems/prismarine -> c:gems/prismarine

  • forge:gems/quartz -> c:gems/quartz

  • forge:glass -> N/A (${\textsf{\color{red}removed}}$)

  • forge:glass/black -> N/A (${\textsf{\color{red}removed}}$)

  • forge:glass/blue -> N/A (${\textsf{\color{red}removed}}$)

  • forge:glass/brown -> N/A (${\textsf{\color{red}removed}}$)

  • forge:glass/colorless -> N/A (${\textsf{\color{red}removed}}$)

  • forge:glass/cyan -> N/A (${\textsf{\color{red}removed}}$)

  • forge:glass/gray -> N/A (${\textsf{\color{red}removed}}$)

  • forge:glass/green -> N/A (${\textsf{\color{red}removed}}$)

  • forge:glass/light_blue -> N/A (${\textsf{\color{red}removed}}$)

  • forge:glass/light_gray -> N/A (${\textsf{\color{red}removed}}$)

  • forge:glass/lime -> N/A (${\textsf{\color{red}removed}}$)

  • forge:glass/magenta -> N/A (${\textsf{\color{red}removed}}$)

  • forge:glass/orange -> N/A (${\textsf{\color{red}removed}}$)

  • forge:glass/pink -> N/A (${\textsf{\color{red}removed}}$)

  • forge:glass/purple -> N/A (${\textsf{\color{red}removed}}$)

  • forge:glass/red -> N/A (${\textsf{\color{red}removed}}$)

  • forge:glass/silica -> N/A (${\textsf{\color{red}removed}}$)

  • forge:glass/tinted -> N/A (${\textsf{\color{red}removed}}$)

  • forge:glass/white -> N/A (${\textsf{\color{red}removed}}$)

  • forge:glass/yellow -> N/A (${\textsf{\color{red}removed}}$)

  • forge:glass_panes -> c:glass_panes

  • forge:glass_panes/black -> N/A (${\textsf{\color{red}removed}}$)

  • forge:glass_panes/blue -> N/A (${\textsf{\color{red}removed}}$)

  • forge:glass_panes/brown -> N/A (${\textsf{\color{red}removed}}$)

  • forge:glass_panes/colorless -> c:glass_panes/colorless

  • forge:glass_panes/cyan -> N/A (${\textsf{\color{red}removed}}$)

  • forge:glass_panes/gray -> N/A (${\textsf{\color{red}removed}}$)

  • forge:glass_panes/green -> N/A (${\textsf{\color{red}removed}}$)

  • forge:glass_panes/light_blue -> N/A (${\textsf{\color{red}removed}}$)

  • forge:glass_panes/light_gray -> N/A (${\textsf{\color{red}removed}}$)

  • forge:glass_panes/lime -> N/A (${\textsf{\color{red}removed}}$)

  • forge:glass_panes/magenta -> N/A (${\textsf{\color{red}removed}}$)

  • forge:glass_panes/orange -> N/A (${\textsf{\color{red}removed}}$)

  • forge:glass_panes/pink -> N/A (${\textsf{\color{red}removed}}$)

  • forge:glass_panes/purple -> N/A (${\textsf{\color{red}removed}}$)

  • forge:glass_panes/red -> N/A (${\textsf{\color{red}removed}}$)

  • forge:glass_panes/white -> N/A (${\textsf{\color{red}removed}}$)

  • forge:glass_panes/yellow -> N/A (${\textsf{\color{red}removed}}$)

  • forge:gravel -> c:gravel

  • N/A -> c:gunpowder (${\textsf{\color{lightgreen}added}}$)

  • N/A -> c:hidden_from_recipe_viewers (${\textsf{\color{lightgreen}added}}$)

  • forge:ingots -> c:ingots

  • forge:ingots/brick -> N/A (${\textsf{\color{red}removed}}$)

  • forge:ingots/copper -> c:ingots/copper

  • forge:ingots/gold -> c:ingots/gold

  • forge:ingots/iron -> c:ingots/iron

  • forge:ingots/netherite -> c:ingots/netherite

  • forge:ingots/nether_brick -> N/A (${\textsf{\color{red}removed}}$)

  • forge:leather -> c:leather

  • forge:mushrooms -> c:mushrooms

  • forge:nether_stars -> c:nether_stars

  • forge:netherrack -> c:netherrack

  • forge:nuggets -> c:nuggets

  • forge:nuggets/gold -> c:nuggets/gold

  • forge:nuggets/iron -> c:nuggets/iron

  • forge:obsidian -> c:obsidians

  • forge:ore_bearing_ground/deepslate -> c:ore_bearing_ground/deepslate

  • forge:ore_bearing_ground/netherrack -> c:ore_bearing_ground/netherrack

  • forge:ore_bearing_ground/stone -> c:ore_bearing_ground/stone

  • forge:ore_rates/dense -> c:ore_rates/dense

  • forge:ore_rates/singular -> c:ore_rates/singular

  • forge:ore_rates/sparse -> c:ore_rates/sparse

  • forge:ores -> c:ores

  • forge:ores/coal -> c:ores/coal

  • forge:ores/copper -> c:ores/copper

  • forge:ores/diamond -> c:ores/diamond

  • forge:ores/emerald -> c:ores/emerald

  • forge:ores/gold -> c:ores/gold

  • forge:ores/iron -> c:ores/iron

  • forge:ores/lapis -> c:ores/lapis

  • forge:ores/netherite_scrap -> c:ores/netherite_scrap

  • forge:ores/quartz -> c:ores/quartz

  • forge:ores/redstone -> c:ores/redstone

  • forge:ores_in_ground/deepslate -> c:ores_in_ground/deepslate

  • forge:ores_in_ground/netherrack -> c:ores_in_ground/netherrack

  • forge:ores_in_ground/stone -> c:ores_in_ground/stone

  • N/A -> c:player_workstations/crafting_tables (${\textsf{\color{lightgreen}added}}$)

  • N/A -> c:player_workstations/furnaces (${\textsf{\color{lightgreen}added}}$)

  • N/A -> c:raw_blocks (${\textsf{\color{lightgreen}added}}$)

  • N/A -> c:raw_blocks/copper (${\textsf{\color{lightgreen}added}}$)

  • N/A -> c:raw_blocks/gold (${\textsf{\color{lightgreen}added}}$)

  • N/A -> c:raw_blocks/iron (${\textsf{\color{lightgreen}added}}$)

  • forge:raw_materials -> c:raw_materials

  • forge:raw_materials/copper -> c:raw_materials/copper

  • forge:raw_materials/gold -> c:raw_materials/gold

  • forge:raw_materials/iron -> c:raw_materials/iron

  • forge:rods -> c:rods

  • forge:rods/blaze -> c:rods/blaze

  • N/A -> c:rods/breeze (${\textsf{\color{lightgreen}added}}$)

  • forge:rods/wooden -> c:rods/wooden

  • N/A -> c:ropes (${\textsf{\color{lightgreen}added}}$)

  • forge:sand -> c:sands

  • forge:sand/colorless -> c:sands/colorless

  • forge:sand/red -> c:sands/red

  • forge:sandstone -> N/A (${\textsf{\color{red}removed}}$)

  • N/A -> c:sandstone/blocks (${\textsf{\color{lightgreen}added}}$)

  • N/A -> c:sandstone/slabs (${\textsf{\color{lightgreen}added}}$)

  • N/A -> c:sandstone/stairs (${\textsf{\color{lightgreen}added}}$)

  • N/A -> c:sandstone/red_blocks (${\textsf{\color{lightgreen}added}}$)

  • N/A -> c:sandstone/red_slabs (${\textsf{\color{lightgreen}added}}$)

  • N/A -> c:sandstone/red_stairs (${\textsf{\color{lightgreen}added}}$)

  • N/A -> c:sandstone/uncolored_blocks (${\textsf{\color{lightgreen}added}}$)

  • N/A -> c:sandstone/uncolored_slabs (${\textsf{\color{lightgreen}added}}$)

  • N/A -> c:sandstone/uncolored_stairs (${\textsf{\color{lightgreen}added}}$)

  • forge:seeds -> c:seeds

  • forge:seeds/beetroot -> c:seeds/beetroot

  • forge:seeds/melon -> c:seeds/melon

  • forge:seeds/pumpkin -> c:seeds/pumpkin

  • forge:seeds/wheat -> c:seeds/wheat

  • forge:shears -> N/A (${\textsf{\color{red}removed}}$)

  • forge:slimeballs -> c:slimeballs

  • forge:stained_glass -> N/A (${\textsf{\color{red}removed}}$)

  • forge:stained_glass_panes -> N/A (${\textsf{\color{red}removed}}$)

  • forge:stone -> c:stones

  • forge:storage_blocks -> c:storage_blocks

  • forge:storage_blocks/amethyst -> N/A (${\textsf{\color{red}removed}}$)

  • N/A -> c:storage_blocks/bone_meal (${\textsf{\color{lightgreen}added}}$)

  • forge:storage_blocks/coal -> c:storage_blocks/coal

  • forge:storage_blocks/copper -> c:storage_blocks/copper

  • forge:storage_blocks/diamond -> c:storage_blocks/diamond

  • N/A -> c:storage_blocks/dried_kelp (${\textsf{\color{lightgreen}added}}$)

  • forge:storage_blocks/emerald -> c:storage_blocks/emerald

  • forge:storage_blocks/gold -> c:storage_blocks/gold

  • forge:storage_blocks/iron -> c:storage_blocks/iron

  • forge:storage_blocks/lapis -> c:storage_blocks/lapis

  • forge:storage_blocks/netherite -> c:storage_blocks/netherite

  • forge:storage_blocks/quartz -> N/A (${\textsf{\color{red}removed}}$)

  • forge:storage_blocks/raw_copper -> c:storage_blocks/raw_copper

  • forge:storage_blocks/raw_gold -> c:storage_blocks/raw_gold

  • forge:storage_blocks/raw_iron -> c:storage_blocks/raw_iron

  • forge:storage_blocks/redstone -> c:storage_blocks/redstone

  • N/A -> c:storage_blocks/slime (${\textsf{\color{lightgreen}added}}$)

  • N/A -> c:storage_blocks/wheat (${\textsf{\color{lightgreen}added}}$)

  • forge:string -> c:strings

  • N/A -> c:vilager_job_sites (${\textsf{\color{lightgreen}added}}$)

  • forge:tools -> c:tools

  • forge:tools/shields -> c:tools/shields

  • forge:tools/bows -> c:tools/bows

  • forge:tools/crossbows -> c:tools/crossbows

  • forge:tools/fishing_rods -> c:tools/fishing_rods

  • forge:tools/tridents -> N/A (${\textsf{\color{red}removed}}$)

  • N/A -> c:tools/spears (${\textsf{\color{lightgreen}added}}$)

  • N/A -> c:tools/shears (${\textsf{\color{lightgreen}added}}$)

  • N/A -> c:tools/brushes (${\textsf{\color{lightgreen}added}}$)

  • forge:armors -> N/A (${\textsf{\color{red}removed}}$)

  • forge:armors/helmets -> N/A (${\textsf{\color{red}removed}}$)

  • forge:armors/chestplates -> N/A (${\textsf{\color{red}removed}}$)

  • forge:armors/leggings -> N/A (${\textsf{\color{red}removed}}$)

  • forge:armors/boots -> N/A (${\textsf{\color{red}removed}}$)

  • N/A -> c:enchantables (${\textsf{\color{lightgreen}added}}$)

Fluids
  • N/A -> c:water (${\textsf{\color{lightgreen}added}}$)
  • N/A -> c:lava (${\textsf{\color{lightgreen}added}}$)
  • forge:milk -> c:milk
  • forge:gaseous -> c:gaseous
  • N/A -> c:honey (${\textsf{\color{lightgreen}added}}$)
  • N/A -> c:potion (${\textsf{\color{lightgreen}added}}$)
  • N/A -> c:suspicious_stew (${\textsf{\color{lightgreen}added}}$)
  • N/A -> c:mushroom_stew (${\textsf{\color{lightgreen}added}}$)
  • N/A -> c:rabbit_stew (${\textsf{\color{lightgreen}added}}$)
  • N/A -> c:beetroot_soup (${\textsf{\color{lightgreen}added}}$)
  • N/A -> c:hidden_from_recipe_viewers (${\textsf{\color{lightgreen}added}}$)
Enchantments
  • N/A -> c:increase_block_drops (${\textsf{\color{lightgreen}added}}$)
  • N/A -> c:increase_entity_drops (${\textsf{\color{lightgreen}added}}$)
  • N/A -> c:weapon_damage_enhancements (${\textsf{\color{lightgreen}added}}$)
  • N/A -> c:entity_speed_enhancements (${\textsf{\color{lightgreen}added}}$)
  • N/A -> c:entity_auxiliary_movement_enhancements (${\textsf{\color{lightgreen}added}}$)
  • N/A -> c:entity_defense_enhancements (${\textsf{\color{lightgreen}added}}$)
Biomes
  • N/A -> c:no_default_monsters (${\textsf{\color{lightgreen}added}}$)

  • N/A -> c:hidden_from_locator_selection (${\textsf{\color{lightgreen}added}}$)

  • forge:is_void -> c:is_void

  • forge:is_hot -> c:is_hot

  • forge:is_hot/overworld -> c:is_hot/overworld

  • forge:is_hot/nether -> c:is_hot/nether

  • forge:is_hot/end -> c:is_hot/end

  • forge:is_cold -> c:is_cold

  • forge:is_cold/overworld -> c:is_cold/overworld

  • forge:is_cold/nether -> c:is_cold/nether

  • forge:is_cold/end -> c:is_cold/end

  • forge:is_sparse -> N/A (${\textsf{\color{red}removed}}$)

  • forge:is_sparse/overworld -> N/A (${\textsf{\color{red}removed}}$)

  • forge:is_sparse/nether -> N/A (${\textsf{\color{red}removed}}$)

  • forge:is_sparse/end -> N/A (${\textsf{\color{red}removed}}$)

  • forge:is_dense -> N/A (${\textsf{\color{red}removed}}$)

  • forge:is_dense/overworld -> N/A (${\textsf{\color{red}removed}}$)

  • forge:is_dense/nether -> N/A (${\textsf{\color{red}removed}}$)

  • forge:is_dense/end -> N/A (${\textsf{\color{red}removed}}$)

  • N/A -> c:is_sparse_vegetation (${\textsf{\color{lightgreen}added}}$)

  • N/A -> c:is_sparse_vegetation/overworld (${\textsf{\color{lightgreen}added}}$)

  • N/A -> c:is_sparse_vegetation/nether (${\textsf{\color{lightgreen}added}}$)

  • N/A -> c:is_sparse_vegetation/end (${\textsf{\color{lightgreen}added}}$)

  • N/A -> c:is_dense_vegetation (${\textsf{\color{lightgreen}added}}$)

  • N/A -> c:is_dense_vegetation/overworld (${\textsf{\color{lightgreen}added}}$)

  • N/A -> c:is_dense_vegetation/nether (${\textsf{\color{lightgreen}added}}$)

  • N/A -> c:is_dense_vegetation/end (${\textsf{\color{lightgreen}added}}$)

  • forge:is_wet -> c:is_wet

  • forge:is_wet/overworld -> c:is_wet/overworld

  • forge:is_wet/nether -> c:is_wet/nether

  • forge:is_wet/end -> c:is_wet/end

  • forge:is_dry -> c:is_dry

  • forge:is_dry/overworld -> c:is_dry/overworld

  • forge:is_dry/nether -> c:is_dry/nether

  • forge:is_dry/end -> c:is_dry/end

  • forge:is_coniferous -> N/A (${\textsf{\color{red}removed}}$)

  • N/A -> c:is_overworld (${\textsf{\color{lightgreen}added}}$)

  • forge:is_spooky -> c:is_spooky

  • forge:is_dead -> N/A (${\textsf{\color{red}removed}}$)

  • forge:is_lush -> N/A (${\textsf{\color{red}removed}}$)

  • N/A -> c:is_tree/coniferous (${\textsf{\color{lightgreen}added}}$)

  • N/A -> c:is_tree/savanna (${\textsf{\color{lightgreen}added}}$)

  • N/A -> c:is_tree/jungle (${\textsf{\color{lightgreen}added}}$)

  • N/A -> c:is_tree/deciduous (${\textsf{\color{lightgreen}added}}$)

  • N/A -> c:is_mountain (${\textsf{\color{lightgreen}added}}$)

  • N/A -> c:is_mountain/peak (${\textsf{\color{lightgreen}added}}$)

  • N/A -> c:is_mountain/slope (${\textsf{\color{lightgreen}added}}$)

  • forge:is_plains -> c:is_plains

  • N/A -> c:is_snowy_plains (${\textsf{\color{lightgreen}added}}$)

  • N/A -> c:is_forest (${\textsf{\color{lightgreen}added}}$)

  • N/A -> c:is_birch_forest (${\textsf{\color{lightgreen}added}}$)

  • N/A -> c:is_flower_forest (${\textsf{\color{lightgreen}added}}$)

  • N/A -> c:is_taiga (${\textsf{\color{lightgreen}added}}$)

  • N/A -> c:is_old_growth (${\textsf{\color{lightgreen}added}}$)

  • N/A -> c:is_hill (${\textsf{\color{lightgreen}added}}$)

  • N/A -> c:is_windswept (${\textsf{\color{lightgreen}added}}$)

  • N/A -> c:is_jungle (${\textsf{\color{lightgreen}added}}$)

  • N/A -> c:is_savanna (${\textsf{\color{lightgreen}added}}$)

  • forge:is_swamp -> c:is_swamp

  • forge:is_desert -> c:is_desert

  • N/A -> c:is_badlands (${\textsf{\color{lightgreen}added}}$)

  • N/A -> c:is_beach (${\textsf{\color{lightgreen}added}}$)

  • N/A -> c:is_stony_shores (${\textsf{\color{lightgreen}added}}$)

  • forge:is_mushroom -> c:is_mushroom

  • N/A -> c:is_river (${\textsf{\color{lightgreen}added}}$)

  • N/A -> c:is_ocean (${\textsf{\color{lightgreen}added}}$)

  • N/A -> c:is_deep_ocean (${\textsf{\color{lightgreen}added}}$)

  • N/A -> c:is_shallow_ocean (${\textsf{\color{lightgreen}added}}$)

  • forge:is_underground -> c:is_underground

  • forge:is_cave -> c:is_cave (${\textsf{\color{lightgreen}added}}$)

  • N/A -> c:is_lush (${\textsf{\color{lightgreen}added}}$)

  • forge:is_magical -> c:is_magical

  • forge:is_rare -> c:is_rare

  • forge:is_plateau -> c:is_plateau

  • forge:is_modified -> c:is_modified

  • forge:is_water -> N/A (${\textsf{\color{red}removed}}$)

  • forge:is_wasteland -> c:is_wasteland

  • N/A -> c:is_icy (${\textsf{\color{lightgreen}added}}$)

  • N/A -> c:is_aquatic (${\textsf{\color{lightgreen}added}}$)

  • N/A -> c:is_aquatic_icy (${\textsf{\color{lightgreen}added}}$)

  • forge:is_peak -> N/A (${\textsf{\color{red}removed}}$)

  • forge:is_slope -> N/A (${\textsf{\color{red}removed}}$)

  • forge:is_mountain -> N/A (${\textsf{\color{red}removed}}$)

  • N/A -> c:is_nether (${\textsf{\color{lightgreen}added}}$)

  • N/A -> c:is_nether_forest (${\textsf{\color{lightgreen}added}}$)

  • N/A -> c:is_end (${\textsf{\color{lightgreen}added}}$)

  • N/A -> c:is_outer_end_island (${\textsf{\color{lightgreen}added}}$)

Structures
  • N/A -> c:hidden_from_displayers (${\textsf{\color{lightgreen}added}}$)
  • N/A -> c:hidden_from_locator_selection (${\textsf{\color{lightgreen}added}}$)

Format the Tags class nicely and make a copy of it for comparison, to help avoid accidentally removing Forge-specific tags and make it easier to keep track of what needs doing.
@PaintNinja PaintNinja added Feature This request implements a new feature. Work In Progress This request has lots of changes that need attention. 1.20 labels May 2, 2024
@autoforge autoforge bot added the Triage This request requires the active attention of the Triage Team. Requires labelling or reviews. label May 2, 2024
@Jonathing
Copy link
Member

Ok, so we should also specify just how much we're willing to break for the sake of this PR. Tags -> OldTags is a decent number of code breakage, even if datapacks are fine. There's also the matter of making sure the old tags are still at least functionally identical to what they should be doing. Let me know what your plans are in terms of breakage, whether that be soon or after you finish drafting the PR.

@PaintNinja
Copy link
Contributor Author

Apologies for the confusion - OldTags is a temporary backup file I made to make it easier to keep track of what's left to do with the PR. It will be removed once I'm finished.

There are some breaking changes such as removals of some Forge tags, however I intend on doing a pass through everything once finished to figure out how to maintain more back-compat. A decent chunk of the actual tags do maintain back-compat through the "optional" method calls in the bottom of the providers.

@Jonathing
Copy link
Member

In that case, it might be wise to consider a ForgeTags for forge-specific behaviors that do not coincide with the common tags.

@PaintNinja
Copy link
Contributor Author

Okay, had a look through and it seems reasonably well thought out... a lot of existing Forge tags are reused, bar some being renamed to plurals (e.g. STONE -> STONES) - I've added bouncer fields for those to improve backwards-compatibility, skipping things that aren't a 1:1 replacement. These bouncers should help maintain more bin-compat with existing mods that span multiple versions and provides a great migration UX for developers:
image

In that case, it might be wise to consider a ForgeTags for forge-specific behaviors that do not coincide with the common tags.

There only seems to be a handful of these. I think it's fine having them in the same place as common tags with the clear markers to distinguish them (i.e. forgeTag() instead of tag() and the region comments surrounding them).

Next on my todo list for this PR is:

  • Considering porting over the warning system - a way to help devs find where they're using deprecated Forge tags and replace them with the common spec equivalents
  • Flesh out the PR description, document all the removals, replacements and additions
  • Generate or copy over the JSONs. There will be tonnes of these files so leaving this until last so that it's easier to review this PR (the GH website gets super-laggy on PRs with hundreds of files changed)
  • Discussing on Discord which Forge tags we should remove entirely (after I've documented the current state of them). For example, do we want to keep Forge-specific tags for each colour of stained glass blocks, or is the common spec GLASS_BLOCKS_TINTED good enough?

@LexManos
Copy link
Member

LexManos commented May 3, 2024

Overall it looks fine, would be nice if the people pushing for this central system would have a central repo somewhere where we can see it's changes over time. Which would make things easier to maintain compatibility.
Now that we are using runtime official mappings Could end up just being a Library that modders and loaders depend on.
At the very least a listing document and a pre-generated data pack would be useful.

But until then,

Considering porting over the warning system - a way to help devs find where they're using deprecated Forge tags and replace them with the common spec equivalents

If it makes modders lives easier without being complicated as hell. Feel free.

Generate or copy over the JSONs.

Always generate,

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
1.20 Feature This request implements a new feature. Triage This request requires the active attention of the Triage Team. Requires labelling or reviews. Work In Progress This request has lots of changes that need attention.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants