Костылим костылями то что еще не закостылено.

Меня всегда можно найти в дискорде: return3d

Достижения

Все достижения (2)

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

Все теги (6)

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

Все ответы (25)
  • Как сделать добавление/изменение строки в emb при определённом условии (Discord)?

    retUrn3d
    @retUrn3d
    Пользователь, просто пользователь...
    Подготовил для вас простенькое решение, которое поможет вам наглядно понять что и куда.
    @bot.command()
    async def habr(ctx, arg=None):
        await ctx.message.delete()  # Удаляем наше сообщение.
        emb = discord.Embed(title="Хабр", colour=discord.Color.orange())  # Инициализируем эмбед.
        emb.add_field(name='Первое поле', value=f'Реально же первое!')  # Добавляем поле.
        msg = await ctx.send(embed=emb)  # Отправляем сообщение и запоминаем что оно такое красивое есть.
        
        await asyncio.sleep(2)
        
        emb = msg.embeds[0]  # Выдергиваем с нашего отправленного сообщения эмбед и пересобираем его так, как нужно нам.
        for i, item in enumerate(emb.fields):  # Перебираем поля в эмбеде. i - индекс(позиция); item - содержание.
            if arg:  # Если есть аргумент, то добавляем его в наше новое поле.
                emb.add_field(name='Второе поле', value=f'{arg}')
            else:  # Если аргумента нету, то редактируем наше первое поле.
                if "Первое поле" in item.name:
                    emb.set_field_at(index=i, name=item.name, value='Без аргумента? Жаль.', inline=item.inline)
        
        await msg.edit(embed=emb)  # Отправляем отредактированное сообщение.

    И гифка с демонстрацией этого на деле.
    trim.gif
    Ответ написан
    Комментировать
  • Фоновый процесс на python?

    retUrn3d
    @retUrn3d
    Пользователь, просто пользователь...
    Попробуйте собрать его через pyinstaller с параметром --noconsole
    Выглядеть это должно примерно вот так:
    pyinstaller --noconsole file.py
    Ответ написан
    Комментировать
  • Как пересылать сообщения в Discord по выборке из списка слов?

    retUrn3d
    @retUrn3d
    Пользователь, просто пользователь...
    Для решения проблемы с постоянной пересылкой одного и того же сообщения - запретите боту слушать самого себя.
    @bot.event
    async def on_message(message):
        if message.author != bot.user:  # Если автор сообщения НЕ бот.
            if {i.lower().translate(str.maketrans('', '', string.punctuation)) for i in message.content.split(' ')} \
                    .intersection(set(json.load(open('slyhi.json')))) != set():
                channel = bot.get_channel(894897187593551892)
                await channel.send(f'[Выхваченное Сообщение]:~/// {message.author.mention}: {message.content}')
    
        await bot.process_commands(message)


    Если имеется желание слушать какие-то конкретные канал, просто проверяйте совпадает ли канал в который было отправлено сообщение, с каналоми из списка.
    channels = [1231234234, 1231231234]
    if message.channel.id in channels:
        do_something()
    Ответ написан
    Комментировать
  • Как сделать tempmute или мут на некоторое время?

    retUrn3d
    @retUrn3d
    Пользователь, просто пользователь...
    Это плохой вариант использования, но без лишних затрат.
    Если бот будет перезагружен, во время того как у человека висит "мут". То он с ним навсегда и останется.
    @client.command(pass_context=True)
    @commands.has_any_role(860824791610032189, 876086379665301534)
    
    async def mute( ctx, member: discord.Member, time: int):
        emb = discord.Embed(title="Участник Был Замучен!", colour=discord.Color.blue())
        await ctx.channel.purge(limit=1)
    
        emb.set_author(name=member.name, icon_url=member.avatar_url )
        emb.set_footer(text="Его замутил {}".format(ctx.author.name ), icon_url=ctx.author.avatar_url )
        
        await ctx.send(embed=emb)
        muted_role = discord.utils.get(ctx.message.guild.roles, name="Muted")
        await member.add_roles(muted_role)
        
        # Спим X секунд, перед тем как снять роль.
        await asyncio.sleep(time) 
        # Снимаем роль замученного.
        await member.remove_roles(muted_role)
    Ответ написан
    Комментировать
  • Не работает код бота, что делать?

    retUrn3d
    @retUrn3d
    Пользователь, просто пользователь...
    ctx Должен быть передан первым аргументом.
    Ответ написан
    Комментировать