Bot discord envoie un message privée Discord.py

a marqué ce sujet comme résolu.

Bonjour, J’ai besoin de votre aide pour crée un bot discord en python. Je veut que lorsque qu’une personne sur discord fait la commande "s!download", je veut que le bot lui envoie un messages privée en lui donnant un lien de téléchargement (exemple: "Voici le lient du téléchargement: [Lien]") et envoyer un message dans le salon dans lequel la personne a tapé la commande (exemple: "Le lien du téléchargement vous a été envoyer en message privée @LeNomDeLaPersonne")

Et je voudrais pouvoir désactivé/réactivé cette commande avec la commande "s!disable" / "s!enable" quand je fait une mise a jour du pack de texture. Si la commande a été désactivé, je voudrai que sa envoie un message dans le salon dans lequel la personne a tapé la commande.(exemple: "Le lien du téléchargement a été désactivé temporairement @LeNomDeLaPersonne")

Merci d’avance pour votre aide ;)

Désolé pour mon orthographe et je vous envoie mon code. Mais je ne suis que débutant en codage python donc que je ne sais pas trop comment m’y prendre.

import asyncio
import discord
import youtube_dl
from discord.ext import commands


TOKEN = 'Token du Bot'

description = 'Alice Schuberg'
bot = commands.Bot(command_prefix='!alice.', description=description)
url = "https://cryptohub.online/api/market/ticker/PLSR/"


class Bot(discord.Client):
    @bot.event
    async def on_ready():
        print('Connection en cours...')
        print(bot.user.name)
        print("Link Start")
        print('------')

    @bot.event
    async def create_embed(self, title, description):
        embed = discord.Embed()
        embed.title = title
        embed.description = description



# Crée la commande "!aide"
@bot.command()
async def aide(ctx):
    embed = discord.Embed(title="Besoin d'aide ?", description="Voici les commandes disponibles:", color=0xeee657)

    # give info about you here
    embed.add_field(name="!alice.aide", value="Permet de voir toutes les commandes disponibles", inline=False)

    embed.add_field(name="!alice.join", value="Connecte Alice dans votre salon vocal", inline=False)

    embed.add_field(name="!alice.yt [url YouTube]",
                    value="Permet d'écouté une vidéo YouTube a condition d'y intégré un lien YouTube", inline=False)

    embed.add_field(name="!alice.stop", value="Déconnecte Alice de votre salon", inline=False)

    embed.add_field(name="!alice.version", value="Permet de voir la version du Bot", inline=False)

    await ctx.send(embed=embed)


# Crée la commande "!version"

@bot.command()
async def version(ctx):
    embed = discord.Embed(title="Version", description="La version actuel de mon avatar est la version Dev 0.1.3",
                          color=0xeee657)

    await ctx.send(embed=embed)


bot.run(TOKEN)

+0 -0

Merci pour les précisions ^^ !

Tout d’abord, pour en connaître davantage sur Python, je t’invite à jeter un œil aux différents tutoriels sur Python que tu peux trouver sur Zeste de Savoir. Concernant discord.py, je sais qu’il y a moins de documentation que d’autres bibliothèques mais il est tout de même très répandu et on trouve pas mal de ressources. Utilisant discord.js, je n’ai pas de lien par contre.

Je veut que lorsque qu’une personne sur discord fait la commande "s!download", je veut que le bot lui envoie un messages privée en lui donnant un lien de téléchargement (exemple: "Voici le lient du téléchargement: [Lien]") et envoyer un message dans le salon dans lequel la personne a tapé la commande (exemple: "Le lien du téléchargement vous a été envoyer en message privée @LeNomDeLaPersonne")

CF_CodesGamesYTB

Qu’est-ce qui te bloqué sur ce point ? Par ailleurs, je ne suis pas sûr que d’envoyer un message dans le salon disant qu’un message privé à été envoyé utile vu que la personne recevra déjà le message privé. Après, c’est à toi de voir et c’est facilement modifiable ;) .

Et je voudrais pouvoir désactivé/réactivé cette commande avec la commande "s!disable" / "s!enable" quand je fait une mise a jour du pack de texture. Si la commande a été désactivé, je voudrai que sa envoie un message dans le salon dans lequel la personne a tapé la commande.(exemple: "Le lien du téléchargement a été désactivé temporairement @LeNomDeLaPersonne")

CF_CodesGamesYTB

Pour faire ça, il y a deux solutions.

  1. Stocker dans une variable (booléenne) si la commande est activée ou non. Le défaut de cette solution est de perdre la valeur qui qui n’est pas celle par défaut quand le bot s’arrête et redémarre.
  2. Stocker dans un fichier texte, JSON ou une base de données.

Comme précédemment, qu’est-ce qui te bloque ?

Bonjour et désolé si je n’ai pas pu répondre, je n’étais pas chez moi ce week-end.

Disons que ce qui me bloque c’est que je ne sais pas par quelle ligne de code je devrais commencer. Je n’y connais presque rien en ce qui concerne le Python mais en ce moment j’essaie d’en apprendre davantage sur celui-ci. Désolé si je ne facilite pas la tâche :'(

Et merci pour le conseil, je consacrerais mon temps libre pour jeter un coup d’œil aux différents tutoriels sur Python que je trouverai sur le site.

Bonjour avec un peu de recherche, j’ai réussi a faire la première étape.

@bot.command()
async def download(message):
    channel = message.channel
    await channel.send("{0.author.mention}, regarde dans tes message privées ! Je t'ai envoyé le lien de "
                       "téléchargement du Pack de texture.".format(message))

    await message.author.send("{0.author.mention}, voici le lien du téléchargement: =>\n"
                              "https://www.dropbox.com/s/230l35psox25jn9/LavaFights%20V2.10%20Manuel.zip?dl=1.\n\n"
                              
                              "Il est très important de téléchargé et d'installer optifine ! =>\n"
                              "https://optifine.net/adloadx?f=OptiFine_1.12.2_HD_U_F5.jar&x=1da4".format(message))

Maintenant il ne me reste plus cas faire en sorte de pouvoir activé ou désactivé la commande.

Comme je l’ai dit, je ne suis pas spécialement familier avec discord.py mais cela ressemble bien à la formulation pour envoyer un message. Par ailleurs, es-tu sûr qu’il est judicieux d’envoyer un message dans le salon public ainsi qu’en MP̈ ? C’est à toi de le décider en tout cas ^^ . Dans tous les cas, il serait logique que le message soit envoyer en MP avant car le message publique indique qu’un message privé a été envoyé.

Maintenant il ne me reste plus cas faire en sorte de pouvoir activé ou désactivé la commande.

CF_CodesGamesYTB

Pour activer la commande, il faut stocker l’information quelque part. Le plus simple serait dans une variable. Or, le problème est de perdre l’information si le bot s’arrête ou redémarre. Il est possible de le stocker dans un fichier ou dans une base de données relationnelle. Ne connaissant pas suffisamment Python, je ne sais pas ce qui serait le mieux. Je laisse les autres membres te répondre.

Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte