LFF est une plateforme web connectée à un serveur Minecraft et à Discord permettant de gérer et afficher des classements dynamiques : 💎 Crystaux, ⚔️ PVP, 🪙 IsCoin, 🥚 Dragon Egg, 🔷 Beacon et 🧽 Sponge.
Les utilisateurs peuvent se connecter via Discord pour :
- Ajouter ou retirer leurs points selon leurs rôles
- Consulter les classements hebdomadaires
- Visualiser l’historique de chaque type de classement
Les administrateurs disposent d’un dashboard dédié pour modifier les scores, lancer de nouveaux classements et surveiller l’activité.
-
🔐 Connexion sécurisée via Discord OAuth2
-
📊 Profil utilisateur avec graphique QuickChart affichant :
- Total de chaque type de points
- Progression semaine par semaine
- Classement actuel
-
🖼️ Avatar & pseudo Discord automatiquement synchronisés
-
Visualisation en temps réel des classements :
- Crystaux
- PVP
- IsCoin
- Dragon Egg
- Beacon
- Sponge
-
Historique complet par type de classement
-
Page dédiée aux tops hebdomadaires / mensuels
Selon leur rôle Discord, les utilisateurs peuvent :
- Ajouter des points
- Retirer des points
- Voir en direct leur score mis à jour
Avec des messages dynamiques contextualisés (messages.js).
-
Gestion de tous les tops (activation, démarrage, fermeture)
-
Édition manuelle des scores
-
Visualisation détaillée de chaque utilisateur
-
Audit trail :
- Qui modifie ?
- Quand ?
- Quel type ?
Basé sur les rôles Discord :
| Rôle | Permissions |
|---|---|
ROLE_GANG |
Modifier crystaux, pvp |
ROLE_ISLAND |
Modifier iscoin, dragonegg, beacon, sponge |
ROLE_STAFF |
Accès complet (ignore les restrictions) |
Chaque modification déclenche un log :
- Ajout de points
- Suppression de points
- Création d’un classement
- Fermeture d’un classement
- Anomalies détectées
Affiche le classement du type sélectionné.
Permet aux utilisateurs (selon rôle) de :
- Ajouter des points
- Retirer des points
Exemple :
/points option:add type:crystaux amount:50
Affiche le temps de fonctionnement du bot.
Affiche la liste des commandes disponibles.
Consulter les anciens classements et naviguer entre les semaines
Visualisation en temps réel, filtrable par catégorie.
Contient :
- Votre avatar Discord
- Vos scores cumulés
- Votre classement global
- Un graphique QuickChart généré automatiquement
Liste de tous les tops terminés, consultables individuellement.
Gestion complète :
- Modifier les scores d’un utilisateur
- Lancer / terminer un classement
- Vérifier les logs
- Surveiller les événements récents
LFF intègre désormais un système de tickets Discord avancé, entièrement géré via l’API Discord (sans discord.js), permettant une gestion propre, sécurisée et automatisée des demandes utilisateurs.
-
Les utilisateurs ouvrent un ticket via un menu déroulant (Select Menu).
-
Chaque choix correspond à une raison spécifique :
- 💎 Rejoindre le Gang LFF
- 🏝️ Rejoindre l’île de FireDroX
Lors de la création :
-
Un salon privé est automatiquement créé
-
Le salon est placé dans une catégorie dédiée
-
Les permissions sont configurées dynamiquement :
- accès au membre
- accès au rôle concerné (gang / île)
- accès staff
-
Un message par défaut interactif est envoyé dans le ticket
🔒 Anti double ticket : Un utilisateur ne peut pas ouvrir plusieurs tickets en même temps pour la même raison.
-
Un ticket fermé peut être réouvert via un bouton
-
Les permissions sont restaurées automatiquement
-
Le topic du salon est mis à jour en conservant :
- le propriétaire
- la raison initiale
- l’historique des dates (ouvert / fermé / rouvert)
-
Un bouton Fermer déclenche une confirmation
-
Une fois confirmé :
- les permissions sont retirées à tous les membres
- le salon est renommé (
fermé-<id>) - le topic est mis à jour avec la date de fermeture
Avant suppression :
- Le ticket est automatiquement archivé
- Tous les messages sont exportés en HTML 100 % fidèle à Discord
L’export inclut :
- messages texte
- embeds complets (titre, description, fields, footer, couleurs…)
- avatars
- horodatage
- mise en forme identique à Discord (dark mode)
📄 Le fichier HTML est envoyé dans un salon de logs dédié.
- Export autonome (aucune dépendance externe)
- CSS Discord-like intégré
- Compatible hors ligne
- Lisible et partageable
Idéal pour :
- archivage staff
- modération
- historique de recrutement
-
Gestion 100 % API Discord
-
Interactions :
- Slash commands
- Select menus
- Buttons
-
Routing propre des interactions (
custom_id) -
Séparation claire :
tickets/create.jstickets/close.jstickets/reopen.jstickets/delete.jstickets/confirm.js
-
Utilisation de
fetchnatif -
Aucune dépendance à
discord.js
- Backend : Node.js + Express.js
- Base de données : Supabase (PostgreSQL)
- Frontend : React.js
- Auth : Discord OAuth2
- Graphiques : QuickChart
- Hébergement : Render + Supabase
- Commands via API Discord (sans discord.js)
- Signature vérifiée via
verifyKeyMiddleware - Gestion 100% manuelle des réponses
# Clone du projet
git clone https://github.com/FireDroX/LFF.git
cd LFF
# Installation des dépendances
npm install
# Lancement du serveur backend
npm run dev
# Install des commandes du bot discord
npm run register
# Lancement du frontend
cd ./client
npm run startCrée un fichier .env :
PORT=Celui que vous voulez
DISCORD_CLIENT_ID=...
DISCORD_CLIENT_TOKEN=...
DISCORD_CLIENT_SECRET=...
DISCORD_CLIENT_PUBLIC_KEY...
DISCORD_GUILD_ID=...
DISCORD_ROLE_ISLAND=...
DISCORD_ROLE_GANG=...
DISCORD_ROLE_STAFF=...
DISCORD_LOG_CHANNEL_ID=...
FRONTEND_URL=...
SUPABASE_URL=...
SUPABASE_SERVICE_ROLE_KEY=...Les contributions sont les bienvenues !
- Fork ce dépôt
- Crée une branche feature (
git checkout -b feature/NouvelleFonctionnalité) - Commit tes modifications (
git commit -am "Ajout : nouvelle fonctionnalité") - Push ta branche (
git push origin feature/NouvelleFonctionnalité) - Ouvre une Pull Request
Merci de respecter la structure du code, les conventions (naming, mise en forme) et d’ajouter des tests si possible.
Développé avec ❤️ par FireDroX Intégration Discord et API Supabase par la communauté LFF.
🔗 GitHub : https://github.com/FireDroX
🌐 Site : https://lff.onrender.com