Swan est un bot développé spécialement pour le serveur Discord de Skript-MC.
- Installez Node.js sur votre machine. Il vous faudra Node.js 12 ou supérieur.
- Téléchargez la dernière version stable, ou clonez ce dépôt pour tester les dernières modifications.
- Pensez à avoir une base de donnée MongoDB, le plus simple serait en local.
- Copiez le fichier
.env.example
vers.env
et remplissez-le. - Sur le Portail des développeurs Discord, activez les options
Server Members Intent
etPresence Intent
de l'application. - Exécutez la commande
npm i
pour installer les dépendances nécessaires. - C'est parti ! Exécutez la commande
npm run dev
(ounpm start
en production) pour démarrer Swan.
⚠️ Si vous êtes sur windows, il faudra utilisernpm run dev:win
ounpm start:win
pour que les commandes fonctionnent.
- 🐛 Vous avez aperçu un bug en utilisant Swan ?
- 💡 Vous avez une idée ou une suggestion ?
- 💬 Vous souhaitez nous faire part de quelque chose ?
Vous pouvez vous rendre dans le menu des issues et en créer une ; nous y jetterons un œil dès que possible ! Si vous n'êtes pas très sûrs de vous, vous pouvez nous en parler sur le Discord de développement.
Nos Pull Request (PR) sont ouvertes à toute contribution ! Vous pouvez créer un fork (= une copie) de ce dépôt et y faire vos modifications.
Voici quelques informations utiles avant de créer une Pull Request :
- 🔀 Faites vos modifications sur une nouvelle branche ! Ce sera plus simple ensuite pour tenir votre PR à jour.
- 🏷️ Créez votre PR vers la branche
v2
uniquement. - 📦 Ajoutez le moins de dépendances possible.
- 🚨 Respectez les règles ESLint ; vous pouvez vérifier avec la commande
npm run lint
. - ⚡️ Vérifiez qu'aucune vulnérabilité n'est présente ; via la commande
npm audit
. - ✅ Pensez bien à tester votre nouvelle fonctionnalité, autant que possible !
N'hésitez pas à venir discuter et tester les nouveautés sur notre Discord de développement ! Vous pouvez trouver des idées de choses à faire en regardant les projets en cours, dans l'onglet Projects, ou en regardant la liste des Issues.
Swan est un bot Discord développé en TypeScript (un dérivé de JavaScript avec un typage plus fort). Il utilise la librairie discord.js pour les appels à l'API Discord. Depuis la version 2, il utilise également le framework discord-akairo, par-dessus discord.js. Ce framework sert notamment à gérer les évènements, les commandes et les arguments...
Vous pouvez utiliser le bot pour votre propre serveur à condition de respecter la License (GNU-GPL-v3).
assets
: 🏞 Dossier où se trouvent les images utilisées.build
(pas sur GitHub) : 🏗 Dossier où se trouve le code transpilé de Swan, après avoir lancénpm run build
(ounpm start
).config
: 📑 Dossier où se trouvent tous les fichiers de configuration de Swan.patches
: 🩹 Dossier où se trouvent les patches des librairies (le scriptpost-install
modifie leur code directement dansnode_modules
).src
: 💻commands
: 💬 Dossier où se trouvent toutes les commandes, rangées dans des sous-dossiers correspondant à leurs catégories.inhibitors
: ⚙️ Fichiers exécutés avant qu'un message soit envoyé aucommandHandler
.listeners
: 👂 Dossier où se trouvent tous les gestionnaires d'évènement, rangés dans des sous-dossiers correspondant aux émetteurs.models
: 🗄 Fichiers des schemas mongoose.moderation
: 🔨 Dossier où se trouvent tous les fichiers concernant la modération, à l'exception des commandes (rangées danscommands
) et des tâches (rangées danstasks
).resolvers
: 🧷 Types customs pour les arguments des commandes.structures
: 📦 Différentes classes utilisées à travers Swan.tasks
: ⏱ Fichiers exécutés périodiquement (appelés des "tâches").types
: 🏷 Fichiers contenant les typings TypeScript nécessaires pour Swan.utils
: 🧰 Dossier contenant différentes fonctions utilitaires.
tools
: 📄 Petits outils que l'on peut utiliser vianpm run tools:<nom du fichier>
.typings
: 🏷 Fichiers contenant les typings TypeScript des librairies externes.