@minecraft/creator-tools
Version:
Minecraft Creator Tools command line and libraries.
56 lines (46 loc) • 2.57 kB
text/typescript
import { DimensionLocation, EntityQueryOptions } from "@minecraft/server";
/**
* Amongst a set of entities, uses entity query to find specific entities and bounce them with applyKnockback.
* @param {(message: string, status?: number) => void} log: Logger function. If status is positive, test is a success. If status is negative, test is a failure.
* @param {DimensionLocation} targetLocation Location to center this sample code around.
* @see https://learn.microsoft.com/minecraft/creator/scriptapi/minecraft/server/dimension#getentities
* @see https://learn.microsoft.com/minecraft/creator/scriptapi/minecraft/server/EntityQueryOptions
* @see https://learn.microsoft.com/minecraft/creator/scriptapi/minecraft/server/entity#applyknockback
*/
export function bounceSkeletons(log: (message: string, status?: number) => void, targetLocation: DimensionLocation) {
const mobs = ["creeper", "skeleton", "sheep"];
// create some sample mob data
for (let i = 0; i < 10; i++) {
targetLocation.dimension.spawnEntity(mobs[i % mobs.length], targetLocation);
}
const eqo: EntityQueryOptions = {
type: "skeleton",
};
for (const entity of targetLocation.dimension.getEntities(eqo)) {
entity.applyKnockback({ x: 0, z: 1}, 1);
}
}
/**
* Amongst a set of entities, uses entity query to find specific entities based on a tag.
* @param {(message: string, status?: number) => void} log: Logger function. If status is positive, test is a success. If status is negative, test is a failure.
* @param {DimensionLocation} targetLocation Location to center this sample code around.
* @see https://learn.microsoft.com/minecraft/creator/scriptapi/minecraft/server/dimension#getentities
* @see https://learn.microsoft.com/minecraft/creator/scriptapi/minecraft/server/EntityQueryOptions
* @see https://learn.microsoft.com/minecraft/creator/scriptapi/minecraft/server/entity#kill
* @see https://learn.microsoft.com/minecraft/creator/scriptapi/minecraft/server/entity#addtag
*/
export function tagsQuery(log: (message: string, status?: number) => void, targetLocation: DimensionLocation) {
const mobs = ["creeper", "skeleton", "sheep"];
// create some sample mob data
for (let i = 0; i < 10; i++) {
const mobTypeId = mobs[i % mobs.length];
const entity = targetLocation.dimension.spawnEntity(mobTypeId, targetLocation);
entity.addTag("mobparty." + mobTypeId);
}
const eqo: EntityQueryOptions = {
tags: ["mobparty.skeleton"],
};
for (const entity of targetLocation.dimension.getEntities(eqo)) {
entity.kill();
}
}