Skip to content

Exports y eventos

API pública de Cuxial Chat: exports y eventos para enviar mensajes desde otros recursos.

Envía mensajes al chat, ábrelo o consulta sus canales desde tus propios recursos. Los recursos escritos para el chat estándar no necesitan cambios.

Exports de servidor ​

message ​

Envía un mensaje a un jugador, a varios o a todos.

lua
exports.cuxial_chat:message(target, data)
ParámetroTipoDescripción
targetnumber | number[] | nilUn id de servidor, una lista de ids, o -1 / nil para todos.
data.textstringTexto del mensaje. Obligatorio. Se corta a 600 caracteres.
data.channelstringid de un canal de data/channels.lua. Si falta o no existe = system.
data.authorstringNombre que sale como autor.
data.authorIdnumberId de servidor del autor. En un canal con burbujas, el mensaje sale también sobre la cabeza de ese jugador.
data.tostringNombre del destinatario, que se muestra junto al autor.
data.tagstableLista de etiquetas: { { label = 'Texto', color = '#rrggbb' } }.
data.imagestringURL de una imagen que se muestra con el mensaje. No se comprueba contra images.hosts.
data.systembooleanMarca el mensaje como de sistema. Por defecto true cuando no hay author.

Devuelve: boolean. true si el mensaje se envió; false si los datos no son válidos o no había ningún id válido.

lua
exports.cuxial_chat:message(source, {
    channel = 'sancion',
    text = 'Has recibido un aviso: *respeta la zona segura*.',
    tags = { { label = 'Aviso', color = '#f59e0b' } },
})

system ​

Atajo para un mensaje de sistema.

lua
exports.cuxial_chat:system(target, text)
ParámetroTipoDescripción
targetnumber | number[] | nilUn id de servidor, una lista de ids, o -1 / nil para todos.
textstringTexto del mensaje.

Devuelve: boolean.

lua
exports.cuxial_chat:system(-1, 'Reinicio del servidor en 10 minutos.')

getChannels ​

Devuelve la lista de canales con los nombres ya traducidos.

lua
local channels = exports.cuxial_chat:getChannels()

Devuelve: table[]. Cada entrada trae los campos de data/channels.lua (id, label, voice, color, tab, order, icon, command...).

lua
for _, channel in ipairs(exports.cuxial_chat:getChannels()) do
    print(channel.id, channel.label, channel.color)
end

Exports de cliente ​

addMessage ​

Muestra un mensaje de sistema al jugador local.

lua
exports.cuxial_chat:addMessage(text, channel)
ParámetroTipoDescripción
textstringTexto del mensaje.
channelstringid del canal. Opcional; system por defecto.
lua
exports.cuxial_chat:addMessage('Vehículo guardado.')

open ​

Abre el chat, si quieres en un canal concreto. No hace nada si el chat ya está abierto.

lua
exports.cuxial_chat:open(channel)
ParámetroTipoDescripción
channelstringid del canal. Opcional.
lua
exports.cuxial_chat:open('ooc')

close ​

Cierra el chat.

lua
exports.cuxial_chat:close()

isOpen ​

Indica si el chat está abierto.

lua
local open = exports.cuxial_chat:isOpen()

Devuelve: boolean.

lua
if exports.cuxial_chat:isOpen() then return end

refreshMask ​

Vuelve a comprobar si el jugador lleva máscara. El chat ya lo comprueba cada vez que se abre. Llama a este export desde tu recurso de ropa después de cambiar la máscara para que el nombre anónimo se actualice al momento.

lua
exports.cuxial_chat:refreshMask()

El resultado se publica en el state bag del jugador chatMasked (boolean), que otros recursos pueden leer. Solo se publica con anonymous.enabled = true.

Compatibilidad con el chat estándar ​

Cuxial Chat ocupa el lugar del recurso chat, así que el código escrito para el chat por defecto sigue funcionando. Estos mensajes salen en el canal system.

exports.chat:addMessage ​

lua
exports.chat:addMessage({
    color = { 255, 200, 0 },
    args = { 'Garaje', 'Vehículo guardado.' },
})

Formas de mensaje aceptadas:

FormaResultado
Una cadena de textoSe muestra como texto.
args = { 'Autor', 'Texto' }Autor y texto.
args = { 'Texto' }Solo texto.
templateSolo se usa cuando args no trae texto. Se muestra como texto plano, sin las etiquetas HTML.
color = { r, g, b }Añade una etiqueta de color al mensaje.

Eventos de cliente ​

EventoParámetrosQué hace
chat:addMessagemessageAñade un mensaje. Mismas formas que el export.
chatMessageauthor, color, textAñade un mensaje con el formato antiguo.
chat:clearningunoLimpia el chat.
chat:showningunoAbre el chat.
chat:addSuggestioncommand, help, paramsAñade un comando al autocompletado.
chat:addSuggestionslistAñade varios comandos. Cada entrada lleva name, help y params.
chat:removeSuggestioncommandQuita un comando de la lista.
lua
TriggerClientEvent('chat:addSuggestion', -1, '/reparar', 'Repara el vehículo', {
    { name = 'id', help = 'Id del jugador' },
})

Evento de servidor: chatMessage ​

Se dispara en el servidor antes de entregar un mensaje escrito sin comando. Cancélalo para bloquear el mensaje.

ParámetroTipoDescripción
sourcenumberId de servidor del autor.
namestringNombre del personaje.
textstringTexto del mensaje.
lua
AddEventHandler('chatMessage', function(source, name, text)
    if text:find('prohibido') then
        CancelEvent()
    end
end)

Los mensajes enviados con un comando (/me, /do, /pm...) no disparan este evento.

© Cuxial