Vous pouvez utiliser les modules de chat suivants pour prendre en charge les comportements côté serveur du système de chat hérité y compris :
- ChatService : un singleton qui gère tous les autres modules de chat.
- ChatSpeaker : Entité qui peut créer des messages dans un ChatChannel ; chaque Player aura automatiquement un ChatSpeaker et les bots peuvent discuter en créant des ChatSpeakers.
- Message de discussion : un conteneur pour le contenu qu'un Speaker de chat envoie à un canal de chat ; contient les métadonnées utilisées pour former le message ou ajouter des fonctionnalités supplémentaires aux commandes.
- <&%ri_tab%&> ChatChannel : un canal par lequel les Speakers de chat peuvent échanger le Message de chat ; également utilisé pour le chat d'équipe et le chat Whisper.
ChatService
ChatService est un objet singleton qui gère le comportement côté serveur du système de chat Lua, comme Chaînes de discussion et locuteurs de chat.
Tous ModuleScript s dans le dossier ChatModuleScript devraient renvoyer une fonction, et cette fonction sera appelée avec le singleton de chat.
Méthodes
Ajouter un canal
- Description : Crée un objet ChatChannel avec le nom donné et le renvoie.
- Retours : Chaîne de discussion
Supprimer le canal
- Description : Supprimer un canal avec le nom donné
- Retours : null
Obtenez le canal
- Description : Retourne le canal avec le nom donné, ou zéro s'il n'existe pas.
- Retours : Chaîne de discussion
Ajouter un haut-parleur
- Description : Créez et ajoutez un haut-parleur au chat avec le nom donné, puis renvoyez-le.
- Retours : 0> 1> 2> 3> 4> 5> 6> 7> 8> 9> 0> 1> 2> 3> 4> 5> 6> 7> 8> 9> 0> 1> 2> 3> 4> 5> 6> 7> 8> 9>0> 1> 2> 3> 4> 5> 6> 7> 8> 9> 0> 1> 2> 3> 4> 5> <
Supprimer le haut-parleur
- Description : Enlève le locuteur du chat avec le nom donné.
- Retours : null
Obtenez un haut-parleur
- Description : Retourne le haut-parleur avec le nom donné, ou zéro s'il n'existe pas.
- Retours : 0> 1> 2> 3> 4> 5> 6> 7> 8> 9> 0> 1> 2> 3> 4> 5> 6> 7> 8> 9> 0> 1> 2> 3> 4> 5> 6> 7> 8> 9>0> 1> 2> 3> 4> 5> 6> 7> 8> 9> 0> 1> 2> 3> 4> 5> <
Obtenez la liste de canaux
- Paramètres : aucun
- Description : Renvoie une liste des noms de tous les canaux non privés dans le chat.
- Retours : tableau< string >
Obtenez la liste de canaux automatiques
- Paramètres : aucun
- Description : Renvoie une liste des noms de tous les canaux dans le chat avec AutoJoin défini sur true.
- Retours : tableau< string >
EnregistrerFilterMessageFunction
- Description : Enregistre une fonction de filtre sur le chat identifié par functionId . Toutes les modifications du message persisteront et seront affichées lorsque le message atteindra toutes les autres fonctions de filtre. Cette fonction est passée au nom du enceinte, à l'objet du message et au canal dans lequel le message a été affiché.
- Retours : null
- Exemple :
-- Collez cet exemple dans unModuleScript dans le dossier ChatModule.
-- Cet exemple filtre un mot-clé, et si vous y êtes réussi, définira la couleur de chat du message
local functionId = "greenText"
local keyword = "#green"
local chatColor = Color3.new(0, 1, 0) -- vert
local function doFilter(speaker, messageObject, channelName)
-- Vérifiez si le message contient le mot-clé
local start, finish = string.find(messageObject.Message, keyword)
if start and finish then
-- Enlève (filtres) le mot-clé du message, ainsi que le ChatColor
messageObject.Message = string.gsub(messageObject.Message, keyword, "")
messageObject.ExtraData.ChatColor = chatColor
end
end
local function runChatModule(ChatService)
ChatService:RegisterFilterMessageFunction(functionId, doFilter)
end
return runChatModule
Fonction de message de désinscription
- Description : Dé注istre une fonction de filtre (enregistrée par RegisterFilterMessageFunction) donnant son identifiant, functionId .
- Retours : null
Enregistrement de processus
- Description : Enregistre une fonction de commande de processus dans le chat identifié par functionId. Avant que le message ne soit filtré, il passera par func (et d'autres fonctions enregistrées par ce). La fonction 0> func0> doit vérifier si le message invite une commande. Si
- Retours : null
- Exemple :
-- Collez cet exemple dans unModuleScript dans le dossier ChatModule.
local functionId = "getPizza"
local command = "/pizza"
local toolId = 22596452 -- Équipement de tranche de pepperoni
local function processCommand(speakerName, message, channelName)
if string.sub(message, 1, command:len()) == command then
local model = game:GetService("InsertService"):LoadAsset(toolId)
local tool = model:GetChildren()[1]
local speaker = ChatService:GetSpeaker(speakerName)
local player = speaker:GetPlayer()
tool.Parent = player.Backpack
return true
end
return false
end
local function runChatModule(ChatService)
ChatService:RegisterProcessCommandsFunction(functionId, processCommand)
end
return runChatModule
Fonction un注册处理命令
- Description : Un注册处理器(注册由 RegisterProcessCommandsFunction 注册) n'enregistre pas un traitement de commande (enregistré par functionId) donné par l'identifiant.
- Retours : null
Événements
Ajouté à la chaîne
- Description : Feux quand un canal est ajouté au chat.
ChannelSupprimé
- Description : Feux quand un canal est retiré du chat.
Haut-parleur ajouté
- Description : Feux quand un locuteur est ajouté au chat.
Haut-parleur supprimé
- Description : Feux quand un locuteur est retiré du chat.
Orateur de chat
Un Speaker de chat est la représentation d'une entité qui peut parler dans un ChatChannel. Chaque Player connecté au jeu a automatiquement un 2>Speaker de chat associé2>. Des 5>ChatSpeakers supplémentaires5> peuvent être construits pour les non-utilisateurs (tels que les annonceurs ou les messages d'avertissement) en utilisant 8>ChatService:AddSpeaker()8>.
Propriétés
Nom
- Description : Le nom du enceinte, utilisé dans le référencement de ce conférencier tout en appelant de nombreuses autres fonctions.
Méthodes
Rejoindre le canal
- Description : Ajoute le haut-parleur au canal avec le channelName donné
- Retours : null
Quitter le canal
- Description : Enlève le haut-parleur du canal avec le channelName donné
- Retours : null
Obtenez la liste de canaux
- Paramètres : Aucun
- Description : Renvoie une liste des noms de tous les canaux dans lesquels le locuteur est.
- Retours : tableau< string >
IsInChannel
- Description : Retourne si le haut-parleur est dans le canal avec le channelName donné.
- Retours : boule
Dites un message
- Paramètres : string : message , 0> Library.chaîne0> : 3> chanNELName3> , dictionnaire< 6> Library.chaîne6> , variante> 9> extraData 9>
- Retours : Message de chat
Envoyer un message
- Paramètres : string : message , 0> Library.chaîne0> : 3> channeル3> , 6> Library.chaîne6> : 9> fromSpeaker 9>
- Description : Envoyez un message au Speaker de chat avec le nom donné fromSpeaker. Si aucun tel Speaker n'est dans le chat (chat privé), cette méthode crée un avertissement et le Speaker ne verra pas le message.
- Retours : null
Envoyer un message système
- Description : Envoyez un message du système au ChatChannel avec le channelName donné. Si le Speaker n'est pas dans le chat (chat privé), alors ce message créera une avertissement et d'autres Speakers dans le canal ne verront pas le message.
- Retours : null
ObtenezJoueur
- Paramètres : Aucun
- Description : Retourne l'objet Player associé avec le enceinte. Si le haut-parleur n'est pas pour un utilisateur (un bot), ceci renvoie nil.
- Retours : Player ou nil
Définir des données supplémentaires
- Description : Définit des données supplémentaires pour le locuteur sous un key spécifique. Chaque fois que le locuteur envoie un Message de discussion, cette donnée supplémentaire est jointe au message si aucune n'est explicitement fournie avec le message. Par exemple, cela permet à la couleur de chat du enceinted'être configurer.
- Retours : null
Obtenez des données supplémentaires
- Description : Renvoie les données supplémentaires associées à la clé donnée, définie à l'aide de SetExtraData.
- Retours : Variante
Définir le canal principal
- Description : Définit le haut-parleur pour parler dans le chat (chat privé)fourni. Lance MainChannelSet.
- Retours : nil
Événements
Message dit
Message reçu
- Description : Fired when the speaker recieves a Message de chat from another speaker on a ChatChannel
Message reçu
- Description : Fired when the speaker recieves a system ChatMessage from a ChatChannel with the given 0> channelName0> .
ChannelJoined
Canal gauche
Muet
- Paramètres : string : channelName , 0> Library.chaîne0> : 3> reason = null3> , 6> int6> : 9> duration 9> = 0
- Description : Fired when the speaker is muted on the ChatChannel with the given channelName for the given duration (if provided). There may or may not be a 0> reason0> provided.
Non muet
Mise à jour des données supplémentaires
- Description : Mise à jour lorsque la valeur par défaut d'une clé dans les données supplémentaires du enceinteest mise à jour en utilisant SetExtraData.
MainChannelSet
- Description : Fired when the speakers main channel is changed to the ChatChannel with the given channelName .
Message de chat
Un ChatMessage est une structure de données représentant un message envoyé par un Speaker de chat. Il contient des données sur le message, y compris la longueur du texte, si le texte a été filtré par Roblox et des données supplémentaires sur l'apparence du message.
Propriétés
Identifiant
- Type : int
- Description : Un identifiant numérique unique pour le message.
À partir du haut-parleur
- Type : string :
- Description : Le nom du ChatSpeaker qui a envoyé le message.
Channel d'origine
- Type : string :
- Description : Le nom du ChatChannel dont le message vient.
Est filtré
- Type : boule
- Description : Détermine si le message est filtré par Roblox (si oui, le message sera nil )
Longueur du message
- Type : int
- Description : La longueur du message. Vous pouvez utiliser ceci pour générer une chaîne hachée si le message a été filtré.
Message
- Description : Le texte du message. Cette propriété sera nil si IsFiltered est vrai.
Type de message
- Type : string :
- Description : Le type du message. Ces types sont décrits dans le module ChatConstraints :
- Valeurs possibles : "Message" , "System" , 0> "MeCommand"0> , 3> "Welcome"3> , 6> "SetCore"6> , 9> "Whisper" 9>
Temps
- Type : int
- Description : Un tampon horaire; la valeur de os.time() au moment de la créationsdu message.
Données supplémentaires
- Type : dictionnaire< string , Variant>
Chat de canal
ChatChannel est un objet qui stocke les données sur un seul chat (chat privé), qui est un moyen par lequel les messages peuvent être échangés entre ChatSpeakers . Il a également des propriétés d'accès qui déterminent la visibilité des messages en plus de savoir si les utilisateurs peuvent rejoindre ou quitter le canal manuellement (en utilisant /join ou 0> /leave0> commandes).
Par défaut, chaque utilisateur a un Speaker de chat qui est automatiquement ajouté aux canaux de chat « Tout » et « Système » (bien que « Système » soit seulement lu). Si l'utilisateur est sur un Player.Team, il aura également accès à un canal pour seulement cette équipe.
Propriétés
Nom
- Type : string
- Description : Le nom du chat (chat privé), utilisé pour référencer le canal dans d'autres fonctions.
Message de bienvenue
- Type : string
- Description : Un message à afficher lorsqu'un utilisateur rejoint le chat (chat privé).
Rejoignable
- Type : boule
- Description : Détermine si un utilisateur peut manuellement rejoindre un canal en utilisant la commande /join. Un utilisateur peut toujours être ajouté à un canal en utilisant la commande ChatSpeaker:JoinChannel() ou d'autres moyens, même si cette propriété est fausse.
Quitter
- Type : boule
- Description : Détermine si un utilisateur peut quitter manuellement un canal en utilisant la commande /leave. Un utilisateur peut toujours être retiré d'un canal en utilisant la commande ChatSpeaker:LeaveChannel() ou d'autres moyens, même si cette propriété est fausse.
Rejoindre automatiquement
- Type : boule
- Description : Détermine si le l'émetteur de chat d'un joueur rejoindra automatiquement le canal lors de l'ajout au jeu. Les haut-parleurs non utilisateurs ne rejoindront pas automatiquement les canaux, même lorsque cette propriété est vraie (vous pouvez utiliser ChatSpeaker:JoinChannel() pour le faire).
Privé
- Type : boule
- Description : Détermine si le canal sera inclus dans la liste des canaux renvoyés par ChatService:GetChannelList() . Ceci pour les chats de whisper et les chats d'équipe.
Méthodes
KickSpeaker
- Description : Enlève le haut-parleur avec le speakerName donné du chat (chat privé), envoyant un message à l'utilisateur et au canal d'où l'utilisateur a été expulsé. Si un reason est fourni, le motif sera inclus dans le message.
- Retours : null
MuteSpeaker
- Paramètres : string : speakerName , 0> Library.chaîne0> : 3> reason = null3> , 6> int6> , 9> duration = 0 9>
- Description : Muet le haut-parleur avec le speakerName donné dans le canal pour une durée spécifiée en secondes. Si duration est nul ou 0, le muet est infini. Si 0> reason0> est fourni, un message sera envoyé sur le canal avec la raison incluse.
- Retours : null
Désactiver le son
- Description : Désactive le son avec le speakerName donné dans le chat (chat privé).
- Retours : null
IsSpeakerMuted
- Description : Description de savoir si le speakerName avec lequel il est actuellement muet dans le chat (chat privé).
- Retours : boule
Obtenir la liste des haut-parleurs
- Paramètres : Aucun
- Description : Retourne une liste contenant tous les noms du Speaker de chat actuellement dans le chat (chat privé).
- Retours : tableau< string >
Envoyer un message système
- Description : Envoye un message du « système » ChatSpeaker au chat (chat privé).
- Retours : null
EnregistrerFilterMessageFunction
- Description : Enregistre une fonction de filtre, func, identifié par functionId pour le chat (chat privé). La fonction de filtre sera appelée avec le 0>ChatSpeaker0>, le 3>ChatMessage3> et le 6>Library.chaîne 6> : nom du canal dans lequel le message a été affiché après le filtrage. Les
- Retours : null
- Exemple :
-- Collez cet exemple dans unModuleScript dans le dossier ChatModule.
local functionId = "getPizza"
local command = "/pizza"
local toolId = 22596452 -- Équipement de tranche de pepperoni
local function processCommand(speakerName, message, channelName)
if string.sub(message, 1, command:len()) == command then
local model = game:GetService("InsertService"):LoadAsset(toolId)
local tool = model:GetChildren()[1]
local speaker = ChatService:GetSpeaker(speakerName)
local player = speaker:GetPlayer()
tool.Parent = player.Backpack
return true
end
return false
end
local function runChatModule(ChatService)
ChatService:RegisterProcessCommandsFunction(functionId, processCommand)
end
return runChatModule
Fonction de message de désinscription
- Description : Dé注istre une fonction de filtre (enregistrée par RegisterFilterMessageFunction) donnant son identifiant, functionId .
- Retours : null
Enregistrement de processus
- Description : Enregistre une fonction de commande de processus, func, identifiée par functionId pour le chat. Avant qu'un message ne soit filtré, il passera à travers 0> func 0> (et d'autres fonctions enregistr
- Retours : null
- Exemple :
-- Collez cet exemple dans unModuleScript dans le dossier ChatModule.
-- Cet exemple filtre un mot-clé, et si vous y êtes réussi, définira la couleur de chat du message
local functionId = "greenText"
local keyword = "#green"
local chatColor = Color3.new(0, 1, 0) -- vert
local function doFilter(speaker, messageObject, channelName)
-- Vérifiez si le message contient le mot-clé
local start, finish = string.find(messageObject.Message, keyword)
if start and finish then
-- Enlève (filtres) le mot-clé du message, ainsi que le ChatColor
messageObject.Message = string.gsub(messageObject.Message, keyword, "")
messageObject.ExtraData.ChatColor = chatColor
end
end
local function runChatModule(ChatService)
-- Créez un canal et enregistrez la fonction de filtre
local testChannel = ChatService:AddChannel("TestChannel")
testChannel:RegisterFilterMessageFunction(functionId, doFilter)
end
return runChatModule
Fonction un注册处理命令
- Description : Un注册命令处理器 (注册由RegisterProcessCommandsFunction) 给予了识别器, functionId 。
- Retours : null
Événements
Message posté
- Description : Tire quand un message est posté dans le chat (chat privé).
SpeakerJoint
- Description : Tire quand un Speaker de chat rejoint le chat (chat privé).
SpeakerLeft
- Description : Feuille quand un Speaker de chat quitte le chat (chat privé).
Haut-parleur muet
Haut-parleur désactivé
- Description : Feuille quand un ChatSpeaker n'est pas muet.