代表文字聊天頻道。包含 TextSources 作為子孫。
若要向 TextChannel 發送聊天訊息,請從 TextChannel:SendAsync() 呼叫 LocalScript 。對應的 TextSource 用戶的 TextSource.CanSend = true 必須在該頻道中。
不同文字通道的訊息可以使用 ChannelTabsConfiguration 在聊天視窗中分開到不同標籤。
要了解更多,請參閱體驗內文字聊天。
概要
屬性
TextChannel 只會將訊息傳送給能夠直接傳送訊息到 DirectChatRequester 的使用者。
方法
向使用者顯示系統訊息。
設置 DirectChatRequester 為 TextChannel 。TextChannel 只會向能夠直接向 DirectChatRequester 發送消息的用戶發送消息。
添加 TextSource 到 TextChannel 給予的用戶ID的 Player 。
向服務伺服器發送 TextChatMessage 。
活動
當在客戶端呼叫 TextChannel:DisplaySystemMessage() 時,或當客戶端從伺服器收到有效的 TextChannel:SendAsync() 回應時,發生火災。
回調
當 TextChannel 收到來自外部的訊息時呼叫。
當 TextChannel 收到來自服務器的來訊時,呼叫每個客戶來確定是否應該將該訊息傳送給該客戶。
屬性
DirectChatRequester
TextChannel 只會將訊息傳送給能夠直接傳送訊息給 DirectChatRequester 的使用者。此特性只能使用 SetDirectChatRequester() 來設定。
方法
DisplaySystemMessage
向使用者顯示系統訊息。只能在 LocalScript 中使用,或在 Script 中使用 RunContext 的 Enum.RunContext.Client 。訊息只對該使用者可見,並不會自動過濾或本地化。
參數
系統訊息傳送到 TextChannel 。
用於識別系統訊息類型,例如預設系統訊息。
返回
一個 TextChatMessage 具有 TextChatMessage.Status 屬性,指示訊息的狀態。
SetDirectChatRequester
設置 DirectChatRequester 為 TextChannel。此方法僅適用於服務器腳本使用。
如果您使用 TextChatService 和擁有外部默認文字通道之外的自訂聊天實現,請使用此 API。
當在 上呼叫那是父級的 並沒有現有的 時, 將要求的用戶添加為 並設置 通頻道的 屬性。
當 DirectChatRequester 設定時,只有能夠與 DirectChatRequester 進行聊天的使用者之間的訊息才會被傳送。
local function createWhisperChannel(fromPlayer, toPlayer)
local whisperChannel = Instance.new("TextChannel")
whisperChannel:SetDirectChatRequester(fromPlayer)
whisperChannel:AddUserAsync(toPlayer.UserId)
-- 文字通道實例現在有兩個文字來源實例。
return whisperChannel
end
參數
返回
AddUserAsync
添加 TextSource 到給予使用者的 TextChannel 指定用戶ID (使用 Player.UserId ),只能在 Script 中使用。
如果代表使用者的 TextSource 不存在,這會添加 TextSource 。
如果代表使用者的 TextSource 存在,這將返回 TextSource。
如果使用者關閉聊天或不在伺服器中,這會返回一個tuple nil、false。
參數
返回
如果為使用者創建了新的 和 ,則返回 和 ;如果已存在 或 ,則返回 和 ;如果使用者關閉聊天或不在此服務器上,則返回 和 。
SendAsync
向服務伺服器發送 TextChatMessage 。只能在 LocalScript 中使用,或在 Script 中使用 RunContext 的 Enum.RunContext.Client 。
metadata 參數有200個字符的限制。如果使用 metadata 參數來呼叫此方法,其中包含超過 200 個字符,則訊息將不會傳送給其他使用者。相反,發送者將收到 TextChatMessage 與 TextChatMessage.Metadata 和 TextChatMessage.Text 屬性設為空字串的組合。
參數
要傳送到 TextChannel 的訊息。
可附加到訊息的自訂元數據。
返回
一個 TextChatMessage 具有 TextChatMessage.Status 屬性,指示訊息的狀態。
活動
MessageReceived
像 TextChatService.MessageReceived 一樣,在客戶端呼叫 TextChannel:DisplaySystemMessage() 時或從服務伺服器收到有效的 TextChannel:SendAsync() 回應時發生。此事件只在客戶端發射。
如果伺服器的 TextChannel.ShouldDeliverCallback 屬性已綁定並返回 false ,客戶端將不會發射 TextChannel.MessageReceived 。
使用 TextChatMessage 參數來獲得 TextSource 和訊息的文字 (使用 TextChatMessage.Text )。
TextChatMessage 參數是任何綁定到 TextChatService.OnIncomingMessage 或 TextChannel.OnIncomingMessage 的函數的最終結果。
參數
收到的 TextChatMessage 。
回調
OnIncomingMessage
當 TextChannel 收到來自外部的訊息時,會呼叫。只能在客戶端上實裝。
使用此來裝飾 TextChatMessages 。如果此回呼返回 TextChatMessageProperties ,這些屬性將與 TextChatMessage 參數合併,創建新的 TextChatMessage 。
當綁定到發送訊息的客戶端時,此回呼會兩次運行;首先當訊息最初在本地傳送和接收時,再次當客戶端從伺服器接收過濾訊息的結果時。
TextChannel.OnIncomingMessage 回呼總是在 之後 的 TextChatService.OnIncomingMessage 回調執行。
這應該只在來源代碼中定義一次 TextChannel 。多個綁定到同一通道的值會以非決定性方式覆蓋 друг друга。
當 TextChatService:CreateDefaultTextChannels() 是真實的時,那些預設 TextChannels 將在內部分配其 TextChannel.OnIncomingMessage 回呼來展示特殊預設行為。
參數
收到的 TextChatMessage 。
返回
如果返回 TextChatMessageProperties,這些屬性將與 TextChatMessage 參數合併,創建一個新的 TextChatMessage 擁有這些屬性。
ShouldDeliverCallback
當 TextChannel 收到來自服務器的來訊時,呼叫每個客戶來確定是否應該將該訊息傳送給該客戶。只能在伺服器上定義。
一旦定義,此回呼需要返回真值,例如 true 、 1 或 "hello" 來向該客戶傳送訊息。如果回呼返回任何其他內容(包括 nil),訊息將不會傳送給該客戶端,但發送者仍然會看到訊息。
發送者可以由 TextChatMessage.TextSource 參考,而接收者是 textSource 參引數。請注意,發送者和接收者可能相同,因為回呼會循環通過所有可用的接收者。在 Roblox Studio 中,你將在單人 播放 模式期間成為唯一的發送者和接收者,傳送訊息。
參數
正在傳送的訊息,其中也包含訊息的發送者。
接收訊息的使用者的 TextSource。