Skip to content

SuperCraft3M/Tropical

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🌴 Tropical — Bot Discord

Bot Discord officiel développé en JavaScript avec discord.js, conçu pour la gestion interne d'une entreprise GTA RP sur un serveur Discord (gestion RH, candidatures, absences, avertissements, réunions, etc.).


📋 Sommaire


✨ Fonctionnalités

  • 📨 Candidatures — Système complet de gestion des candidatures avec boutons interactifs, historique des refus et résultats dans des salons dédiés
  • 🏖️ Absences — Déclaration et suivi des absences avec dates de début/fin, attribution automatique du rôle absent, et notifications staff
  • ⚠️ Avertissements — Attribution d'avertissements (niveaux 1, 2 et 3) avec notifications dans un salon dédié et gestion des rôles associés
  • 👋 Événement d'arrivée — Message de bienvenue automatique lors de l'arrivée d'un nouveau membre sur le serveur
  • 📊 Organigramme — Mise à jour automatique d'un message d'organigramme dans un salon dédié
  • 🎮 Présence — Gestion de l'activité affichée par le bot
  • 📅 Réunions — Planification et annonce de réunions avec timestamps Discord, réactions de présence
  • 💰 Paie — Notification aux membres que leur paie est disponible (confirmation par bouton)
  • 🔴 Démission / Licenciement — Gestion des départs (volontaires ou non) avec mise à jour des rôles et base de données
  • 🔁 Auto-join des threads — Le bot rejoint automatiquement les nouveaux fils de discussion
  • 🔧 Redémarrage — Commande de redémarrage du bot réservée à la direction
  • Aide — Commande /help paginée listant toutes les commandes disponibles
  • 🏓 Ping — Affiche la latence entre Discord et le bot

✅ Prérequis


🚀 Installation

# Cloner le dépôt
git clone https://github.com/SuperCraft3M/Tropical.git
cd Tropical

# Installer les dépendances
npm install

⚙️ Configuration

Copier le fichier d'exemple de configuration et le remplir avec vos valeurs :

cp config.exemple.json config.json

Puis éditer config.json :

{
    "token": "VOTRE_TOKEN_BOT_DISCORD",
    "database": {
        "host": "HOTE_BDD",
        "user": "UTILISATEUR_BDD",
        "password": "MOT_DE_PASSE_BDD",
        "database": "NOM_BDD"
    },
    "guildId": "ID_DU_SERVEUR",
    "startMessageChannelId": "ID_DU_SALON_DE_DEMARRAGE",
    "tropicalRoleId": "ID_DU_ROLE_TROPICAL",
    "directionRoleId": "ID_DU_ROLE_DIRECTION",
    "washingtonRoleId": "ID_DU_ROLE_WASHINGTON",
    "blacklistRoleId": "ID_DU_ROLE_BLACKLIST",
    "absenceRoleId": "ID_DU_ROLE_ABSENCE",
    "absenceChannelId": "ID_DU_SALON_ABSENCES",
    "absenceStaffChannelId": "ID_DU_SALON_STAFF_ABSENCES",
    "demissionRoleId": "ID_DU_ROLE_DEMISSION",
    "licenciementRoleId": "ID_DU_ROLE_LICENCIEMENT",
    "avertissement1RoleId": "ID_DU_ROLE_AVERT_1",
    "avertissement2RoleId": "ID_DU_ROLE_AVERT_2",
    "avertissement3RoleId": "ID_DU_ROLE_AVERT_3",
    "avertissementsChannelId": "ID_DU_SALON_AVERTISSEMENTS",
    "candidature1RoleId": "ID_DU_ROLE_CANDIDATURE_REFUSE_1",
    "candidature2RoleId": "ID_DU_ROLE_CANDIDATURE_REFUSE_2",
    "candidatureChannelId": "ID_DU_SALON_CANDIDATURES",
    "candidatureMessageId": "ID_DU_MESSAGE_CANDIDATURE",
    "candidatureResultsChannelId": "ID_DU_SALON_RESULTATS_CANDIDATURES",
    "candidatureResultGlobalChannelId": "ID_DU_SALON_RESULTATS_GLOBAL",
    "enAttenteEntretienRoleId": "ID_DU_ROLE_EN_ATTENTE_ENTRETIEN",
    "responsableSectionsRoleId": "ID_DU_ROLE_RESPONSABLE_SECTIONS",
    "annonceChannelId": "ID_DU_SALON_ANNONCES",
    "annonceGlobalChannelId": "ID_DU_SALON_ANNONCES_GLOBAL",
    "payeChannelId": "ID_DU_SALON_PAYE",
    "organigrammeChannelId": "ID_DU_SALON_ORGANIGRAMME",
    "organigrammeMessageId": "ID_DU_MESSAGE_ORGANIGRAMME"
}

⚠️ Ne jamais committer votre fichier config.json — il est déjà ignoré par .gitignore.


▶️ Lancement

node index.js

Le bot se connectera d'abord à la base de données MySQL, puis à Discord. Un message de confirmation sera envoyé dans le salon configuré via startMessageChannelId.


🤖 Commandes

Toutes les commandes sont des slash commands Discord (/commande).

Commande Description Permission requise
/help Affiche la liste paginée de toutes les commandes Tout le monde
/ping Affiche la latence entre Discord et le bot Tout le monde
/absence add Déclare une absence pour un membre Secrétaire / Direction / Washington
/absence remove Supprime l'absence d'un membre Secrétaire / Direction / Washington
/avertissement add Attribue un avertissement (1, 2 ou 3) à un membre Direction / Secrétaire / Responsable / Chef de section
/avertissement remove Retire un avertissement d'un membre Direction / Secrétaire / Responsable / Chef de section
/candidature refuse add Ajoute un refus de candidature à un membre Recruteur / Direction / Secrétaire
/candidature refuse remove Retire un refus de candidature à un membre Recruteur / Direction / Secrétaire
/demission info Consulte les infos de démission d'un membre Direction / Chef de section
/demission modify Applique ou annule une démission Direction / Secrétaire / Washington
/licenciement info Consulte les infos de licenciement d'un membre Direction / Chef de section
/licenciement modify Applique ou annule un licenciement Direction / Secrétaire / Washington
/reunion Planifie et annonce une réunion Direction / Secrétaire / Washington
/paye Notifie les membres que la paie est disponible Direction / Washington
/restart Redémarre le bot Direction / Washington

📁 Structure du projet

Tropical/
├── index.js                    # Point d'entrée principal
├── config.json                 # Configuration (ignorée par git)
├── config.exemple.json         # Exemple de configuration
├── package.json
└── src/
    ├── candidature.js          # Système de candidatures (interactions, boutons)
    ├── guildJoinEvent.js       # Événement d'arrivée d'un membre
    ├── organigrame.js          # Mise à jour de l'organigramme
    ├── presence.js             # Gestion de la présence du bot
    ├── registerSlashCommands.js # Enregistrement des slash commands
    ├── threadAutoJoiner.js     # Rejoindre automatiquement les threads
    ├── images/                 # Ressources images
    └── commands/
        ├── absence.js          # Commande /absence
        ├── avertissement.js    # Commande /avertissement
        ├── candidature.js      # Commande /candidature
        ├── demission.js        # Commande /demission
        ├── help.js             # Commande /help
        ├── licenciement.js     # Commande /licenciement
        ├── paye.js             # Commande /paye
        ├── ping.js             # Commande /ping
        ├── restart.js          # Commande /restart
        └── reunion.js          # Commande /reunion

🛠️ Technologies utilisées

Technologie Version Usage
discord.js ^14.13.0 Interaction avec l'API Discord
mysql ^2.18.1 Connexion à la base de données MySQL
moment.js ^2.29.4 Formatage des dates
raraph84-lib ^2.16.4 Utilitaires (config, pool de requêtes, TaskManager)

👤 Auteur

Développé avec ❤️ par SuperCraft3M


Ce projet est destiné à un usage interne. N'oubliez pas de ne jamais exposer votre token Discord ou vos identifiants de base de données.


📄 Licence

Ce projet est distribué sous licence personnalisée. Voir le fichier LICENSE pour plus d'informations.

About

A discord bot for night club on GTA RP, to help people manage their discord

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors