Jump to content

ME AJUDEM A CONSERTAR O BOT PYTHON DE DISCORD


noemi

Postagens Recomendadas

Eu fiz um código só que estou enfrentado um problema basicamente estou fazendo um bot para o Discord no qual faz interação com os usuários que entra, ele faz algumas perguntas depois de fazer todas as perguntas o bot tem que alterar o apelido do servidor da pessoa que acabou de responder todas as perguntas, basicamente ele pega o nome da pessoa no jogo e id que o usuário falou e coloca como apelido para fica nesse formato (RC "nome no jogo" - "Id" só que o código só está alterando o apelido para (RC ""_"") e eu não sei mais oq fazer quem poder ajudar eu agradeço.

 

Aqui estar o código para análise:

 

import discord
from discord.ext import commands
from asyncio import sleep

intents = discord.Intents.default()
intents.members = True

bot = commands.Bot(command_prefix='!', intents=intents)

member_info = {}  # Dicionário para armazenar as informações dos membros

@bot.event
async def on_ready():
    print(f'Bot está online. Conectado como {bot.user.name}')

@bot.event
async def on_member_join(member):
    channel = discord.utils.get(member.guild.channels, name='bem-vindo')  # Nome do canal de boas-vindas
    await channel.send(f'Bem-vindo, {member.mention}! Por favor, diga o seu nome no jogo:')

    def check(m):
        return m.channel == channel and m.author == member and isinstance(m.content, str)

    try:
        nome_jogo_msg = await bot.wait_for('message', check=check, timeout=30)
        nome_jogo = nome_jogo_msg.content

        await channel.send("Por favor, informe o seu ID:")

        id_msg = await bot.wait_for('message', check=check, timeout=30)
        id_jogo = id_msg.content

        await channel.send("Quem é o responsável pela sua contratação?")

        responsavel_msg = await bot.wait_for('message', check=check, timeout=30)
        responsavel = responsavel_msg.content

        await channel.send("Muito bem! Seu acesso foi liberado. Tenha um ótimo RP!")

        # Atualizar apelido no servidor
        nickname = f"RC \"{nome_jogo}\" - \"{id_jogo}\""
        await member.edit(nick=nickname)

        # Aguardar 10 segundos e apagar as mensagens
        await sleep(10)
        await channel.purge(limit=5)  # Define o número de mensagens que serão apagadas

    except Exception as e:
        print(f"Ocorreu um erro: {e}")

bot.run('#')  

Link to comment
Compartilhe em outros sites

52 minutos atrás, noemi disse:

Eu fiz um código só que estou enfrentado um problema basicamente estou fazendo um bot para o Discord no qual faz interação com os usuários que entra, ele faz algumas perguntas depois de fazer todas as perguntas o bot tem que alterar o apelido do servidor da pessoa que acabou de responder todas as perguntas, basicamente ele pega o nome da pessoa no jogo e id que o usuário falou e coloca como apelido para fica nesse formato (RC "nome no jogo" - "Id" só que o código só está alterando o apelido para (RC ""_"") e eu não sei mais oq fazer quem poder ajudar eu agradeço.

 

Aqui estar o código para análise:

 

import discord
from discord.ext import commands
from asyncio import sleep

intents = discord.Intents.default()
intents.members = True

bot = commands.Bot(command_prefix='!', intents=intents)

member_info = {}  # Dicionário para armazenar as informações dos membros

@bot.event
async def on_ready():
    print(f'Bot está online. Conectado como {bot.user.name}')

@bot.event
async def on_member_join(member):
    channel = discord.utils.get(member.guild.channels, name='bem-vindo')  # Nome do canal de boas-vindas
    await channel.send(f'Bem-vindo, {member.mention}! Por favor, diga o seu nome no jogo:')

    def check(m):
        return m.channel == channel and m.author == member and isinstance(m.content, str)

    try:
        nome_jogo_msg = await bot.wait_for('message', check=check, timeout=30)
        nome_jogo = nome_jogo_msg.content

        await channel.send("Por favor, informe o seu ID:")

        id_msg = await bot.wait_for('message', check=check, timeout=30)
        id_jogo = id_msg.content

        await channel.send("Quem é o responsável pela sua contratação?")

        responsavel_msg = await bot.wait_for('message', check=check, timeout=30)
        responsavel = responsavel_msg.content

        await channel.send("Muito bem! Seu acesso foi liberado. Tenha um ótimo RP!")

        # Atualizar apelido no servidor
        nickname = f"RC \"{nome_jogo}\" - \"{id_jogo}\""
        await member.edit(nick=nickname)

        # Aguardar 10 segundos e apagar as mensagens
        await sleep(10)
        await channel.purge(limit=5)  # Define o número de mensagens que serão apagadas

    except Exception as e:
        print(f"Ocorreu um erro: {e}")

bot.run('#')  

O caminho está correto, recomendo colocar uns prints para saber onde se encontra o real problema na hora de atualizar o apelido. Eu recomendaria fazê-lo em JS

  • Curtir 2
Link to comment
Compartilhe em outros sites

7 horas atrás, Awesoming disse:

Não exatamente esses aí, mas irei revisar o código novamente e enviar uma possível solução

Sim eu postei a resposta dos prints só que agora eu não sei como eu vou tar podendo estar alterado o apelido, já fiz de tudo o bot tem as devidas autorização para fazer as alterações.

7 horas atrás, Awesoming disse:

 

 

Link to comment
Compartilhe em outros sites

Em 21/07/2023 at 11:45, noemi disse:

Sim eu postei a resposta dos prints só que agora eu não sei como eu vou tar podendo estar alterado o apelido, já fiz de tudo o bot tem as devidas autorização para fazer as alterações.

 

Me chame no discord para que eu consiga ajudá-lo, usuário: awesomingsecundaria

Link to comment
Compartilhe em outros sites

Crie uma conta ou entre para comentar 😀

Você precisa ser um membro para deixar um comentário.

Crie a sua conta

Participe da nossa comunidade, crie sua conta.
É bem rápido!

Criar minha conta agora

Entrar

Você já tem uma conta?
Faça o login agora.

Entrar agora


×
×
  • Create New...