TextChatService
*Bu içerik, yapay zekâ (beta) kullanılarak çevrildi ve hatalar içerebilir. Sayfayı İngilizce görüntülemek için buraya tıkla.
Deneyim içi metin sohbetini ele alan bir hizmet, , mesajları dekore etme, metin filtreleme, ve özel sohbet arayüzleri geliştirme dahil.
Daha fazla bilgi için, TextChatService Genel Bakışı görün.
Daha fazla özelleştirme için, TextChatService'in aşağıdaki tek çocukları vardır:
Özet
Özellikler
Sohbet çevirisinin etkinleştirilip etkinleştirilmediğini belirler.
Tamamen etkinleştirilip etkinleştirilmeyeceğini veya miras sohbet sistemine geri dönüp dönmeyeceğini belirler: TextChatService
TextChatService 'nin varsayılan TextChatCommands oluşturması gereip geremediğini belirler.
TextChatService 'nin varsayılan TextChannels oluşturması gereip geremediğini belirler.
Yöntemler
Verilen parçanın veya oyuncu karakterinin üzerinde bir sohbet balonu görüntüler.
Bir kullanıcının deneyimlerde sohbet etme iznine sahip olup olmadığını belirler.
İki kullanıcının birbirlerine mesaj gönderecek olup olmadığını belirler.
Bir kullanıcının, ebeveyn kontrol ayarları gibi faktörlere dayalı deneyimlerde doğrudan diğer kullanıcılarla sohbet etme iznine sahip olup olmadığını belirler.
Etkinlikler
TextChatService:DisplayBubble() çağrıldığında ateş eder.
Müşteride TextChannel:DisplaySystemMessage() çağrıldığında veya müşteri, sunucudan geçerli bir TextChannel:SendAsync() yanıtı aldığında ateş eder.
Gönderen istemci tarafından çağrıldığında TextChannel:SendAsync() ateş eder
Geri Aramalar
Bir balon sohbeti görüntülenmek üzere olduğunda çağrılır.
Yeni bir mesaj sohbet penceresinde görüntülenmek üzere olduğunda çağrılır. Bu sadece istemci üzerinde uygulanabilir.
Gelen bir mesaj alırken TextChatService çağrıldığında.
Özellikler
ChatTranslationEnabled
Sohbet çevirisinin etkinleştirilip etkinleştirilmediğini belirler.Eğer doğruysa, bir sistem mesajı oyuncunun ilk katılımı sırasında sohbet mesajlarının oyuncunun tercih ettiği dile çevrilebileceğini bildirir.
ChatVersion
Tamamen etkinleştirilip etkinleştirilmeyeceğini veya miras sohbet sistemine geri dönüp dönmeyeceğini belirler: TextChatServiceBu özelliği Enum.ChatVersion.LegacyChatService olarak ayarlamak, etkili bir şekilde TextChatService 'yi devre dışı bırakır.
CreateDefaultCommands
TextChatService 'nin varsayılan TextChatCommands oluşturması gereip geremediğini belirler.
Eğer doğruysa, aşağıdaki TextChatCommands oluşturulur ve Folder adlı bir içine yerleştirilir TextChatCommands içinde TextChatService :
<th>Birincil Alias</th><th>İkincil Alias</th><th>Açıklama</th><th>Kullanım Örneği</th></tr></thead><tbody><tr><td><b>RBXTemizleme Komutu</b></td><td>temizle</td><td>cls</td><td>Yerel kullanıcı için sohbet günlüğünü temizler.</td><td><code>/cls</code></td></tr><tr><td><b>RBXKonsolKomutu</b></td><td>konsol</td><td /><td>Geliştirici konsolunu açar.</td><td><code>/console</code></td></tr><tr><td><b>RBXEmoteKomutu</b></td><td>ifade</td><td>e</td><td>Bir avatar ifadesi oynar.</td><td><code>/e dansı</code></td></tr><tr><td><b>RBXYardım Komutu</b></td><td>yardım</td><td>?</td><td>Sohbet komutları listesini gösterir.</td><td><code>/yardım</code></td></tr><tr><td><b>RBXMuteKomutu</b></td><td>sustur</td><td>m</td><td>Bir kullanıcıyı <code>Class.Player.Name|Name</code> veya <code>Class.Player.DisplayName|DisplayName</code> ile tüm <code>Class.TextChannel|TextChannels</code> 'da susturur.</td><td><code>/m Kullanıcı adı</code></td></tr><tr><td><b>RBXTakım Komutu</b></td><td>takım</td><td>t</td><td>Mesajların sadece takım arkadaşları tarafından görülebildiği takım sohbeti moduna girer.</td><td><code>/t</code></td></tr><tr><td><b>RBXUnmuteKomutu</b></td><td>sessiz kaldır</td><td>um</td><td>Bir kullanıcıyı <code>Class.Player.Name|Name</code> veya <code>Class.Player.DisplayName|DisplayName</code> ile tüm <code>Class.TextChannel|TextChannels</code> 'da susturur.</td><td><code>/um Kullanıcı adı</code></td></tr><tr><td><b>RBXVersionKomutu</b></td><td>versiyon</td><td>v</td><td>Sohbet versiyonunu gösterir.</td><td><code>/versiyon</code></td></tr><tr><td><b>RBXWhisperKomutası</b></td><td>fısılda</td><td>w</td><td>Başka bir <code>Class.Player</code> ile fısıltı moduna girer.</td><td><code>/w DisplayName</code> veya <code>/w @Username</code></td></tr></tbody>
Adı |
---|
Not: TextChatCommands gerçek olsa bile düzenleyebilir, oluşturabilir ve kaldırabilirsiniz CreateDefaultCommands. Ayrıca sessiz ve sesli komutların tüm TextChannels için geçerli olduğunu unutmayın.
CreateDefaultTextChannels
TextChatService 'nin varsayılan TextChannels oluşturması gereip geremediğini belirler.Eğer doğruysa, Folder adlı bir TextChannels içinde çalışma sırasında aşağıdaki tabloda belirtilen TextChannels açıklanan içerik bulunmak üzere bir TextChatService oluşturulur.Varsayılan kanalların her biri, içeri bağlı TextChannel.OnIncomingMessage geri arama işlevi kullanılarak mesajlara uygulanan açıklanmış özel davranışa sahiptir, böylece mesajların kanal aracılığıyla gönderildiğinde nasıl göründüğü değişir.Geri çağrı, çalışma sırasında (TextChannel) veya TextChannel varsa) otomatik olarak atanır.
<th>Açıklama</th></tr></thead><tbody><tr><td><b>RBXGenel</b></td><td><code>Oyuncu mesajları için Class.TextChannel</code>Sohbet penceresinde, mesajlar <code>Sınıf.TextChatMessage.PrefixText|PrefixText</code> tarafından alınır <a href="../../../ui/rich-text.md">zengin metin renk etiketi</a> , sohbet oyuncularına benzersiz adlarını vermek için.Eğer <code>Class.Player.Team</code> varsa, bu <code>Class.Team.TeamColor</code> varsayılan isim rengi yerine kullanılır.</td></tr><tr><td><b>RBXSistem</b></td><td><code>Sistem mesajları için Class.TextChannel</code>Sohbet penceresinde, mesajlar öyle değiştirilir ki <code>Class.TextChatMessage.Text</code> varsayılan olarak hafif gri bir renk etiketi alır veya <code>Class.TextChatMessage.Metadata</code> kelime <code>"Hata"</code> içeriyorsa kırmızı bir etiket.</td></tr><tr><td><b>RBXTakım[TuğlaRenk]</b></td><td><code>Sınıf.TextChannel</code> takım spesifik oyuncu mesajları için, bir <code>Sınıf.Team.TeamColor|TeamColor</code> hizmetinde kullanılırken oluşturuldu, <code>Sınıflar.Teams</code> servisi içinde herhangi bir <code>Sınıf.Team</code> tarafından kullanılan.Oluşturulan kanalın adı <b>RBXTeam</b>'dur ve ardından <code>Class.Team.TeamColor|TeamColor</code> adı gelir.Örneğin, RBXTeamCrimson bir Class.TextChannel oluşturur, aktif bir takımın Class.Team.TeamColor|TeamColor özelliğinin "Kızıl" Datatype.BrickColor olduğu durumda yaratılır.Sohbet penceresinde, mesajlar modifiye edilir, böylece Class.TextChatMessage.PrefixText|PrefixText ile renklendirilir ve [Takım] eklenir.Takım kanalları, eşleşen Class.Player.Neutral|Neutral olan tüm oyuncular için kullanılabilir takım sohbeti oluşturur.Kanallar, eşleşen bir <code>Sınıf.Takım.TakımRenk|TakımRenk</code> ile bağlantılı kalan takım yoksa kaldırılır.</td></tr><tr><td><b>RBXWhisper:[Kullanıcı1][Kullanıcı2]</b></td><td><code>Sınıf.TextChannel</code> iki oyuncu arasındaki fısıltı mesajları için, bir oyuncu başka bir oyuncuya <code>/whisper</code> komutunu kullandığında oluşturuldu.Örneğin <b>RBXWhisper:2276836_505306092</b> bir <code>Class.TextChannel</code> oyuncular için <code>Class.Player.UserId|UserIds</code> ile <b>2276836</b> ve <b>505306092</b> .Fısıltılı kanalların içinde iki <code>Class.TextSource|TextSources</code> , birbirine ilişkin <code>Class.Player.UserId|UserIds</code> ile bağlantılı, sohbet penceresinde mesajlar aynı renkte görünür.Yerel kullanıcı tarafından gönderilen veya alınan bir mesajın gösterilip gösterilmediğini göstermek için <b>RBXGeneral</b> ve <code>Class.TextChatMessage.PrefixText</code> 'nin değiştirildiği Whisper kanalları, oyuncunun deneyimden ayrıldığında kaldırılır.</td></tr></tbody>
Kanalı |
---|
Varsayılan TextChannel.OnIncomingMessage geri çağrılarının üzerine yazılabileceğini unutmayın.Ayrıca, TextChannels doğru olsa bile düzenleyebilir, oluşturabilir ve kaldırabilirsiniz CreateDefaultTextChannels.
Farklı TextChannels'dan gelen mesajlar, ChannelTabsConfiguration kullanarak sohbet penceresinde farklı sekmelere ayrılabilir.
Yöntemler
DisplayBubble
Verilen parça veya oyuncu karakterinin üzerinde bir sohbet balonu görüntüler ve bu yöntemde belirtilen parametarlarla BubbleDisplayed etkinliğini ateş eder.Karakterin içinde bir parça belirtirseniz, başı gibi karakter dışındaki karakterler için balonları gösterebilir (NPC'ler).
Bu yöntemin yalnızca LocalScript veya Script ile kullanılabilir olduğunu unutmayın, çünkü RunContext ile Enum.RunContext.Client 'in çalışması yoktur.
Parametreler
Balonun yukarıda görüntülenmesi gereken kısım veya karakter.
Sohbet balonunda görüntülenecek metin.
Dönüşler
CanUserChatAsync
Bir kullanıcının deneyimlerde sohbet etme iznine sahip olup olmadığını belirler.Ebeveyn kontrol ayarları gibi faktörler, kullanıcının mesaj göndermesini engelleyebilir.Kullanıcı kimliği mevcut sunucuda değilse hatalar.Bu yöntemin mevcut tüm oyuncu ile UserIds kullanılabileceğini unutmayın Script ile RunContext``Enum.RunContext.Server veya Enum.RunContext.Legacy ile çalışır LocalScript içinde de kullanılabilir, ancak yalnızca yerel oyuncunun UserId 'sı ile.
Parametreler
Dönüşler
CanUsersChatAsync
İki kullanıcının birbirlerine mesaj gönderecek olup olmadığını belirler.Uyumsuz ebeveyn kontrol ayarları veya engellenmiş durum gibi faktörler, kullanıcılar arasında mesajların gönderilmesini engelleyebilir TextChannels içeri bu sonucu kullanarak kullanıcılar arasında mesajların gönderilip gönderilmeyeceğini belirleyebilir.Bu yöntemin yalnızca Script ile kullanılmasına izin verildiğini unutmayın RunContext ile Enum.RunContext.Server veya Enum.RunContext.Legacy .
Parametreler
Dönüşler
CanUsersDirectChatAsync
Bir kullanıcının, ebeveyn kontrol ayarlarına dayalı deneyimlerde diğer kullanıcılarla doğrudan sohbet etme iznine sahip olup olmadığını belirler. Kullanılacak:
- İletim hattı kullanıcı tarafından başlatılır (geliştirici veya oyun tarafından başlatılmaz)
- İletişime erişim kapalı ve sınırlı
Doğrudan bir sohbet örneği, iki kullanıcı arasındaki bir fısıltı kanalıdır.
Sonuca bağlı olarak deneyiminizde belirli özellikleri kapatmak için bu yöntemi kullanabilirsiniz.
Doğrudan bir sohbet için bir TextChannel oluştururken, kanalın kullanıcılar arasında mesajların gönderilip gönderilmeyeceğini belirleyebilmesi için istekçi kimliğini ayarlamak için TextChannel:SetDirectChatRequester() kullanın.When TextChannel.DirectChatRequester nil olmadığında, TextChannels içsel olarak bu sonucu kullanarak kullanıcılar arasında mesajların gönderilip gönderilmeyeceğini belirler.
local whoCanDirectChat = TextChatService:CanUsersDirectChatAsync(requesterUserId, { userId1, userId2 })if #whoCanDirectChat > 0 then-- İstekçi kimliği, #{number1}, #{number2} veya her ikisine de sohbet yönlendirebilirelse-- İstekçinin kullanıcı kimliği, herhangi bir iPad1 veya iPad2 ile sohbeti yönlendiremezend
Bu yöntemin yalnızca Script ile kullanılmasına izin verildiğini unutmayın RunContext ile Enum.RunContext.Server veya Enum.RunContext.Legacy .
Parametreler
Doğrudan sohbet isteğini başlatacak kullanıcı. Eğer talep eden kullanıcının URI'si mevcut sunucuda bulunmuyorsa, bu yöntem hata verir.
İstekçinin kullanıcılar listesi, doğrudan sohbet etmek istediği kullanıcıların bir listesi. Mevcut sunucudaki kullanıcılar göz ardı edilir.
Dönüşler
Doğrudan sohbet talepkatılabilecek kullanıcıların bir listesi.Kullanıcılardan hiçbiri istek eden kullanıcıya sohbet yönlendiremezse, sonuç boş bir dizi olur.
Kod Örnekleri
This example checks if two users can chat, creates a new TextChannel, and adds them to it.
local TextChatService = game:GetService("TextChatService")
local directChatParticipants = TextChatService:CanUsersDirectChatAsync(userId1, { userId2 })
-- Check for eligible participants
if #directChatParticipants > 0 then
local directChannel = Instance.new("TextChannel")
directChannel.Parent = TextChatService
for _, participant in directChatParticipants do
directChannel:AddUserAsync(participant)
end
return directChannel
end
warn("Could not create TextChannel. Not enough eligible users.")
return nil
Etkinlikler
MessageReceived
Like TextChannel.MessageReceived , istemciye TextChannel:DisplaySystemMessage() çağrıldığında veya istemci, sunucudan geçerli bir TextChannel:SendAsync() yanıtı aldığında ateş eder.Bu olay yalnızca istemci üzerinde ateşlenir.
sunucuTextChannel.ShouldDeliverCallback özelliği bağlanmış ve false geri döndürürse, istemci TextChatService.MessageReceived ateş etmez.
TextChatMessage ve mesajın metnini almak için TextSource ve TextChatMessage.Text parametresini kullanın.
TextChatMessage parametri, TextChatService.OnIncomingMessage veya TextChannel.OnIncomingMessage bağlı herhangi bir işlevin sonuçudur.
Parametreler
Alınan TextChatMessage .
SendingMessage
Gönderen istemci tarafından çağrıldığında TextChannel:SendAsync() ateş ederBunu kullanarak yer tutucu mesajların sunucu yanıtı beklenirken kullanıcıya gösterilmesine izin verin TextChannel:SendAsync() .
Parametreler
TextChatMessage çağrısından gelen TextChannel:SendAsync() .
Geri Aramalar
OnBubbleAdded
Bir balon sohbeti görüntülenmek üzere olduğunda çağrılır. Bu sadece istemci üzerinde uygulanabilir.
Bireysel balon sohbet mesajlarını özelleştirmek için bunu kullanın.Bu geri arama bir BubbleChatMessageProperties döndürürse, bu özellikler ilişkili balona uygulanacak ve BubbleChatConfiguration özelliklerini geçecektir.Bir , veya ebeveyn olarak altında yer alırsa, bunlar ayrıca 'de tanımlanan karşılıklarını da geçersiz kılarlar.
Sohbet mesajı bir oyuncu tarafından gönderilirse, message.TextSource o oyuncuya karşılık gelecek ve adornee da olacak nil .
Sohbet mesajı aracılığıyla gönderilirse, sağlanacak ve olacak.
Mesaj gönderen müşteriye bağlandığında, bu geri çağrı iki kez çalıştırılır: öncelikle mesaj ilk kez yerel olarak gönderildiğinde ve ardından müşteri, filtrelenmiş mesajın sonucunu sunucudan aldığında tekrar.
Parametreler
Gelen TextChatMessage .
Balon sohbet mesajına bağlı olan parça veya karakter.
Dönüşler
Bir BubbleChatMessageProperties döndürülürse, özellikleri BubbleChatConfiguration özelliklerini geçersiz kılar.
OnChatWindowAdded
Yeni bir mesaj sohbet penceresinde görüntülenmek üzere olduğunda çağrılır. Bu sadece istemci üzerinde uygulanabilir.
Bu, sohbet penceresinde görünen bireysel mesajları özelleştirmek için kullanın.Bu geri arama bir ChatWindowMessageProperties döndürürse, bu özellikler ilişkili mesaja uygulanacak ve ChatWindowConfiguration özelliklerini geçecektir.Eğer bir altında ebeveyn olursa, ayrıca özelliğini de geçersiz kılacaktır .
Mesaj gönderen müşteriye bağlandığında, bu geri çağrı iki kez çalıştırılır: öncelikle mesaj ilk kez yerel olarak gönderildiğinde ve ardından müşteri, filtrelenmiş mesajın sonucunu sunucudan aldığında tekrar.
Parametreler
Gelen TextChatMessage .
Dönüşler
Bir ChatWindowMessageProperties döndürülürse, özellikleri ChatWindowConfiguration özelliklerini geçersiz kılar.
OnIncomingMessage
TextChatService gelen bir mesaj alırken çağrılır. Sadece istemci üzerinde uygulanabilir.
Bunu TextChatMessages dekore etmek için kullanın.Bu geri arama bir TextChatMessageProperties döndürürse, bu özellikler yeni bir TextChatMessage oluşturmak için TextChatMessage ile birleştirilir.
Mesaj gönderen müşteriye bağlandığında, bu geri çağrı iki kez çalıştırılır; öncelikle mesaj ilk kez yerel olarak gönderilir ve ardından müşteri, filtrelenmiş mesajın sonucunu sunucudan alır.
Bu TextChatService.OnIncomingMessagenın herhangi bir geri arama dan önce çalıştığını unutmayın TextChannel.OnIncomingMessage.
Bu, kaynak kodunda sadece bir kez tanımlanmalıdır. Çok sayıda bağlantı birbirini belirli olmayan bir şekilde geçersiz kılacaktır.
Parametreler
Gelen TextChatMessage .
Dönüşler
Bir TextChatMessageProperties döndürülürse, bu özellikler TextChatMessage ile birleştirilir ve bu özelliklerle yeni bir TextChatMessage oluşturulur, aksi takdirde, nil döndürülürse, TextChatMessage değiştirilmez.