TextChatService

非推奨を表示

*このコンテンツは、ベータ版のAI(人工知能)を使用して翻訳されており、エラーが含まれている可能性があります。このページを英語で表示するには、 こちら をクリックしてください。

作成できません
サービス

経験内のテキストチャットの処理を含むサービス、 、メッセージの装飾、テキストのフィルタリング、 、カスタムチャットインターフェイスの開発。

詳しくは、TextChatService の概要 を参照してください。

さらなるカスタマイズのために、TextChatService には次のシングルトンの子供があります:

概要

プロパティ

方法

  • DisplayBubble(partOrCharacter : Instance,message : string):()

    提供されたパーツまたはプレイヤーキャラクターの上にチャットバブルを表示します。

  • イールド

    ユーザーがエクスペリエンスでチャットできるかどうかを決定します。

  • CanUsersChatAsync(userIdFrom : number,userIdTo : number):boolean
    イールド

    2人のユーザーが相互にメッセージを受け取るかどうかを決定します。

  • CanUsersDirectChatAsync(requesterUserId : number,userIds : Array):Array
    イールド

    ユーザーが親切制御設定などの要因に基づいて直接他のユーザーとチャットできる権限を持っているかどうかを判断します。

イベント

コールバック

プロパティ

ChatTranslationEnabled

複製されていません
Robloxのスクリプトセキュリティ
並列読み取り

チャット翻訳が有効かどうかを決定します。真である場合、システムメッセージはチャットメッセージがプレイヤーの好ましい言語に翻訳される可能性があるときにプレイヤーに通知します。

ChatVersion

Robloxのスクリプトセキュリティ
並列読み取り

TextChatService を完全に有効にするか、レガシーのチャットシステムに戻すかを決定します。このプロパティを Enum.ChatVersion.LegacyChatService に設定すると、効果的に TextChatService を無効にできます。

CreateDefaultCommands

プラグインのセキュリティ
並列読み取り

デフォルトの TextChatService を作成するかどうかを決定します。TextChatCommands .

真である場合、次の が作成され、 という名前の TextChatCommands 内に配置されます:


<th>メインの別名</th>
<th>セカンダリアリアス</th>
<th>説明</th>
<th>使用例</th>
</tr>
</thead>
<tbody>
<tr>
<td><b>RBXClearコマンド</b></td>
<td>クリ消す</td>
<td>cls</td>
<td>ローカルユーザーのチャットログをクリアします。</td>
<td><code>/clk の</code></td>
</tr>
<tr>
<td><b>RBXコンソールコマンド</b></td> <td>コンソール</td>
<td />
<td>開発者コンソールを開きます。</td><td><code>/console</code></td>
</tr>
<tr>
<td><b>RBXEmoteコマンド</b></td>
<td>リアクションモート</td>
<td>e</td>
<td>アバターのエモートを再生しまリアクション。</td>
<td><code>/e ダンス</code></td>
</tr>
<tr>
<td><b>RBXHelpコマンド</b></td>
<td>ヘルプ</td>
<td>?</td>
<td>チャットコマンドのリストを表示します。</td>
<td><code>/help</code></td>
</tr>
<tr>
<td><b>RBXMute命令</b></td>
<td>ミュート</td>
<td>m</td>
<td>ユーザーの <code>Class.Player.Name|Name</code> または <code>Class.Player.DisplayName|DisplayName</code> をすべての <code>Class.TextChannel|TextChannels</code> でミュートします。</td>
<td><code>/m ユーザー名</code></td>
</tr>
<tr>
<td><b>RBXチーム命令</b></td>
<td>チーム</td>
<td>t</td>
<td>チームチャットモードに入り、メッセージはチームメンバーにのみ表示されます。</td>
<td><code>/t</code></td>
</tr>
<tr>
<td><b>RBXUnmuteコманド</b></td>
<td>ミュート解除</td>
<td>um</td>
<td>すべての Class.TextChannel|TextChannels で、ユーザーの Class.Player.Name|Name または Class.Player.DisplayName|DisplayName によってミュートを解除します。</td>
<td><code>/um ユーザー名</code></td>
</tr>
<tr>
<td><b>RBXVersionコマンド</b></td>
<td>版</td>
<td>v</td>
<td>チャットバージョンを表示する。</td>
<td><code>/版</code></td>
</tr>
<tr>
<td><b>RBXWhisper命令</b></td>
<td>ささやき</td>
<td>w</td>
<td>別の <code>Class.Player</code> でささやきモードに入る。</td>
<td><code>/w DisplayName</code> または <code>/w @Username</code></td>
</tr>
</tbody>
名前

Note that you can edit, create, and remove TextChatCommands even if CreateDefaultCommands が真である場合でも。また、ミュートとミュート解除コマンドはすべての TextChannels に適用されることに注意してください。

CreateDefaultTextChannels

プラグインのセキュリティ
並列読み取り

デフォルトの TextChatService を作成するかどうかを決定します。TextChannels .真である場合、Folder という名前の テキストチャンネル が、実行時に TextChatService 内に作成され、下の表に記載された TextChannels を含みます。デフォルトのチャネルのそれぞれには、内部バインドされた TextChannel.OnIncomingMessage コールバック関数を使用して送信されたメッセージに適用された説明された特別な動作があり、チャネルを通じて送信されるメッセージの表示方法を変更します。コールバックは、実行時 () または が作成されたときに自動的に割り当てられます ()。


<th>説明</th>
</tr>
</thead>
<tbody>
<tr>
<td><b>RBX一般</b></td>
<td><code>Class.TextChannel</code> プレイヤーメッセージ用。チャットウィンドウでは、メッセージが変更され、<code>Class.TextChatMessage.PrefixText|PrefixText</code>が、チャットプレイヤーにそれぞれの区別色の名前を与えるための<a href="/ui/rich-text">リッチテキストフォント色タグ</a>を受け取ります。If <code>Class.Player.Team</code> が存在する場合、その <code>Class.Team.TeamColor</code> はデフォルトの名前色ではなく使用されます。</td>
</tr>
<tr>
<td><b>RBXシステム</b></td>
<td><code>Class.TextChannel</code> システムメッセージ用。チャットウィンドウでは、メッセージが変更され、デフォルトで Class.TextChatMessage.Text にライトグレーのタグが付与され、または Class.TextChatMessage.Metadata に「Error」という単語が含まれている場合は、赤色のタグが付与されます。</td>
</tr>
<tr>
<td><b>RBXチーム[ブリックカラー]</b></td>
<td><code>Class.TextChannel</code> チーム固有のプレイヤーメッセージ、<code>Class.Team.TeamColor|TeamColor</code> が使用されているときに、<code>Class.Teams</code> サービス内のどの <code>Class.Teams</code> でも作成される。作成されたチャンネルの名前は <b>RBXチーム</b> に続いて <code>Class.Team.TeamColor|TeamColor</code> 名です。たとえば、 RBXTeamCrimson は、 Class.TextChannel が作成されたクラスです。 Class.Team.TeamColor|TeamColor プロパティが「クリムゾン」 Datatype.BrickColor であるアクティブなチームが存在すると、チャットウィンドウでメッセージが変更され、 Class.TextChatMessage.PrefixText|PrefixText が Class.Player.TeamColor|TeamColor と一致し、 [チーム] チームチャンネルがすべての非 Class.Player.Neutral|Neutral プレイヤーに対して作成され、チームチャットを使用できるようになります。チャンネルは、関連する <code>Class.Team.TeamColor|TeamColor</code> の残っているチームがない場合に削除されます。</td>
</tr>
<tr>
<td><b>RBXWhisper:[ユーザー1]_[ユーザー2]</b></td>
<td><code>Class.TextChannel</code> は、プレイヤーが他のプレイヤーに <code>/whisper</code> コマンドを使用したときに作成され、2人のプレイヤー間のささやきメッセージを伝えます。たとえば <b>RBXWhisper:2276836_505306092</b> は、<code>Class.TextChannel</code> で、プレイヤーに <code>Class.Player.UserId|UserIds</code> があり、<b>2276836</b> と <b>505306092</b> があります。内部のささやきチャンネルには、それぞれの Class.TextSource|TextSources に対応する Class.Player.UserId|UserIds と関連する 2つの Class.TextChatMessage.PrefixText があります。チャットウィンドウでは、メッセージは RBXGeneral と Class.TextChatMessage.PrefixText のメッセージと同じ色に着色され、ローカルユーザーから送信または受信されたメッセージを表示するために Class.TextChatMessage.PrefixText が変更されます。Whisperチャンネルは、プレイヤーがエクスペリエンスを離れると削除されます。</td>
</tr>
</tbody>
チャネル

デフォルトの TextChannel.OnIncomingMessage コールバックは上書きできることに注意してください。また、 が真である場合でも編集、作成、削除できることに注意してください。

異なるテキストチャンネルからのメッセージは、ChannelTabsConfiguration を使用してチャットウィンドウの異なるタブに分離できます。

方法

DisplayBubble

()

提供されたパーツまたはプレイヤーキャラクターの上にチャットバブルを表示し、このメソッドで指定されたパラメータで BubbleDisplayed イベントを発射します。キャラクター内のパーツ (頭など) を指定すると、プレイヤー以外のキャラクター (NPC) のバブルを表示できます。

このメソッドは、LocalScript でのみ使用でき、または ScriptRunContextEnum.RunContext.Client を持つことができます。

パラメータ

partOrCharacter: Instance

バブルを上に表示する部分またはキャラクター。

既定値: ""
message: string

チャットバブルに表示されるテキスト。

既定値: ""

戻り値

()

CanUserChatAsync

イールド

ユーザーがエクスペリエンスでチャットできるかどうかを決定します。親の制御設定などの要因により、ユーザーがメッセージを送信できない可能性があります。userId が現在のサーバーにない場合のエラー。このメソッドは、すべての現在のプレイヤー を使用して、 で または または の で使用できます。このメソッドは、LocalScript でも使用できますが、ローカルプレイヤーの UserId のみです。

パラメータ

userId: number
既定値: ""

戻り値

CanUsersChatAsync

イールド

2人のユーザーが相互にメッセージを受け取るかどうかを決定します。互換性のない親の制御設定やブロックされたステータスなどの要因は、ユーザー間のメッセージの配信を妨げる可能性があります TextChannels 内部でこの結果を使用して、ユーザー間でメッセージを配信するかどうかを判断します。このメソッドは、ScriptRunContextEnum.RunContext.Server または Enum.RunContext.Legacy でのみ使用できることに注意してください。

パラメータ

userIdFrom: number
既定値: ""
userIdTo: number
既定値: ""

戻り値

CanUsersDirectChatAsync

イールド

ユーザーが親の制御設定に基づいて他のユーザーと直接チャットできる権限を持っているかどうかを決定します。使用する場合:

  • コミュニケーションのラインはユーザーが開始し(開発者またはゲームプレイが開始したものではない)
  • 通信へのアクセスは閉鎖され、制限されています

直接チャットの例は、2人のユーザー間のささやきチャネルです。

結果に応じて、この方法を使用してエクスペリエンスの特定の機能をゲートできます。

直接チャット用の TextChannel を作成するときは、チャネルがユーザー間でメッセージを配信するかどうかを判断できるように、TextChannel:SetDirectChatRequester() を使用してリクエスターユーザーIDを設定します。When TextChannel.DirectChatRequester が null でないとき、 TextChannels 内部でこの結果を使用して、ユーザー間でメッセージを配信するかどうかを判断します。


local whoCanDirectChat = TextChatService:CanUsersDirectChatAsync(requesterUserId, { userId1, userId2 })
if #whoCanDirectChat > 0 then
-- リクエスターのユーザーIDは、userId1、userId2、または両方とチャットを指向できます
else
-- リクエスターのユーザーIDは、userId1 または userId2 でチャットを指向できません
end

このメソッドは、ScriptRunContext 、または Enum.RunContext.Server または Enum.RunContext.Legacy の でのみ使用できます。

パラメータ

requesterUserId: number

直接チャットリクエストを開始したユーザー。要求者のユーザーIDが現在のサーバーにない場合、このメソッドはエラーが発生します。

既定値: ""
userIds: Array

リクエスターユーザーID が直接チャットしたいユーザーのリスト。現在のサーバーにいないユーザーは無視されます。

既定値: ""

戻り値

直接チャットリクエストに参加できるユーザーのリスト。ユーザーの誰もリクエスターのユーザーIDでチャットを指向できない場合、結果は空の配列です。

コードサンプル

This example checks if two users can chat, creates a new TextChannel, and adds them to it.

CanUsersDirectChatAsync

local TextChatService = game:GetService("TextChatService")
local directChatParticipants = TextChatService:CanUsersDirectChatAsync(userId1, { userId2 })
-- Check for eligible participants
if #directChatParticipants > 0 then
local directChannel = Instance.new("TextChannel")
directChannel.Parent = TextChatService
for _, participant in directChatParticipants do
directChannel:AddUserAsync(participant)
end
return directChannel
end
warn("Could not create TextChannel. Not enough eligible users.")
return nil

イベント

BubbleDisplayed

呼び出されると TextChatService:DisplayBubble() が発火します。

パラメータ

partOrCharacter: Instance
textChatMessage: TextChatMessage

MessageReceived

Like TextChannel.MessageReceived , クライアントで TextChannel:DisplaySystemMessage() が呼び出されたとき、またはサーバーから有効な TextChannel:SendAsync() 応答が受信されたときに発動します。このイベントはクライアントでのみ発動します。

サーバーの TextChannel.ShouldDeliverCallback プロパティがバインドされ、false を返す場合、クライアントは TextChatService.MessageReceived を発射しません。

TextChatMessage パラメータを使用して、TextSource とメッセージのテキスト (TextChatMessage.Text を含む) を取得します。

TextChatMessage パラメータは、TextChatService.OnIncomingMessage または TextChannel.OnIncomingMessage にバインドされた関数の最終結果です。

パラメータ

textChatMessage: TextChatMessage

受信した TextChatMessage


SendingMessage

送信クライアントによって TextChannel:SendAsync() が呼び出されたときに発火するこれを使用して、サーバーの応答を待っている間、プレースホルダーメッセージをユーザーに表示することができます TextChannel:SendAsync() .

パラメータ

textChatMessage: TextChatMessage

TextChatMessage からの TextChannel:SendAsync() 呼び出し。


コールバック

OnBubbleAdded

バブルチャットが表示される直前に呼び出されます。これはクライアントでのみ実装できます。

これを使用して、個々のバブルチャットメッセージをカスタマイズします。このコールバックが BubbleChatMessageProperties を返す場合、これらのプロパティは関連するバブルに適用され、BubbleChatConfiguration プロパティを上書きします。If a UICorner , UIGradient , or ImageLabel は、BubbleChatMessageProperties で親になっている場合、それぞれの相手を定義した BubbleChatConfiguration もオーバーライドします。

チャットメッセージがプレイヤーによって送信された場合、message.TextSource はそのプレイヤーに対応し、adorneenil になります。

チャットメッセージが を介して送信される場合、 が提供され、 は になります。

クライアントがメッセージを送信しているときにバインドすると、このコールバックは 2 回実行されます:最初にメッセージがローカルで送信され、受信されたとき、クライアントがサーバーからフィルタリングされたメッセージの結果を受け取ったとき。

パラメータ

受信する TextChatMessage

adornee: Instance

バブルチャットメッセージに付属するパーツまたはキャラクター。


戻り値

BubbleChatMessageProperties が返されると、そのプロパティは BubbleChatConfiguration プロパティをオーバーライドします。

OnChatWindowAdded

チャットウィンドウに新しいメッセージが表示される直前に呼び出されます。これはクライアントでのみ実装できます。

チャットウィンドウに表示される個々のメッセージをカスタマイズするために使用します。このコールバックが ChatWindowMessageProperties を返す場合、これらのプロパティは関連するメッセージに適用され、ChatWindowConfiguration プロパティを上書きします。If a が の親になっている場合、 で定義されたプロパティもオーバーライドされます。

クライアントがメッセージを送信しているときにバインドすると、このコールバックは 2 回実行されます:最初にメッセージがローカルで送信され、受信されたとき、クライアントがサーバーからフィルタリングされたメッセージの結果を受け取ったとき。

パラメータ

受信する TextChatMessage


戻り値

ChatWindowMessageProperties が返されると、そのプロパティは ChatWindowConfiguration プロパティをオーバーライドします。

OnIncomingMessage

TextChatService が受信しているメッセージを受信するときに呼び出されます。クライアント上でのみ実装できます。

これを使用して TextChatMessages を装飾します。このコールバックが TextChatMessageProperties を返す場合、それらのプロパティは TextChatMessage パラメータとマージして、新しい TextChatMessage を作成します。

クライアントからメッセージを送信するときにバインドされると、このコールバックは 2 回実行されます;最初はメッセージが最初にローカルで送信されて受信され、再びクライアントがサーバーからフィルタリングされたメッセージの結果を受け取るときです。

この TextChatService.OnIncomingMessage コールバックは、 以前 のすべての TextChannel.OnIncomingMessage コールバックの前に実行します。

ソースコードでは、これを 1回だけ定義する必要があります。複数のバインディングは、非決定的な方法で互いにオーバーライドします。

パラメータ

受信する TextChatMessage


戻り値

が返された場合、それらのプロパティは パラメータとマージされて、それらのプロパティを持つ新しい を作成します。そうでない場合は、 が返された場合、 は変更されません。