Releases: Virtual-Royaume/Royaume-Discord-Bot
V3.1.0
NOUVEAUTÉS
- Ajout de la possibilité de mentionner un membre avec la commande
/forum why
(@Steellgold #210) - Ajout de logs pour chaque commandes, events et actions divers (@Bluzzi #193)
- Mise en place de Vitest pour les tests unitaires (@Bluzzi #195)
CHANGEMENTS
- Ajout des versions preview de Discord dans la regex de récupération de lien pour
message-link-reaction
(@Steellgold #203)
BUGS
- Correction d'un crash avec la function
gqlRequest()
lorsque l'API GraphQL renvoie une erreur qui n'est pas au format JSON (@Bluzzi #207) - Correction d'une erreur lorsque la récupération des membres d'un serveur prend trop de temps (@Bluzzi #206)
- Le nombre de message envoyé lors du dépassement d'un certain cap s'affichera à nouveau (@Bluzzi #205)
- Correction d'un bug de synchronisation de la présence d'un membre entre les deux serveurs (@Unarray #196)
- Changement de l'intervalle entre chaque mise à jour des tiers d'activités (il était défini à 1 mois ce qui est trop dans plusieurs contextes) (@Bluzzi #189)
- Correction d'une erreur qui se produit quand on essaie d'éditer la réponse d'une interaction après 15 minutes (@Bluzzi #188)
- Le loader automatique des commandes ne fonctionnait pas sur Ubuntu à cause des séparateurs de chemin de fichier différent, ceci est corrigé (@Unarray #185)
REFACTOR
- Séparation des query et mutation GraphQL dans des fichiers
.gql
aux côtés des modules les utilisant (@Bluzzi #213) - Utilisation du package
rustic-error
pour la gestion des erreurs (@Bluzzi #212) - Meilleure dénomination des fonctions (@Steellgold #200)
- Suppression des derniers
export defaults
(@Steellgold #199)
DOCUMENTATION
- Recommandations automatiques d'extensions sur VSC, ajout de paramètres préconfigurés et de warning pour la version NodeJS utilisée (@Bluzzi #192)
FULL CHANGELOG
V3.0.0
V2.6.0
NOUVEAUTÉS
- Support du second Discord (Royaume Games) (@Bluzzi #180)
- Gestion des erreurs des requetes a l'API (@Unarray #176)
- Mise en place d'un Dockerfile pour avoir une meilleur gestion de l'environnement Railway (@Bluzzi #169)
- Lors de la création d'un post dans un salon forum, un message est envoyé avec une liste des posts similaires (@Steellgold #159)
CHANGEMENTS
- Suppression de la commande
/ask
, elle est remplacé par le bot GPT (@Steellgold #177) - Utilisation du rôle admin à la place de la permission admin pour vérifier l'accès à certaines fonctionnalités (@Bluzzi #166)
- La commande
/forum resolve
épingle maintenant le message de résolution du post (@Steellgold #157) - Suppression de la commande
/watch-together
car cette fonctionnalité est maintenant disponible nativement sur Discord (@Bluzzi #165)
BUGS
- Suppression du système de création automatique de salon vocal (@Bluzzi #179)
- Correction du système de preview du code mentionné dans un lien GitHub (@Unarray #173)
- Parfois la commande
/stats
crash du à un temps de réponse trop lent, ça ne sera plus le cas (@Unarray #175) - Correction de divers bugs avec à la commande
/inactive
(@Bluzzi #167) - Correction du fuseau horaire pour les événements ou message utilisant une date/heure (@Bluzzi #168)
DIVERS
- Ajout de template pour l'ouverture de nouvelles issues (@Steellgold #161)
- Mise en place de l'action
release-drafter
qui permet de générer automatiquement les releases (@KingDeadKnight #160)
FULL CHANGELOG
V2.5.0
NOUVEAUTÉS & CHANGEMENTS
- Ajout de la commande
/ask
qui permet d'interagir avec ChatGPT - Nous avons mis en avant les forums et amélioré leur utilisation
- Ajout de la commande
/forum why
qui envoie un message qui explique les avantages au fait d'utiliser les salons forums - Ajout de la commande
/forum rename
qui permet à tout participant d'un post de le renommer - Ajout de la commande
/forum resolve
qui permet de définir un post comme résolu, cela ferme le post et met en avant le message de résolution
- Ajout de la commande
- La commande
/member
affiche maintenant la bannière du membre s'il en a une - Ajout d'un mode sombre sur la commande
/stats
- Mise à jour de la commande
/inactive
(commande admin), elle affiche maintenant les membres inactifs un par un avec divers informations sur leur activité ainsi que des boutons pour pouvoir passer à l'inactif suivant/précédant ou le kick
CORRECTIFS
- Les commandes
/top-voice mois
et/top-voice total
ne sont plus inversé - Les messages des salons forums sont à nouveau pris en compte dans les statistiques
- Le message qui annonce un anniversaire affiche correctement l'âge du membre
- Afin d'éviter les crash sur le bot de test, certaines fonctionnalités qui nécessitent des autorisations spécifiques effectuent désormais une vérification avant d'être exécutées.
REFACTOR
- Nous avons maintenant trois fonctions type-safe pour obtenir les variables d'environnement (
getStringEnv()
,getNumberEnv()
etgetBooleanEnv()
) - Changement du support pour la communication avec notre API ou des API externe
- Nous utilisons maintenant le package "GraphQL Code Générator" pour générer les types GraphQL de notre API dynamiquement, plus besoin de typé manuellement les valeurs de retour et les variables
- Deux nouvelles fonctions sont disponible :
gqlRequest
etrestRequest
, elle sont mieux typé, adapté au nouveau générateur de code et elle ont une gestion d'erreur plus pertinente - Nous utilisons maintenant
fetch
à la place deaxios
- La commande
/watch-together
fonctionne à nouveau et utilise maintenant l'API stable de DiscordJS - Le paramètre
key
de la fonction utilitairemsg()
est maintenant typé - Mise à jour vers NodeJS 18 et ES2022
- Nous utilisons maintenant le
--watch
de NodeJS 18 à la place denodemon
- Les commandes et events ont maintenant une propriété custom permettant de l'activer ou de la désactiver en mode développement
V2.4.0
MODE PUBLIC
Ajout de la possibilité de switch entre le mode privé (le mode qu'on avait jusqu'à maintenant) et le mode public, en mode public on peut rejoindre le Discord sans vérification, l'objectif étant de retirer la potentielle barrière que peut représenter le salon de vérification sachant que notre Discord n'a pas encore de moyen de prouver sa qualité en dehors de son contenu interne.
Dans le futur, le mode privé sera de nouveau activé par défaut, mais nous pensons que notre communauté a besoin de ce changement à court terme pour trouver de nouvelles personnes passionnantes.
Malgré ce choix, il y aura toujours des tries chaque mois des membres inactifs, une attention particulière à chaque nouveau, etc. Si l'ambiance vient à changer ou qu'il devient difficile de gérer le Discord en mode public, nous pouvons à tout moment repasser en mode privé.
NOUVEAUTÉS & CHANGEMENTS
- Changements sur la commande
/member
- Ajout du rôle d'activité
- Ajout d'un indicateur pour savoir si on va augmenter, stagner ou diminuer d'un rôle d'activité le suivant
- Le temps de vocal est affiché en jour, heure, minute à la place d'afficher uniquement le nombre de minute total
- La présentation du Discord dans le salon vérification et les messages de bienvenue correspondent mieux à la direction que prend le Discord actuellement
- Les salons vocaux (public et privé) sont créé et supprimé automatiquement lorsqu'ils sont complet ou vide
- Ajouts de plusieurs commandes
/anniversaire next
: renvoie la prochaine date d'anniversaire d'un membre de notre communauté ainsi que son pseudo/emoji
: permet de proposer un vote pour l'ajout d'un émoji/roulette
: sélectionne aléatoirement une option parmi une liste définie par l'utilisateur (pratique pour choisir le jeu auquel on joue ce soir, faire des "pile ou face"...)
- La commande
/inactive
ne compte plus les membres non vérifié - Les commandes
/top-message
,/top-voice
,/anniversaire
,/main
et/presence
utilisent maintenant des sub-commandes ce qui les rend bien plus simple à utiliser
NOUVEAUTÉS & CHANGEMENTS (TECHNIQUE)
- Ajout du mode développement quand on lance le bot avec la commande
npm run dev
, on peut détecter le mode via les variables utilitairesisDevEnvironment
etisProdEnvironment
- Nous utilisons maintenant les variables d'environnement
.env
à la place d'un fichier de configuration JSON pour les tokens et informations sensible (vous pouvez retrouver les variables d'environnement sur notre Discord) - Nous avons maintenant une base de données et une API séparé pour le développement et la production
- Divers changements sur les packages que nous utilisons
- Utilisation de
axios
à la place denode-fetch
car il est mieux maintenu. Dans la version 18 de NodeJS, quandfetch
sera là par défaut, peut-être que nous retournerons dessus - Mise à jour vers DiscordJS V14
- Suppression du package
@discordjs/builders
car il est directement importé dans DiscordJS V14
- Utilisation de
CORRECTIFS
- Correction des réactions automatique aux messages (GitHub et lien Discord) qui ne fonctionnait plus dû aux nouvelles restrictions de Discord sur le contenu des messages
- Ajout de l'event
roleDelete
qui supprime automatiquement leMainRole
associé si il y en a un - Correction d'une erreur qui faisait crash le bot dans l'event
guildMemberAdd
quand un membre déjà existant en base de données rejoint le Discord - Les tasks, commandes et events se lance maintenant après que l'event
ready
soit exécuté, cela corrige de nombreuse erreurs
REFACTOR
- Amélioration de certains points avec TypeScript
- Utilisation du type utilitaire
Record
à la place de créé cette instruction manuellement ({ [key: type]: type }
) - Nous utilisons maintenant des
type
à la place desinterface
TypeScript pour tout ce qui n'est pas orienté objet
- Utilisation du type utilitaire
- Divers changements sur l'utilisation des fonctions d'API et de GraphQL
- Nous avons amélioré nos fonctions pour faire des requêtes (API ou externe) avec une meilleure gestion d'erreur et un meilleur typing
- Suppression du des "strings tags"
gql
, nous utilisons un commentaire à la place et nous recommandons d'utiliser une extension GraphQL sur son IDE pour avoir de la coloration syntaxique (voir README) - Ajout de typings pour les variables des requêtes GraphQL
- La method
SlashCommandChannelOption.addChannelTypes()
utilise maintenant l'enum
ChannelType
à la place de nombre magique (DiscordJS V14) - Mise en place d'une configuration pour le stockage des messages, ceci permet de se concentrer sur le code et pas sur les longues lignes de texte
- Nous avons amélioré les certaines de nos règles de syntaxe pour avoir un code plus harmonieux
REPOSITORY
- Du deploy on commit a été mis en place pour la mise en production
- Nous utilisons maintenant de labels plus pertinents pour notre utilisation
V2.3.0
NOUVEAUX RÔLES
Les anciens rôles ont était remplacé par des rôles moins hiérarchiques allants tout simplement de 5 à 1 qui seront définis automatiquement par le bot selon votre activité durant le mois à la place d'être défini par certains membres du Discord, cela permet d'avoir une évolution plus juste selon son activité réelle.
Le changement des rôles s'effectue chaque mois et il est basé sur votre activité durant ce mois avec la formule suivante -> nombre de message + temps de vocal en minutes = points d'activités
, les changements sont effectués comme ceci en fonction des points d'activités :
- les 30% qui ont le plus de points montent d'un rôle
- les 30% qui ont le moins de points baissent d'un rôle
- les autres gardent le même rôle
Le système reste pour l'instant très basique mais il pourra être amélioré pour être plus juste dans les futures mises à jour pour par exemple donner davantage de valeur aux messages selon le salon où ils sont envoyé, ajouter la possibilité de voter pour un message pertinent et cela boosterait les points d'activité d'un membre, etc.
NOUVEAUTÉS
- ajout de la sous-commande
/anniversaire list
pour voir la liste des anniversaires des membres - le format de la commande
/member
est plus sympathique et il affiche désormais la date d'anniversaire du membre si il l'a défini - il y a maintenant un âge minimum pour définir son anniversaire pour éviter les erreurs (date de naissance)
CORRECTIFS
- les annonces d'anniversaire se feront bien à minuit et non à 2h du matin
- il n'y aura plus d'annonce dans le général quand un nouveau membre dépasse les... 0 message
- l'affichage du code d'un lien GitHub s'effectuera correctement même quand les lignes sont inférieur à 5 ou supérieur au nombre de ligne de la page GitHub
CODE
- nous avons ajouté le ESLint du Royaume (https://github.com/Virtual-Royaume/Royaume-ESLint-Config), il faudra utiliser la commande
npm run eslint
pour voir les erreurs de syntaxe - nous utilisons maintenant SWC pour obtenir une compilation du TS en mode développement (
npm run dev
) jusqu'à 20 fois plus rapide - la version du bot s'affiche correctement au lancement lorsqu'on lance le build du bot directement avec la commande
node .
- nous utilisons à nouveau le package DayJS à la place des JS Date, il faudra l'utiliser pour la gestion de toutes les dates
- vous avez maintenant accès au bot de développement (token disponnible dans le README)
V2.2.0
NOUVEAUTÉS
- ajout de la commande
/anniversaire
qui permet de définir sa date de naissance, si vous le faite, un message sera envoyé dans le salon général le jour de votre anniversaire - le temps de vocal durant le mois est maintenant disponible, vous pouvez le voir sur les commandes
/member
et/top-voice
- ajout de la commande
/presence
qui permet de voir/ajouter/retirer les messages d'activité du bot qui change aléatoirement toutes les 10 secondes - quand vous envoyé par message un lien d'un message Discord ou d'une ligne GitHub, un message sera envoyé en dessous avec un aperçu du contenu de votre lien
CORRECTIFS
- les mini-annonces quand un membre dépasse un palier de message (1 000, 5 000, 10 000) sont de retour
- la commande
/inactive
fonctionne enfin correctement et elle prend maintenant en compte l'activité vocal durant le mois - il n'y aura plus de membre qui ne sont plus présent sur le serveur dans les listes des statistiques
CODE
- ajout de ESLint pour la syntaxe du code
- ajout du package node-fetch
V2.1.0
NOUVEAUTÉS
- l'activité du bot change toutes les 15 secondes avec des messages prédéfinit
- les chiffres des statistiques obtenu via les différentes commandes s'affichent maintenant dans un format plus lisible (exemple :
124 241
à la place de124241
)
CORRECTIFS
- quand un membre change de pseudo ou photo de profil, elle devrait être correctement mis à jour dans la base de donnée à présent
- les graphiques affichés par la commande
/stats
affiche correctement les textes et non des petit rectangles - les membres du serveur ne peuvent plus utilisé le systeme de vérification
- un membre accepté ou refusé via le systeme de vérification ne peut plus être accepté ou refusé à nouveau
- il y a maintenant une taille minimum pour les présentations dans le systeme de vérification
- les votes du bot ne sont plus compté dans le systeme de vérification
V2.0.0
NOUVEAUTÉS
- toutes les commandes sont maintenant des slash commandes, à la place de l'ancien prefix
-
on utilise donc un/
- la commande
/role
a reçu un tout nouveau design avec les nouveaux "select menu" de Discord - la commande
/stats
accepte maintenant un argument "historique" qui permet d'indiqué sur combien de jour on désire les stats (fini la limitation à 30) - le systeme de vérification a était refait avec les nouveaux "modal UI" de Discord
CORRECTIFS
- la commande
/watch-together
est de retour pour regarder des vidéos ensemble 🍿 - la commande
/member
n'affiche plus les salons qui n'existe plus et elle ne les affichera plus jamais - les commandes
/top-message
et/top-voice
n'affichent plus que les statistiques des membres encore sur le serveur, fini les dizaines de page - les différentes données que l'on sauvegarde dans la base de données s'actualise toutes correctement maintenant (cela corrige par exemple l'affichage d'ancien pseudo sur les commandes de statistiques)