diff --git a/packages/bolt/tests/snapshots/bolt__parse_230__0.txt b/packages/bolt/tests/snapshots/bolt__parse_230__0.txt index ff8ec5add..d74fae892 100644 --- a/packages/bolt/tests/snapshots/bolt__parse_230__0.txt +++ b/packages/bolt/tests/snapshots/bolt__parse_230__0.txt @@ -1,6 +1,6 @@ macro foo: pass -#>ERROR Expected colon, literal 'advancement', literal 'align', literal 'anchored', literal 'append', literal 'as' or 188 other tokens but got literal 'foo'. +#>ERROR Expected colon, literal 'advancement', literal 'align', literal 'anchored', literal 'append', literal 'as' or 198 other tokens but got literal 'foo'. # line 3, column 7 # 2 | pass # 3 | as @p foo diff --git a/packages/bolt/tests/snapshots/bolt__parse_305__0.txt b/packages/bolt/tests/snapshots/bolt__parse_305__0.txt index a85df50a0..bae9087d3 100644 --- a/packages/bolt/tests/snapshots/bolt__parse_305__0.txt +++ b/packages/bolt/tests/snapshots/bolt__parse_305__0.txt @@ -1,4 +1,4 @@ -#>ERROR Expected literal 'advancement', literal 'align', literal 'anchored', literal 'append', literal 'as', literal 'at' or 205 other tokens but got literal 'foo'. +#>ERROR Expected literal 'advancement', literal 'align', literal 'anchored', literal 'append', literal 'as', literal 'at' or 215 other tokens but got literal 'foo'. # line 1, column 11 # 1 | as @a run foo = "bar" # : ^^^ diff --git a/packages/bolt/tests/snapshots/bolt__parse_352__0.txt b/packages/bolt/tests/snapshots/bolt__parse_352__0.txt index a8e19533a..a8efe6db1 100644 --- a/packages/bolt/tests/snapshots/bolt__parse_352__0.txt +++ b/packages/bolt/tests/snapshots/bolt__parse_352__0.txt @@ -1,6 +1,6 @@ macro hello thing=subcommand: pass -#>ERROR Expected assignment, literal 'advancement', literal 'align', literal 'anchored', literal 'append', literal 'as' or 207 other tokens but got literal 'print(123)'. +#>ERROR Expected assignment, literal 'advancement', literal 'align', literal 'anchored', literal 'append', literal 'as' or 217 other tokens but got literal 'print(123)'. # line 3, column 7 # 2 | pass # 3 | hello print(123) diff --git a/packages/bolt/tests/snapshots/bolt__parse_358__0.txt b/packages/bolt/tests/snapshots/bolt__parse_358__0.txt index 78f1b8d63..7e5ae12ca 100644 --- a/packages/bolt/tests/snapshots/bolt__parse_358__0.txt +++ b/packages/bolt/tests/snapshots/bolt__parse_358__0.txt @@ -1,4 +1,4 @@ -#>ERROR Expected literal 'advancement', literal 'align', literal 'anchored', literal 'append', literal 'as', literal 'at' or 205 other tokens but got literal '"not'. +#>ERROR Expected literal 'advancement', literal 'align', literal 'anchored', literal 'append', literal 'as', literal 'at' or 215 other tokens but got literal '"not'. # line 1, column 13 # 1 | execute run "not docstring" # : ^^^^ diff --git a/packages/bolt/tests/snapshots/bolt__parse_48__0.txt b/packages/bolt/tests/snapshots/bolt__parse_48__0.txt index 2a8f75c8c..e70504f23 100644 --- a/packages/bolt/tests/snapshots/bolt__parse_48__0.txt +++ b/packages/bolt/tests/snapshots/bolt__parse_48__0.txt @@ -1,5 +1,5 @@ 1 * 2 -#>ERROR Expected bracket '[', curly '{', decorator, docstring, ellipsis, false or 218 other tokens but got literal '*'. +#>ERROR Expected bracket '[', curly '{', decorator, docstring, ellipsis, false or 228 other tokens but got literal '*'. # line 2, column 1 # 1 | 1 * 2 # 2 | * 3 diff --git a/packages/bolt/tests/snapshots/bolt__parse_99__0.txt b/packages/bolt/tests/snapshots/bolt__parse_99__0.txt index 59bee61ae..0a5fc5383 100644 --- a/packages/bolt/tests/snapshots/bolt__parse_99__0.txt +++ b/packages/bolt/tests/snapshots/bolt__parse_99__0.txt @@ -1,4 +1,4 @@ -#>ERROR Expected colon, literal 'advancement', literal 'align', literal 'anchored', literal 'append', literal 'as' or 188 other tokens but got literal 'for'. +#>ERROR Expected colon, literal 'advancement', literal 'align', literal 'anchored', literal 'append', literal 'as' or 198 other tokens but got literal 'for'. # line 1, column 7 # 1 | at @s for i in "foo": # : ^^^ diff --git a/packages/bolt/tests/snapshots/spec__prototypes__0.json b/packages/bolt/tests/snapshots/spec__prototypes__0.json index 103583369..fcb261558 100644 --- a/packages/bolt/tests/snapshots/spec__prototypes__0.json +++ b/packages/bolt/tests/snapshots/spec__prototypes__0.json @@ -33,7 +33,11 @@ "append:item_tag:name:content", "append:painting_variant_tag:name:content", "append:point_of_interest_type_tag:name:content", + "append:timeline_tag:name:content", + "append:trade_set_tag:name:content", + "append:villager_trade_tag:name:content", "append:wolf_sound_variant_tag:name:content", + "append:world_clock_tag:name:content", "append:worldgen_biome_tag:name:content", "append:worldgen_configured_carver_tag:name:content", "append:worldgen_flat_level_generator_preset_tag:name:content", @@ -41,6 +45,7 @@ "append:worldgen_structure_set_tag:name:content", "append:worldgen_structure_tag:name:content", "append:worldgen_world_preset_tag:name:content", + "append:zombie_nautilus_variant_tag:name:content", "as:targets:subcommand", "at:targets:subcommand", "atlas:name:content", @@ -600,7 +605,11 @@ "execute:append:item_tag:name:content", "execute:append:painting_variant_tag:name:content", "execute:append:point_of_interest_type_tag:name:content", + "execute:append:timeline_tag:name:content", + "execute:append:trade_set_tag:name:content", + "execute:append:villager_trade_tag:name:content", "execute:append:wolf_sound_variant_tag:name:content", + "execute:append:world_clock_tag:name:content", "execute:append:worldgen_biome_tag:name:content", "execute:append:worldgen_configured_carver_tag:name:content", "execute:append:worldgen_flat_level_generator_preset_tag:name:content", @@ -608,6 +617,7 @@ "execute:append:worldgen_structure_set_tag:name:content", "execute:append:worldgen_structure_tag:name:content", "execute:append:worldgen_world_preset_tag:name:content", + "execute:append:zombie_nautilus_variant_tag:name:content", "execute:as:targets:subcommand", "execute:at:targets:subcommand", "execute:atlas:name:content", @@ -1620,13 +1630,21 @@ "execute:merge:test_environment:name:content", "execute:merge:test_instance:name:content", "execute:merge:texture_mcmeta:name:content", + "execute:merge:timeline:name:content", + "execute:merge:timeline_tag:name:content", + "execute:merge:trade_set:name:content", + "execute:merge:trade_set_tag:name:content", "execute:merge:trial_spawner:name:content", "execute:merge:trim_material:name:content", "execute:merge:trim_pattern:name:content", + "execute:merge:villager_trade:name:content", + "execute:merge:villager_trade_tag:name:content", "execute:merge:waypoint_style:name:content", "execute:merge:wolf_sound_variant:name:content", "execute:merge:wolf_sound_variant_tag:name:content", "execute:merge:wolf_variant:name:content", + "execute:merge:world_clock:name:content", + "execute:merge:world_clock_tag:name:content", "execute:merge:worldgen_biome:name:content", "execute:merge:worldgen_biome_tag:name:content", "execute:merge:worldgen_configured_carver:name:content", @@ -1649,6 +1667,8 @@ "execute:merge:worldgen_template_pool:name:content", "execute:merge:worldgen_world_preset:name:content", "execute:merge:worldgen_world_preset_tag:name:content", + "execute:merge:zombie_nautilus_variant:name:content", + "execute:merge:zombie_nautilus_variant_tag:name:content", "execute:model:name:content", "execute:msg:targets:message", "execute:on:attacker:subcommand", @@ -1780,7 +1800,11 @@ "execute:prepend:item_tag:name:content", "execute:prepend:painting_variant_tag:name:content", "execute:prepend:point_of_interest_type_tag:name:content", + "execute:prepend:timeline_tag:name:content", + "execute:prepend:trade_set_tag:name:content", + "execute:prepend:villager_trade_tag:name:content", "execute:prepend:wolf_sound_variant_tag:name:content", + "execute:prepend:world_clock_tag:name:content", "execute:prepend:worldgen_biome_tag:name:content", "execute:prepend:worldgen_configured_carver_tag:name:content", "execute:prepend:worldgen_flat_level_generator_preset_tag:name:content", @@ -1788,6 +1812,7 @@ "execute:prepend:worldgen_structure_set_tag:name:content", "execute:prepend:worldgen_structure_tag:name:content", "execute:prepend:worldgen_world_preset_tag:name:content", + "execute:prepend:zombie_nautilus_variant_tag:name:content", "execute:publish:allowCommands", "execute:publish:allowCommands:gamemode", "execute:publish:allowCommands:gamemode:port", @@ -2057,6 +2082,8 @@ "execute:time:set:night", "execute:time:set:noon", "execute:time:set:time", + "execute:timeline:name:content", + "execute:timeline_tag:name:content", "execute:title:targets:actionbar:title", "execute:title:targets:clear", "execute:title:targets:reset", @@ -2072,6 +2099,8 @@ "execute:tp:targets:location:facing:entity:facingEntity:facingAnchor", "execute:tp:targets:location:facing:facingLocation", "execute:tp:targets:location:rotation", + "execute:trade_set:name:content", + "execute:trade_set_tag:name:content", "execute:transfer:hostname", "execute:transfer:hostname:port", "execute:transfer:hostname:port:players", @@ -2123,6 +2152,8 @@ "execute:unless:stopwatch:id:range", "execute:unless:stopwatch:id:range:subcommand", "execute:vertex_shader:name:content", + "execute:villager_trade:name:content", + "execute:villager_trade_tag:name:content", "execute:w:targets:message", "execute:waypoint:list", "execute:waypoint:modify:waypoint:color:color", @@ -2159,6 +2190,8 @@ "execute:wolf_sound_variant:name:content", "execute:wolf_sound_variant_tag:name:content", "execute:wolf_variant:name:content", + "execute:world_clock:name:content", + "execute:world_clock_tag:name:content", "execute:worldborder:add:distance", "execute:worldborder:add:distance:time", "execute:worldborder:center:pos", @@ -2199,6 +2232,8 @@ "execute:xp:set:target:amount", "execute:xp:set:target:amount:levels", "execute:xp:set:target:amount:points", + "execute:zombie_nautilus_variant:name:content", + "execute:zombie_nautilus_variant_tag:name:content", "expand:commands", "experience:add:target:amount", "experience:add:target:amount:levels", @@ -2716,13 +2751,21 @@ "merge:test_environment:name:content", "merge:test_instance:name:content", "merge:texture_mcmeta:name:content", + "merge:timeline:name:content", + "merge:timeline_tag:name:content", + "merge:trade_set:name:content", + "merge:trade_set_tag:name:content", "merge:trial_spawner:name:content", "merge:trim_material:name:content", "merge:trim_pattern:name:content", + "merge:villager_trade:name:content", + "merge:villager_trade_tag:name:content", "merge:waypoint_style:name:content", "merge:wolf_sound_variant:name:content", "merge:wolf_sound_variant_tag:name:content", "merge:wolf_variant:name:content", + "merge:world_clock:name:content", + "merge:world_clock_tag:name:content", "merge:worldgen_biome:name:content", "merge:worldgen_biome_tag:name:content", "merge:worldgen_configured_carver:name:content", @@ -2745,6 +2788,8 @@ "merge:worldgen_template_pool:name:content", "merge:worldgen_world_preset:name:content", "merge:worldgen_world_preset_tag:name:content", + "merge:zombie_nautilus_variant:name:content", + "merge:zombie_nautilus_variant_tag:name:content", "model:name:content", "msg:targets:message", "nonlocal:name", @@ -2880,7 +2925,11 @@ "prepend:item_tag:name:content", "prepend:painting_variant_tag:name:content", "prepend:point_of_interest_type_tag:name:content", + "prepend:timeline_tag:name:content", + "prepend:trade_set_tag:name:content", + "prepend:villager_trade_tag:name:content", "prepend:wolf_sound_variant_tag:name:content", + "prepend:world_clock_tag:name:content", "prepend:worldgen_biome_tag:name:content", "prepend:worldgen_configured_carver_tag:name:content", "prepend:worldgen_flat_level_generator_preset_tag:name:content", @@ -2888,6 +2937,7 @@ "prepend:worldgen_structure_set_tag:name:content", "prepend:worldgen_structure_tag:name:content", "prepend:worldgen_world_preset_tag:name:content", + "prepend:zombie_nautilus_variant_tag:name:content", "publish", "publish:allowCommands", "publish:allowCommands:gamemode", @@ -3171,6 +3221,8 @@ "time:set:night", "time:set:noon", "time:set:time", + "timeline:name:content", + "timeline_tag:name:content", "title:targets:actionbar:title", "title:targets:clear", "title:targets:reset", @@ -3186,6 +3238,8 @@ "tp:targets:location:facing:entity:facingEntity:facingAnchor", "tp:targets:location:facing:facingLocation", "tp:targets:location:rotation", + "trade_set:name:content", + "trade_set_tag:name:content", "transfer:hostname", "transfer:hostname:port", "transfer:hostname:port:players", @@ -3238,6 +3292,8 @@ "unless:stopwatch:id:range:subcommand", "version", "vertex_shader:name:content", + "villager_trade:name:content", + "villager_trade_tag:name:content", "w:targets:message", "waypoint:list", "waypoint:modify:waypoint:color:color", @@ -3275,6 +3331,8 @@ "wolf_sound_variant:name:content", "wolf_sound_variant_tag:name:content", "wolf_variant:name:content", + "world_clock:name:content", + "world_clock_tag:name:content", "worldborder:add:distance", "worldborder:add:distance:time", "worldborder:center:pos", @@ -3317,5 +3375,7 @@ "xp:set:target:amount:points", "yield", "yield:from:value", - "yield:value" + "yield:value", + "zombie_nautilus_variant:name:content", + "zombie_nautilus_variant_tag:name:content" ] diff --git a/src/beet/library/data_pack.py b/src/beet/library/data_pack.py index 60d515b03..930d5d846 100644 --- a/src/beet/library/data_pack.py +++ b/src/beet/library/data_pack.py @@ -366,6 +366,41 @@ class TestEnvironment(JsonFile): extension: ClassVar[str] = ".json" +class Timeline(JsonFile): + """Class representing a timeline.""" + + scope: ClassVar[NamespaceFileScope] = ("timeline",) + extension: ClassVar[str] = ".json" + + +class ZombieNautilusVariant(JsonFile): + """Class representing a zombie nautilus variant.""" + + scope: ClassVar[NamespaceFileScope] = ("zombie_nautilus_variant",) + extension: ClassVar[str] = ".json" + + +class VillagerTrade(JsonFile): + """Class representing a villager trade.""" + + scope: ClassVar[NamespaceFileScope] = ("villager_trade",) + extension: ClassVar[str] = ".json" + + +class TradeSet(JsonFile): + """Class representing a trade set.""" + + scope: ClassVar[NamespaceFileScope] = ("trade_set",) + extension: ClassVar[str] = ".json" + + +class WorldClock(JsonFile): + """Class representing a world clock.""" + + scope: ClassVar[NamespaceFileScope] = ("world_clock",) + extension: ClassVar[str] = ".json" + + class TagFile(JsonFile): """Base class for tag files.""" @@ -591,6 +626,51 @@ class DialogTag(TagFile): ) +class TimelineTag(TagFile): + """Class representing a timeline tag.""" + + scope: ClassVar[NamespaceFileScope] = ( + "tags", + "timeline", + ) + + +class ZombieNautilusVariantTag(TagFile): + """Class representing a zombie nautilus variant tag.""" + + scope: ClassVar[NamespaceFileScope] = ( + "tags", + "zombie_nautilus_variant", + ) + + +class VillagerTradeTag(TagFile): + """Class representing a villager trade tag.""" + + scope: ClassVar[NamespaceFileScope] = ( + "tags", + "villager_trade", + ) + + +class TradeSetTag(TagFile): + """Class representing a villager trade tag.""" + + scope: ClassVar[NamespaceFileScope] = ( + "tags", + "trade_set", + ) + + +class WorldClockTag(TagFile): + """Class representing a world clock tag.""" + + scope: ClassVar[NamespaceFileScope] = ( + "tags", + "world_clock", + ) + + class DataPackNamespace(Namespace): """Class representing a data pack namespace.""" @@ -621,6 +701,11 @@ class DataPackNamespace(Namespace): cow_variants: NamespacePin[CowVariant] = NamespacePin(CowVariant) chicken_variants: NamespacePin[ChickenVariant] = NamespacePin(ChickenVariant) wolf_sound_variants: NamespacePin[WolfSoundVariant] = NamespacePin(WolfSoundVariant) + timelines: NamespacePin[Timeline] = NamespacePin(Timeline) + zombie_nautilus_variants: NamespacePin[ZombieNautilusVariant] = NamespacePin(ZombieNautilusVariant) + villager_trades: NamespacePin[VillagerTrade] = NamespacePin(VillagerTrade) + trade_sets: NamespacePin[TradeSet] = NamespacePin(TradeSet) + world_clocks: NamespacePin[WorldClock] = NamespacePin(WorldClock) block_tags: NamespacePin[BlockTag] = NamespacePin(BlockTag) entity_type_tags: NamespacePin[EntityTypeTag] = NamespacePin(EntityTypeTag) fluid_tags: NamespacePin[FluidTag] = NamespacePin(FluidTag) @@ -644,6 +729,11 @@ class DataPackNamespace(Namespace): dialogs_tags: NamespacePin[DialogTag] = NamespacePin(DialogTag) test_instances: NamespacePin[TestInstance] = NamespacePin(TestInstance) test_environments: NamespacePin[TestEnvironment] = NamespacePin(TestEnvironment) + timeline_tags: NamespacePin[TimelineTag] = NamespacePin(TimelineTag) + zombie_nautilus_variant_tags: NamespacePin[ZombieNautilusVariantTag] = NamespacePin(ZombieNautilusVariantTag) + villager_trade_tags: NamespacePin[VillagerTradeTag] = NamespacePin(VillagerTradeTag) + trade_set_tags: NamespacePin[TradeSetTag] = NamespacePin(TradeSetTag) + world_clock_tags: NamespacePin[WorldClockTag] = NamespacePin(WorldClockTag) # fmt: on @@ -684,6 +774,11 @@ class DataPack(Pack[DataPackNamespace]): cow_variants: NamespaceProxyDescriptor[CowVariant] = NamespaceProxyDescriptor(CowVariant) chicken_variants: NamespaceProxyDescriptor[ChickenVariant] = NamespaceProxyDescriptor(ChickenVariant) wolf_sound_variants: NamespaceProxyDescriptor[WolfSoundVariant] = NamespaceProxyDescriptor(WolfSoundVariant) + timelines: NamespaceProxyDescriptor[Timeline] = NamespaceProxyDescriptor(Timeline) + zombie_nautilus_variants: NamespaceProxyDescriptor[ZombieNautilusVariant] = NamespaceProxyDescriptor(ZombieNautilusVariant) + village_trades: NamespaceProxyDescriptor[VillagerTrade] = NamespaceProxyDescriptor(VillagerTrade) + trade_sets: NamespaceProxyDescriptor[TradeSet] = NamespaceProxyDescriptor(TradeSet) + world_clocks: NamespaceProxyDescriptor[WorldClock] = NamespaceProxyDescriptor(WorldClock) block_tags: NamespaceProxyDescriptor[BlockTag] = NamespaceProxyDescriptor(BlockTag) entity_type_tags: NamespaceProxyDescriptor[EntityTypeTag] = NamespaceProxyDescriptor(EntityTypeTag) fluid_tags: NamespaceProxyDescriptor[FluidTag] = NamespaceProxyDescriptor(FluidTag) @@ -707,4 +802,9 @@ class DataPack(Pack[DataPackNamespace]): dialogs_tags: NamespaceProxyDescriptor[DialogTag] = NamespaceProxyDescriptor(DialogTag) test_instances: NamespaceProxyDescriptor[TestInstance] = NamespaceProxyDescriptor(TestInstance) test_environments: NamespaceProxyDescriptor[TestEnvironment] = NamespaceProxyDescriptor(TestEnvironment) + timeline_tags: NamespaceProxyDescriptor[TimelineTag] = NamespaceProxyDescriptor(TimelineTag) + zombie_nautilus_variant_tags: NamespaceProxyDescriptor[ZombieNautilusVariantTag] = NamespaceProxyDescriptor(ZombieNautilusVariantTag) + village_trade_tags: NamespaceProxyDescriptor[VillagerTradeTag] = NamespaceProxyDescriptor(VillagerTradeTag) + trade_set_tags: NamespaceProxyDescriptor[TradeSetTag] = NamespaceProxyDescriptor(TradeSetTag) + world_clock_tags: NamespaceProxyDescriptor[WorldClockTag] = NamespaceProxyDescriptor(WorldClockTag) # fmt: on diff --git a/src/beet/resources/pack_format_registry.py b/src/beet/resources/pack_format_registry.py index ed019103c..d816d24a4 100644 --- a/src/beet/resources/pack_format_registry.py +++ b/src/beet/resources/pack_format_registry.py @@ -32,9 +32,6 @@ class PackFormatRegistry(BaseModel): data_pack_version_minor: int resource_pack_version: int resource_pack_version_minor: int - build_time: str - release_time: str - sha1: str pack_format_registry_path = files("beet.resources").joinpath(