const { Telegraf } = require('telegraf') const bot = new Telegraf(process.env.BOT_TOKEN) const { UserModel, WorldModel } = require('/dev/Telegram/CampFireGameBot/config') module.exports = async (ctx) => { ctx.args = ctx.update.message.text.split(' ') if (!ctx.args[1] || !ctx.args[2]) return ctx.reply(`/pay [Никнейм] [Сумма]`) if (!Number(ctx.args[2])) return ctx.reply(`❕ Сумма должна быть числовая.`) let sender = await UserModel.findByPk(ctx.from.id); let receiver = await UserModel.findOne({ where: { username: ctx.args[1] } }); let world = await WorldModel.findByPk(1) let fee = Number(Math.trunc(ctx.args[2] / 100 * world.transactionfee)) if (ctx.args[2] == 0 || ctx.args[2] < 100) return ctx.reply(`❕ Минимальная сумма перевода ₽100.`) if (sender.money < ctx.args[2]) return ctx.reply(`❕ Недостаточно средств!`) if (sender.money < Number(ctx.args[2]) + fee) return ctx.reply(`❕ Недостаточно средств для перевода с комиссией!`) sender.money -= Number(ctx.args[2]) sender.money -= Number(fee) world.balance += Number(fee) await sender.save(); await world.save(); receiver.money += Number(ctx.args[2]) await receiver.save(); let pmToReceiver = `🔽 Входящий перевод.\n\n🔼 Отправитель: ${sender.username}\n🆔 Отправителя: ${sender.telegram_id}\n🔢 Сумма: ₽${ctx.args[2]}\n🆕 Ваш баланс: ₽${receiver.money}` bot.telegram.sendMessage(receiver.telegram_id, pmToReceiver) return ctx.reply(`🔼 Исходящий перевод.\n\n🔽 Получатель: ${receiver.username}\n🆔 Получателя: ${receiver.telegram_id}\n🔢 Сумма: ₽${ctx.args[2]}\nℹ️ Комиссия: ₽${fee}\n🆕 Ваш баланс: ₽${sender.money}`) }