You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+71-22Lines changed: 71 additions & 22 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,45 +1,43 @@
1
1
# Bot Discord de la communauté
2
2
3
-
## Développement
4
-
5
-
### Prérequis
3
+
## Prérequis
6
4
7
5
- Node.js v16
8
6
- npm v7
9
7
- Un bot Discord installé sur une copie du serveur ES Community.
10
-
- Template: https://discord.new/T3mtuFqjR8Tm
8
+
- Template: https://discord.new/T3mtuFqjR8Tm
11
9
12
-
###Préparation de l'environnement
10
+
## Préparation de l'environnement
13
11
14
-
Installez les dépendances avec npm:
12
+
Installez les dépendances avec npm:
15
13
16
14
```console
17
15
npm ci
18
16
```
19
17
20
-
Créez un fichier `.env` avec votre token de bot:
18
+
Créez un fichier `.env` avec votre token de bot:
21
19
22
20
```env
23
21
DISCORD_TOKEN=votretoken
24
22
```
25
23
26
-
###Exécution du bot
24
+
## Exécution du bot
27
25
28
26
```console
29
27
npm start
30
28
```
31
29
32
30
Cette commande exécute le fichier `src/bot.ts`, qui démarre le bot. Les changements dans le dossier `src` sont observés par `nodemon` et le bot est redémarré automatiquement.
33
31
34
-
###Tests
32
+
## Tests
35
33
36
-
Le projet contient 3 scripts de test qui doivent passer pour tout commit poussé sur la branche `main`. Vous pouvez exécuter tous les tests avec la commande suivante:
34
+
Le projet contient 3 scripts de test qui doivent passer pour tout commit poussé sur la branche `main`. Vous pouvez exécuter tous les tests avec la commande suivante:
37
35
38
36
```console
39
37
npm test
40
38
```
41
39
42
-
####Tests TS
40
+
### Tests TS
43
41
44
42
```console
45
43
# Exécution des tests.
@@ -51,7 +49,7 @@ npm run test-coverage
51
49
52
50
Le framework de test [Jest](https://jestjs.io/) est utilisé pour exécuter les tests. Ceux-ci doivent être écrits en TypeScript dans le dossier `tests`. Essayez de conserver la même structure de dossiers que dans `src` pour organiser les tests.
53
51
54
-
####Lint
52
+
### Lint
55
53
56
54
```console
57
55
# Exécution d'ESLint
@@ -61,34 +59,85 @@ npm run lint
61
59
npm run lint-fix
62
60
```
63
61
64
-
Nous utilisons [ESLint](https://eslint.org/) ainsi que [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint) pour l'analyse statique du code.
62
+
Nous utilisons [ESLint](https://eslint.org/) ainsi que [TypeScript ESLint](https://github.com/typescript-eslint/typescript-eslint) pour l'analyse statique du code.
65
63
66
-
####Vérification des types TypeScript
64
+
### Vérification des types TypeScript
67
65
68
66
```console
69
67
npm run check-types
70
68
```
71
69
72
70
Cette commande exécute le compilateur TypeScript avec l'option `--noEmit`. Elle permet de valider les types de l'entier du projet, y compris sur les fichiers qui ne sont pas testés avec Jest.
73
71
74
-
### Écriture de fonctionnalités
72
+
## Écriture de fonctionnalités
73
+
74
+
### Commandes
75
+
76
+
Chaque commande doit être écrite dans un fichier du dossier `src/commands`. Ce
77
+
fichier doit instancier et exporter par défaut une instance de la classe `Command`,
78
+
en lui passant les paramètres de configuration suivants :
79
+
80
+
-`enabled`: boolean. Peut être mis à `false` pour désactiver la commande.
81
+
-`name`: string. Nom de la commande..
82
+
-`description`: string. Description de ce que fait la commande (en français).
83
+
-`options`?: object. Options (arguments) de la commande.
84
+
-`guildId`?: Snowflake. L'identifiant d'une guilde, si cette commande est spécifique à une guilde.
85
+
-`defaultPermission`?: boolean. Si la commande doit être activé par défaut quand le bot est ajouté à un serveur (`true` par défaut).
86
+
-`handle`: function. Fonction exécutée lorsque cette commande est appellée. Elle recevra un argument `context`, avec les propriétés :
87
+
-`args`: Objet correctement typé, contenant les options fournis par l'éxecuteur de la commande (abstraction d'`interaction.options`).
88
+
-`interaction`: Instance de CommandInteraction (discord.js).
0 commit comments