Quand quelqu'un arrive sur le serveur, il reçoit un rôle « en attente » et poste une capture de son profil Pokémon GO. Un modérateur valide d'une réaction, le bot renomme le membre et lui souhaite la bienvenue. Pour une sortie, /rdv ouvre un salon privé où l'on s'inscrit avec un bouton ; le salon disparaît le lendemain à minuit, heure de Paris. Chaque message rapporte un peu d'XP, et il y a un classement Pokémon GO mis à jour par capture d'écran. Le reste, ce sont des petits jeux, des sondages et l'annonce des nouvelles vidéos d'une chaîne YouTube.
Le bot ne demande jamais de position. Des captures, il n'enregistre en base que les stats lues, jamais l'image. La lecture passe par l'API Gemini, et seulement si une clé est configurée.
Aperçus reconstitués avec les vrais messages du bot et des données fictives, ce ne sont pas des captures de Discord.
L'annonce publiée par /rdv dans le salon des sorties.
/classement : le top 10 des membres par XP.
/niveau : la réponse n'est visible que par celui qui l'a demandée.
| Commande | Ce qu'elle fait | Qui |
|---|---|---|
/rdv |
Crée un salon temporaire pour une sortie (45 minutes par défaut) | Tout le monde |
/rdv-modifier |
Change le lieu, l'heure, la durée ou la description d'une sortie ouverte | L'organisateur, ou « Gérer les salons » |
/set-pogo |
Enregistre ton nom de dresseur et ton code ami | Tout le monde |
/classement-pogo |
voir le classement (niveau, XP, Pokémon capturés, distance, PokéStops, œufs), le rejoindre ou le quitter |
Tout le monde |
/niveau, /classement |
Ton niveau et ton XP ; le top 10 du serveur | Tout le monde |
/quiz, /pendu, /morpion, /devinette |
Qui est ce Pokémon, pendu, morpion, plus ou moins | Tout le monde |
/sondage |
Sondage à réactions, jusqu'à 10 choix (Oui / Non s'il n'y en a pas) | Tout le monde |
/help, /userinfo, /avatar |
Aide, profil d'un membre, avatar | Tout le monde |
/clear |
Supprime de 1 à 100 messages récents | « Gérer les messages » |
| Menu « Déplacer » sur un message | Déplace un message vers un autre salon ou un post de forum | « Gérer les messages » |
/embed, /say, /bingo |
Publie un embed d'information, fait parler le bot, publie l'image d'un bingo | « Gérer le serveur » |
/reset-joueur |
Efface tout ou partie des données d'un joueur | « Gérer le serveur » |
/test, /test-log |
Simulent une arrivée et affichent un exemple de log | « Gérer le serveur » |
- Il faut Node.js 22, une base PostgreSQL et un bot créé sur le portail développeur Discord, avec l'intent privilégié Server Members. Si tu mets une clé Gemini, active aussi Message Content.
- Copie
.env.exampleen.envet remplis-le (voir plus bas). npm installnpm run deployenregistre les commandes slash sur le serveur. À relancer quand une commande change.npm start
Avec Docker, remplace la dernière étape par docker compose up -d --build. Le docker-compose.yml ne lance que le bot : il le branche sur un réseau Docker externe mewnivers et attend une base PostgreSQL nommée db sur ce réseau (utilisateur et base rotom, mot de passe POSTGRES_PASSWORD).
Tout passe par .env, qui ne doit jamais être commité. Pour démarrer, quatre valeurs comptent :
| Variable | Rôle |
|---|---|
DISCORD_TOKEN |
Jeton du bot |
CLIENT_ID |
ID de l'application, utilisé par npm run deploy |
GUILD_ID |
ID du serveur |
DATABASE_URL |
Connexion PostgreSQL hors Docker. Avec Compose, elle est construite à partir de POSTGRES_PASSWORD |
Sans DATABASE_URL, le bot démarre quand même, mais sans profils Pokémon GO. Les rôles, les salons et les options (Gemini, YouTube, niveaux, statut) sont tous décrits dans .env.example, qui fait référence.
npm run check # syntaxe de src/ et scripts/
npm testLes deux tournent aussi en CI sur chaque pull request. Pour contribuer, lis CONTRIBUTING.md ; pour signaler une faille, SECURITY.md. La doc technique (base de données, embeds) est dans docs/.
Licence MIT. Projet de fans, sans lien avec Niantic ni The Pokémon Company.



