TextChannel
*เนื้อหานี้แปลโดยใช้ AI (เวอร์ชัน Beta) และอาจมีข้อผิดพลาด หากต้องการดูหน้านี้เป็นภาษาอังกฤษ ให้คลิกที่นี่
แทนที่ช่องแชทข้อความ มี TextSources เป็นลูกหลาน
เพื่อส่งข้อความแชทไปยัง TextChannel โทร TextChannel:SendAsync() จาก LocalScript .ตัวตรงข้าม TextSource ของผู้ใช้ที่มี TextSource.CanSend = true จะต้องอยู่ในช่องนั้น
ข้อความจากช่องข้อความที่แตกต่างกันสามารถแยกออกเป็นแท็บต่างๆในหน้าต่างแชทโดยใช้ ChannelTabsConfiguration
เพื่อเรียนรู้เพิ่มเติมดูที่ การแชทข้อความในประสบการณ์
สรุป
คุณสมบัติ
The TextChannel จะส่งข้อความไปยังผู้ใช้ที่สามารถส่งข้อความโดยตรงไปยัง DirectChatRequester ได้เท่านั้น
วิธีการ
แสดงข้อความระบบให้กับผู้ใช้
ตั้งค่า DirectChatRequester สําหรับ TextChannel ค่า TextChannel จะส่งข้อความไปยังผู้ใช้ที่สามารถส่งข้อความโดยตรงไปยัง DirectChatRequester เท่านั้น
เพิ่ม TextSource ให้กับ TextChannel ที่ให้ ID ของผู้ใช้ Player
ส่ง TextChatMessage ไปยังเซิร์ฟเวอร์
อีเวนต์
จะเกิดไฟไหม้เมื่อ TextChannel:DisplaySystemMessage() ถูกเรียกใช้บนไคลเอนต์ หรือเมื่อไคลเอนต์ได้รับการตอบสนองที่ถูกต้อง TextChannel:SendAsync() จากเซิร์ฟเวอร์
Callbacks
เรียกเมื่อ TextChannel ได้รับข้อความที่เข้ามา
เรียกสำหรับแต่ละไคลเอนต์เมื่อ TextChannel ได้รับข้อความที่เข้ามาเพื่อตรวจสอบว่าควรส่งไปยังไคลเอนต์นั้นหรือไม่
คุณสมบัติ
DirectChatRequester
TextChannel จะส่งข้อความไปยังผู้ใช้ที่สามารถส่งข้อความโดยตรงไปยัง DirectChatRequester ได้เท่านั้น คุณสมบัตินี้สามารถตั้งค่าได้เฉพาะโดยใช้ SetDirectChatRequester()
วิธีการ
DisplaySystemMessage
แสดงข้อความระบบให้กับผู้ใช้สามารถใช้ได้เฉพาะใน LocalScript หรือใน Script ที่มี RunContext ของ Enum.RunContext.Clientข้อความจะปรากฏเฉพาะกับผู้ใช้รายนั้นและไม่ถูกกรองหรือแปลโดยอัตโนมัติ
พารามิเตอร์
ข้อความระบบที่ส่งไปยัง TextChannel
ใช้เพื่อระบุประเภทข้อความระบบ เช่น ข้อความระบบเริ่มต้น
ส่งค่ากลับ
A TextChatMessage ที่มีคุณสมบัติ TextChatMessage.Status ที่ระบุเงื่อนไขของข้อความ
SetDirectChatRequester
ตั้งค่า DirectChatRequester สำหรับ TextChannel วิธีนี้ใช้ได้เฉพาะในสคริปต์เซิร์ฟเวอร์เท่านั้น
ใช้ API นี้หากคุณกำลังทำงานกับ TextChatService และมีการใช้งานที่กําหนดเองสําหรับการแชทโดยตรงนอกช่องข้อความเริ่มต้น
เมื่อเรียกใน TextChannel ที่เป็นพ่อของ TextChatService และไม่มี TextSources ที่มีอยู่แล้ว SetDirectChatRequester เพิ่มผู้ใช้ที่ร้องขอเป็น TextSource และตั้งค่าคุณสมบัติ DirectChatRequester สำหรับช่อง
เมื่อ DirectChatRequester ถูกตั้งค่าไว้ จะมีการส่งข้อความระหว่างผู้ใช้เท่านั้นที่สามารถสนทนากับ DirectChatRequester ได้
local function createWhisperChannel(fromPlayer, toPlayer)
local whisperChannel = Instance.new("TextChannel")
whisperChannel:SetDirectChatRequester(fromPlayer)
whisperChannel:AddUserAsync(toPlayer.UserId)
-- ตอนนี้ TextChannel มีสองตัวอย่าง TextSource แล้ว
return whisperChannel
end
พารามิเตอร์
ส่งค่ากลับ
AddUserAsync
เพิ่ม TextSource ให้กับ TextChannel ที่ให้ ID ผู้ใช้ (ด้วย Player.UserId ) สามารถใช้ได้เฉพาะใน Script
หากไม่มี TextSource ที่แทนที่ผู้ใช้ไม่มีอยู่ จะเพิ่ม TextSource
หาก TextSource ที่แทนที่ผู้ใช้มีอยู่จริง จะส่งคืน TextSource
หากผู้ใช้ไม่ได้เปิดใช้งานการแชทหรือไม่อยู่ในเซิร์ฟเวอร์ คำสั่งนี้จะคืน tuple nil , false
พารามิเตอร์
ส่งค่ากลับ
ส่งคืน TextSource และ true หากสร้าง TextSource ใหม่สำหรับผู้ใช้, TextSource และ false หากมี TextSource ที่มีอยู่แล้ว, หรือ nil และ false หากผู้ใช้มีแชทปิดหรือไม่ได้อยู่ในเซิร์ฟเวอร์นี้
SendAsync
ส่ง TextChatMessage ไปยังเซิร์ฟเวอร์ สามารถใช้ได้เฉพาะใน LocalScript หรือใน Script ที่มี RunContext ของ Enum.RunContext.Client
พารามิเตอร์
ข้อความที่จะส่งไปยัง TextChannel
เมทาดาต้าที่กำหนดเองเพื่อแนบไปกับข้อความ
ส่งค่ากลับ
A 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 .
Callbacks
OnIncomingMessage
เรียกเมื่อ TextChannel ได้รับข้อความที่เข้ามา สามารถใช้งานได้เฉพาะในไคลเอนต์เท่านั้น
ใช้สิ่งนี้เพื่อตกแต่ง TextChatMessagesหากคอลเลกชันนี้ส่งกลับ TextChatMessageProperties คุณสมบัติเหล่านั้นจะรวมกับพารามิเตอร์ TextChatMessage เพื่อสร้างคุณสมบัติใหม่ TextChatMessage
เมื่อผูกกับไคลเอนต์ที่ส่งข้อความ คอลเลกชันนี้จะถูกเรียกใช้สองครั้ง ครั้งแรกเมื่อข้อความถูกส่งและรับในท้องถิ่นเป็นครั้งแรก และอีกครั้งเมื่อไคลเอนต์ได้รับผลลัพธ์ของข้อความที่กรองจากเซิร์ฟเวอร์
TextChannel.OnIncomingMessage คอลเลกชันการโทรกลับมักจะทำงานหลังจาก **** คอลเลกชันการโทรกลับ TextChatService.OnIncomingMessage
นี้ควรจะกำหนดได้เพียงครั้งเดียวต่อ TextChannel ในโค้ดที่มาจากแหล่งการผูกหลายครั้งไปยังช่องเดียวกันจะทำลายซึ่งกันและกันในลักษณะที่ไม่สามารถกำหนดได้
เมื่อ เป็นจริง ค่าเริ่มต้น จะได้รับการกำหนดให้โทรกลับภายในเพื่อแสดงพฤติกรรมเริ่มต้นพิเศษ
พารามิเตอร์
ที่เข้ามา TextChatMessage ที่ได้รับ
ส่งค่ากลับ
หากกลับ TextChatMessageProperties จะรวมคุณสมบัติเหล่านั้นกับพารามิเตอร์ TextChatMessage เพื่อสร้าง TextChatMessage ใหม่ที่มีคุณสมบัติเหล่านั้น
ShouldDeliverCallback
เรียกสำหรับแต่ละไคลเอนต์เมื่อ TextChannel ได้รับข้อความที่เข้ามาเพื่อตรวจสอบว่าควรส่งไปยังไคลเอนต์นั้นหรือไม่สามารถกำหนดได้เฉพาะบนเซิร์ฟเวอร์เท่านั้น
เมื่อกำหนดแล้ว คอลเลกชันนี้จะต้องส่งค่าจริงเช่น true , 1 หรือ "hello" เพื่อส่งข้อความไปยังไคลเอนต์ที่กล่าวถึงหาก callback ส่งคืนสิ่งอื่น (รวมถึง nil ) ข้อความจะไม่ถูกส่งไปยังไคลเอนต์นั้น แม้ว่าผู้ส่งจะเห็นข้อความได้อย่างไม่เป็นทางการ
ผู้ส่งสามารถอ้างอิงได้โดย TextChatMessage.TextSource ในขณะที่ผู้รับเป็นอาร์กิวเมนต์ textSourceโปรดทราบว่าผู้ส่งและผู้รับสามารถเป็นเดียวกันได้เนื่องจาก callback จะเดินทางผ่านผู้รับทั้งหมดที่เป็นไปได้ใน Roblox Studio คุณจะเป็นผู้ส่งและผู้รับข้อความเพียงรายเดียวในโหมดเล่นเดี่ยว เล่น
พารามิเตอร์
ข้อความที่ถูกส่งซึ่งยังมีผู้ส่งข้อความด้วย
The TextSource ของผู้ใช้ที่จะได้รับข้อความ