Déprécié
Veuillez considérer d'autres alternatives. Vous pouvez l'utiliser en permanence, mais aucun support ne sera fourni.

Utilisation de TypeScript, Next.js 13, React 18 et Chakra UI 2.0
Vidéo: https://youtu.be/idmpjt5pzvk
Démo en direct: https://demo-bot.vercel.app
| Lumière | Sombre |
|---|---|
![]() | ![]() |
En tant que modèle, vous devez personnaliser certaines choses pour le faire fonctionner
Cloner le repo
git clone https://github.com/fuma_nama/discord-bot-dashboard-next.git
Installer des dépendances
Nous préférons toujours PNpm
| NPM | Pnpm |
|---|---|
npm install | pnpm install |
Personnaliser les fichiers
La structure de fichiers de ce projet
| Chemin | Description |
|---|---|
| src / pages / * | Toutes les pages |
| src / composants / * | Composants |
| src / api / * | API Utils |
| src / config / * | Configurations communes |
Définir les fonctionnalités
Le tableau de bord a une prise en charge intégrée pour la configuration des fonctionnalités
Les utilisateurs peuvent activer / désactiver les fonctionnalités et configurer la fonctionnalité après l'activer
Personnalisez tous les types de Src / Config / Types / Custom-Types.ts
CustomFeatures est utilisée pour définir des fonctionnalités et des options, voir l'exemple pour plus de détails
Ouvrez SRC / Config / Fonctions
Vous pouvez voir comment une fonctionnalité est configurée
'feature-id' : {
name : 'Feature name' ,
description : 'Description about this feature' ,
icon : < Icon as = { BsMusicNoteBeamed } /> , //give it a cool icon
useRender : ( data ) => {
//render the form
} ,
} La propriété useRender est utilisée pour rendre le panneau de configuration des fonctionnalités
Jetez un œil ici pour des exemples
Configurer les informations générales
Modifier src / config / commun.tsx
Configurer les variables d'environnement
Ces variables dans .env.example sont nécessaires
Vous pouvez définir les variables d'environnement en créant un fichier .env
Configuration du serveur backend
Afin de laisser le tableau de bord connecté avec votre bot Discord, vous aurez besoin d'un serveur backend
Vous pouvez l'implémenter dans tous les langages de programmation
Lisez ici pour un guide pour développer votre propre serveur
Fait!
Démarrez l'application par pnpm run dev (dépend de votre gestionnaire de packages)
Ensuite, vous devriez voir l'application démarrée dans le port 3000
Localisation | Formes
Nous utilisons les routes API de Next.js pour gérer l'autorisation
Portail des développeurs de discorde ouverte
Créez votre application OAuth2 dans https://discord.com/developers/applications
Dans <Your Application> -> oAuth2 -> Redirection
Ajouter une URL <APP_URL>/api/auth/callback vers les redirectes
Par exemple: http://localhost:3000/api/auth/callback
Ceci est requis pour l'autorisation
Login -> Discord OAuth -> API Routes -> Client
/api/auth/login )/api/auth/callback Le jeton Discord Access peut être expiré ou non autorisé par l'utilisateur
Nous aurons besoin de l'utilisateur à se connecter à nouveau après avoir obtenu une erreur 401 de l'API Discord
Le jeton de rafraîchissement ne sera pas utilisé, mais vous pouvez personnaliser le flux d'autorisation
Vérifiez Src / API / Bot.ts, il a défini une API intégrée pour récupérer les données
Vous pouvez utiliser express.js (Node.js), Rocket (Rust) ou n'importe quelle bibliothèque / langues pour développer votre propre serveur
Habituellement, le serveur exécute votre Discord Bot (dans le même programme)
De plus, vous pouvez utiliser Redis au lieu de vous connecter directement au serveur BOT
Node.js (TypeScript)
Le client passera son jeton d'accès via l'en-tête Authorization
Bearer MY_TOKEN_1212112
Vous pouvez l'étendre pour plus de fonctions
Get /guilds/{guild}
custom-types.ts > CustomGuildInfo )null si le bot n'a pas rejoint la guilde Get /guilds/{guild}/features/{feature}
custom-types.ts > CustomFeatures[K] ) Patch /guilds/{guild}/features/{feature}
config/features ) Post /guilds/{guild}/features/{feature}
Supprimer /guilds/{guild}/features/{feature}
Get /guilds/{guild}/roles
Get /guilds/{guild}/channels
N'hésitez pas à poser une question en ouvrant un problème
Vous aimez ce projet? Donnez une étoile à ce référentiel!