TextChatService
*Ce contenu est traduit en utilisant l'IA (Beta) et peut contenir des erreurs. Pour consulter cette page en anglais, clique ici.
Un service qui gère le chat texte en expérience, y compris managing channels , la décoration des messages, le filtrage du texte, creating commands , et développer des interfaces de chat personnalisées .
Pour en savoir plus, voir Aperçu de TextChatService.
Pour une personnalisation supplémentaire, TextChatService a les enfants singleton suivants :
Résumé
Propriétés
Détermine si la traduction de chat est activée.
Détermine si l'on doit pleinement activer TextChatService ou revenir au système de chat hérité.
Détermine si TextChatService doit créer par défaut TextChatCommands.
Détermine si TextChatService doit créer par défaut TextChannels.
Méthodes
Affiche une bulle de chat au-dessus de la partie ou du personnage du joueur fourni.
Détermine si un utilisateur a la permission de discuter dans les expériences.
Détermine si deux utilisateurs recevraient ou non des messages l'un de l'autre.
Détermine si un utilisateur a la permission de discuter directement avec d'autres utilisateurs dans des expériences en fonction de facteurs tels que ses paramètres de contrôle parental.
Évènements
S'enflamme lorsque TextChatService:DisplayBubble() est appelé.
S'enflamme lorsque TextChannel:DisplaySystemMessage() est invoqué sur le client, ou lorsque le client reçoit une réponse valide TextChannel:SendAsync() du serveur.
S'enflamme lorsque TextChannel:SendAsync() est appelé par le client d'envoi.
Rappels
Appelé lorsqu'une bulle de discussion est sur le point d'être affichée.
Appelé lorsqu'un nouveau message est sur le point d'être affiché dans la fenêtre de chat. Cela ne peut être mis en œuvre que sur le client.
Appelé lorsque TextChatService reçoit un message entrant.
Propriétés
ChatTranslationEnabled
Détermine si la traduction de chat est activée.Si c'est vrai, un message du système informera le joueur lors de sa première adhésion au chat que ses messages peuvent être traduits dans la langue préférée du joueur.
ChatVersion
Détermine si l'on doit pleinement activer TextChatService ou revenir au système de chat hérité.Définir cette propriété à Enum.ChatVersion.LegacyChatService désactive effectivement TextChatService .
CreateDefaultCommands
Détermine si TextChatService doit créer par défaut TextChatCommands.
Si c'est vrai, les suivants TextChatCommands sont créés et mis dans un Folder nommé TextChatCommands à l'intérieur de TextChatService :
<th>Alias primaire</th><th>Alias secondaire</th><th>Avertissement</th><th>Exemple d'utilisation</th></tr></thead><tbody><tr><td><b>RBXClearCommand</b></td><td>effacer</td><td>cls</td><td>Efface le journal de chat pour l'utilisateur local.</td><td><code>/cls</code></td></tr><tr><td><b>Commande de console RBX</b></td><td>console</td><td /><td>Ouvre la console du développeur.</td><td><code>/console</code> ></td></tr><tr><td><b>RBXEmoteCommand</b></td><td>emote</td><td>e</td><td>Joue une Emoted'avatar.</td><td><code>/e danse</code></td></tr><tr><td><b>RBXHelpCommand</b></td><td>aide</td><td>?</td><td>Affiche une liste de commandes de chat.</td><td><code>/help</code></td></tr><tr><td><b>RBXMuteCommand</b></td><td>mettre en sourdine</td><td>m</td><td>Muet un utilisateur par son <code>Class.Player.Name|Name</code> ou <code>Class.Player.DisplayName|DisplayName</code> dans tous les <code>Class.TextChannel|TextChannels</code>.</td><td><code>/m Nom d'utilisateur</code></td></tr><tr><td><b>Commande d'équipe RBX</b></td><td>équipe</td><td>t</td><td>Entre dans le mode de chat d'équipe où les messages ne sont visibles que pour les coéquipiers.</td><td><code>/t</code></td></tr><tr><td><b>RBXUnmuteCommande</b></td><td>désactiver</td><td>um</td><td>Désactive le son d'un utilisateur par son <code>Class.Player.Name|Name</code> ou <code>Class.Player.DisplayName|DisplayName</code> dans tous les <code>Class.TextChannel|TextChannels</code>.</td><td><code>Nom d'utilisateur /um</code></td></tr><tr><td><b>RBXVersionCommand</b></td><td>version</td><td>v</td><td>Affiche la version de chat.</td><td><code>/version</code></td></tr><tr><td><b>RBXWhisperCommand</b></td><td>murmurer</td><td>w</td><td>Entre en mode chuchotement avec un autre <code>Class.Player</code>.</td><td><code>/w Nom d'affichage</code> ou <code>/w @Username</code></td></tr></tbody>
Nom |
---|
Notez que vous pouvez modifier, créer et supprimer TextChatCommands même si CreateDefaultCommands est vrai. Notez également que les commandes muet et non muet s'appliquent à tous TextChannels .
CreateDefaultTextChannels
Détermine si TextChatService doit créer par défaut TextChannels.Si c'est vrai, un nommé Canaux de texte est créé à l'exécution pour contenir le détaillé dans la table ci-dessous.Chacun des canaux par défaut a le comportement spécial décrit appliqué aux messages en utilisant sa fonction de rappel interne TextChannel.OnIncomingMessage, modifiant la façon dont les messages apparaissent lorsqu'ils sont envoyés par le chat (chat privé).Le rappel est attribué automatiquement à l'exécution (si le TextChannel existe) ou lorsque le TextChannel est créé.
<th>Avertissement</th></tr></thead><tbody><tr><td><b>RBXGeneral</b></td><td><code>Class.TextChannel</code> pour les messages du joueur.Dans la fenêtre de chat, les messages sont modifiés de sorte que Class.TextChatMessage.PrefixText|PrefixText reçoive une balise de couleur de police de texte enrichi pour donner aux joueurs de chat leur couleur de nom distinctive.Si <code>Class.Player.Team</code> existe, cette <code>Class.Team.TeamColor</code> est utilisée au lieu de la couleur de nom par défaut.</td></tr><tr><td><b>Système RBX</b></td><td><code>Class.TextChannel</code> pour les messages du système.Dans la fenêtre de chat, les messages sont modifiés de sorte que <code>Class.TextChatMessage.Text</code> est donné une balise de couleur gris clair par défaut, ou une balise de couleur rouge si <code>Class.TextChatMessage.Metadata</code> contient le mot <code>"Erreur"</code> .</td></tr><tr><td><b>Équipe RBX[BrickColor]</b></td><td><code>Class.TextChannel</code> pour les messages du joueur spécifiques à l'équipe, créés lorsqu'un <code>Class.Team.TeamColor|TeamColor</code> est en cours d'utilisation par n'importe quelle <code>Class.Team</code> dans le service <code>Class.Teams</code>.Le nom du canal créé est <b>RBXTeam</b> suivi du nom <code>Class.Team.TeamColor|TeamColor</code>.Par exemple, <b>RBXTeamCrimson</b> est une <code>Class.TextChannel</code> créée lorsqu'il y a une équipe active dont la propriété <code>Class.Team.TeamColor|TeamColor</code> est le "Crimson" <code>Datatype.BrickColor</code> .Dans la fenêtre de chat, les messages sont modifiés de sorte que <code>Class.TextChatMessage.PrefixText|PrefixText</code> soit coloré selon le <code>Class.Player.TeamColor|TeamColor</code> et soit préfixé par <b>[Équipe]</b> .Les canaux d'équipe créent <code>Class.TextSource|TextSources</code> pour tous les joueurs non‑ <code>Class.Player.Neutral|Neutral</code> avec la propriété correspondante <code>Class.Team.TeamColor|TeamColor</code>, ce qui leur permet d'utiliser le chat d'équipe uniquement.Les canaux sont supprimés s'il n'y a pas d'équipes restantes avec une classe associée <code>Class.Team.TeamColor|TeamColor</code>.</td></tr><tr><td><b>RBXWhisper : [UserId1]_[UserId2]</b></td><td><code>Class.TextChannel</code> pour les messages chuchotés entre deux joueurs, créé lorsqu'un joueur utilise la commande <code>/whisper</code> sur un autre joueur.Par exemple, <b>RBXWhisper:2276836_505306092</b> est un <code>Class.TextChannel</code> pour les joueurs avec <code>Class.Player.UserId|UserIds</code><b>2276836</b> et <b>505306092</b>.À l'intérieur des canaux de chuchotement, il y a deux <code>Class.TextSource|TextSources</code> associés au respectif <code>Class.Player.UserId|UserIds</code> .Dans la fenêtre de chat, les messages sont colorés de la même manière que ceux dans <b>RBXGeneral</b> et <code>Class.TextChatMessage.PrefixText</code> est modifié pour montrer si un message a été envoyé par le joueur local ou reçu par l'utilisateur local.Les canaux de chuchotement sont supprimés lorsque l'un des joueurs quitte l'expérience.</td></tr></tbody>
Chaîne |
---|
Notez que les appels de rappel par défaut TextChannel.OnIncomingMessage peuvent être écrasés.Notez également que vous pouvez modifier, créer et supprimer TextChannels même si CreateDefaultTextChannels est vrai.
Les messages de différents canaux de texte peuvent être séparés en différentes sections dans la fenêtre de chat en utilisant ChannelTabsConfiguration .
Méthodes
DisplayBubble
Affiche une bulle de chat au-dessus de la partie ou du personnage du joueur fourni, et déclenche l'événement BubbleDisplayed avec les paramètres spécifiés dans cette méthode.Peut afficher des bulles pour les personnages non joueurs (PNJ) si vous spécifiez une partie dans le personnage, comme sa tête.
Notez que cette méthode n'est disponible que pour l'utilisation dans LocalScript ou dans un Script avec RunContext de Enum.RunContext.Client .
Paramètres
La partie ou le personnage qui doit être affiché au-dessus de la bulle.
Le texte à afficher dans la bulle de chat.
Retours
CanUserChatAsync
Détermine si un utilisateur a la permission de discuter dans les expériences.Des facteurs tels que les paramètres de contrôle parental peuvent empêcher l'utilisateur d'envoyer des messages.Erreurs si l'ID utilisateur n'est pas sur le serveur actuel.Notez que cette méthode peut être utilisée avec tous les joueurs actuels UserIds dans un Script avec RunContext de Enum.RunContext.Server ou Enum.RunContext.Legacy .Cette méthode peut également être utilisée dans un LocalScript mais seulement avec le UserId du joueur local.
Paramètres
Retours
CanUsersChatAsync
Détermine si deux utilisateurs recevraient ou non des messages l'un de l'autre.Des facteurs tels que des paramètres de contrôle parental incompatibles ou un statut bloqué peuvent empêcher la livraison de messages entre les utilisateurs TextChannels internement utiliser ce résultat pour déterminer si livrer des messages entre les utilisateurs.Notez que cette méthode n'est disponible que pour une utilisation dans un Script avec RunContext de Enum.RunContext.Server ou Enum.RunContext.Legacy .
Paramètres
Retours
CanUsersDirectChatAsync
Détermine si un utilisateur a la permission de discuter directement avec d'autres utilisateurs dans des expériences en fonction de ses paramètres de contrôle parental. À utiliser lorsque :
- La ligne de communication est initiée par l'utilisateur (pas par le développeur ou le joueur)
- L'accès à la communication est fermé et limité
Un exemple de chat direct est un canal de chuchotement entre deux utilisateurs.
Vous pouvez utiliser cette méthode pour contrôler certaines fonctionnalités dans votre expérience en fonction du resultats.
Lors de la création d'un TextChannel pour un chat direct, utilisez TextChannel:SetDirectChatRequester() pour définir le requérantUserId afin que le canal puisse déterminer si il doit livrer des messages entre les utilisateurs.Lorsque TextChannel.DirectChatRequester n'est pas nul, TextChannels utilise internement ce résultat pour déterminer si l'on doit livrer des messages entre les utilisateurs.
local whoCanDirectChat = TextChatService:CanUsersDirectChatAsync(requesterUserId, { userId1, userId2 })if #whoCanDirectChat > 0 then-- L'utilisateur requérant peut diriger le chat avec either userId1, userId2, ou les deuxelse-- L'utilisateur requérant uuid ne peut pas diriger le chat avec iPad1 ou iPad2end
Notez que cette méthode n'est disponible que pour l'utilisation dans un Script avec RunContext de Enum.RunContext.Server ou Enum.RunContext.Legacy .
Paramètres
L'utilisateur qui aurait initié la demande de chat directe. Si le requérantUserId n'est pas sur le serveur actuel, cette méthode échouera.
Une liste d'utilisateurs avec lesquels le requérant JavaScript souhaite discuter directement. Les utilisateurs n'étant pas sur le serveur actuel sont ignorés.
Retours
Une liste d'utilisateurs qui pourraient participer à la demande de chat direct.Si aucun des utilisateurs ne peut diriger le chat avec le requesterUserId, le résultat est un matricevide.
Échantillons de code
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
Évènements
MessageReceived
Comme TextChannel.MessageReceived , se déclenche lorsque TextChannel:DisplaySystemMessage() est invoqué sur le client, ou lorsque le client reçoit une réponse valide TextChannel:SendAsync() du serveur.Cet événement ne se déclenche que sur le client.
Si la propriété TextChannel.ShouldDeliverCallback du serveur est liée et renvoie false, le client ne déclenchera pas TextChatService.MessageReceived .
Utilisez le paramètre TextChatMessage pour obtenir le TextSource et le texte du message (avec TextChatMessage.Text).
Le paramètre TextChatMessage est le résultat final de toutes les fonctions liées à TextChatService.OnIncomingMessage ou TextChannel.OnIncomingMessage.
Paramètres
Le TextChatMessage.
SendingMessage
S'enflamme lorsque TextChannel:SendAsync() est appelé par le client d'envoi.Utilisez ceci pour permettre l'affichage de messages de remplacement à l'utilisateur pendant l'attente de la réponse du serveur à TextChannel:SendAsync() .
Paramètres
Le TextChatMessage de l'appel TextChannel:SendAsync().
Rappels
OnBubbleAdded
Appelé lorsqu'un chat à bulles est sur le point d'être affiché. Cela ne peut être mis en œuvre que sur le client.
Utilisez ceci pour personnaliser les messages de chat à bulles individuels.Si ce rappel renvoie un BubbleChatMessageProperties, ces propriétés seront appliquées à la bulle associée, remplaçant les propriétés BubbleChatConfiguration.Si un UICorner , UIGradient ou ImageLabel est parenté sous BubbleChatMessageProperties , ils annuleront également leurs homologues respectifs définis dans BubbleChatConfiguration .
Si le message de chat est envoyé par un joueur, message.TextSource correspondra à ce joueur, et adornee sera nil.
Si le message de chat est envoyé via TextChatService:DisplayBubble() , adornee sera le partOrCharacter fourni, et message.TextSource sera nil .
Lorsqu'il est lié au client qui envoie un message, ce rappel est exécuté deux fois : d'abord lorsque le message est initialement envoyé et reçu localement, puis à nouveau lorsque le client reçoit le résultat du message filtré du serveur.
Paramètres
L'entrante TextChatMessage .
La partie ou le personnage auquel le message de chat bulle est attaché.
Retours
Si un BubbleChatMessageProperties est renvoyé, ses propriétés remplacent les propriétés BubbleChatConfiguration.
OnChatWindowAdded
Appelé lorsqu'un nouveau message est sur le point d'être affiché dans la fenêtre de chat. Cela ne peut être mis en œuvre que sur le client.
Utilisez ceci pour personnaliser des messages individuels qui apparaissent dans la fenêtre de chat.Si ce rappel renvoie un ChatWindowMessageProperties, ces propriétés seront appliquées au message associé, remplaçant les propriétés ChatWindowConfiguration.Si un UIGradient est parenté sous ChatWindowMessageProperties , il remplacera également la propriété TextColor3 définie dans ChatWindowConfiguration .
Lorsqu'il est lié au client qui envoie un message, ce rappel est exécuté deux fois : d'abord lorsque le message est initialement envoyé et reçu localement, puis à nouveau lorsque le client reçoit le résultat du message filtré du serveur.
Paramètres
L'entrante TextChatMessage .
Retours
Si un ChatWindowMessageProperties est renvoyé, ses propriétés remplacent les propriétés ChatWindowConfiguration.
OnIncomingMessage
Appelé lorsque TextChatService reçoit un message entrant. Ne peut être implémenté que sur le client.
Utilisez ceci pour décorer TextChatMessages .Si ce rappel renvoie un TextChatMessageProperties , ces propriétés sont fusionnées avec le paramètre TextChatMessage pour créer un nouveau TextChatMessage .
Lorsqu'il est lié au client qui envoie un message, ce rappel est exécuté deux fois ; d'abord lorsque le message est initialement envoyé et reçu localement, puis lorsque le client reçoit le résultat du message filtré du serveur.
Notez que ce rappel TextChatService.OnIncomingMessage s'exécute avant tout rappel TextChannel.OnIncomingMessage.
Cela devrait être défini qu'une seule fois dans le code source. Plusieurs liens se substitueront l'un à l'autre d'une manière non déterministe.
Paramètres
L'entrante TextChatMessage .
Retours
Si un TextChatMessageProperties est renvoyé, ces propriétés sont fusionnées avec le paramètre TextChatMessage pour créer un nouveau TextChatMessage avec ces propriétés, sinon, si nil est renvoyé, alors TextChatMessage n'est pas modifié.