Python - Criação de um Bot para o Discord Hitskin_logo Hitskin.com

Isto é uma pré-visualização de um tema em Hitskin.com
Instalar o temaVoltar para a ficha do tema

Aldeia RPG
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

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

2 participantes

Ir para baixo

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

Mensagem por makergame2000 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:
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
Python - Criação de um Bot para o Discord JyJlOGB
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.
makergame2000
makergame2000
Experiente
Experiente

Mensagens : 501
Créditos : 62

Ir para o topo Ir para baixo

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

Mensagem por VictorDuarte Sáb Jan 27, 2018 12:33 pm

Um Bom Tutorial,Bem Explicado I love you Successful

_________________
Meu WEB BROWSER GAME

Código:
https://batalhadosshinobis.tk
VictorDuarte
VictorDuarte
Iniciante
Iniciante

Mensagens : 31
Créditos : 0

Ficha do personagem
Nível: 1
Experiência:
Python - Criação de um Bot para o Discord Left_bar_bleue0/0Python - Criação de um Bot para o Discord Empty_bar_bleue  (0/0)
Vida:
Python - Criação de um Bot para o Discord Left_bar_bleue30/30Python - Criação de um Bot para o Discord Empty_bar_bleue  (30/30)

Ir para o topo Ir para baixo

Ir para o topo

- Tópicos semelhantes

 
Permissões neste sub-fórum
Não podes responder a tópicos