Script API - v1.21.90.25
    Preparing search index...

    Class BlockPermutation

    Contains the combination of type BlockType and properties (also sometimes called block state) which describe a block (but does not belong to a specific Block).

    import { world, BlockPermutation, BlockSignComponent, BlockComponentTypes, DimensionLocation } from "@minecraft/server";
    import { MinecraftBlockTypes } from "@minecraft/vanilla-data";

    function addTranslatedSign(log: (message: string, status?: number) => void, targetLocation: DimensionLocation) {
    const players = world.getPlayers();

    const dim = players[0].dimension;

    const signBlock = dim.getBlock(targetLocation);

    if (!signBlock) {
    log("Could not find a block at specified location.");
    return -1;
    }
    const signPerm = BlockPermutation.resolve(MinecraftBlockTypes.StandingSign, { ground_sign_direction: 8 });

    signBlock.setPermutation(signPerm);

    const signComponent = signBlock.getComponent(BlockComponentTypes.Sign) as BlockSignComponent;

    signComponent?.setText({ translate: "item.skull.player.name", with: [players[0].name] });
    }
    Index

    Constructors

    Properties

    type: BlockType

    The BlockType that the permutation has.

    Methods

    • Parameters

      • liquidType: Water

        The type of liquid this function should be called for.

      Returns boolean

      Whether this block is removed when touched by liquid.

      Returns whether this block is removed when touched by liquid.

      This function can throw errors.

    • Parameters

      • liquidType: Water

        The type of liquid this function should be called for.

      Returns boolean

      Whether this block can have a liquid placed over it.

      Returns whether this block can have a liquid placed over it, i.e. be waterlogged.

      This function can throw errors.

    • Returns Record<string, string | number | boolean>

      Returns the list of all of the block states that the permutation has.

      Returns all available block states associated with this block.

    • Parameters

      • Optionalamount: number

        Number of instances of this block to place in the prototype item stack. Defaults to: 1

      Returns ItemStack

      Retrieves a prototype item stack based on this block permutation that can be used with item Container/ContainerSlot APIs.

    • Returns string[]

      Creates a copy of the permutation.

    • Parameters

      • tag: string

      Returns boolean

      Returns true if the permutation has the tag, else false.

      Checks to see if the permutation has a specific tag.

      import { DimensionLocation } from "@minecraft/server";

      function checkBlockTags(log: (message: string, status?: number) => void, targetLocation: DimensionLocation) {
      // Fetch the block
      const block = targetLocation.dimension.getBlock(targetLocation);

      // check that the block is loaded
      if (block) {
      log(`Block is dirt: ${block.hasTag("dirt")}`);
      log(`Block is wood: ${block.hasTag("wood")}`);
      log(`Block is stone: ${block.hasTag("stone")}`);
      }
      }
    • Parameters

      • liquidType: Water

        The type of liquid this function should be called for.

      Returns boolean

      Whether this block stops liquid from flowing.

      Returns whether this block stops liquid from flowing.

      This function can throw errors.

    • Parameters

      • liquidType: Water

        The type of liquid this function should be called for.

      Returns boolean

      Whether this block is removed and spawns its item when touched by liquid.

      Returns whether this block is removed and spawns its item when touched by liquid.

      This function can throw errors.

    • Type Parameters

      Parameters

      • blockName: T

        An optional set of states to compare against.

      • Optionalstates: BlockStateArg<T>

      Returns boolean

      Returns a boolean whether a specified permutation matches this permutation. If states is not specified, matches checks against the set of types more broadly.

      // Script by WavePlayz

      import { world } from "@minecraft/server";

      /**
      * Function to check if a given block is red wool
      * @param {import('@minecraft/server').Block} block
      * @returns true if a given block is red wool
      */
      function isRedWool(block) {
      // Define the type id of block we are checking for
      let typeId = "wool";

      // Define the block state we are looking for
      // In this case, we want the color to be red
      let states = { color: "red" };

      // Check if the block matches the specified type and states
      // The 'matches' method returns true if the block is of the specified type and has the specified states
      return block.matches(typeId, states);
      }
    • Type Parameters

      Parameters

      • blockName: T

        Identifier of the block to check.

      • Optionalstates: BlockStateArg<T>

      Returns BlockPermutation

      Given a type identifier and an optional set of properties, will return a BlockPermutation object that is usable in other block APIs (e.g., block.setPermutation)

      This function can throw errors.

      import { BlockPermutation, DimensionLocation } from "@minecraft/server";
      import { Vector3Utils } from "@minecraft/math";
      import { MinecraftBlockTypes } from "@minecraft/vanilla-data";

      function addBlockColorCube(targetLocation: DimensionLocation) {
      const allWoolBlocks: string[] = [
      MinecraftBlockTypes.WhiteWool,
      MinecraftBlockTypes.OrangeWool,
      MinecraftBlockTypes.MagentaWool,
      MinecraftBlockTypes.LightBlueWool,
      MinecraftBlockTypes.YellowWool,
      MinecraftBlockTypes.LimeWool,
      MinecraftBlockTypes.PinkWool,
      MinecraftBlockTypes.GrayWool,
      MinecraftBlockTypes.LightGrayWool,
      MinecraftBlockTypes.CyanWool,
      MinecraftBlockTypes.PurpleWool,
      MinecraftBlockTypes.BlueWool,
      MinecraftBlockTypes.BrownWool,
      MinecraftBlockTypes.GreenWool,
      MinecraftBlockTypes.RedWool,
      MinecraftBlockTypes.BlackWool,
      ];

      const cubeDim = 7;

      let colorIndex = 0;

      for (let x = 0; x <= cubeDim; x++) {
      for (let y = 0; y <= cubeDim; y++) {
      for (let z = 0; z <= cubeDim; z++) {
      colorIndex++;
      targetLocation.dimension
      .getBlock(Vector3Utils.add(targetLocation, { x, y, z }))
      ?.setPermutation(BlockPermutation.resolve(allWoolBlocks[colorIndex % allWoolBlocks.length]));
      }
      }
      }
      }