package dev.solsynth.snConnect.commands import dev.solsynth.snConnect.services.SnOrderService import dev.solsynth.snConnect.services.SnService import net.md_5.bungee.api.chat.ClickEvent import net.md_5.bungee.api.chat.TextComponent import org.bukkit.ChatColor import org.bukkit.command.Command import org.bukkit.command.CommandExecutor import org.bukkit.command.CommandSender import org.bukkit.command.TabCompleter import org.bukkit.entity.Player class SnCommand(private val sn: SnService) : CommandExecutor { override fun onCommand(p0: CommandSender, p1: Command, p2: String, p3: Array): Boolean { if (p0 !is Player) { return false; } if (p3.isEmpty()) return false; when (p3[0].lowercase()) { "deposit" -> { if (p3.size < 2) { p0.sendMessage(ChatColor.RED.toString() + "You need to specific an amount to deposit.") return true; } val amount = p3[1].toDoubleOrNull(); if (amount == null) { p0.sendMessage(ChatColor.RED.toString() + "You need to specific an amount of number to deposit.") return true; } val orderSrv = SnOrderService(sn); val order = orderSrv.createOrder("Deposit to Highland MC", amount / 100); val linkComponent = TextComponent(ChatColor.GOLD.toString() + "Click here to payment page") linkComponent.clickEvent = ClickEvent(ClickEvent.Action.OPEN_URL, "https://solsynth.dev/orders/${order.id}"); p0.spigot().sendMessage(linkComponent); } else -> return false; } return true; } } class SnCommandCompleter : TabCompleter { override fun onTabComplete( p0: CommandSender, p1: Command, p2: String, p3: Array ): MutableList { return when (p3.size) { 1 -> mutableListOf("deposit", "withdraw"); else -> mutableListOf(); } } }