TextChannel

顯示已棄用項目

*此內容是使用 AI(Beta 測試版)翻譯,可能含有錯誤。若要以英文檢視此頁面,請按一下這裡

代表文字聊天頻道。包含 TextSources 作為子孫。

若要向 TextChannel 發送聊天訊息,請從 TextChannel:SendAsync() 呼叫 LocalScript 。對應的 TextSource 用戶的 TextSource.CanSend = true 必須在該頻道中。

不同文字通道的訊息可以使用 ChannelTabsConfiguration 在聊天視窗中分開到不同標籤。

要了解更多,請參閱體驗內文字聊天

概要

屬性

  • 唯讀
    未複製
    平行讀取

    TextChannel 只會將訊息傳送給能夠直接傳送訊息到 DirectChatRequester 的使用者。

方法

活動

回調

屬性

DirectChatRequester

唯讀
未複製
平行讀取

TextChannel 只會將訊息傳送給能夠直接傳送訊息給 DirectChatRequester 的使用者。此特性只能使用 SetDirectChatRequester() 來設定。

方法

DisplaySystemMessage

向使用者顯示系統訊息。只能在 LocalScript 中使用,或在 Script 中使用 RunContextEnum.RunContext.Client 。訊息只對該使用者可見,並不會自動過濾或本地化。

參數

systemMessage: string

系統訊息傳送到 TextChannel

預設值:""
metadata: string

用於識別系統訊息類型,例如預設系統訊息。

預設值:""

返回

一個 TextChatMessage 具有 TextChatMessage.Status 屬性,指示訊息的狀態。

SetDirectChatRequester

()

設置 DirectChatRequesterTextChannel。此方法僅適用於服務器腳本使用。

如果您使用 TextChatService 和擁有外部默認文字通道之外的自訂聊天實現,請使用此 API。

當在 上呼叫那是父級的 並沒有現有的 時, 將要求的用戶添加為 並設置 通頻道的 屬性。

DirectChatRequester 設定時,只有能夠與 DirectChatRequester 進行聊天的使用者之間的訊息才會被傳送。


local function createWhisperChannel(fromPlayer, toPlayer)
local whisperChannel = Instance.new("TextChannel")
whisperChannel:SetDirectChatRequester(fromPlayer)
whisperChannel:AddUserAsync(toPlayer.UserId)
-- 文字通道實例現在有兩個文字來源實例。
return whisperChannel
end

參數

requester: Player
預設值:""

返回

()

AddUserAsync

暫停

添加 TextSource 到給予使用者的 TextChannel 指定用戶ID (使用 Player.UserId ),只能在 Script 中使用。

如果代表使用者的 TextSource 不存在,這會添加 TextSource

如果代表使用者的 TextSource 存在,這將返回 TextSource

如果使用者關閉聊天或不在伺服器中,這會返回一個tuple nilfalse

參數

userId: number

Player 的用戶 ID。

預設值:""

返回

如果為使用者創建了新的 和 ,則返回 和 ;如果已存在 或 ,則返回 和 ;如果使用者關閉聊天或不在此服務器上,則返回 和 。

暫停

向服務伺服器發送 TextChatMessage 。只能在 LocalScript 中使用,或在 Script 中使用 RunContextEnum.RunContext.Client

metadata 參數有200個字符的限制。如果使用 metadata 參數來呼叫此方法,其中包含超過 200 個字符,則訊息將不會傳送給其他使用者。相反,發送者將收到 TextChatMessageTextChatMessage.MetadataTextChatMessage.Text 屬性設為空字串的組合。

參數

message: string

要傳送到 TextChannel 的訊息。

預設值:""
metadata: string

可附加到訊息的自訂元數據。

預設值:""

返回

一個 TextChatMessage 具有 TextChatMessage.Status 屬性,指示訊息的狀態。

活動

MessageReceived

TextChatService.MessageReceived 一樣,在客戶端呼叫 TextChannel:DisplaySystemMessage() 時或從服務伺服器收到有效的 TextChannel:SendAsync() 回應時發生。此事件只在客戶端發射。

如果伺服器的 TextChannel.ShouldDeliverCallback 屬性已綁定並返回 false ,客戶端將不會發射 TextChannel.MessageReceived

使用 TextChatMessage 參數來獲得 TextSource 和訊息的文字 (使用 TextChatMessage.Text )。

TextChatMessage 參數是任何綁定到 TextChatService.OnIncomingMessageTextChannel.OnIncomingMessage 的函數的最終結果。

參數

incomingMessage: TextChatMessage

收到的 TextChatMessage


回調

OnIncomingMessage

TextChannel 收到來自外部的訊息時,會呼叫。只能在客戶端上實裝。

使用此來裝飾 TextChatMessages 。如果此回呼返回 TextChatMessageProperties ,這些屬性將與 TextChatMessage 參數合併,創建新的 TextChatMessage

當綁定到發送訊息的客戶端時,此回呼會兩次運行;首先當訊息最初在本地傳送和接收時,再次當客戶端從伺服器接收過濾訊息的結果時。

TextChannel.OnIncomingMessage 回呼總是在 之後TextChatService.OnIncomingMessage 回調執行。

這應該只在來源代碼中定義一次 TextChannel 。多個綁定到同一通道的值會以非決定性方式覆蓋 друг друга。

TextChatService:CreateDefaultTextChannels() 是真實的時,那些預設 TextChannels 將在內部分配其 TextChannel.OnIncomingMessage 回呼來展示特殊預設行為。

參數

收到的 TextChatMessage


返回

如果返回 TextChatMessageProperties,這些屬性將與 TextChatMessage 參數合併,創建一個新的 TextChatMessage 擁有這些屬性。

ShouldDeliverCallback

TextChannel 收到來自服務器的來訊時,呼叫每個客戶來確定是否應該將該訊息傳送給該客戶。只能在伺服器上定義。

一旦定義,此回呼需要返回真值,例如 true1"hello" 來向該客戶傳送訊息。如果回呼返回任何其他內容(包括 nil),訊息將不會傳送給該客戶端,但發送者仍然會看到訊息。

發送者可以由 TextChatMessage.TextSource 參考,而接收者是 textSource 參引數。請注意,發送者和接收者可能相同,因為回呼會循環通過所有可用的接收者。在 Roblox Studio 中,你將在單人 播放 模式期間成為唯一的發送者和接收者,傳送訊息。

參數

正在傳送的訊息,其中也包含訊息的發送者。

textSource: TextSource

接收訊息的使用者的 TextSource


返回