Panel de administración y comandos
Los exports detrás del panel de administración de ai-core - registro de paneles, cambios en el panel, la pestaña Commands, listas de valores y las pantallas de ajustes de otros scripts en el dashboard.
ai-core aloja un único panel de administración para todos los scripts. La mayoría de los exports de esta página son fontanería que @aicore-fivem/lib llama por ti: un script construido con AdminPanel y addCommand de la lib nunca llama por sí mismo a RegisterAdminPanel, AdminPanelChanged ni RegisterCommands. Se documentan para que sepas qué ocurre y puedas darles soporte desde otro lenguaje. RegisterExternalPanel y GetLookupValues son útiles para cualquier script.
RegisterAdminPanel
Anuncia que el recurso que llama tiene una sección en el panel. Entonces ai-core le pide su esquema y sus datos cada vez que un admin abre el panel.
Lado: Servidor · Espera: no · Lib: lo llama el AdminPanel de la lib cuando se inicia
RegisterAdminPanel(resource: string): voidexports['ai-core']:RegisterAdminPanel(GetCurrentResourceName())Parámetros
Prop
Type
Devuelve
Nada. El registro se elimina cuando el recurso se detiene.
Ejemplo
Sin ejemplo: lo llama el AdminPanel de la lib. Un recurso que se registre sin la lib también debe responder a los exports a los que ai-core llama de vuelta (AdminPanelSnapshot, AdminPanelData, AdminPanelSummary, tipados como AdminPanelResourceExports en @aicore-fivem/shared), que es trabajo de la lib.
AdminPanelChanged
Un recurso de panel avisa a ai-core de que cambió uno de sus registros. ai-core reenvía el cambio a cada admin que tiene el panel abierto, para que su pantalla se actualice sin recargar.
Lado: Servidor · Espera: no · Lib: lo llama el AdminPanel de la lib tras cada cambio guardado
AdminPanelChanged(delta: AdminDelta): voidexports['ai-core']:AdminPanelChanged({ resource = GetCurrentResourceName(), file = 'shops', key = 'shop_1', value = record })Parámetros
Prop
Type
Consulta AdminDelta.
Devuelve
Nada. ai-core no comprueba el delta; lo envía tal cual.
Ejemplo
Sin ejemplo: lo llama el AdminPanel de la lib después de validar y guardar un cambio.
RegisterCommands
Lista los comandos de un recurso en la pestaña Commands (comandos) del panel, con su ayuda, sus parámetros y quién puede usarlos.
Lado: Servidor · Espera: no · Lib: lo llama el addCommand de la lib (TypeScript y aiLib.addCommand en Lua)
RegisterCommands(resource: string, commands: CommandInfo[]): voidexports['ai-core']:RegisterCommands(GetCurrentResourceName(), commands)Parámetros
Prop
Type
Consulta CommandInfo y CommandParam.
Devuelve
Nada. La lista se elimina cuando el recurso se detiene. Para comandos restringidos a un principal (group.admin), ai-core también concede a ese principal command.<name>, lo que necesita add_ace resource.ai-core command.add_ace allow (y command.remove_ace) en permission.cfg.
Ejemplo
Sin ejemplo: usa addCommand de la lib (TypeScript) o aiLib.addCommand (Lua) y el comando aparece solo en la pestaña. Los comandos creados con un RegisterCommand a secas también se listan, marcados como simples.
GetLookupValues
Los valores de una lista de valores: los nombres de objetos del inventario activo, los nombres de trabajos, de bandas, etc. La validación del panel de la lib lo usa para comprobar que existe un valor que ha escrito un admin.
Lado: Servidor · Espera: no · Lib: lo usa la validación del AdminPanel de la lib
GetLookupValues(source: LookupSource): string[]local items = exports['ai-core']:GetLookupValues('item') -- lista de nombres de objetosParámetros
Prop
Type
source | Valores |
|---|---|
item | Nombres de objetos del inventario activo. |
job / gang | Nombres de trabajos / bandas del panel. |
account | Nombres de tipos de cuenta (cash, bank...). |
resource | Nombres de los recursos iniciados. |
player | Citizen ids de los jugadores con un personaje cargado. |
vehicle / ped | Siempre vacío: solo el juego del admin puede listar modelos. |
Consulta LookupSource.
Devuelve
string[]: los valores, ordenados por su etiqueta. Una lista vacía para un source desconocido, para vehicle y ped, y cuando la lista aún no se conoce (no hay ningún inventario en marcha): trata la lista vacía como "no se puede comprobar", no como "nada es válido".
Ejemplo
import { resourceExport } from "@aicore-fivem/lib/server";
const core = resourceExport("ai-core");
/** Checks a reward item from your config; unknown is fine while no inventory runs. */
export function isKnownItem(name: string): boolean {
const items = core.GetLookupValues("item");
return items.length === 0 || items.includes(name);
}La lista se construye de nuevo en cada llamada (la lista de objetos puede ser larga). Llámalo cuando valides, no en un bucle.
RegisterExternalPanel
Lista la pantalla de ajustes propia de otro script en el dashboard del panel de ai-core, para que el dueño del servidor encuentre los ajustes de todos los scripts en un solo sitio. La tarjeta abre la pantalla con un comando de chat, o muestra una página web dentro del panel.
Lado: Servidor · Espera: no · Lib: ninguna
RegisterExternalPanel(panel: {
id?: string;
label: string;
icon?: string;
description?: string;
command?: string;
url?: string;
}): voidexports['ai-core']:RegisterExternalPanel({ label = 'My script', command = 'myscriptconfig' })Parámetros
Prop
Type
Campos del panel
Prop
Type
Devuelve
Nada. Sin un label, o sin command ni url, la tarjeta no se añade. Las tarjetas se eliminan cuando tu recurso se detiene.
Ejemplo
import { resourceExport } from "@aicore-fivem/lib/server";
const core = resourceExport("ai-core");
// Una vez al iniciar.
core.RegisterExternalPanel({
label: "My script",
icon: "gear",
description: "Shops, prices and rewards",
command: "myscriptconfig",
});Un script que no puedes cambiar puede listarse con líneas en su fxmanifest.lua: ai_admin_label, ai_admin_command o ai_admin_url, y opcionalmente ai_admin_icon y ai_admin_description. El dueño del servidor también puede añadir tarjetas a mano en el panel.
Comprobaciones de conexión
Añade comprobaciones que cada jugador que se conecta debe superar (whitelists, baneos) y declara que tu script sustituye a otro.
Puente de vRP
Los exports que usa el puente de vRP integrado en ai-core - el almacén de datos de vRP, su API de base de datos, el mapeo de permisos y la lista de permisos.