ChatEvent クラスはプレイヤーがチャットメッセージを送信したときに発火するクラスです。BeforeChatEventとは異なり、チャットが実際に送信された「後」に発火します。
リファレンス
プロパティ一覧
message
message: string;
送信されたメッセージ。
sender
sender: Player;
メッセージを送信したプレイヤー
Type: Player
sendToTargets
sendToTargets: boolean;
このメッセージが特定のプレイヤーに向けて送られたメッセージかどうかを表す。
trueの場合は特定のプレイヤー向け、falseの場合は全体に送信されたと分かる。
Type: boolean
targets
Preview 1.19.70.20、Release 1.19.70で廃止
targets: Player[];
このメッセージを受け取ったプレイヤーの配列。
Type: Player
メソッド一覧
getTargets
Preview 1.19.70.20で追加、Release 1.19.70で追加予定
getTargets(): Player[]
Returns Player[]
サンプルコード
ChatEventはメッセージが送られた後に発火するイベントのため、使いどころがなかなか思いつきません……
チャットメッセージを色付き太文字にしてもう一度表示する
import { world } from "@minecraft/server";
world.events.chat.subscribe(chatEvent => {
const sender = chatEvent.sender;
const message = chatEvent.message;
sender.dimension.runCommandAsync(`tellraw @a {"rawtext": [{"text": "色付き太文字メッセージ: §l§b${message}"}]}`);
});
メッセージを送ったプレイヤーのディメンション自体がtellrawコマンドを使って色付き太文字メッセージを再送するだけです。
ChatEventまとめ
ChatEventはメッセージが他のプレイヤーに届けられた「後」に発火するイベントでした。
正直使いどころを見つける方が難しいイベントだと思いますが、もし面白い使い方があったら教えてください。