Moduły czatu stron serwera

*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.

Możesz użyć następujący moduły czatu, aby wspierać stronę serwera zachowań z Legacy Chat System włączając w to:

  • ChatService : Jeden z singletonów zarządzający wszystkimi innymi modułami czatu.
  • ChatSpeaker : Entitas, która może tworzyć wiadomości w Kanałach Czatu; każdy Player będzie automatycznie mieć ChatSpeaker i boty mogą czatować, tworząc ChatSpeakers.
  • ChatMessage : Container dla treści, której ChatSpeaker wysyłuje do kanału czatu; zawiera metadane używane do formatowania wiadomości lub dodawania dodatkowych funkcji do komend.
  • Kanał czatu : Kanał, przez który można wymieniać wiadomości czatu; używany również do czatu zespołu i czatu wątpliwości.

ChatService

ChatService jest jednym z obiektów singielonowych, które zarządzają zachowaniem strony serwera z systemu czatu Lua, takich jak Kanały czatu i Głośniki czatu.

Wszystkie ModuleScript s w Katalogu Modułów Czatu powinny zwrócić funkcję, a funkcja ta będzie nazywać się z funkcją ChatService.

Metody

Dodaj kanał

  • Parametry: string : channelName
  • Opis: Stworza obiekt ChatChannel z podanym nazwą i w zwrot.
  • Wróca: Kanal czatu

Usuń kanał

  • Parametry: string : channelName
  • Opis: Usuń kanał z podanym nazwą
  • Wynik: void

Zdobądź kanał

  • Parametry: string : channelName
  • Opis: Wydaje kanał z podanym imieniem lub zero, jeśli nie istnieje.
  • Wróca: Kanal czatu

Dodajgłośnik

  • Parametry: string : speakerName
  • Opis: Utwórz i dodaj głośnik do czatu z podanym imieniem, a następnie wróć.
  • Wrócić: Głośnik czatu

Usuńgłośnik

  • Parametry: string : speakerName
  • Opis: Usunie głośnik z czatu z podanym imieniem.
  • Wynik: void

Zdobądź głośnik

  • Parametry: string : speakerName
  • Opis: Wyprowadza głośnik z podanym imieniem lub zerem, jeśli nie istnieje.
  • Wrócić: Głośnik czatu

Zdobądź listę kanałów

  • Parametry: żadne
  • Opis: Wróci lista imion wszystkich nieprywatnych kanałów w czacie.
  • Wyniki: lista< string >

Zdobądź listę kanałów

  • Parametry: żadne
  • Opis: Wróci lista imion wszystkich kanałów w czacie z ustawionym na prawdę AutoJoin.
  • Wyniki: lista< string >

Zarejestruj funkcję MessageFilter

  • Parametry: string : functionId , 0> funkcja0> : 3> func 3>
  • Opis: Rejestruje funkcję filtra do czatu zidentyfikowanego przez functionId . Wszelkie zmiany w wiadomości będą trwać i wyświetlane, gdy wiadomość dotrze do wszystkich innych funkcji filtra. Ta funkcja jest przekazywana imieniu głośnik, obiektowi wiadomości i kanału, z którego pochodzi wiadomość.
  • Wynik: void
  • przykład:

-- Wklej ten przykład do MenuScript w katalogu ChatModule.
-- Ten przykład sfiltrowuje kluczowe słowo, a jeśli jest to powodem sukcesu, ustawia kolor czatu wiadomość
local functionId = "greenText"
local keyword = "#green"
local chatColor = Color3.new(0, 1, 0) -- zielony
local function doFilter(speaker, messageObject, channelName)
-- Sprawdź, czy wiadomość zawiera słowo kluczowe
local start, finish = string.find(messageObject.Message, keyword)
if start and finish then
-- Usuń (filtr) słowo kluczowe z wiadomość, ustawiając również kolor czatu
messageObject.Message = string.gsub(messageObject.Message, keyword, "")
messageObject.ExtraData.ChatColor = chatColor
end
end
local function runChatModule(ChatService)
ChatService:RegisterFilterMessageFunction(functionId, doFilter)
end
return runChatModule

Nie rejestrujFilterMessageFunction

  • Parametry: string : functionId
  • Opis: Nie rejestruje funkcji filtra (zarejestrowanej przez RegisterFilterMessageFunction) z jego identyfikatorem, functionId .
  • Wynik: void

Rejestracja procesu komendy

  • Parametry: string : functionId , 0> funkcja0> : 3> func 3>
  • Opis: Rejestruje funkcję komendy procesu do czatu zidentyfikowanego przez functionId . Przed wysłaniem wiadomości będzie przetwarzana przez func (i inne funkcje zarejestrowane przez tę). Funkcja 0> func
  • Wynik: void
  • przykład:

-- Wklej ten przykład do MenuScript w katalogu ChatModule.
local functionId = "getPizza"
local command = "/pizza"
local toolId = 22596452 -- Nóż do pizzy pepperoni
local function processCommand(speakerName, message, channelName)
if string.sub(message, 1, command:len()) == command then
local model = game:GetService("InsertService"):LoadAsset(toolId)
local tool = model:GetChildren()[1]
local speaker = ChatService:GetSpeaker(speakerName)
local player = speaker:GetPlayer()
tool.Parent = player.Backpack
return true
end
return false
end
local function runChatModule(ChatService)
ChatService:RegisterProcessCommandsFunction(functionId, processCommand)
end
return runChatModule

Niezarejestrowanie funkcji komendy

  • Parametry: string : functionId
  • Opis: Od rejestratora usuwa się procesor zeszytu rozkładu (zarejestrowany przez RegisterProcessCommandsFunction ) zidentyfikowanym przez identyfikator, functionId .
  • Wynik: void

Wydarzenia

DodanyKanał

  • Parametry: string : channelName
  • Opis: Ognia się, gdy kanał zostanie dodany do czatu.

Kanał usunięty

  • Parametry: string : channelName
  • Opis: Ognia się, gdy kanał zostanie usunięty z czatu.

Dodano Głośnik

  • Parametry: string : speakerName
  • Opis: Pojawia się, gdy dodany jest głośnik do czatu.

Głośnik usunięty

  • Parametry: string : speakerName
  • Opis: Wystrzela, gdy głośnik zostanie usunięty z czatu.

Głośnik czatu

A ChatSpeaker jest przedstawieniem jednej entytety, która może mówić w Kanałe채팅. Każdy Player połączony z grą ma automatycznie powiązanegoChatSpeaker. DodatkoweChatSpeakers mogą być zbudowane dla nieużytkowników (takich jak ogłosiciele lub wiadomości na źle) używając 2>ChatService:DodajSpeaker()

Właściwości

Nazwa

  • Typ:: string : Name
  • Opis: Imię głośnik, używanej do odniesienia się do tej głośnicy podczas wzywania wielu innych funkcji.

Metody

DołączKanał

  • Parametry: string : channelName
  • Opis: Dodaje głośnik do kanału z podanym channelName
  • Wynik: void

Opuść kanał

  • Parametry: string : channelName
  • Opis: Usunie głośnik z kanału z podanym channelName
  • Wynik: void

Zdobądź listę kanałów

  • Parametry: Żaden
  • Opis: Wróci lista imion wszystkich kanałów, w których się mówca znajduje.
  • Wyniki: lista< string >

Czy w kanałach

  • Parametry: string : channelName
  • Opis: Wskazuje, czy głośnik jest w kanałze z podanym channelName .
  • Wyniki: bułka

Powiedz wiadomość

  • Parametry: string : message , 0> Library.ciąg0> : 3> chanネーム3> , słownik< 6> Library.ciąg6> , wariant> 9> extraData 9>
  • Opis:: Powoduje, że głośnik mówi message i zwraca obiekt ChatMessage utworzony w tym celu.
  • Wróca: CzatMessage

Wyślij wiadomość

  • Parametry: string : message , 0> Library.ciąg0> : 3> kanał3> , 6> Library.ciąg6> : 9> fromSpeaker 9>
  • Opis: Wysyłuje wiadomość do ChatSpeaker z podanym imieniem fromSpeaker. Jeśli takiego mówiciela nie ma w kanał, ten metod wygeneruje ostrzeżenie i mówiciel nie zobaczy wiadomości.
  • Wynik: void

WyślijSystemMessage

  • Parametry: string : message , 0> Library.ciąg0> : 3> channelName 3>
  • Opis: Wysyłuje komunikat systemu do Kanału Czatu z podanym channelName . Jeśli głośca nie jest w kanałach, to ten komunikat stworzy ostrzeżenie i inni głoścy w kanałach nie zobaczą tego wiadomość.
  • Wynik: void

Zdobądź gracza

  • Parametry: Żaden
  • Opis: Wrócić obiekt Player z powiązanym ze sprakerem. Jeśli spraker nie jest dla użytkownika (bot), to to zwraca nil .
  • Wyniki: Player lub nil

UstawDodatkoweDane

  • Parametry: string : key , wariant 0> data0>
  • Opis: Ustawia niektóre dodatkowe dane dla głośnika pod określonym key . Kiedy głośnik wysyła ChatMessage, to dodatkowe dane są przywiązane do wiadomości, jeśli żadna nie jest wyraźnie zapewniona z wiadomość. Na przykład, pozwala to ustawiaćkolor czatu głośnika.
  • Wynik: void

Zdobądź dodatkowe dane

  • Parametry: string : key
  • Opis: Wynika dodatkowe dane związane z podanym key , ustawione za pomocą SetExtraData.
  • Wrócić: Variant

Ustaw główny kanał

  • Parametry: string : channelName
  • Opis: Ustawia głośnik, aby rozmawiał w dostępnym kanał. Włącza MainChannelSet.
  • Wyniki: nil

Wydarzenia

Powiedziano

Otrzymano wiadomość

OtrzymanoSystemMessage

  • Parametry: ChatMessagemessage , 0> Library.ciąg0> : 3> chanネーム 3>
  • Opis: Wystrzelony, gdy głośnik otrzymuje system ChatMessage od Kanału czatu z podanym 0>channelName0> .

Dołączony kanał

  • Parametry: string : channelName , 0> Library.ciąg0> : 3> channelWelcomeMessage 3>
  • Opis: Wystrzelony, gdy głośnik dołączy do Kanału czatu z podanym channelName .

Kanał lewy

  • Parametry: string : channelName
  • Opis: Wystrzelony, gdy głośnik opuści Kanał czatu z podanym channelName .

Zmutowany

  • Parametry: string : channelName , 0> Library.ciąg0> : 3> reason = nil3> , 6> int6> : 9> duration 9> = 0
  • Opis: Wystrzelono, gdy głośnik jest zmutowany na Kanałe czatu z channelName dla określonej długości (jeśli dotyczy). Może lub nie ma dostarczonego 0> reason0> (dostarczone może lub nie może być).

Niezmutowany

  • Parametry: string : channelName
  • Opis: Wystrzelony, gdy głośnik niezmutowany na Kanałe czatu z channelName .

Aktualizacja danych

  • Parametry: string : key , wariant 0> data0>
  • Opis: Zainicjowano po aktualizacji domyślnej wartości klucza w dodatkowych danach odtwarzтеля za pomocą SetExtraData.

Zestaw głównych kanałów

  • Parametry: string : channelName
  • Opis: Wystrzelony, gdy kanał główny głośników zostanie zmieniony na Kanał czatu z daneym channelName .

Wiadomość czatu

A ChatMessage jest strukturą danych przedstawiającą wiadomość wysłaną z ChatSpeaker. zawiera dane o wiadomości, w tym długość tekstu, czy tekst został sfiltrowany przez Roblox, i dodatkowe dane o wyglądzie wiadomości.

Właściwości

identyfikator

  • Typ: int
  • Opis: Unikalny identyfikator liczbowy dla wiadomość.

Odgłośnik

Początkowy kanał

  • Typ:: string :
  • Opis: Imię kanału czatu, z którego pochodzi wiadomość.

CzyFiltrowane

  • Typ: bułka
  • Opis: Opisuje czy wiadomość jest filtrowana przez Roblox (jeśli tak, to Message będzie nil )

Długość wiadomości

  • Typ: int
  • Opis: Długość wiadomości. Możesz użyć tego do generowania zaszyfrowanej wiadomości, jeśli wiadomość została sfiltrowana.

Wiadomość

  • Typ:: string lub nil
  • Opis: Tekst wiadomość. Ta właściwość będzie nil jeśli IsFiltered jest prawdą.

Typ wiadomości

  • Typ:: string :
  • Opis: Typ wiadomość. Te rodzaje są opisane w modułach ChatCommands:
  • Możliwe wartości: "Message" , "System" , 0> "MeCommand"0> , 3> "Welcome"3> , 6> "SetCore"6> , 9> "Whisper" 9>

Czas

  • Typ: int
  • Opis: Datę; wartość os.time() w czasie dziełowiadomość.

Dodatkowe dane

  • Typ:: 典< string , Variant>
  • Opis: Dictionarium metadanych dla tego wiadomość. Jest to używane do zmiany wyglądu wiadomość. Klucze poniżej mogą być obecne:

Kanał czatu

ChatChannel jest obiektem, który przechowuje dane o jednym kanale, który jest środkiem, w jaki sposób wiadomości można wymienić między ChatSpeakers . Ma również właściwości dostępu, które określają widoczność wiadomości wraz z tym, czy użytkownicy mogą dołączyć lub opuścić kanał ręcznie (używając

Domyślnie każdy użytkownik ma Głośnik czatu, który jest automatycznie dodany do kanałów czatu „Wszystko” i „System” (chociaż „System” jest tylko czytany). Jeśli użytkownik jest na Player.Team, będzie on również miał dostęp do kanału tylko dla tej drużyny.

Właściwości

Nazwa

  • Typ:: string
  • Opis: Imię kanału, używane do odniesienia się do kanału w innych funkcjach.

Witaj

  • Typ:: string
  • Opis: Wiadomość do wyświetlenia, gdy użytkownik dołącza do kanału.

Dołączalny

  • Typ: bułka
  • Opis: Determines, czy użytkownik może ręcznie dołączyć do kanału używając komendy /join. Użytkownik może nadal być dodany do kanału używając innych metod, nawet jeśli ta właściwość jest fałszywa.

Wyjściowe

  • Typ: bułka
  • Opis: Określa, czy użytkownik może ręcznie opuścić kanał używając komendy /leave. Użytkownik nadal może być usunięty z kanału używając innych metod, nawet jeśli ta właściwość jest fałszywa.

Automatyczne dołączanie

  • Typ: bułka
  • Opis: Determines, czy Głośnik czatu gracza będzie automatycznie dołączony do kanału po dołączeniu do gry. Głośniki nieużytkowników nie będą automatycznie dołączać do kanałów, nawet gdy ta właściwość jest prawdziwa (możesz użyć Głośnik:DołączKanał() , aby to zrobić).

Prywatny

  • Typ: bułka
  • Opis: Determines, czy kanał będzie znajdować się na liście kanałów zwróconych przez ChatService:GetChannelList() . To dla czatów wątkowych i czatów zespołowych.

Metody

Głośnik

  • Parametry: string : speakerName , 0> Library.ciąg0> : 3> reason = nil 3>
  • Opis: Usuwa głośnik z kanału, wysyłając wiadomość do użytkownika i kanału, z którego został wyrzucony. Jeśli zostanie dostarczony speakerName, powod powinien być włączony w wiadomości.
  • Wynik: void

Głośnik

  • Parametry: string : speakerName , 0> Library.ciąg0> : 3> reason = nil3> , 6> int6> 9> duration = 0 9>
  • Opis: Wyłącza głośnik z kanału przez określony czas speakerName w duration długości. Jeśli 0> duration0> jest niewielki lub 0, to wyłączenie jest nieokreślone. Jeśli 3> reason 3> zostanie dostarczony, wysyłka zostanie wysłana na kanał z powodem z
  • Wynik: void

Odgłośnienie

  • Parametry: string : speakerName
  • Opis: Odblokowuje głośnik z podanym speakerName w kanał.
  • Wynik: void

Zmutowany Głośnik

  • Parametry: string : speakerName
  • Opis: Opisuje czy głośnik z tym podanym speakerName jest obecnie w strefie kanał.
  • Wyniki: bułka

Zdobądź listę głośników

  • Parametry: Żaden
  • Opis: W返uje listę zawierającą wszystkie imiona ChatSpeaker obecnie w kanałach.
  • Wyniki: lista< string >

WyślijSystemMessage

  • Parametry: string : message
  • Opis: Wysyłuje wiadomość z "System" ChatSpeaker na kanał.
  • Wynik: void

Zarejestruj funkcję MessageFilter

  • Parametry: string : functionId , 0> funkcja0> 3> func 3>
  • Opis: Rejestruje funkcję filtra, func , zidentyfikowany przez functionId do kanału. Funkcja filtra będzie wywołana z Library.string : imię kanału, z którego pochodzi wiadomość, i Library.string : imię wiadomości, które będzie wyświetlane
  • Wynik: void
  • przykład:

-- Wklej ten przykład do MenuScript w katalogu ChatModule.
local functionId = "getPizza"
local command = "/pizza"
local toolId = 22596452 -- Nóż do pizzy pepperoni
local function processCommand(speakerName, message, channelName)
if string.sub(message, 1, command:len()) == command then
local model = game:GetService("InsertService"):LoadAsset(toolId)
local tool = model:GetChildren()[1]
local speaker = ChatService:GetSpeaker(speakerName)
local player = speaker:GetPlayer()
tool.Parent = player.Backpack
return true
end
return false
end
local function runChatModule(ChatService)
ChatService:RegisterProcessCommandsFunction(functionId, processCommand)
end
return runChatModule

Nie rejestrujFilterMessageFunction

  • Parametry: string : functionId
  • Opis: Nie rejestruje funkcji filtra (zarejestrowanej przez RegisterFilterMessageFunction) z jego identyfikatorem, functionId .
  • Wynik: void

Rejestracja procesu komendy

  • Parametry: string : functionId , 0> funkcja0> 3> func 3>
  • Opis: Rejestruje funkcję komendy procesu, func , zidentyfikowaną przez functionId do czatu. Przed wysłaniem wiadomości zostanie przeprowadzona przez nią 0> func
  • Wynik: void
  • przykład:

-- Wklej ten przykład do MenuScript w katalogu ChatModule.
-- Ten przykład sfiltrowuje kluczowe słowo, a jeśli jest to powodem sukcesu, ustawia kolor czatu wiadomość
local functionId = "greenText"
local keyword = "#green"
local chatColor = Color3.new(0, 1, 0) -- zielony
local function doFilter(speaker, messageObject, channelName)
-- Sprawdź, czy wiadomość zawiera słowo kluczowe
local start, finish = string.find(messageObject.Message, keyword)
if start and finish then
-- Usuń (filtr) słowo kluczowe z wiadomość, ustawiając również kolor czatu
messageObject.Message = string.gsub(messageObject.Message, keyword, "")
messageObject.ExtraData.ChatColor = chatColor
end
end
local function runChatModule(ChatService)
-- Utwórz kanał i zarejestruj funkcję filtra
local testChannel = ChatService:AddChannel("TestChannel")
testChannel:RegisterFilterMessageFunction(functionId, doFilter)
end
return runChatModule

Niezarejestrowanie funkcji komendy

  • Parametry: string : functionId
  • Opis: Od rejestratora procesora komend (zarejestrowanego przez RegisterProcessCommandsFunction) otrzymuje identyfikator, functionId .
  • Wynik: void

Wydarzenia

Wiadomość opublikowana

  • Parametry: CzatMessage : message
  • Opis: Pojawia się po wysłaniu wiadomości na kanał.

Dołączony głośnik

  • Parametry: string : speakerName
  • Opis: Ognia się, gdy ChatSpeaker dołącza do kanału.

Głośnik LEFT

  • Parametry: string : speakerName
  • Opis: Ognisty kanał, gdy ChatSpeaker opuści kanał.

GłośnikZmutowany

  • Parametry: string : speakerName , 0> Library.ciąg0> : 3> reason3> , 6> int6> 9> duration = 0 9>
  • Opis: Ognisty kiedy ChatSpeaker zostanie zmutowany w kanał.

GłośnikNieZmutowany

  • Parametry: string : speakerName
  • Opis: Wystrzela, gdy ChatSpeaker nie zostanie zmutowany.