Admin paneli ve komutlar
ai-core’un admin panelinin arkasındaki export’lar - panel kaydı, panel değişiklikleri, Commands sekmesi, lookup listeleri ve gösterge panelindeki diğer script’lerin ayar ekranları.
ai-core her script için tek bir admin paneli barındırır. Bu sayfadaki export’ların çoğu @aicore-fivem/lib’in senin yerine çağırdığı altyapıdır: lib’in AdminPanel’i ve addCommand’ı ile yapılmış bir script RegisterAdminPanel, AdminPanelChanged ya da RegisterCommands’ı asla kendisi çağırmaz. Ne olduğunu bilmen ve başka bir dilden destekleyebilmen için belgelenmiştir. RegisterExternalPanel ve GetLookupValues her script için işe yarar.
RegisterAdminPanel
Çağıran resource’un bir panel bölümü olduğunu bildirir. Bundan sonra ai-core, bir admin paneli her açtığında ondan şemasını ve verisini ister.
Taraf: Server · Bekler: hayır · Lib: lib’in AdminPanel’i başlarken çağırır
RegisterAdminPanel(resource: string): voidexports['ai-core']:RegisterAdminPanel(GetCurrentResourceName())Parametreler
Prop
Type
Dönüş değeri
Hiçbir şey. Resource durduğunda kayıt silinir.
Örnek
Örnek yok: lib’in AdminPanel’i bunu çağırır. Lib olmadan kayıt yapan bir resource, ai-core’un geri çağırdığı export’ları da cevaplamalıdır (AdminPanelSnapshot, AdminPanelData, AdminPanelSummary, @aicore-fivem/shared içinde AdminPanelResourceExports olarak tiplenmiş); bu lib’in işidir.
AdminPanelChanged
Bir panel resource’u ai-core’a kayıtlarından birinin değiştiğini söyler. ai-core değişikliği paneli açık olan her admin’e iletir, böylece ekranları yeniden yüklemeden güncellenir.
Taraf: Server · Bekler: hayır · Lib: lib’in AdminPanel’i kaydedilen her değişiklikten sonra çağırır
AdminPanelChanged(delta: AdminDelta): voidexports['ai-core']:AdminPanelChanged({ resource = GetCurrentResourceName(), file = 'shops', key = 'shop_1', value = record })Parametreler
Prop
Type
Bkz. AdminDelta.
Dönüş değeri
Hiçbir şey. ai-core delta’yı kontrol etmez; verildiği gibi gönderir.
Örnek
Örnek yok: lib’in AdminPanel’i bunu bir değişiklik doğrulanıp kaydedildikten sonra çağırır.
RegisterCommands
Bir resource’un komutlarını panelin Commands sekmesinde, yardım metinleri, parametreleri ve kimlerin kullanabileceğiyle listeler.
Taraf: Server · Bekler: hayır · Lib: lib’in addCommand’ı çağırır (TypeScript ve Lua aiLib.addCommand)
RegisterCommands(resource: string, commands: CommandInfo[]): voidexports['ai-core']:RegisterCommands(GetCurrentResourceName(), commands)Parametreler
Prop
Type
Bkz. CommandInfo ve CommandParam.
Dönüş değeri
Hiçbir şey. Resource durduğunda liste silinir. Bir principal’a (group.admin) kısıtlı komutlar için ai-core o principal’a command.<name> da verir; bunun için permission.cfg içinde add_ace resource.ai-core command.add_ace allow (ve command.remove_ace) gerekir.
Örnek
Örnek yok: lib’in addCommand’ını (TypeScript) ya da aiLib.addCommand’ı (Lua) kullan, komut sekmede kendiliğinden görünür. Çıplak RegisterCommand ile yapılmış komutlar da listelenir, düz olarak işaretlenir.
GetLookupValues
Tek bir lookup listesinin değerleri: aktif envanterin eşya adları, meslek adları, çete adları vb. Lib’in panel doğrulaması bir admin’in yazdığı değerin var olup olmadığını kontrol etmek için bunu kullanır.
Taraf: Server · Bekler: hayır · Lib: lib’in AdminPanel doğrulaması kullanır
GetLookupValues(source: LookupSource): string[]local items = exports['ai-core']:GetLookupValues('item') -- eşya adları listesiParametreler
Prop
Type
source | Değerler |
|---|---|
item | Aktif envanterin eşya adları. |
job / gang | Paneldeki meslek / çete adları. |
account | Hesap tipi adları (cash, bank...). |
resource | Başlatılmış resource’ların adları. |
player | Yüklü karakteri olan oyuncuların citizen id’leri. |
vehicle / ped | Her zaman boş: modelleri yalnızca admin’in oyunu listeleyebilir. |
Bkz. LookupSource.
Dönüş değeri
string[]: değerler, etiketlerine göre sıralı. Bilinmeyen bir source için, vehicle ve ped için ve liste henüz bilinmiyorken (envanter çalışmıyor) boş liste: boşu "hiçbir şey geçerli değil" olarak değil, "kontrol edilemiyor" olarak ele al.
Örnek
import { resourceExport } from "@aicore-fivem/lib/server";
const core = resourceExport("ai-core");
/** Config’indeki bir ödül eşyasını kontrol eder; envanter çalışmıyorken bilinmemesi sorun değil. */
export function isKnownItem(name: string): boolean {
const items = core.GetLookupValues("item");
return items.length === 0 || items.includes(name);
}Liste her çağrıda baştan kurulur (eşya listesi uzun olabilir). Döngüde değil, doğrularken çağır.
RegisterExternalPanel
Başka bir script’in kendi ayar ekranını ai-core’un panel gösterge paneline ekler, böylece sunucu sahibi her script’in ayarlarını tek yerde bulur. Kart ekranı bir sohbet komutuyla açar ya da panelin içinde bir web sayfası gösterir.
Taraf: Server · Bekler: hayır · Lib: yok
RegisterExternalPanel(panel: {
id?: string;
label: string;
icon?: string;
description?: string;
command?: string;
url?: string;
}): voidexports['ai-core']:RegisterExternalPanel({ label = 'My script', command = 'myscriptconfig' })Parametreler
Prop
Type
Panel alanları
Prop
Type
Dönüş değeri
Hiçbir şey. label olmadan ya da hem command hem url olmadan kart eklenmez. Resource’un durduğunda kartlar silinir.
Örnek
import { resourceExport } from "@aicore-fivem/lib/server";
const core = resourceExport("ai-core");
// Açılışta bir kez.
core.RegisterExternalPanel({
label: "My script",
icon: "gear",
description: "Shops, prices and rewards",
command: "myscriptconfig",
});Değiştiremediğin bir script, bunun yerine kendi fxmanifest.lua dosyasındaki satırlarla listelenebilir: ai_admin_label, ai_admin_command ya da ai_admin_url, isteğe bağlı olarak ai_admin_icon ve ai_admin_description. Sunucu sahibi panelde elle de kart ekleyebilir.