チャット サービスは、レガシーチャットシステム を実行する Luau コードをホストしています。StarterPlayerScripts と同様、デフォルトのオブジェクト (Scripts や ModuleScripts ) がサービスに挿入されます。
概要
プロパティ
プレイヤーのチャットメッセージがゲーム内のアバターの上に表示されるかどうかを決定します。
ゲームが実行されると、デフォルトのチャットフレームが自動的にロードされるかどうかを切り替えます。
方法
このメソッドで指定されたパラメータで Chat.Chatted イベントを発射します。
RegisterChatCallback によって登録されたチャットコールバック機能を呼び出します。Luau チャットシステムで使用されます。
チャットシステムイベントの呼び出しで呼び出される機能を登録する(InvokeChatCallback)。
ゲーム内バブルチャットの様々な設定をカスタマイズします。
指定された Player.UserId を持つプレイヤーがアカウント設定のためにチャットできない場合、false を返します。
2人のユーザーがコミュニケーションできない場合、アカウント設定により false が返されます。
プレイヤーから他のプレイヤーに送信された文字列を、プレイヤーのアカウント設定に適したフィルタリングでフィルタリングします。
特定のターゲットに送信されるプレイヤーからのストリングをフィルタリングし、Chat:FilterStringAsync() よりも厳格です。
イベント
呼び出されると Chat:Chat() が発火します。
プロパティ
BubbleChatEnabled
真の場合、チャットにメッセージを入力すると、プレイヤーの Player.Character 上にチャットバブルがポップアップします。この動作は、Studio でこのチェックボックスを直接チェックするか、LocalScript を使用して有効にすることができます:
local ChatService = game:GetService("Chat")ChatService.BubbleChatEnabled = true
これはクライアントで行わなければならず、サーバー側の Script でこの値を切り替えても効果がありません。
方法
Chat
チャット機能は、このメソッドで指定されたパラメータで Chat.Chatted イベントを発動します。
デフォルトでは、各プレイヤーの オブジェクト内に BubbleChat という名前のダイアログのようなビルボードが表示され、チャットイベントが発動すると パートまたはキャラクター の上にそれが表示されます。
注: ダイアログはローカルスクリプトによって制御されるため、「プレイソロ」モードで実行していない限り、このメソッドから作成されたダイアログを見ることはできません。
パラメータ
バブルチャット ダイアログが上に表示されるべき部分またはキャラクターのインスタンス。
チャット中のメッセージストリング。
チャットメッセージの色を指定する Enum.ChatColor 。
戻り値
コードサンプル
local ChatService = game:GetService("Chat")
local part = Instance.new("Part")
part.Anchored = true
part.Parent = workspace
ChatService:Chat(part, "Blame John!", "Red")
InvokeChatCallback
InvokeChatCallback は、ChatCallbackType 列挙体と機能を送信するための引数を指定して、RegisterChatCallback に登録された関数を呼び出します。登録された関数の結果を返すか、登録された関数がない場合はエラーを発生させます。
この機能は Luau チャットシステムによって呼び出され、特定の機能の動作を変更するためにチャットコールバックを登録できます。デフォルトの Luau チャットシステムを自所有のものと置き換えていない限り、この関数を呼び出す必要はありません。詳細は、Chat:RegisterChatCallback() で異なるコールバック関数について読むことができます。
パラメータ
呼び出すコールバックの種類。
登録されたコールバック関数に送信される引数。
戻り値
チャットコールバックタイプに登録された関数によって返される値。
RegisterChatCallback
RegisterChatCallback は、Luau チャットシステムの動作に影響を与えるために、機能をいくつかのチャットシステムイベントにバインドします。最初の引数は、2番目の引数、機能、がバインドされるイベント (Enum.ChatCallbackType 枚数) を決定します。デフォルトの Luau チャットシステムは、InvokeChatCallback を使用して登録された関数を呼び出します。相手がサーバーまたはクライアントのみのコールバックを登録しようとするが、サーバーまたはクライアントではないのでエラーが発生する。次のセクションでは、登録された機能がどのように使用されるかを説明します。
チャットウィンドウを作成中OnCreatingChatWindow
クライアントのみ。クライアントがチャットウィンドウを構成する前に呼び出されます。チャット設定モジュールによって返された情報にマージされる設定のテーブルを返す必要があります。
オンクライアントフォーマットメッセージ
クライアントのみ。クライアントがメッセージを表示する前に呼び出されます (プレイヤーチャットメッセージ、システムメッセージ、または /me コマンドですか)この機能はメッセージオブジェクトで呼び出され、message.ExtraData にマージされるテーブルを返すかもしれません (またはしないかもしれません)。
オンクライアント送信メッセージ
この時点では呼び出されていません。
オンサーバー受信メッセージ
サーバー専用。サーバーがスピーカーからメッセージを受信したときに呼び出されます(スピーカーが必ずしもチャットである必要はないことに注意してください)。このコールバックはメッセージオブジェクトで呼び出されます。機能はメッセージオブジェクトを変更して、メッセージの処理方法を変更できます。 メッセージオブジェクトを返すことで、このコールバックが何かを行うことができます。: このコールバックを設定すると、サーバーは例えば:
- セット message.ShouldDeliver を偽に設定して、プレイヤーにメッセージの配信をキャンセルする (チャット排除リストの実装に便利)
- メッセージ単位でスピーカーの名前色 ( message.ExtraData.NameColor , Color3) を取得/設定
パラメータ
機能が登録されるコールバック (これにより、機能がどのように呼ばれるかが決まります)
チャット:InvokeChatCallback を使用して呼び出されるときに呼び出される関数。
戻り値
SetBubbleChatSettings
この機能は、ゲーム内バブルチャットの様々な設定をカスタマイズします。
これを使用する前に、バブルチャットが有効になっているように設定して Chat.BubbleChatEnabled を真に設定してください。
設定引数は、キーが編集したい設定の名前であり、値はこれらの設定を変更したいものです。設定引数にすべてを含める必要はありません。いくつかを省略すると、デフォルト値を維持します。
この機能はクライアント側のみで、サーバーで呼び出そうとするとエラーが発生します。
パラメータ
設定テーブル。
戻り値
コードサンプル
local ChatService = game:GetService("Chat")
ChatService:SetBubbleChatSettings({
BackgroundColor3 = Color3.fromRGB(180, 210, 228),
TextSize = 20,
Font = Enum.Font.Cartoon,
})
local ChatService = game:GetService("Chat")
ChatService:SetBubbleChatSettings({})
CanUsersChatAsync
2人のユーザーがコミュニケーションできない場合、アカウント設定により false が返されます。
パラメータ
戻り値
FilterStringAsync
部分的な廃止警告 : クライアントが LocalScript を使用してこの関数を呼び出すことは廃止され、将来は無効になります。テキストフィルタリングは、Script と同じ名入力の TextService:FilterStringAsync() を使用してサーバー上で行われ、異なるパラメータと返却タイプを使用します。
プレイヤーが生成したテキストを適切にフィルターできないゲームは、モデレーションアクションの対象になる可能性があります。ゲームが正しくテキストをフィルタリングして公開する前に確認してください。
FilterStringAsync は、送信と受信プレイヤーに適したフィルタリングを使用して、ストリングをフィルタリングします。フィルターされた文字列がショップの名買うなどの永続メッセージに使用される場合、プレートに書き込むなどの送信者と受信者の両方として機能を呼び出す必要があります。
この機能は、 プレイヤーが任意のコンテキストでカスタムテキストを入力できるたびに 使用する必要があります、最も一般的には を使用します。フィルターにかけるテキストの例:
- カスタムチャットメッセージ
- カスタムキャラクター名
- タイクーンスタイルのゲームでのショップの名前
パラメータ
プレイヤーによって入力されたままの未処理の文字列。
テキストの作成者。
提供されたテキストの受信者の意図; テキストが永続する場合は、作者を使用します (詳細を参照)。
戻り値
FilterStringForBroadcast
playerFrom から送信されたストリングをフィルタして、特定のターゲットに放送しません。フィルタされたメッセージには Chat:FilterStringAsync() より多くの制限があります。
このメソッドが使用できる場所の一部の例:
- メッセージの壁
- クロスサーバーの叫び
- ユーザーが作成した標識
フィルターストリングを LocalScripts から呼び出すことは廃止され、将来は無効になります。テキストフィルタリングは、FilterStringAsync を使用してサーバー側で行う必要があります Scripts
注: このフィルター機能を使用しないゲームは、カスタムチャットまたは他のユーザー生成のテキストに対してモデレーションアクションを受ける可能性があります。
パラメータ
メッセージストリングがフィルタリングされています。
メッセージを送信するプレイヤーのインスタンス。
戻り値
フィルターされたメッセージストリング。
コードサンプル
local Players = game:GetService("Players")
local Chat = game:GetService("Chat")
local playerFrom = Players.LocalPlayer
local message = "Hello world!"
-- Filter the string and store the result in the 'FilteredString' variable
local filteredString = Chat:FilterStringForBroadcast(message, playerFrom)
print(filteredString)