类 BlockSignComponent实验性

Represents a block that can display text on it.

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

function addSign(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(`Basic sign!\nThis is green on the front.`);
}
import { BlockPermutation, BlockSignComponent, SignSide, DyeColor, BlockComponentTypes, DimensionLocation } from "@minecraft/server";
import { MinecraftBlockTypes } from "@minecraft/vanilla-data";

function addTwoSidedSign(log: (message: string, status?: number) => void, targetLocation: DimensionLocation) {
const signBlock = targetLocation.dimension.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;

if (signComponent) {
signComponent.setText(`Party Sign!\nThis is green on the front.`);
signComponent.setText(`Party Sign!\nThis is red on the back.`, SignSide.Back);
signComponent.setTextDyeColor(DyeColor.Green);
signComponent.setTextDyeColor(DyeColor.Red, SignSide.Back);

// players cannot edit sign!
signComponent.setWaxed(true);
} else {
log("Could not find sign component.");
}
}
import { BlockSignComponent, BlockComponentTypes, DimensionLocation, RawMessage, RawText } from "@minecraft/server";

function updateSignText(targetLocation: DimensionLocation) {
const block = targetLocation.dimension.getBlock(targetLocation);
if (!block) {
console.warn("Could not find a block at specified location.");
return;
}

const sign = block.getComponent(BlockComponentTypes.Sign) as BlockSignComponent;
if (sign) {
// RawMessage
const helloWorldMessage: RawMessage = { text: "Hello World" };
sign.setText(helloWorldMessage);

// RawText
const helloWorldText: RawText = { rawtext: [{ text: "Hello World" }] };
sign.setText(helloWorldText);

// Regular string
sign.setText("Hello World");
} else {
console.warn("Could not find a sign component on the 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] });
}

层级 (查看完整内容)

属性

block: Block

Block instance that this component pertains to.

isWaxed: boolean

Whether or not players can edit the sign. This happens if a sign has had a honeycomb used on it or setWaxed was called on the sign.

This property can throw when used.

typeId: string

Identifier of the component.

componentId: "minecraft:sign" = 'minecraft:sign'

方法

  • 实验性

    参数

    • 可选side: SignSide

      The side of the sign to read the message from. If not provided, this will return the message from the front side of the sign.

    返回 RawText

    Returns the RawText of the sign if setText was called with a RawMessage or a RawText object, otherwise returns undefined.

    This function can throw errors.

  • 实验性

    参数

    • 可选side: SignSide

      The side of the sign to read the message from. If not provided, this will return the message from the front side of the sign.

    返回 string

    Returns the text of the sign if setText was called with a string, otherwise returns undefined.

    This function can throw errors.

  • 实验性

    参数

    • 可选side: SignSide

      The side of the sign to read the dye from. If not provided, this will return the dye on the front side of the sign.

    返回 DyeColor

    Gets the dye that is on the text or undefined if the sign has not been dyed.

    This function can throw errors.

  • 实验性

    返回 boolean

    Whether the component is valid.

    Returns whether the component is valid. A component is considered valid if its owner is valid, in addition to any addition to any additional validation required by the component.

  • 实验性

    参数

    • message: string | RawText | RawMessage

      The message to set on the sign. If set to a string, then call getText to read that string. If set to a RawMessage, then calling getRawText will return a RawText. If set to a RawText, then calling getRawText will return the same object that was passed in.

    • 可选side: SignSide

      The side of the sign the message will be set on. If not provided, the message will be set on the front side of the sign.

    返回 void

    Sets the text of the sign component.

    无法在只读模式下调用此函数,详见 WorldBeforeEvents

    Throws if the provided message is greater than 512 characters in length.

  • 实验性

    参数

    • 可选color: DyeColor

      The dye color to apply to the sign or undefined to clear the dye on the sign.

    • 可选side: SignSide

      The side of the sign the color will be set on. If not provided, the color will be set on the front side of the sign.

    返回 void

    Sets the dye color of the text.

    无法在只读模式下调用此函数,详见 WorldBeforeEvents

    This function can throw errors.

  • 实验性

    参数

    • waxed: boolean

    返回 void

    Makes it so players cannot edit this sign.

    无法在只读模式下调用此函数,详见 WorldBeforeEvents

    This function can throw errors.