@spyglassmc/java-edition 0.3.2 → 0.3.4
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 +1 -1
- package/lib/binder/index.js +21 -5
- package/lib/dependency/common.d.ts +1 -5
- package/lib/dependency/common.js +0 -15
- package/lib/dependency/index.d.ts +8 -0
- package/lib/dependency/index.js +23 -1
- package/lib/dependency/mcmeta.d.ts +4 -4
- package/lib/dependency/mcmeta.js +50 -17
- package/lib/index.js +6 -1
- package/lib/json/checker/index.js +2 -1
- package/lib/mcfunction/checker/index.js +5 -6
- package/lib/mcfunction/common/index.d.ts +4 -0
- package/lib/mcfunction/common/index.js +25 -0
- package/lib/mcfunction/completer/argument.js +10 -1
- package/lib/mcfunction/index.js +13 -1
- package/lib/mcfunction/inlayHintProvider.js +2 -1
- package/lib/mcfunction/node/argument.d.ts +5 -5
- package/lib/mcfunction/parser/argument.js +56 -24
- package/lib/mcfunction/signatureHelpProvider.js +3 -1
- package/lib/mcfunction/tree/argument.d.ts +19 -1
- package/lib/mcfunction/tree/patch.js +39 -1
- package/package.json +7 -7
- package/lib/json/checker/data/advancement.d.ts +0 -14
- package/lib/json/checker/data/advancement.js +0 -458
- package/lib/json/checker/data/biome.d.ts +0 -4
- package/lib/json/checker/data/biome.js +0 -148
- package/lib/json/checker/data/common.d.ts +0 -22
- package/lib/json/checker/data/common.js +0 -267
- package/lib/json/checker/data/dimension.d.ts +0 -4
- package/lib/json/checker/data/dimension.js +0 -224
- package/lib/json/checker/data/feature.d.ts +0 -9
- package/lib/json/checker/data/feature.js +0 -744
- package/lib/json/checker/data/index.d.ts +0 -4
- package/lib/json/checker/data/index.js +0 -40
- package/lib/json/checker/data/loot_table.d.ts +0 -8
- package/lib/json/checker/data/loot_table.js +0 -275
- package/lib/json/checker/data/recipe.d.ts +0 -2
- package/lib/json/checker/data/recipe.js +0 -50
- package/lib/json/checker/data/structure.d.ts +0 -8
- package/lib/json/checker/data/structure.js +0 -153
- package/lib/json/checker/data/tag.d.ts +0 -7
- package/lib/json/checker/data/tag.js +0 -35
- package/lib/json/checker/data/text_component.d.ts +0 -2
- package/lib/json/checker/data/text_component.js +0 -148
- package/lib/json/checker/util/advancement.d.ts +0 -3
- package/lib/json/checker/util/advancement.js +0 -16
- package/lib/json/checker/util/block_states.d.ts +0 -13
- package/lib/json/checker/util/block_states.js +0 -63
- package/lib/json/checker/util/color.d.ts +0 -4
- package/lib/json/checker/util/color.js +0 -65
- package/lib/json/checker/util/index.d.ts +0 -8
- package/lib/json/checker/util/index.js +0 -8
- package/lib/json/checker/util/nbt.d.ts +0 -16
- package/lib/json/checker/util/nbt.js +0 -67
- package/lib/json/checker/util/recipe.d.ts +0 -6
- package/lib/json/checker/util/recipe.js +0 -13
- package/lib/json/checker/util/uuid.d.ts +0 -2
- package/lib/json/checker/util/uuid.js +0 -9
- package/lib/json/checker/util/version.d.ts +0 -46
- package/lib/json/checker/util/version.js +0 -48
|
@@ -5,7 +5,7 @@ import { localeQuote, localize } from '@spyglassmc/locales';
|
|
|
5
5
|
import * as mcf from '@spyglassmc/mcfunction';
|
|
6
6
|
import * as nbt from '@spyglassmc/nbt';
|
|
7
7
|
import { ReleaseVersion } from '../../dependency/index.js';
|
|
8
|
-
import { ColorArgumentValues, EntityAnchorArgumentValues, ItemSlotArgumentValues, OperationArgumentValues, ScoreboardSlotArgumentValues, SwizzleArgumentValues, } from '../common/index.js';
|
|
8
|
+
import { ColorArgumentValues, EntityAnchorArgumentValues, GamemodeArgumentValues, HeightmapValues, ItemSlotArgumentValues, MirrorValues, OperationArgumentValues, RotationValues, ScoreboardSlotArgumentValues, SwizzleArgumentValues, } from '../common/index.js';
|
|
9
9
|
import { BlockStatesNode, EntitySelectorArgumentsNode, EntitySelectorAtVariable, EntitySelectorAtVariables, EntitySelectorNode, ObjectiveCriteriaNode, TimeNode, } from '../node/index.js';
|
|
10
10
|
const IntegerPattern = /^-?\d+$/;
|
|
11
11
|
/**
|
|
@@ -103,8 +103,12 @@ export const argument = (rawTreeNode) => {
|
|
|
103
103
|
category: 'function',
|
|
104
104
|
allowTag: true,
|
|
105
105
|
}));
|
|
106
|
+
case 'minecraft:gamemode':
|
|
107
|
+
return wrap(core.literal(...GamemodeArgumentValues));
|
|
106
108
|
case 'minecraft:game_profile':
|
|
107
109
|
return wrap(entity('multiple', 'players'));
|
|
110
|
+
case 'minecraft:heightmap':
|
|
111
|
+
return wrap(core.literal(...HeightmapValues));
|
|
108
112
|
case 'minecraft:int_range':
|
|
109
113
|
return wrap(range('integer'));
|
|
110
114
|
case 'minecraft:item_enchantment':
|
|
@@ -143,6 +147,7 @@ export const argument = (rawTreeNode) => {
|
|
|
143
147
|
case 'minecraft:particle':
|
|
144
148
|
return wrap(particle);
|
|
145
149
|
case 'minecraft:resource':
|
|
150
|
+
case 'minecraft:resource_key':
|
|
146
151
|
case 'minecraft:resource_or_tag':
|
|
147
152
|
return wrap(core.resourceLocation({
|
|
148
153
|
category: core.ResourceLocation.shorten(treeNode.properties.registry),
|
|
@@ -167,6 +172,10 @@ export const argument = (rawTreeNode) => {
|
|
|
167
172
|
return wrap(team(core.SymbolUsageType.is(treeNode.properties?.usageType)
|
|
168
173
|
? treeNode.properties?.usageType
|
|
169
174
|
: undefined));
|
|
175
|
+
case 'minecraft:template_mirror':
|
|
176
|
+
return wrap(core.literal(...MirrorValues));
|
|
177
|
+
case 'minecraft:template_rotation':
|
|
178
|
+
return wrap(core.literal(...RotationValues));
|
|
170
179
|
case 'minecraft:time':
|
|
171
180
|
return wrap(time);
|
|
172
181
|
case 'minecraft:uuid':
|
|
@@ -217,7 +226,7 @@ function block(isPredicate) {
|
|
|
217
226
|
}
|
|
218
227
|
const blockState = block(false);
|
|
219
228
|
export const blockPredicate = block(true);
|
|
220
|
-
export const component = json.parser.
|
|
229
|
+
export const component = json.parser.entry;
|
|
221
230
|
function double(min = DoubleMin, max = DoubleMax) {
|
|
222
231
|
return core.float({
|
|
223
232
|
pattern: FloatPattern,
|
|
@@ -400,7 +409,9 @@ function range(type, min, max, cycleable) {
|
|
|
400
409
|
: res.children.filter(core.IntegerNode.is);
|
|
401
410
|
const sepNode = res.children.find(core.LiteralNode.is);
|
|
402
411
|
const ans = {
|
|
403
|
-
type: type === 'float'
|
|
412
|
+
type: type === 'float'
|
|
413
|
+
? 'mcfunction:float_range'
|
|
414
|
+
: 'mcfunction:int_range',
|
|
404
415
|
range: res.range,
|
|
405
416
|
children: res.children,
|
|
406
417
|
value: sepNode
|
|
@@ -452,7 +463,10 @@ function selector() {
|
|
|
452
463
|
typeLimited = playersOnly;
|
|
453
464
|
function invertable(parser) {
|
|
454
465
|
return core.map(core.sequence([
|
|
455
|
-
core.optional(core.failOnEmpty(core.literal({
|
|
466
|
+
core.optional(core.failOnEmpty(core.literal({
|
|
467
|
+
pool: ['!'],
|
|
468
|
+
colorTokenType: 'keyword',
|
|
469
|
+
}))),
|
|
456
470
|
(src) => {
|
|
457
471
|
src.skipSpace();
|
|
458
472
|
return undefined;
|
|
@@ -476,7 +490,9 @@ function selector() {
|
|
|
476
490
|
...core.BrigadierStringOptions,
|
|
477
491
|
value: {
|
|
478
492
|
parser: core.literal({
|
|
479
|
-
pool: [
|
|
493
|
+
pool: [
|
|
494
|
+
...EntitySelectorNode.ArgumentKeys,
|
|
495
|
+
],
|
|
480
496
|
colorTokenType: 'property',
|
|
481
497
|
}),
|
|
482
498
|
type: 'literal',
|
|
@@ -505,7 +521,8 @@ function selector() {
|
|
|
505
521
|
pair: {
|
|
506
522
|
key: unquotedString,
|
|
507
523
|
sep: '=',
|
|
508
|
-
value: core
|
|
524
|
+
value: core
|
|
525
|
+
.boolean,
|
|
509
526
|
end: ',',
|
|
510
527
|
trailingEnd: true,
|
|
511
528
|
},
|
|
@@ -540,8 +557,8 @@ function selector() {
|
|
|
540
557
|
return core.map(range('float', 0), (res, _, ctx) => {
|
|
541
558
|
dimensionLimited = true;
|
|
542
559
|
// x, y, z, dx, dy, dz take precedence over distance, so we use ??= instead of = to ensure it won't override the result.
|
|
543
|
-
chunkLimited ??=
|
|
544
|
-
|
|
560
|
+
chunkLimited ??= !playersOnly &&
|
|
561
|
+
res.value[1] !== undefined;
|
|
545
562
|
if (hasKey(key.value)) {
|
|
546
563
|
ctx.err.report(localize('duplicate-key', localeQuote(key.value)), key);
|
|
547
564
|
}
|
|
@@ -549,10 +566,11 @@ function selector() {
|
|
|
549
566
|
});
|
|
550
567
|
case 'gamemode':
|
|
551
568
|
return core.map(invertable(core.string({
|
|
552
|
-
unquotable: core
|
|
569
|
+
unquotable: core
|
|
570
|
+
.BrigadierUnquotableOption,
|
|
553
571
|
value: {
|
|
554
572
|
type: 'literal',
|
|
555
|
-
parser: core.literal(
|
|
573
|
+
parser: core.literal(...GamemodeArgumentValues),
|
|
556
574
|
},
|
|
557
575
|
})), (res, _, ctx) => {
|
|
558
576
|
playersOnly = true;
|
|
@@ -594,7 +612,9 @@ function selector() {
|
|
|
594
612
|
case 'nbt':
|
|
595
613
|
return invertable(nbt.parser.compound);
|
|
596
614
|
case 'predicate':
|
|
597
|
-
return invertable(core.resourceLocation({
|
|
615
|
+
return invertable(core.resourceLocation({
|
|
616
|
+
category: 'predicate',
|
|
617
|
+
}));
|
|
598
618
|
case 'scores':
|
|
599
619
|
return core.map(core.record({
|
|
600
620
|
start: '{',
|
|
@@ -625,7 +645,8 @@ function selector() {
|
|
|
625
645
|
});
|
|
626
646
|
case 'sort':
|
|
627
647
|
return core.map(core.string({
|
|
628
|
-
unquotable: core
|
|
648
|
+
unquotable: core
|
|
649
|
+
.BrigadierUnquotableOption,
|
|
629
650
|
value: {
|
|
630
651
|
type: 'literal',
|
|
631
652
|
parser: core.literal('arbitrary', 'furthest', 'nearest', 'random'),
|
|
@@ -640,7 +661,14 @@ function selector() {
|
|
|
640
661
|
return res;
|
|
641
662
|
});
|
|
642
663
|
case 'tag':
|
|
643
|
-
return invertable(tag([
|
|
664
|
+
return invertable(tag([
|
|
665
|
+
'[',
|
|
666
|
+
'=',
|
|
667
|
+
',',
|
|
668
|
+
']',
|
|
669
|
+
'{',
|
|
670
|
+
'}',
|
|
671
|
+
]));
|
|
644
672
|
case 'team':
|
|
645
673
|
return core.map(invertable(team('reference', [
|
|
646
674
|
'[',
|
|
@@ -670,9 +698,11 @@ function selector() {
|
|
|
670
698
|
ctx.err.report(localize('mcfunction.parser.entity-selector.arguments.not-applicable', localeQuote(key.value)), key);
|
|
671
699
|
}
|
|
672
700
|
}
|
|
673
|
-
else if (!res.inverted &&
|
|
701
|
+
else if (!res.inverted &&
|
|
702
|
+
!res.value.isTag) {
|
|
674
703
|
typeLimited = true;
|
|
675
|
-
if (core.ResourceLocationNode
|
|
704
|
+
if (core.ResourceLocationNode
|
|
705
|
+
.toString(res.value, 'short') === 'player') {
|
|
676
706
|
playersOnly = true;
|
|
677
707
|
}
|
|
678
708
|
}
|
|
@@ -757,15 +787,15 @@ function selector() {
|
|
|
757
787
|
// Might not make into the actual release.
|
|
758
788
|
function getEntitySelectorHover(node) {
|
|
759
789
|
const grades = new Map([
|
|
760
|
-
[0, '🤢'],
|
|
761
|
-
[1, '😅'],
|
|
762
|
-
[2, 'Good'],
|
|
763
|
-
[3, 'Great'],
|
|
790
|
+
[0, '🤢'], // Bad
|
|
791
|
+
[1, '😅'], // Normal
|
|
792
|
+
[2, 'Good'], // Good
|
|
793
|
+
[3, 'Great'], // Great
|
|
764
794
|
[4, '😌👌'], // Excellent
|
|
765
795
|
]);
|
|
766
796
|
let ans;
|
|
767
797
|
if (node.currentEntity) {
|
|
768
|
-
ans = `**Performance**: ${grades.get(4)}
|
|
798
|
+
ans = `**Performance**: ${grades.get(4)}
|
|
769
799
|
- \`currentEntity\`: \`${node.currentEntity}\``;
|
|
770
800
|
}
|
|
771
801
|
else {
|
|
@@ -775,7 +805,7 @@ function getEntitySelectorHover(node) {
|
|
|
775
805
|
node.playersOnly,
|
|
776
806
|
node.typeLimited,
|
|
777
807
|
].filter((v) => v).length;
|
|
778
|
-
ans = `**Performance**: ${grades.get(amountOfTrue)}
|
|
808
|
+
ans = `**Performance**: ${grades.get(amountOfTrue)}
|
|
779
809
|
- \`chunkLimited\`: \`${!!node.chunkLimited}\`
|
|
780
810
|
- \`dimensionLimited\`: \`${!!node.dimensionLimited}\`
|
|
781
811
|
- \`playersOnly\`: \`${!!node.playersOnly}\`
|
|
@@ -785,7 +815,7 @@ function getEntitySelectorHover(node) {
|
|
|
785
815
|
ans += `
|
|
786
816
|
|
|
787
817
|
------
|
|
788
|
-
**Predicates**:
|
|
818
|
+
**Predicates**:
|
|
789
819
|
${node.predicates.map((p) => `- \`${p}\``).join('\n')}`;
|
|
790
820
|
}
|
|
791
821
|
return ans;
|
|
@@ -824,7 +854,8 @@ function symbol(options, terminators = []) {
|
|
|
824
854
|
function objective(usageType, terminators = []) {
|
|
825
855
|
return validateLength(unquotableSymbol({ category: 'objective', usageType }, terminators), ObjectiveMaxLength, 'mcfunction.parser.objective.too-long');
|
|
826
856
|
}
|
|
827
|
-
const objectiveCriteria = core
|
|
857
|
+
const objectiveCriteria = core
|
|
858
|
+
.map(core.any([
|
|
828
859
|
core.sequence([
|
|
829
860
|
core.stopBefore(core.resourceLocation({
|
|
830
861
|
category: 'stat_type',
|
|
@@ -834,7 +865,8 @@ const objectiveCriteria = core.map(core.any([
|
|
|
834
865
|
{
|
|
835
866
|
get: (res) => {
|
|
836
867
|
if (core.ResourceLocationNode.is(res.children[0])) {
|
|
837
|
-
const category = ObjectiveCriteriaNode.ComplexCategories
|
|
868
|
+
const category = ObjectiveCriteriaNode.ComplexCategories
|
|
869
|
+
.get(core.ResourceLocationNode.toString(res.children[0], 'short'));
|
|
838
870
|
if (category) {
|
|
839
871
|
return core.resourceLocation({
|
|
840
872
|
category,
|
|
@@ -37,7 +37,9 @@ export function signatureHelpProvider(commandTreeName) {
|
|
|
37
37
|
};
|
|
38
38
|
ans.signatures = options.map((v) => {
|
|
39
39
|
const part1 = v[selectedIndex];
|
|
40
|
-
const part2 = selectedIndex + 1 < v.length
|
|
40
|
+
const part2 = selectedIndex + 1 < v.length
|
|
41
|
+
? ` ${v[selectedIndex + 1]}`
|
|
42
|
+
: '';
|
|
41
43
|
const label = `${part1}${part2}`;
|
|
42
44
|
return {
|
|
43
45
|
label,
|
|
@@ -80,9 +80,15 @@ export interface MinecraftFloatRangeArgumentTreeNode extends mcf.ArgumentTreeNod
|
|
|
80
80
|
export interface MinecraftFunctionArgumentTreeNode extends mcf.ArgumentTreeNode {
|
|
81
81
|
parser: 'minecraft:function';
|
|
82
82
|
}
|
|
83
|
+
export interface MinecraftGamemodeArgumentTreeNode extends mcf.ArgumentTreeNode {
|
|
84
|
+
parser: 'minecraft:gamemode';
|
|
85
|
+
}
|
|
83
86
|
export interface MinecraftGameProfileArgumentTreeNode extends mcf.ArgumentTreeNode {
|
|
84
87
|
parser: 'minecraft:game_profile';
|
|
85
88
|
}
|
|
89
|
+
export interface MinecraftHeightmapArgumentTreeNode extends mcf.ArgumentTreeNode {
|
|
90
|
+
parser: 'minecraft:heightmap';
|
|
91
|
+
}
|
|
86
92
|
export interface MinecraftIntRangeArgumentTreeNode extends mcf.ArgumentTreeNode {
|
|
87
93
|
parser: 'minecraft:int_range';
|
|
88
94
|
}
|
|
@@ -131,6 +137,12 @@ export interface MinecraftResourceArgumentTreeNode extends mcf.ArgumentTreeNode
|
|
|
131
137
|
registry: string;
|
|
132
138
|
};
|
|
133
139
|
}
|
|
140
|
+
export interface MinecraftResourceKeyArgumentTreeNode extends mcf.ArgumentTreeNode {
|
|
141
|
+
parser: 'minecraft:resource_key';
|
|
142
|
+
properties: {
|
|
143
|
+
registry: string;
|
|
144
|
+
};
|
|
145
|
+
}
|
|
134
146
|
export interface MinecraftResourceLocationArgumentTreeNode extends mcf.ArgumentTreeNode {
|
|
135
147
|
parser: 'minecraft:resource_location';
|
|
136
148
|
properties?: core.ResourceLocationOptions;
|
|
@@ -159,6 +171,12 @@ export interface MinecraftSwizzleArgumentTreeNode extends mcf.ArgumentTreeNode {
|
|
|
159
171
|
export interface MinecraftTeamArgumentTreeNode extends mcf.ArgumentTreeNode {
|
|
160
172
|
parser: 'minecraft:team';
|
|
161
173
|
}
|
|
174
|
+
export interface MinecraftTemplateMirrorArgumentTreeNode extends mcf.ArgumentTreeNode {
|
|
175
|
+
parser: 'minecraft:template_mirror';
|
|
176
|
+
}
|
|
177
|
+
export interface MinecraftTemplateRotationArgumentTreeNode extends mcf.ArgumentTreeNode {
|
|
178
|
+
parser: 'minecraft:template_rotation';
|
|
179
|
+
}
|
|
162
180
|
export interface MinecraftTimeArgumentTreeNode extends mcf.ArgumentTreeNode {
|
|
163
181
|
parser: 'minecraft:time';
|
|
164
182
|
}
|
|
@@ -175,5 +193,5 @@ export interface MinecraftVec3ArgumentTreeNode extends mcf.ArgumentTreeNode {
|
|
|
175
193
|
export interface SpyglassmcTagArgumentTreeNode extends mcf.ArgumentTreeNode {
|
|
176
194
|
parser: 'spyglassmc:tag';
|
|
177
195
|
}
|
|
178
|
-
export
|
|
196
|
+
export type ArgumentTreeNode = BrigadierBoolArgumentTreeNode | BrigadierDoubleArgumentTreeNode | BrigadierFloatArgumentTreeNode | BrigadierIntegerArgumentTreeNode | BrigadierLongArgumentTreeNode | BrigadierStringArgumentTreeNode | MinecraftAngleArgumentTreeNode | MinecraftBlockPosArgumentTreeNode | MinecraftBlockPredicateArgumentTreeNode | MinecraftBlockStateArgumentTreeNode | MinecraftColorArgumentTreeNode | MinecraftColumnPosArgumentTreeNode | MinecraftComponentArgumentTreeNode | MinecraftDimensionArgumentTreeNode | MinecraftEntityArgumentTreeNode | MinecraftEntityAnchorArgumentTreeNode | MinecraftEntitySummonArgumentTreeNode | MinecraftFloatRangeArgumentTreeNode | MinecraftFunctionArgumentTreeNode | MinecraftGamemodeArgumentTreeNode | MinecraftGameProfileArgumentTreeNode | MinecraftHeightmapArgumentTreeNode | MinecraftIntRangeArgumentTreeNode | MinecraftItemEnchantmentArgumentTreeNode | MinecraftItemPredicateArgumentTreeNode | MinecraftItemSlotArgumentTreeNode | MinecraftItemStackArgumentTreeNode | MinecraftMessageArgumentTreeNode | MinecraftMobEffectArgumentTreeNode | MinecraftNbtCompoundTagArgumentTreeNode | MinecraftNbtPathArgumentTreeNode | MinecraftNbtTagArgumentTreeNode | MinecraftObjectiveArgumentTreeNode | MinecraftObjectiveCriteriaArgumentTreeNode | MinecraftOperationArgumentTreeNode | MinecraftParticleArgumentTreeNode | MinecraftResourceArgumentTreeNode | MinecraftResourceKeyArgumentTreeNode | MinecraftResourceLocationArgumentTreeNode | MinecraftResourceOrTagArgumentTreeNode | MinecraftRotationArgumentTreeNode | MinecraftScoreHolderArgumentTreeNode | MinecraftScoreboardSlotArgumentTreeNode | MinecraftSwizzleArgumentTreeNode | MinecraftTeamArgumentTreeNode | MinecraftTemplateMirrorArgumentTreeNode | MinecraftTemplateRotationArgumentTreeNode | MinecraftTimeArgumentTreeNode | MinecraftUuidArgumentTreeNode | MinecraftVec2ArgumentTreeNode | MinecraftVec3ArgumentTreeNode | SpyglassmcTagArgumentTreeNode;
|
|
179
197
|
//# sourceMappingURL=argument.d.ts.map
|
|
@@ -327,6 +327,13 @@ export function getPatch(release) {
|
|
|
327
327
|
help: {
|
|
328
328
|
permission: 0,
|
|
329
329
|
},
|
|
330
|
+
...(ReleaseVersion.cmp(release, '1.18') >= 0
|
|
331
|
+
? {
|
|
332
|
+
jfr: {
|
|
333
|
+
permission: 4,
|
|
334
|
+
},
|
|
335
|
+
}
|
|
336
|
+
: {}),
|
|
330
337
|
kick: {
|
|
331
338
|
permission: 3,
|
|
332
339
|
},
|
|
@@ -412,6 +419,30 @@ export function getPatch(release) {
|
|
|
412
419
|
'pardon-ip': {
|
|
413
420
|
permission: 3,
|
|
414
421
|
},
|
|
422
|
+
...(ReleaseVersion.cmp(release, '1.17') >= 0
|
|
423
|
+
? {
|
|
424
|
+
perf: {
|
|
425
|
+
permission: 4,
|
|
426
|
+
},
|
|
427
|
+
}
|
|
428
|
+
: {}),
|
|
429
|
+
...(ReleaseVersion.cmp(release, '1.19') >= 0
|
|
430
|
+
? {
|
|
431
|
+
place: {
|
|
432
|
+
children: {
|
|
433
|
+
template: {
|
|
434
|
+
children: {
|
|
435
|
+
template: {
|
|
436
|
+
properties: {
|
|
437
|
+
category: 'structure'
|
|
438
|
+
}
|
|
439
|
+
}
|
|
440
|
+
}
|
|
441
|
+
}
|
|
442
|
+
}
|
|
443
|
+
},
|
|
444
|
+
}
|
|
445
|
+
: {}),
|
|
415
446
|
playsound: Sound,
|
|
416
447
|
publish: {
|
|
417
448
|
permission: 4,
|
|
@@ -528,7 +559,7 @@ export function getPatch(release) {
|
|
|
528
559
|
* 2. `teleport <location: vec3>`
|
|
529
560
|
* 3. `teleport <targets: entity(multiple)> <...arguments>`
|
|
530
561
|
*
|
|
531
|
-
* It is impossible for Spyglass to differentiate between (1) and (3) when it
|
|
562
|
+
* It is impossible for Spyglass to differentiate between (1) and (3) when it encounters a single entity
|
|
532
563
|
* at the position of the first argument, due to its lack of ability to backtrack.
|
|
533
564
|
*
|
|
534
565
|
* Therefore, we have compromised to patch the trees to something like this:
|
|
@@ -553,6 +584,13 @@ export function getPatch(release) {
|
|
|
553
584
|
tell: {
|
|
554
585
|
permission: 0,
|
|
555
586
|
},
|
|
587
|
+
...(ReleaseVersion.cmp(release, '1.20.2') >= 0
|
|
588
|
+
? {
|
|
589
|
+
tick: {
|
|
590
|
+
permission: 3,
|
|
591
|
+
},
|
|
592
|
+
}
|
|
593
|
+
: {}),
|
|
556
594
|
tm: {
|
|
557
595
|
permission: 0,
|
|
558
596
|
},
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@spyglassmc/java-edition",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.4",
|
|
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.
|
|
22
|
-
"@spyglassmc/locales": "0.3.
|
|
23
|
-
"@spyglassmc/mcfunction": "0.2.
|
|
24
|
-
"@spyglassmc/mcdoc": "0.3.
|
|
25
|
-
"@spyglassmc/nbt": "0.3.
|
|
20
|
+
"@spyglassmc/core": "0.4.3",
|
|
21
|
+
"@spyglassmc/json": "0.3.4",
|
|
22
|
+
"@spyglassmc/locales": "0.3.3",
|
|
23
|
+
"@spyglassmc/mcfunction": "0.2.5",
|
|
24
|
+
"@spyglassmc/mcdoc": "0.3.4",
|
|
25
|
+
"@spyglassmc/nbt": "0.3.4"
|
|
26
26
|
},
|
|
27
27
|
"devDependencies": {
|
|
28
28
|
"fast-glob": "^3.2.5",
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
export declare const item_predicate: import("@spyglassmc/json/lib/checker/JsonChecker.js").JsonChecker;
|
|
2
|
-
export declare const block_predicate: import("@spyglassmc/json/lib/checker/JsonChecker.js").JsonChecker;
|
|
3
|
-
export declare const fluid_predicate: import("@spyglassmc/json/lib/checker/JsonChecker.js").JsonChecker;
|
|
4
|
-
export declare const location_predicate: import("@spyglassmc/json/lib/checker/JsonChecker.js").JsonChecker;
|
|
5
|
-
export declare const distance_predicate: import("@spyglassmc/json/lib/checker/JsonChecker.js").JsonChecker;
|
|
6
|
-
export declare const mob_effect_predicate: import("@spyglassmc/json/lib/checker/JsonChecker.js").JsonChecker;
|
|
7
|
-
export declare const statistic_predicate: import("@spyglassmc/json/lib/checker/JsonChecker.js").JsonChecker;
|
|
8
|
-
export declare const player_predicate: import("@spyglassmc/json/lib/checker/JsonChecker.js").JsonChecker;
|
|
9
|
-
export declare const entity_predicate: import("@spyglassmc/json/lib/checker/JsonChecker.js").JsonChecker;
|
|
10
|
-
export declare const damage_source_predicate: import("@spyglassmc/json/lib/checker/JsonChecker.js").JsonChecker;
|
|
11
|
-
export declare const damage_predicate: import("@spyglassmc/json/lib/checker/JsonChecker.js").JsonChecker;
|
|
12
|
-
export declare const criterion: import("@spyglassmc/json/lib/checker/JsonChecker.js").JsonChecker;
|
|
13
|
-
export declare const advancement: import("@spyglassmc/json/lib/checker/JsonChecker.js").JsonChecker;
|
|
14
|
-
//# sourceMappingURL=advancement.d.ts.map
|