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)
Log(channel: string, message: string, options?: LogOptions): voidexports['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)
LogChannels(channels: Record<string, LogChannel>): voidexports['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é.
Routing buckets
Prendre un routing bucket libre pour un monde séparé (un intérieur instancié, une maison à braquer) et le rendre.
Vérifications de connexion
Ajouter des vérifications que chaque joueur qui se connecte doit passer (listes blanches, bannissements), et déclarer que votre script en remplace un autre.