Moduli di chat lato server

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

Puoi usare i seguenti moduli di chat per supportare i comportamenti lato server del Legacy Chat System tra cui:

  • ChatService : Un singleton che gestisce tutti gli altri moduli di chat.
  • ChatSpeaker : Entità che può creare messaggi in un ChatChannel; ogni Player avrà automaticamente un ChatSpeaker e gli bot possono chattare creando ChatSpeaker.
  • ChatMessage : Container per il contenuto che un ChatSpeaker invia in un ChatChannel; contiene i metadati utilizzati per formattare il messaggio o aggiungere funzionalità extra ai comandi.
  • ChatChannel : Un canale attraverso cui i Speaker di chat possono scambiare ChatMessage; anche usato per la chat di team e chat di WhatsApp.

ChatService

ChatService è un oggetto singolo che gestisce il comportamento lato server del sistema di chat Lua, come ChatChannels e ChatSpeakers .

Tutti ModuleScript s dentro la cartella ChatModuleScript dovrebbero restituire una funzione, e quella funzione verrà chiamata con il singolo chat.

Metodi

Aggiungi canale

  • Parametri: string : channelName
  • Descrizione: Crea un oggetto ChatChannel con il nome specificato e lo restituisce.
  • Ritorna: ChatChannel

Rimuovi canale

  • Parametri: string : channelName
  • Descrizione: Rimuovi un canale con il nome specificato
  • Ritorna: void

Ottieni canale

  • Parametri: string : channelName
  • Descrizione: Ritorna il canale con il nome specificato, o null se non esiste.
  • Ritorna: ChatChannel

Aggiungi Altoparlante

  • Parametri: string : speakerName
  • Descrizione: Crea e aggiungi un speaker alla chat con il nome specificato, poi lo restituisce.
  • Ritorna: ChatSpeaker

RimuoviSpeaker

  • Parametri: string : speakerName
  • Descrizione: Rimuove il speaker dalla chat con il nome specificato.
  • Ritorna: void

OttieniSpeaker

  • Parametri: string : speakerName
  • Descrizione: Ritorna lo speaker con il nome specificato, o nulla se non esiste.
  • Ritorna: ChatSpeaker

Ottieni Channel List

  • Parametri: nessuno
  • Descrizione: Ritorna un elenco dei nomi di tutti i canali non privati nella chat.
  • Ritorna: array< string >

OttieniAutoJoinChannelList

  • Parametri: nessuno
  • Descrizione: Ritorna un elenco dei nomi di tutti i canali nella chat con AutoJoin impostato su true.
  • Ritorna: array< string >

Registra il messaggio di filtro

  • Parametri: string : functionId , 0> funzione0> : 3> func 3>
  • Descrizione: Registra una funzione di filtro alla chat identificata da functionId . Tutte le modifiche al messaggio persistono e vengono visualizzate quando il messaggio passa attraverso tutte le altre funzioni di filtro. Questa funzione è passata il nome del parlante, l'oggetto del messaggio e il canale in cui il messaggio è originato.
  • Ritorna: void
  • Esempio:

-- Incolla questo esempio in unModuleScript nella cartella ChatModule.
-- Questo esempio filtra una parola chiave e, se riuscito, imposta il colore di chat del Messaggio
local functionId = "greenText"
local keyword = "#green"
local chatColor = Color3.new(0, 1, 0) -- verde
local function doFilter(speaker, messageObject, channelName)
-- Controlla se il messaggio contiene la parola chiave
local start, finish = string.find(messageObject.Message, keyword)
if start and finish then
-- Rimuovi (Filtro) la parola chiave dalla Messaggio, impostando anche il ChatColor
messageObject.Message = string.gsub(messageObject.Message, keyword, "")
messageObject.ExtraData.ChatColor = chatColor
end
end
local function runChatModule(ChatService)
ChatService:RegisterFilterMessageFunction(functionId, doFilter)
end
return runChatModule

UnregisterFilterMessageFunction

  • Parametri: string : functionId
  • Descrizione: UnRegisters una funzione di filtro (registrata da RegisterFilterMessage) con il suo identificatore, functionId .
  • Ritorna: void

Funzione di registrazione dei processi

  • Parametri: string : functionId , 0> funzione0> : 3> func 3>
  • Descrizione: Registra una funzione di comando del processo alla chat identificata da functionId . Prima che un messaggio sia filtrato, passa attraverso func (e altre funzioni registrate da questo). La funzione 0> func0> dovrebbe controllare se il messaggio inv
  • Ritorna: void
  • Esempio:

-- Incolla questo esempio in unModuleScript nella cartella ChatModule.
local functionId = "getPizza"
local command = "/pizza"
local toolId = 22596452 -- Attrezzatura per fette di pizza al peperone
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

UnregisterProcessCommandsFunction

Eventi

Canale aggiunto

  • Parametri: string : channelName
  • Descrizione:: Fuochi quando viene aggiunto un canale alla chat.

Canale rimosso

  • Parametri: string : channelName
  • Descrizione:: Fuochi quando un canale viene rimosso dalla chat.

Altoparlanti aggiunti

  • Parametri: string : speakerName
  • Descrizione:: Fira quando viene aggiunto un speaker alla chat.

Speaker rimosso

  • Parametri: string : speakerName
  • Descrizione:: Spegne quando un oratore viene rimosso dalla chat.

Speaker di chat

Un Speaker di chat è la rappresentazione di un'entità che può parlare in un ChatChannel . Ogni Player 2> connesso al gioco ha automaticamente un 5>Speaker di chat5> associato. Gli Speaker aggiuntivi possono essere costruiti per non-utilizzatori (come annunciatori o messaggi di suggerimento) usando 8>ChatService:AddSpeaker()8>.

Proprietà

Nome

  • Tipo: string : Name
  • Descrizione: Il nome del relatore, usato per fare riferimento a questo relatore mentre si chiama molte altre funzioni.

Metodi

Entra nel canale

  • Parametri: string : channelName
  • Descrizione: Aggiunge il speaker al canale con il channelName dato
  • Ritorna: void

Lascia il canale

  • Parametri: string : channelName
  • Descrizione: Rimuove il speaker dal canale con il channelName fornito
  • Ritorna: void

Ottieni Channel List

  • Parametri: Nessuno
  • Descrizione: Ritorna un elenco dei nomi di tutti i canali in cui si trova lo speaker.
  • Ritorna: array< string >

IsInChannel

  • Parametri: string : channelName
  • Descrizione: Ritorna se il relatore è nel canale con il channelName .
  • Ritorna: boolo

Dici il messaggio

  • Parametri: string : message , 0> Library.Stringa0> : 3> chanネルName3> , dizionario< 6> Library.Stringa6> , variante> 9> extraData 9>
  • Descrizione: Causa il parlante di dire message e restituire l'oggetto ChatMessage creato facendo così.
  • Ritorna: ChatMessage

Invia messaggio

  • Parametri: string : message , 0> Library.Stringa0> : 3> canale3> , 6> Library.Stringa6> : 9> fromSpeaker 9>
  • Descrizione: Invia un messaggio al ChatSpeaker con il nome fromSpeaker dato. Se nessun tale speaker è nel canale, questo metodo crea un avviso e il leader non vedrà il Messaggio.
  • Ritorna: void

Invia messaggio di sistema

  • Parametri: string : message , 0> Library.Stringa0> : 3> channelName 3>
  • Descrizione: Invia un messaggio del sistema al ChatChannel con il dato channelName . Se lo speaker non è nel canale, allora questo messaggio creerà un avviso e altri speaker nel canale non vedranno il Messaggio.
  • Ritorna: void

OttieniPlayer

  • Parametri: Nessuno
  • Descrizione: Ritorna l'oggetto Player associato con lo speaker. Se lo speaker non è per un utente (un bot) allora questo restituisce nil .
  • Ritorna: Player o nil

Imposta dati extra

  • Parametri: string : key , variante 0> data0>
  • Descrizione: Imposta alcuni dati extra per il parlante sotto un determinato key . Ogni volta che il parlante invia un ChatMessage , questo dato extra viene allegato al messaggio se nessuno è esplicitamente fornito con il Messaggio. Ad esempio, questo consente al colore della chat del parlante di essere Impostare.
  • Ritorna: void

Ottieni dati extra

  • Parametri: string : key
  • Descrizione: Ritorna i dati extra associati all'key , impostati usando SetExtraData.
  • Ritorna: Variante

Imposta canale principale

  • Parametri: string : channelName
  • Descrizione:: Imposta ilSpeaker per parlare nel canale fornito. Fires MainChannelSet.
  • Ritorna: nil

Eventi

Messaggio detto

Messaggio ricevuto

  • Parametri: ChatMessagemessage , 0> Library.Stringa0> : 3> channelName 3>
  • Descrizione: Viene attivato quando il parlante riceve un ChatMessage da un altro parlante su un ChatChannel

RicevutoSystemMessage

  • Parametri: ChatMessagemessage , 0> Library.Stringa0> : 3> channelName 3>
  • Descrizione: Fired when the speaker riceve a system ChatMessage da un ChatChannel con the given 0> channelName0> .

CanaleJoined

  • Parametri: string : channelName , 0> Library.Stringa0> : 3> channelWelcomeMessage 3>
  • Descrizione: Viene attivato quando lo speaker si unisce al ChatChannel con il channelName specificato.

Canale di sinistra

  • Parametri: string : channelName
  • Descrizione: Fired when the speaker leaves a ChatChannel with the given channelName .

Muto

  • Parametri: string : channelName , 0> Library.Stringa0> : 3> reason = null3> , 6> int6> : 9> duration 9> = 0
  • Descrizione: Fired when the speaker is muted on the ChatChannel with the given channelName for the given duration (if provided). There may or may not be a 0> reason0> provided.

Non disattivato

  • Parametri: string : channelName
  • Descrizione: Fired when the speaker is unmuted on the ChatChannel with the given channelName .

Aggiornamento dati extra

  • Parametri: string : key , variante 0> data0>
  • Descrizione: Aggiornato quando il valore predefinito di una chiave negli extra dati del lettore viene aggiornato utilizzando SetExtraData.

MainChannelSet

  • Parametri: string : channelName
  • Descrizione: Fired when the speakers main channel is changed to the ChatChannel with the given channelName .

Messaggio di chat

Un ChatMessage è una struttura dei dati che rappresenta un messaggio inviato da un ChatSpeaker. Contiene dati sul Messaggio, tra cui la lunghezza del testo, se il testo è stato filtrato da Roblox e dati extra sulla aspettodel Messaggio.

Proprietà

ID

  • Tipo: int
  • Descrizione: Un identificatore numerico unico per il Messaggio.

Dall'alto

Canale originale

È filtrato

  • Tipo: boolo
  • Descrizione: Descrive se il messaggio è filtrato da Roblox (se vero, il messaggio sarà nil )

Lunghezza del messaggio

  • Tipo: int
  • Descrizione: La lunghezza del Messaggio. Puoi usarlo per generare una stringa hashed-out se il messaggio è stato filtrato.

Messaggio

  • Tipo: string : o nil
  • Descrizione: Il testo del Messaggio. Questa proprietà sarà nil se è vero IsFiltered.

Tipo di messaggio

  • Tipo: string :
  • Descrizione: Il tipo del Messaggio. Questi tipi sono descritti nel modulo ChatConstraints:
  • Possibili valori: "Message" , "System" , 0> "MeCommand"0> , 3> "Welcome"3> , 6> "SetCore"6> , 9> "Whisper" 9>

Tempo

  • Tipo: int
  • Descrizione: Un timestamp; il valore di os.time() alla Creazionidel Messaggio.

Extra dati

  • Tipo: dizionario< string , Variante>
  • Descrizione: Un dizionario di metadati per questo Messaggio. Questo viene utilizzato per modificare l'aspetto del Messaggio. I seguenti key possono essere presenti:

Canale di chat

ChatChannel è un oggetto che memorizza i dati su un singolo canale, che è un mezzo per cui i messaggi possono essere scambiati tra ChatSpeakers . Ha anche proprietà di accesso che determinano la visibilità dei messaggi insieme all'evento che gli utenti possono unirsi o lasciare il canale manualmente (utilizzando /join o 0> /leave0> comandi).

Per impostazione predefinita, ogni utente ha un Speaker di chat che viene automaticamente aggiunto ai canali di chat "Tutti" e "Sistema" (anche se, "Sistema" è letto solo). Se l'utente è su un Player.Team, avrà anche accesso a un canale per solo quell'Team.

Proprietà

Nome

  • Tipo: string
  • Descrizione: Il nome del canale, usato per fare riferimento al canale in altre funzioni.

Messaggio di benvenuto

  • Tipo: string
  • Descrizione:: Un messaggio da visualizzare quando un utente si unisce al canale.

Accessibile

  • Tipo: boolo
  • Descrizione: Determina se un utente può unirsi manualmente a un canale utilizzando il comando /join . Un utente può essere ancora aggiunto a un canale utilizzando il comando ChatSpeaker:JoinChannel() o altri metodi anche se questa proprietà è falsa.

Lascia

  • Tipo: boolo
  • Descrizione: Determina se un utente può lasciare manualmente un canale utilizzando il comando /leave. Un utente può essere ancora rimosso da un canale utilizzando ChatSpeaker:LeaveChannel() o altri metodi anche se questa proprietà è falsa.

Partecipazione automatica

  • Tipo: boolo
  • Descrizione: Determina se il ChatSpeaker di un Giocatoresi unirà automaticamente al canale quando si unisce al Gioco. I non-utenti non si uniranno automaticamente ai canali, anche quando questa proprietà è vera (puoi usare ChatSpeaker:JoinChannel() per farlo).

Privato

  • Tipo: boolo
  • Descrizione: Determina se il canale sarà incluso nella lista dei canali restituiti da ChatService:GetChannelList() . Questo per i chat di sottovento e team chat.

Metodi

Speaker di Kick

  • Parametri: string : speakerName , 0> Library.Stringa0> : 3> reason = null 3>
  • Descrizione: Rimuove il speaker con il speakerName dal canale, inviando un messaggio sia all'utente che al canale da cui l'utente è stato cacciato. Se viene fornito un reason , il motivo sarà incluso nel Messaggio.
  • Ritorna: void

MutoSpeaker

  • Parametri: string : speakerName , 0> Library.Stringa0> : 3> reason = null3> , 6> int6> 9> duration = 0 9>
  • Descrizione: Disattiva lo speaker con il speakerName specificato nella canzone per una durata specificata in secondi. Se duration è nullo o 0, il mute è indefinito. Se 0> reason0> è fornito, viene inviato un messaggio al canale con il motivo incluso.
  • Ritorna: void

Disattiva lo Speaker

  • Parametri: string : speakerName
  • Descrizione: Disattiva il giocatore con il speakerName inserito nel canale.
  • Ritorna: void

IsSpeakerMuto

  • Parametri: string : speakerName
  • Descrizione: Descrive se il speakerName con l'attribuzione attuale è attualmente disattivato nel canale.
  • Ritorna: boolo

Ottieni la lista dei relatori

  • Parametri: Nessuno
  • Descrizione: Ritorna un elenco contenente tutti i nomi del ChatSpeaker attualmente nel canale.
  • Ritorna: array< string >

Invia messaggio di sistema

  • Parametri: string : message
  • Descrizione: Invia un messaggio dal "Sistema" ChatSpeaker al canale.
  • Ritorna: void

Registra il messaggio di filtro

  • Parametri: string : functionId , 0> funzione0> 3> func 3>
  • Descrizione: Registra una funzione di filtro, func , identificata da functionId al canale. La funzione di filtro verrà chiamata con il 0> ChatSpeaker 0> , il 3> ChatMessage3> e il 6>Library.Stringa 6> : nome del canale in cui il mess
  • Ritorna: void
  • Esempio:

-- Incolla questo esempio in unModuleScript nella cartella ChatModule.
local functionId = "getPizza"
local command = "/pizza"
local toolId = 22596452 -- Attrezzatura per fette di pizza al peperone
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

UnregisterFilterMessageFunction

  • Parametri: string : functionId
  • Descrizione: UnRegisters una funzione di filtro (registrata da RegisterFilterMessage) con il suo identificatore, functionId .
  • Ritorna: void

Funzione di registrazione dei processi

  • Parametri: string : functionId , 0> funzione0> 3> func 3>
  • Descrizione: Registra una funzione di comando del processo, func , identificata da functionId nella chat. Prima che un messaggio venga filtrato, passa attraverso functionId (e altre funzioni registrate da questo) prima che il mess
  • Ritorna: void
  • Esempio:

-- Incolla questo esempio in unModuleScript nella cartella ChatModule.
-- Questo esempio filtra una parola chiave e, se riuscito, imposta il colore di chat del Messaggio
local functionId = "greenText"
local keyword = "#green"
local chatColor = Color3.new(0, 1, 0) -- verde
local function doFilter(speaker, messageObject, channelName)
-- Controlla se il messaggio contiene la parola chiave
local start, finish = string.find(messageObject.Message, keyword)
if start and finish then
-- Rimuovi (Filtro) la parola chiave dalla Messaggio, impostando anche il ChatColor
messageObject.Message = string.gsub(messageObject.Message, keyword, "")
messageObject.ExtraData.ChatColor = chatColor
end
end
local function runChatModule(ChatService)
-- Crea un canale e registra la funzione di filtro
local testChannel = ChatService:AddChannel("TestChannel")
testChannel:RegisterFilterMessageFunction(functionId, doFilter)
end
return runChatModule

UnregisterProcessCommandsFunction

  • Parametri: string : functionId
  • Descrizione: UnRegisters un elaboratore di comandi (registrato da RegisterProcessCommandsFunction) in base all'identificatore, functionId .
  • Ritorna: void

Eventi

MessaggioPubblicato

  • Parametri: ChatMessage : message
  • Descrizione:: Fuochi quando un messaggio viene pubblicato nel canale.

SpeakerJoint

  • Parametri: string : speakerName
  • Descrizione: Fuori quando un ChatSpeaker si unisce al canale.

SпиelfareSinistra

  • Parametri: string : speakerName
  • Descrizione: Fuori dal canale quando un Speaker di chat lascia il canale.

Speaker disattivato

  • Parametri: string : speakerName , 0> Library.Stringa0> : 3> reason3> , 6>int6> 9> duration = 0 9>
  • Descrizione:: Fare fuoco quando un ChatSpeaker è stato disattivato nel canale.

Altoparlanti disattivati