TextChatService
*Questo contenuto è tradotto usando AI (Beta) e potrebbe contenere errori. Per visualizzare questa pagina in inglese, clicca qui.
Un servizio che gestisce la chat di testo in-experience, tra cui la gestione dei canali, la decorazione dei messaggi, il filtro del testo, la creazione di comandi e lo sviluppo di interfacce chat personalizzate.
Per saperne di più, vedi Chat di testo in-esperienza .
Sommario
Proprietà
Determina se abilitare completamente TextChatService o tornare al sistema di chat legacy.
Determina se TextChatService dovrebbe creare predefinito TextChatCommands .
Determina se TextChatService dovrebbe creare predefinito TextChannels .
Metodi
Mostra una finestra di chat sopra la parte o il personaggio fornito.
Determina se un utente ha il permesso di chattare direttamente con altri utenti in esperienze in base alle impostazioni di controllo dei genitori.
Eventi
Si attiva quando TextChatService:DisplayBubble() è chiamato.
Si attiva quando TextChannel:DisplaySystemMessage() è invocato sul client, o quando il client riceve una risposta valida TextChannel:SendAsync() dal Server.
Si attiva quando TextChannel:SendAsync() viene chiamato dal client di invio.
Richiami
Chiamato quando una chat a bolle è in arrivo.
Chiamato quando un nuovo messaggio è in arrivo nella finestra di chat. Questo può essere implementato solo sul client.
Chiamato quando TextChatService riceve un Messaggioin arrivo.
Proprietà
ChatTranslationEnabled
ChatVersion
Determina se abilitare completamente TextChatService o tornare al sistema di chat di eredità. Impostando questa proprietà su Enum.ChatVersion.LegacyChatService disabilita effettivamente TextChatService .
CreateDefaultCommands
Determina se TextChatService dovrebbe creare predefinito TextChatCommands .
Se vero, le seguenti TextChatCommands vengono create e messe in un Folder chiamato TextChatCommands all'interno di 2>Class.TextChatService2> :
<tbody><tr><td><b>Comando RBXClearCommand</b></td><td>eliminare/pulire</td><td>cls</td><td>Svuota i registri di chat per l'utente locale.</td><td><code>/cls</code></td></tr><tr><td><b>RBXConsoleCommando</b></td><td>console</td><td /><td>Apre la Console del Sviluppatore.</td><td><code>/console</code></td></tr><tr><td><b>Comando RBXEmote</b></td><td>emote</td><td>e</td><td>Gioca un'Emoteavatar.</td><td><code>/e danza</code></td></tr><tr><td><b>Comando RBXHelp</b></td><td>aiuto</td><td>?</td><td>Mostra una lista di comandi di chat.</td><td><code>/aiuto</code></td></tr><tr><td><b>Comando RBXMute</b></td><td>muto</td><td>m</td><td>Muta un utente per il loro <code>Class.Player.Name|Name</code> o <code>Class.Player.DisplayName|DisplayName</code> in tutti <code>Class.TextChannel|TextChannels</code> .</td><td><code>/m Nome utente</code></td></tr><tr><td><b>Comando RBXTeam</b></td><td>team</td><td>t</td><td>Entra in modalità chat team in cui i messaggi sono visibili solo ai compagni di squadra.</td><td><code>/t</code></td></tr><tr><td><b>comando RBXUnmuteCommand</b></td><td>disattivare</td><td>um</td><td>Disattiva un utente per il loro <code>Class.Player.Name|Name</code> o <code>Class.Player.DisplayName|DisplayName</code> in tutti <code>Class.TextChannel|TextChannels</code> .</td><td><code>/um Nome utente</code></td></tr><tr><td><b>Comando RBXVersionCommand</b></td><td>versione</td><td>v</td><td>Mostra la versione della chat.</td><td><code>/versione</code></td></tr><tr><td><b>Comando RBXWhisperCommand</b></td><td>sussurro</td><td>w</td><td>Entra in modalità silenziosa con un altro <code>Class.Player</code> .</td><td><code>/w DisplayName</code> o <code>/w @Username</code></td></tr></tbody>
Nome | Alias primario | Ali secondarie | Descrizione | Esempio di utilizzo |
---|
Nota che puoi Modificare, creare e rimuovere TextChatCommands anche se CreateDefaultCommands è vero. Nota anche che i comandi mute e mute apply to all TextChannels .
CreateDefaultTextChannels
Determina se
<tbody><tr><td><b>RBXGeneral</b></td><td><code>Class.TextChannel</code> per i messaggi del giocatore. Nella finestra di chat, i messaggi vengono modificati in modo che <code>Class.TextChatMessage.PrefixText|PrefixText</code> riceva un tag di colore del testo riccohiente per dare ai giocatori il loro colore di nome distinto. Se 0> Class.Player.Team0> esiste, il colore di nome predefinito è usato invece del</td></tr><tr><td><b>RBXSystem</b></td><td><code>Class.TextChannel</code> per i messaggi del sistema. Nella finestra di chat, i messaggi sono modificati in modo che <code>Class.TextChatMessage.Text</code> abbia un tag di colore grigio chiaro per impostazione predefinita, o un tag di colore rosso se <code>Class.TextChatMessage.Metadata</code> contiene la parola 0> "Errore"0> .</td></tr><tr><td><b>RBXTeam\[BrickColor]</b></td><td> Class.TextChannel</td></tr><tr><td><b>RBXWhisper:\[userId1]\_\[userId2]</b></td><td><code>Class.TextChannel</code> per i messaggi tra due Giocatore, creati quando un giocatore usa il comando <code>/whisper</code></td></tr></tbody>
Canale | Descrizione |
---|
Nota che i richiami predefiniti TextChannel.OnIncomingMessage possono essere sovrascritti. Inoltre, nota che puoi Modificare, creare e rimuovere TextChannels anche se CreateDefaultTextChannels è vero.
I messaggi da diversi canali di testo possono essere separati in diverse schede nella finestra di chat utilizzando ChannelTabsConfiguration .
Metodi
DisplayBubble
Mostra una finestra di chat sopra la parte fornita o il personaggio del giocatore, e attiva l'evento BubbleDisplayed con i parametri specificati in questo metodo. Puoi visualizzare le bolle per i personaggi non giocatori (NPC) se specifici una parte all'interno del personaggio, come la sua testa.
Nota che questo metodo è disponibile solo per l'uso in LocalScript , o in un Script con RunContext di 1> Ennum.RunContext.Client1> .
Parametri
La parte o il personaggio che la bolle per essere mostrata sopra.
Il testo da mostrare nella chat bubble.
Restituzioni
CanUsersDirectChatAsync
Determina se un utente ha il permesso di chattare direttamente con altri utenti in esperienze in base alle impostazioni di controllo dei genitori. Viene utilizzato quando:
- La linea di comunicazione è inizializzata dall'utente (non inizializzata dal sviluppatore o dal gameplay)
- L'accesso alla comunicazione è chiuso e limitato
Parametri
Restituzioni
Campioni di codice
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
Eventi
MessageReceived
Come TextChannel.MessageReceived , si attiva quando TextChannel:DisplaySystemMessage() viene invocato sul client, o quando il client riceve una risposta valida TextChannel:SendAsync() dal Server. Questo evento si attiva solo sul client.
Se la proprietà ServerTextChannel.ShouldDeliverCallback è legata e restituisce false, il client non esegue TextChatService.MessageReceived .
Usa il parametro TextChatMessage per ottenere il TextSource e il testo del messaggio (con TextChatMessage.Text ) .
Il parametro TextChatMessage è il risultato finale di qualsiasi funzione legata a TextChatService.OnIncomingMessage o TextChannel.OnIncomingMessage .
Parametri
Il ricevuto TextChatMessage .
SendingMessage
Si attiva quando TextChannel:SendAsync() viene chiamato dal client di destinazione. Usa questo per consentire ai messaggi di luogo comune di essere mostrati all'utente mentre si aspetta la risposta del server a TextChannel:SendAsync() .
Parametri
Il TextChatMessage dal TextChannel:SendAsync() chiamata.
Richiami
OnBubbleAdded
Chiamato quando una chat a bolle sta per essere visualizzata. Questo può essere implementato solo sul client.
Usa questo per personalizzare singoli messaggi di chat a bolle. Se questo richiamato restituisce un BubbleChatMessageProperties , queste proprietà saranno applicate all'area associata, sovrascrivendo
Se il messaggio di chat è inviato da un Giocatore, message.TextSource corrisponderà a quel Giocatore, e adornee sarà nil .
Se il messaggio di chat viene inviato tramite TextChatService:DisplayBubble() , adornee sarà il partOrCharacter fornito e 1> Messaggio.TextSource1> sarà il 4> nil4> .
Parametri
Il messaggio TextChatMessage in arrivo.
La parte o il personaggio a cui viene allegato il messaggio di chat a bolle.
Restituzioni
Se un TextChatMessage viene restituito, queste proprietà saranno applicate alla bolle associata, sovrascrivere le proprietà BubbleChatConfiguration .
OnChatWindowAdded
Chiamato quando un nuovo messaggio è in arrivo nella finestra di chat. Questo può essere implementato solo sul client.
Usa questo per personalizzare singoli messaggi che appaiono nella finestra di chat. Se questo callback restituisce un ChatWindowMessageProperties , queste proprietà saranno applicate al Messaggioassociato, sovrascrivere ChatWindowConfiguration
Parametri
Il messaggio TextChatMessage in arrivo.
Restituzioni
Se un TextChatMessage viene restituito, queste proprietà saranno applicate al Messaggioassociato, sovrascrivere le proprietà ChatWindowConfiguration .
OnIncomingMessage
Chiamato quando TextChatService riceve un Messaggioin arrivo. Può essere implementato solo sul client.
Usa questo per decorare TextChatMessages . Se questo callback restituisce un TextChatMessageProperties , queste proprietà vengono messe in relazione con il parametro TextChatMessage per creare un nuovo 1> Class.TextChatMessage1> .
Quando è legato al client per l'invio di un Messaggio, questo callback viene eseguito due volte; prima quando il messaggio viene inviato e ricevuto localmente e poi quando il client riceve il risultato del messaggio filtrato dal Server.
Nota che questo TextChatService.OnIncomingMessage callback viene eseguito prima di qualsiasi TextChannel.OnIncomingMessage callback.
Questo dovrebbe essere definito solo una volta nel codice di origine. Più legami sostituiranno l'uno con l'altro in modo non deterministico.
Parametri
Il messaggio TextChatMessage in arrivo.
Restituzioni
Se un TextChatMessageProperties viene restituito, queste proprietà vengono messe in fusione con il TextChatMessage parametro per creare un nuovo TextChatMessage con queste proprietà, altrimenti, se 2>nil2> viene restituito, allora 5>Class.TextChatMessage5> non viene cambiato.