📋 Dernière mise à jour — Juin 2026 · v3.2
NOUVEAU nouvelle fonctionnalité  ·  MISE À JOUR commande modifiée récemment
Doc complète : chaque commande liste ses options slash, sous-commandes et modals ci-dessous.
Nouveautés v3.2 :
  • /blacklist add — cascade IP (comptes liés blacklistés + bannis)
  • /poll · satisfaction ticket (salon 1511100323169833147)
  • /voicestats — stats + classement vocal
  • Vocal auto 1511849837975306393 au démarrage (plus besoin de /botvoc rejoindre)
Corrections v3.2 :
  • Giveaway : participants conservés après reboot
🧩

Patch Notes v3.2 · Juin 2026

Journal des nouveautés, corrections et ajouts récents.

🆕 v3.2 — Nouveautés
  • /blacklist add — cascade IP : tous les comptes liés à la même IP blacklistés + bannis (comme 3 warns)
  • /poll — sondages rapides (2–5 choix, boutons, durée 5 min → 24 h)
  • Satisfaction ticket — note 1–5★ + commentaire → salon 1511100323169833147
  • /voicestats — stats vocal + classement (data/voice-stats.json)
  • Vocal automatique — reconnexion au salon 1511849837975306393 au démarrage
ℹ️ Cascade IP : IP capturée via /capture-ip/:token (Discord ne donne pas l'IP aux bots).
🔧 Corrections v3.2
  • Giveaway : participants et embed réconciliés après reboot
  • Ticket MP : mod assigné seul en MP
📦 Commandes & technique v3.2
Nouvelles commandes
  • /poll · /voicestats
Mises à jour
  • /blacklist add — cascade IP
  • /closeticket — satisfaction ticket
  • /help — accueil v3.2
Fichiers techniques
  • util/ticket-feedback.js · util/polls.js
  • util/voice-stats.js · util/bot-voice.js
  • events/communityInteractions.js · events/voiceStateUpdate.js
  • BOT_HOME_VOICE_CHANNEL_ID (.env)
  • data/voice-stats.json
⚙️ Options slash — v3.2
/poll
  • question, options (requis) — choix séparés par |
  • duree, salon (opt)
/voicestats
  • statsmembre (opt)
  • toplimite 3–25 (opt)
/blacklist add
  • utilisateur, utilisateurs (IDs), fichier .txt (au moins une requise)
  • Blacklist l'ID + ban Discord si présent sur le serveur
  • Si IP connue : blacklist IP + tous les comptes liés (blacklist + ban)
  • Résumé : statut par compte (🔨 Banni, ⏳ N'est pas sur le serveur, 🔗 Compte lié (IP))
🤝

Serveurs de Confiance

Serveurs Discord partenaires — chaque carte affiche la version du bot déployée et un effet visuel unique (v3.2 cyan · v3.1 ambre · v3.0 violet · v2.0 gris · v0.0 legacy).

🧩 Légende des versions · Patch Notes v3.2
Voir les patch notes complètes →

L'effet visuel de chaque carte indique à quel point le serveur est à jour. Plus la version est récente, plus l'animation est premium.

✨ v3.2 — Dernière version Lueur cyan/violette pulsante, barre du haut animée et particules ✨ ⭐ ✦ 💎. Inclus : cascade IP, /poll, satisfaction ticket, /voicestats, vocal auto, tout le v3.1.
🟡 v3.1 — Quasi à jour Lueur ambre/or, barre dorée animée, particules en orbite 🌟 ✦. Tickets MP, /warn, giveaways persistants, statut alterné — sans v3.2 (/poll, cascade IP).
🟣 v3.0 — Stable avancé Lueur violette, balayage lumineux horizontal, nœuds ◇ ⬡ qui clignotent. /help, /botvoc, stats invitations, giveaway multi-gagnants, embeds modals.
🤖 v2.0 — Stable Effet sobre : lueur grise, halo discret, pulsation légère. Modération et tickets de base — sans les nouveautés v3.x.
💩 v0.0 — Obsolète Teinte marron « caca », léger tremblement, 💩 💨 qui montent et 🪰 qui volent. Très ancienne version — mise à jour fortement recommandée.
🌐 WorldLife RP
✦ Partenaire de confiance 🤖 Bot v2.0 · stable
Bot v2.0 — modération classique, tickets, protections de base. Pas de tickets MP ni commandes v3.x récentes.
Rejoindre →
XenoLeak
✦ Partenaire de confiance 🟣 Bot v3.0 · stable avancé
Bot v3.0/help, /botvoc, stats invitations, giveaways multi-gagnants, embeds modals. Effet violet + scan (pas le même que v3.1/v3.2).
Rejoindre →
XenoStudio
✦ Partenaire de confiance ✨ Bot v3.2 · dernière version
Bot v3.2 — référence — cascade IP, /poll, satisfaction ticket, /voicestats, vocal auto, + tout le v3.1. 62 commandes slash.
Rejoindre →
⚡ FeliCity FA
✦ Partenaire de confiance 💩 Bot v0.0 · obsolète
Bot v0.0 — version très ancienne. Mise à jour fortement recommandée vers v3.2.
Rejoindre →

Fonctionnalités Principales

🎤
Bot vocal v3.2
Au redémarrage, le bot rejoint auto le salon d'origine (1511849837975306393). /botvoc rejoindre pour changer · /botvoc quitter pour déconnecter.
📨
Stats invitations v3.0
/invite, /userinvite, /topinvite, /infoinvite — suivi des inviteurs, classement et stats (actifs, total, départs).
📊
Sondages v3.2
/poll — question + choix séparés par |, boutons de vote, résultats live et fin auto.
Satisfaction ticket v3.2
À la fermeture, le joueur note 1–5★ (+ commentaire). Les avis arrivent dans le salon 1511100323169833147.
🎤
Stats vocal v3.2
/voicestats stats et top — temps cumulé en vocal, classement hebdo du serveur.
Menu /help v3.2
Menu interactif v3.2 — nouveautés, vocal auto, cascade IP. 15 catégories (Communauté, Vocal, Modération…).
🔄
Sync auto v3.1
Déploiement automatique des slash commands à chaque démarrage du bot — plus besoin de lancer deploy-commands.js manuellement.
💬
MP ticket staff v3.1
/dmticket envoyer — le modérateur assigné envoie un MP au joueur depuis un ticket MP (message requis, utilisateur optionnel).
🖤
Blacklist IP en cascade v3.2
/blacklist add — blacklist + ban du compte ciblé, puis de tous les alts partageant la même IP enregistrée. Même logique que /warn à 3 warns. Ban auto à l'arrivée si ID ou IP blacklistés.
🛡️
Protections automatiques
Anti-spam, anti-mentions, anti-@everyone, anti-bot, anti-scam, anti-ping owners — activables par serveur dans data/settings.json.
🎁
Giveaways v3.1
/giveaway create — modal, gagnants (1–20), tirage auto, boutons participer/quitter, reroll. Persistance : participants sauvegardés dans data/giveaways.json et restaurés au redémarrage du bot.
⚠️
Warns structurés v3.1
/warn avec menu raison : salons inappropriés, insulte, ping staff, ou raison personnalisée. 3 warns → blacklist + ban + cascade IP (tous comptes liés).
👁️
Statut du bot v3.1
Alternance toutes les 10 min entre le nombre de membres (serveur GUILD_ID ou total) et « Pas envie de ticket ? DM moi ! » — personnalisable via PRESENCE_DM_TEXT et PRESENCE_ROTATE_MS dans .env.
📩
Tickets MP v3.1
Un joueur MP le bot → ticket mp-pseudo dans la catégorie dédiée. Bouton Prise en charge : seul le mod assigné répond en MP. Messages relayés des deux côtés. À la fermeture : MP automatique + délai 3 heures avant un nouveau ticket MP.
📝
Embeds sur mesure
/createembed et /createembedstatus — titre, image, boutons lien et description en modal multiligne.
Tickets : gestion de l'inactivité
Si un ticket reste inactif 3 jours, un rappel est envoyé à l'auteur. Après 5 jours sans réponse, le ticket est fermé automatiquement.
🎫
Tickets personnalisés avancés
Système de tickets avec menu de sélection, 7 catégories (AIDE, ACHAT, RAPPORT, SUGGESTION, PARTENARIAT, RECRUTEMENT, DÉNONCIATION), fermeture/suppression automatique, logs détaillés, permissions sécurisées et notifications staff.
Quand un ticket est fermé, seuls les admins peuvent encore voir le salon, tous les autres perdent l’accès.
👋
Message de bienvenue
Envoi automatique d'un message de bienvenue personnalisé dans le salon dédié à chaque nouvel arrivant.
Le message mentionne le membre, affiche le nombre de membres et le nom du serveur dans le titre.
📑
Logs & Journalisation
Logs webhook par catégorie : sanctions, blacklist, rôles, tickets, giveaways, embeds, commandes et général. Nouveau : historique des messages supprimés (contenu + auteur + salon) dans general. Chaque slash commande enregistre ses options ; modals et modlogs journalisés automatiquement.
👤
Modération Complète
Ban, kick, mute, timeout, warns avec raisons prédéfinies, modlogs et webhooks sanctions.
💾
Persistance des Données
Sauvegarde auto toutes les 10 min + backup. Giveaways actifs, tickets MP, settings et SQLite survivent au redémarrage.
📊
Statistiques
Suivi des modlogs, avertissements et strikes en temps réel.
🎨
Personnalisation
Créer des rôles, salons et configurer chaque protection.
🔒
Anti-Ping Avancé
Protégez les utilisateurs importants avec exceptions configurables.
📋

Liste Des Commandes

62 commandes slash documentées avec toutes les options. Utilise /help pour un menu interactif par catégorie (15 thèmes) — doc v3.2. Préfixe + pour certaines commandes owners.

Légende options : requis · optionnel · Modal = formulaire après la commande
📊 Communauté
/poll NOUVEAU
ManageMessages
Sondage rapide avec boutons — résultats en direct, fin automatique.
Options
  • question (Texte) requis
  • options (Texte) requis — 2 à 5 choix séparés par | (ex. Oui | Non)
  • duree (Choix) optionnel — 5m, 15m, 1h, 6h, 24h (défaut 1h)
  • salon (Channel) optionnel
❓ Aide
/help v3.2
Menu d'aide interactif synchronisé avec la doc v3.2 — embed d'accueil (nouveautés, corrections) + sélecteur de catégorie.
Options
  • Aucune — menu déroulant sur le message (ephemeral)
Accueil v3.2 : cascade IP · /poll · satisfaction ticket · /voicestats · vocal auto · rappel v3.1 · corrections.
15 catégories : Aide · Communauté · Modération · Tickets · Salons · Rôles · Blacklist · Informations · Invitations · Vocal · Emojis · Partenariat · Giveaways · Embeds · Utilitaires · Dangereux
🔧 Modération
/ban
BanMembers
Bannir un membre du serveur.
Options
  • membre (User) requis
  • raison (Texte) optionnel
/unban
BanMembers
Débannir un utilisateur.
Options
  • id (Texte — ID Discord) requis
/kick
KickMembers
Expulser un membre.
Options
  • membre (User) requis
  • raison (Texte) optionnel
/mute
ModerateMembers
Mute via rôle Muted.
Options
  • membre (User) requis
/unmute
ModerateMembers
Retirer le mute.
Options
  • membre (User) requis
/untimeout
ModerateMembers
Retirer le timeout Discord.
Options
  • membre (User) requis
/warn MISE À JOUR
KickMembers
Avertissement en base SQLite. 3 warns → blacklist + ban + cascade IP (tous comptes liés à la même IP enregistrée).
Options
  • membre (User) requis
  • raison (Choix) optionnel
    • Recherche dans un salon inapproprié
    • Demande d’aide dans un salon inapproprié
    • Drop dans un salon inapproprié
    • Insulte
    • Ping un membre du staff
    • Autre (raison personnalisée) → valeur custom
  • raison_perso (Texte) optionnel — obligatoire si raison = Autre ; sinon ignoré
/warnuser
KickMembers
Liste des warns d'un membre.
Options
  • membre (User) requis
/warnlist MISE À JOUR
KickMembers
Tous les warns du serveur · pagination · export .txt.
Options
  • Aucune — boutons ◀️ ▶️ 💾 Enregistrer
/warndelete
KickMembers
Supprimer un warn par numéro.
Options
  • membre (User) requis
  • numero (Texte) requis — numéro ou all
/clear
ManageMessages
Suppression en masse.
Options
  • nombre (Entier 1–99) requis
🎫 Tickets
/setup-tickets
ManageChannels
Publie le menu de tickets (7 catégories).
Options
  • Aucune — menu : aide, achat, rapport, suggestion, partenariat, recrutement, dénonciation
/addtoticket
ManageChannels
Ajouter un membre au ticket (salon courant).
Options
  • membre (User) requis
/removefromticket
ManageChannels
Retirer un membre du ticket.
Options
  • membre (User) requis
/closeticket MISE À JOUR
ManageChannels
Fermer le ticket courant (classique ou mp-). Envoie une enquête de satisfaction (1–5★) au joueur ; les avis sont publiés dans le salon 1511100323169833147.
Options
  • Aucune — boutons Rouvrir / Supprimer · MP satisfaction auto
/dmticket envoyer NOUVEAU
ManageMessages
Envoie un MP au joueur d'un ticket MP. Utilisable dans le salon mp-... ou avec utilisateur. Réservé au modérateur assigné (prise en charge).
Options
  • message (Texte) requis
  • utilisateur (User) optionnel — si hors du salon ticket
Tickets MP AUTO
Pas de slash commande : le joueur envoie un message privé au bot. Salon créé automatiquement. Boutons : Prise en charge, Fermer le ticket.
Flux : MP joueur → ticket Discord → mod prend en charge → messages relayés MP ↔ salon
🔒 Salons
/createchannel
ManageChannels
Créer un salon textuel.
Options
  • nom (Texte) requis
  • categorie (Catégorie) optionnel
  • description (Texte — sujet) optionnel
  • permissions_role (Texte — ID ou nom rôle) optionnel
  • permissions (Texte — ex: SEND_MESSAGES,READ_MESSAGE_HISTORY) optionnel
  • prive (Booléen) optionnel
/lock
ManageChannels
Verrouille le salon courant (@everyone ne peut plus écrire).
Options
  • Aucune
/hide
ManageChannels
Cache le salon pour @everyone.
Options
  • Aucune
/logs
Administrator
Salon de logs modération local (modlogs JSON).
Sous-commandes
  • setsalon (Channel) requis
  • clear — efface les modlogs
/maxmentions
Administrator
Limite de mentions par message (0 = désactivé).
Options
  • nombre (Entier) requis
👥 Rôles
/createrole
ManageRoles
Créer un rôle personnalisé.
Options
  • nom (Texte) requis
  • couleur (Texte — #hex ou aleatoire) optionnel
  • position_reference (Rôle) optionnel
  • position_type (Choix: Au-dessus / Au-dessous) optionnel
  • permissions (Texte — virgules) optionnel
/role
ManageRoles
Ajouter ou retirer un rôle.
Sous-commandes
  • addmembre + role requis
  • removemembre + role requis
/roleall
ManageRoles
Donner un rôle à tous les membres.
Options
  • role (Rôle) requis
/autorole
ManageRoles
Rôle automatique à l'arrivée.
Sous-commandes
  • setrole (Rôle) requis
  • remove — retire l'autorole
🖤 Blacklist
/blacklist add v3.2
ModerateMembers
Blacklister + ban le compte ciblé. Si son IP est enregistrée : blacklist IP + blacklist + ban de tous les autres comptes liés à cette IP sur le serveur.
Options
  • utilisateur (User) optionnel
  • utilisateurs (Texte — IDs séparés) optionnel
  • fichier (Attachment .txt) optionnel
Au moins une des 3 options est requise.
Comportement v3.2 : embed récapitulatif avec statuts (🔨 Banni, ⏳ N'est pas sur le serveur, 🔗 Compte lié (IP)).
IP : enregistrée via lien http://…/capture-ip/:token (util/ip-server.js, variable IP_SERVER_PORT dans .env). Sans IP capturée, seul l'ID Discord est blacklisté.
/blacklist remove
ModerateMembers
Options
  • utilisateur (User) requis
/blacklist list MISE À JOUR
ModerateMembers
Liste paginée + export .txt (💾 Enregistrer).
Options
  • Aucune
/banlist
BanMembers
Options
  • Aucune
/baninfo
BanMembers
Options
  • membre (User) requis
ℹ️ Informations
/memberinfo MISE À JOUR
Fiche complète (warns SQLite, strikes, modlog, rôles).
Options
  • membre (User) optionnel
  • recherche (Texte — ID, mention, tag) optionnel
/utilisateur
Infos basiques sur l'auteur de la commande (username, date d'arrivée).
Options
  • Aucune
/avatar
Options
  • membre (User) optionnel
/banner
Options
  • membre (User) optionnel
/serveur
Options
  • Aucune
/channelinfo
Options
  • Aucune — salon courant
/roleinfo
Options
  • role (Rôle) requis
/uptime
Options
  • Aucune
/ping
Options
  • Aucune
📨 Invitations
/invite
Voir vos stats : actives, total invités et membres partis.
Options
  • Aucune
/userinvite
Stats d'un membre : invitations actives, total invités et nombre de départs.
Options
  • membre (User) optionnel — défaut : vous
/topinvite
Afficher le classement des meilleurs inviteurs du serveur.
Options
  • Aucune
/infoinvite
Voir l'inviteur, les stats (actives/total/partis) et le classement du membre.
Options
  • membre (User) requis
🎤 Vocal
/botvoc
MoveMembers
Au démarrage, le bot rejoint automatiquement le salon d'origine (1511849837975306393, configurable via .env). /botvoc rejoindre pour le déplacer manuellement.
Sous-commandes
  • rejoindresalon (Vocal) optionnel — défaut : ton salon actuel
  • quitter — déconnecte le bot du vocal
Auto : au redémarrage du bot → salon 1511849837975306393 (BOT_HOME_VOICE_CHANNEL_ID dans .env).
/vckick
MoveMembers
Options
  • membre (User) requis
  • raison (Texte) optionnel
/vcmove
MoveMembers
Options
  • membre (User) requis
  • salon (Channel vocal) requis
/vcmute
MuteMembers
Options
  • membre (User) requis
/vsourdine
DeafenMembers
Options
  • membre (User) requis
/voicestats NOUVEAU
Temps cumulé en vocal — stats perso ou classement serveur (data/voice-stats.json).
Sous-commandes
  • statsmembre (opt)
  • toplimite 3–25 (opt, défaut 10)
😀 Emojis
/emoji
ManageEmojis
Sous-commandes
  • list — liste les emojis
  • addemoji requis, name optionnel
  • removeemoji (ID ou emoji) requis
  • infoemoji requis
🤝 Partenariat
/partenariat
ManageChannels
Options
  • nom (Texte) requis
  • utilisateur (User) requis
  • categorie (Catégorie) optionnel
/infopart
Rôle partenariat
Options
  • Aucune
/servpub
Rôle partenariat
Options
  • Aucune — envoie la pub XenoDev (message prêt à poster)
🎁 Giveaways
/giveaway create MISE À JOUR
ManageGuild
Créer un giveaway avec tirage auto, multi-gagnants et sauvegarde des participants (survit au redémarrage du bot).
Options slash
  • duree (Choix) requis — 1h, 3h, 6h, 12h, 1j, 3j, 7j, 14j
  • salon (Channel texte) optionnel
  • mention (User ou Rôle) optionnel
  • gagnants (Entier 1–20) optionnel — défaut 1
Modal : description (requis), prérequis (optionnel) — accents et emojis corrigés
/giveaway reroll MISE À JOUR
ManageGuild
Options
  • message (Texte — ID ou lien) requis
  • salon (Channel) optionnel
  • emoji (Texte — défaut 🎉) optionnel
  • gagnants (Entier 1–20) optionnel — défaut 1
📝 Embeds
/createembed
Embed en réponse à la commande.
Options slash
  • titre (Texte) requis
  • image (Fichier image) optionnel
  • buttons (Texte — label|url;label2|url2 max 5) optionnel
Modal : description (requis, multiligne)
/createembedstatus
Embed envoyé dans le salon.
Options slash
  • titre (Texte) optionnel — défaut « Statut des services »
  • image (Fichier) optionnel
  • buttons (Texte) optionnel
Modal : description (requis)
⚙️ Utilitaires
/refresh
Owner
Redéploie manuellement les slash commands (sync auto aussi au démarrage).
Options
  • Aucune
/commandaccess
Administrator
Sous-commandes
  • addrolerole requis
  • removerolerole requis
  • list
/servers
Owner
Options
  • Aucune
/guildcommands
Owner
Options
  • guildid (Texte) requis
/leaveguild
Owner
Options
  • guildid (Texte) requis
Aussi : +leaveguild ID
🔴 Commandes dangereuses
💣 /nuke
ManageChannels
Recrée le salon — historique effacé.
Options
  • Aucune — salon courant
⚠️ IRRÉVERSIBLE
📑

Système de Logs

Chaque action importante est envoyée sur un webhook Discord (embed coloré). Configuration dans config/webhook-logs-config.js — une URL par catégorie (ou la même pour tout regrouper).

Catégorie Ce qui est loggé
sanctionsBan, kick, mute, warn, timeout, vocal, clear…
blacklistAjout / retrait blacklist, cascade IP (v3.2), auto-blacklist 3 warns
roles/role, /roleall, /createrole, autorole
ticketsTickets classiques + tickets MP (création, prise en charge, fermeture)
giveawayCréation (modal), fin auto, reroll, multi-gagnants, restauration après reboot
embeds/createembed, /createembedstatus
commandsToutes les slash commands + options utilisées
ownerPingPing d'un owner protégé → timeout 120 min
nuke/nuke
soutienRôle Soutien (statut Discord)
generalLock, hide, partenariat, invitations, messages supprimés (contenu + auteur)…
errorsErreurs internes du bot
ℹ️ Les commandes slash enregistrent le nom complet (/giveaway create), l'utilisateur, le salon et toutes les options. Les modals (giveaway, embed) ont un log dédié. Les messages supprimés (manuel, bot ou bulk) sont loggés dans general avec le contenu sauvegardé en cache.
🛡️

Système de Protections

✅ Protections natives XenoProtect
ProtectionActivationComportement
Anti-spamantispam dans settings5 messages / 4s → warn auto · répétition identique
Anti-mentionsantimention + /maxmentionsBloque ou limite les mentions
Anti-@everyoneantieveryoneSupprime @everyone / @here
Anti-botantibotSupprime les messages des bots
Anti-scamantiscamFiltre liens / mots scam connus
Anti-ping ownersConfig anti-pingTimeout 120 min si ping interdit
Blacklist IP/blacklist add · /warn (3×)Blacklist ID + IP + ban en cascade des comptes liés (si IP capturée)
Verrou salon/lockBloque l'envoi de messages (@everyone)
⚙️ Clés settings.json (auto-mod sans slash)
CléTypeDescription
antispamboolAnti-spam (défaut : 5 msgs / 4s)
spamWindownumberFenêtre en ms (ex: 4000)
spamLimitnumberMessages max dans la fenêtre (ex: 5)
antimentionboolBloque toute mention
maxmentionsnumberMax mentions (0 = off, voir /maxmentions)
antilinkboolFiltre les liens
antieveryoneboolBloque @everyone / @here
antibotboolSupprime messages des bots
antiscamboolFiltre scam basique
lockdownboolÉtat lockdown (config serveur)
whiteliststring[]IDs utilisateurs immunisés
logChannelstringID salon logs modération
autorolestringID rôle attribué à l'arrivée
ℹ️ Comparaison avec des commandes ! classiques (autres bots) — ce qui n'est pas encore implémenté chez XenoProtect :
🛡️ Anti-raid / Sécurité (référence)
Fonction (réf.)StatutÉquivalent XenoProtect
!antiraid on/off❌ Absent
!lockdown [salon]⚠️ Partiel/lock · flag lockdown en config
!verification❌ Absent
!antinuke❌ AbsentPas de détection actions massives
!whitelist add/remove⚠️ Partielsettings.json · pas de slash dédié
📋 Logs / Surveillance (référence)
!snipe / !editsnipe❌ Absent
Logs webhook✅ Actif12 catégories — voir section Logs
👤 Membres & Auto-mod (référence)
!userinfo/memberinfo · /utilisateur
!alts
!automod badwords
!antilinks⚠️antilink en config
!antispamAuto-mod intégré
!antimentionsantimention + /maxmentions
!anticaps
🔒 Système Blacklist / IP v3.2
ℹ️ Détection de doubles comptes (v3.2) : avec /blacklist add ou /warn (3 warns), le bot blackliste l'ID Discord, bannit le membre s'il est sur le serveur, et si une IP est enregistrée pour ce compte :
  • Ajoute l'IP à la blacklist interne
  • Blacklist + ban tous les autres comptes associés à cette IP (ipAccounts dans data/settings.json ou SQLite)
  • À l'arrivée : ban auto si ID blacklisté ou IP du compte déjà enregistrée et blacklistée
⚠️ Limites : Discord ne donne pas l'IP au bot. L'IP doit être capturée via le lien web /capture-ip/:token. Un nouvel alt sans IP enregistrée ne sera pas bloqué par la blacklist IP à l'join. VPN / changement d'IP contourne le système. Ce n'est pas un ban IP officiel côté Discord — uniquement ban de comptes liés en base.
📍 Anti-Ping Avancé
✅ Les utilisateurs protégés peuvent se ping eux-mêmes et mutuellement.
  • Utilisateurs protégés (ne peuvent être pingés par n'importe qui)
  • Rôles autorisés (peuvent ping les utilisateurs protégés)
  • Salons autorisés (les pings sont permis)
  • Catégories autorisées (les pings sont permis)
⚙️

Installation et Hébergement

📋 Prérequis
  • Node.js v18+ recommandé (v16 minimum)
  • npm ou yarn
  • Un compte Discord Developer Portal
  • Un jeton de bot Discord
  • BOT_HOME_VOICE_CHANNEL_ID — salon vocal d'origine (défaut 1511849837975306393)
🚀 Installation Locale
# Clone le repository git clone <repo-url> cd BotXenoProtect # Installe les dépendances npm install # Configure le fichier .env echo "BOT_TOKEN=votre_token_ici" > .env # Lance le bot npm start
☁️ Hébergement
⚠️ Le bot doit fonctionner 24/7. Utilisez Heroku, Railway, Replit ou un VPS.
🔴 Les commandes destructives sont strictement limitées. Vérifie toujours avant exécution.
Option 1 — Heroku
heroku login heroku create mon-bot heroku config:set BOT_TOKEN=votre_token git push heroku main
Option 2 — Railway.app
# Connecter GitHub → Créer projet → Ajouter BOT_TOKEN → Deploy auto
Option 3 — VPS Ubuntu/Debian
curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash - sudo apt-get install -y nodejs npm install && echo "BOT_TOKEN=votre_token" > .env sudo tee /etc/systemd/system/xenoprotect.service > /dev/null <<EOF [Unit] Description=XenoProtect Bot After=network.target [Service] Type=simple User=botuser WorkingDirectory=/home/botuser/BotXenoProtect ExecStart=/usr/bin/node index.js Restart=on-failure [Install] WantedBy=multi-user.target EOF sudo systemctl enable xenoprotect && sudo systemctl start xenoprotect
📁 Structure des Fichiers
BotXenoProtect/ ├── commands/ # 62 commandes slash │ ├── mod/ # Modération, tickets, giveaway… │ ├── info/ # Infos, voicestats… │ └── util/ # Blacklist, poll, help, embeds, refresh… ├── config/ │ └── webhook-logs-config.js # URLs webhooks par catégorie ├── events/ # messageCreate, voiceStateUpdate, communityInteractions… ├── util/ │ ├── settings.js # Config serveur + modlogs │ ├── command-logs.js # Logs webhook automatiques │ ├── dm-tickets.js # Tickets MP + cooldown 3 h │ ├── ticket-feedback.js # Satisfaction ticket (1–5★) │ ├── polls.js # Sondages /poll │ ├── voice-stats.js # Stats vocal │ ├── bot-voice.js # Vocal d'origine, reconnexion auto │ ├── message-cache.js # Cache messages supprimés │ └── giveaways.js ├── data/ # settings.json, giveaways.json, voice-stats.json, sqlite… ├── deploy-commands.js # Déploiement slash (auto au démarrage) ├── index.js └── .env # BOT_TOKEN, GUILD_ID, BOT_HOME_VOICE_CHANNEL_ID…

Questions Fréquentes

Q: Comment fonctionne le système de tickets ?

Le bot propose un menu de sélection pour ouvrir un ticket selon 7 catégories : AIDE, ACHAT, RAPPORT, SUGGESTION, PARTENARIAT, RECRUTEMENT, DÉNONCIATION. Chaque ticket crée un salon privé, notifie le staff, et peut être fermé ou supprimé automatiquement. Toutes les actions sont loguées.

Q: Comment fonctionnent les tickets MP ?

Le joueur envoie un message privé au bot. Un salon mp-pseudo est créé. Un modérateur clique sur Prise en charge — seul lui peut répondre au joueur (MP ↔ ticket). Utilise /dmticket envoyer message:... si besoin. À la fermeture, le joueur reçoit un MP et doit attendre 3 heures avant d'en rouvrir un.

Q: Les messages supprimés sont-ils loggés ?

Oui. Chaque message supprimé (par un membre, un mod ou le bot) est enregistré sur le webhook general avec l'auteur, le salon, le contenu et les pièces jointes (cache 7 jours).

Q: Où sont envoyés les logs des actions ?

Via 12 catégories de webhooks (sanctions, blacklist, tickets, giveaways, embeds, commandes…). Chaque /commande loggue ses options ; les modals giveaway/embed aussi. Voir la section Logs et config/webhook-logs-config.js.

Q: Comment exporter les warns ou la blacklist ?

Utilise /warnlist ou /blacklist list, puis le bouton 💾 Enregistrer pour télécharger un fichier .txt (une ligne par entrée).

Q: Comment créer un giveaway ou un embed ?

/giveaway create — options duree (requis), gagnants (1–20), salon, mention, puis modal description + prérequis. Les participants sont enregistrés dans data/giveaways.json : un redémarrage ne coupe plus le concours. /createembedtitre (requis), image, buttons, puis modal description multiligne.

Q: Quelles raisons pour /warn ?

Menu raison : recherche / aide / drop dans un mauvais salon, insulte, ping un membre du staff, ou Autre avec raison_perso. Sans choix, la raison reste « Non spécifiée ».

Q: Le statut du bot change tout seul ?

Oui : toutes les 10 minutes (par défaut), le bot alterne entre « X membres » et un message d’invitation aux tickets MP. Personnalise avec PRESENCE_DM_TEXT et PRESENCE_ROTATE_MS dans .env.

Q: Comment créer un sondage ?

/pollquestion (requis), choix séparés par | (2 à 5), duree (5 min → 24 h). Les membres votent via boutons ; les résultats se mettent à jour jusqu'à la fin automatique.

Q: La satisfaction ticket, comment ça marche ?

À la fermeture (/closeticket ou bouton), le joueur reçoit un MP avec une note 1 à 5★. L'avis est publié dans le salon staff dédié (1511100323169833147 sur XenoDev).

Q: Où va le bot vocal au démarrage ?

Au redémarrage, il rejoint automatiquement le salon 1511849837975306393 (config BOT_HOME_VOICE_CHANNEL_ID dans .env). Tu peux aussi utiliser /botvoc rejoindre manuellement.

Q: Où voir toutes les commandes rapidement ?

Sur ce site (section Commandes) ou in-game avec /help : l'accueil résume les nouveautés et corrections v3.2, le menu déroulant liste chaque catégorie avec options et descriptions à jour.

Q: Le bot souhaite la bienvenue aux nouveaux membres ?

Oui ! Un message de bienvenue personnalisé est envoyé automatiquement dans le salon dédié à chaque nouvel arrivant.

Q: Mes données vont-elles être perdues si le bot redémarre?

Non. Sauvegarde auto toutes les 10 minutes + backup. Blacklist, settings, tickets MP, giveaways en cours (data/giveaways.json) et warns SQLite sont conservés.

Q: Comment modifier les utilisateurs protégés?

Modifiez le tableau DEFAULT_PROTECTED_USERS dans events/messageCreate.js. Les utilisateurs protégés ne peuvent être pingés que par les rôles autorisés.

Q: Où sont stockées les données?

Dans data/settings.json. Un backup est créé automatiquement dans data/settings.json.backup.

Q: Comment ajouter plusieurs utilisateurs à la blacklist?
/blacklist add utilisateurs:@User1 @User2 @User3 /blacklist add utilisateurs:123456789 234567890 345678901
Q: La blacklist ban-t-elle aussi les doubles comptes (même IP)?

Oui (v3.2). Si l'IP du membre a été capturée via /capture-ip/:token, /blacklist add blackliste et ban le compte ciblé et tous les autres comptes liés à cette IP. Même principe qu'à 3 warns avec /warn. Sans IP enregistrée, seul l'ID Discord est traité.

Q: Couleur aléatoire pour un rôle?
/createrole nom:MonRole couleur:aleatoire
Q: Le bot consomme beaucoup de ressources?

Non, il est optimisé et léger. Fonctionne bien même sur des serveurs avec peu de RAM.

Q: Comment restaurer les données depuis un backup?

Remplacez data/settings.json par data/settings.json.backup puis redémarrez le bot.

Q: Puis-je personnaliser les messages du bot?

Oui! Modifiez les fichiers des commandes en éditant les appels interaction.reply() ou message.channel.send().