Moduli di chat lato server

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

Puoi utilizzare i seguenti moduli di chat per supportare i comportamenti lato server del sistema di chat Legacy inclusi:

  • ChatService : Un singleton che gestisce tutti gli altri moduli di chat.
  • ChatSpeaker : Un'entità che può creare messaggi in un ChatChannel; ciascuno Player avrà automaticamente un ChatSpeaker e i bot potranno chattare creando ChatSpeaker.
  • ChatMessage : Un container per il contenuto che un Oratore di Chat invia a un ChatChannel; contiene metadati utilizzati per formattare il messaggio o aggiungere funzionalità extra ai comandi.
  • ChatChannel : Un canale attraverso cui i relatori di chat possono scambiare il messaggio di chat; utilizzato anche per la chat di squadra e la chat sussurrata.

Servizio chat

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

Tutti ModuleScript s all'interno della cartella Moduli di chat dovrebbero restituire una funzione e quella funzione verrà chiamata con il singolo ChatService.

Metodi

AggiungiChannel

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

RimuoviChannel

  • Parametri: string : channelName
  • Descrizione: Rimuovi un canale con il nome indicato
  • Restituzioni: void

OttieniChannel

  • Parametri: string : channelName
  • Descrizione: Restituisce il canale con il nome indicato, o nil se non esiste.
  • Restituzioni: ChatChannel

AggiungiSpeaker

  • Parametri: string : speakerName
  • Descrizione: Creare e aggiungere un oratore alla chat con il nome indicato, quindi restituirlo.
  • Restituzioni: Speaker di chat

RimuoviSpeaker

  • Parametri: string : speakerName
  • Descrizione: Rimuove l'oratore dalla chat con il nome indicato.
  • Restituzioni: void

Ottieni Speaker

  • Parametri: string : speakerName
  • Descrizione: Restituisce l'oratore con il nome indicato, o nil se non esiste.
  • Restituzioni: Speaker di chat

OttieniChannelList

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

Ottieni la lista di canali di join automatico

  • Parametri: nulla
  • Descrizione: Restituisce una lista dei nomi di tutti i canali nella chat con AutoJoin impostato su vero.
  • Restituzioni: array< string >

Funzione di registro del messaggio FilterMessage

  • Parametri: string : functionId , funzione : func
  • Descrizione: Registra una funzione filtro alla chat identificata da functionId .Qualsiasi modifica al messaggio persisterà e verrà visualizzata quando il messaggio passa attraverso tutte le altre funzioni di filtro.Questa funzione viene passata il nome dell'oratore, l'oggetto del messaggio e il canale in cui il messaggio è originato.
  • Restituzioni: void
  • Esempio:

-- Incolla questo esempio in un ModuleScript all'interno della 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)
-- Verifica 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 dal 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

Funzione di messaggio di filtro non registrata

  • Parametri: string : functionId
  • Descrizione: Unregistra una funzione filtro (registrata da RegisterFilterMessageFunction) dato il suo identificatore, functionId .
  • Restituzioni: void

Funzione dei comandi di registrazioneProcesso

  • Parametri: string : functionId , funzione : func
  • Descrizione: Registra una funzione di comando di processo alla chat identificata da functionId .Prima che un messaggio venga filtrato, passerà attraverso func (e altre funzioni registrate da questo).La funzione func dovrebbe controllare se il messaggio invochi un comando.Se è così, esegui l'azione del comando e restituisci vero.Il ritorno del vero indica che il messaggio era effettivamente un comando e non dovrebbe essere visualizzato.La funzione può essere dis registrata utilizzando UnregisterProcessCommandsFunction.
  • Restituzioni: void
  • Esempio:

-- Incolla questo esempio in un ModuleScript all'interno della 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

Funzione UnregisterProcessCommands

  • Parametri: string : functionId
  • Descrizione: Unregistra un processore di comandi (registrato da RegisterProcessCommandsFunction ) dato l'identificatore, functionId .
  • Restituzioni: void

Eventi

Channelaggiunto

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

CanaleRimosso

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

Altoparlante aggiunto

  • Parametri: string : speakerName
  • Descrizione: Brucia quando viene aggiunto un oratore alla chat.

AltoparlanteRimosso

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

Speaker di chat

Un Speaker di chat è la rappresentazione di una entità che può parlare in un ChatChannel .Ogni Player connesso al gioco viene automaticamente dotato di un ChatSpeaker associato.Altri Speaker di chat possono essere costruiti per non-utenti (come annunciatori o messaggi suggerimento) utilizzando ChatService:AddSpeaker() .

Proprietà

Nome

  • Tipo: string : Name
  • Descrizione: Il nome dell'oratore, utilizzato per fare riferimento a questo oratore durante l'esecuzione di molte altre funzioni.

Metodi

Unisciti al channel

  • Parametri: string : channelName
  • Descrizione: Aggiunge l'oratore al canale con il dato channelName
  • Restituzioni: void

LasciaChannel

  • Parametri: string : channelName
  • Descrizione: Rimuove l'oratore dal canale con il dato channelName
  • Restituzioni: void

OttieniChannelList

  • Parametri: Nessuno
  • Descrizione: Restituisce un elenco dei nomi di tutti i canali in cui è il relatore.
  • Restituzioni: array< string >

È nel canale

  • Parametri: string : channelName
  • Descrizione: Restituisce se l'oratore è nel canale con il dato channelName .
  • Restituzioni: bool

DìMessaggio

Invia messaggio

  • Parametri: : , : , : , :
  • Descrizione: Invia un messaggio al Speaker di chat con il nome fromSpeaker.Se non c'è un tale oratore nel canale, questo metodo crea un avviso e l'oratore non vedrà il Messaggio.
  • Restituzioni: void

Invia messaggio sistema

  • Parametri: string : message , string : channelName
  • Descrizione: Invia un messaggio di sistema al ChatChannel con il channelName dato .Se l'oratore non è nel canale, questo messaggio creerà un avviso e gli altri oratori nel canale non vedranno il Messaggio.
  • Restituzioni: void

OttieniPlayer

  • Parametri: Nessuno
  • Descrizione: Restituisce l'oggetto Player associato all'oratore.Se l'oratore non è per un utente (un bot) allora questo restituisce nil .
  • Restituzioni: Player o nil

ImpostaExtraData

  • Parametri: string : key , Variante data
  • Descrizione: Imposta alcuni dati extra per il relatore sotto un particolare key .Ogni volta che l'oratore invia un Messaggio di chat questo dato extra viene allegato al messaggio se nessuno viene fornito esplicitamente con il messaggio.Ad esempio, questo consente di Impostareil colore della chat dell'oratore.
  • Restituzioni: void

Ottieni dati extra

  • Parametri: string : key
  • Descrizione: Restituisce i dati extra associati al dato dato , impostati usando SetExtraData.
  • Restituzioni: Variante

SetMainChannel

  • Parametri: string : channelName
  • Descrizione: Imposta l'oratore a parlare nel canale fornito. Avvia MainChannelSet.
  • Restituzioni: nil

Eventi

Messaggio detto

Messaggio ricevuto

Messaggio di sistema ricevuto

Canale aderito

  • Parametri: string : channelName , string : channelWelcomeMessage
  • Descrizione: Viene licenziato quando l'oratore si unisce al ChatChannel con il dato channelName.

CanaleLeft

  • Parametri: string : channelName
  • Descrizione: Sparato quando l'oratore lascia un ChatChannel con il dato channelName .

Silenziato

  • Parametri: string : channelName , string : reason = nil , int : duration = 0
  • Descrizione: Viene licenziato quando l'oratore è disattivato sul ChatChannel con il dato channelName per la durata indicata (se fornito).Potrebbe o non potrebbe esserci un reason fornito.

Disattivato

  • Parametri: string : channelName
  • Descrizione: Sparato quando l'oratore è disattivato sul ChatChannel con il dato channelName .

Dati aggiornati extra

  • Parametri: string : key , Variante data
  • Descrizione: Viene licenziato quando il valore predefinito di una chiave nei dati extra dell'oratore viene aggiornato utilizzando SetExtraData.

Set principale del canale

  • Parametri: string : channelName
  • Descrizione: Viene licenziato quando il canale principale degli speaker viene cambiato in ChatChannel con il channelName dato.

Messaggio di chat

Un messaggio di chat è una struttura di dati che rappresenta un messaggio inviato da un oratore di chat .Contiene dati sul Messaggio, inclusa la lunghezza del testo, se il testo è stato filtrato da Roblox e dati supplementari sull'aspetto del Messaggio.

Proprietà

ID

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

Da Speaker

Canale originale

  • Tipo: string :
  • Descrizione: Il nome del ChatChannel da cui è originato il messaggio.

È filtrato

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

Length del messaggio

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

Messaggio

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

Tipo di messaggio

  • Tipo: string :
  • Descrizione: Il tipo del Messaggio. Questi tipi sono descritti nel modulo Chatasets:
  • Valori possibili: "Message" , "System" , "MeCommand" , "Welcome" , "SetCore" , "Whisper"

Tempo

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

Dati extra

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

Channel di chat

ChatChannel è un oggetto che memorizza dati su un singolo canale, che è un mezzo con cui possono essere scambiati messaggi tra ChatSpeakers.Ha anche proprietà di autorizzazione di accesso che determinano la visibilità dei messaggi insieme alla possibilità per gli utenti di unirsi o lasciare il canale manualmente (utilizzando /join o /leave comandi).

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

Proprietà

Nome

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

WelcomeMessage

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

Joinabile

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

Lasciabile

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

Unione automatica

  • Tipo: bool
  • Descrizione: Determina se il Speaker di chat di un Giocatoresi unirà automaticamente al canale al momento dell'adesione al Gioco.Gli oratori non utenti non si uniranno automaticamente ai canali, anche quando questa proprietà è vera (puoi usare ChatSpeaker:JoinChannel() per farlo).

Privato

  • Tipo: bool
  • Descrizione: Determina se il canale sarà incluso nell'elenco dei canali restituiti da ChatService:GetChannelList() .Questo per le chat a sussurro e le chat di squadra.

Metodi

Speaker di calcio

  • Parametri: string : speakerName , string : reason = nil
  • Descrizione: Rimuove l'oratore con il dato speakerName dal canale, inviando un messaggio sia all'utente che al canale da cui l'utente è stato espulso.Se viene fornito un reason, il motivo verrà incluso nel Messaggio.
  • Restituzioni: void

MutoSpeaker

  • Parametri: string : speakerName , string : reason = nil , intduration = 0
  • Descrizione: Muta il relatore con il dato speakerName nel canale per una durata specificata in secondi.Se duration è nil o 0, il muto è indeterminato.Se reason viene fornito, verrà inviato un messaggio al canale con il motivo incluso.
  • Restituzioni: void

Speaker disattivato

  • Parametri: string : speakerName
  • Descrizione: Unmutes il relatore con il dato speakerName nel canale.
  • Restituzioni: void

IsSpeakerMutato

  • Parametri: string : speakerName
  • Descrizione: Descrive se l'oratore con il dato speakerName è attualmente muto nel canale.
  • Restituzioni: bool

OttieniSpeakerList

  • Parametri: Nessuno
  • Descrizione: Restituisce una lista che contiene tutti se i nomi del Speaker di chat attualmente nel canale.
  • Restituzioni: array< string >

Invia messaggio sistema

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

Funzione di registro del messaggio FilterMessage

  • Parametri: string : functionId , funzionefunc
  • Descrizione: Registra una funzione filtro, func , identificata da functionId al canale.La funzione filtro verrà chiamata con il ChatSpeaker, il ChatMessage e il string : nome del canale in cui è originato il messaggio.Le modifiche al messaggio persisteranno e verranno visualizzate dopo il filtraggio.
  • Restituzioni: void
  • Esempio:

-- Incolla questo esempio in un ModuleScript all'interno della 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

Funzione di messaggio di filtro non registrata

  • Parametri: string : functionId
  • Descrizione: Unregistra una funzione filtro (registrata da RegisterFilterMessageFunction) dato il suo identificatore, functionId .
  • Restituzioni: void

Funzione dei comandi di registrazioneProcesso

  • Parametri: string : functionId , funzionefunc
  • Descrizione: Registra una funzione di comando di processo, func , identificata da functionId alla chat.Prima che un messaggio venga filtrato, passerà attraverso func (e altre funzioni registrate da questo).La funzione func dovrebbe controllare se il messaggio invochi un comando.Se è così, esegui l'azione del comando e restituisci vero.Il ritorno del vero indica che il messaggio era effettivamente un comando e non dovrebbe essere visualizzato.La funzione può essere dis registrata utilizzando UnregisterProcessCommandsFunction.
  • Restituzioni: void
  • Esempio:

-- Incolla questo esempio in un ModuleScript all'interno della 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)
-- Verifica 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 dal 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 filtro
local testChannel = ChatService:AddChannel("TestChannel")
testChannel:RegisterFilterMessageFunction(functionId, doFilter)
end
return runChatModule

Funzione UnregisterProcessCommands

  • Parametri: string : functionId
  • Descrizione: Unregistra un processore di comandi (registrato da RegisterProcessCommandsFunction) dato l'identificatore, functionId .
  • Restituzioni: void

Eventi

Messaggio pubblicato

  • Parametri: Messaggio di chat : message
  • Descrizione: Brucia quando un messaggio viene pubblicato nel canale.

AltoparlanteUnito

AltoparlanteLeft

Altoparlante spento

Oratore disattivato