discord.py команда !ping выдает одно и тоже значние
я собирался создать команду которая будет выводить данные о загруженности машины с ботом(в т.ч. автон.заряд, загруженность cpu пинг и оперативной памяти.) при прописаний команды все значения постоянно одинаковы и меняются только при следующем перезапуске бота. код команды:
async def бот(ctx: commands.Context):
embed=discord.Embed(title="загруженность бота", color=0x0400ff)
embed.add_field(name="автономный заряд", value=f"{percentbat}%", inline=False)
embed.add_field(name="CPU", value=f"{CPU}%", inline=False)
embed.add_field(name="memory", value=f"{percentmem}%", inline=False)
embed.add_field(name="ping", value=f"{round(bot.latency * 1000)}ms", inline=False)
await ctx.send(embed=embed)
переменные:
battery = psutil.sensors_battery()
percentbat = int(battery.percent)
CPU = psutil.cpu_percent()
mem = psutil.virtual_memory()
percentmem = int(mem.percent)
библиотеки которые я использую: psutil discord.py
Ответы (1 шт):
Автор решения: zrx
Изучай основы python, они всегда пригодятся :)
Когда ты создаешь переменную, ты присваиваешь ей значение, которое не изменяется.
→ Ссылка
Изучай основы python, они всегда пригодятся :)
Когда ты создаешь переменную, ты присваиваешь ей значение, которое не изменяется.
Для того, чтобы исправить ошибку, изменяй содержимое переменной при каждом вызове команды. Вот рабочий код:
async def бот(ctx: commands.Context):
# Задаём переменные
battery = psutil.sensors_battery()
percentbat = int(battery.percent)
CPU = psutil.cpu_percent()
mem = psutil.virtual_memory()
percentmem = int(mem.percent)
# Создаём объект discord.Embed
embed=discord.Embed(title="загруженность бота", color=0x0400ff)
embed.add_field(name="автономный заряд", value=f"{percentbat}%", inline=False)
embed.add_field(name="CPU", value=f"{CPU}%", inline=False)
embed.add_field(name="memory", value=f"{percentmem}%", inline=False)
embed.add_field(name="ping", value=f"{round(bot.latency * 1000)}ms", inline=False)
# Отправляем наш embed
await ctx.send(embed=embed)