TextChatService

Artık kullanılmayanları göster

*Bu içerik, yapay zekâ (beta) kullanılarak çevrildi ve hatalar içerebilir. Sayfayı İngilizce görüntülemek için buraya tıkla.

Oluşturulamaz
Hizmet

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

Yöntemler

  • DisplayBubble(partOrCharacter : Instance,message : string):()

    Verilen parçanın veya oyuncu karakterinin üzerinde bir sohbet balonu görüntüler.

  • Bekletir

    Bir kullanıcının deneyimlerde sohbet etme iznine sahip olup olmadığını belirler.

  • CanUsersChatAsync(userIdFrom : number,userIdTo : number):boolean
    Bekletir

    İki kullanıcının birbirlerine mesaj gönderecek olup olmadığını belirler.

  • CanUsersDirectChatAsync(requesterUserId : number,userIds : Array):Array
    Bekletir

    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

Geri Aramalar

Özellikler

ChatTranslationEnabled

Çoğaltılmamış
Roblox Betik Güvenliği
Paralel oku

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

Erişilemez Güvenliği
Paralel oku

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

Eklenti Güvenliği
Paralel oku

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

Eklenti Güvenliği
Paralel oku

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

partOrCharacter: Instance

Balonun yukarıda görüntülenmesi gereken kısım veya karakter.

Varsayılan değer: ""
message: string

Sohbet balonunda görüntülenecek metin.

Varsayılan değer: ""

Dönüşler

()

CanUserChatAsync

Bekletir

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

userId: number
Varsayılan değer: ""

Dönüşler

CanUsersChatAsync

Bekletir

İ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

userIdFrom: number
Varsayılan değer: ""
userIdTo: number
Varsayılan değer: ""

Dönüşler

CanUsersDirectChatAsync

Bekletir

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önlendirebilir
else
-- İstekçinin kullanıcı kimliği, herhangi bir iPad1 veya iPad2 ile sohbeti yönlendiremez
end

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

requesterUserId: number

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.

Varsayılan değer: ""
userIds: Array

İ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.

Varsayılan değer: ""

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.

CanUsersDirectChatAsync

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

BubbleDisplayed

TextChatService:DisplayBubble() çağrıldığında ateş eder.

Parametreler

partOrCharacter: Instance
textChatMessage: TextChatMessage

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

textChatMessage: TextChatMessage

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: TextChatMessage

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

adornee: Instance

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


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


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.