Como Usar Eventos! - Bot de Discord com Python

แชร์
ฝัง
  • เผยแพร่เมื่อ 26 ก.ค. 2024
  • Nesse vídeo, abordaremos o conceito de eventos, que são gatilhos que disparam quando algo especifico acontece, e quando disparados, uma ação programada ocorre.
    Se consegui te ajudar, deixe um like no vídeo para me dar uma força ;)
    Documentação dos eventos: discordpy.readthedocs.io/en/s...
    Capítulos:
    0:00 - O Que é um Evento?
    0:34 - Estrutura Básica
    1:16 - Evento on_message
    1:51 - Argumento de um Evento
    2:07 - Ação do Evento
    3:40 - Evento de Criação de Canal
    4:30 - Canal de Boas Vindas
    7:56 - São MUITOS Eventos!
    8:16 - Encerramento
    Contato Profissional: irlanfevereiro@gmail.com
  • วิทยาศาสตร์และเทคโนโลยี

ความคิดเห็น • 43

  • @xarl4284
    @xarl4284 6 หลายเดือนก่อน +3

    O meu bot quando esta ativo o on_message ele começa a ignorar todos os chamados dos comandos e passa a valorizar só esse evento. Como faço pra ajeitar isso? Mt obrigado, seus vídeos são demais, fiquei triste quandi vi que só tinha 3 nessa playlistkkkk.

    • @lan_code
      @lan_code  6 หลายเดือนก่อน +3

      MANO!
      Isso é algo que esqueci de comentar sobre, mas quando se tem comandos e um evento on_message, os comandos são ofuscados. Pra resolver essa bomba, coloca o seguinte trecho no evento on_message:
      await bot.process_commands(msg)
      no caso o "msg" é a variável que representa a menssagen saca? ai ele vai analisar a menssagem e ver se tem algum comando que vc definiu, e pá! problema resolvido ;)
      Eu é que tenho que te agradecer, esse apoio me dá muita força, irmão! Fico feliz de conseguir te ajudar. Qualquer coisa to aqui! 🤝

    • @xarl4284
      @xarl4284 6 หลายเดือนก่อน +2

      @@lan_code CÊ ME RESPONDEU MT RÁPIDO SKSKSK. MT OBRIGADO, já vou testar AGR mesmo. Já me inscrevi, ótimo canal

    • @lan_code
      @lan_code  6 หลายเดือนก่อน +2

      @@xarl4284 E EU AINDA ACHEI QUE DEMOREI KKKKKKKKKKKK
      Obrigado pela inscrição ;)
      ps: próximo vídeo (que sai terça) já é mais um de discord

    • @xarl4284
      @xarl4284 6 หลายเดือนก่อน +2

      @@lan_code aeeee boa mano. Vou ser um dos primeiros a assistir, eu coloco exatamente em que linha do evento?

    • @lan_code
      @lan_code  6 หลายเดือนก่อน +1

      Pode ser em qualquer linha! Mas coloca na primeira, só por segurança

  • @lxtludium
    @lxtludium 9 วันที่ผ่านมา +1

    mnao, muito bom!! decidi fazer um bot, e vc esta me ajudando mt a entender as coisas! mto obg.

    • @lan_code
      @lan_code  9 วันที่ผ่านมา

      @@lxtludium eu que agradeço!
      tudo de bom no seu projeto :D

  • @lunnabeatrizz
    @lunnabeatrizz 7 หลายเดือนก่อน +1

    muito massa o vídeo, irmão 💪

  • @luccasgarces2312
    @luccasgarces2312 6 หลายเดือนก่อน +1

    Muito bom boy.

    • @lan_code
      @lan_code  6 หลายเดือนก่อน

      você que é

  • @alphatechproject
    @alphatechproject หลายเดือนก่อน +1

    Fui ver a doc pelo cll kakaakak dá pra ver quase nada, fora q a maioria dos comandos só passam como classes sendo q num sou la mt expert nisso, tem algum lugar na doc q mostre de forma simplificada?

    • @lan_code
      @lan_code  หลายเดือนก่อน

      como assim classe?

  • @felipemartins6122
    @felipemartins6122 5 หลายเดือนก่อน +1

    to esperando video novo sobre o modulo de discord em

    • @lan_code
      @lan_code  5 หลายเดือนก่อน

      o próximo já é bro🗿🤜🤛🔥

  • @MitoGuys0
    @MitoGuys0 5 หลายเดือนก่อน +1

    o meu evento de join nao ta pegando e ta igual a do video

    • @lan_code
      @lan_code  5 หลายเดือนก่อน

      oi de novo, mano!
      pode mandar o código aqui?
      talvez eu nao responda hoje, pq jajá vou dormir. mas manda aqui pra eu analisar

    • @MitoGuys0
      @MitoGuys0 5 หลายเดือนก่อน +1

      @@lan_code ta

    • @MitoGuys0
      @MitoGuys0 5 หลายเดือนก่อน

      @@lan_code ja resolvi kkkkkkkkkkkkkkkkkk

    • @lan_code
      @lan_code  5 หลายเดือนก่อน

      kkkk blz
      @@MitoGuys0

  • @PainsPKM
    @PainsPKM 3 หลายเดือนก่อน +1

    "`bot.event` não possui parêntesis, diferente dos comandos que possuem, o `bot.event` não precisa de `comando` 😵" Lan Code 2024 kkkkkk

    • @lan_code
      @lan_code  3 หลายเดือนก่อน

      KKKKKKKKK minha dicção é surreal!

  • @Xit-hu7hi
    @Xit-hu7hi 2 หลายเดือนก่อน +1

    opa nao sei se vai ver mas na linha 39 "async def on_member_join(menbro:discord.Member):" o " on_member_join" fica amarelo escuro e nao reconhece entao nao manda msg poderia ajudar???

    • @lan_code
      @lan_code  2 หลายเดือนก่อน

      manda la no meu servidor mano! link nos vídeos recentes

  • @luccasgarces2312
    @luccasgarces2312 6 หลายเดือนก่อน +1

    Estou pensando em criar um boot para dar os parabéns na data de aniversário do participantes, teria alguma dica?

    • @lan_code
      @lan_code  6 หลายเดือนก่อน +1

      Salve Luccas!
      Desculpe a demora para responder, fui pesquisar sobre o assunto.
      Cara, eu curti muito sua ideia! pprt.
      Bem, primeiro você precisa arrumar um jeito de guardar as datas dos aniversários. Você pode guardar o dia e o mês, por exemplo. No meu vídeo mais recente gravei sobre a biblioteca Shelve, que pode servir como um banco de dados.
      Recomendo salvar as datas de um jeito que fique fácil de relacionar com o Id do devido usuário.
      Agora a parte principal. No discord.py existe uma funcionalidade que se chama "tasks", ou "tarefas" se preferir chamar assim. Tasks são funções que vão ocorrer a cada intervalo de tempo. No meu caso, vou criar uma task que rode a cada 3 horas e verifique todos os aniversarios. Se for o aniversario de alguem, ele envia menssagem.
      Pra fazer isso, você pode usar a biblioteca datetime para verificar se a data de hoje condiz com a data do aniversário.
      from discord.ext import commands, tasks
      import datetime
      @tasks.loop(hours = 3)
      async def aniversario():
      aniversarios = aniversarios
      #finge que as datas e ids tao nessa variave acima
      hoje = datetime.datetime.now()
      for aniversario in aniversarios:
      if aniversario.dia == hoje.day and aniversario.mes == hoje.month:
      usuario = await bot.fetch_user(aniversario.id)
      await usuario.send('feliz aniversário!')
      #ATENÇÃO: para o loop rodar, você precisa ativar. É só colocar o nome da função que você criou com .start() no final. Coloque esse trecho no evento on_ready(), para ele se ativar quando o bot ficar online.
      @bot.event()
      async def on_ready():
      aniversario.start()
      Mano, é realmente complicado explicar aqui nos comentários! Mas o que fizemos foi o seguinte:
      1. obtemos os aniversarios junto com os ids
      2. fizemos uma task em loop para verificar a cada 3 horas se alguem faz aniversario
      3. esse loop itera sobre cada pessoa em uma lista
      4. quando detecta alguem que faz aniversario hoje, ele pega o objeto do usuario dessa pessoa e usa o método .send para enviar uma menssagem privada.
      Vou anotar essa ideia e gravar um vídeo fazendo isso um dia. Obrigado mano!
      Se estiver com dificuldades, pode me chamar no discord ;)
      Lan_maneiro

    • @luccasgarces2312
      @luccasgarces2312 6 หลายเดือนก่อน +1

      @@lan_code Caraí, ksksks pedi uma dica é ganhei o caminho valeu irmão, ajudou muito brigadão irmão

    • @lan_code
      @lan_code  6 หลายเดือนก่อน +1

      @@luccasgarces2312 ME EMPOLGUEI UM POUQUINHO KKKKKKKKKK.
      Mas isso ai, qualquer coisa to aqui bro! 🤝

    • @luccasgarces2312
      @luccasgarces2312 6 หลายเดือนก่อน +1

      Se fizer o vídeo skksks, aiii eu agradeço skksks

    • @lan_code
      @lan_code  6 หลายเดือนก่อน

      @@luccasgarces2312 podechá

  • @etherium6226
    @etherium6226 7 หลายเดือนก่อน +1

    mano, valeu pelos tutorias, você explica muito bem e dá pra entender tudo muito de boa. caso dê, você consegue fazer um vídeo ensinando a como fazer um comando aonde ele manda mensagens aleatórias? exemplo:
    usuário usa o comando !xingamento
    ai o bot tem 3 escolhas para mandar um xingamento: bobão, besta e idiota.
    o bot vai escolher aleatoriamente entre esses 3 xingamenos e vai mandar no chat um deles

    • @lan_code
      @lan_code  7 หลายเดือนก่อน +3

      Po amigo, eu fico muito feliz com isso! meu objetivo é explicar de forma clara para um real aprendizado, e saber que estou conseguindo me emociona. Muito obrigado! 🤝
      Sabe o engraçado? em um bot meu, eu fiz um comando justamente só pra xingar! 😂
      No meu caso, eu utilizei uma api externa pra obter os xingamentos.
      No seu caso, posso ensinar a fazer aqui mesmo, pois é algo extremamente simples! :D
      primeiro, a gente precisa de uma biblioteca chamada random. essa biblioteca serve pra operar com aleatoriedade.
      pra usar essa biblioteca, só digitar "import random" (sem as aspas) na primeira linha.
      depois, vamos fazer uma lista com todos os xingamentos que queremos, ficaria +- assim:
      (botei palavras aleatórias para o youtube não me pegar)
      xingamentos = ["tijolo", "carrinho", " panela"]
      agora usando a biblioteca que a gente importou, vamos pegar um item aleatório dessa lista usando o random.choice()
      o que essa função faz é pegar um item aleatório de uma lista
      xingamento_aleatório = random.choice(xingamentos)
      a partir daí é só integrar com o que você já sabe sobre comandos. em um exemplo real, ficaria assim
      @bot.command()
      async def xingar(ctx:commands.Context):
      xingamentos = ["tijolo", "carrinho", " panela"]
      xingamento_aleatorio = random.choice(xingamentos)
      await ctx.reply(xingamento_aleatorio)
      no meu canal eu fiz um vídeo sobre comandos, mas de qualquer forma, se não conseguir fazer, manda seu discord que consigo te ajudar melhor lá, irmão! ;)

    • @etherium6226
      @etherium6226 7 หลายเดือนก่อน +1

      @@lan_code amigo, muito obrigado! Consegui fazer e deu certinho! Sucesso pelo seu canal, irmão.
      Já sou inscrito ;)

    • @etherium6226
      @etherium6226 7 หลายเดือนก่อน +1

      @@lan_code ah, mais uma coisa:
      tem como eu criar meio que um lugar para deixar apenas os comandos? tipo, tem o main.py aonde eu vou deixar as informações do bot (import, bot run e etc), tem como eu criar uma espécie de "comandos.py" ou algo parecido pra deixar os comandos ali? é que eu queria deixar tudo organizado

    • @lan_code
      @lan_code  7 หลายเดือนก่อน

      @@etherium6226 muito bom saber que conseguiu mano, muito obrigado pelo apoio! 🤜🤛🗿

    • @lan_code
      @lan_code  6 หลายเดือนก่อน

      oi de novo! véi, desculpa a demora. o youtube dificilmente me notifica quando recebo cometários. normalmente, faço meus comandos em um arquivo só. mas dei uma pesquisada, e parece que comandos em um arquivo separado são feitos usando "cogs". ainda não estudei sobre isso, então não conseguiria te ajudar... 😔
      vou anotar esse tema, estudá-lo e abordar em um vídeo futuro, obrigado!