TextChatService

Mostrar obsoleto

*Este contenido se traduce usando la IA (Beta) y puede contener errores. Para ver esta página en inglés, haz clic en aquí.

No creable
Servicio

Un servicio que maneja el chat de texto en experiencia, incluyendo managing channels , decorar mensajes, filtrar texto, creating commands , y desarrollar interfaces de chat personalizadas .

Para obtener más información, vea Visión general de TextChatService.

Para una mayor personalización, TextChatService tiene los siguientes hijos únicos:

Resumen

Propiedades

Métodos

Eventos

Llamadas

Propiedades

ChatTranslationEnabled

No replicado
Seguridad de scripts Roblox
Leer paralelo

Determina si la traducción de chat está habilitada.Si es verdad, un mensaje del sistema notificará al jugador cuando se una por primera vez que los mensajes de chat se pueden traducir al idioma preferido del jugador.

ChatVersion

Seguridad no accesible
Leer paralelo

Determina si se debe habilitar completamente TextChatService o volver al sistema de chat legado.Establecer esta propiedad a Enum.ChatVersion.LegacyChatService efectivamente desactiva TextChatService .

CreateDefaultCommands

Seguridad del plugin
Leer paralelo

Determina si TextChatService debe crear el predeterminado TextChatCommands .

Si es verdad, se crean y ponen en un llamado TextChatCommands dentro de :


<th>Aliases primarios</th>
<th>Alias secundario</th>
<th>Descripción</th>
<th>Ejemplo de uso</th>
</tr>
</thead>
<tbody>
<tr>
<td><b>Comando RBXClear</b></td>
<td>borrar</td>
<td>clk</td>
<td>Limpia el registro de chat para el usuario local.</td>
<td><code>/cls</code></td>
</tr>
<tr>
<td><b>Comando de consola RBX</b></td><td>consola</td>
<td />
<td>Abre la consola del desarrollador.</td><td><code>/console</code></td>
</tr>
<tr>
<td><b>Comando de emote RBX</b></td>
<td>emote</td>
<td>e</td>
<td>Reproduce un emote de avatar.</td>
<td><code>/e danza</code></td>
</tr>
<tr>
<td><b>Comando de ayuda RBX</b></td>
<td>ayuda</td>
<td>?</td>
<td>Muestra una lista de comandos de chat.</td>
<td><code>/ayuda</code></td>
</tr>
<tr>
<td><b>Comando RBXMute</b></td>
<td>silenciar</td>
<td>m</td>
<td>Silencia a un usuario por su <code>Clase.Player.Name|Nombre</code> o <code>Clase.Player.DisplayName|Nombre</code> en todas las <code>Clase.TextChannel|TextChannels</code>.</td>
<td><code>/m Nombre de usuario</code></td>
</tr>
<tr>
<td><b>Comando de equipo RBX</b></td>
<td>equipo</td>
<td>t</td>
<td>Entra en el modo de chat de equipo donde los mensajes solo son visibles para los compañeros de equipo.</td>
<td><code>/t</code></td>
</tr>
<tr>
<td><b>Comando de desactivar RBX</b></td>
<td>desilenciar</td>
<td>um</td>
<td>Silencia a un usuario por su <code>Class.Player.Name|Name</code> o <code>Class.Player.DisplayName|DisplayName</code> en todos los <code>Class.TextChannel|TextChannels</code>.</td>
<td><code>/um Nombre de usuario</code></td>
</tr>
<tr>
<td><b>Comando RBXVersion</b></td>
<td>versión</td>
<td>v</td>
<td>Muestra la versión de chat.</td>
<td><code>/versión</code></td>
</tr>
<tr>
<td><b>Comando RBXWhisper</b></td>
<td>susurrar</td>
<td>w</td>
<td>Entra en modo susurro con otro <code>Class.Player</code>.</td>
<td><code>/w DisplayName</code> o <code>/w @Username</code></td>
</tr>
</tbody>
Nombre

Tenga en cuenta que puede editar, crear y eliminar TextChatCommands incluso si CreateDefaultCommands es cierto. También tenga en cuenta que los comandos silenciar y desilenciar se aplican a todos los TextChannels .

CreateDefaultTextChannels

Seguridad del plugin
Leer paralelo

Determina si TextChatService debe crear el predeterminado TextChannels .Si es verdad, se crea un Folder llamado Canales de texto dentro de TextChatService en tiempo de ejecución para contener el TextChannels delineado en la tabla a continuación.Cada uno de los canales predeterminados tiene el comportamiento especial descrito aplicado a los mensajes usando su función de llamada interna TextChannel.OnIncomingMessage, que cambia la forma en que aparecen los mensajes al enviarse a través del canal.La llamada de devolución se asigna automáticamente al ejecutarse (si existe el TextChannel ) o al crearse el TextChannel .


<th>Descripción</th>
</tr>
</thead>
<tbody>
<tr>
<td><b>RBXGeneral</b></td>
<td><code>Class.TextChannel</code> para mensajes del jugador.En la ventana de chat, los mensajes se modifican para que <code>Class.TextChatMessage.PrefixText|PrefixText</code> reciba una etiqueta de color de fuente <a href="../../../ui/rich-text.md">de texto rico</a> para dar a los jugadores de chat su color distintivo.Si <code>Class.Player.Team</code> existe, ese <code>Class.Team.TeamColor</code> se usa en lugar del color de nombre predeterminado.</td>
</tr>
<tr>
<td><b>Sistema RBX</b></td>
<td><code>Class.TextChannel</code> para mensajes del sistema.En la ventana de chat, los mensajes se modifican para que <code>Class.TextChatMessage.Text</code> reciba una etiqueta de color gris claro por defecto, o una etiqueta de color rojo si <code>Class.TextChatMessage.Metadata</code> contiene la palabra <code>"Error"</code> .</td>
</tr>
<tr>
<td><b>RBXTeam[Color de ladrillo]</b></td>
<td><code>Class.TextChannel</code> para mensajes específicos del equipo, creados cuando un <code>Class.Team.TeamColor|TeamColor</code> está en uso por cualquier <code>Clase.Team</code> dentro del servicio <code>Class.Teams</code>.El nombre del canal creado es <b>RBXTeam</b> seguido por el nombre <code>Class.Team.TeamColor|TeamColor</code> .Por ejemplo, RBXTeamCrimson es un Class.TextChannel creado cuando hay un equipo activo cuya propiedad de Clase.Team.TeamColor|TeamColor es el "Crimson" Datatype.BrickColor .En la ventana de chat, se modifican los mensajes de tal manera que Class.TextChatMessage.PrefixText|PrefixText esté coloreado de acuerdo con el Clase.Player.TeamColor|TeamColor y se prefiere con [Equipo] .Los canales de equipo crean Clase.TextSource|Textources para todos los jugadores no‑ Clase.Player.Neutral|Neutral con el color coincidente, permitiéndoles usar el chat de equipo solo.Los canales se eliminan si no hay equipos restantes con una clase asociada <code>Class.Team.TeamColor|TeamColor</code>.</td>
</tr>
<tr>
<td><b>RBXWhisper:[UserId1]_[UserId2]</b></td>
<td><code>Class.TextChannel</code> para mensajes susurrados entre dos jugadores, creado cuando un jugador usa el comando <code>/whisper</code> en otro jugador.Por ejemplo, <b>RBXWhisper:2276836_505306092</b> es un <code>Class.TextChannel</code> para jugadores con <code>Class.Player.UserId|UserIds</code><b>2276836</b> y <b>505306092</b>.Dentro de los canales de susurro hay dos <code>Class.TextSource|Textources</code> asociados con el respectivo <code>Class.Player.UserId|UserIds</code> .En la ventana de chat, los mensajes se colorean igual que los de <b>RBXGeneral</b> y <code>Class.TextChatMessage.PrefixText</code> se modifica para mostrar si un mensaje fue enviado o recibido por el usuario local.Los canales de susurro se eliminan cuando cualquiera de los jugadores deja la experiencia.</td>
</tr>
</tbody>
Canal

Tenga en cuenta que los llamados de devolución predeterminados TextChannel.OnIncomingMessage se pueden reemplazar.Tenga en cuenta también que puede editar, crear y eliminar TextChannels incluso si CreateDefaultTextChannels es cierto.

Los mensajes de diferentes canales de texto se pueden separar en diferentes pestañas en la ventana de chat usando ChannelTabsConfiguration .

Métodos

DisplayBubble

()

Muestra una burbuja de chat por encima del personaje o parte proporcionada, y dispara el evento BubbleDisplayed con los parámetros especificados en este método.Puede mostrar burbujas para personajes no jugadores (NPC) si especifica una parte dentro del personaje, como su cabeza.

Tenga en cuenta que este método solo está disponible para su uso en LocalScript , o en un Script con RunContext de Enum.RunContext.Client .

Parámetros

partOrCharacter: Instance

La parte o el personaje que la burbuja debe mostrarse por encima.

Valor predeterminado: ""
message: string

El texto que se mostrará en la burbuja de chat.

Valor predeterminado: ""

Devuelve

()

CanUserChatAsync

Proporciona

Determina si un usuario tiene permiso para chatear en experiencias.Factores como los ajustes de control parental pueden impedir que el usuario envíe mensajes.Errores si el ID de usuario no está en el servidor actual.Tenga en cuenta que este método se puede usar con todos los jugadores actuales UserIds en un Script con RunContext de Enum.RunContext.Server o Enum.RunContext.Legacy .Este método también se puede usar en un LocalScript pero solo con el UserId del jugador local.

Parámetros

userId: number
Valor predeterminado: ""

Devuelve

CanUsersChatAsync

Proporciona

Determina si dos usuarios recibirían o no mensajes entre sí.Los factores como los ajustes de control parental incompatibles o el estado bloqueado pueden impedir la entrega de mensajes entre usuarios TextChannels internamente use este resultado para determinar si debe enviarse mensajes entre usuarios.Tenga en cuenta que este método solo está disponible para su uso en un Script con RunContext de Enum.RunContext.Server o Enum.RunContext.Legacy .

Parámetros

userIdFrom: number
Valor predeterminado: ""
userIdTo: number
Valor predeterminado: ""

Devuelve

CanUsersDirectChatAsync

Proporciona

Determina si un usuario tiene permiso para chatear directamente con otros usuarios en experiencias basadas en sus configuraciones de control parental. Para usar cuando:

  • La línea de comunicación es iniciada por el usuario (no iniciada por el desarrollador o el juego)
  • El acceso a la comunicación está cerrado y limitado

Un ejemplo de chat directo es un canal de susurro entre dos usuarios.

Puedes usar este método para habilitar ciertas características en tu experiencia dependiendo del resultado.

Al crear un TextChannel para un chat directo, use TextChannel:SetDirectChatRequester() para establecer el requesterUserId para que el canal pueda determinar si entregar mensajes entre usuarios.Cuando TextChannel.DirectChatRequester no es nulo, TextChannels utiliza internamente este resultado para determinar si debe enviarse mensajes entre usuarios.


local whoCanDirectChat = TextChatService:CanUsersDirectChatAsync(requesterUserId, { userId1, userId2 })
if #whoCanDirectChat > 0 then
-- El requerenteUserId puede dirigir el chat con cualquiera de los ID de usuario siguientes: userId1, userId2, o ambos
else
-- El solicitante URI no puede dirigir el chat con ninguno de los ID de usuario #{1} o #{2}
end

Tenga en cuenta que este método solo está disponible para su uso en un Script con RunContext de Enum.RunContext.Server o Enum.RunContext.Legacy .

Parámetros

requesterUserId: number

El usuario que habría iniciado la solicitud de chat directo. Si el requerenteUserId no está en el servidor actual, este método fallará.

Valor predeterminado: ""
userIds: Array

Una lista de usuarios con los que el solicitante URI gustaría chatear directamente. Los usuarios que no están en el servidor actual se ignoran.

Valor predeterminado: ""

Devuelve

Una lista de usuarios que podrían participar en la solicitud de chat directo.Si ninguno de los usuarios puede dirigir el chat con el requesterUserId, el resultado es un matriz/listavacío.

Muestras 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

Se enciende cuando se llama TextChatService:DisplayBubble().

Parámetros

partOrCharacter: Instance
textChatMessage: TextChatMessage

MessageReceived

Como TextChannel.MessageReceived , se activa cuando TextChannel:DisplaySystemMessage() se invoca en el cliente, o cuando el cliente recibe una respuesta válida de TextChannel:SendAsync() del servidor.Este evento solo se dispara en el cliente.

Si la propiedad TextChannel.ShouldDeliverCallback del servidor está vinculada y devuelve false, el cliente no disparará TextChatService.MessageReceived.

Usa el parámetro TextChatMessage para obtener el TextSource y el texto del mensaje (con TextChatMessage.Text).

El parámetro TextChatMessage es el resultado final de cualquier función vinculada a TextChatService.OnIncomingMessage o TextChannel.OnIncomingMessage.

Parámetros

textChatMessage: TextChatMessage

El recibido TextChatMessage .


SendingMessage

Se enciende cuando TextChannel:SendAsync() se llama por el cliente de envío.Usa esto para permitir que se muestren mensajes de marcador al usuario mientras espera la respuesta del servidor a TextChannel:SendAsync() .

Parámetros

textChatMessage: TextChatMessage

Llamadas

OnBubbleAdded

Se llama cuando un chat de burbujas está a punto de ser mostrado. Esto solo se puede implementar en el cliente.

Usa esto para personalizar mensajes de chat de burbujas individuales.Si esta llamada de devolución devuelve un BubbleChatMessageProperties , esas propiedades se aplicarán a la burbuja asociada, reemplazando las propiedades BubbleChatConfiguration.Si un UICorner , UIGradient , o ImageLabel es patrocinado bajo BubbleChatMessageProperties , también anularán sus respectivas contrapartes definidas en BubbleChatConfiguration .

Si el mensaje de chat es enviado por un jugador, message.TextSource corresponderá a ese jugador, y adornee será nil .

Si el mensaje de chat se envía a través de TextChatService:DisplayBubble() , adornee será el partOrCharacter proporcionado, y message.TextSource será nil .

Cuando se vincula al cliente que envía un mensaje, este llamado de devolución se ejecuta dos veces: primero cuando el mensaje se envía y recibe inicialmente localmente, luego nuevamente cuando el cliente recibe el resultado del mensaje filtrado del servidor.

Parámetros

El entrante TextChatMessage .

adornee: Instance

La parte o el personaje al que se le adjunta el mensaje de chat de burbuja.


Devuelve

Si se devuelve un BubbleChatMessageProperties, sus propiedades anulan las propiedades de BubbleChatConfiguration.

OnChatWindowAdded

Se llama cuando un nuevo mensaje está a punto de ser mostrado en la ventana de chat. Esto solo se puede implementar en el cliente.

Usa esto para personalizar mensajes individuales que aparecen en la ventana de chat.Si esta llamada de devolución devuelve un ChatWindowMessageProperties , esas propiedades se aplicarán al mensaje asociado, reemplazando las propiedades ChatWindowConfiguration.Si un UIGradient es padre bajo ChatWindowMessageProperties , también anulará la propiedad TextColor3 definida en ChatWindowConfiguration.

Cuando se vincula al cliente que envía un mensaje, este llamado de devolución se ejecuta dos veces: primero cuando el mensaje se envía y recibe inicialmente localmente, luego nuevamente cuando el cliente recibe el resultado del mensaje filtrado del servidor.

Parámetros

El entrante TextChatMessage .


Devuelve

Si se devuelve un ChatWindowMessageProperties, sus propiedades anulan las propiedades de ChatWindowConfiguration.

OnIncomingMessage

Se llama cuando TextChatService recibe un mensaje entrante. Solo se puede implementar en el cliente.

Usa esto para decorar TextChatMessages .Si esta llamada de devolución devuelve un TextChatMessageProperties , esas propiedades se fusionan con el parámetro TextChatMessage para crear un nuevo TextChatMessage.

Cuando se vincula al cliente que envía un mensaje, este llamado de devolución se ejecuta dos veces; primero cuando el mensaje se envía y recibe inicialmente localmente, y nuevamente cuando el cliente recibe el resultado del mensaje filtrado del servidor.

Tenga en cuenta que esta llamada de devolución TextChatService.OnIncomingMessage ejecuta antes de cualquier llamada de devolución TextChannel.OnIncomingMessage.

Esto debe definirse solo una vez en el código fuente. Las múltiples dependencias anularán una a otra de manera no determinista.

Parámetros

El entrante TextChatMessage .


Devuelve

Si se devuelve un TextChatMessageProperties se fusionan esas propiedades con el parámetro TextChatMessage para crear un nuevo TextChatMessage con esas propiedades, de lo contrario, si se devuelve nil entonces TextChatMessage no se cambia.