@spyglassmc/java-edition 0.3.28 → 0.3.30
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/binder/index.d.ts
CHANGED
|
@@ -17,7 +17,7 @@ export declare function dissectUri(uri: string, ctx: UriBinderContext): {
|
|
|
17
17
|
identifier: string;
|
|
18
18
|
expected: string | undefined;
|
|
19
19
|
path: string;
|
|
20
|
-
category: "function" | "advancement" | "banner_pattern" | "chat_type" | "damage_type" | "dimension" | "dimension_type" | "enchantment" | "enchantment_provider" | "instrument" | "item_modifier" | "jukebox_song" | "loot_table" | "painting_variant" | "pig_variant" | "predicate" | "recipe" | "structure" | "trial_spawner" | "trim_material" | "trim_pattern" | "wolf_variant" | "tag/function" | "tag/activity" | "tag/armor_material" | "tag/attribute" | "tag/block" | "tag/block_entity_type" | "tag/block_predicate_type" | "tag/block_type" | "tag/
|
|
20
|
+
category: "function" | "advancement" | "banner_pattern" | "cat_variant" | "chat_type" | "damage_type" | "dimension" | "dimension_type" | "enchantment" | "enchantment_provider" | "frog_variant" | "instrument" | "item_modifier" | "jukebox_song" | "loot_table" | "painting_variant" | "pig_variant" | "predicate" | "recipe" | "structure" | "test_environment" | "test_instance" | "trial_spawner" | "trim_material" | "trim_pattern" | "wolf_variant" | "tag/function" | "tag/activity" | "tag/armor_material" | "tag/attribute" | "tag/block" | "tag/block_entity_type" | "tag/block_predicate_type" | "tag/block_type" | "tag/chunk_status" | "tag/command_argument_type" | "tag/consume_effect_type" | "tag/creative_mode_tab" | "tag/custom_stat" | "tag/data_component_type" | "tag/decorated_pot_pattern" | "tag/decorated_pot_patterns" | "tag/enchantment_effect_component_type" | "tag/enchantment_entity_effect_type" | "tag/enchantment_level_based_value_type" | "tag/enchantment_location_based_effect_type" | "tag/enchantment_provider_type" | "tag/enchantment_value_effect_type" | "tag/entity_sub_predicate_type" | "tag/entity_type" | "tag/float_provider_type" | "tag/fluid" | "tag/game_event" | "tag/height_provider_type" | "tag/instrument" | "tag/int_provider_type" | "tag/item" | "tag/item_sub_predicate_type" | "tag/loot_condition_type" | "tag/loot_function_type" | "tag/loot_nbt_provider_type" | "tag/loot_number_provider_type" | "tag/loot_pool_entry_type" | "tag/loot_score_provider_type" | "tag/map_decoration_type" | "tag/memory_module_type" | "tag/menu" | "tag/mob_effect" | "tag/motive" | "tag/number_format_type" | "tag/particle_type" | "tag/point_of_interest_type" | "tag/pos_rule_test" | "tag/position_source_type" | "tag/potion" | "tag/recipe_book_category" | "tag/recipe_display" | "tag/recipe_serializer" | "tag/recipe_type" | "tag/rule_block_entity_modifier" | "tag/rule_test" | "tag/schedule" | "tag/sensor_type" | "tag/slot_display" | "tag/sound_event" | "tag/stat_type" | "tag/test_environment_definition_type" | "tag/test_function" | "tag/test_instance_type" | "tag/trigger_type" | "tag/villager_profession" | "tag/villager_type" | "tag/worldgen/biome_source" | "tag/worldgen/block_placer_type" | "tag/worldgen/block_state_provider_type" | "tag/worldgen/carver" | "tag/worldgen/chunk_generator" | "tag/worldgen/decorator" | "tag/worldgen/density_function_type" | "tag/worldgen/feature" | "tag/worldgen/feature_size_type" | "tag/worldgen/foliage_placer_type" | "tag/worldgen/material_condition" | "tag/worldgen/material_rule" | "tag/worldgen/placement_modifier_type" | "tag/worldgen/pool_alias_binding" | "tag/worldgen/root_placer_type" | "tag/worldgen/structure_feature" | "tag/worldgen/structure_piece" | "tag/worldgen/structure_placement" | "tag/worldgen/structure_pool_element" | "tag/worldgen/structure_processor" | "tag/worldgen/structure_type" | "tag/worldgen/surface_builder" | "tag/worldgen/tree_decorator_type" | "tag/worldgen/trunk_placer_type" | "tag/advancement" | "tag/banner_pattern" | "tag/cat_variant" | "tag/chat_type" | "tag/damage_type" | "tag/dimension" | "tag/dimension_type" | "tag/enchantment" | "tag/enchantment_provider" | "tag/frog_variant" | "tag/item_modifier" | "tag/jukebox_song" | "tag/loot_table" | "tag/painting_variant" | "tag/pig_variant" | "tag/predicate" | "tag/recipe" | "tag/structure" | "tag/test_environment" | "tag/test_instance" | "tag/trial_spawner" | "tag/trim_material" | "tag/trim_pattern" | "tag/wolf_variant" | "tag/worldgen/biome" | "tag/worldgen/configured_carver" | "tag/worldgen/configured_feature" | "tag/worldgen/configured_structure_feature" | "tag/worldgen/configured_surface_builder" | "tag/worldgen/density_function" | "tag/worldgen/flat_level_generator_preset" | "tag/worldgen/multi_noise_biome_source_parameter_list" | "tag/worldgen/noise" | "tag/worldgen/noise_settings" | "tag/worldgen/placed_feature" | "tag/worldgen/processor_list" | "tag/worldgen/structure" | "tag/worldgen/structure_set" | "tag/worldgen/template_pool" | "tag/worldgen/world_preset" | "worldgen/biome" | "worldgen/configured_carver" | "worldgen/configured_feature" | "worldgen/configured_structure_feature" | "worldgen/configured_surface_builder" | "worldgen/density_function" | "worldgen/flat_level_generator_preset" | "worldgen/multi_noise_biome_source_parameter_list" | "worldgen/noise" | "worldgen/noise_settings" | "worldgen/placed_feature" | "worldgen/processor_list" | "worldgen/structure" | "worldgen/structure_set" | "worldgen/template_pool" | "worldgen/world_preset" | "atlas" | "block_definition" | "equipment" | "font" | "font/ttf" | "font/otf" | "font/unihex" | "gpu_warnlist" | "item_definition" | "lang" | "lang/deprecated" | "model" | "particle" | "post_effect" | "regional_compliancies" | "shader" | "shader/fragment" | "shader/vertex" | "sound" | "sounds" | "texture" | "texture_meta";
|
|
21
21
|
ext: `.${string}`;
|
|
22
22
|
pack: "assets" | "data";
|
|
23
23
|
since?: `1.${number}` | undefined;
|
package/lib/binder/index.js
CHANGED
|
@@ -45,14 +45,18 @@ resource('tags/game_event', { category: 'tag/game_event', since: '1.21' });
|
|
|
45
45
|
resource('tags/item', { category: 'tag/item', since: '1.21' });
|
|
46
46
|
// Data pack
|
|
47
47
|
resource('banner_pattern', { since: '1.20.5' });
|
|
48
|
+
resource('cat_variant', { since: '1.21.5' });
|
|
48
49
|
resource('chat_type', { since: '1.19' });
|
|
49
50
|
resource('damage_type', { since: '1.19.4' });
|
|
50
51
|
resource('enchantment', { since: '1.21' });
|
|
51
52
|
resource('enchantment_provider', { since: '1.21' });
|
|
53
|
+
resource('frog_variant', { since: '1.21.5' });
|
|
52
54
|
resource('instrument', { since: '1.21.2' });
|
|
53
55
|
resource('jukebox_song', { since: '1.21' });
|
|
54
56
|
resource('painting_variant', { since: '1.21' });
|
|
55
57
|
resource('pig_variant', { since: '1.21.5' });
|
|
58
|
+
resource('test_instance', { since: '1.21.5' });
|
|
59
|
+
resource('test_environment', { since: '1.21.5' });
|
|
56
60
|
resource('trial_spawner', { since: '1.21.2' });
|
|
57
61
|
resource('trim_pattern', { since: '1.19.4' });
|
|
58
62
|
resource('trim_material', { since: '1.19.4' });
|
package/lib/index.js
CHANGED
|
@@ -109,7 +109,8 @@ export const initialize = async (ctx) => {
|
|
|
109
109
|
&& mcdoc.StructKeyNode.is(n)
|
|
110
110
|
&& !n.symbol?.path[0]?.startsWith('::minecraft')),
|
|
111
111
|
});
|
|
112
|
-
registerMcdocAttributes(meta, release);
|
|
112
|
+
registerMcdocAttributes(meta, summary.commands, release);
|
|
113
|
+
registerPackFormatAttribute(meta, release, versions, packs);
|
|
113
114
|
registerPackFormatAttribute(meta, release, versions, packs);
|
|
114
115
|
meta.registerLanguage('zip', { extensions: ['.zip'] });
|
|
115
116
|
meta.registerLanguage('png', { extensions: ['.png'] });
|
package/lib/mcdocAttributes.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as core from '@spyglassmc/core';
|
|
2
2
|
import { ReleaseVersion } from './dependency/index.js';
|
|
3
|
-
import type { McmetaVersions, PackInfo } from './dependency/index.js';
|
|
4
|
-
export declare function registerMcdocAttributes(meta: core.MetaRegistry, release: ReleaseVersion): void;
|
|
3
|
+
import type { McmetaCommands, McmetaVersions, PackInfo } from './dependency/index.js';
|
|
4
|
+
export declare function registerMcdocAttributes(meta: core.MetaRegistry, commands: McmetaCommands, release: ReleaseVersion): void;
|
|
5
5
|
export declare function registerPackFormatAttribute(meta: core.MetaRegistry, release: ReleaseVersion, versions: McmetaVersions, packs: PackInfo[]): void;
|
|
6
6
|
//# sourceMappingURL=mcdocAttributes.d.ts.map
|
package/lib/mcdocAttributes.js
CHANGED
|
@@ -2,8 +2,12 @@ import * as core from '@spyglassmc/core';
|
|
|
2
2
|
import { localize } from '@spyglassmc/locales';
|
|
3
3
|
import * as mcdoc from '@spyglassmc/mcdoc';
|
|
4
4
|
import { NEXT_RELEASE_VERSION, ReleaseVersion } from './dependency/index.js';
|
|
5
|
-
|
|
6
|
-
|
|
5
|
+
const validator = mcdoc.runtime.attribute.validator;
|
|
6
|
+
const gameRuleValidator = validator.tree({
|
|
7
|
+
type: validator.options('boolean', 'int'),
|
|
8
|
+
});
|
|
9
|
+
export function registerMcdocAttributes(meta, commands, release) {
|
|
10
|
+
mcdoc.runtime.registerAttribute(meta, 'since', validator.string, {
|
|
7
11
|
filterElement: (config, ctx) => {
|
|
8
12
|
if (!config.startsWith('1.')) {
|
|
9
13
|
ctx.logger.warn(`Invalid mcdoc attribute for "since": ${config}`);
|
|
@@ -12,7 +16,7 @@ export function registerMcdocAttributes(meta, release) {
|
|
|
12
16
|
return ReleaseVersion.cmp(release, config) >= 0;
|
|
13
17
|
},
|
|
14
18
|
});
|
|
15
|
-
mcdoc.runtime.registerAttribute(meta, 'until',
|
|
19
|
+
mcdoc.runtime.registerAttribute(meta, 'until', validator.string, {
|
|
16
20
|
filterElement: (config, ctx) => {
|
|
17
21
|
if (!config.startsWith('1.')) {
|
|
18
22
|
ctx.logger.warn(`Invalid mcdoc attribute for "until": ${config}`);
|
|
@@ -21,7 +25,7 @@ export function registerMcdocAttributes(meta, release) {
|
|
|
21
25
|
return ReleaseVersion.cmp(release, config) < 0;
|
|
22
26
|
},
|
|
23
27
|
});
|
|
24
|
-
mcdoc.runtime.registerAttribute(meta, 'deprecated',
|
|
28
|
+
mcdoc.runtime.registerAttribute(meta, 'deprecated', validator.optional(validator.string), {
|
|
25
29
|
mapField: (config, field, ctx) => {
|
|
26
30
|
if (config === undefined) {
|
|
27
31
|
return { ...field, deprecated: true };
|
|
@@ -36,6 +40,25 @@ export function registerMcdocAttributes(meta, release) {
|
|
|
36
40
|
return field;
|
|
37
41
|
},
|
|
38
42
|
});
|
|
43
|
+
const gameRuleNode = commands.children.gamerule?.children;
|
|
44
|
+
if (gameRuleNode) {
|
|
45
|
+
const [boolGameRules, intGameRules] = ['brigadier:bool', 'brigadier:integer'].map((type) => Object.entries(gameRuleNode).flatMap(([key, node]) => node.children?.value?.type === 'argument' && node.children.value.parser === type
|
|
46
|
+
? [key]
|
|
47
|
+
: []));
|
|
48
|
+
mcdoc.runtime.registerAttribute(meta, 'game_rule', gameRuleValidator, {
|
|
49
|
+
stringParser: (config, _, ctx) => {
|
|
50
|
+
return core.literal({
|
|
51
|
+
pool: config.type === 'boolean' ? boolGameRules : intGameRules,
|
|
52
|
+
colorTokenType: 'string',
|
|
53
|
+
});
|
|
54
|
+
},
|
|
55
|
+
stringMocker: (config, _, ctx) => {
|
|
56
|
+
return core.LiteralNode.mock(ctx.offset, {
|
|
57
|
+
pool: config.type === 'boolean' ? boolGameRules : intGameRules,
|
|
58
|
+
});
|
|
59
|
+
},
|
|
60
|
+
});
|
|
61
|
+
}
|
|
39
62
|
}
|
|
40
63
|
export function registerPackFormatAttribute(meta, release, versions, packs) {
|
|
41
64
|
const dataFormats = new Map();
|
|
@@ -17,7 +17,6 @@ export function getItemSlotArgumentValues(ctx) {
|
|
|
17
17
|
'armor.head',
|
|
18
18
|
'armor.legs',
|
|
19
19
|
'horse.chest',
|
|
20
|
-
'horse.saddle',
|
|
21
20
|
'weapon',
|
|
22
21
|
'weapon.mainhand',
|
|
23
22
|
'weapon.offhand',
|
|
@@ -28,6 +27,12 @@ export function getItemSlotArgumentValues(ctx) {
|
|
|
28
27
|
else {
|
|
29
28
|
output.push('horse.armor');
|
|
30
29
|
}
|
|
30
|
+
if (ReleaseVersion.cmp(release, '1.21.5') >= 0) {
|
|
31
|
+
output.push('saddle');
|
|
32
|
+
}
|
|
33
|
+
else {
|
|
34
|
+
output.push('horse.saddle');
|
|
35
|
+
}
|
|
31
36
|
return output;
|
|
32
37
|
}
|
|
33
38
|
// Only exists since 1.20.5
|
|
@@ -252,7 +252,7 @@ export interface ObjectiveCriteriaNode extends core.AstNode {
|
|
|
252
252
|
}
|
|
253
253
|
export declare namespace ObjectiveCriteriaNode {
|
|
254
254
|
const SimpleValues: string[];
|
|
255
|
-
const ComplexCategories: Map<string, "block" | "fluid" | "instrument" | "activity" | "armor_material" | "attribute" | "block_entity_type" | "block_predicate_type" | "block_type" | "
|
|
255
|
+
const ComplexCategories: Map<string, "block" | "fluid" | "instrument" | "activity" | "armor_material" | "attribute" | "block_entity_type" | "block_predicate_type" | "block_type" | "chunk_status" | "command_argument_type" | "consume_effect_type" | "creative_mode_tab" | "custom_stat" | "data_component_type" | "decorated_pot_pattern" | "decorated_pot_patterns" | "enchantment_effect_component_type" | "enchantment_entity_effect_type" | "enchantment_level_based_value_type" | "enchantment_location_based_effect_type" | "enchantment_provider_type" | "enchantment_value_effect_type" | "entity_sub_predicate_type" | "entity_type" | "float_provider_type" | "game_event" | "height_provider_type" | "int_provider_type" | "item" | "item_sub_predicate_type" | "loot_condition_type" | "loot_function_type" | "loot_nbt_provider_type" | "loot_number_provider_type" | "loot_pool_entry_type" | "loot_score_provider_type" | "map_decoration_type" | "memory_module_type" | "menu" | "mob_effect" | "motive" | "number_format_type" | "particle_type" | "point_of_interest_type" | "pos_rule_test" | "position_source_type" | "potion" | "recipe_book_category" | "recipe_display" | "recipe_serializer" | "recipe_type" | "rule_block_entity_modifier" | "rule_test" | "schedule" | "sensor_type" | "slot_display" | "sound_event" | "stat_type" | "test_environment_definition_type" | "test_function" | "test_instance_type" | "trigger_type" | "villager_profession" | "villager_type" | "worldgen/biome_source" | "worldgen/block_placer_type" | "worldgen/block_state_provider_type" | "worldgen/carver" | "worldgen/chunk_generator" | "worldgen/decorator" | "worldgen/density_function_type" | "worldgen/feature" | "worldgen/feature_size_type" | "worldgen/foliage_placer_type" | "worldgen/material_condition" | "worldgen/material_rule" | "worldgen/placement_modifier_type" | "worldgen/pool_alias_binding" | "worldgen/root_placer_type" | "worldgen/structure_feature" | "worldgen/structure_piece" | "worldgen/structure_placement" | "worldgen/structure_pool_element" | "worldgen/structure_processor" | "worldgen/structure_type" | "worldgen/surface_builder" | "worldgen/tree_decorator_type" | "worldgen/trunk_placer_type">;
|
|
256
256
|
const ComplexSep = ":";
|
|
257
257
|
function mock(range: core.RangeLike): ObjectiveCriteriaNode;
|
|
258
258
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@spyglassmc/java-edition",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.30",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"types": "lib/index.d.ts",
|
|
@@ -17,12 +17,12 @@
|
|
|
17
17
|
"release:dry": "npm publish --dry-run"
|
|
18
18
|
},
|
|
19
19
|
"dependencies": {
|
|
20
|
-
"@spyglassmc/core": "0.4.
|
|
21
|
-
"@spyglassmc/json": "0.3.
|
|
20
|
+
"@spyglassmc/core": "0.4.24",
|
|
21
|
+
"@spyglassmc/json": "0.3.27",
|
|
22
22
|
"@spyglassmc/locales": "0.3.12",
|
|
23
|
-
"@spyglassmc/mcfunction": "0.2.
|
|
24
|
-
"@spyglassmc/mcdoc": "0.3.
|
|
25
|
-
"@spyglassmc/nbt": "0.3.
|
|
23
|
+
"@spyglassmc/mcfunction": "0.2.26",
|
|
24
|
+
"@spyglassmc/mcdoc": "0.3.28",
|
|
25
|
+
"@spyglassmc/nbt": "0.3.28"
|
|
26
26
|
},
|
|
27
27
|
"devDependencies": {},
|
|
28
28
|
"publishConfig": {
|