@minecraft/server 1.1.0-beta.1.19.60-preview.26 → 1.1.0-beta.1.19.60-stable

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.
Files changed (4) hide show
  1. package/README.md +0 -2
  2. package/index.d.ts +111 -82
  3. package/package.json +1 -1
  4. package/tests.ts +47 -41
package/README.md CHANGED
@@ -2,8 +2,6 @@
2
2
 
3
3
  Contains many types related to manipulating a Minecraft world, including entities, blocks, dimensions, and more.
4
4
 
5
- ## **NOTE: This version of this module is still in pre-release. It may change or it may be removed in future releases.**
6
-
7
5
  See full documentation for this module here:
8
6
 
9
7
  https://learn.microsoft.com/en-us/minecraft/creator/scriptapi/@minecraft/server/@minecraft/server
package/index.d.ts CHANGED
@@ -7,7 +7,6 @@
7
7
  Copyright (c) Microsoft Corporation.
8
8
  ***************************************************************************** */
9
9
  /**
10
- * @beta
11
10
  * @packageDocumentation
12
11
  * Contains many types related to manipulating a Minecraft
13
12
  * world, including entities, blocks, dimensions, and more.
@@ -16,7 +15,7 @@
16
15
  * ```json
17
16
  * {
18
17
  * "module_name": "@minecraft/server",
19
- * "version": "1.1.0-internal.1.19.60-preview.26"
18
+ * "version": "1.0.0"
20
19
  * }
21
20
  * ```
22
21
  *
@@ -775,10 +774,10 @@ export class Block {
775
774
  * @throws This function can throw errors.
776
775
  * @example check_block_tags.js
777
776
  * ```typescript
778
- * import { world, BlockLocation } from "@minecraft/server";
777
+ * import { world } from "@minecraft/server";
779
778
  *
780
779
  * // Fetch the block
781
- * const block = world.getDimension("overworld").getBlock(new BlockLocation(1, 2, 3));
780
+ * const block = world.getDimension("overworld").getBlock({ x: 1, y: 2, z: 3 });
782
781
  *
783
782
  * console.log(`Block is dirt: ${block.hasTag("dirt")}`);
784
783
  * console.log(`Block is wood: ${block.hasTag("wood")}`);
@@ -1296,10 +1295,10 @@ export class BlockPermutation {
1296
1295
  * Returns `true` if the permutation has the tag, else `false`.
1297
1296
  * @example check_block_tags.js
1298
1297
  * ```typescript
1299
- * import { world, BlockLocation } from "@minecraft/server";
1298
+ * import { world } from "@minecraft/server";
1300
1299
  *
1301
1300
  * // Fetch the block
1302
- * const block = world.getDimension("overworld").getBlock(new BlockLocation(1, 2, 3));
1301
+ * const block = world.getDimension("overworld").getBlock({ x: 1, y: 2, z: 3 });
1303
1302
  * const blockPerm = block.getPermutation();
1304
1303
  *
1305
1304
  * console.log(`Block is dirt: ${blockPerm.hasTag("dirt")}`);
@@ -2670,37 +2669,39 @@ export class Dimension {
2670
2669
  * ```
2671
2670
  * @example createFireAndWaterExplosions.ts
2672
2671
  * ```typescript
2673
- * const explosionLoc = new mc.Location(targetLocation.x + 0.5, targetLocation.y + 0.5, targetLocation.z + 0.5);
2672
+ * const explosionLoc: mc.Vector3 = { x: targetLocation.x + 0.5, y: targetLocation.y + 0.5, z: targetLocation.z + 0.5 };
2673
+ *
2674
+ * const fireExplosionOptions = new mc.ExplosionOptions();
2674
2675
  *
2675
- * const fireExplosionOptions = new mc.ExplosionOptions();
2676
+ * // Explode with fire
2677
+ * fireExplosionOptions.causesFire = true;
2676
2678
  *
2677
- * // Explode with fire
2678
- * fireExplosionOptions.causesFire = true;
2679
+ * overworld.createExplosion(explosionLoc, 15, fireExplosionOptions);
2680
+ * const waterExplosionOptions = new mc.ExplosionOptions();
2679
2681
  *
2680
- * overworld.createExplosion(explosionLoc, 15, fireExplosionOptions);
2681
- * const waterExplosionOptions = new mc.ExplosionOptions();
2682
+ * // Explode in water
2683
+ * waterExplosionOptions.allowUnderwater = true;
2682
2684
  *
2683
- * // Explode in water
2684
- * waterExplosionOptions.allowUnderwater = true;
2685
+ * const belowWaterLoc: mc.Vector3 = { x: targetLocation.x + 3, y: targetLocation.y + 1, z: targetLocation.z + 3 };
2685
2686
  *
2686
- * const belowWaterLoc = new mc.Location(targetLocation.x + 3, targetLocation.y + 1, targetLocation.z + 3);
2687
+ * overworld.createExplosion(belowWaterLoc, 10, waterExplosionOptions);
2687
2688
  *
2688
- * overworld.createExplosion(belowWaterLoc, 10, waterExplosionOptions);
2689
2689
  * ```
2690
2690
  * @example createNoBlockExplosion.ts
2691
2691
  * ```typescript
2692
- * const explosionOptions = new mc.ExplosionOptions();
2692
+ * const explosionOptions = new mc.ExplosionOptions();
2693
2693
  *
2694
- * // Start by exploding without breaking blocks
2695
- * explosionOptions.breaksBlocks = false;
2694
+ * // Start by exploding without breaking blocks
2695
+ * explosionOptions.breaksBlocks = false;
2696
2696
  *
2697
- * const explodeNoBlocksLoc = new mc.Location(
2698
- * Math.floor(targetLocation.x + 1),
2699
- * Math.floor(targetLocation.y + 2),
2700
- * Math.floor(targetLocation.z + 1)
2701
- * );
2697
+ * const explodeNoBlocksLoc: mc.Vector3 = {
2698
+ * x: Math.floor(targetLocation.x + 1),
2699
+ * y: Math.floor(targetLocation.y + 2),
2700
+ * z: Math.floor(targetLocation.z + 1),
2701
+ * };
2702
+ *
2703
+ * overworld.createExplosion(explodeNoBlocksLoc, 15, explosionOptions);
2702
2704
  *
2703
- * overworld.createExplosion(explodeNoBlocksLoc, 15, explosionOptions);
2704
2705
  * ```
2705
2706
  */
2706
2707
  createExplosion(location: Location, radius: number, explosionOptions?: ExplosionOptions): void;
@@ -2834,20 +2835,23 @@ export class Dimension {
2834
2835
  * ```
2835
2836
  * @example quickFoxLazyDog.ts
2836
2837
  * ```typescript
2837
- * const fox = overworld.spawnEntity(
2838
- * "minecraft:fox",
2839
- * new mc.BlockLocation(targetLocation.x + 1, targetLocation.y + 2, targetLocation.z + 3)
2840
- * );
2841
- * fox.addEffect(mc.MinecraftEffectTypes.speed, 10, 20);
2842
- * log("Created a fox.");
2838
+ * const fox = overworld.spawnEntity("minecraft:fox", {
2839
+ * x: targetLocation.x + 1,
2840
+ * y: targetLocation.y + 2,
2841
+ * z: targetLocation.z + 3,
2842
+ * });
2843
+ * fox.addEffect(mc.MinecraftEffectTypes.speed, 10, 20);
2844
+ * log("Created a fox.");
2845
+ *
2846
+ * const wolf = overworld.spawnEntity("minecraft:wolf", {
2847
+ * x: targetLocation.x + 4,
2848
+ * y: targetLocation.y + 2,
2849
+ * z: targetLocation.z + 3,
2850
+ * });
2851
+ * wolf.addEffect(mc.MinecraftEffectTypes.slowness, 10, 20);
2852
+ * wolf.isSneaking = true;
2853
+ * log("Created a sneaking wolf.", 1);
2843
2854
  *
2844
- * const wolf = overworld.spawnEntity(
2845
- * "minecraft:wolf",
2846
- * new mc.BlockLocation(targetLocation.x + 4, targetLocation.y + 2, targetLocation.z + 3)
2847
- * );
2848
- * wolf.addEffect(mc.MinecraftEffectTypes.slowness, 10, 20);
2849
- * wolf.isSneaking = true;
2850
- * log("Created a sneaking wolf.", 1);
2851
2855
  * ```
2852
2856
  * @example trapTick.ts
2853
2857
  * ```typescript
@@ -2877,17 +2881,18 @@ export class Dimension {
2877
2881
  * @throws This function can throw errors.
2878
2882
  * @example itemStacks.ts
2879
2883
  * ```typescript
2880
- * const oneItemLoc = new mc.BlockLocation(3, 2, 1);
2881
- * const fiveItemsLoc = new mc.BlockLocation(1, 2, 1);
2882
- * const diamondPickaxeLoc = new mc.BlockLocation(2, 2, 4);
2884
+ * const oneItemLoc: mc.Vector3 = { x: 3, y: 2, z: 1 };
2885
+ * const fiveItemsLoc: mc.Vector3 = { x: 1, y: 2, z: 1 };
2886
+ * const diamondPickaxeLoc: mc.Vector3 = { x: 2, y: 2, z: 4 };
2887
+ *
2888
+ * const oneEmerald = new mc.ItemStack(mc.MinecraftItemTypes.emerald, 1, 0);
2889
+ * const onePickaxe = new mc.ItemStack(mc.MinecraftItemTypes.diamondPickaxe, 1, 0);
2890
+ * const fiveEmeralds = new mc.ItemStack(mc.MinecraftItemTypes.emerald, 5, 0);
2883
2891
  *
2884
- * const oneEmerald = new mc.ItemStack(mc.MinecraftItemTypes.emerald, 1, 0);
2885
- * const onePickaxe = new mc.ItemStack(mc.MinecraftItemTypes.diamondPickaxe, 1, 0);
2886
- * const fiveEmeralds = new mc.ItemStack(mc.MinecraftItemTypes.emerald, 5, 0);
2892
+ * overworld.spawnItem(oneEmerald, oneItemLoc);
2893
+ * overworld.spawnItem(fiveEmeralds, fiveItemsLoc);
2894
+ * overworld.spawnItem(onePickaxe, diamondPickaxeLoc);
2887
2895
  *
2888
- * overworld.spawnItem(oneEmerald, oneItemLoc);
2889
- * overworld.spawnItem(fiveEmeralds, fiveItemsLoc);
2890
- * overworld.spawnItem(onePickaxe, diamondPickaxeLoc);
2891
2896
  * ```
2892
2897
  * @example spawnItem.ts
2893
2898
  * ```typescript
@@ -3267,29 +3272,34 @@ export class Entity {
3267
3272
  * @example addEffect.js
3268
3273
  * ```typescript
3269
3274
  * const villagerId = "minecraft:villager_v2<minecraft:ageable_grow_up>";
3270
- * const villagerLoc = new BlockLocation(1, 2, 1);
3275
+ * const villagerLoc: mc.Vector3 = { x: 1, y: 2, z: 1 };
3271
3276
  * const villager = test.spawn(villagerId, villagerLoc);
3272
3277
  * const duration = 20;
3273
3278
  *
3274
3279
  * villager.addEffect(MinecraftEffectTypes.poison, duration, 1);
3275
3280
  *
3281
+ *
3276
3282
  * ```
3277
3283
  * @example quickFoxLazyDog.ts
3278
3284
  * ```typescript
3279
- * const fox = overworld.spawnEntity(
3280
- * "minecraft:fox",
3281
- * new mc.BlockLocation(targetLocation.x + 1, targetLocation.y + 2, targetLocation.z + 3)
3282
- * );
3283
- * fox.addEffect(mc.MinecraftEffectTypes.speed, 10, 20);
3284
- * log("Created a fox.");
3285
+ * const fox = overworld.spawnEntity("minecraft:fox", {
3286
+ * x: targetLocation.x + 1,
3287
+ * y: targetLocation.y + 2,
3288
+ * z: targetLocation.z + 3,
3289
+ * });
3290
+ * fox.addEffect(mc.MinecraftEffectTypes.speed, 10, 20);
3291
+ * log("Created a fox.");
3292
+ *
3293
+ * const wolf = overworld.spawnEntity("minecraft:wolf", {
3294
+ * x: targetLocation.x + 4,
3295
+ * y: targetLocation.y + 2,
3296
+ * z: targetLocation.z + 3,
3297
+ * });
3298
+ * wolf.addEffect(mc.MinecraftEffectTypes.slowness, 10, 20);
3299
+ * wolf.isSneaking = true;
3300
+ * log("Created a sneaking wolf.", 1);
3301
+ *
3285
3302
  *
3286
- * const wolf = overworld.spawnEntity(
3287
- * "minecraft:wolf",
3288
- * new mc.BlockLocation(targetLocation.x + 4, targetLocation.y + 2, targetLocation.z + 3)
3289
- * );
3290
- * wolf.addEffect(mc.MinecraftEffectTypes.slowness, 10, 20);
3291
- * wolf.isSneaking = true;
3292
- * log("Created a sneaking wolf.", 1);
3293
3303
  * ```
3294
3304
  */
3295
3305
  addEffect(effectType: EffectType, duration: number, amplifier?: number, showParticles?: boolean): void;
@@ -13242,24 +13252,36 @@ export class MinecraftItemTypes {
13242
13252
  export class MolangVariableMap {
13243
13253
  /**
13244
13254
  * @remarks
13245
- * Sets a Molang rendering/animation variable with the value of
13246
- * a Red/Green/Blue color.
13255
+ * Adds the following variables to Molang:
13256
+ * - `<variable_name>.r` - Red color value [0-1]
13257
+ * - `<variable_name>.g` - Green color value [0-1]
13258
+ * - `<variable_name>.b` - Blue color value [0-1]
13247
13259
  * @param variableName
13248
13260
  * @param color
13249
13261
  */
13250
13262
  setColorRGB(variableName: string, color: Color): MolangVariableMap;
13251
13263
  /**
13252
13264
  * @remarks
13253
- * Sets a Molang rendering/animation variable with the value of
13254
- * a Red/Green/Blue color + Alpha (transparency) value.
13265
+ * Adds the following variables to Molang:
13266
+ * - `<variable_name>.r` - Red color value [0-1]
13267
+ * - `<variable_name>.g` - Green color value [0-1]
13268
+ * - `<variable_name>.b` - Blue color value [0-1]
13269
+ * - `<variable_name>.a` - Alpha (transparency) color value
13270
+ * [0-1]
13255
13271
  * @param variableName
13256
13272
  * @param color
13257
13273
  */
13258
13274
  setColorRGBA(variableName: string, color: Color): MolangVariableMap;
13259
13275
  /**
13260
13276
  * @remarks
13261
- * Sets the speed and direction for a Molang (rendering and
13262
- * animation) variable.
13277
+ * Adds the following variables to Molang:
13278
+ * - `<variable_name>.speed` - Speed number provided
13279
+ * - `<variable_name>.direction_x` - X value from the {@link
13280
+ * Vector3} provided
13281
+ * - `<variable_name>.direction_y` - Y value from the {@link
13282
+ * Vector3} provided
13283
+ * - `<variable_name>.direction_z` - Z value from the {@link
13284
+ * Vector3} provided
13263
13285
  * @param variableName
13264
13286
  * @param speed
13265
13287
  * @param direction
@@ -13267,8 +13289,13 @@ export class MolangVariableMap {
13267
13289
  setSpeedAndDirection(variableName: string, speed: number, direction: Vector): MolangVariableMap;
13268
13290
  /**
13269
13291
  * @remarks
13270
- * Sets a vector value for a Molang (rendering and animation)
13271
- * variable.
13292
+ * Adds the following variables to Molang:
13293
+ * - `<variable_name>.x` - X value from the {@link Vector3}
13294
+ * provided
13295
+ * - `<variable_name>.y` - Y value from the {@link Vector3}
13296
+ * provided
13297
+ * - `<variable_name>.z` - Z value from the {@link Vector3}
13298
+ * provided
13272
13299
  * @param variableName
13273
13300
  * @param vector
13274
13301
  */
@@ -13352,21 +13379,23 @@ export class PistonActivateEventSignal {
13352
13379
  * @param callback
13353
13380
  * @example pistonEvent.ts
13354
13381
  * ```typescript
13355
- * let canceled = false;
13382
+ * let canceled = false;
13383
+ *
13384
+ * const pistonLoc: mc.Vector3 = {
13385
+ * x: Math.floor(targetLocation.x) + 1,
13386
+ * y: Math.floor(targetLocation.y) + 2,
13387
+ * z: Math.floor(targetLocation.z) + 1,
13388
+ * };
13389
+ *
13390
+ * const pistonCallback = mc.world.events.beforePistonActivate.subscribe((pistonEvent: mc.BeforePistonActivateEvent) => {
13391
+ * if (pistonEvent.piston.location.equals(pistonLoc)) {
13392
+ * log("Cancelling piston event");
13393
+ * pistonEvent.cancel = true;
13394
+ * canceled = true;
13395
+ * }
13396
+ * });
13356
13397
  *
13357
- * const pistonLoc = new mc.BlockLocation(
13358
- * Math.floor(targetLocation.x) + 1,
13359
- * Math.floor(targetLocation.y) + 2,
13360
- * Math.floor(targetLocation.z) + 1
13361
- * );
13362
13398
  *
13363
- * const pistonCallback = mc.world.events.beforePistonActivate.subscribe((pistonEvent: mc.BeforePistonActivateEvent) => {
13364
- * if (pistonEvent.piston.location.equals(pistonLoc)) {
13365
- * log("Cancelling piston event");
13366
- * pistonEvent.cancel = true;
13367
- * canceled = true;
13368
- * }
13369
- * });
13370
13399
  * ```
13371
13400
  */
13372
13401
  subscribe(callback: (arg: PistonActivateEvent) => void): (arg: PistonActivateEvent) => void;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@minecraft/server",
3
- "version": "1.1.0-beta.1.19.60-preview.26",
3
+ "version": "1.1.0-beta.1.19.60-stable",
4
4
  "description": "",
5
5
  "contributors": [
6
6
  {
package/tests.ts CHANGED
@@ -1,21 +1,21 @@
1
1
  /* eslint-disable @typescript-eslint/no-unused-vars */
2
2
  import * as mc from '@minecraft/server';
3
3
 
4
- export function createExplosion(log: (message: string, status?: number) => void, targetLocation: mc.Location) {
4
+ export function createExplosion(log: (message: string, status?: number) => void, targetLocation: mc.Vector3) {
5
5
  const overworld = mc.world.getDimension('overworld');
6
6
 
7
7
  log('Creating an explosion of radius 10.');
8
8
  overworld.createExplosion(targetLocation, 10);
9
9
  }
10
10
 
11
- export function createNoBlockExplosion(log: (message: string, status?: number) => void, targetLocation: mc.Location) {
11
+ export function createNoBlockExplosion(log: (message: string, status?: number) => void, targetLocation: mc.Vector3) {
12
12
  const overworld = mc.world.getDimension('overworld');
13
13
 
14
- const explodeNoBlocksLoc = new mc.Location(
15
- Math.floor(targetLocation.x + 1),
16
- Math.floor(targetLocation.y + 2),
17
- Math.floor(targetLocation.z + 1),
18
- );
14
+ const explodeNoBlocksLoc = {
15
+ x: Math.floor(targetLocation.x + 1),
16
+ y: Math.floor(targetLocation.y + 2),
17
+ z: Math.floor(targetLocation.z + 1),
18
+ };
19
19
 
20
20
  log('Creating an explosion of radius 15 that does not break blocks.');
21
21
  overworld.createExplosion(explodeNoBlocksLoc, 15, { breaksBlocks: false });
@@ -23,27 +23,31 @@ export function createNoBlockExplosion(log: (message: string, status?: number) =
23
23
 
24
24
  export function createFireAndWaterExplosions(
25
25
  log: (message: string, status?: number) => void,
26
- targetLocation: mc.Location,
26
+ targetLocation: mc.Vector3,
27
27
  ) {
28
28
  const overworld = mc.world.getDimension('overworld');
29
29
 
30
- const explosionLoc = new mc.Location(targetLocation.x + 0.5, targetLocation.y + 0.5, targetLocation.z + 0.5);
30
+ const explosionLoc: mc.Vector3 = {
31
+ x: targetLocation.x + 0.5,
32
+ y: targetLocation.y + 0.5,
33
+ z: targetLocation.z + 0.5,
34
+ };
31
35
 
32
36
  log('Creating an explosion of radius 15 that causes fire.');
33
37
  overworld.createExplosion(explosionLoc, 15, { causesFire: true });
34
38
 
35
- const belowWaterLoc = new mc.Location(targetLocation.x + 3, targetLocation.y + 1, targetLocation.z + 3);
39
+ const belowWaterLoc: mc.Vector3 = { x: targetLocation.x + 3, y: targetLocation.y + 1, z: targetLocation.z + 3 };
36
40
 
37
41
  log('Creating an explosion of radius 10 that can go underwater.');
38
42
  overworld.createExplosion(belowWaterLoc, 10, { allowUnderwater: true });
39
43
  }
40
44
 
41
- export function itemStacks(log: (message: string, status?: number) => void, targetLocation: mc.Location) {
45
+ export function itemStacks(log: (message: string, status?: number) => void, targetLocation: mc.Vector3) {
42
46
  const overworld = mc.world.getDimension('overworld');
43
47
 
44
- const oneItemLoc = new mc.BlockLocation(targetLocation.x + targetLocation.y + 3, 2, targetLocation.z + 1);
45
- const fiveItemsLoc = new mc.BlockLocation(targetLocation.x + 1, targetLocation.y + 2, targetLocation.z + 1);
46
- const diamondPickaxeLoc = new mc.BlockLocation(targetLocation.x + 2, targetLocation.y + 2, targetLocation.z + 4);
48
+ const oneItemLoc: mc.Vector3 = { x: targetLocation.x + targetLocation.y + 3, y: 2, z: targetLocation.z + 1 };
49
+ const fiveItemsLoc: mc.Vector3 = { x: targetLocation.x + 1, y: targetLocation.y + 2, z: targetLocation.z + 1 };
50
+ const diamondPickaxeLoc: mc.Vector3 = { x: targetLocation.x + 2, y: targetLocation.y + 2, z: targetLocation.z + 4 };
47
51
 
48
52
  const oneEmerald = new mc.ItemStack(mc.MinecraftItemTypes.emerald, 1, 0);
49
53
  const onePickaxe = new mc.ItemStack(mc.MinecraftItemTypes.diamondPickaxe, 1, 0);
@@ -59,26 +63,28 @@ export function itemStacks(log: (message: string, status?: number) => void, targ
59
63
  overworld.spawnItem(onePickaxe, diamondPickaxeLoc);
60
64
  }
61
65
 
62
- export function quickFoxLazyDog(log: (message: string, status?: number) => void, targetLocation: mc.Location) {
66
+ export function quickFoxLazyDog(log: (message: string, status?: number) => void, targetLocation: mc.Vector3) {
63
67
  const overworld = mc.world.getDimension('overworld');
64
68
 
65
- const fox = overworld.spawnEntity(
66
- 'minecraft:fox',
67
- new mc.BlockLocation(targetLocation.x + 1, targetLocation.y + 2, targetLocation.z + 3),
68
- );
69
+ const fox = overworld.spawnEntity('minecraft:fox', {
70
+ x: targetLocation.x + 1,
71
+ y: targetLocation.y + 2,
72
+ z: targetLocation.z + 3,
73
+ });
69
74
  fox.addEffect(mc.MinecraftEffectTypes.speed, 10, 20);
70
75
  log('Created a fox.');
71
76
 
72
- const wolf = overworld.spawnEntity(
73
- 'minecraft:wolf',
74
- new mc.BlockLocation(targetLocation.x + 4, targetLocation.y + 2, targetLocation.z + 3),
75
- );
77
+ const wolf = overworld.spawnEntity('minecraft:wolf', {
78
+ x: targetLocation.x + 4,
79
+ y: targetLocation.y + 2,
80
+ z: targetLocation.z + 3,
81
+ });
76
82
  wolf.addEffect(mc.MinecraftEffectTypes.slowness, 10, 20);
77
83
  wolf.isSneaking = true;
78
84
  log('Created a sneaking wolf.', 1);
79
85
  }
80
86
 
81
- export function runEntityCreatedEvent(log: (message: string, status?: number) => void, targetLocation: mc.Location) {
87
+ export function runEntityCreatedEvent(log: (message: string, status?: number) => void, targetLocation: mc.Vector3) {
82
88
  // register a new function that is called when a new entity is created.
83
89
  mc.world.events.entityCreate.subscribe((entityEvent: mc.EntityCreateEvent) => {
84
90
  if (entityEvent && entityEvent.entity) {
@@ -89,19 +95,19 @@ export function runEntityCreatedEvent(log: (message: string, status?: number) =>
89
95
  });
90
96
  }
91
97
 
92
- export function createOldHorse(log: (message: string, status?: number) => void, targetLocation: mc.Location) {
98
+ export function createOldHorse(log: (message: string, status?: number) => void, targetLocation: mc.Vector3) {
93
99
  const overworld = mc.world.getDimension('overworld');
94
100
 
95
101
  log("Create a horse and triggering the 'ageable_grow_up' event, ensuring the horse is created as an adult");
96
102
  overworld.spawnEntity('minecraft:horse<minecraft:ageable_grow_up>', targetLocation);
97
103
  }
98
104
 
99
- export function pistonEvent(log: (message: string, status?: number) => void, targetLocation: mc.Location) {
100
- const pistonLoc = new mc.BlockLocation(
101
- Math.floor(targetLocation.x) + 1,
102
- Math.floor(targetLocation.y) + 2,
103
- Math.floor(targetLocation.z) + 1,
104
- );
105
+ export function pistonEvent(log: (message: string, status?: number) => void, targetLocation: mc.Vector3) {
106
+ const pistonLoc: mc.Vector3 = {
107
+ x: Math.floor(targetLocation.x) + 1,
108
+ y: Math.floor(targetLocation.y) + 2,
109
+ z: Math.floor(targetLocation.z) + 1,
110
+ };
105
111
 
106
112
  mc.world.events.beforePistonActivate.subscribe((pistonEvent: mc.BeforePistonActivateEvent) => {
107
113
  if (pistonEvent.piston.location.equals(pistonLoc)) {
@@ -111,7 +117,7 @@ export function pistonEvent(log: (message: string, status?: number) => void, tar
111
117
  });
112
118
  }
113
119
 
114
- export function spawnItem(log: (message: string, status?: number) => void, targetLocation: mc.Location) {
120
+ export function spawnItem(log: (message: string, status?: number) => void, targetLocation: mc.Vector3) {
115
121
  const featherItem = new mc.ItemStack(mc.MinecraftItemTypes.feather, 1, 0);
116
122
 
117
123
  overworld.spawnItem(featherItem, targetLocation);
@@ -120,7 +126,7 @@ export function spawnItem(log: (message: string, status?: number) => void, targe
120
126
 
121
127
  export function testThatEntityIsFeatherItem(
122
128
  log: (message: string, status?: number) => void,
123
- targetLocation: mc.Location,
129
+ targetLocation: mc.Vector3,
124
130
  ) {
125
131
  const overworld = mc.world.getDimension('overworld');
126
132
 
@@ -161,13 +167,13 @@ export default class SampleManager {
161
167
  tickCount = 0;
162
168
 
163
169
  _availableFuncs: {
164
- [name: string]: Array<(log: (message: string, status?: number) => void, location: mc.Location) => void>;
170
+ [name: string]: Array<(log: (message: string, status?: number) => void, location: mc.Vector3) => void>;
165
171
  };
166
172
 
167
173
  pendingFuncs: Array<{
168
174
  name: string;
169
- func: (log: (message: string, status?: number) => void, location: mc.Location) => void;
170
- location: mc.Location;
175
+ func: (log: (message: string, status?: number) => void, location: mc.Vector3) => void;
176
+ location: mc.Vector3;
171
177
  }> = [];
172
178
 
173
179
  gameplayLogger(message: string, status?: number) {
@@ -194,7 +200,7 @@ export default class SampleManager {
194
200
  }
195
201
 
196
202
  const nearbyBlockLoc = nearbyBlock.location;
197
- const nearbyLoc = new mc.Location(nearbyBlockLoc.x, nearbyBlockLoc.y + 1, nearbyBlockLoc.z);
203
+ const nearbyLoc: mc.Vector3 = { x: nearbyBlockLoc.x, y: nearbyBlockLoc.y + 1, z: nearbyBlockLoc.z };
198
204
 
199
205
  const sampleId = message.substring(5).trim();
200
206
 
@@ -224,8 +230,8 @@ export default class SampleManager {
224
230
 
225
231
  runSample(
226
232
  sampleId: string,
227
- snippetFunctions: Array<(log: (message: string, status?: number) => void, location: mc.Location) => void>,
228
- targetLocation: mc.Location,
233
+ snippetFunctions: Array<(log: (message: string, status?: number) => void, location: mc.Vector3) => void>,
234
+ targetLocation: mc.Vector3,
229
235
  ) {
230
236
  for (let i = snippetFunctions.length - 1; i >= 0; i--) {
231
237
  this.pendingFuncs.push({ name: sampleId, func: snippetFunctions[i], location: targetLocation });
@@ -256,7 +262,7 @@ export default class SampleManager {
256
262
  }
257
263
 
258
264
  registerSamples(sampleSet: {
259
- [name: string]: Array<(log: (message: string, status?: number) => void, location: mc.Location) => void>;
265
+ [name: string]: Array<(log: (message: string, status?: number) => void, location: mc.Vector3) => void>;
260
266
  }) {
261
267
  for (const sampleKey in sampleSet) {
262
268
  if (sampleKey.length > 1 && sampleSet[sampleKey]) {
@@ -267,7 +273,7 @@ export default class SampleManager {
267
273
  }
268
274
 
269
275
  const mojangMinecraftFuncs: {
270
- [name: string]: Array<(log: (message: string, status?: number) => void, location: mc.Location) => void>;
276
+ [name: string]: Array<(log: (message: string, status?: number) => void, location: mc.Vector3) => void>;
271
277
  } = {
272
278
  runEntityCreatedEvent: [runEntityCreatedEvent, createOldHorse],
273
279
  createOldHorse: [createOldHorse],