TextChatService

Mostrar obsoleto

*Este conteúdo é traduzido por IA (Beta) e pode conter erros. Para ver a página em inglês, clique aqui.

Não criável
Serviço

Um serviço que lida com o bate-papo de texto na experiência, incluindo managing channels , decorando mensagens, filtrando texto, creating commands , e desenvolvendo interfaces de bate-papo personalizadas .

Para saber mais, veja Visão geral do TextChatService.

Para personalização adicional, o TextChatService tem as seguintes crianças únicas:

Resumo

Propriedades

Métodos

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

    Exibe uma bolha de bate-papo acima da parte ou personagem do jogador fornecido.

  • Rendimentos

    Determina se um usuário tem permissão para conversar em experiências.

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

    Determina se dois usuários receberiam ou não mensagens um do outro.

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

    Determina se um usuário tem permissão para conversar diretamente com outros usuários em experiências com base em fatores como suas configurações de controle parental.

Eventos

Callbacks

Propriedades

ChatTranslationEnabled

Não replicado
Segurança do script Roblox
Ler Parallel

Determina se a tradução de chat está habilitada.Se verdadeiro, uma mensagem do sistema notificará o jogador quando ele se juntar pela primeira vez que mensagens de chat podem ser traduzidas para o idioma preferido do jogador.

ChatVersion

Segurança do script Roblox
Ler Parallel

Determina se deve habilitar totalmente TextChatService reverter ao sistema de chat legado.Definir esta propriedade para Enum.ChatVersion.LegacyChatService efetivamente desabilita TextChatService.

CreateDefaultCommands

Segurança do plugin
Ler Parallel

Determina se TextChatService deve criar padrão TextChatCommands .

Se verdadeiro, os seguintes TextChatCommands são criados e colocados em um Folder chamado Comandos de Chat de Texto dentro de TextChatService :


<th>Aliases Primários</th>
<th>Aliás Secundário</th>
<th>Descrição</th>
<th>Exemplo de Uso</th>
</tr>
</thead>
<tbody>
<tr>
<td><b>Comando RBXClear</b></td>
<td>limpar</td>
<td>cls</td>
<td>Limpa o registro de chat para o usuário local.</td>
<td><code>/cls</code></td>
</tr>
<tr>
<td><b>Comando do Console RBX</b></td><td>console</td>
<td />
<td>Abre o Console do Desenvolvedor.</td><td><code>/console</code> ></td>
</tr>
<tr>
<td><b>Comando RBXEmote</b></td>
<td>emote</td>
<td>e</td>
<td>Reproduz um emote de avatar.</td>
<td><code>/e dança</code></td>
</tr>
<tr>
<td><b>Comando RBXHelp</b></td>
<td>ajudar</td>
<td>?</td>
<td>Mostra uma lista de comandos de chat.</td>
<td><code>/ajuda</code></td>
</tr>
<tr>
<td><b>Comando RBXMute</b></td>
<td>silenciar / mudo</td>
<td>m</td>
<td>Silencia um usuário por seu <code>Class.Player.Name|Name</code> ou <code>Class.Player.DisplayName|DisplayName</code> em todos os <code>Class.TextChannel|TextChannels</code>.</td>
<td><code>/m Nome de usuário</code></td>
</tr>
<tr>
<td><b>Comando de Equipe RBX</b></td>
<td>equipe</td>
<td>t</td>
<td>Entre no modo de bate-papo em equipe onde as mensagens só são visíveis para os colegas de equipe.</td>
<td><code>/t</code></td>
</tr>
<tr>
<td><b>Comando RBXUnmute</b></td>
<td>desativar</td>
<td>um</td>
<td>Desativa um usuário por seu <code>Class.Player.Name|Name</code> ou <code>Class.Player.DisplayName|DisplayName</code> em todos os <code>Class.TextChannel|TextChannels</code>.</td>
<td><code>Nome de usuário /um</code></td>
</tr>
<tr>
<td><b>Comando RBXVersão</b></td>
<td>versão</td>
<td>v</td>
<td>Mostra a versão do chat.</td>
<td><code>/versão</code></td>
</tr>
<tr>
<td><b>Comando RBXWhisper</b></td>
<td>sussurrar</td>
<td>w</td>
<td>Entra no modo de sussurro com outra <code>Classe.Player</code>.</td>
<td><code>/w DisplayName</code> ou <code>/w @Usuário</code></td>
</tr>
</tbody>
Qual o nome

Observe que você pode editar, Criare remover TextChatCommands mesmo que CreateDefaultCommands seja verdadeiro. Observe também que os comandos mudo e desmudo se aplicam a todos os TextChannels .

CreateDefaultTextChannels

Segurança do plugin
Ler Parallel

Determina se TextChatService deve criar padrão TextChannels .Se for verdadeiro, um Folder chamado Canais de Texto é criado dentro de TextChatService na hora de executar para conter o TextChannels descrito na tabela abaixo.Cada um dos canais padrão tem o comportamento especial descrito aplicado a mensagens usando sua função de retorno de chamada internamente vinculada TextChannel.OnIncomingMessage, alterando como as mensagens aparecem ao serem enviadas através do canal.O retorno de chamada é atribuído automaticamente, seja na hora de executar (se o TextChannel existir) ou quando o TextChannel for criado.


<th>Descrição</th>
</tr>
</thead>
<tbody>
<tr>
<td><b>RBX Geral</b></td>
<td><code>Class.TextChannel</code> para mensagens do jogador.Na janela de chat, as mensagens são modificadas para que Class.TextChatMessage.PrefixText|PrefixText receba uma tag de cor de fonte de texto rico para dar aos jogadores de bate-papo seu nome distintivo.Se <code>Class.Player.Team</code> existir, esse <code>Class.Team.TeamColor</code> é usado em vez da cor do nome padrão.</td>
</tr>
<tr>
<td><b>Sistema RBX</b></td>
<td><code>Class.TextChannel</code> para mensagens do sistema.Na janela de chat, as mensagens são modificadas de modo que <code>Class.TextChatMessage.Text</code> seja dada uma tag de cor cinza claro por padrão, ou uma tag de cor vermelha se <code>Class.TextChatMessage.Metadata</code> contiver a palavra <code>"Erro"</code>.</td>
</tr>
<tr>
<td><b>Equipe RBX[Cor do Tijolo]</b></td>
<td><code>Class.TextChannel</code> para mensagens específicas de equipe, criadas quando um <code>Class.Team.TeamColor|TeamColor</code> está em uso por qualquer <code>Class.Team</code> dentro do serviço <code>Class.Teams</code>.O nome do canal criado é <b>RBXTeam</b> seguido pelo nome <code>Class.Team.TeamColor|TeamColor</code>.Por exemplo, <b>RBXTeamCrimson</b> é um <code>Class.TextChannel</code> criado quando há uma equipe ativa cuja propriedade <code>Class.Team.TeamColor|TeamColor</code> é o "Crimson" <code>Datatype.BrickColor</code> .Na janela de chat, as mensagens são modificadas de modo que <code>Class.TextChatMessage.PrefixText|PrefixText</code> seja colorido de acordo com o <code>Class.Player.TeamColor|TeamColor</code> e seja prependido com <b>[Equipe]</b> .Canais de equipe criam <code>Class.TextSource|TextSources</code> para todos os não- <code>Class.Player.Neutral|Neutral</code> jogadores com a propriedade correspondente <code>Class.Team.TeamColor|TeamColor</code>, permitindo que eles usem o chat de equipe exclusivamente.Canais são removidos se não houver equipes restantes com uma classe <code>Class.Team.TeamColor|TeamColor</code> associada.</td>
</tr>
<tr>
<td><b>RBXWhisper:[UserId1]_[UserId2]</b></td>
<td><code>Class.TextChannel</code> para mensagens de sussurro entre dois jogadores, criada quando um jogador usa o comando <code>/whisper</code> em outro jogador.Por exemplo, <b>RBXWhisper:2276836_505306092</b> é um <code>Class.TextChannel</code> para jogadores com <code>Class.Player.UserId|UserIds</code><b>2276836</b> e <b>505306092</b>.Dentro dos canais de sussurro existem dois <code>Class.TextSource|TextSources</code> associados ao respectivo <code>Class.Player.UserId|UserIds</code> .Na janela de chat, as mensagens são coloridas da mesma forma que as mensagens em <b>RBXGeneral</b> e <code>Class.TextChatMessage.PrefixText</code> é modificado para mostrar se uma mensagem foi enviada ou recebida pelo usuário local.Os canais de sussurro são removidos quando algum jogador deixa a experiência.</td>
</tr>
</tbody>
Canal

Observe que os padrões TextChannel.OnIncomingMessage de chamada de volta podem ser substituídos.Observe também que você pode editar, Criare remover TextChannels mesmo se CreateDefaultTextChannels for verdadeiro.

Mensagens de diferentes Canais de Texto podem ser separadas em diferentes abas na janela de chat usando ChannelTabsConfiguration .

Métodos

DisplayBubble

()

Exibe uma bolha de bate-papo acima do personagem da parte ou do jogador fornecido e dispara o evento BubbleDisplayed com os parâmetros especificados neste método.Pode exibir bolhas para personagens não jogadores (NPCs) se você especificar uma parte dentro do personagem, como sua cabeça.

Observe que este método está disponível apenas para uso em LocalScript , ou em um Script com RunContext de Enum.RunContext.Client .

Parâmetros

partOrCharacter: Instance

A parte ou personagem que a bolha deve ser exibida acima.

Valor Padrão: ""
message: string

O texto a ser exibido na bolha de bate-papo.

Valor Padrão: ""

Devolução

()

CanUserChatAsync

Rendimentos

Determina se um usuário tem permissão para conversar em experiências.Fatores como configurações de controle parental podem impedir o usuário de enviar mensagens.Erros se o ID do usuário não estiver no servidor atual.Observe que este método pode ser usado com todos os jogadores atuais UserIds em um Script com RunContext de Enum.RunContext.Server ou Enum.RunContext.Legacy .Este método também pode ser usado em um LocalScript mas apenas com o UserId do jogador local.

Parâmetros

userId: number
Valor Padrão: ""

Devolução

CanUsersChatAsync

Rendimentos

Determina se dois usuários receberiam ou não mensagens um do outro.Fatores como configurações de controle parental incompatíveis ou status bloqueado podem impedir a entrega de mensagens entre usuários TextChannels internamente use esse resultado para determinar se deve entregar mensagens entre usuários.Observe que este método está disponível apenas para uso em um Script com RunContext de Enum.RunContext.Server ou Enum.RunContext.Legacy .

Parâmetros

userIdFrom: number
Valor Padrão: ""
userIdTo: number
Valor Padrão: ""

Devolução

CanUsersDirectChatAsync

Rendimentos

Determina se um usuário tem permissão para conversar diretamente com outros usuários em experiências com base em suas configurações de controle parental. Para ser usado quando:

  • A linha de comunicação é iniciada pelo usuário (não iniciada pelo desenvolvedor ou pelo jogo)
  • O acesso à comunicação é fechado e limitado

Um exemplo de bate-papo direto é um canal de sussurro entre dois usuários.

Você pode usar esse método para gerenciar certos recursos em sua experiência dependendo do resultado.

Ao criar um TextChannel para um chat direto, use TextChannel:SetDirectChatRequester() para definir o requerenteUserId para que o canal possa determinar se deve entregar mensagens entre usuários.Quando TextChannel.DirectChatRequester não é nulo, TextChannels internamente use esse resultado para determinar se deve entregar mensagens entre usuários.


local whoCanDirectChat = TextChatService:CanUsersDirectChatAsync(requesterUserId, { userId1, userId2 })
if #whoCanDirectChat > 0 then
-- O requerenteUserId pode direcionar o chat com o ID de usuário {number1}, {number2} ou ambos
else
-- O requerente uuid não pode direcionar o chat com o ID de usuário 1 ou 2
end

Observe que este método está disponível apenas para uso em um Script com RunContext de Enum.RunContext.Server ou Enum.RunContext.Legacy .

Parâmetros

requesterUserId: number

O usuário que teria iniciado o solicitar / pedirde bate-papo direto. Se o requerenteUserId não estiver no servidor atual, este método irá falhar.

Valor Padrão: ""
userIds: Array

Uma lista de usuários com os quais o requerenteUserId gostaria de conversar diretamente. Usuários não no servidor atual são ignorados.

Valor Padrão: ""

Devolução

Uma lista de usuários que podem participar do solicitar / pedirde bate-papo direto.Se nenhum dos usuários puder direcionar o bate-papo com o requesterUserId, o resultado é um matriz / listavazio.

Amostras de código

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

Eventos

BubbleDisplayed

Dispara quando TextChatService:DisplayBubble().

Parâmetros

partOrCharacter: Instance
textChatMessage: TextChatMessage

MessageReceived

Como TextChannel.MessageReceived , dispara quando TextChannel:DisplaySystemMessage() é invocado no cliente ou quando o cliente recebe uma resposta válida de TextChannel:SendAsync() do servidor.Este evento só é disparado no cliente.

Se a propriedade do servidor TextChannel.ShouldDeliverCallback estiver vinculada e retornar false, o cliente não disparará TextChatService.MessageReceived.

Use o parâmetro TextChatMessage para obter o TextSource e o texto da mensagem (com TextChatMessage.Text).

O parâmetro TextChatMessage é o resultado final de qualquer função vinculada a TextChatService.OnIncomingMessage ou TextChannel.OnIncomingMessage.

Parâmetros

textChatMessage: TextChatMessage

O recebido TextChatMessage .


SendingMessage

Incêndios quando TextChannel:SendAsync() é chamado pelo cliente de envio.Use isso para permitir que mensagens de espaço reservado sejam mostradas ao usuário enquanto aguarda a resposta do servidor para TextChannel:SendAsync() .

Parâmetros


Callbacks

OnBubbleAdded

Chamado quando um bate-papo de bolhas está prestes a ser exibido. Isso só pode ser implementado no cliente.

Use isso para personalizar mensagens de bate-papo de bolhas individuais.Se este retorno de chamada retornar um BubbleChatMessageProperties, essas propriedades serão aplicadas à bolha associada, substituindo as propriedades BubbleChatConfiguration.Se um UICorner , UIGradient ou ImageLabel for pai sob BubbleChatMessageProperties , eles também substituirão seus respectivos homólogos definidos em BubbleChatConfiguration .

Se a mensagem de bate-papo for enviada por um jogador, message.TextSource corresponderá a esse jogador e adornee será nil.

Se a mensagem de chat for enviada via TextChatService:DisplayBubble() , adornee será o partOrCharacter fornecido e message.TextSource será nil .

Quando vinculado ao cliente que envia uma mensagem, este retorno de chamada é executado duas vezes: primeiro quando a mensagem é inicialmente enviada e recebida localmente, e novamente quando o cliente recebe o resultado da mensagem filtrada do servidor.

Parâmetros

O recebido TextChatMessage .

adornee: Instance

A parte ou personagem ao qual a mensagem do bate-papo de bolhas está anexada.


Devolução

Se um BubbleChatMessageProperties for retornado, suas propriedades substituem as propriedades BubbleChatConfiguration.

OnChatWindowAdded

Chamado quando uma nova mensagem está prestes a ser exibida na janela de chat. Isso só pode ser implementado no cliente.

Use isso para personalizar mensagens individuais que aparecem na janela de chat.Se este retorno de chamada retornar um ChatWindowMessageProperties, essas propriedades serão aplicadas à mensagem associada, substituindo as propriedades ChatWindowConfiguration.Se um UIGradient for pai sob ChatWindowMessageProperties , também substituirá a propriedade TextColor3 definida em ChatWindowConfiguration.

Quando vinculado ao cliente que envia uma mensagem, este retorno de chamada é executado duas vezes: primeiro quando a mensagem é inicialmente enviada e recebida localmente, e novamente quando o cliente recebe o resultado da mensagem filtrada do servidor.

Parâmetros

O recebido TextChatMessage .


Devolução

Se um ChatWindowMessageProperties for retornado, suas propriedades substituem as propriedades ChatWindowConfiguration.

OnIncomingMessage

Chamado quando TextChatService estiver recebendo uma mensagem recebida. Só pode ser implementado no cliente.

Use isso para decorar TextChatMessages .Se este retorno de chamada retornar um TextChatMessageProperties, essas propriedades são mescladas com o parâmetro TextChatMessage para criar um novo TextChatMessage.

Quando vinculado ao cliente que envia uma mensagem, este retorno de chamada é executado duas vezes; primeiro quando a mensagem é inicialmente enviada e recebida localmente e novamente quando o cliente recebe o resultado da mensagem filtrada do servidor.

Observe que este TextChatService.OnIncomingMessage retorno de chamada executa antes de qualquer TextChannel.OnIncomingMessage chamada de volta.

Isso deve ser definido apenas uma vez no código de origem. Várias dependências substituirão uma ao outra de maneira não determinística.

Parâmetros

O recebido TextChatMessage .


Devolução

Se um TextChatMessageProperties for retornado, essas propriedades são mescladas com o parâmetro TextChatMessage para criar um novo TextChatMessage com essas propriedades, caso contrário, se nil for retornado, então TextChatMessage não é alterado.