Kaysoro / KaellyBot

Discord Bot for Dofus game
GNU General Public License v3.0
69 stars 26 forks source link

Ajout du support des commandes Slash ? #276

Open LeSpatiocorne opened 2 years ago

LeSpatiocorne commented 2 years ago

Les commandes Slash de discord sont une grosse amélioration dans la maniabilité des bots. Du coup je me dis que ça serait très sympa de les voir arriver sur ce bot :)

Les avantages par rapport au préfixe

exemples d'applications

almanax-auto pourrait posséder directement les choix True/False en argument obligatoire à l'envoie de la commande

pos pourrait ajouter les choix :

etc...

Note

En revanche je ne sais pas avec les bots sous Java, mais il est probable si c'est comme pour les bots sous python que ça implique un remaniement des déclarations des commandes. Comme les commandes slash fonctionnent avec un système d'interaction les envois par contexte fonctionnent encore, mais les commandes sont déclarés de façon à pouvoir utiliser la fonction "interaction". Après là encore si c'est comme pour Python, ça demande juste de déclarer la commande selon la "norme" imposée par les commandes Slash et le plus souvent, la commande fonctionne sans changement dans le reste du code.

Kaysoro commented 2 years ago

Hello hello :) Merci pour ton issue, ça rejoint complètement ce que je souhaite faire de KaellyBot et c'est en chantier ! Pour te préciser le fond de ma pensée, tout passera en SlashCommands/ Menu contextuel utilisateur, les messages délivrés indépendamment des actions utilisateurs (almanax-auto, twitter, rss, pos-auto dans une moindre mesure) seront faits par webhook, etc.

Ça suppose une réécriture profonde du bot car en effet il faut une grosse intégration avec l'API Discord, certains éléments des slash commands restent limitants mais c'est jouable. Avec cette évolution, j'en profite également pour casser le monolithe qu'est KaellyBot et envisager une architecture micro-services avec du RabbitMq, des shards discord bien séparés etc... et surtout un virage de Java à Golang qui amènera plus de performances :)

Voilà où j'en suis aujourd'hui, je ne suis pas en dev à "plein temps" sur ces sujets vu que je dois finir dofus-portals mais c'est prévu !!

Si tu veux plus d'infos, n'hésite pas à rejoindre le serveur kaellybot, on pourra en discuter et je pourrai éventuellement partager mes pages notion dédiées à cette évolution !

LeSpatiocorne commented 2 years ago

Je vais venir faire un tour du coup ! Je comprend complètement ce à quoi tu pense, effectivement c'est à peu de choses prêt ce que j'ai imaginé pour mes projets personnels lors de la transition !

C'est vrai que les requêtes sur les slahs sont loin d'être aussi bien fichues que les requêtes classique, sans compter certains chemin qu'on peut pas forcément appeler simplement... Je pense notamment aux permissions.

En python d'une ligne : @has_permission(permission_name=True)

On passe à un truc mal branlé en mode système de la dèche du genre :

perm = interaction.user.guild_permissions.permission_name
if perm is True:
   <code>

Franchement c'est pas propre du tout x)

Enfin bon, je comprends, on est pas mal dans la situation du "dev du dimanche" à faire des projets de ce genre sur notre temps libre pour le plaisir. Je vais rejoindre le didi ouais ça peut être sympa de discutailler, même si j'avoue que mes notions de Java son proche du zéro x)