RawMessage Interface
Defines a JSON structure that is used for more flexible.
Examples
addTranslatedSign.ts
import { DimensionLocation, world, BlockPermutation, BlockComponentTypes } from '@minecraft/server';
function placeTranslatedSign(location: DimensionLocation, text: string) {
const signBlock = location.dimension.getBlock(location);
if (!signBlock) {
console.warn('Could not find a block at specified location.');
return;
}
const signPerm = BlockPermutation.resolve('minecraft:standing_sign', { ground_sign_direction: 8 });
signBlock.setPermutation(signPerm);
const signComponent = signBlock.getComponent(BlockComponentTypes.Sign);
if (signComponent) {
signComponent.setText({ translate: 'item.skull.player.name', with: [text] });
} else {
console.error('Could not find a sign component on the block.');
}
}
placeTranslatedSign(
{
dimension: world.getDimension('overworld'),
x: 0,
y: 0,
z: 0,
},
'Steve',
);
(preview) Work with this sample on the MCTools.dev code sandbox.
showTranslatedMessageForm.ts
import { world, DimensionLocation } from "@minecraft/server";
import { MessageFormResponse, MessageFormData } from "@minecraft/server-ui";
function showTranslatedMessageForm(
log: (message: string, status?: number) => void,
targetLocation: DimensionLocation
) {
const players = world.getPlayers();
const messageForm = new MessageFormData()
.title({ translate: "permissions.removeplayer" })
.body({ translate: "accessibility.list.or.two", with: ["Player 1", "Player 2"] })
.button1("Player 1")
.button2("Player 2");
messageForm
.show(players[0])
.then((formData: MessageFormResponse) => {
// player canceled the form, or another dialog was up and open.
if (formData.canceled || formData.selection === undefined) {
return;
}
log(`You selected ${formData.selection === 0 ? "Player 1" : "Player 2"}`);
})
.catch((error: Error) => {
log("Failed to show form: " + error);
return -1;
});
}
(preview) Work with this sample on the MCTools.dev code sandbox.
addTranslatedSign.ts
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] });
}
(preview) Work with this sample on the MCTools.dev code sandbox.
Properties
rawtext
rawtext?: RawMessage[];
Provides a raw-text equivalent of the current message.
Type: RawMessage[]
score
score?: RawMessageScore;
Provides a token that will get replaced with the value of a score.
Type: RawMessageScore
text
text?: string;
Provides a string literal value to use.
Type: string
translate
translate?: string;
Provides a translation token where, if the client has an available resource in the players' language which matches the token, will get translated on the client.
Type: string
with
with?: string[] | RawMessage;
Arguments for the translation token. Can be either an array of strings or RawMessage containing an array of raw text objects.
Type: string[] | RawMessage
Examples
addTranslatedSign.ts
import { DimensionLocation, world, BlockPermutation, BlockComponentTypes } from '@minecraft/server';
function placeTranslatedSign(location: DimensionLocation, text: string) {
const signBlock = location.dimension.getBlock(location);
if (!signBlock) {
console.warn('Could not find a block at specified location.');
return;
}
const signPerm = BlockPermutation.resolve('minecraft:standing_sign', { ground_sign_direction: 8 });
signBlock.setPermutation(signPerm);
const signComponent = signBlock.getComponent(BlockComponentTypes.Sign);
if (signComponent) {
signComponent.setText({ translate: 'item.skull.player.name', with: [text] });
} else {
console.error('Could not find a sign component on the block.');
}
}
placeTranslatedSign(
{
dimension: world.getDimension('overworld'),
x: 0,
y: 0,
z: 0,
},
'Steve',
);
(preview) Work with this sample on the MCTools.dev code sandbox.
showTranslatedMessageForm.ts
import { world, DimensionLocation } from "@minecraft/server";
import { MessageFormResponse, MessageFormData } from "@minecraft/server-ui";
function showTranslatedMessageForm(
log: (message: string, status?: number) => void,
targetLocation: DimensionLocation
) {
const players = world.getPlayers();
const messageForm = new MessageFormData()
.title({ translate: "permissions.removeplayer" })
.body({ translate: "accessibility.list.or.two", with: ["Player 1", "Player 2"] })
.button1("Player 1")
.button2("Player 2");
messageForm
.show(players[0])
.then((formData: MessageFormResponse) => {
// player canceled the form, or another dialog was up and open.
if (formData.canceled || formData.selection === undefined) {
return;
}
log(`You selected ${formData.selection === 0 ? "Player 1" : "Player 2"}`);
})
.catch((error: Error) => {
log("Failed to show form: " + error);
return -1;
});
}
(preview) Work with this sample on the MCTools.dev code sandbox.
addTranslatedSign.ts
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] });
}
(preview) Work with this sample on the MCTools.dev code sandbox.