AI Core
Référence de l’APIAI Core : exports serveur

Logs

Envoyer les logs de votre ressource via ai-core vers Discord, Fivemanage, FiveM Stats et la console, et décrire vos canaux de log.

Chaque ressource écrit ses logs via ai-core. Votre ressource nomme un canal (purchases, robberies) et écrit un message ; ai-core décide où il va. Le propriétaire du serveur active les fournisseurs dans le panneau d’administration (console, Discord, Fivemanage, FiveM Stats), fixe le niveau minimum, et colle les urls de webhook Discord par ressource et par canal. Une ressource ne poste jamais elle-même vers un webhook ou un service de logs, et ne détient jamais d’url de webhook.

Passez les joueurs concernés comme source et target au lieu d’écrire leurs noms dans le message : ai-core ajoute le nom, le personnage, le citizen id et les identifiants de chaque joueur (l’IP seulement quand le panneau l’autorise).

Log

Envoie une entrée de log de votre ressource.

Côté : Serveur · Attend : non · Lib : aiLog(channel, message, options?) (Lua : aiLib.aiLog ; tous deux écrivent plutôt dans la console tant qu’ai-core ne tourne pas)

Signature
Log(channel: string, message: string, options?: LogOptions): void
Lua
exports['ai-core']:Log('purchases', 'Bought a car', { source = source, metadata = { price = 25000 } })

Paramètres

Prop

Type

LogOptions

Prop

Type

Voir LogOptions et LogLevel.

Retour

Rien. L’entrée est abandonnée sans un mot quand son niveau est sous le minimum du panneau ou que son canal est désactivé avec LogChannels.

Exemple

import { onClientCallback, resourceExport } from "@aicore-fivem/lib/server";
import { fail } from "@aicore-fivem/lib/shared";

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

onClientCallback("myscript:buyCar", { lock: true }, (source) => {
  const price = 25_000;
  if (!core.RemoveMoney(source, "bank", price, "car_purchase")) return fail("NOT_ENOUGH_MONEY");
  // ... créer et ranger la voiture
  core.Log("purchases", "Bought a car", { source, metadata: { model: "sultan", price } });
  return { ok: true };
});

Les logs sont destinés au propriétaire du serveur : le message reste donc en anglais et n’est pas traduit. Gardez le message court et mettez les valeurs dans metadata, où les services de logs peuvent les filtrer.

LogChannels

Décrit les canaux de votre ressource : leur nom de dataset pour Fivemanage et FiveM Stats, et si chacun est activé. Appelez-le une fois au démarrage de votre ressource. Les canaux que vous ne décrivez jamais fonctionnent quand même avec les valeurs par défaut.

Côté : Serveur · Attend : non · Lib : aiLogChannels(channels)

Signature
LogChannels(channels: Record<string, LogChannel>): void
Lua
exports['ai-core']:LogChannels({ purchases = { dataset = 'myscript-sales' }, debug = { active = false } })

Paramètres

Prop

Type

LogChannel

Prop

Type

Voir LogChannel.

Retour

Rien. Un second appel remplace toute la description de votre ressource. Elle est abandonnée quand votre ressource s’arrête. Une valeur qui n’est pas une table ne fait rien.

Exemple

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

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

// Une fois au démarrage.
core.LogChannels({
  purchases: { dataset: "myscript-sales" },
  robberies: { dataset: "myscript-crime" },
  debug: { active: false },
});

Les urls de webhook ne vont jamais ici ni nulle part dans votre ressource : le propriétaire du serveur les fixe dans le panneau d’ai-core, qui les garde dans un fichier non partagé.

Sur cette page