Как передать аргументы команды в класс
Пишу бота для дискорда. Недавно узнал о кнопках в библиотеке disnake.py, и возник вопрос: так как кнопки для сообщения это отдельный класс, как тогда можно передавать в него аргументы прямо из команды?
class Send_Money:
class Send_Money(disnake.ui.View):
def __init__(self):
super().__init__(timeout=20)
self.value = Optional[bool]
@disnake.ui.button(label='Да', emoji='✅', style=disnake.ButtonStyle.green)
async def confirm(self, button: disnake.ui.Button, inter: disnake.CommandInteraction, author, user, valute, amount):
with open('users.json', 'r') as f:
users = json.load(f)
v = int(users[f'{author.id}'][valute.upper()])
if amount > 0:
if amount <= v:
await inter.response.send_message('Вы успешно отправили валюту!')
await add_valute(author, valute, -int(amount))
await add_valute(user, valute, int(amount))
Команда:
@bot.command(aliases=['перевод_средств', 'перевод'])
async def send_money(ctx, member: disnake.Member, amount: int, value):
view = Send_Money()
await update_data(member)
if value in rub:
msg = await ctx.send(f'Вы точно хотите отправить **{amount} рублей** пользователю {member.mention}?', view=view)
valute = 'rub'
await sleep(20)
await msg.delete()
Источник: Stack Overflow на русском