サーバー側チャットモジュール

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

次のチャットモジュールを使用して、Legacy Chat System のサーバー側の動作をサポートするために、サーバー側の動作をサポートできます:

  • ChatService : すべての他のチャットモジュールを管理するシングルトン。
  • ChatSpeaker : チャットチャンネルでメッセージを作成するエンティティ;各 Player には自動的にチャットスピーカーがあり、ボットがチャットスピーカーを作成することでチャットをチャットできます。
  • ChatMessage : チャットスピーカーがチャットチャンネルに送信するコンテンツのコンテナ。メッセージを形式変換するために使用されるメタデータを含みます。
  • ChatChannel : チャットスピーカーがチャットメッセージを交換できるチャンネル。チームチャットとウィッシュチャットのためにも使用されます。

チャットサービス

ChatService は、Lua チャットシステムのサーバー側の動作を処理するシングルオブジェクトで、ChatChannelsChatSpeakers などがあります。

すべての ModuleScript は、 ChatModule フォルダ内のすべての機能を返す必要があり、その機能はチャットサービスのシングルトンによって呼び出されます。

メソッド

チャンネルを追加

  • パラメーター: string : channelName
  • 説明: は、指定された名前でチャットチャンネルオブジェクトを作成し、それを返します。

チャンネルを削除

  • パラメーター: string : channelName
  • 説明: 指定された名前のチャンネルを削除します
  • 返す: 無効

GetChannel

  • パラメーター: string : channelName
  • 説明: は、指定された名前でチャンネルを返します、または存在しない場合には、nilです。

スピーカーを追加

  • パラメーター: string : speakerName
  • 説明: スピーカーをチャットに追加し、指定された名前で戻します。

スピーカーを削除

  • パラメーター: string : speakerName
  • 説明: スピーカーをチャットから削除します。
  • 返す: 無効

スピーカーを取得

  • パラメーター: string : speakerName
  • 説明: スピーカーを指定された名前で返します。また、存在しない場合は nil で返します。

GetChannelList

  • パラメータ: なし
  • 説明: チャットにあるすべての非プライベートチャンネルの名前のリストを返します。
  • 返り: 配列< string >

GetAutoJoinChannelList を取得

  • パラメータ: なし
  • 説明: は、チャットに AutoJoin が設定されているすべてのチャンネルの名前のリストを返します。
  • 返り: 配列< string >

RegisterFilterMessageFunction

  • パラメーター: string : functionId 、0> 関数0> : 3> func 3>
  • 説明: フィルター機能をチャットに登録します。メッセージの変更はすべて 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 を

  • パラメーター: string : functionId
  • 説明: フィルター関数を登録しなおします (RegisterFilterMessageFunction によって登録されます)、functionId
  • 返す: 無効

RegisterProcessCommandsFunction

  • パラメーター: string : functionId 、0> 関数0> : 3> func 3>
  • 説明: チャットによって識別されたプロセスコマンド機能を登録します。メッセージがフィルタリングされる前に、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 を

  • パラメーター: string : functionId
  • 説明: コマンドプロセッサーを登録しなおします (RegisterProcessCommandsFunction によって登録されます) 、functionId を指定します。
  • 返す: 無効

イベント

チャンネル追加

  • パラメーター: string : channelName
  • 説明: チャンネルがチャットに追加されるときに発動します。

チャンネルを削除

  • パラメーター: string : channelName
  • 説明: チャットからチャンネルを削除すると、ファイアーします。

スピーカー追加

  • パラメーター: string : speakerName
  • 説明: スピーカーがチャットに追加されるときに発動します。

スピーカーを削除

  • パラメーター: string : speakerName
  • 説明: スピーカーがチャットから削除されると、ファイアーします。

チャットスピーカー

チャットスピーカー は、チャットチャンネル で話す 1つのエンティティの表示です。各 Player は、ゲームに自動的にチャットスピーカーを持つことができます。非ユーザー (例えば、1>アナウンサーやヒントメッセージのメッセージ1> を

プロパティ

名前

  • タイプ: string : Name
  • 説明: スピーカーの名前、多くの他の関数を参照するときに使用されます。

メソッド

チャンネルに参加

  • パラメーター: string : channelName
  • 説明: スピーカーをチャンネルに追加します。channelName が与えられました
  • 返す: 無効

チャンネルを終了

  • パラメーター: string : channelName
  • 説明: スピーカーをチャンネルから削除し、channelName を与えます
  • 返す: 無効

GetChannelList

  • パラメーター: なし
  • 説明: スピーカーが所属するすべてのチャンネルの名前のリストを返します。
  • 返り: 配列< string >

インチャンネル

  • パラメーター: string : channelName
  • 説明: スピーカーが 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 にメッセージを送信します。チャンネルにそのようなスピーカーがない場合、このメソッドは警告を作成し、スピーカーはメッセージを見ることはできません。
  • 返す: 無効

システムメッセージを送信

  • パラメータ: string : message 、 0> Library.strin文字列0> : 3> channelName 3>
  • 説明: システムメッセージを ChatChannel に送信します。channelName が与えられた 0>チャンネル名0> で、スピーカーがチャンネルにある場合、このメッセージは警告を作成し、他のスピーカーはチャンネルを見ることはできません。
  • 返す: 無効

ゲットプレイヤー

  • パラメーター: なし
  • 説明: スピーカーに関連する Player オブジェクトを返します。スピーカーがユーザーではない場合 (ボット) は、nil が返されます。
  • 戻り値: Player または nil

SetExtraData を設定

  • パラメーター: string : key 、バリアント 0> data0>
  • 説明: スピーカーの下の特定の key の下に、スピーカーがチャットメッセージを送信すると、この追加データはメッセージに付属されます。たとえメッセージが明示的に指定されていない場合でも、これによりスピーカーのチャット色が設設定するされます。たとえば、次のメッセージが明示的に指定され
  • 返す: 無効

GetExtraData

  • パラメーター: string : key
  • 説明: は、key を使用して設定された追加データを返します。
  • 返す: バリアント

メインチャンネルを設定

  • パラメーター: string : channelName
  • 説明: スピーカーを提供されたチャンネルで話すように設定します。MainChannelSet を発動させます。
  • 返り: nil

イベント

SaidMessage

受信したメッセージ

  • パラメーター: チャットメッセージ message 、 0> Library.strin文字列0> : 3> chanネーム 3>
  • 説明: スピーカーが ChatMessage を受信したときに発動します。

受信したシステムメッセージ

  • パラメーター: チャットメッセージ message 、 0> Library.strin文字列0> : 3> chanネーム 3>
  • 説明: スピーカーがシステムの ChatMessage を受信したときに発動します。

チャンネルに参加

  • パラメータ: string : channelName 、 0> Library.strin文字列0> : 3> chanWelcomeMessage 3>
  • 説明: スピーカーが ChatChannel に与えられた channelName で参加するときに発動します。

チャンネル左

  • パラメーター: string : channelName
  • 説明: スピーカーが ChatChannel を与えた channelName で終了したときに発動します。

ミュートされています

  • パラメーター: string : channelName 、0> Li文字列rary.string0> : 3> reason = nil3> 、6>int6> : 9> duration 9> = 0
  • 説明: スピーカーが ChatChannel にミュートされているときに発動します。 channelName が与えられた期間について (ある場合) が提供されます。 0>reason0> が提供される可能性があります。

ミュート解除

  • パラメーター: string : channelName
  • 説明: スピーカーが ChatChannel にミュート解除され、channelName が与えられたときに発射されます。

追加のデータ更新

  • パラメーター: string : key 、バリアント 0> data0>
  • 説明: スピーカーの追加データでキーのデフォルト値を更新すると、発動します。

メインチャンネルセット

  • パラメーター: string : channelName
  • 説明: スピーカーのメインチャンネルが ChatChannel に変更されたときに発動します。

チャットメッセージ

チャットメッセージ は、チャットスピーカー から送信されたメッセージを表示するデータ構造です。メッセージには、テキストの長さ、1>テキストが Roblox によってフィルタリングされたかどうか1>、メッセージの表示に追加のデータなどが含まれています。

プロパティ

ID

  • タイプ: int
  • 説明: メッセージにユニークな数値識別子。

スピーカーから

  • タイプ: string :
  • 説明: メッセージを送信した ChatSpeaker の名前。

オリジナルチャンネル

  • タイプ: string :
  • 説明: メッセージがオリジナルになったチャットチャンネルの名前。

フィルタリングされています

  • タイプ: booル
  • 説明: メッセージが Roblox によってフィルタリングされるかどうかを記述します (メッセージが true の場合、メッセージは nil です)

メッセージ長度

  • タイプ: int
  • 説明: メッセージの長さ。これを使用すると、メッセージがフィルタリングされた場合、ハッシュアウトされた文字列を生成できます。

メッセージ

  • タイプ: string または nil
  • 説明: メッセージのテキスト。このプロパティは nil です。

メッセージタイプ

  • タイプ: string :
  • 説明: メッセージの種類。これらの種類は、ChatCommands モジュールで説明されています:
  • 可能な値: "Message""System"、 0> "MeCommand"0>、 3> "Welcome"3>、 6> "SetCore"6>、 9> "Whisper" 9>

時間

  • タイプ: int
  • 説明: タイムスタンプ;メッセージの作作品時の os.time() の値。

追加データ

  • タイプ: 辞書< 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() に含まれるかどうかを決定します。これは、チャットチャットとチームチャットのリストに返されるリストに含まれます。

メソッド

キックスピーカー

  • パラメーター: string : speakerName , 0> Library.strin文字列0> : 3> reason = nil 3>
  • 説明: スピーカーをチャンネルから削除し、ユーザーとチャンネルの両方にメッセージを送信します。speakerName が提供される場合、理由はメッセージに含まれます。
  • 返す: 無効

ミュートスピーカー

  • パラメーター: string : speakerName 、0> Li文字列rary.string0> : 3> reason = nil3> 、6>int6> 、 9>duration = 0 9>
  • 説明: スピーカーをチャンネルで指定された speakerName でミュートします。duration が nulo または 0 の場合、ミュートは無効です。0> reason0> が提供された場合、チャンネルにミュートが送信されます。
  • 返す: 無効

スピーカーをミュート解除

  • パラメーター: string : speakerName
  • 説明: スピーカーをチャンネルで指定された speakerName でミュート解除します。
  • 返す: 無効

スピーカーをミュートされています

  • パラメーター: string : speakerName
  • 説明: は、speakerName がチャンネルでミュートされているかどうかを記述します。
  • 返す: booル

GetSpeakerList

  • パラメーター: なし
  • 説明: は、チャットスピーカー が現在チャンネルにある場合、すべての名前のリストを返します。
  • 返り: 配列< string >

システムメッセージを送信

  • パラメーター: string : message
  • 説明: 「システム」ChatSpeaker からチャンネルにメッセージを送信します。
  • 返す: 無効

RegisterFilterMessageFunction

  • パラメーター: string : functionId 、0> function0> 、 3> func 3>
  • 説明: フィルター機能を登録します、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 を

  • パラメーター: string : functionId
  • 説明: フィルター関数を登録しなおします (RegisterFilterMessageFunction によって登録されます)、functionId
  • 返す: 無効

RegisterProcessCommandsFunction

  • パラメーター: string : functionId 、0> function0> 、 3> func 3>
  • 説明: プロセスコマンド関数を登録します。 funcfunctionId でチャットに表示される前に、チャットを通過します。メッセージがフィル
  • 返す: 無効
  • 例:

-- この例をチャットモジュールフォルダ内のモジュールスクリプトに入れます。
-- この例では、キーワードをフィルターし、成功するとメッセージのチャットカラーを設定します
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 を

  • パラメーター: string : functionId
  • 説明: コマンドプロセッサーを登録しなおします (RegisterProcessCommandsFunction によって登録されます)、functionId を持つ。
  • 返す: 無効

イベント

メッセージ投稿済み

  • パラメーター: チャットメッセージ : message
  • 説明: チャンネルにメッセージが投稿されると、ファイアーします。

スピーカーに参加

  • パラメーター: string : speakerName
  • 説明: チャンネルに ChatSpeaker が参加すると、ファイアーします。

スピーカー左

  • パラメーター: string : speakerName
  • 説明: チャンネルを離れると、ChatSpeakerがファイアをオンにします。

スピーカーミュートされています

  • パラメーター: string : speakerName 、0> Library.strin文字列0> : 3> reason3> 、6>int6> 、 9> duration = 0 9>
  • 説明: チャンネルで ChatSpeaker がミュートされると、ファイアーをオンにします。

スピーカーのミュート解除

  • パラメーター: string : speakerName
  • 説明: は、ChatSpeaker がミュート解除されるときに発動します。