Suporte ao desenvolvimento de jogos!


    Python - Criação de um Bot para o Discord

    Compartilhe
    avatar
    makergame2000
    Experiente
    Experiente

    Mensagens : 512
    Créditos : 62

    Python - Criação de um Bot para o Discord

    Mensagem por makergame2000 em Ter Dez 19, 2017 9:18 pm

    Python - Criação de um Bot para o Discord




    Ao fazer este tutorial como já tinha dito vou supor que você não tem conhecimentos muito fortes em Python portanto não vou entrar em detalhes na linguagem.
    Neste tutorial vamos criar um Bot para o Discord em Python, um bot simples.
    Vai ser preciso usar Python na sua ultima versão que é a Python 3.6.4, pode a encontrar aqui https://www.python.org/downloads/ Python 
    Depois é preciso a API do discord para python, vamos usar o Discord.py que pode ser encontrado aqui https://github.com/Rapptz/discord.py, não é necessario fazer download por aqui
    Antes de começar é preciso ter uma conta no Discord registada, contas visitantes não funcionam.
    Você pode usar qualquer IDE mas eu uso Visual Studio Code que pode encontrar no site oficial https://code.visualstudio.com/download


    Instalar Discord.py
    Abra o CMD, faça "pip install discord.py"
    Spoiler:
    No meu caso como já tenho instalado vai aparecer isto.

    Configurar o Bot no Discord
    Depois de instalar o Discord.py vá até esta página https://discordapp.com/developers/applications/me, aqui estão as suas aplicações feitas para o discord.
    Crie uma nova.
    Spoiler:
    Coloque um nome para o Bot, também pode colocar uma imagem para o bot, neste exemplo não será preciso uma imagem
    Spoiler:
    Por fim clique em "Create App"
    De seguida vai aparecer por baixo da descrição isto, clique em "Create User Bot"
    Spoiler:
    E pronto o Bot está ativo e agora é preciso programar o Bot
    Guarde o Client ID do bot porque é preciso para depois ligar o bot pelo código
    Spoiler:
    Não partilhe este código com ninguem porque depois qualquer pessoa pode modificar o bot

    Colocar Bot num grupo
    Para o seu Bot entrar numa conversa você precisa de ser moderador ou qualquer tipo de autorização, neste exemplo eu fiz um grupo só para mim onde vou testar o Bot
    Para aceder á janela de autorizar bots use este link e ponha o código do ID em COLOQUE_ID_AQUI 
    Código:
    https://discordapp.com/oauth2/authorize?&client_id=COLOQUE_ID_AQUI&scope=bot&permissions=0
    Spoiler:
    Depois o Bot irá aparecer em Offline no grupo que você fez adicionar
    Spoiler:




    Progrmar Bot
    Como já tinha dito eu vou usar VS:Code, use o IDE que quiser não importa nada porque o que vai ligar o Bot é a URL que vamos obter mais á frente, ao momento em que o Bot é compilado e executado o Bot fica online, portanto você só precisa de um compilador python se você quiser você pode usar o bloco de notas como IDE

    Vamos começar a Importar funções o discord e outras coisas importantes.
    Ao fazer este tutorial como já tinha dito vou supor que você não tem conhecimentos muito fortes em Python e portanto para deixar isto simples não vou explicar o que cada classe faz ou o que é uma class ou uma função e como python funciona.
    Código:

    import discord
    import asyncio
    import random
    import os
    De seguida precisamos disto
    Código:
    cliente_discord = discord.Client()

    @cliente_discord.event
    async def on_ready():
        print('LIGOU')
    Este evento vai escrever na consola que o Bot está ligado e que tudo correu bem.

    Código:
    @cliente_discord.event
    async def on_message(texto):
        if (texto.author.id == 'ID DO BOT'): return
    Esta ultima linha serve para o bot não ler o que ele proprio escreve porque senão isto pode causar loops e quebrar o programa

    Até agora o nosso script está assim
    Spoiler:

    Código:
    import discord
    import asyncio
    import random
    import os

    cliente_discord = discord.Client()

    @cliente_discord.event
    async def on_ready():
        print('LIGOU')

    @cliente_discord.event
    async def on_message(texto):
        if (texto.author.id == 'XXXXXXXXXXXX5043'): return
    E agora vamos criar Comandos
    Este bot vai ser ativado quando é chamado pelo nome, ou seja que qualquer comando para ser feito é preciso chamar o Bot

    O primeiro comando que vamos fazer é a capacidade de escolher um valor de 1 a 6 fazendo assim um dado
    Código:
    if texto.content.startswith('Bot'): #Se uma frase tiver Bot no inico
            frase = texto.content[3:].strip() #Tira 'Bot' da frase
            if frase.lower().startswith('dado'): #ATira dado de 1 a 6 
                            numr = random.randint(1,6)
                            await cliente_discord.send_message(texto.channel,str(numr))
                            return
    Mas antes de testar pela primeira vez o Bot é preciso no final e sempre no final estar esta linha
    Código:
    cliente_discord.run('XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX5XKDL4')
    Isto é a URL do bot que se obtem na pagina do seu Bot no Discord abaixo do ID
    Spoiler:
    Até agora temos código assim.
    Spoiler:
    O bot já está pronto para ligar

    E aqui esta como Online e a dar valores

    Vamos fazer mais um comando, aqui ele responde a perguntas, com respostas já definidas numa array que o python escolhe aleatoriamente
    Código:
    if frase.endswith('?'):
                            resposta = random.choice(['Não respondo a isso','Sim','As vezes','Não','Claro','NUNCA!','Um dia talvez','A resposta está dentro de ti','Mais ou menos','Uma Bosta','Podia ser pior'])
                            await cliente_discord.send_message(texto.channel,resposta)
                            return
    Ele vai mostrar uma resposta sempre que vir '?' no final.
    Spoiler:



    Código Final
    Código:
    import discord
    import asyncio
    import random
    import os

    cliente_discord = discord.Client()

    @cliente_discord.event
    async def on_ready():
        print('LIGOU')

    @cliente_discord.event
    async def on_message(texto):
        if (texto.author.id == 'ID'): return    
        if texto.content.startswith('Bot'): #Se uma frase tiver Bot no inico
            frase = texto.content[3:].strip() #Tira 'Bot' da frase
            if frase.lower().startswith('dado'): #ATira dado de 1 a 6 
                            numr = random.randint(1,6)
                            await cliente_discord.send_message(texto.channel,str(numr))
                            return
            if frase.endswith('?'):
                            resposta = random.choice(['Não respondo a isso','Sim','As vezes','Não','Claro','NUNCA!','Um dia talvez','A resposta está dentro de ti','Mais ou menos','Uma Bosta','Podia ser pior'])
                            await cliente_discord.send_message(texto.channel,resposta)
                            return
    cliente_discord.run('URL')
    Agora coloque os seus próprios comandos ou faça um sistema de conversa, ou até um jogo que perfeitamente possivel, como por exemplo um jogo de cartas.
    avatar
    VictorDuarte
    Novato
    Novato

    Mensagens : 27
    Créditos : 0

    Ficha do personagem
    Nível: 1
    Vida:
    30/30  (30/30)
    Energia:
    0/0  (0/0)

    Re: Python - Criação de um Bot para o Discord

    Mensagem por VictorDuarte em Sab Jan 27, 2018 12:33 pm

    Um Bom Tutorial,Bem Explicado I love you Successful


    _________________
    Meu WEB BROWSER GAME

    Código:
    https://batalhadosshinobis.tk

      Data/hora atual: Seg Nov 19, 2018 12:45 pm