Módulos de Chat do Lado do Servidor

*Este conteúdo é traduzido por IA (Beta) e pode conter erros. Para ver a página em inglês, clique aqui.

Você pode usar os seguintes módulos de chat para apoiar comportamentos do lado do servidor do Legacy Chat System, incluindo:

  • ChatService : Um singleton que gerencia todos os outros módulos de chat.
  • ChatSpeaker : Entidade que pode criar mensagens em um ChatChannel; cada Player terá automaticamente um ChatSpeaker e bots podem conversar criando ChatSpeakers.
  • ChatMessage : Um contêiner para conteúdo que um ChatSpeaker envia para um ChatChannel; contém metadados usados para formatar a mensagem ou adicionar funcionalidades extras aos comandos.
  • ChatChannel : Um canal por meio do qual os Speakers de Chat podem trocar mensagens de chat; também usado para o chat de equipe e o chat de suspiro.

Serviço de Chat

ChatService é um objeto de singleton que lida com o comportamento do lado do servidor do sistema de chat Lua, como ChatChannels e ChatSpeakers.

Todos ModuleScript s dentro da pasta ChatModuleScript devem retornar uma função, e essa função será chamada com o singleton ChatService.

Métodos

Adicionar canal

  • Parâmetros: string : channelName
  • Descrição: Cria um objeto ChatChannel com o nome dado e retorna-o.
  • Retornos: ChatChannel

Remover Canal

  • Parâmetros: string : channelName
  • Descrição: Remova um canal com o nome dado
  • Retornos: void

Obter canal

  • Parâmetros: string : channelName
  • Descrição: Retorna o canal com o nome dado, ou nil se não existir.
  • Retornos: ChatChannel

Adicionar Orador

  • Parâmetros: string : speakerName
  • Descrição: Crie e adicione um orador ao chat com o nome dado, então retornará.
  • Retornos: ChatSpeaker

Remover o Speaker

  • Parâmetros: string : speakerName
  • Descrição: Remova o orador do chat com o nome dado.
  • Retornos: void

Obter Speaker

  • Parâmetros: string : speakerName
  • Descrição: Retorna o orador com o nome dado, ou nil se não existir.
  • Retornos: ChatSpeaker

Obter lista de canais

  • Parâmetros: nenhum
  • Descrição: Retorna uma lista de nomes de todos os canais não privados no chat.
  • Retornos: array< string >

Obter lista de canais automáticos

  • Parâmetros: nenhum
  • Descrição: Retorna uma lista de nomes de todos os canais no chat com o AutoJoin definido como verdadeiro.
  • Retornos: array< string >

RegisterFilterMessageFunction

  • Parâmetros: string : functionId , 0> função0> : 3> func 3>
  • Descrição: Registra uma função de filtro no chat identificado por functionId . Quaisquer alterações na mensagem persistirão e serão exibidas quando a mensagem passar por todas as outras funções de filtro. Essa função é passada pelo nome do altofalante, o Objetoda mensagem e o canal em que a mensagem foi originada.
  • Retornos: void
  • Exemplo:

-- Paste this example into a ModuleScript within the ChatModuleS folder.
-- Este exemplo filtra uma palavra-chave e, se tiver sucesso, define a cor de chat da mensagem
local functionId = "greenText"
local keyword = "#green"
local chatColor = Color3.new(0, 1, 0) -- verde
local function doFilter(speaker, messageObject, channelName)
-- Verifique se a mensagem contém a palavra-chave
local start, finish = string.find(messageObject.Message, keyword)
if start and finish then
-- Remova (filtro) a palavra-chave da mensagem, também definindo a Cor do Chat
messageObject.Message = string.gsub(messageObject.Message, keyword, "")
messageObject.ExtraData.ChatColor = chatColor
end
end
local function runChatModule(ChatService)
ChatService:RegisterFilterMessageFunction(functionId, doFilter)
end
return runChatModule

DesativarFilterMessageFunction

  • Parâmetros: string : functionId
  • Descrição: Não registra uma função de filtro (registrada por RegisterFilterMessage) com seu identificador, functionId .
  • Retornos: void

Função RegisterProcessCommands

  • Parâmetros: string : functionId , 0> função0> : 3> func 3>
  • Descrição: Registra uma função de comando de processo no chat identificado por functionId. Antes que uma mensagem seja filtrada, ela passará por func (e outras funções registradas por este). A função 0> func0> deve verificar se a mensagem invoca
  • Retornos: void
  • Exemplo:

-- Paste this example into a ModuleScript within the ChatModuleS folder.
local functionId = "getPizza"
local command = "/pizza"
local toolId = 22596452 -- Equipamento de fatia de pizza de equipamento
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

Não registrar processo de comando

  • Parâmetros: string : functionId
  • Descrição: Não registra um processador de comando (registrado por RegisterProcessCommandsFunction ) dado o identificador, functionId .
  • Retornos: void

Eventos

CanalAdicionado

  • Parâmetros: string : channelName
  • Descrição: Fires quando um canal é adicionado ao chat.

CanalRemovido

  • Parâmetros: string : channelName
  • Descrição: Fires quando um channel é removido do chat.

PalestranteAdicionado

  • Parâmetros: string : speakerName
  • Descrição: Fires quando um orador é adicionado ao chat.

Removedor de Speaker

  • Parâmetros: string : speakerName
  • Descrição: Fires quando um orador é removido do chat.

Palestrante de Chat

Um ChatSpeaker é a representação de uma entidade que pode falar em um ChatChannel. Cada Player conectado ao jogo tem um ChatSpeaker associado. Um ChatSpeakers adicional pode ser construído para não-usuários (como anunciantes ou mensagens de dicas) usando 2>ChatService:AddSpeaker()2>.

Propriedades

Nome

  • Tipo: string : Name
  • Descrição: O nome do altofalante, usado em referência a este orador ao chamar muitas outras funções.

Métodos

Entrar no canal

  • Parâmetros: string : channelName
  • Descrição: Adiciona o orador ao canal com o channelName dado
  • Retornos: void

Sair do Canal

  • Parâmetros: string : channelName
  • Descrição: Remova o orador do canal com o channelName dado
  • Retornos: void

Obter lista de canais

  • Parâmetros: Nenhum
  • Descrição: Retorna uma lista dos nomes de todos os canais em que o orador está.
  • Retornos: array< string >

IsInChannel

  • Parâmetros: string : channelName
  • Descrição: Retorna se o orador está no canal com o channelName dado.
  • Retornos: boolo

Diga mensagem

  • Parâmetros: string : message , 0> Library.string / cadeia / texto0> : 3> channelName3> , dicionário< 6> Library.string / cadeia / texto6> , Variáveis> 9> extraData 9>
  • Descrição: Causa o falante dizer message e retornar o objeto ChatMessage criado ao fazer isso.
  • Retornos: ChatMessage

Enviar mensagem

  • Parâmetros: string : message , 0> Library.string / cadeia / texto0> : 3> canal3> , 6> Library.string / cadeia / texto6> : 9> fromSpeaker 9>
  • Descrição: Envia uma mensagem para o ChatSpeaker com o nome de fromSpeaker dado. Se nenhum such speaker estiver no canal, este método cria uma advertência e o speaker não verá a mensagem.
  • Retornos: void

Enviar Mensagem do Sistema

  • Parâmetros: string : message , 0> Library.string / cadeia / texto0> : 3> channelName 3>
  • Descrição: Envia uma mensagem do sistema para o ChatChannel com o dado channelName . Se o orador não estiver no canal, então esta mensagem criará um aviso e outros oradores no canal não verão a mensagem.
  • Retornos: void

ObterJogador

  • Parâmetros: Nenhum
  • Descrição: Retorna o objeto Player associado com o altofalante. Se o orador não for para um usuário (um bot) então isso retorna nil .
  • Retornos: Player ou nil

Definir Dados Extras

  • Parâmetros: string : key , Variante 0> data0>
  • Descrição: Defines alguns dados extras para o orador sob um determinado key . Sempre que o orador envia uma Mensagem de Chat , esse dado extra é anexado à mensagem se nenhum for fornecido explplicitamente com a mensagem. Por exemplo, isso permite que a cor do chat do altofalanteseja configurar.
  • Retornos: void

Obter Dados Extras

  • Parâmetros: string : key
  • Descrição: Retorna os dados extras associados ao key , definido usando SetExtraData.
  • Retornos: Variante

Definir o canal principal

  • Parâmetros: string : channelName
  • Descrição: Configura o orador para falar no canal fornecido. Ativa o MainChannelSet.
  • Retornos: nil

Eventos

Mensagem Dita

  • Parâmetros: ChatMessagemessage , 0> Library.string / cadeia / texto0> : 3> channelName 3>
  • Descrição: Fired when the speaker sends a ChatMessage to the ChatChannel

Mensagem Recebida

  • Parâmetros: ChatMessagemessage , 0> Library.string / cadeia / texto0> : 3> channelName 3>
  • Descrição: Fired when the speaker recebe uma Mensagem de Chat de outro falante em uma ChatChannel

Recebeu uma Mensagem do Sistema

  • Parâmetros: ChatMessagemessage , 0> Library.string / cadeia / texto0> : 3> channelName 3>
  • Descrição: Fired when the speaker recebe uma system ChatMessage from a ChatChannel with the given 0> channelName0> .

CanalEntrou

  • Parâmetros: string : channelName , 0> Library.string / cadeia / texto0> : 3> channelWelcomeMessage 3>
  • Descrição: Fired when the speaker joins the ChatChannel with the given channelName .

Canal Esquerdo

  • Parâmetros: string : channelName
  • Descrição: Fired when the speaker leaves a ChatChannel with the given channelName .

Mutado

  • Parâmetros: string : channelName , 0> Library.string / cadeia / texto0> : 3> reason = nil3> , 6> int6> : 9> duration 9> = 0
  • Descrição: 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.

Sem silenciar

  • Parâmetros: string : channelName
  • Descrição: Fired when the speaker is unmuted on the ChatChannel with the given channelName .

ExtraDataAtualizado

  • Parâmetros: string : key , Variante 0> data0>
  • Descrição: Ativado quando o valor padrão de uma chave nos dados extras do altofalanteé atualizado usando SetExtraData.

MainChannelSet

  • Parâmetros: string : channelName
  • Descrição: Fired quando o canal principal dos oradores é alterado para o ChatChannel com o channelName dado.

Mensagem de Bate-papo

Um ChatMessage é uma estrutura de dados representando uma mensagem enviada por um ChatSpeaker. Ele contém dados sobre a mensagem, incluindo a longura do texto, se a texto foi filtrado pelo Roblox e dados extras sobre a aparência da mensagem.

Propriedades

ID

  • Tipo: int
  • Descrição: Um identificador numérico exclusivo para a mensagem.

Do Speaker

CanalOriginal

Está filtrado

  • Tipo: bool
  • Descrição: Descreve se a mensagem é filtrada pelo Roblox (se for, a mensagem será nil )

Comprimento da mensagem

  • Tipo: int
  • Descrição: Comprimento da mensagem. Você pode usar isso para gerar uma string hashed-out se a mensagem for filtrada.

Mensagem

  • Tipo: string : ou nil
  • Descrição: O texto da mensagem. Essa propriedade será nil se IsFiltered estiver verdadeiro.

Tipo de Mensagem

  • Tipo: string :
  • Descrição: O tipo da mensagem. Esses tipos são descritos no módulo ChatCommands:
  • Valores possíveis: "Message" , "System" , 0> ("MeCommand")0> , 3> ("Welcome")3> , 6> ("SetCore")6> , 9> ("Whisper") 9>

Tempo

  • Tipo: int
  • Descrição: Um tempo de marca; o valor de os.time() no momento da criaçõesda mensagem.

Dados extras

  • Tipo: dicionário< string , Variáveis>
  • Descrição: Um dicionário de metadados para esta mensagem. Isso é usado para alterar a aparência da mensagem. As seguintes chaves podem estar presentes:

Canal de Chat

ChatChannel é um objeto que armazena dados sobre um único canal, que é um meio por meio de mensagens podem ser trocadas entre ChatSpeakers . Ele também tem propriedades de acesso que determinam a visibilidade das mensagens ao mesmo tempo que os usuários podem entrar ou sair do canal manualmente (usando /join ou 0> /leave0> comandos).

Por padrão, cada usuário tem um ChatSpeaker que é automaticamente adicionado aos canais de chat "Todos" e "Sistema" (embora "Sistema" seja lido apenas). Se o usuário estiver em um Player.Team, eles também terão acesso a um canal para apenas essa equipe.

Propriedades

Nome

  • Tipo: string
  • Descrição: O nome do canal, usado para referenciar o canal em outras funções.

Mensagem de Bem-Vindo

  • Tipo: string
  • Descrição: Uma mensagem para exibir quando um usuário se juntar ao canal.

Entrável

  • Tipo: bool
  • Descrição: Determina se um usuário pode entrar manualmente em um canal usando o comando /join. Um usuário ainda pode ser adicionado a um canal usando ChatSpeaker:JoinChannel() ou outros meios, mesmo que essa propriedade seja falsa.

Sair

  • Tipo: bool
  • Descrição: Determina se um usuário pode sair manualmente de um canal usando o comando /leave. Um usuário ainda pode ser removido de um canal usando ChatSpeaker:LeaveChannel() ou outros meios, mesmo que essa propriedade seja falsa.

Entrar Automaticamente

  • Tipo: bool
  • Descrição: Determina se o ChatSpeaker de um jogador vai automaticamente se juntar ao canal ao entrar no jogo. Os oradores não-user não vão automaticamente se juntar aos canais, mesmo quando essa propriedade estiver verdadeira (Você pode usar ChatSpeaker:JoinChannel() para fazer isso).

Privado

  • Tipo: bool
  • Descrição: Determina se o canal será incluído na lista de canais retornados por ChatService:GetChannelList() . Isso para conversas de coisas silenciosas e de equipe.

Métodos

Speaker de Chutar

  • Parâmetros: string : speakerName , 0> Library.string / cadeia / texto0> : 3> reason = nil 3>
  • Descrição: Remova o orador com o speakerName dado do canal, enviando uma mensagem para o usuário e o canal de que o usuário foi expulso. Se um reason for fornecido, a razão será incluída na mensagem.
  • Retornos: void

MuteSpeaker

  • Parâmetros: string : speakerName , 0> Library.string / cadeia / texto0> : 3> reason = nil3> , 6>int6> 9> duration = 0 9>
  • Descrição: Muta o orador com o speakerName dado no canal por um tempo especificado em segundos. Se duration for nil ou 0, a mute está em definida. Se 0> reason0> for fornecido, uma mensagem será enviada para o canal com a razão incluída.
  • Retornos: void

Desativar o som do orador

  • Parâmetros: string : speakerName
  • Descrição: Desbloqueia o orador com o speakerName dado no canal.
  • Retornos: void

IsSpeakerMuted

  • Parâmetros: string : speakerName
  • Descrição: Descreve se o orador com o speakerName dado está atualmente silenciado no canal.
  • Retornos: boolo

Obter Lista de Palestrantes

  • Parâmetros: Nenhum
  • Descrição: Retorna uma lista contendo todos os nomes do ChatSpeaker atualmente no canal.
  • Retornos: array< string >

Enviar Mensagem do Sistema

  • Parâmetros: string : message
  • Descrição: Envia uma mensagem do "Sistema" ChatSpeaker para o canal.
  • Retornos: void

RegisterFilterMessageFunction

  • Parâmetros: string : functionId , 0> função0> 3> func 3>
  • Descrição: Registra uma função de filtro, func , identificado por functionId para o canal. A função de filtro será chamada com o 0> ChatSpeaker 0> , o 3> ChatMessage3> e o 6>Library.string / cadeia / texto 6>: nome do canal em que o mensagem foi origin
  • Retornos: void
  • Exemplo:

-- Paste this example into a ModuleScript within the ChatModuleS folder.
local functionId = "getPizza"
local command = "/pizza"
local toolId = 22596452 -- Equipamento de fatia de pizza de equipamento
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

DesativarFilterMessageFunction

  • Parâmetros: string : functionId
  • Descrição: Não registra uma função de filtro (registrada por RegisterFilterMessage) com seu identificador, functionId .
  • Retornos: void

Função RegisterProcessCommands

  • Parâmetros: string : functionId , 0> função0> 3> func 3>
  • Descrição: Registra uma função de comando de processo, func, identificada por functionId no chat. Antes de uma mensagem ser filtrada, ela passará por 0> func 0> (e outras funções registradas
  • Retornos: void
  • Exemplo:

-- Paste this example into a ModuleScript within the ChatModuleS folder.
-- Este exemplo filtra uma palavra-chave e, se tiver sucesso, define a cor de chat da mensagem
local functionId = "greenText"
local keyword = "#green"
local chatColor = Color3.new(0, 1, 0) -- verde
local function doFilter(speaker, messageObject, channelName)
-- Verifique se a mensagem contém a palavra-chave
local start, finish = string.find(messageObject.Message, keyword)
if start and finish then
-- Remova (filtro) a palavra-chave da mensagem, também definindo a Cor do Chat
messageObject.Message = string.gsub(messageObject.Message, keyword, "")
messageObject.ExtraData.ChatColor = chatColor
end
end
local function runChatModule(ChatService)
-- Criar um canal e registrar a função de filtro
local testChannel = ChatService:AddChannel("TestChannel")
testChannel:RegisterFilterMessageFunction(functionId, doFilter)
end
return runChatModule

Não registrar processo de comando

  • Parâmetros: string : functionId
  • Descrição: Não registra um processador de comando (registrado por RegisterProcessCommandsFunction) dado o identificador, functionId .
  • Retornos: void

Eventos

MensagemPostada

  • Parâmetros: ChatMessage : message
  • Descrição: Fires quando uma mensagem é postada no canal.

SpeakerEntrou

  • Parâmetros: string : speakerName
  • Descrição: Fires when a ChatSpeaker joins the canal.

SpeakerLeft

  • Parâmetros: string : speakerName
  • Descrição: Fires when a ChatSpeaker leaves the canal.

PalestranteMutado

  • Parâmetros: string : speakerName , 0> Library.string / cadeia / texto0> : 3> reason3> , 6>int6> 9>duration = 0 9>
  • Descrição: Fires quando um ChatSpeaker foi silenciado no canal.

PalestranteDesativado

  • Parâmetros: string : speakerName
  • Descrição: Fires quando um ChatSpeaker não é silenciado.