docs: update CONTRIBUTING.md and README.md (#35)
Reviewed-on: https://git.kennel.ml/ConfrerieDuKassoulait/Botanique/pulls/35
This commit is contained in:
parent
812c40bb88
commit
e6659a4b41
2 changed files with 95 additions and 8 deletions
101
CONTRIBUTING.md
101
CONTRIBUTING.md
|
@ -11,8 +11,12 @@ une [Pull Request](https://git.kennel.ml/ConfrerieDuKassoulait/Botanique/pulls).
|
||||||
## Sommaire <!-- omit in toc -->
|
## Sommaire <!-- omit in toc -->
|
||||||
- [Recevoir de l'aide](#recevoir-de-laide)
|
- [Recevoir de l'aide](#recevoir-de-laide)
|
||||||
- [Langues](#langues)
|
- [Langues](#langues)
|
||||||
- [Ajouter une langue](#ajouter-une-langue)
|
- [Ajouter une langue](#ajouter-une-langue)
|
||||||
- [Mettre à jour une langue](#mettre-à-jour-une-langue)
|
- [Mettre à jour une langue](#mettre-à-jour-une-langue)
|
||||||
|
- [Projet](#projet)
|
||||||
|
- [Ajouter une commande](#ajouter-une-commande)
|
||||||
|
- [Ajouter un évènement](#ajouter-un-évènement)
|
||||||
|
- [Modifier du code](#modifier-du-code)
|
||||||
- [Soumettre ses modifications](#soumettre-ses-modifications)
|
- [Soumettre ses modifications](#soumettre-ses-modifications)
|
||||||
- [Gestion du dépôt](#gestion-du-dépôt)
|
- [Gestion du dépôt](#gestion-du-dépôt)
|
||||||
|
|
||||||
|
@ -21,12 +25,12 @@ Si tu as besoin d'aide, tu peux poser ta question sur
|
||||||
le [Discord](https://discord.gg/Z5ePxH4).
|
le [Discord](https://discord.gg/Z5ePxH4).
|
||||||
|
|
||||||
## Langues
|
## Langues
|
||||||
La langue par défaut est définie dans [`src/utils/client.ts`](src/utils/client.ts)
|
La langue par défaut est définie dans
|
||||||
dans `client.config.default_lang`.
|
[`src/utils/client.ts`](src/utils/client.ts) dans `client.config.default_lang`.
|
||||||
|
|
||||||
La langue par défaut fait office de solution de secours dans le cas où une traduction
|
La langue par défaut fait office de solution de secours dans le cas où une
|
||||||
est incomplète. On part donc du postulat que la langue par défaut contient toujours
|
traduction est incomplète. On part donc du postulat que la langue par défaut
|
||||||
toutes les chaînes de caractère dont le bot a besoin.
|
contient toujours toutes les chaînes de caractère dont le bot a besoin.
|
||||||
|
|
||||||
|
|
||||||
### Ajouter une langue
|
### Ajouter une langue
|
||||||
|
@ -48,6 +52,89 @@ doit être nommé `langue.json` avec `langue` suivant
|
||||||
> Pensez à vérifier si de nouvelles valeurs n'ont pas été ajouté dans
|
> Pensez à vérifier si de nouvelles valeurs n'ont pas été ajouté dans
|
||||||
le fichier langue par défaut, [cf. au dessus](#langues).
|
le fichier langue par défaut, [cf. au dessus](#langues).
|
||||||
|
|
||||||
|
## Projet
|
||||||
|
Le code se trouve dans le dosier [src/](./src/). Dans ce dossier il y a :
|
||||||
|
- [commands/](./src/commands/) qui contient toutes les commandes, rangés par
|
||||||
|
catégories
|
||||||
|
- [events/](./src/events/) qui contient tous les évènements, rangés par
|
||||||
|
catégories
|
||||||
|
- [locales/](./src/locales/) qui contient tous les fichiers de langue
|
||||||
|
- [modules/](./src/modules/) qui contient les extensions utilisé,
|
||||||
|
par exemple, pour utiliser la fonction `capitalize()` d'un string, il faut
|
||||||
|
importer le fichier `string.ts` qui se trouve dans le dossier
|
||||||
|
- [utils/](./src/utils/) qui contient toutes les fonctions utilitaires, rangés
|
||||||
|
par fichiers
|
||||||
|
|
||||||
|
Les dossiers [commands/](./src/commands/) et [events/](./src/events/)
|
||||||
|
contiennent chaquin un fichier `loader.js` qui charge respectivement
|
||||||
|
les commandes et les évènements dans le bot.
|
||||||
|
|
||||||
|
## Ajouter une commande
|
||||||
|
Pour ajouter une commande au bot, créez un fichier `nom-de-la-commande.ts` dans
|
||||||
|
un sous dossier de [`src/commands/`](./src/commands/). Vous pouvez créer une
|
||||||
|
nouvelle catégorie si votre commande n'entre dans aucune qui existe déjà.
|
||||||
|
|
||||||
|
Le contenu du fichier doit commencer comme suit :
|
||||||
|
```typescript
|
||||||
|
import { SlashCommandBuilder } from '@discordjs/builders';
|
||||||
|
import { Client, CommandInteraction } from 'discord.js';
|
||||||
|
import { getLocale, getLocalizations } from '../../utils/locales';
|
||||||
|
import { getFilename } from '../../utils/misc';
|
||||||
|
|
||||||
|
export default {
|
||||||
|
data: (client: Client) => {
|
||||||
|
const filename = getFilename(__filename);
|
||||||
|
return new SlashCommandBuilder()
|
||||||
|
.setName(
|
||||||
|
filename.toLowerCase())
|
||||||
|
.setDescription(client.locales.get(client.config.default_lang)
|
||||||
|
?.get(`c_${filename}_desc`) ?? '')
|
||||||
|
.setNameLocalizations(
|
||||||
|
getLocalizations(client, `c_${filename}_name`, true))
|
||||||
|
.setDescriptionLocalizations(
|
||||||
|
getLocalizations(client, `c_${filename}_desc`)
|
||||||
|
);
|
||||||
|
},
|
||||||
|
|
||||||
|
interaction: async (interaction: CommandInteraction, client: Client) => {
|
||||||
|
const loc = getLocale(client, interaction.locale);
|
||||||
|
|
||||||
|
/* Votre code ici */
|
||||||
|
},
|
||||||
|
};
|
||||||
|
```
|
||||||
|
Ce template vous permet de commencé rapidement votre commande car il contient
|
||||||
|
déjà tout ce qu'il faut pour le support des langues. Pensez bien à ne pas écrire
|
||||||
|
directement vos chaînes de caractères ici mais bien dans
|
||||||
|
les [fichiers de langues](./src/locales/), c'est à ça que la variable
|
||||||
|
`loc` sert.
|
||||||
|
|
||||||
|
Vous devez aussi ajouter **obligatoirement** :
|
||||||
|
- `"c_COMMANDE_name": "NOM"` au fichier de langue, avec `COMMANDE` le nom de
|
||||||
|
la commande et `NOM` le nom de votre commande.
|
||||||
|
- `"c_COMMANDE_desc": "DESCRIPTION"` au fichier de langue, avec `COMMANDE`
|
||||||
|
le nom de la commande et `DESCRIPTION` la description de votre commande.
|
||||||
|
|
||||||
|
## Ajouter un évènement
|
||||||
|
Pour ajouter le support d'un évènement au bot, créez un fichier
|
||||||
|
`nom-evenement.ts` dans un sous dossier de [`src/events/`](./src/events/). Vous
|
||||||
|
pouvez créer une nouvelle catégorie si votre commande n'entre dans aucune qui
|
||||||
|
existe déjà.
|
||||||
|
|
||||||
|
Vous pouvez préciser que l'évènement ne sera déclenché qu'une seule fois avec
|
||||||
|
```typescript
|
||||||
|
export const once = true;
|
||||||
|
```
|
||||||
|
|
||||||
|
De préférence, merci de mettre un lien en commentaire vers la documentation
|
||||||
|
de discord.js de l'évènement
|
||||||
|
([exemple ici pour l'évènement `ready`](./src/events/client/ready.ts#L3))
|
||||||
|
|
||||||
|
## Modifier du code
|
||||||
|
Quand vous modifiez quelque chose, pensez à mettre-à-jour les langues. Si vous
|
||||||
|
ne savez pas traduire dans une langue, ne vous forcez pas, supprimer simplement
|
||||||
|
la traduction.
|
||||||
|
|
||||||
## Soumettre ses modifications
|
## Soumettre ses modifications
|
||||||
1. Lorsque vous vous sentez confiant dans vos modifications, ouvrez
|
1. Lorsque vous vous sentez confiant dans vos modifications, ouvrez
|
||||||
une [Pull Request](https://git.kennel.ml/ConfrerieDuKassoulait/Botanique/pulls)
|
une [Pull Request](https://git.kennel.ml/ConfrerieDuKassoulait/Botanique/pulls)
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
# 🌱 Botanique 🌱
|
# 🌱 Botanique
|
||||||
|
|
||||||
[**Ajoute le bot à ton serveur**](https://discord.com/api/oauth2/authorize?client_id=965598852407230494&permissions=8&scope=bot%20applications.commands)
|
[**Ajoute le bot à ton serveur**](https://discord.com/api/oauth2/authorize?client_id=965598852407230494&permissions=8&scope=bot%20applications.commands)
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue