Cet exemple montre comment utiliser la classe TextChatService pour concevoir votre propre frontend.Il réutilise les canaux de texte par défaut de CreateDefaultTextChannels et est très simple par rapport à l'interface utilisateur par défaut.
Désactivez l'interface utilisateur par défaut qui accompagne le TextChatService en définissant les propriétés ChatWindowConfiguration.Enabled et ChatInputBarConfiguration.Enabled à false dans la fenêtre Propriétés de Studio.
Créer une barre de saisie de chat de remplacement. C'est la boîte de texte qui émet des messages lorsque l'utilisateur appuie sur Enter .
Créez un ScreenGui et parentez-le à StarterGui .
Créez un TextBox et parentez-le au nouveau ScreenGui, puis répositionnez-le et redimensionnez-le comme souhaité.
Créez un LocalScript et parentez-le au nouveau TextBox.
Ajoutez le code suivant à la LocalScript :
Clientlocal TextChatService = game:GetService("TextChatService")-- RBXGeneral est le chat (chat privé)public par défautlocal RBXGeneral = TextChatService:FindFirstChild("TextChannels"):WaitForChild("RBXGeneral")local textBox = script.ParenttextBox.FocusLost:Connect(function(enterPressed)local text = textBox.Textif enterPressed and #text > 0 thenlocal success, response = pcall(function()return RBXGeneral:SendAsync(textBox.Text)end)if not success thenRBXGeneral:DisplaySystemMessage("Failed to send message")end-- Les utilisateurs s'attendent à ce que la boîte d'entrée soit vidée après avoir envoyé un messagetextBox.Text = ""endend)
Créer une réplique de la fenêtre de chat.C'est le ScrollingFrame qui affiche les messages tels qu'ils sont reçus de TextChatService.MessageReceived.Cette étape crée également un UIListLayout pour mettre en forme automatiquement les messages.
Créez un autre nouveau ScreenGui et parentez-le à StarterGui .
Créez un ScrollingFrame et parentez-le au ScreenGui , puis répositionnez-le et redimensionnez-le comme souhaité.
Créez un UIListLayout et parentez-le au ScrollingFrame.
Créez un LocalScript et parentez-le au ScrollingFrame.
Ajoutez le code suivant à la LocalScript :
Clientlocal TextChatService = game:GetService("TextChatService")-- Fonction de création d'une nouvelle étiquette de texte pour chaque message reçulocal function addMessageGui(textChatMessage: TextChatMessage)local isOutgoingMessage = textChatMessage.Status == Enum.TextChatMessageStatus.Sendinglocal parent = script.Parentlocal originalLabel = parent:FindFirstChild(textChatMessage.MessageId)if originalLabel thenoriginalLabel.Text = textChatMessage.TextoriginalLabel.BackgroundTransparency = if isOutgoingMessage then 0.5 else 0elselocal textLabel = Instance.new("TextLabel")textLabel.BorderSizePixel = 0textLabel.Font = Enum.Font.BuilderSanstextLabel.TextSize = 18textLabel.TextXAlignment = Enum.TextXAlignment.LefttextLabel.BackgroundTransparency = if isOutgoingMessage then 0.5 else 0textLabel.BackgroundColor3 = Color3.fromRGB(0, 0, 0)textLabel.TextColor3 = Color3.fromRGB(255, 255, 255)textLabel.Name = textChatMessage.MessageIdtextLabel.AutomaticSize = Enum.AutomaticSize.XYtextLabel.Text = textChatMessage.TexttextLabel.Parent = parentendend-- Commencez à écouter les messages entrantsTextChatService.MessageReceived:Connect(addMessageGui)
Testez votre expérience en envoyant des messages dans la barre de saisie de chat.Vous devriez voir les messages apparaître dans la fenêtre de chat.Vous pouvez ensuite étendre cet exemple en ajoutant des fonctionnalités telles que la mise au point du TextBox lorsqu'une touche est pressée ou en ajoutant des balises de chat .