[BLOCKING] Custom spawn egg incompatibility with trade tables from 1.19.80
Partner Rank: 2
Partner Team Reporting: Floruit
Verification builds: 1.19.81.01_rc0 (stable), 1.20.0.22_rc0 (beta)
Summary:
Custom spawn eggs are incompatible with trade tables from 1.19.80 stable onwards.
Impact:
The issue prevents the creator from using trade tables to trade items for custom spawn eggs, and breaks any Living content that use it. This is BLOCKING our upcoming content Farming+ from being shipped, where our tractors should be customized in a trade table. Also noticed some fails with custom spawn eggs since version 1.19.80, that includes:
- Custom spawn eggs messed up in the creative's inventory instead of its correct item group.
- Scroll wheel clicking custom entities gives the player an empty red and gray spawn egg called item.spawn_egg.name.
Repro Steps:
- Apply a behavior pack using custom entities.
- Create a trade table and apply it to some entity.
- Try to use custom spawn egg identifiers in the "wants" or "gives" slots.
- Try the scroll wheel click on a custom entity.
- Observe the custom spawn eggs in the creative inventory.
Repro Rate: 3/3
Observed Results:
When using an egg custom identifier (namespace:entityid_spawn_egg) in a trade table, a content log issue is thrown indicating the item is not found. (see the trading-issue-2.png screenshot). Also note that the item received when using the scroll wheel click is an empty egg, something involved with a new custom spawn egg aux value incompatibility. Test custom spawn eggs in creative inventory too (see the spawn-egg-issue-1.png and +spawn-egg-issue-2.png screenshots).
Expected Results:
Custom spawn eggs should be regularly supported on trade tables, just like they are supported by loot tables.
Screenshots/Videos attached: Yes
Regression Builds: 1.19.73.02 (stable)
Notes:
New custom spawn egg identifiers were never supported by trade tables since added and always throwed the content issue showed in the screenshot. But until version 1.19.70, an old format was supported:
{
"item": "minecraft:spawn_egg",
"functions": [
{
"function": "set_actor_id",
"id": "floruit:tractor"
}
]
}
OBS: In my experience this method only worked if used in the first entry of "wants" or if used in "gives", but not the second item in "wants" for unknown reason. (See the JSON format for a trade table in vanilla!)
From 1.19.80, for the error related to custom spawn egg aux values broken, this code above doesn't work and it shows empty spawn eggs named item.spawn_egg.name again here. (see the trading-issue-1.png screenshot, there we have a trade table using this code above.)