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
RegisterAdminPanel(resource: string): voidexports['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
AdminPanelChanged(delta: AdminDelta): voidexports['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)
RegisterCommands(resource: string, commands: CommandInfo[]): voidexports['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
GetLookupValues(source: LookupSource): string[]local items = exports['ai-core']:GetLookupValues('item') -- lista nazw przedmiotówParametry
Prop
Type
source | Wartości |
|---|---|
item | Nazwy przedmiotów aktywnego ekwipunku. |
job / gang | Nazwy prac / gangów z panelu. |
account | Nazwy typów kont (cash, bank...). |
resource | Nazwy uruchomionych zasobów. |
player | Citizen id graczy z wczytaną postacią. |
vehicle / ped | Zawsze 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
RegisterExternalPanel(panel: {
id?: string;
label: string;
icon?: string;
description?: string;
command?: string;
url?: string;
}): voidexports['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.