AI Core
API-ReferenzAI Core: Server-Exports

Admin-Panel und Befehle

Exports hinter dem Admin-Panel von ai-core - Panel-Registrierung, Panel-Änderungen, der Tab Commands, Nachschlagelisten und die Einstellungsbildschirme anderer Skripte auf dem Dashboard.

ai-core stellt ein Admin-Panel für jedes Skript bereit. Die meisten Exports auf dieser Seite sind Infrastruktur, die @aicore-fivem/lib für dich aufruft: Ein Skript, das mit AdminPanel und addCommand der Lib gebaut ist, ruft RegisterAdminPanel, AdminPanelChanged oder RegisterCommands nie selbst auf. Sie sind dokumentiert, damit du weißt, was passiert, und sie aus einer anderen Sprache unterstützen kannst. RegisterExternalPanel und GetLookupValues sind für jedes Skript nützlich.

RegisterAdminPanel

Kündigt an, dass die aufrufende Ressource einen Panel-Bereich hat. ai-core fragt sie dann nach ihrem Schema und ihren Daten, sobald ein Admin das Panel öffnet.

Seite: Server · Wartet: nein · Lib: wird von AdminPanel der Lib beim Start aufgerufen

Signature
RegisterAdminPanel(resource: string): void
Lua
exports['ai-core']:RegisterAdminPanel(GetCurrentResourceName())

Parameter

Prop

Type

Rückgabe

Nichts. Die Registrierung wird verworfen, wenn die Ressource stoppt.

Beispiel

Kein Beispiel: AdminPanel der Lib ruft es auf. Eine Ressource, die sich ohne die Lib registriert, muss auch die Exports beantworten, die ai-core zurückruft (AdminPanelSnapshot, AdminPanelData, AdminPanelSummary, typisiert als AdminPanelResourceExports in @aicore-fivem/shared), was die Aufgabe der Lib ist.

AdminPanelChanged

Eine Panel-Ressource teilt ai-core mit, dass sich einer ihrer Datensätze geändert hat. ai-core leitet die Änderung an jeden Admin weiter, der das Panel geöffnet hat, sodass sich sein Bildschirm ohne Neuladen aktualisiert.

Seite: Server · Wartet: nein · Lib: wird von AdminPanel der Lib nach jeder gespeicherten Änderung aufgerufen

Signature
AdminPanelChanged(delta: AdminDelta): void
Lua
exports['ai-core']:AdminPanelChanged({ resource = GetCurrentResourceName(), file = 'shops', key = 'shop_1', value = record })

Parameter

Prop

Type

Siehe AdminDelta.

Rückgabe

Nichts. ai-core prüft das Delta nicht; es sendet es so, wie es übergeben wird.

Beispiel

Kein Beispiel: AdminPanel der Lib ruft es auf, nachdem eine Änderung validiert und gespeichert wurde.

RegisterCommands

Listet die Befehle einer Ressource im Tab Commands (Befehle) des Panels, mit ihrer Hilfe, ihren Parametern und wer sie nutzen darf.

Seite: Server · Wartet: nein · Lib: wird von addCommand der Lib aufgerufen (TypeScript und Lua aiLib.addCommand)

Signature
RegisterCommands(resource: string, commands: CommandInfo[]): void
Lua
exports['ai-core']:RegisterCommands(GetCurrentResourceName(), commands)

Parameter

Prop

Type

Siehe CommandInfo und CommandParam.

Rückgabe

Nichts. Die Liste wird verworfen, wenn die Ressource stoppt. Für Befehle, die auf einen Principal beschränkt sind (group.admin), gewährt ai-core diesem Principal außerdem command.<name>, was add_ace resource.ai-core command.add_ace allow (und command.remove_ace) in der permission.cfg braucht.

Beispiel

Kein Beispiel: Nutze addCommand der Lib (TypeScript) oder aiLib.addCommand (Lua), und der Befehl erscheint von selbst im Tab. Befehle, die mit einem nackten RegisterCommand erstellt wurden, werden ebenfalls gelistet, als einfach markiert.

GetLookupValues

Die Werte einer Nachschlageliste: die Item-Namen des aktiven Inventars, die Jobnamen, Gangnamen und so weiter. Die Panel-Validierung der Lib nutzt es, um zu prüfen, dass ein Wert, den ein Admin eingetippt hat, existiert.

Seite: Server · Wartet: nein · Lib: wird von der Validierung von AdminPanel der Lib genutzt

Signature
GetLookupValues(source: LookupSource): string[]
Lua
local items = exports['ai-core']:GetLookupValues('item') -- Liste von Item-Namen

Parameter

Prop

Type

sourceWerte
itemItem-Namen des aktiven Inventars.
job / gangJob- / Gangnamen aus dem Panel.
accountNamen der Kontotypen (cash, bank...).
resourceNamen gestarteter Ressourcen.
playerCitizen-IDs von Spielern mit geladenem Charakter.
vehicle / pedImmer leer: Nur das Spiel des Admins kann Modelle auflisten.

Siehe LookupSource.

Rückgabe

string[]: die Werte, nach ihrem Label sortiert. Eine leere Liste für eine unbekannte source, für vehicle und ped und wenn die Liste noch nicht bekannt ist (kein Inventar läuft): Behandle leer als „kann nicht prüfen“, nicht als „nichts ist gültig“.

Beispiel

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

const core = resourceExport("ai-core");

/** Prüft ein Belohnungs-Item aus deiner Config; unbekannt ist in Ordnung, solange kein Inventar läuft. */
export function isKnownItem(name: string): boolean {
  const items = core.GetLookupValues("item");
  return items.length === 0 || items.includes(name);
}

Die Liste wird bei jedem Aufruf neu aufgebaut (die Item-Liste kann lang sein). Rufe es beim Validieren auf, nicht in einer Schleife.

RegisterExternalPanel

Listet den eigenen Einstellungsbildschirm eines anderen Skripts auf dem Panel-Dashboard von ai-core, sodass der Serverbesitzer die Einstellungen jedes Skripts an einem Ort findet. Die Karte öffnet den Bildschirm mit einem Chat-Befehl oder zeigt eine Webseite innerhalb des Panels.

Seite: Server · Wartet: nein · Lib: keine

Signature
RegisterExternalPanel(panel: {
  id?: string;
  label: string;
  icon?: string;
  description?: string;
  command?: string;
  url?: string;
}): void
Lua
exports['ai-core']:RegisterExternalPanel({ label = 'My script', command = 'myscriptconfig' })

Parameter

Prop

Type

Panel-Felder

Prop

Type

Rückgabe

Nichts. Ohne label oder ohne sowohl command als auch url wird die Karte nicht hinzugefügt. Karten werden verworfen, wenn deine Ressource stoppt.

Beispiel

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

const core = resourceExport("ai-core");

// Einmal beim Start.
core.RegisterExternalPanel({
  label: "My script",
  icon: "gear",
  description: "Shops, prices and rewards",
  command: "myscriptconfig",
});

Ein Skript, das du nicht ändern kannst, kann stattdessen über Zeilen in seiner fxmanifest.lua gelistet werden: ai_admin_label, ai_admin_command oder ai_admin_url und optional ai_admin_icon und ai_admin_description. Der Serverbesitzer kann Karten auch von Hand im Panel hinzufügen.

Auf dieser Seite