@dinodead3310

Timeout работает не так как надо, disnake py, что я делаю не так?

Вообщем я написал вот такую команду: @bot.slash_command(description='Отправляет в мут выбранного пользователя.')
@commands.has_permissions(administrator=True)
async def mute(inter, member: disnake.Member, time: int):
await member.timeout(duration = time)
embed = disnake.Embed(
title=f"Успешно отправлен в тайм-аут пользователь {member}!",
description=f"Команда выполнена по просьбе: {inter.author}.",
colour=0xe91e63,
)
await inter.response.send_message(embed=embed)
при этом когда я задаю duration при обращении к команде на 1 или другое значение то пользователя закидывает в мут на 4 часа, я пробовал менять код, писал вместо этого until и множество других способов но все равно остается также
  • Вопрос задан
  • 43 просмотра
Решения вопроса 1
fenrir1121
@fenrir1121 Куратор тега discord.py
Начни с документации
Таймаут под капотом максимально простая функция, работать не так он не может:
if not (duration is MISSING) ^ (until is MISSING):
    raise ValueError("Exactly one of `duration` and `until` must be provided")

payload: Dict[str, Any] = {}

if duration is not MISSING:
    if duration is None:
        until = None
    elif isinstance(duration, datetime.timedelta):
        until = utils.utcnow() + duration
    else:
        until = utils.utcnow() + datetime.timedelta(seconds=duration)

# at this point `until` cannot be `MISSING`
payload["communication_disabled_until"] = utils.isoformat_utc(until)

data = await self._state.http.edit_member(self.id, user.id, reason=reason, **payload)
return Member(data=data, guild=self, state=self._state)


Поскольку ни в ней, ни в вашем коде нет упоминаний 4 часов, следовательно у вас вызывается какой-то другой код. Добавляйте принты и/или логирование и смотрите ваши данные.

P.S. Отформатируйте код вопроса через соответствующий тег.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы