AI Core
Dokumentacja APIAI Core: eksporty serwerowe

Panel administratora i komendy

Eksporty za panelem administratora ai-core - rejestracja panelu, zmiany w panelu, karta Commands, listy wyszukiwania i ekrany ustawień innych skryptów na dashboardzie.

ai-core udostępnia jeden panel administratora dla każdego skryptu. Większość eksportów na tej stronie to instalacja, którą @aicore-fivem/lib wywołuje za ciebie: skrypt zbudowany z AdminPanel i addCommand z liba nigdy sam nie wywołuje RegisterAdminPanel, AdminPanelChanged ani RegisterCommands. Są opisane, abyś wiedział, co się dzieje, i mógł je obsłużyć z innego języka. RegisterExternalPanel i GetLookupValues przydają się każdemu skryptowi.

RegisterAdminPanel

Ogłasza, że wywołujący zasób ma sekcję w panelu. ai-core pyta go wtedy o schemat i dane za każdym razem, gdy administrator otwiera panel.

Strona: Serwer · Czeka: nie · Lib: wywoływany przez AdminPanel z liba przy jego starcie

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

Parametry

Prop

Type

Zwraca

Nic. Rejestracja jest usuwana, gdy zasób się zatrzymuje.

Przykład

Bez przykładu: wywołuje to AdminPanel z liba. Zasób, który rejestruje się bez liba, musi też odpowiadać na eksporty, które ai-core wywołuje zwrotnie (AdminPanelSnapshot, AdminPanelData, AdminPanelSummary, typowane AdminPanelResourceExports w @aicore-fivem/shared), co jest zadaniem liba.

AdminPanelChanged

Zasób panelu mówi ai-core, że jeden z jego rekordów się zmienił. ai-core przekazuje zmianę każdemu administratorowi, który ma otwarty panel, więc jego ekran aktualizuje się bez przeładowania.

Strona: Serwer · Czeka: nie · Lib: wywoływany przez AdminPanel z liba po każdej zapisanej zmianie

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

Parametry

Prop

Type

Zobacz AdminDelta.

Zwraca

Nic. ai-core nie sprawdza delty; wysyła ją tak, jak została podana.

Przykład

Bez przykładu: AdminPanel z liba wywołuje to po sprawdzeniu i zapisaniu zmiany.

RegisterCommands

Wyświetla komendy zasobu w karcie Commands panelu, z ich pomocą, parametrami i tym, kto może ich używać.

Strona: Serwer · Czeka: nie · Lib: wywoływany przez addCommand z liba (TypeScript i aiLib.addCommand w Lua)

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

Parametry

Prop

Type

Zobacz CommandInfo i CommandParam.

Zwraca

Nic. Lista jest usuwana, gdy zasób się zatrzymuje. Dla komend ograniczonych do principala (group.admin) ai-core nadaje temu principalowi także command.<name>, co wymaga add_ace resource.ai-core command.add_ace allow (i command.remove_ace) w permission.cfg.

Przykład

Bez przykładu: użyj addCommand z liba (TypeScript) lub aiLib.addCommand (Lua), a komenda sama pojawi się w karcie. Komendy utworzone gołym RegisterCommand też są wyświetlane, oznaczone jako zwykłe.

GetLookupValues

Wartości jednej listy wyszukiwania: nazwy przedmiotów aktywnego ekwipunku, nazwy prac, nazwy gangów i tak dalej. Walidacja panelu w libie używa tego, aby sprawdzić, czy wartość wpisana przez administratora istnieje.

Strona: Serwer · Czeka: nie · Lib: używany przez walidację AdminPanel z liba

Sygnatura
GetLookupValues(source: LookupSource): string[]
Lua
local items = exports['ai-core']:GetLookupValues('item') -- lista nazw przedmiotów

Parametry

Prop

Type

sourceWartości
itemNazwy przedmiotów aktywnego ekwipunku.
job / gangNazwy prac / gangów z panelu.
accountNazwy typów kont (cash, bank...).
resourceNazwy uruchomionych zasobów.
playerCitizen id graczy z wczytaną postacią.
vehicle / pedZawsze puste: tylko gra administratora może wyświetlić listę modeli.

Zobacz LookupSource.

Zwraca

string[]: wartości posortowane według etykiety. Pusta lista dla nieznanego source, dla vehicle i ped oraz gdy lista nie jest jeszcze znana (nie działa żaden ekwipunek): traktuj pustą listę jako "nie da się sprawdzić", nie jako "nic nie jest poprawne".

Przykład

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);
}

Lista jest budowana od nowa przy każdym wywołaniu (lista przedmiotów może być długa). Wywołuj to przy walidacji, nie w pętli.

RegisterExternalPanel

Wyświetla własny ekran ustawień innego skryptu na dashboardzie panelu ai-core, więc właściciel serwera znajduje ustawienia każdego skryptu w jednym miejscu. Karta otwiera ekran komendą czatu albo pokazuje stronę internetową wewnątrz panelu.

Strona: Serwer · Czeka: nie · Lib: brak

Sygnatura
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' })

Parametry

Prop

Type

Pola panelu

Prop

Type

Zwraca

Nic. Bez label albo bez obu command i url karta nie jest dodawana. Karty są usuwane, gdy twój zasób się zatrzymuje.

Przykład

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

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

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

Skrypt, którego nie możesz zmienić, może zostać wyświetlony przez linie w jego fxmanifest.lua: ai_admin_label, ai_admin_command lub ai_admin_url i opcjonalnie ai_admin_icon oraz ai_admin_description. Właściciel serwera może też dodawać karty ręcznie w panelu.

Na tej stronie