TextChatService
*Ta zawartość została przetłumaczona przy użyciu narzędzi AI (w wersji beta) i może zawierać błędy. Aby wyświetlić tę stronę w języku angielskim, kliknij tutaj.
Usługa obsługująca czat tekstowy w doświadczeniu, w tym managing channels , dekorowanie wiadomości, filtrowanie tekstu, creating commands , i rozwijanie niestandardowych interfejsów czat .
Aby dowiedzieć się więcej, zobacz Przeglad usługi TextChatService.
Dla dalszej personalizacji TextChatService ma następujące pojedyncze dzieci:
Podsumowanie
Właściwości
Określa, czy włączona jest tłumaczenie czatu.
Określa, czy w pełni włączyć TextChatService lub powrócić do starszego systemu czatu.
Określa, czy TextChatService powinien utworzyć domyślną TextChatCommands.
Określa, czy TextChatService powinien utworzyć domyślną TextChannels.
Metody
Wyświetla bąbel czatu nad dostarczoną częścią lub postacią gracza.
Określa, czy użytkownik ma uprawnienie do rozmawiania w doświadczeniach.
Określa, czy dwoje użytkowników otrzyma wiadomości między sobą, czy nie.
Określa, czy użytkownik ma uprawnienie do rozmawiania bezpośrednio z innymi użytkownikami w doświadczeniach na podstawie czynników takich jak ich ustawienia kontroli rodzicielskiej.
Zdarzenia
Wypala się, gdy TextChatService:DisplayBubble() jest wzywany.
Wystrzeliwuje się, gdy TextChannel:DisplaySystemMessage() zostanie wywołany na klientzie lub gdy klient otrzyma prawidłową odpowiedź TextChannel:SendAsync() od serwera.
Wypala się, gdy TextChannel:SendAsync() jest wzywany przez wysyłającego klienta.
Wywołania zwrotne
Wzywany, gdy rozmowa bąbelkowa ma być wyświetlona.
Wzywany, gdy nowa wiadomość ma zostać wyświetlona w oknie czatu. Można to zrealizować tylko na klientzie.
Wezwany, gdy TextChatService otrzymuje wходяcą wiadomość.
Właściwości
ChatTranslationEnabled
Określa, czy włączona jest tłumaczenie czatu.Jeśli prawda, wiadomość systemowa powiadomi gracza, gdy po raz pierwszy dołączy do czatu, wiadomości mogą być przetłumaczone na preferowany język gracza.
ChatVersion
Określa, czy w pełni włączyć TextChatService lub powrócić do starszego systemu czatu.Ustawienie tej właściwości na Enum.ChatVersion.LegacyChatService skutecznie wyłącza TextChatService.
CreateDefaultCommands
Określa, czy TextChatService powinien utworzyć domyślną TextChatCommands.
Jeśli prawda, następujące TextChatCommands są tworzone i umieszczane w Folder o nazwie TextChatCommands wewnątrz TextChatService :
<th>Podstawowy alias</th><th>Aliasz drugorzędny</th><th>Opis</th><th>Przykład użycia</th></tr></thead><tbody><tr><td><b>RBXClearCommand</b></td><td>czyścić</td><td>cls</td><td>Wyczyść dziennik czatu dla lokalnego użytkownika.</td><td><code>/cls</code></td></tr><tr><td><b>RBXConsoleCommand</b></td><td>konsola</td><td /><td>Otwiera konsolę programisty.</td><td><code>/console</code> ></td></tr><tr><td><b>Komenda emotki RBX</b></td><td>emotka</td><td>e</td><td>Odtwarza emotkaawatara.</td><td><code>/e tańcz</code></td></tr><tr><td><b>Komenda pomocy RBX</b></td><td>pomagać</td><td>?</td><td>Pokazuje listę poleceń czatu.</td><td><code>/pomocy</code></td></tr><tr><td><b>Komenda wyłączania RBXMute</b></td><td>wyciszać</td><td>m</td><td>Wycisza użytkownika przez jego <code>Class.Player.Name|Name</code> lub <code>Class.Player.DisplayName|DisplayName</code> we wszystkich <code>Class.TextChannel|TextChannels</code>.</td><td><code>/m Nazwa użytkownika</code></td></tr><tr><td><b>RBXTeamCommand</b></td><td>zespół</td><td>t</td><td>Wchodzi w tryb czatu zespołowego, w którym wiadomości są widoczne tylko dla członków zespołu.</td><td><code>/t</code></td></tr><tr><td><b>RBXUnmuteCommand</b></td><td>wycisz</td><td>um</td><td>Odcisz użytkownika przez jego <code>Class.Player.Name|Name</code> lub <code>Class.Player.DisplayName|DisplayName</code> we wszystkich <code>Class.TextChannel|TextChannels</code>.</td><td><code>Nazwa użytkownika /um</code></td></tr><tr><td><b>Komenda RBXVersji</b></td><td>wersja</td><td>v</td><td>Pokazuje wersję czatu.</td><td><code>/wersja</code></td></tr><tr><td><b>RBXWhisperCommand</b></td><td>szeptać</td><td>w</td><td>Wchodzi w tryb szeptu z inną <code>Class.Player</code>.</td><td><code>/w Nazwa wyświetlania</code> lub <code>/w @Username</code></td></tr></tbody>
Nazwa |
---|
Zauważ, że możesz edytować, tworzyć i usuwać TextChatCommands nawet jeśli CreateDefaultCommands jest prawdą. Zauważ również, że polecenia wyciszania i odłączania mają zastosowanie do wszystkich TextChannels .
CreateDefaultTextChannels
Określa, czy TextChatService powinien utworzyć domyślną TextChannels.Jeśli prawda, nazywany Folder Kanały tekstowe jest tworzony wewnątrz TextChatService w czasie wykonania, aby zawierać TextChannels opisane w tabeli poniżej.Każdy z domyślnych kanałów ma opisane specjalne zachowanie zastosowane do wiadomości za pomocą jego wewnętrznie wiązanej funkcji powrotnej TextChannel.OnIncomingMessage, zmieniającej sposób wyświetlania wiadomości po wysłaniu za pośrednictwem kanału.Wezwanie jest przypisywane automatycznie albo podczas uruchamiania (jeśli istnieje TextChannel ) albo po utworzeniu TextChannel .
<th>Opis</th></tr></thead><tbody><tr><td><b>RBXOgólne</b></td><td><code>Class.TextChannel</code> dla wiadomości gracza.W oknie czatu wiadomości są modyfikowane tak, że <code>Class.TextChatMessage.PrefixText|PrefixText</code> otrzymuje tag koloru czcionki <a href="../../../ui/rich-text.md">bogatego tekstu</a>, aby dać graczom czatującym ich odrębną nazwę koloru.Jeśli istnieje <code>Class.Player.Team</code>, używa się tego <code>Class.Team.TeamColor</code> zamiast domyślnej kolory nazwy.</td></tr><tr><td><b>System RBX</b></td><td><code>Class.TextChannel</code> dla wiadomości systemowych.W oknie czatu wiadomości są modyfikowane tak, że <code>Class.TextChatMessage.Text</code> otrzymuje domyślnie jasno szary tag, lub czerwony tag, jeśli <code>Class.TextChatMessage.Metadata</code> zawiera słowo <code>"Błąd"</code>.</td></tr><tr><td><b>Zespół RBX[BrickColor]</b></td><td><code>Class.TextChannel</code> dla wiadomości graczy związanych z drużyną, utworzonych, gdy <code>Class.Team.TeamColor|TeamColor</code> jest używany przez jakąkolwiek <code>Class.Team</code> wewnątrz usługi <code>Class.Teams</code>.Nazwa utworzonego kanału to <b>RBXTeam</b> połączona z nazwą <code>Class.Team.TeamColor|TeamColor</code>.Na przykład, <b>RBXTeamCrimson</b> jest klasą <code>Class.TextChannel</code>, która została utworzona, gdy istnieje aktywny zespół, którego właściwość <code>Class.Team.TeamColor|TeamColor</code> jest "Crimson" <code>Datatype.BrickColor</code>.W oknie czatu wiadomości są modyfikowane tak, że <code>Class.TextChatMessage.PrefixText|PrefixText</code> jest kolorowany zgodnie z <code>Class.Player.TeamColor|TeamColor</code> i jest dodany z przedrostkiem <b>[Team]</b>.Kanały zespołów tworzą <code>Class.TextSource|TextSources</code> dla wszystkich nie‑ <code>Class.Player.Neutral|Neutral</code> graczy z odpowiadającą właściwością <code>Class.Team.TeamColor|TeamColor</code>, umożliwiając im korzystanie z czatu zespołowego.Kanały są usuwane, jeśli nie ma pozostałych zespołów z powiązaną klasą <code>Class.Team.TeamColor|TeamColor</code>.</td></tr><tr><td><b>RBXWhisper:[Username1]_[Username2]</b></td><td><code>Class.TextChannel</code> na szeptane wiadomości między dwoma graczami, stworzone, gdy gracz używa polecenia <code>/whisper</code> na innym graczu.Na przykład <b>RBXWhisper:2276836_505306092</b> jest klasą <code>Class.TextChannel</code> dla graczy z <code>Class.Player.UserId|UserIds</code><b>2276836</b> i <b>505306092</b>.Wewnątrz kanałów szeptu są dwa <code>Class.TextSource|TextSources</code> powiązane z odpowiednim <code>Class.Player.UserId|UserIds</code> .W oknie czatu wiadomości są kolorowane tak samo jak te w <b>RBXGeneral</b> i <code>Class.TextChatMessage.PrefixText</code> jest zmieniony, aby pokazać, czy wiadomość została wysłana z lub otrzymana przez lokalnego użytkownika.Kanały szeptu są usuwane, gdy któryś z graczy opuści doświadczenie.</td></tr></tbody>
Kanał |
---|
Zauważ, że domyślne wezwania TextChannel.OnIncomingMessage mogą zostać nadpisane.Zauważ też, że możesz edytować, tworzyć i usuwać TextChannels nawet jeśli CreateDefaultTextChannels jest prawdą.
Wiadomości z różnych kanałów tekstowych można oddzielić w różnych zakładkach w oknie czatu za pomocą ChannelTabsConfiguration .
Metody
DisplayBubble
Wyświetla bąbel czatu nad dostarczoną częścią lub postacią gracza, i uruchamia wydarzenie BubbleDisplayed z parametrami określonymi w tej metodzie.Możesz wyświetlać bąbelki dla postaci niegraczowych (NPC) jeśli określisz część wewnątrz postaci, taką jak jej głowa.
Zauważ, że ta metoda jest dostępna tylko do użytku w LocalScript lub w Script z RunContext z Enum.RunContext.Client .
Parametry
Część lub postać, które mają być wyświetlone powyżej bąbelka.
Tekst, który ma być wyświetlony w bąbelku czatu.
Zwroty
CanUserChatAsync
Określa, czy użytkownik ma uprawnienie do rozmawiania w doświadczeniach.Czynniki takie jak ustawienia kontroli rodzicielskiej mogą uniemożliwić użytkownikowi wysyłanie wiadomości.Błędy, jeśli identyfikator użytkownika nie jest na obecnym serwerze.Zauważ, że ta metoda może być używana z wszystkimi obecnymi graczami UserIds w Script z RunContext z Enum.RunContext.Server lub Enum.RunContext.Legacy .Ta metoda może być również używana w LocalScript ale tylko z UserId lokalnym graczem.
Parametry
Zwroty
CanUsersChatAsync
Określa, czy dwoje użytkowników otrzyma wiadomości między sobą, czy nie.Czynniki takie jak niezgodne ustawienia kontroli rodzicielskiej lub zablokowany stan mogą uniemożliwić dostarczanie wiadomości między użytkownikami TextChannels wewnętrznie używa tego wyniku, aby określić, czy należy dostarczać wiadomości między użytkownikami.Zauważ, że ta metoda jest dostępna tylko do użytku w Script z RunContext z Enum.RunContext.Server lub Enum.RunContext.Legacy .
Parametry
Zwroty
CanUsersDirectChatAsync
Określa, czy użytkownik ma uprawnienie do rozmawiania bezpośrednio z innymi użytkownikami w doświadczeniach opartych na ustawieniach kontroli rodzicielskiej. Do użycia, gdy:
- Linia komunikacji jest inicjowana przez użytkownika (nie przez programistę lub gracza)
- Dostęp do komunikacji jest zamknięty i ograniczony
Przykładem bezpośredniej czatu jest kanał szeptu między dwoma użytkownikami.
Możesz użyć tej metody, aby wyłączyć niektóre funkcje w swoim doświadczeniu w zależności od wyniku.
Podczas tworzenia TextChannel dla bezpośredniej rozmowy czat, użyj TextChannel:SetDirectChatRequester() , aby ustawić wymagany adres IP, tak aby kanał mógł określić, czy ma dostarczać wiadomości między użytkownikami.Gdy TextChannel.DirectChatRequester jest nie null, TextChannels wewnętrznie używa tego wyniku, aby określić, czy dostarczyć wiadomości między użytkownikami.
local whoCanDirectChat = TextChatService:CanUsersDirectChatAsync(requesterUserId, { userId1, userId2 })if #whoCanDirectChat > 0 then-- Wymagający identyfikator użytkownika może kierować czat z jednym z następujących ID: userId1, userId2 lub obuelse-- Żądający nie może kierować czatem z ID użytkownika #{number1} lub #{number2}end
Zauważ, że ta metoda jest dostępna tylko do użytku w Script z RunContext z Enum.RunContext.Server lub Enum.RunContext.Legacy .
Parametry
Użytkownik, który zainicjowałby prośbę o bezpośrednią prośba. Jeśli requesterUserId nie jest na obecnym serwerze, ta metoda wystąpi błąd.
Lista użytkowników, z którymi zamawiający chciałby rozmawiać bezpośrednio. Użytkownicy nie na obecnym serwerze są ignorowani.
Zwroty
Lista użytkowników, którzy mogą wziąć udział w prośbie o bezpośrednią rozmowę.Jeśli żaden z użytkowników nie może skierować czatu z wymagającym adresem IP, wynikiem jest pusta lista.
Przykłady kodu
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
Zdarzenia
MessageReceived
Podobnie jak TextChannel.MessageReceived, zapala się, gdy TextChannel:DisplaySystemMessage() jest wzywany na klientzie, lub gdy klient otrzymuje ważną odpowiedź TextChannel:SendAsync() od serwera.To wydarzenie jest uruchamiane tylko na klientzie.
Jeśli właściwość serwera TextChannel.ShouldDeliverCallback jest wiązana i zwraca false, klient nie uruchomi TextChatService.MessageReceived.
Użyj parametru TextChatMessage , aby uzyskać TextSource i tekst wiadomości (z TextChatMessage.Text ).
Parametr TextChatMessage jest ostatecznym wynikiem każdej funkcji związanej z TextChatService.OnIncomingMessage lub TextChannel.OnIncomingMessage.
Parametry
Otrzymany TextChatMessage .
SendingMessage
Wypala się, gdy TextChannel:SendAsync() jest wzywany przez wysyłającego klienta.Użyj tego, aby umożliwić wyświetlanie wiadomości placeholder użytkownikowi, czekając na odpowiedź serwera do TextChannel:SendAsync().
Parametry
The TextChatMessage z wezwania TextChannel:SendAsync().
Wywołania zwrotne
OnBubbleAdded
Wzywany, gdy rozmowa bąbelkowa ma być wyświetlona. Można to zrealizować tylko na klientzie.
Użyj tego, aby dostosować indywidualne wiadomości czatu bąbelkowego.Jeśli ten powrót wezwania zwraca BubbleChatMessageProperties, właściwości zostaną zastosowane do powiązanej bąbelki, zastępując właściwości BubbleChatConfiguration.Jeśli UICorner, UIGradient lub ImageLabel jest nadzorowany pod BubbleChatMessageProperties, zastąpią również odpowiednie odpowiedniki zdefiniowane w BubbleChatConfiguration.
Jeśli wiadomość czatu jest wysyłana przez gracza, message.TextSource będzie odpowiadać temu graczowi, a adornee będzie nil.
Jeśli wiadomość czatu jest wysyłana za pośrednictwem , będzie dostarczona, a będzie .
Po wiązaniu z klientem wysyłającym wiadomość ten powrót jest uruchamiany dwa razy: po raz pierwszy, gdy wiadomość jest początkowo wysyłana i odbierana lokalnie, a następnie ponownie, gdy klient otrzymuje wynik filtrowanej wiadomości z serwera.
Parametry
Otrzymujący TextChatMessage .
Część lub postać, do której przypisano wiadomość rozmowy bąbelkowej.
Zwroty
Jeśli zostanie zwrócony BubbleChatMessageProperties, jego właściwości zastąpią właściwości BubbleChatConfiguration.
OnChatWindowAdded
Wzywany, gdy nowa wiadomość ma zostać wyświetlona w oknie czatu. Można to zrealizować tylko na klientzie.
Użyj tego, aby dostosować poszczególne wiadomości, które pojawiają się w oknie czatu.Jeśli ten powrót wezwania zwraca ChatWindowMessageProperties, właściwości te zostaną zastosowane do powiązanej wiadomość, zastępując właściwości ChatWindowConfiguration.Jeśli UIGradient jest nadzorowany pod ChatWindowMessageProperties , również zastąpi właściwość TextColor3 zdefiniowaną w ChatWindowConfiguration .
Po wiązaniu z klientem wysyłającym wiadomość ten powrót jest uruchamiany dwa razy: po raz pierwszy, gdy wiadomość jest początkowo wysyłana i odbierana lokalnie, a następnie ponownie, gdy klient otrzymuje wynik filtrowanej wiadomości z serwera.
Parametry
Otrzymujący TextChatMessage .
Zwroty
Jeśli zostanie zwrócony ChatWindowMessageProperties, jego właściwości zastąpią właściwości ChatWindowConfiguration.
OnIncomingMessage
Wzywany, gdy TextChatService otrzymuje wходяcą wiadomość. Może być wdrożony tylko na klientzie.
Użyj tego, aby udekorować TextChatMessages .Jeśli ten powrót wezwania zwraca TextChatMessageProperties, właściwości te są łączone z parametrem TextChatMessage w celu utworzenia nowej TextChatMessage.
Po wiązaniu z klientem wysyłającym wiadomość ten powrót jest uruchamiany dwa razy; po raz pierwszy, gdy wiadomość jest początkowo wysyłana i odbierana lokalnie, a ponownie, gdy klient otrzymuje wynik filtrowanej wiadomości z serwera.
Zauważ, że ten powrót TextChatService.OnIncomingMessage wykonuje się przed każdym powrotem TextChannel.OnIncomingMessage.
Powinno to być zdefiniowane tylko raz w kodzie źródłowym. Wiele wiązań zastąpi jeden drugiego w sposób nieokreślony.
Parametry
Otrzymujący TextChatMessage .
Zwroty
Jeśli zostanie zwrócony , właściwości te zostaną połączone z parametrem w celu utworzenia nowej z tymi właściwościami, w przeciwnym razie, jeśli zostanie zwrócony , właściwości nie zostaną zmienione.