次のチャットモジュールを使用して、Legacy Chat System のサーバー側の動作をサポートするために、サーバー側の動作をサポートできます:
- ChatService : すべての他のチャットモジュールを管理するシングルトン。
- ChatSpeaker : チャットチャンネルでメッセージを作成するエンティティ;各 Player には自動的にチャットスピーカーがあり、ボットがチャットスピーカーを作成することでチャットをチャットできます。
- ChatMessage : チャットスピーカーがチャットチャンネルに送信するコンテンツのコンテナ。メッセージを形式変換するために使用されるメタデータを含みます。
- ChatChannel : チャットスピーカーがチャットメッセージを交換できるチャンネル。チームチャットとウィッシュチャットのためにも使用されます。
チャットサービス
ChatService は、Lua チャットシステムのサーバー側の動作を処理するシングルオブジェクトで、ChatChannels やChatSpeakers などがあります。
すべての ModuleScript は、 ChatModule フォルダ内のすべての機能を返す必要があり、その機能はチャットサービスのシングルトンによって呼び出されます。
メソッド
チャンネルを追加
- 説明: は、指定された名前でチャットチャンネルオブジェクトを作成し、それを返します。
- 返り: チャットチャンネル
チャンネルを削除
- 説明: 指定された名前のチャンネルを削除します
- 返す: 無効
GetChannel
- 説明: は、指定された名前でチャンネルを返します、または存在しない場合には、nilです。
- 返り: チャットチャンネル
スピーカーを追加
- 説明: スピーカーをチャットに追加し、指定された名前で戻します。
- 返り: チャットスピーカー
スピーカーを削除
- 説明: スピーカーをチャットから削除します。
- 返す: 無効
スピーカーを取得
- 説明: スピーカーを指定された名前で返します。また、存在しない場合は nil で返します。
- 返り: チャットスピーカー
GetChannelList
- パラメータ: なし
- 説明: チャットにあるすべての非プライベートチャンネルの名前のリストを返します。
- 返り: 配列< string >
GetAutoJoinChannelList を取得
- パラメータ: なし
- 説明: は、チャットに AutoJoin が設定されているすべてのチャンネルの名前のリストを返します。
- 返り: 配列< string >
RegisterFilterMessageFunction
- 説明: フィルター機能をチャットに登録します。メッセージの変更はすべて functionId で表示されます。この関数は、スピーカーの名前、メッセージのオブジェクト、およびチャンネルでメッセージが通過するときに持続し、表示されます。この関数は、スピーカーの名前、メッセージのオブジェクト、お
- 返す: 無効
- 例:
-- この例をチャットモジュールフォルダ内のモジュールスクリプトに入れます。
-- この例では、キーワードをフィルターし、成功するとメッセージのチャットカラーを設定します
local functionId = "greenText"
local keyword = "#green"
local chatColor = Color3.new(0, 1, 0) -- 緑
local function doFilter(speaker, messageObject, channelName)
-- メッセージにキーワードが含まれているかどうかをチェックします
local start, finish = string.find(messageObject.Message, keyword)
if start and finish then
-- メッセージからキーワードを削除 (フィルタ) し、ChatColor を設定します
messageObject.Message = string.gsub(messageObject.Message, keyword, "")
messageObject.ExtraData.ChatColor = chatColor
end
end
local function runChatModule(ChatService)
ChatService:RegisterFilterMessageFunction(functionId, doFilter)
end
return runChatModule
UnregisterFilterMessageFunction を
- 説明: フィルター関数を登録しなおします (RegisterFilterMessageFunction によって登録されます)、functionId 。
- 返す: 無効
RegisterProcessCommandsFunction
- 説明: チャットによって識別されたプロセスコマンド機能を登録します。メッセージがフィルタリングされる前に、functionId によって登録されたコマンド機能を通過します。コマンド
- 返す: 無効
- 例:
-- この例をチャットモジュールフォルダ内のモジュールスクリプトに入れます。
local functionId = "getPizza"
local command = "/pizza"
local toolId = 22596452 -- ペパロニピザのスライスギア
local function processCommand(speakerName, message, channelName)
if string.sub(message, 1, command:len()) == command then
local model = game:GetService("InsertService"):LoadAsset(toolId)
local tool = model:GetChildren()[1]
local speaker = ChatService:GetSpeaker(speakerName)
local player = speaker:GetPlayer()
tool.Parent = player.Backpack
return true
end
return false
end
local function runChatModule(ChatService)
ChatService:RegisterProcessCommandsFunction(functionId, processCommand)
end
return runChatModule
UnregisterProcessCommandsFunction を
- 返す: 無効
イベント
チャンネル追加
- 説明: チャンネルがチャットに追加されるときに発動します。
チャンネルを削除
- 説明: チャットからチャンネルを削除すると、ファイアーします。
スピーカー追加
- 説明: スピーカーがチャットに追加されるときに発動します。
スピーカーを削除
- 説明: スピーカーがチャットから削除されると、ファイアーします。
チャットスピーカー
チャットスピーカー は、チャットチャンネル で話す 1つのエンティティの表示です。各 Player は、ゲームに自動的にチャットスピーカーを持つことができます。非ユーザー (例えば、1>アナウンサーやヒントメッセージのメッセージ1> を
プロパティ
名前
- 説明: スピーカーの名前、多くの他の関数を参照するときに使用されます。
メソッド
チャンネルに参加
- 説明: スピーカーをチャンネルに追加します。channelName が与えられました
- 返す: 無効
チャンネルを終了
- 説明: スピーカーをチャンネルから削除し、channelName を与えます
- 返す: 無効
GetChannelList
- パラメーター: なし
- 説明: スピーカーが所属するすべてのチャンネルの名前のリストを返します。
- 返り: 配列< string >
インチャンネル
- 説明: スピーカーが channelName でチャンネルにあるかどうかを返します。
- 返す: booル
メッセージを言う
- パラメーター: string : message 、 0> Li文字列rary.string0> : 3> chanネーム3> 、 典典< 6> Li文字列rary.string6> 、 バリアント> 9> extraData 9>
- 説明: スピーカーが message と言って、それを作成したチャットメッセージオブジェクトを返します。
- 返信: チャットメッセージ
メッセージを送信
- パラメーター: string : message 、0> Library.stri文字列g0> : 3> channel3> 、6> Library.stri文字列g6> : 9> チャンネルromSpeaker 9>
- 説明: は、 fromSpeaker という名前の fromSpeaker にメッセージを送信します。チャンネルにそのようなスピーカーがない場合、このメソッドは警告を作成し、スピーカーはメッセージを見ることはできません。
- 返す: 無効
システムメッセージを送信
- 説明: システムメッセージを ChatChannel に送信します。channelName が与えられた 0>チャンネル名0> で、スピーカーがチャンネルにある場合、このメッセージは警告を作成し、他のスピーカーはチャンネルを見ることはできません。
- 返す: 無効
ゲットプレイヤー
- パラメーター: なし
- 説明: スピーカーに関連する Player オブジェクトを返します。スピーカーがユーザーではない場合 (ボット) は、nil が返されます。
- 戻り値: Player または nil
SetExtraData を設定
- 説明: スピーカーの下の特定の key の下に、スピーカーがチャットメッセージを送信すると、この追加データはメッセージに付属されます。たとえメッセージが明示的に指定されていない場合でも、これによりスピーカーのチャット色が設設定するされます。たとえば、次のメッセージが明示的に指定され
- 返す: 無効
GetExtraData
- 説明: は、key を使用して設定された追加データを返します。
- 返す: バリアント
メインチャンネルを設定
- 説明: スピーカーを提供されたチャンネルで話すように設定します。MainChannelSet を発動させます。
- 返り: nil
イベント
SaidMessage
受信したメッセージ
- 説明: スピーカーが ChatMessage を受信したときに発動します。
受信したシステムメッセージ
- 説明: スピーカーがシステムの ChatMessage を受信したときに発動します。
チャンネルに参加
チャンネル左
ミュートされています
- パラメーター: string : channelName 、0> Li文字列rary.string0> : 3> reason = nil3> 、6>int6> : 9> duration 9> = 0
- 説明: スピーカーが ChatChannel にミュートされているときに発動します。 channelName が与えられた期間について (ある場合) が提供されます。 0>reason0> が提供される可能性があります。
ミュート解除
追加のデータ更新
- 説明: スピーカーの追加データでキーのデフォルト値を更新すると、発動します。
メインチャンネルセット
- 説明: スピーカーのメインチャンネルが ChatChannel に変更されたときに発動します。
チャットメッセージ
チャットメッセージ は、チャットスピーカー から送信されたメッセージを表示するデータ構造です。メッセージには、テキストの長さ、1>テキストが Roblox によってフィルタリングされたかどうか1>、メッセージの表示に追加のデータなどが含まれています。
プロパティ
ID
- タイプ: int
- 説明: メッセージにユニークな数値識別子。
スピーカーから
- タイプ: string :
- 説明: メッセージを送信した ChatSpeaker の名前。
オリジナルチャンネル
- タイプ: string :
- 説明: メッセージがオリジナルになったチャットチャンネルの名前。
フィルタリングされています
- タイプ: booル
- 説明: メッセージが Roblox によってフィルタリングされるかどうかを記述します (メッセージが true の場合、メッセージは nil です)
メッセージ長度
- タイプ: int
- 説明: メッセージの長さ。これを使用すると、メッセージがフィルタリングされた場合、ハッシュアウトされた文字列を生成できます。
メッセージ
- 説明: メッセージのテキスト。このプロパティは nil です。
メッセージタイプ
- タイプ: string :
- 説明: メッセージの種類。これらの種類は、ChatCommands モジュールで説明されています:
- 可能な値: "Message" 、 "System"、 0> "MeCommand"0>、 3> "Welcome"3>、 6> "SetCore"6>、 9> "Whisper" 9>
時間
追加データ
- タイプ: 辞書< string , Variant>
チャットチャンネル
ChatChannel は、ChatSpeakers 間のメッセージの交換に使用される単一のチャンネルに関するデータを保存するオブジェクトです。また、メッセージがユーザーがチャンネルに参加または離れるかどうかを含む、ビジビリティのメッセージを表示するためのアクセス許可プロパ
デフォルトでは、各ユーザーには ChatSpeaker が自動的に「すべて」と「システム」チャットチャンネルに追加されます(「システム」は読み取りのみ)。ユーザーが Player.Team にいる場合、そのチームのみのチャンネルへのアクセスも許可されます。
プロパティ
名前
- タイプ: string
- 説明: チャンネルの名前、他の機能でチャンネルを参照します。
ウェルカムメッセージ
- タイプ: string
- 説明: ユーザーがチャンネルに参加すると表示するメッセージ。
参加可能
- タイプ: booル
- 説明: ユーザーが /join コマンドを使用してマニュアルでチャンネルに参加するかどうかを決定します。ユーザーはまだ ChatSpeaker:JoinChannel() またはこのプロパティが偽である場合でもチャンネルに追加されることができます。
退出可能
- タイプ: booル
- 説明: ユーザーが /leave コマンドを使用してチャンネルを手動で終了できるかどうかを決定します。ユーザーはまだチャンネルから削除されることができます。このプロパティが偽であっても、ChatSpeaker:LeaveChannel() またはその他の方法で終了している場合でも、0>説明:0> はまだ削
自動参加
- タイプ: booル
- 説明: プレイヤーの ChatSpeaker がゲームに参加するときに自動的にチャンネルに参加するかどうかを決定します。非ユーザースピーカーは、このプロパティが true である場合でも、チャンネルに自動的に参加しません(ChatSpeaker:JoinChannel() を使用してこれを行うことができます)。
プライベート
- タイプ: booル
- 説明: チャンネルが ChatService:GetChannelList() に含まれるかどうかを決定します。これは、チャットチャットとチームチャットのリストに返されるリストに含まれます。
メソッド
キックスピーカー
- 説明: スピーカーをチャンネルから削除し、ユーザーとチャンネルの両方にメッセージを送信します。speakerName が提供される場合、理由はメッセージに含まれます。
- 返す: 無効
ミュートスピーカー
- パラメーター: string : speakerName 、0> Li文字列rary.string0> : 3> reason = nil3> 、6>int6> 、 9>duration = 0 9>
- 説明: スピーカーをチャンネルで指定された speakerName でミュートします。duration が nulo または 0 の場合、ミュートは無効です。0> reason0> が提供された場合、チャンネルにミュートが送信されます。
- 返す: 無効
スピーカーをミュート解除
- 説明: スピーカーをチャンネルで指定された speakerName でミュート解除します。
- 返す: 無効
スピーカーをミュートされています
- 説明: は、speakerName がチャンネルでミュートされているかどうかを記述します。
- 返す: booル
GetSpeakerList
システムメッセージを送信
- 説明: 「システム」ChatSpeaker からチャンネルにメッセージを送信します。
- 返す: 無効
RegisterFilterMessageFunction
- 説明: フィルター機能を登録します、func、チャンネルに識別されます。フィルター機能は、functionId、0>ChatMessage0>、および 3> Library.文字列tring 3> の名前で表示されます。
- 返す: 無効
- 例:
-- この例をチャットモジュールフォルダ内のモジュールスクリプトに入れます。
local functionId = "getPizza"
local command = "/pizza"
local toolId = 22596452 -- ペパロニピザのスライスギア
local function processCommand(speakerName, message, channelName)
if string.sub(message, 1, command:len()) == command then
local model = game:GetService("InsertService"):LoadAsset(toolId)
local tool = model:GetChildren()[1]
local speaker = ChatService:GetSpeaker(speakerName)
local player = speaker:GetPlayer()
tool.Parent = player.Backpack
return true
end
return false
end
local function runChatModule(ChatService)
ChatService:RegisterProcessCommandsFunction(functionId, processCommand)
end
return runChatModule
UnregisterFilterMessageFunction を
- 説明: フィルター関数を登録しなおします (RegisterFilterMessageFunction によって登録されます)、functionId 。
- 返す: 無効
RegisterProcessCommandsFunction
- 説明: プロセスコマンド関数を登録します。 func 、 functionId でチャットに表示される前に、チャットを通過します。メッセージがフィル
- 返す: 無効
- 例:
-- この例をチャットモジュールフォルダ内のモジュールスクリプトに入れます。
-- この例では、キーワードをフィルターし、成功するとメッセージのチャットカラーを設定します
local functionId = "greenText"
local keyword = "#green"
local chatColor = Color3.new(0, 1, 0) -- 緑
local function doFilter(speaker, messageObject, channelName)
-- メッセージにキーワードが含まれているかどうかをチェックします
local start, finish = string.find(messageObject.Message, keyword)
if start and finish then
-- メッセージからキーワードを削除 (フィルタ) し、ChatColor を設定します
messageObject.Message = string.gsub(messageObject.Message, keyword, "")
messageObject.ExtraData.ChatColor = chatColor
end
end
local function runChatModule(ChatService)
-- チャンネルを作成し、フィルター機能を登録する
local testChannel = ChatService:AddChannel("TestChannel")
testChannel:RegisterFilterMessageFunction(functionId, doFilter)
end
return runChatModule
UnregisterProcessCommandsFunction を
- 説明: コマンドプロセッサーを登録しなおします (RegisterProcessCommandsFunction によって登録されます)、functionId を持つ。
- 返す: 無効
イベント
メッセージ投稿済み
- 説明: チャンネルにメッセージが投稿されると、ファイアーします。
スピーカーに参加
- 説明: チャンネルに ChatSpeaker が参加すると、ファイアーします。
スピーカー左
- 説明: チャンネルを離れると、ChatSpeakerがファイアをオンにします。
スピーカーミュートされています
- 説明: チャンネルで ChatSpeaker がミュートされると、ファイアーをオンにします。
スピーカーのミュート解除
- 説明: は、ChatSpeaker がミュート解除されるときに発動します。