Skip to content

Skript-MC/Swan

Repository files navigation

Swan

Swan est un bot développé spécialement pour le serveur Discord de Skript-MC.

🚀 Installation

  • 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 et Presence 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 (ou npm start en production) pour démarrer Swan.
    ⚠️ Si vous êtes sur windows, il faudra utiliser npm run dev:win ou npm start:win pour que les commandes fonctionnent.

🔍 Rapport de bug et suggestions

  • 🐛 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.

⚠️ Si vous pensez avoir trouvé une faille de sécurité, ou un bug pouvant compromettre Swan, veuillez en faire part en envoyant un message privé sur discord à un des développeurs.

🔨 Développement et contributions

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.

ℹ️ Informations

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 3, il utilise également le framework Sapphire, 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).

📂 Organisation du projet

  • assets : 🏞 Dossier où se trouvent les images utilisées.
  • dist (pas sur GitHub) : 🏗 Dossier où se trouve le code transpilé de Swan, après avoir lancé npm run build (ou npm start).
  • config : 📑 Dossier où se trouvent tous les fichiers de configuration de Swan.
  • patches : 🩹 Dossier où se trouvent les patches des librairies (le script post-install modifie leur code directement dans node_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é au commandHandler.
    • 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 dans commands) et des tâches (rangées dans tasks).
    • 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 via npm run tools:<nom du fichier>.
  • typings : 🏷 Fichiers contenant les typings TypeScript des librairies externes.

🙏 Merci

👥 Développeurs

👷 Contributeurs