Repository navigation
v9.3
Kotbo v9.3
Kotbo v9.3 apporte un moteur de workflows complet compilé à la volée, l'intégration de la facturation Stripe avec cartes cadeaux et gestion d'essais gratuits, ainsi qu'un système complet de paris et de gestion de dette en points de clan.
Le RPG accueille les raids hebdomadaires instanciés et l'autel d'enchantement. La liaison de salons passe en topologie réseau multi-serveurs, les aperçus Open Graph sont désormais générés dynamiquement et l'outillage MCP s'enrichit de nouveaux outils d'automatisation et de contrôle d'accès.
Moteur de Workflows & Automatisations
Kotbo embarque désormais un moteur d'exécution événementiel permettant d'enchaîner conditions et actions complexes sous forme de recettes compilées.
-
Catalogue unifié de composants : Accès direct via
get_workflow_catalogà l'ensemble des déclencheurs Discord et temporels (OnMemberJoin,OnScheduleavec syntaxe cron), des conditions logiques (all,any, opérateurs de test) et des actions riches (SendMessage, attribution de rôles). -
Compilateur de recettes (
compileRecipe) : Les étapes linéaires, imbriquées ou temporisées (pauseswaitjusqu'à 30 jours) sont validées puis compilées directement en graphes d'exécution typés. -
Diagnostic & Traçabilité pas-à-pas : Suivi granulaire de chaque exécution exposant la durée par nœud, les données injectées et l'isolation des erreurs. Les workflows actifs n'ayant jamais tourné sont automatiquement signalés.
-
Outils MCP dédiés : Administration complète via agents IA (
get_workflows,get_workflow,create_workflow,update_workflow,set_workflow_enabled,delete_workflow).
Facturation Stripe & Abonnements
L'infrastructure commerciale de Kotbo est maintenant intégrée directement au bot et au dashboard via l'API Stripe.
-
Abonnements & Paliers automatiques : Découpage en offres
PLUS,PROetULTIMATE, attribuées dynamiquement selon la tranche d'utilisateurs du serveur. -
Sessions Checkout & Portail Client : Redirection sécurisée vers les pages hébergées par Stripe (aucun transit de coordonnées bancaires sur l'application) et synchronisation webhook idempotente (
/api/billing/webhook). -
Essais gratuits garantis : Verrouillage strict de l'essai de 15 jours par compte Discord et par serveur. La réservation temporaire est libérée automatiquement si le paiement est abandonné.
-
Système de cartes cadeaux : Possibilité d'offrir des mois d'accès à un serveur précis ou de générer des codes cadeaux sécurisés avec vérification d'éligibilité.
-
Onboarding tolérant : Les administrateurs peuvent configurer l'ensemble des salons, rôles et modules lors de l'accueil initial avant de valider leur abonnement.
Paris de Clan & Gestion de la Dette
Un nouveau module de jeu permet d'engager des points de clan lors d'événements communautaires.
-
Formats variés (
/paris) : Prise en charge des duels en tête-à-tête, des pools où le gagnant rafle la mise, et des affrontements par camps/équipes. -
Mises par joueur ou par camp : Prise en charge des modes
PER_MEMBERetPER_SIDE. -
Dettes de clan & Crédit : Possibilité d'autoriser les mises à découvert jusqu'à un plafond configurable. Le système sépare rigoureusement la part engagée (paris en cours) de la dette ferme (remboursée sur les gains futurs).
-
Arbitrage & Administration : Outils MCP et dashboard pour trancher un pari (
resolve_clan_bet), annuler avec remboursement complet (void_clan_bet) ou effacer une dette d'un membre (clear_clan_point_debt).
Écosystème RPG : Raids, Autel & Nouveaux Visuels
Le module RPG franchit un cap avec l'introduction des affrontements d'équipes et de l'artisanat avancé.
-
Raids de guilde hebdomadaires (
/raid) : Affrontement d'un boss hebdomadaire instancié par équipe, dont les points de vie s'adaptent à l'effectif. Les récompenses sont réparties au prorata des dégâts infligés, et le raid est soldé automatiquement en cas de fin de saison. -
Autel d'enchantement : Application et retrait de parchemins magiques sur les armes et armures équipées, avec calcul des probabilités de succès et conservation des enchantements lors du déséquipement.
-
Pictogrammes Lucide Pastel : Remplacement des émojis Unicode disparates par un set complet d'icônes vectorielles claires (équipements, raretés, jauges segmentées de vie, d'énergie et d'XP) optimisées pour contraster sur tous les styles de boutons Discord.
-
Quêtes d'équipe & Front de guerre : Nouvelles catégories de quêtes synchronisées avec les clans et affichage direct de la contribution RPG aux points de saison.
Largages Communautaires (Drops)
Un système interactif de largages fait son apparition pour dynamiser les salons textuels.
-
Ressources multiples : Déploiement de récompenses configurables en XP classique, XP RPG, pièces KotboCoins ou points de clan.
-
3 mécaniques de réclamation :
-
First: Le premier utilisateur à cliquer remporte le butin complet. -
Race: Un nombre prédéfini de gagnants se partagent des parts égales. -
Window: Fenêtre temporelle ouverte où chaque membre clique pour obtenir sa dotation. -
Sécurité de distribution : Contrôle de l'appartenance à un clan pour les points de clan et désactivation automatique si le module lié est éteint.
Refonte Réseau : Channel Links V2
Le système de liaisons de salons abandonne le modèle point-à-point au profit d'une architecture en réseau.
-
Groupes multi-serveurs : Possibilité de relier plus de deux salons et serveurs au sein d'un même groupe de discussion unifié.
-
Sens de transmission granulaire : Définition des modes d'émission par salon (
SEND_ONLY,RECEIVE_ONLY,BOTH). -
Diagnostic des permissions : Détection proactive des permissions manquantes pour le bot et pour le rôle
@everyone(gestion des webhooks, intégration de liens, emojis externes). -
Gestion automatique des sujets : Synchronisation en direct des topics de salon avec les invitations des serveurs partenaires.
Cartes Dynamiques Open Graph & oEmbed
Kotbo génère désormais ses propres aperçus sociaux pour les robots d'indexation.
-
Rendu d'images 1200x630 : Cartes visuelles générées à la volée pour les formulaires, profils publics, classements, tirages et concours.
-
Métadonnées oEmbed & theming : Injection de la couleur de thème (
theme-color) et du nom du serveur (author_name) mis en valeur au sommet des embeds Discord. -
Aiguillage robot transparent : Proxy Nginx redirigeant les bots sociaux vers l'API sans exposer de données privées ni impacter la navigation des utilisateurs.
Modération, Support & Administration
-
Contestations de sanctions par type : Possibilité d'arbitrer les sanctions contestées une par une (maintien, archivage, suppression définitive) et suivi des statistiques d'annulation par modérateur.
-
Verrouillage et archivage des tickets :
-
Nouvelles commandes
/ticket archive(passage en lecture seule) et/ticket unarchive. -
Protection anti-suppression temporaire ou permanente via
/ticket locket/ticket unlock. -
Consultation de l'historique personnel des anciens tickets directement depuis le bouton du panneau.
-
Relais configurable des notes de satisfaction dans un salon staff avec option d'anonymisation.
-
Diffusion planifiée d'annonces (Broadcasts) : Programmation d'annonces différées dans le temps, gestionnaire d'images hébergées, modèles réutilisables et rapports d'envoi détaillés serveur par serveur.
-
Audit administratif & Contrôle MCP : Journalisation d'audit pour toutes les actions sensibles (redémarrage de shards, gestion d'offres) et gestion des permissions d'accès au dashboard par rôle Discord via les outils MCP
get_dashboard_feature_accessetset_dashboard_feature_access.
What's Changed
- Fix/module gate etats historiques by @Intercalaire in #285
- Recette by @Intercalaire in #287
- Recette by @Klaynight-dev in #288
- Recette by @Klaynight-dev in #289
- Feat/declencheurs by @Intercalaire in #291
- Feat/declencheurs by @Intercalaire in #292
- Feat/declencheurs by @Intercalaire in #293
- Feat/declencheurs by @Intercalaire in #294
- Feat/declencheurs by @Intercalaire in #295
- Feat/declencheurs by @Intercalaire in #296
- feat(tickets): publie les avis de satisfaction en embed sur Discord by @Intercalaire in #298
- Feat/satisfaction embed logs by @Intercalaire in #299
- fix(database): retablit l'index unique des avis de satisfaction by @Intercalaire in #300
- fix(bot): convertit aussi les mises a jour venues d'un modal by @Intercalaire in #301
- perf(dashboard): allege le graphe reseau des interactions by @Intercalaire in #303
- feat(dashboard): remet les pseudos dans la nav securite by @Intercalaire in #304
- Fix/rappels reunion timezone by @Intercalaire in #305
- Fix/rappels reunion timezone by @Intercalaire in #306
- Fix/rappels reunion timezone by @Intercalaire in #308
- feat(meetings): fuseau horaire par reunion, choisi depuis le formulaire by @Intercalaire in #309
- Feat/declencheurs by @Intercalaire in #310
- fix(dashboard): refuse l'acces quand aucune guilde n'est resolue by @Intercalaire in #311
- Fix/bug by @Intercalaire in #314
- fix(salons): fils en double sur le sticky et page Salons ingerable module eteint by @Intercalaire in #315
- Fix/bug by @Intercalaire in #316
- Feat/clan retrait points by @Intercalaire in #317
- fix(clans): borne le solde negatif comme le solde positif by @Intercalaire in #318
- Fix/relecture recette by @Intercalaire in #319
- Fix/relecture recette by @Intercalaire in #320
- fix(meetings): controle les dates a la source et rend les refus lisibles by @Intercalaire in #321
- feat(clans): ajoute les paris entre membres en points de clan by @Intercalaire in #322
- Feat/paris points de clan by @Intercalaire in #323
- Feat/paris points de clan by @Intercalaire in #324
- fix(clans): traite les comptes lies comme une seule personne dans les paris by @Intercalaire in #325
- Feat/paris points de clan by @Intercalaire in #326
- fix(clans): repare la recherche publique, cassee des la premiere frappe by @Intercalaire in #327
- fix(clans): remplace la part du classement a credit par la dette moyenne by @Intercalaire in #328
- Feat/drops aleatoires by @Intercalaire in #329
- feat(paris): ajoute les pools, les equipes et les paris ouverts a tous by @Intercalaire in #330
- Feat/paris multi camps by @Intercalaire in #331
- Feat/paris multi camps by @Intercalaire in #332
- Feat/paris multi camps by @Intercalaire in #333
- feat(paris): distingue la dette ferme du credit engage dans les paris by @Intercalaire in #334
- Feat/dettes part ferme by @Intercalaire in #335
- fix(paris): fiabilise les primes de fin de saison des parieurs by @Intercalaire in #336
- feat(paris): annonce les primes du podium sur la page publique by @Intercalaire in #337
- fix(paris): lit les reglages de prime, jamais selectionnes en base by @Intercalaire in #338
- feat(rpg): personnalise le bestiaire et relie le rpg aux clans et aux niveaux by @Intercalaire in #339
- Feat/rpg boss customisation by @Intercalaire in #340
- Feat/rpg boss customisation by @Intercalaire in #341
- feat(rpg): regle le bestiaire et les prix par paliers de difficulte by @Intercalaire in #342
- feat(boss de raid) by @Intercalaire in #343
- feat(rpg): ouvre le raid a la main et sort la configuration rapide de la page by @Intercalaire in #344
- feat(rpg): ajoute les quetes RPG, personnelles et de clan by @Intercalaire in #345
- Feat/rpg bestiaire difficultes by @Intercalaire in #347
- feat(rpg): ouvre la page publique en solo et la rend lisible a la charge by @Intercalaire in #348
- fix(rpg): declare la page publique du RPG comme telle, elle rendait u… by @Intercalaire in #349
- Feat/rpg bestiaire difficultes by @Intercalaire in #350
- feat(rpg): habille la page publique d'icones Papicons plutot que d'emoji by @Intercalaire in #351
- feat(rpg): ouvre les points de clan aux quetes personnelles et cesse de les faire attendre by @Intercalaire in #352
- Feat/page clans unifiee by @Intercalaire in #353
- Feat/page clans unifiee by @Intercalaire in #354
- Feat/page clans unifiee by @Intercalaire in #355
- fix(dashboard): changer de langue ne defait plus la bascule clair/sombre by @Intercalaire in #356
- Feat/page clans unifiee by @Intercalaire in #357
- Feat/page clans unifiee by @Intercalaire in #358
- style(dashboard): pose le scotch sur toutes les cartes de clan by @Intercalaire in #359
- Fix/primes parieurs saison by @Intercalaire in #360
- feat(rpg): restitue les pièces de niveau lors du reset des profils by @Intercalaire in #361
- feat(dashboard): pointe les liens publics clans et RPG vers la page unifiee by @Intercalaire in #362
- Fix/tableau clans retours by @Intercalaire in #363
- fix(rpg): repare la gestion des guildes RPG autour du raid et des boss by @Intercalaire in #364
- fix(rpg): republie l'annonce du raid quand elle disparait by @Intercalaire in #365
- Fix/guildes rpg raid by @Intercalaire in #366
- Fix/guildes rpg raid by @Intercalaire in #367
- Fix/guildes rpg raid by @Intercalaire in #368
- Fix/guildes rpg raid by @Intercalaire in #369
- Fix/guildes rpg raid by @Intercalaire in #370
- Fix/guildes rpg raid by @Intercalaire in #371
- fix(marketplace): repare quatre chemins qui creaient ou detruisaient de la monnaie by @Intercalaire in #372
- Fix/guildes rpg raid by @Intercalaire in #373
- Fix/guildes rpg raid by @Intercalaire in #374
- feat(dashboard) by @Intercalaire in #375
- feat(mcp): expose les acces dashboard par role by @Intercalaire in #376
- Feat/liens salons multi serveurs by @Intercalaire in #377
- Feat/liens salons multi serveurs by @Intercalaire in #378
- Feat/liens salons multi serveurs by @Intercalaire in #379
- Feat/liens salons multi serveurs by @Intercalaire in #380
- Feat/liens salons multi serveurs by @Intercalaire in #381
- feat(dashboard): choix des salons exclus de la sante des salons et des logs by @Intercalaire in #382
- feat(log) by @Intercalaire in #383
- Fix/retablir centre de gestion by @Intercalaire in #384
- Fix/retablir centre de gestion by @Intercalaire in #385
- Fix/retablir centre de gestion by @Intercalaire in #386
- fix(dashboard): dire qu'il manque un role, plutot que d'annoncer une page introuvable by @Intercalaire in #387
- fix(dashboard): reconnaitre l'administrateur dont la session a vieilli by @Intercalaire in #388
- fix(dashboard): remonter la route du Centre de gestion, perdue a la fusion by @Intercalaire in #389
- Fix/retablir centre de gestion by @Intercalaire in #390
- feat(mcp): couper une cle quand son porteur perd ses droits by @Intercalaire in #391
- fix(dashboard): le Centre de gestion dit l'etat reel des modules by @Intercalaire in #392
- Fix/centre de gestion etat des modules by @Intercalaire in #393
- Fix/centre de gestion etat des modules by @Intercalaire in #394
- Recette centre de gestion by @Intercalaire in #395
- Recette by @Klaynight-dev in #397
- fix(dashboard): empecher le header de ModulePage de tronquer les actions by @Klaynight-dev in #398
- fix(docker): resynchroniser bun.bot.lock avec Prisma 7.10.0 by @Klaynight-dev in #399
Full Changelog: v9.2...v9.3