Bot Discord
Le bot Flitt connecte vos serveurs de jeu à votre Discord : statut en direct, relais du chat, notifications joueurs, vérification des comptes, synchronisation des rôles, RCON et modération. Toutes les fonctionnalités sont gratuites, sur toutes les offres.
1. Installer le bot
Trois étapes depuis le panel, aucun fichier à éditer.
- 1.Ouvrez Tableau de bord → Bot Discord et cliquez sur « Inviter le bot ». Vous devez être propriétaire ou administrateur du Discord.
- 2.De retour sur Flitt, le Discord apparaît dans la liste : ouvrez-le et liez un ou plusieurs de vos serveurs depuis l'onglet Serveurs.
- 3.Activez ce que vous voulez par serveur : embed de statut, relais du chat, notifications, relais des logs, RCON, synchro des rôles. L'addon prend le changement en compte sous 10 minutes (ou redémarrez-le).
2. Commandes
Joueurs et admins disposent de commandes slash dans Discord :
/linkObtenir un code pour lier son compte de jeu
/verifyVérifier le lien et recevoir le rôle vérifié
/profileComptes liés, temps de jeu et sessions
/status /players /serversStatut en direct et joueurs en ligne
/leaderboard /vote /linksClassement, votes, liens rapides
/rconExécuter une commande console (rôle configuré dans le panel)
/warn /kick /ban /timeout /clear /casesModération, répercutée en jeu pour les joueurs liés
3. Liaison des comptes
La liaison se fait par code : elle fonctionne à l'identique sur Garry's Mod, FiveM et Minecraft, sans connexion Steam :
- 1.Le joueur lance /link dans Discord et reçoit un code à 6 caractères (valable 10 minutes).
- 2.En jeu, il tape : !flitt CODE (chat) sur Garry's Mod et FiveM, /flitt CODE sur FiveM, /flitt link CODE sur Minecraft.
- 3.Le lien est stocké une fois par jeu ; la vérification, la synchro des rôles et la modération miroir s'en servent.
4. Synchro des rôles · Garry's Mod
ULX, SAM et les usergroups natifs sont détectés automatiquement. Si vous utilisez un autre système d'administration, répondez à ces hooks depuis n'importe quel fichier serveur (retournez true dans les setters pour indiquer à Flitt que c'est géré) :
-- Lire le rang du joueur (string)
hook.Add("FLT_DiscordGetGroup", "MyAdmin", function(ply)
return MyAdmin.GetRank(ply)
end)
-- Appliquer un changement de rang venant de Discord
hook.Add("FLT_DiscordSetGroup", "MyAdmin", function(steamId64, group, add, ply)
MyAdmin.SetRank(steamId64, add and group or "user")
return true
end)
-- Optionnel : bans émis depuis Discord
hook.Add("FLT_DiscordBan", "MyAdmin", function(steamId64, minutes, reason, ply)
MyAdmin.Ban(steamId64, minutes, reason)
return true
end)Dans le panel, associez chaque rôle Discord au nom de groupe utilisé par votre système (ex. superadmin, moderator, vip).
5. Synchro des rôles · FiveM
Par défaut Flitt lit les groupes ace (group.admin, group.mod…) et les écrit avec add_principal / remove_principal. Définissez la liste avec set flitt_discord_groups "owner,admin,mod,vip" dans server.cfg. Pour les jobs ESX/QBCore, vRP ou un menu admin custom, gérez ces events depuis n'importe quelle ressource :
-- Lire le rang du joueur (appelez reply avec une string)
AddEventHandler("flitt:discord:getGroup", function(source, identifier, reply)
reply(MyAdmin.GetRank(identifier))
end)
-- Appliquer un changement de rang venant de Discord (done(true) quand c'est géré)
AddEventHandler("flitt:discord:setGroup", function(identifier, group, add, done)
MyAdmin.SetRank(identifier, add and group or "user")
done(true)
end)
-- Optionnel : bans émis depuis Discord
AddEventHandler("flitt:discord:ban", function(identifier, seconds, reason, done)
MyAdmin.Ban(identifier, seconds, reason)
done(true)
end)identifier est la license du joueur (ou l'identifiant steam/discord si la license manque), la même valeur que Flitt affiche dans la liste des joueurs.
6. Synchro des rôles · Minecraft
LuckPerms est détecté automatiquement (lecture du groupe principal, écriture par parent add/remove). Sans LuckPerms, un joueur appartient au groupe X s'il possède la permission flitt.group.X, et les changements passent par des commandes console définies dans plugins/Flitt/config.properties :
# Groupes recherchés par Flitt, le premier trouvé gagne
discord.groups=owner,admin,mod,helper,vip
# Commandes exécutées quand Discord ajoute / retire un groupe
# Variables : {name} {uuid} {group}
discord.group-add-command=pex user {name} group add {group}
discord.group-remove-command=pex user {name} group remove {group}
# Optionnel : commande pour les bans émis depuis Discord
# Variables : {name} {uuid} {reason} {minutes}
discord.ban-command=tempban {name} {minutes}m {reason}Les développeurs de plugins peuvent aussi enregistrer leur propre provider : plugin.getDiscordManager().setGroupProvider(new MyProvider()) — implémentez fr.flitt.common.discord.GroupProvider (getGroup / setGroup).
Les boucles sont gérées pour vous
Un changement poussé depuis Discord n'est pas renvoyé comme événement jeu (et inversement), la synchro bidirectionnelle ne fait donc jamais de ping-pong. Chaque /rcon et chaque action de modération est journalisé dans les cas du guild et dans le journal d'audit du serveur.