Задать вопрос
Пользователь пока ничего не рассказал о себе

Наибольший вклад в теги

Все теги (6)

Лучшие ответы пользователя

Все ответы (11)
  • Как сделать inline текст?

    @RuslanUC
    При создании embed добавьте в description это:
    [Текст](Ваша ссылка)
    Чтобы код выглядел примерно так:
    embed = discord.Embed(title="...", description="...  [Подробнее](https://discord.com/) ...")
    Ответ написан
    Комментировать
  • Как заставить ссылку на торрент работать правильно?

    @RuslanUC
    Похоже, сайт проверяет заголовок referer.
    Для того, чтобы ссылка не открывала страницу игры, достаточно добавить в запрос заголовок referer со значением "https://z2.mechanics-games.ru/".
    Ответ написан
    3 комментария
  • Запуск бота невозможен?

    @RuslanUC
    В тексте ошибки написано, что вы пытаетесь использовать интенты, которые не разрешили на странице приложения. Перейдите на https://discord.com/developers/applications/ выберите вашего бота, перейдите во вкладку "Bot", после чего поставьте все галочки в категории "Privileged Gateway Intents" (presence intent, server members intent и message content intent). После этого пробуйте запускать вашего бота с "discord.Intents.all()", скорее всего проблема будет решена.
    Ответ написан
    Комментировать
  • Почему бот в дискорде не отвечает при нажатии на кнопку?

    @RuslanUC
    Во первых, там где bot.wait_for(...), у вас прописано не "button_click", а "buttton_click", т.е. с тремя t.
    Во вторых при запуске кода вам выдаст ошибку, мол у response нет свойства components. Возможно это работает в прошлых версиях, но в новой - нет. Решение - добавить кнопкам custom_id, и проверять его:
    @bot.command()
    async def test(ctx):
      await ctx.send(
        embed=discord.Embed(title="тебе нравится наш сервер?"),
        components=[
          Button(style=ButtonStyle.red, label="ДА!", custom_id="yes"),
          Button(style=ButtonStyle.green, label="ну такое..", custom_id="no"),
        ]	
      )
    
      response = await bot.wait_for("button_click")
      if response.channel == ctx.channel:
        if response.custom_id == "yes":
          await response.respond(content="рады стараться!")
        else:
          await response.respond(content="в чем проблема?")


    И лучше добавить проверку канала в wait_for, сделать это можно так:
    def response_check(inter):
      return inter.channel == ctx.channel
    
    response = await bot.wait_for("button_click", check=response_check)

    или так:
    response = await bot.wait_for("button_click", check=lambda inter: inter.channel == ctx.channel)

    Тогда код будет выглядеть так:
    @bot.command()
    async def test(ctx):
      await ctx.send(
        embed=discord.Embed(title="тебе нравится наш сервер?"),
        components=[
          Button(style=ButtonStyle.red, label="ДА!", custom_id="yes"),
          Button(style=ButtonStyle.green, label="ну такое..", custom_id="no"),
        ]	
      )
    
      response = await bot.wait_for("button_click", check=lambda inter: inter.channel == ctx.channel)
      if response.custom_id == "yes":
        await response.respond(content="рады стараться!")
      else:
        await response.respond(content="в чем проблема?")
    Ответ написан
    Комментировать
  • Ошибка кода Discord.py что делать?

    @RuslanUC
    Судя по ошибке, бот пытается получить лс с самим собой.
    Нужна проверка, является ли человек, которому вы хотите отправить сообщение вашим ботом:
    @client.command()
    async def news(ctx):
      guild = ctx.guild
      async for member in guild.fetch_members(limit=None):
        if member != client.user:
          await member.send("Приветики!")
          print("Отправил", member)

    Или проверка на то, является ли пользователь ботом:
    @client.command()
    async def news(ctx):
      guild = ctx.guild
      async for member in guild.fetch_members(limit=None):
        if not member.bot:
          await member.send("Приветики!")
          print("Отправил", member)
    Ответ написан
    1 комментарий