63 lines
2.1 KiB
Kotlin
63 lines
2.1 KiB
Kotlin
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<out String>): 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<out String>
|
|
): MutableList<String> {
|
|
return when (p3.size) {
|
|
1 -> mutableListOf("deposit", "withdraw");
|
|
else -> mutableListOf();
|
|
}
|
|
}
|
|
} |