TextChatService
*Este conteúdo é traduzido por IA (Beta) e pode conter erros. Para ver a página em inglês, clique aqui.
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
Determina se a tradução de chat está habilitada.
Determina se deve habilitar totalmente TextChatService reverter ao sistema de chat legado.
Determina se TextChatService deve criar padrão TextChatCommands .
Determina se TextChatService deve criar padrão TextChannels .
Métodos
Exibe uma bolha de bate-papo acima da parte ou personagem do jogador fornecido.
Determina se um usuário tem permissão para conversar em experiências.
Determina se dois usuários receberiam ou não mensagens um do outro.
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
Dispara quando TextChatService:DisplayBubble().
Dispara quando é invocado no cliente ou quando o cliente recebe uma resposta válida de do servidor.
Incêndios quando TextChannel:SendAsync() é chamado pelo cliente de envio.
Callbacks
Chamado quando uma conversa de bolhas está prestes a ser exibida.
Chamado quando uma nova mensagem está prestes a ser exibida na janela de chat. Isso só pode ser implementado no cliente.
Chamado quando TextChatService estiver recebendo uma mensagem recebida.
Propriedades
ChatTranslationEnabled
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
Determina se deve habilitar totalmente TextChatService reverter ao sistema de chat legado.Definir esta propriedade para Enum.ChatVersion.LegacyChatService efetivamente desabilita TextChatService.
CreateDefaultCommands
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
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
A parte ou personagem que a bolha deve ser exibida acima.
O texto a ser exibido na bolha de bate-papo.
Devolução
CanUserChatAsync
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
Devolução
CanUsersChatAsync
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
Devolução
CanUsersDirectChatAsync
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 amboselse-- O requerente uuid não pode direcionar o chat com o ID de usuário 1 ou 2end
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
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.
Uma lista de usuários com os quais o requerenteUserId gostaria de conversar diretamente. Usuários não no servidor atual são ignorados.
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.
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
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
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
O TextChatMessage da chamada TextChannel:SendAsync().
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 .
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.