Se rendre au contenu

Avertissement

Néon est un projet en cours de développement. Certaines fonctionnalités peuvent être instables ou évoluer avec le temps. Nous faisons de notre mieux pour améliorer votre expérience et ajouter de nouvelles fonctionnalités.

Documentation Officielle de Néon 

1.🆕 Introduction

Bienvenue dans la documentation officielle de Néon !

Néon est un bot Discord polyvalent conçu pour simplifier et dynamiser la gestion de votre serveur. Que vous soyez un administrateur chevronné ou un utilisateur débutant, Néon vous propose une gamme complète de fonctionnalités gratuite pour automatiser vos tâches, modérer efficacement et offrir une expérience personnalisée à votre communauté.

        • Pourquoi choisir Néon ?

  1. 100% Français
    Néon a été conçu par et pour une communauté francophone. L'interface, les commandes, et les interactions sont intuitives et parfaitement adaptées à un public français.
  2. Gratuit & Accessible
    Aucune souscription cachée : toutes les fonctionnalités de Néon sont disponibles gratuitement. Le bot est là pour vous accompagner sans vider votre portefeuille.
  3. Des Fonctionnalités Complètes 🛠️
    • Modération pour maintenir l'ordre.
    • Personnalisation des messages (arrivées, départs, annonces).
    • Système de tickets pour une gestion efficace des demandes.
    • Économie, mini-jeux et musique pour divertir votre communauté.
    • Logs détaillés pour garder un œil sur l'activité.
  4. Une Touche d'Humour 😄
    Chez Néon, on croit fermement qu’un bot trop sérieux, c’est comme du beurre sans sel : fade. Vous trouverez donc dans certaines commandes et interactions une petite touche d'humour. L'objectif : simplifier sans ennuyer.

         Pour qui est fait Néon ?

  • Les administrateurs qui souhaitent organiser et sécuriser leur serveur.
  • Les communautés cherchant à se divertir grâce à des systèmes interactifs (musique, mini-jeux, etc.).
  • Les curieux qui veulent explorer et personnaliser leur espace avec des commandes avancées.

        • À quoi s'attendre ?

Ce guide vous expliquera étape par étape :

  1. L'installation et la configuration de Néon sur votre serveur.
  2. L'utilisation des différentes catégories et modules : modération, tickets, logs, annonces, etc.
  3. Des astuces pratiques pour personnaliser votre bot comme un pro.

        • Prêt à commencer ? 🚀

Découvrez comment installer Néon et profitez d’une gestion fluide et intuitive pour votre serveur Discord.

2.🛠️ Installation et Configuration  

Ajouter Néon à votre serveur

  1. Cliquez sur ce lien d'invitation.
  2. Autorisez les permissions nécessaires.
  3. Configurez le bot avec !setup.

Paramètres rapides

Pour une configuration rapide, Néon :

  • Identifie automatiquement des noms basiques de salons (bienvenue, annonces, sondages).
  • Crée les salons manquants et configure les paramètres par défaut.

Tapez la commande !setup et sélectionnez "Salon & Rôles" puis choisissez la "Configuration Rapide" en cliquant sur les boutons correspondants.​

Paramètres avancés

Personnalisez chaque aspect, comme :

  • Langue (fr, en)
  • Préfixe (!setprefix)
  • Salons et rôles associés (logs, tickets, etc.)

Exemple : !channelroleconfig

3.📜 Commandes générales

  • !help : Affiche un menu interactif des commandes.
  • !bi : Informations générales sur Néon.
  • !nuke : Supprime tous les salons et rôles du serveur.
  • !restore : Restore les salons et rôles du serveur à partir d'une sauvegarde.
  • !panel : Affiche la configuration actuelle du serveur.
  • !save et !backups : Sauvegarde et gestion des configurations.

4.⚙️ Configuration avancée

        • Paramètres généraux

Configurez les éléments principaux de votre serveur, comme :

  • Automodération : Off, Basic, Avancé, Strict.
  • Langue : fr ou en.
  • Nombre de tickets : 0 pour désactiver (choix disponibles : 0, 5, 10, 20, 30, 50). 

Commandes associées :

  • !setlang [fr/en]
  • !setprefix [préfixe]
  • !settickets [nombre]

        • Salons et rôles

Attribuez manuellement les salons et rôles :

  • Bienvenue (welcomeChannelID)
  • Logs généraux (commonLogsChannelID)
  • Annonces (announcementChannelID)
  • Tickets (ticketCategoryID, ticketRoleID)

Commande : !channelrolseconfig puis sélectionnez "Configuration Personnalisée"; vous procéderez étape par étape.

⚠️ Il est possible de mentionner les salons & rôles. Pour récupérer l'identifiant (ID) d'une catégorie, suivez notre guide ici.

        • Commandes personnalisées

5.🛡️ Modération

        • Bannissement

        • Mute & Avertissements

        • Automodération

Commandes disponibles :

  • !ban : Bannit un utilisateur.
  • !tempban : Bannit temporairement un utilisateur.
  • !warn : Ajoute un avertissement à un utilisateur.
  • !warns : Liste les avertissements d'un utilisateur.
  • !mute et !tempmute : Désactive les permissions de parler d’un utilisateur.
  • !unban et !unmute : Révoque un bannissement ou un mute.
⚠️ Refonte en cours pour les commandes liées aux warns.

6.📋 Logs

        •  Logs généraux

        • Logs de modération

        •  Logs de traffic

Commandes disponibles :

  • !ban : Bannit un utilisateur.
  • !tempban : Bannit temporairement un utilisateur.
  • !warn : Ajoute un avertissement à un utilisateur.
  • !warns : Liste les avertissements d'un utilisateur.
  • !mute et !tempmute : Désactive les permissions de parler d’un utilisateur.
  • !unban et !unmute : Révoque un bannissement ou un mute.
⚠️ Refonte en cours pour les commandes liées aux warns.

7.✍🏻 Messages personnalisés

        • Arrivée et Départ 👋

        • Annonces et Interactions 📢

        • Suggestions 💡

        • Sondages 📊

Messages personnalisables sous forme d'Embed :

  • Bienvenue (!setwelcomemessage)
  • Au revoir (!setgoodbyemessage)
  • Annonces (!setannouncemessage)
  • Sondages (!setpollmessage)
  • Suggestions (!setsuggestmessage)
  • Ticket (!setticketmessage)

Options disponibles dans un embed :

  • Couleur
  • Titre
  • Description
  • Miniature
  • Pied de page (Footer)

⚠️ Dans le futur, des options comme l’ajout de contenu (hors de l'embed) ou d'auteurs (URL,icone et nom)  seront intégrées.

8.🎟️ Tickets

        • Gestion des Tickets

        • Paramètres Avancés

Les tickets permettent une gestion structurée des demandes utilisateurs :

  • Limitation du nombre de tickets par utilisateur.
  • Messages personnalisés à l'ouverture et pour l'ouverture.
  • Suivi des tickets avec export possible des messages.
  • Suppression différée (24h à 48h).

⚠️ Actuellement en développement.

9.💰 Économie

        • Boutique et Inventaire 🛍️

        • Système de Niveau 📈

Fonctionnalités prévues :

  • Lecture depuis des plateformes comme SoundCloud.
  • Création de playlists serveur ou utilisateur.

⚠️ Actuellement en développement.  Ce module sera classique mais évolutif pour intégrer des options avancées.

10.🎭 Rôles automatisés

        • Rôle Réaction 🔄

        •  Auto-Role 🚀

Fonctionnalités prévues :

  • Lecture depuis des plateformes comme SoundCloud.
  • Création de playlists serveur ou utilisateur.

⚠️ Actuellement en développement.  Ce module sera classique mais évolutif pour intégrer des options avancées.

11.🌐 Fonctionnalités Sociales

        •  Annonces Sociales 🎥

        • Inter-Chat 🛰️

En cours de développement :

  • Notifications automatiques pour les publications sur YouTube ou Twitter (X).
  • Paramètres personnalisables pour chaque réseau social.

⚠️ Actuellement en développement.

12.🎲 Minis-Jeux

        • Jeux Rapides

        • Jeux Interactifs

En cours de développement :

  • Notifications automatiques pour les publications sur YouTube ou Twitter (X).
  • Paramètres personnalisables pour chaque réseau social.

⚠️ Actuellement en développement.

13.🎷 Musique

        • Lecture et Playlists

En cours de développement :

  • Notifications automatiques pour les publications sur YouTube ou Twitter (X).
  • Paramètres personnalisables pour chaque réseau social.

⚠️ Actuellement en développement.

14.🚨 Système de Rapports

        • Rapports d’Utilisation du Bot

        • Suivi et Gestion des Bugs

En cours de développement :

  • Notifications automatiques pour les publications sur YouTube ou Twitter (X).
  • Paramètres personnalisables pour chaque réseau social.

⚠️ Actuellement en développement.

15.🌐 NSB Core

NSB passe à la vitesse supérieure !  Vous pourrez très bientôt synchroniser directement les paramètres entre tous nos bots partenaires.

Note d'Architecture : Migration WebSocket L'écosystème NSB repose désormais sur une architecture hybride pour garantir une latence nulle. La diffusion des événements et la synchronisation inter-bots transitent exclusivement via le tunnel WebSocket. L'API REST classique reste active uniquement pour l'initialisation et la gestion propre à votre bot (mapping au démarrage, requêtes d'upsert et ping).

Bienvenue dans l'écosystème NSB (Néon Spinellia BCK-INC). Ce projet ambitieux a pour vocation de révolutionner la gestion des bots Discord en connectant plusieurs bots partenaires au sein d'un réseau commun et unifié.

        •  📖 Comprendre le projet NSB

Le but de NSB est simple : centraliser et standardiser la configuration de vos bots favoris.

Grâce à NSB, un administrateur de serveur Discord n'a plus besoin de naviguer entre 15 dashboards différents. Il peut configurer tous les bots membres du réseau depuis un seul et même endroit :

  • Soit via des commandes Discord communes exécutées sur n'importe quel bot membre.
  • Soit depuis le panel web NSB, accessible depuis la configuration serveur de n'importe quel bot partenaire.

        •   ℹ️ La Standardisation

Chaque bot a sa propre architecture. En interne, trois bots différents peuvent nommer leur module musical music_sys, audio, ou musique_bot. Sur le réseau NSB, le nom est unique (ex: music). L'API NSB permet à tout le monde de parler la même langue. Chaque développeur doit donc "mapper" ses modules internes avec les modules standards de NSB. Cela permet de piloter globalement l'état d'un module, ses sous-modules et ses paramètres de manière unifiée.

🤝 L'engagement NSB : En rejoignant le programme, les développeurs membres s'engagent à maintenir une rétrocompatibilité maximale et à proposer des fonctionnalités originales, tout en respectant l'architecture commune.

        •  📜 Politique de Gestion

Afin de garantir la cohérence et d'éviter les conflits entre les bots, une politique stricte est appliquée sur les modules.

  • Modules standardisés : L'API fournit une liste officielle de fonctions communes (logs, tickets, annonces, music...). Cela évite les doublons et garantit la compatibilité inter-bots.
  • 🛠️ Modules personnalisés : Vous êtes totalement libres de développer des modules propres à votre bot (sans les inscrire sur NSB). Cependant, pour qu'ils profitent de la synchronisation NSB, ils doivent être mappés à un module standard.
  • 🔒 Sécurité de la table : Par mesure de sécurité et pour garantir l'intégrité du système, la gestion globale de la table des modules standards est strictement réservée aux mainteneurs NSB.

        •  🛡️ Informations Générales & Sécurité

🔐 Authentification

Toutes les requêtes (à l'exception de la route publique /ping) nécessitent obligatoirement l'envoi de ces deux en-têtes HTTP (Headers) :

HeaderDescription
AuthorizationBearer VOTRE_TOKEN_NSB
nsb-bot-idL'ID Discord unique de votre bot appelant.

Codes d'erreurs d'authentification possibles :

  • 400 : ❌ ID du bot appelant manquant (nsb-bot-id).
  • 401 : ❌ Token d'authentification manquant ou invalide.
  • 403 : ❌ Bot appelant non autorisé ou Action refusée par le système.

🚦 Rate Limit (Limitation de requêtes)

Le routeur applique une limitation stricte basée sur l'authentification pour protéger l'infrastructure :

  • 55 requêtes / seconde pour le trafic authentifié valide.
  • 1 requête / seconde pour le trafic non authentifié.

Exemple de réponse en cas de dépassement (HTTP 429) :

{ "rep": { "message": "⛔ Trop de requêtes. Pour plus d'informations, nous vous invitons à lire la documentation : https://www.neon-inc.fr/documentation#table_of_content_heading_1_53.", "code": 429, "retryAfter": 60 } }

        •  🛣️ Architecture de l'API REST

URL de base : https://api.neon-inc.fr/nsb

MéthodeRouteQuery / BodyRéponses (Succès & Erreurs)
GET/ping(Optionnel : nsb-bot-id)200 : ✅ API Opérationnelle (+ timestamp)
GET/modules/is-standardizedQuery: ?module_name=...

200 : ✅ data: { isStandard: true }


403 : ❌ data: { isStandard: false }


500 : ❌ Erreur NSB

GET/modules/getQuery: (Filtres optionnels)

200 : ✅ Modules récupérés (+ data)


404 : ℹ️ Aucun module trouvé


500 : ❌ Erreur NSB

POST/modules/insertBody JSON: bot_id, server_id, module_name, coexist, description, color

200 : ✅ Module enregistré avec succès.


400 : ❌ Bad Request (champs manquants)


500 : ❌ Erreur NSB

PATCH/modules/updateBody JSON: bot_id, server_id, module_name, fields (Objet)

200 : ✅ Mise à jour réussie (ou aucun chgmt).


400 : ❌ Champs manquants ou invalides.


500 : ❌ Erreur NSB

📦 Structure de l'objet fields (pour les mises à jour) :

  • coexist : Booléen (Défaut : true).
  • description : String (Max 500 caractères, sinon ignoré/null).
  • color : String (Code Hexadécimal ex: #FF7700).
  • state : String (enabled ou disabled).

        •  💻 Exemples d'Intégration (Node.js)

Assurez-vous d'avoir défini votre variable d'environnement NSB_TOKEN.

🔍 A. Vérifier la standardisation et récupérer un module


require('dotenv').config();

const token = process.env.NSB_TOKEN // Variable d'environnement dans le fichier .env: NSB_TOKEN="TOKEN_RECU_PAR_NEON"

/**
 * Récupère les modules existants sur l'API NSB en fonction des critères donnés.
 * ℹ️ Si aucun module ne correspond, le code de retour sera 404.
 * 
 * @param {Object} client - Instance du client Discord contenant l'ID du bot
 * @param {Object} queryParams - Critères de recherche
 * @param {?string} [queryParams.bot_id] - ID du bot concerné
 * @param {?string} [queryParams.server_id] - ID du serveur Discord
 * @param {?string} [queryParams.module_name] - Nom unique du module
 * @param {?boolean|string} [queryParams.coexist] - Coexistence attendue (true, false, any)
 * @param {?string} [queryParams.color] - Couleur hexadécimale
 * @param {?string} [queryParams.description] - Description exacte
 * @returns {Promise<{ data: any, code: number, message: string }>}
 */
 
async function fetchModules(client, queryParams = {}) {
  const url = new URL('http://api.neon-inc.fr/api/nsb/modules/get');
  Object.entries(queryParams).forEach(([key, value]) => {
    if (value !== undefined && value !== null) url.searchParams.append(key, value);
  });

  const response = await fetch(url.toString(), {
    method: 'GET',
    headers: {
      Authorization: `Bearer ${token}`,
      'nsl-bot-id': client.user.id
    }
  });

  const result = await response.json();
  return { data: result.data, code: result.rep.code, message: result.rep.message };
}

✏️ B. La logique d'Upsert (Insertion ou Mise à jour)

Ce script vérifie l'existence du module et met à jour son état, ou l'insère s'il n'existe pas encore. Idéal pour synchroniser le changement d'état (la fonctionnalité actuellement déployée sur NSB). .

require('dotenv').config();

const token = process.env.NSB_TOKEN;

/**
 * Insère un nouveau module via l'API NSB.
 * ⚠️ Tous les champs obligatoires doivent être fournis sous peine de rejet.
 * 
 * @param {Object} client - Instance du client Discord contenant l'ID du bot
 * @param {Object} body - Données à insérer
 * @param {string} body.bot_id - ID du bot concerné - Obligatoire
 * @param {string} body.server_id - ID du serveur Discord - Obligatoire
 * @param {string} body.module_name - Nom unique du module - Obligatoire
 * @param {?boolean} [body.coexist] - Si le module peut coexister avec d'autres - TRUE par défaut
 * @param {?string} [body.description] - Description optionnelle - NULL par défaut
 * @param {?string} [body.color] - Couleur hexadécimale - '#FF7700' par défaut
 * @param {?string} [body.state] - État initial du module ('enabled' ou 'disabled')
 * @returns {Promise<{ data: any, code: number, message: string }>}
 */
 
async function insertModule(client, body) {
  const response = await fetch('http://api.neon-inc.fr/api/nsb/modules/insert', {
    method: 'POST',
    headers: {
      Authorization: `Bearer ${token}`,
      'nsl-bot-id': client.user.id,
      'Content-Type': 'application/json'
    },
    body: JSON.stringify(body)
  });

  if (!response.ok) return console.error('❌ Erreur POST : ', response.status);
  const result = await response.json();
  return { data: result.data, code: result.rep.code, message: result.rep.message };
}

✏️ C. Mettre à jour un module (PATCH)

Cette fonction permet de modifier les données d'un module déjà existant sur le réseau NSB.

require('dotenv').config();

const token = process.env.NSB_TOKEN;

/**
 * Met à jour un module existant via l'API NSB.
 * ⚠️ Le module doit exister au préalable.
 * 
 * @param {Object} client - Instance du client Discord contenant l'ID du bot
 * @param {Object} body - Données à mettre à jour
 * @param {string} body.bot_id - ID du bot concerné - Obligatoire
 * @param {string} body.server_id - ID du serveur Discord - Obligatoire
 * @param {string} body.module_name - Nom unique du module - Obligatoire
 * @param {Object} body.fields - Champs à mettre à jour (exemple : coexist, description, color, state)
 * @returns {Promise<{ data: any, code: number, message: string }>}
 */
 
async function updateModule(client, body) {
  const response = await fetch('http://api.neon-inc.fr/api/nsb/modules/update', {
    method: 'PATCH',
    headers: {
      Authorization: `Bearer ${token}`,
      'nsb-bot-id': client.user.id,
      'Content-Type': 'application/json'
    },
    body: JSON.stringify(body)
  });

  if (!response.ok) return console.error('❌ Erreur PATCH : ', response.status);
  const result = await response.json();
  return { data: result.data, code: result.rep.code, message: result.rep.message };
}

        •   🔌 Le Tunnel WebSocket (Temps Réel)

L'architecture NSB ne fonctionne pas en Peer-to-Peer direct entre les bots. L'API agit comme un routeur central (Middleman). Elle reçoit une requête HTTP de configuration, l'enregistre en base, puis utilise un tunnel WebSocket persistant pour pousser l'ordre de modification aux bots concernés en temps réel.

⚠️ Règle de sécurité stricte :  Une seule connexion WebSocket simultanée est autorisée par bot. Toute tentative de connexion multiple entraînera la fermeture forcée du tunnel et un rejet de votre token (4000, 4001, 4002).

​1. Authentification et Connexion

Pour ouvrir le tunnel d'écoute, votre bot doit se connecter à l'URL suivante en fournissant les en-têtes d'authentification requis.

  • Endpoint : wss://api.neon-inc.fr/ws/nsl
En-tête (Header)Description
nsb-bot-idL'identifiant Discord unique de votre bot.
AuthorizationBearer VOTRE_TOKEN_NSB.

​​2. Maintien de la connexion (Heartbeat)

Afin d'éviter les déconnexions silencieuses (timeouts réseau), le serveur NSL vous enverra automatiquement un signal ping toutes les 20 secondes.

Si vous utilisez une librairie standard (comme ws sous Node.js), vous n'avez rien à faire : votre client répondra automatiquement avec un pong pour maintenir le tunnel ouvert.

​3. Structure des données entrantes

Lorsque le routeur NSL vous transmet un ordre, vous recevrez un message au format JSON. Voici sa structure standard :

{
  "action": "ACTION_NAME",
  "module_name": "nom_du_module",​
  "server_id": "123456789012345678",
  "reqId": "id_unique_de_la_requete"​
}

(Note : le reqId correspond à l'ID unique de la requête).

​•  Action TOGGLE

{
  "action": "TOGGLE",
  "module_name": "logs",
  "server_id": "123",
  "state": "enabled",
  "reqId": "550e8400-e29b-41d4-a716-446655440000"
}


Lorsqu'un utilisateur modifie la configuration depuis le panel NSB ou via un autre bot, le routeur vous pousse l'événement en temps réel.

L'action principale du routeur est TOGGLE. Elle indique à votre bot qu'il doit basculer l'état d'un module spécifique (enabled ↔ disabled).

​4. L'accusé de réception (ACK)

C'est la mécanique vitale du réseau NSB. Dès que votre bot a fini d'exécuter l'action demandée en interne (ex: mettre à jour sa propre base de données locale), il doit impérativement renvoyer un ACK au routeur NSB via le tunnel WebSocket.

Cela permet au routeur de clôturer la promesse (Promise) en attente et de notifier l'utilisateur de la réussite de l'opération.

{
  "action": "ACK",
  "reqId": "id_unique_de_la_requete",
  "success": true
}

        •   🤝 Adhésion & Commandes Internes

Les commandes de gestion globale NSB sont accessibles directement sur Discord via le préfixe /nsb-core :

  • /nsb-core module-list → Liste les modules standards approuvés par le réseau.
  • /nsb-core module-suggest → Permet à un développeur de proposer la standardisation d'un nouveau module.
  • /nsb-core module-add → Ajout d'un module (Réservé aux mainteneurs NSB).
  • /nsb-core module-remove → Suppression d’un module (Réservé aux mainteneurs NSB).

Pour adhérer officiellement au projet et recevoir vos identifiants d'API, exécutez la commande /register sur les bots coordinateurs et suivez les instructions.

— L'équipe NSB

❓ FAQ et Assistance

Questions fréquentes :