AI Core
Essenciaisai-chat

ai-chat para desenvolvedores

A API de chat que o ai-chat responde (o recurso de chat do FiveM), seus exports, eventos e o formato de mensagem.

O ai-chat responde à API do recurso chat do FiveM, então você escreve código de chat do jeito padrão do FiveM. Os exports respondem tanto em exports['ai-chat'] quanto em exports.chat.

ChatMessage

O formato de mensagem que todo export e evento recebe.

Prop

Type

Exports do servidor

addMessage

Envia uma linha de chat para um jogador, vários jogadores ou todos.

Lado: Servidor · Espera: não

Signature
addMessage(target: number | number[], message: ChatMessage): void
Lua
exports.chat:addMessage(source, { args = { 'Bank', 'Your salary arrived.' }, color = { 61, 247, 158 } })

Parâmetros

Prop

Type

Retorno

Nada. Uma mensagem sem uma lista args válida é descartada.

Exemplo

import { callExport } from "@aicore-fivem/lib/server";

function announce(text: string): void {
  callExport("chat", "addMessage", -1, { args: ["City", text], color: [61, 247, 158], multiline: true });
}
announce("The bank closes in 10 minutes.");

registerMessageHook

Roda sua função para toda mensagem que um jogador envia, antes de ela ser entregue. O hook pode mudar a mensagem, mudar quem a recebe, ou cancelá-la. Os hooks são removidos quando seu recurso para.

Lado: Servidor · Espera: não

Signature
registerMessageHook(hook: (source: number, message: ChatMessage, ref: HookRef) => void): void

HookRef

Prop

Type

Exemplo

import { callExport } from "@aicore-fivem/lib/server";

callExport("chat", "registerMessageHook", (source: number, message: { args: string[] }, ref: { cancel(): void }) => {
  const text = message.args[message.args.length - 1] ?? "";
  if (/discord\.gg\//i.test(text)) ref.cancel();
});

registerMode

Adiciona um canal a partir de um script (os modos de chat do FiveM). O callback dele decide quem recebe cada mensagem, como um hook de mensagem. O modo é removido quando seu recurso para.

Lado: Servidor · Espera: não

Signature
registerMode(data: { name: string; displayName?: string; color?: string; cb?: (source: number, message: ChatMessage, ref: HookRef) => void }): void

Prop

Type

Exports do cliente

ExportO que faz
addMessage(message: ChatMessage | string): voidMostra uma linha só no chat deste jogador.
addSuggestion(name: string, help: string, params?: { name: string, help: string }[]): voidAdiciona uma sugestão de comando para este jogador.

Eventos

chatMessage (server)

Disparado no servidor para toda mensagem que um jogador envia, antes da entrega. Cancele-o (CancelEvent()) para descartar a mensagem.

Lado: Servidor (evento local)

ArgumentoTipoO que é
sourcenumberO id do servidor de quem envia.
authorstringO autor mostrado (o nome do personagem).
textstringO texto da mensagem.
on("chatMessage", (source: number, author: string, text: string) => {
  console.log(`[chat] ${author} (${source}): ${text}`);
});

Eventos de cliente que o ai-chat escuta

Envie-os a partir do servidor (TriggerClientEvent) ou de um script de cliente (TriggerEvent).

EventoArgumentosO que faz
chat:addMessagemessage: ChatMessage | stringMostra uma linha.
chatMessageauthor: string, color: [r, g, b], text: stringMostra uma linha (estilo antigo).
chat:addSuggestionname: string, help: string, params?: { name, help }[]Adiciona uma sugestão.
chat:addSuggestionssuggestions: { name, help, params? }[]Adiciona várias sugestões.
chat:removeSuggestionname: stringRemove uma sugestão.
chat:addMode / chat:removeModemode / nameAdiciona ou remove um modo de script neste cliente.
chat:clearnenhumEsvazia o chat deste jogador.

chat:addTemplate é ignorado: templates (HTML) nunca são desenhados. Mensagens digitadas por jogadores não são enviadas por _chat:messageEntered; escute chatMessage no servidor.

Nesta página