TextChatService

Veraltete anzeigen

*Dieser Inhalt wurde mit KI (Beta) übersetzt und kann Fehler enthalten. Um diese Seite auf Englisch zu sehen, klicke hier.

Nicht erstellbar
Dienst

Eine Service-Handlung des Erlebnistextchats, einschließlich managing channels, Dekoration von Nachrichten, Filtern von Text, creating commands und Entwicklung von benutzerdefinierten Chat-Schnittstellen.

Um mehr zu erfahren, siehe TextChatService-Übersicht.

Für weitere Anpassung hat TextChatService die folgenden Singleton-Kinder:

Zusammenfassung

Eigenschaften

Methoden

  • DisplayBubble(partOrCharacter : Instance,message : string):()

    Zeigt eine Chat-Blase über dem angegebenen Teil oder Spielercharakter an.

  • Angehalten

    Bestimmt, ob ein Benutzer die Berechtigung hat, in Erlebnissen zu chatten.

  • CanUsersChatAsync(userIdFrom : number,userIdTo : number):boolean
    Angehalten

    Bestimmt, ob zwei Benutzer Nachrichten zueinander erhalten oder nicht.

  • CanUsersDirectChatAsync(requesterUserId : number,userIds : Array):Array
    Angehalten

    Bestimmt, ob ein Benutzer die Berechtigung hat, direkt mit anderen Benutzern in Erlebnissen zu chatten, die auf Faktoren wie ihre elterlichen Kontroll-Einstellungen basieren.

Ereignisse

Callbacks

Eigenschaften

ChatTranslationEnabled

Nicht repliziert
Roblox-Skript-Sicherheit
Parallel lesen

Bestimmt, ob die Chat-Übersetzung aktiviert ist.Wenn es wahr ist, benachrichtigt eine Systemnachricht den Spieler:in, wenn seine erste Anmeldung bei dem Chat Nachrichten in die bevorzugte Sprache des Spieler:inübersetzt werden können.

ChatVersion

Roblox-Skript-Sicherheit
Parallel lesen

Bestimmt, ob TextChatService oder auf das veraltete Chat-System zurückgegriffen werden soll.Das Festlegen dieser Eigenschaft auf Enum.ChatVersion.LegacyChatService deaktiviert effektiv TextChatService.

CreateDefaultCommands

Plugin-Sicherheit
Parallel lesen

Bestimmt, ob TextChatService sollte Standard TextChatCommands erstellen.

Wenn true, werden die folgenden TextChatCommands erstellt und in einen Folder benannten TextChatCommands innerhalb von TextChatService platziert:


<th>Primäre Alias</th>
<th>Sekundärer Alias</th>
<th>Beschreibung</th>
<th>Verwendungsbeispiel</th>
</tr>
</thead>
<tbody>
<tr>
<td><b>RBXClearKommando</b></td>
<td>löschen</td>
<td>cls</td>
<td>Räumt den Chat-Log für den lokalen Benutzer ab.</td>
<td><code>/cls</code></td>
</tr>
<tr>
<td><b>RBXKonsole-Befehl</b></td><td>Konsole</td>
<td />
<td>Öffnet die Entwicklerkonsole.</td><td><code>/console</code></td>
</tr>
<tr>
<td><b>RBXEmoteBefehl</b></td>
<td>emote</td>
<td>e</td>
<td>Spielt ein Avatar-Emote ab.</td>
<td><code>/e tanz</code></td>
</tr>
<tr>
<td><b>RBXHelp-Befehl</b></td>
<td>helfen</td>
<td>?</td>
<td>Zeigt eine Liste von Chat-Befehlen an.</td>
<td><code>/hilfe</code></td>
</tr>
<tr>
<td><b>RBXMuteBefehl</b></td>
<td>stummschalten</td>
<td>m</td>
<td>Stummt einen Benutzer durch seine <code>Class.Player.Name|Name</code> oder <code>Class.Player.DisplayName|DisplayName</code> in allen <code>Class.TextChannel|TextChannels</code>.</td>
<td><code>/m Benutzername</code></td>
</tr>
<tr>
<td><b>RBXTeamCommand</b></td>
<td>team</td>
<td>t</td>
<td>Wechselt in den Team-Chat-Modus, in dem Nachrichten nur für Teamkollegen sichtbar sind.</td>
<td><code>/t</code></td>
</tr>
<tr>
<td><b>RBXUnmuteBefehl</b></td>
<td>stummschaltung aufheben</td>
<td>um</td>
<td>Stummt einen Benutzer durch seine <code>Class.Player.Name|Name</code> oder <code>Class.Player.DisplayName|DisplayName</code> in allen <code>Class.TextChannel|TextChannels</code>.</td>
<td><code>/um Benutzername</code></td>
</tr>
<tr>
<td><b>RBXVersionCommand</b></td>
<td>version</td>
<td>v</td>
<td>Zeigt die Chat-Version an.</td>
<td><code>/version</code></td>
</tr>
<tr>
<td><b>RBXWhisperBefehl</b></td>
<td>flüstern</td>
<td>w</td>
<td>Betreibt den Flüstermodus mit einer weiteren <code>Class.Player</code>.</td>
<td><code>/w DisplayName</code> oder <code>/w @Benutzername</code></td>
</tr>
</tbody>
Namen

Beachten Sie, dass Sie bearbeiten, erstellen und entfernen können TextChatCommands , auch wenn CreateDefaultCommands wahr ist. Beachten Sie auch, dass Stummschalten- und Entstummschaltbefehle für alle TextChannels gelten.

CreateDefaultTextChannels

Plugin-Sicherheit
Parallel lesen

Bestimmt, ob TextChatService sollte Standard TextChannels erstellen.Wenn true, wird ein Folder namens TextChannels innerhalb von TextChatService zur Laufzeit erstellt, um den in der Tabelle unten beschriebenen TextChannels zu enthalten.Jeder der standardmäßigen Kanäle hat das beschriebene spezielle Verhalten, das auf Nachrichten mit seiner intern gebundenen TextChannel.OnIncomingMessage Rückruffunktion angewendet wird, angewendet, die Art und Weise, wie Nachrichten erscheinen, wenn sie durch den Kanal gesendet werden.Der Rückruf wird automatisch zu Beginn der Laufzeit (wenn der TextChannel existiert) oder beim Erstellen des TextChannel zugewiesen.


<th>Beschreibung</th>
</tr>
</thead>
<tbody>
<tr>
<td><b>RBXGeneral</b></td>
<td><code>Class.TextChannel</code> für Spieler-Nachrichten.Im Chat-Fenster werden Nachrichten so modifiziert, dass <code>Class.TextChatMessage.PrefixText|PrefixText</code> einen <a href="/ui/rich-text">reichen Text</a> Farbtitel erhält, um Chat-Spielern ihren unverwechselbaren Namenfarben zu geben.Wenn <code>Class.Player.Team</code> existiert, wird diese <code>Class.Team.TeamColor</code> anstelle der Standardnamenfarbe verwendet.</td>
</tr>
<tr>
<td><b>RBXSystem</b></td>
<td><code>Class.TextChannel</code> für Systemnachrichten.Im Chat-Fenster werden Nachrichten so modifiziert, dass <code>Class.TextChatMessage.Text</code> standardmäßig ein hellgraues Farbtitel erhalten oder ein roter Farbtitel, wenn <code>Class.TextChatMessage.Metadata</code> das Wort <code>"Fehler"</code> enthält.</td>
</tr>
<tr>
<td><b>RBXTeam[BrickColor]</b></td>
<td><code>Class.TextChannel</code> für teamspezifische Spieler-Nachrichten, die erstellt werden, wenn ein <code>Class.Team.TeamColor|TeamColor</code> im Einsatz ist, von jedem <code>Class.Team</code> innerhalb des <code>Class.Teams</code> -Services.Der Name des erstellten Kanals ist <b>RBXTeam</b>, gefolgt vom Namen <code>Class.Team.TeamColor|TeamColor</code>.Zum Beispiel ist RBXTeamCrimson eine Class.TextChannel , die erstellt wird, wenn es ein aktives Team gibt, dessen Class.Team.TeamColor|TeamColor Eigenschaft die "Crimson" Datentyp ist.Im Chat-Fenster werden Nachrichten so modifiziert, dass Class.TextChatMessage.PrefixText|PrefixText gefärbt wird, entsprechend der Class.Player.TeamColor|TeamColor und mit [Team] Teamkanäle erstellt werden.Kanäle werden entfernt, wenn es keine verbleibenden Teams mit einer zugeordneten <code>Class.Team.TeamColor|TeamColor</code> gibt.</td>
</tr>
<tr>
<td><b>RBXWhisper:[Benutzer1]_[Benutzer2]</b></td>
<td><code>Class.TextChannel</code> für Whisper-Nachrichten zwischen zwei Spielern, die erstellt werden, wenn ein Spieler die Befehl <code>/whisper</code> auf einen anderen Spieler:inverwendet.Zum Beispiel ist RBXWhisper:2276836_505306092 ein Class.TextChannel für Spieler mit Class.Player.UserId|UserIds und 2276836 .Im Inneren der Whisper-Kanäle sind zwei <code>Class.TextSource|TextSources</code> mit den jeweiligen <code>Class.Player.UserId|UserIds</code> verbunden.Im Chat-Fenster werden Nachrichten mit derselben Farbe dargestellt wie diejenigen in <b>RBXGeneral</b> und <code>Class.TextChatMessage.PrefixText</code> wird modifiziert, um anzuzeigen, ob eine Nachricht vom lokalen Benutzer gesendet oder empfangen wurde.Whisper-Kanäle werden entfernt, wenn einer der Spieler die Erlebnisverlässt.</td>
</tr>
</tbody>
Kanal

Beachten Sie, dass die Standard-TextChannel.OnIncomingMessage-Callbacks überschrieben werden können.Beachten Sie auch, dass Sie TextChannels bearbeiten, erstellen und entfernen können, auch wenn CreateDefaultTextChannels wahr ist.

Nachrichten aus verschiedenen Textkanälen können in verschiedenen Tabs im Chat-Fenster mit ChannelTabsConfiguration getrennt werden.

Methoden

DisplayBubble

()

Zeigt eine Chat-Blase über dem angegebenen Teil oder Spielercharakter an und feuert das Ereignis BubbleDisplayed mit den in dieser Methode angegebenen Parametern ab.Kann Blasen für Nicht-Spieler-Charaktere (NPCs) anzeigen, wenn du einen Teil innerhalb des Charakters spezifizierst, wie sein Kopf.

Beachten Sie, dass diese Methode nur zur Verwendung in LocalScript oder in einem Script mit RunContext von Enum.RunContext.Client verfügbar ist.

Parameter

partOrCharacter: Instance

Das Teil oder der Charakter, der über der Blase angezeigt werden soll.

Standardwert: ""
message: string

Der Text, der in der Chat-Blase angezeigt wird.

Standardwert: ""

Rückgaben

()

CanUserChatAsync

Angehalten

Bestimmt, ob ein Benutzer die Berechtigung hat, in Erlebnissen zu chatten.Faktoren wie Einstellungen für die elterliche Kontrolle können den Benutzer daran hindern, Nachrichten zu senden.Fehler, wenn die Benutzer-ID nicht auf dem aktuellen Server ist.Beachten Sie, dass diese Methode mit allen aktuellen Spielern UserIds in einem Script mit RunContext von Enum.RunContext.Server oder Enum.RunContext.Legacy verwendet werden kann.Diese Methode kann auch in einem LocalScript verwendet werden, aber nur mit dem UserId des lokalen Spieler:in.

Parameter

userId: number
Standardwert: ""

Rückgaben

CanUsersChatAsync

Angehalten

Bestimmt, ob zwei Benutzer Nachrichten zueinander erhalten oder nicht.Faktoren wie unvereinbare elterliche Steuereinstellungen oder blockierter Status können die Lieferung von Nachrichten zwischen Benutzern verhindern TextChannels intern verwendet dieses Ergebnis, um zu bestimmen, ob Nachrichten zwischen Benutzern geliefert werden sollen.Beachten Sie, dass diese Methode nur zur Verwendung in einem Script mit RunContext von Enum.RunContext.Server oder Enum.RunContext.Legacy verfügbar ist.

Parameter

userIdFrom: number
Standardwert: ""
userIdTo: number
Standardwert: ""

Rückgaben

CanUsersDirectChatAsync

Angehalten

Bestimmt, ob ein Benutzer die Berechtigung hat, direkt mit anderen Benutzern in Erlebnissen zu chatten, die auf der Grundlage ihrer elterlichen Kontrolleneinstellungen stehen. Wird verwendet, wenn:

  • Die Kommunikationslinie wird vom Benutzer initiiert (nicht vom Entwickler oder vom Spiel initiiert)
  • Der Zugriff auf die Kommunikation ist geschlossen und begrenzt

Ein Beispiel für einen direkten Chat ist ein Whisper-Kanal zwischen zwei Benutzern.

Du kannst diese Methode verwenden, um bestimmte Funktionen in deiner Erfahrung abzusperren, abhängig vom Ergebnis.

Wenn du eine TextChannel für einen direkten Chat erstellst, verwende TextChannel:SetDirectChatRequester(), um den Anfragenden-BenutzerID festzulegen, damit der Kanal feststellen kann, ob er Nachrichten zwischen Benutzern liefern soll.Wenn TextChannel.DirectChatRequester nicht null ist, verwendet TextChannels intern dieses Ergebnis, um zu bestimmen, ob Nachrichten zwischen Benutzern geliefert werden sollen.


local whoCanDirectChat = TextChatService:CanUsersDirectChatAsync(requesterUserId, { userId1, userId2 })
if #whoCanDirectChat > 0 then
-- Der requesterUserId kann den Chat mit iPad1, iPad2 oder beidem leiten
else
-- Der Anfragende Benutzer kann den Chat nicht mit iPad1 oder iPad2 leiten
end

Beachten Sie, dass diese Methode nur zur Verwendung in einem mit oder verfügbar ist.

Parameter

requesterUserId: number

Der Benutzer, der die direkte Chat-Anfrage initiiert hätte. Wenn der requesterUserId nicht auf dem aktuellen Server ist, wird diese Methode fehlerhaft.

Standardwert: ""
userIds: Array

Eine Liste von Benutzern, mit denen der requesterUserId direkt chatten möchte. Benutzer, die nicht auf dem aktuellen Server sind, werden ignoriert.

Standardwert: ""

Rückgaben

Eine Liste von Benutzern, die an der direkten Chat-Anfrage teilnehmen könnten.Wenn keiner der Benutzer den Chat mit dem requesterUserId direkt leiten kann, ist das Ergebnis eine leere Array.

Code-Beispiele

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

Ereignisse

BubbleDisplayed

Feuert, wenn TextChatService:DisplayBubble() angerufen wird.

Parameter

partOrCharacter: Instance
textChatMessage: TextChatMessage

MessageReceived

Wie TextChannel.MessageReceived, feuert, wenn TextChannel:DisplaySystemMessage() auf dem Client aufgerufen wird, oder wenn der Client eine gültige TextChannel:SendAsync()-Antwort vom Server erhält.Dieses Ereignis wird nur auf dem Client ausgelöst.

Wenn die Eigenschaft des Servers TextChannel.ShouldDeliverCallback gebunden ist und false zurückgibt, feuert der Client nicht TextChatService.MessageReceived ab.

Verwende den TextChatMessage-Parameter, um die TextSource- und den Text der Nachricht zu erhalten (mit TextChatMessage.Text).

Der -Parameter ist das endgültige Ergebnis jeder Funktionen, die an oder gebunden sind.

Parameter

textChatMessage: TextChatMessage

Die empfangene TextChatMessage .


SendingMessage

Feuert, wenn TextChannel:SendAsync() vom sendenden Client aufgerufen wird.Verwende dies, um Platzhalternachrichten dem Benutzer während der Wartezeit auf Serverantwort anzuzeigen TextChannel:SendAsync().

Parameter


Callbacks

OnBubbleAdded

Aufgerufen, wenn ein Bubble-Chat angezeigt werden soll. Dies kann nur auf dem Client implementiert werden.

Verwende dies, um einzelne Blasen-Chatnachrichten anzupassen.Wenn dieser Rückruf eine BubbleChatMessageProperties zurückgibt, werden diese Eigenschaften auf die zugeordnete Blase angewendet und die BubbleChatConfiguration Eigenschaften überschrieben.Wenn ein UICorner , UIGradient oder ImageLabel unter BubbleChatMessageProperties übergeordnet wird, werden auch ihre jeweiligen Gegenstücke, die in BubbleChatConfiguration definiert sind, überschrieben.

Wenn die Chatnachricht von einem Spieler:ingesendet wird, entspricht message.TextSource diesem Spieler:inund adornee wird nil .

Wenn die Chatnachricht über TextChatService:DisplayBubble() gesendet wird, ist adornee die bereitgestellte partOrCharacter und message.TextSource die bereitgestellte nil .

Wenn es mit dem Client verbunden ist, der eine Nachricht sendet, wird dieser Rückruf zweimal ausgeführt: zuerst, wenn die Nachricht ursprünglich lokal gesendet und empfangen wird, dann wieder, wenn der Client das Ergebnis der gefilterten Nachricht vom Server erhält.

Parameter

Die eingehende TextChatMessage .

adornee: Instance

Das Teil oder der Charakter, an den die Blasenchat-Nachricht angehängt ist.


Rückgaben

Wenn ein BubbleChatMessageProperties zurückgegeben wird, übertreffen seine Eigenschaften die Eigenschaften von BubbleChatConfiguration.

OnChatWindowAdded

Aufgerufen, wenn eine neue Nachricht im Chat-Fenster angezeigt werden soll. Dies kann nur auf dem Client implementiert werden.

Verwende dies, um einzelne Nachrichten anzupassen, die im Chat-Fenster angezeigt werden.Wenn dieser Rückruf eine ChatWindowMessageProperties zurückgibt, werden diese Eigenschaften auf die zugeordnete Nachricht angewendet und überschreiben ChatWindowConfiguration Eigenschaften.Wenn ein UIGradient unter ChatWindowMessageProperties übergeordnet wird, wird auch die TextColor3 Eigenschaft definiert, die in ChatWindowConfiguration definiert wurde, überschrieben.

Wenn es mit dem Client verbunden ist, der eine Nachricht sendet, wird dieser Rückruf zweimal ausgeführt: zuerst, wenn die Nachricht ursprünglich lokal gesendet und empfangen wird, dann wieder, wenn der Client das Ergebnis der gefilterten Nachricht vom Server erhält.

Parameter

Die eingehende TextChatMessage .


Rückgaben

Wenn ein ChatWindowMessageProperties zurückgegeben wird, übertreffen seine Eigenschaften die Eigenschaften von ChatWindowConfiguration.

OnIncomingMessage

Aufgerufen, wenn TextChatService eine eingehende Nachricht empfängt. Kann nur auf dem Client implementiert werden.

Verwende dies, um TextChatMessages zu dekorieren.Wenn dieser Rückruf eine TextChatMessageProperties zurückgibt, werden diese Eigenschaften mit dem TextChatMessage -Parameter zusammengeführt, um eine neue TextChatMessage zu erstellen.

Wenn es mit dem Client verbunden ist, der eine Nachricht sendet, wird dieser Rückruf zweimal ausgeführt; zuerst, wenn die Nachricht ursprünglich lokal gesendet und empfangen wird, und wieder, wenn der Client das Ergebnis der gefilterten Nachricht vom Server erhält.

Beachten Sie, dass diese TextChatService.OnIncomingMessage Rückruf läuft vor jedem TextChannel.OnIncomingMessage Rückruf.

Dies sollte nur einmal im Codesdefiniert werden. Mehrere Bindungen werden sich gegenseitig in einer nicht deterministischen Weise auferlegen.

Parameter

Die eingehende TextChatMessage .


Rückgaben

Wenn ein zurückgegeben wird, werden diese Eigenschaften mit dem -Parameter zusammengeführt, um ein neues mit diesen Eigenschaften zu erstellen, ansonsten wird nicht geändert.