TextChatService

Visualizza obsoleti

*Questo contenuto è tradotto usando AI (Beta) e potrebbe contenere errori. Per visualizzare questa pagina in inglese, clicca qui.

Non costruibile
Assistenza

Un servizio che gestisce la chat di testo in-experience, inclusa managing channels , decorare i messaggi, filtrare il testo, creating commands , e sviluppare interfacce di chat personalizzate .

Per saperne di più, vedi Panoramica di TextChatService.

Per ulteriori personalizzazioni, TextChatService ha i seguenti figli singoli:

Sommario

Proprietà

Metodi

Eventi

Richiami

Proprietà

ChatTranslationEnabled

Non Replicato
Sicurezza Script Roblox
Lettura Parallela

Determina se la traduzione della chat è abilitata.Se vero, un messaggio di sistema avviserà il Giocatorequando si unirà per la prima volta che i messaggi di chat potrebbero essere tradotti nella lingua preferita del Giocatore.

ChatVersion

Sicurezza Script Roblox
Lettura Parallela

Determina se abilitare completamente TextChatService o tornare al sistema di chat legacy.Impostare questa proprietà a Enum.ChatVersion.LegacyChatService disabilita effettivamente TextChatService .

CreateDefaultCommands

Sicurezza Plugin
Lettura Parallela

Determina se TextChatService deve creare un valore predefinito TextChatCommands .

Se vero, i seguenti TextChatCommands vengono creati e inseriti in un Folder chiamato TextChatCommands all'interno di TextChatService :


<th>Alias primario</th>
<th>Alias secondario</th>
<th>Descrizione</th>
<th>Esempio di utilizzo</th>
</tr>
</thead>
<tbody>
<tr>
<td><b>Comando RBXClear</b></td>
<td>eliminare/pulire</td>
<td>cls</td>
<td>Cancella il log della chat per l'utente locale.</td>
<td><code>/cls</code></td>
</tr>
<tr>
<td><b>Comando della Console RBX</b></td><td>console</td>
<td />
<td>Apre la Console dello Sviluppatore.</td><td><code>/console</code></td>
</tr>
<tr>
<td><b>RBXEmoteCommand</b></td>
<td>emote</td>
<td>e</td>
<td>Riproduce un'Emotedell'avatar.</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 RBXMuteCommand</b></td>
<td>muto</td>
<td>m</td>
<td>Silenzia un utente dal suo <code>Class.Player.Name|Name</code> o <code>Class.Player.DisplayName|DisplayName</code> in tutti i <code>Class.TextChannel|TextChannels</code>.</td>
<td><code>/m Nome utente</code></td>
</tr>
<tr>
<td><b>Comando Team RBX</b></td>
<td>team</td>
<td>t</td>
<td>Entra nella modalità chat di squadra in cui i messaggi sono visibili solo ai compagni di squadra.</td>
<td><code>/t</code></td>
</tr>
<tr>
<td><b>RBXUnmuteCommand</b></td>
<td>disattiva</td>
<td>um</td>
<td>Disattiva un utente dal suo <code>Class.Player.Name|Name</code> o <code>Class.Player.DisplayName|DisplayName</code> in tutti i <code>Class.TextChannel|TextChannels</code>.</td>
<td><code>/um Nome utente</code></td>
</tr>
<tr>
<td><b>Comando RBXVersion</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 RBXWhisper</b></td>
<td>sussurro</td>
<td>w</td>
<td>Entra in modalità sussurro con un altro <code>Class.Player</code>.</td>
<td><code>/w Nome visualizzazione</code> o <code>/w @Username</code></td>
</tr>
</tbody>
Nome

Nota che puoi Modificare, creare e rimuovere TextChatCommands anche se CreateDefaultCommands è vero. Nota anche che i comandi muti e disattivati si applicano a tutti TextChannels .

CreateDefaultTextChannels

Sicurezza Plugin
Lettura Parallela

Determina se TextChatService deve creare un valore predefinito TextChannels .Se è vero, un Folder chiamato TextChannels viene creato all'interno di TextChatService a runtime per contenere il TextChannels descritto nella tabella seguente.Ognuno dei canali predefiniti ha il comportamento speciale descritto applicato ai messaggi utilizzando la funzione di richiamo interamente legata TextChannel.OnIncomingMessage , che cambia il modo in cui i messaggi appaiono quando vengono inviati attraverso il canale.Il richiamo viene assegnato automaticamente sia durante l'esecuzione (se esiste il TextChannel ) sia quando viene creato il TextChannel .


<th>Descrizione</th>
</tr>
</thead>
<tbody>
<tr>
<td><b>RBXGenerale</b></td>
<td><code>Class.TextChannel</code> per 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 <a href="/ui/rich-text">ricco</a> per dare ai giocatori di chat il colore del nome distintivo.Se esiste <code>Class.Player.Team</code>, viene utilizzato <code>Class.Team.TeamColor</code> invece del colore del nome predefinito.</td>
</tr>
<tr>
<td><b>RBXSistema</b></td>
<td><code>Class.TextChannel</code> per messaggi di sistema.Nella finestra di chat, i messaggi vengono modificati in modo che <code>Class.TextChatMessage.Text</code> riceva un tag di colore grigio chiaro per impostazione predefinita, o un tag di colore rosso se <code>Class.TextChatMessage.Metadata</code> contiene la parola <code>"Errore"</code> .</td>
</tr>
<tr>
<td><b>Squadra RBX[BrickColor]</b></td>
<td><code>Class.TextChannel</code> per messaggi specifici per il team, creati quando un <code>Class.Team.TeamColor|TeamColor</code> è in uso da qualsiasi <code>Class.Team</code> all'interno del servizio <code>Class.Teams</code>.Il nome del canale creato è <b>RBXTeam</b> seguito dal nome <code>Class.Team.TeamColor|TeamColor</code>.Ad esempio, <b>RBXTeamCrimson</b> è un <code>Class.TextChannel</code> creato quando c'è un team attivo il cui <code>Class.Team.TeamColor|TeamColor</code> proprietà è il "Crimson" <code>Datatype.BrickColor</code> .Nella finestra di chat, i messaggi vengono modificati in modo che <code>Class.TextChatMessage.PrefixText|PrefixText</code> sia colorato secondo il <code>Class.Player.TeamColor|TeamColor</code> e sia preceduto da <b>[Team]</b> .I canali di team creano <code>Class.TextSource|Textources</code> per tutti i non‑ <code>Class.Player.Neutral|Neutral</code> giocatori con la corrispondente <code>Class.Team.TeamColor|TeamColor</code> , consentendo loro di utilizzare il chat di team solo.I canali vengono rimossi se non ci sono squadre rimanenti con una classe <code>Class.Team.TeamColor|TeamColor</code> associata.</td>
</tr>
<tr>
<td><b>RBXWhisper:[Utente1]_[Utente2]</b></td>
<td><code>Class.TextChannel</code> per messaggi sussurrati tra due giocatori, creato quando un giocatore utilizza il comando <code>/whisper</code> su un altro Giocatore.Ad esempio <b>RBXWhisper:2276836_505306092</b> è un <code>Class.TextChannel</code> per i giocatori con <code>Class.Player.UserId|UserIds</code><b>2276836</b> e <b>505306092</b>.All'interno dei canali Whisper ci sono due <code>Class.TextSource|TextSources</code> associati rispettivamente ai rispettivi <code>Class.Player.UserId|UserIds</code> .Nella finestra di chat, i messaggi sono colorati allo stesso modo di quelli in <b>RBXGeneral</b> e <code>Class.TextChatMessage.PrefixText</code> viene modificato per mostrare se un messaggio è stato inviato o ricevuto dall'utente locale.I canali Whisper vengono rimossi quando uno dei giocatori lascia l'esperienza.</td>
</tr>
</tbody>
Canale

Nota che i richiami predefiniti TextChannel.OnIncomingMessage possono essere sovrascritti.Si noti inoltre che puoi Modificare, creare e rimuovere TextChannels anche se CreateDefaultTextChannels è vero.

I messaggi di diversi canali di testo possono essere separati in diverse schede nella finestra di chat usando ChannelTabsConfiguration .

Metodi

DisplayBubble

()

Mostra una bolla di chat sopra la parte o il personaggio del giocatore fornito e lancia l'evento BubbleDisplayed con i parametri specificati in questo metodo.Può visualizzare bolle per 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 Enum.RunContext.Client .

Parametri

partOrCharacter: Instance

La parte o il personaggio che la bolla deve essere visualizzata sopra.

Valore predefinito: ""
message: string

Il testo da mostrare nella bolla di chat.

Valore predefinito: ""

Restituzioni

()

CanUserChatAsync

Resa

Determina se un utente ha il permesso di chattare nelle esperienze.Fattori come le impostazioni di controllo parentale possono impedire all'utente di inviare messaggi.Errori se l'ID non è nel Serverattuale.Nota che questo metodo può essere utilizzato con tutti i giocatori attuali UserIds in un Script con RunContext di Enum.RunContext.Server o Enum.RunContext.Legacy .Questo metodo può essere utilizzato anche in un LocalScript ma solo con il UserId del Giocatorelocale.

Parametri

userId: number
Valore predefinito: ""

Restituzioni

CanUsersChatAsync

Resa

Determina se due utenti riceveranno o meno messaggi l'uno dall'altro.Fattori come le impostazioni di controllo parentale incompatibili o lo stato bloccato possono impedire la consegna di messaggi tra gli utenti TextChannels internamente utilizza questo risultato per determinare se consegnare messaggi tra gli utenti.Nota che questo metodo è disponibile solo per l'uso in un Script con RunContext di Enum.RunContext.Server o Enum.RunContext.Legacy .

Parametri

userIdFrom: number
Valore predefinito: ""
userIdTo: number
Valore predefinito: ""

Restituzioni

CanUsersDirectChatAsync

Resa

Determina se un utente ha il permesso di chattare direttamente con altri utenti nelle esperienze in base alle impostazioni di controllo parentale. Da utilizzare quando:

  • La linea di comunicazione è inizializzata dall'utente (non inizializzata da sviluppatore o gameplay)
  • L'accesso alla comunicazione è chiuso e limitato

Un esempio di chat diretta è un canale sussurrato tra due utenti.

Puoi utilizzare questo metodo per gateare alcune funzionalità nella tua esperienza a seconda del Risultato.

Quando crei un TextChannel per una chat diretta, usa TextChannel:SetDirectChatRequester() per impostare il requesterUserId in modo che il canale possa determinare se consegnare messaggi tra gli utenti.Quando TextChannel.DirectChatRequester è non null, TextChannels utilizza internamente questo risultato per determinare se consegnare messaggi tra gli utenti.


local whoCanDirectChat = TextChatService:CanUsersDirectChatAsync(requesterUserId, { userId1, userId2 })
if #whoCanDirectChat > 0 then
-- Il requesterUUID può dirigere la chat con iPad1, iPad2 o entrambi
else
-- Il richiedente uuid non può dirigere la chat con iPad1 o iPad2
end

Si noti che questo metodo è disponibile solo per l'uso in un Script con RunContext di Enum.RunContext.Server o Enum.RunContext.Legacy .

Parametri

requesterUserId: number

L'utente che avrebbe iniziato la Richiestadi chat diretta. Se il requesterUserId non è nel Serverattuale, questo metodo darà errore.

Valore predefinito: ""
userIds: Array

Un elenco di utenti con cui il requesterUserId vorrebbe chattare direttamente. Gli utenti non nel server attuale vengono ignorati.

Valore predefinito: ""

Restituzioni

Un elenco di utenti che potrebbero partecipare alla Richiestadi chat diretta.Se nessuno degli utenti può dirigere la chat con il requesterUserId, il risultato è un vettorevuoto.

Campioni di codice

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

Eventi

BubbleDisplayed

Si accende quando viene chiamato TextChatService:DisplayBubble() .

Parametri

partOrCharacter: Instance
textChatMessage: TextChatMessage

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 viene attivato solo sul client.

Se la proprietà del ServerTextChannel.ShouldDeliverCallback è legata e restituisce false, il client non spara 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

textChatMessage: TextChatMessage

Il ricevuto TextChatMessage .


SendingMessage

Si accende quando TextChannel:SendAsync() viene chiamato dal client di invio.Usa questo per consentire di mostrare messaggi di riempimento all'utente mentre si attende la risposta del server a TextChannel:SendAsync() .

Parametri

textChatMessage: TextChatMessage

Richiami

OnBubbleAdded

Chiamato quando una chat a bolle è about to essere visualizzata. Questo può essere implementato solo sul client.

Usa questo per personalizzare i messaggi di chat a bolle individuali.Se questo callback restituisce un BubbleChatMessageProperties , quelle proprietà verranno applicate alla bolla associata, sostituendo le proprietà BubbleChatConfiguration.Se un UICorner , UIGradient , o ImageLabel è genitoriale sotto BubbleChatMessageProperties , sovrascriveranno anche le rispettive controparti definite in BubbleChatConfiguration .

Se il messaggio di chat viene inviato da un Giocatore, message.TextSource corrisponderà a quel Giocatoree adornee sarà nil .

Se il messaggio di chat viene inviato via TextChatService:DisplayBubble() , adornee sarà il partOrCharacter fornito e message.TextSource sarà nil .

Quando è legato al client che invia un Messaggio, questo callback viene eseguito due volte: prima quando il messaggio viene inizialmente inviato e ricevuto localmente, quindi di nuovo quando il client riceve il risultato del messaggio filtrato dal Server.

Parametri

L'incoming TextChatMessage .

adornee: Instance

La parte o il personaggio a cui è allegato il messaggio della chat a bolle.


Restituzioni

Se viene restituito un BubbleChatMessageProperties , le sue proprietà sostituiscono le proprietà BubbleChatConfiguration.

OnChatWindowAdded

Chiamato quando un nuovo messaggio è about to essere displayed nella finestra di chat. Questo può essere implementato solo sul client.

Usa questo per personalizzare i messaggi individuali che appaiono nella finestra di chat.Se questo callback restituisce un ChatWindowMessageProperties , quelle proprietà verranno applicate al Messaggioassociato, sostituendo le proprietà ChatWindowConfiguration.Se un UIGradient è parented sotto ChatWindowMessageProperties , verrà anche sostituita la proprietà TextColor3 definita in ChatWindowConfiguration .

Quando è legato al client che invia un Messaggio, questo callback viene eseguito due volte: prima quando il messaggio viene inizialmente inviato e ricevuto localmente, quindi di nuovo quando il client riceve il risultato del messaggio filtrato dal Server.

Parametri

L'incoming TextChatMessage .


Restituzioni

Se viene restituito un ChatWindowMessageProperties , le sue proprietà sostituiscono le proprietà ChatWindowConfiguration.

OnIncomingMessage

Chiamato quando TextChatService sta ricevendo un Messaggioin arrivo. Può essere implementato solo sul client.

Usa questo per decorare TextChatMessages .Se questo callback restituisce un TextChatMessageProperties , queste proprietà vengono unite al parametro TextChatMessage per creare una nuova TextChatMessage .

Quando è legato al client che invia un Messaggio, questo callback viene eseguito due volte; prima quando il messaggio viene inizialmente inviato e ricevuto localmente, e di nuovo quando il client riceve il risultato del messaggio filtrato dal Server.

Nota che questo TextChatService.OnIncomingMessage richiamo esegue prima di qualsiasi TextChannel.OnIncomingMessage richiamo.

Questo dovrebbe essere definito solo una volta nel codice sorgente. Numerose bindings sostituiranno l'un l'altra in modo non deterministico.

Parametri

L'incoming TextChatMessage .


Restituzioni

Se viene restituito un quelle proprietà vengono unite al parametro per creare un nuovo con quelle proprietà, altrimenti, se viene restituito non viene modificato.