Passer au contenu principal
TS-Lib alimente plusieurs scripts Toine et centralise les intégrations framework / garage / clés véhicule / notifications. Les contributions sont les bienvenues, notamment pour de nouveaux ponts, des correctifs et des améliorations d’ergonomie.

Quels types de contribution ?

  • Nouveaux ponts
    • Support d’un autre framework ou fork (fork qbcore, build ESX custom, etc.).
    • Support d’un autre système de garage.
    • Support d’un autre système de clés.
    • Support d’un autre système de notifications.
  • Amélioration des ponts existants
    • Gestion d’erreurs et validation des entrées plus robustes.
    • Meilleurs logs quand une dépendance manque ou est mal configurée.
    • Petites optimisations perfs ou BDD sans changer le comportement.
  • Utilitaires cœur
    • Helpers génériques clairement réutilisables entre plusieurs scripts.
    • Documentation et exemples de code.

Principes de conception

  • Responsabilité unique
    • TS-Lib doit rester petit et ciblé. Ce n’est pas un framework et ne remplace pas vos bibliothèques utilitaires.
  • Les ponts d’abord
    • La logique spécifique au framework vit dans :
      • Bridge.Framework.*
      • Bridge.Garages.*
      • Bridge.VehicleKeys.*
      • Bridge.Notify.*
  • Piloté par la configuration
    • Les nouvelles intégrations passent par ts-lib/config.lua :
      • Ajouter une clé dans Config.Data.Framework, Config.Data.Garages, Config.Data.VehicleKeys, ou Config.Data.Notify.
      • Ne pas coder en dur les noms de ressources hors de cette config.
  • Dégradation propre
    • Si la ressource cible n’est pas démarrée ou est mal configurée :
      • Logger clairement avec TS.ErrorPrint.
      • Échouer proprement sans faire planter les autres scripts.

Ajouter un nouveau pont (vue d’ensemble)

  1. Étendre la config Modifiez ts-lib/config.lua et ajoutez votre option :
    Config.Data.Garages['my-garage'] = 'my-garage-resource-name'
    
    Pour les frameworks, clés ou notifications, utilisez Config.Data.Framework, Config.Data.VehicleKeys ou Config.Data.Notify.
  2. Créer les fichiers du pont Suivez la structure existante :
    • Frameworks : shared/bridge/framework/<name>/shared.lua|client.lua|server.lua
    • Garages : shared/bridge/garages/<name>/shared.lua|client.lua|server.lua
    • Clés : shared/bridge/vehiclekeys/<name>/shared.lua|client.lua|server.lua
    • Notifications : shared/bridge/notify/<name>/client.lua (généralement côté client uniquement)
  3. Implémenter les fonctions requises
    • Pour un garage :
      • Bridge.Garages.Server.Functions.IsVehicleOwned(plate, netId?)
      • Bridge.Garages.Server.Functions.SetVehicleOutsideState(plate, state)
    • Pour les clés véhicule :
      • Bridge.VehicleKeys.Client.Functions.SetDoorStatus(entity, lockStatus)
    • Pour les notifications :
      • Bridge.Notify.Client.Functions.Notify(message, type?)
    • Pour les frameworks :
  4. Protéger l’absence de ressources
    • Utilisez TS.Utils.IsRessourceLoaded (ou des natives FiveM) avant d’appeler d’autres ressources.
    • Loggez des messages utiles si quelque chose n’est pas démarré ou est mal configuré.
  5. Mettre à jour la doc
    • Ajoutez votre pont dans la section « Systèmes pris en charge » concernée.
    • Mettez à jour le tableau « Statut et tests » avec l’état initial (souvent Expérimental) et, si besoin, votre pseudo.

Flux pour les pull requests

  1. Fork du dépôt TS-Lib sur GitHub.
  2. Branche feature au nom clair (ex. feat/my-garage-bridge ou fix/esx-owner-query).
  3. Implémentez vos changements :
    • Restez focalisé et raisonnable en taille.
    • Évitez les refactors hors sujet dans la même PR.
  4. Testez sur au moins une combinaison réelle framework / garage / clés.
  5. Ouvrez une pull request :
    • Décrivez le problème et l’approche.
    • Listez les ressources externes (noms + versions si possible).
    • Joignez logs ou captures si utile.
En cas de doute sur la pertinence d’une idée, ouvrez une discussion ou contactez le support sur Discord.

Signaler des bugs et demander des fonctionnalités

  • Bugs
    • Incluez :
      • OS (Windows / Linux), framework et scripts principaux.
      • Erreurs console / F8 exactes.
      • Étapes de reproduction et, si possible, un repro minimal.
  • Demandes de fonctionnalités
    • Partez du cas d’usage (ex. « Je veux supporter le garage X ») plutôt que d’un nom de fonction.
    • Souvent la meilleure réponse est un petit helper générique utilisable par plusieurs scripts.
Vous pouvez tout envoyer via le Discord.
Last modified on April 1, 2026