package com.github.krzysiek944.mscrole.commands; import com.github.krzysiek944.mscrole.MSCROLE; import com.github.krzysiek944.mscrole.gui.AdminGUI; import com.github.krzysiek944.mscrole.gui.ShopGUI; import org.bukkit.Bukkit; import org.bukkit.command.Command; import org.bukkit.command.CommandExecutor; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; public class MscroleCommand implements CommandExecutor { private final MSCROLE plugin = MSCROLE.getInstance(); @Override public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { if (!(sender instanceof Player)) { sender.sendMessage(plugin.getMessageManager().getMessage("only-player")); return true; } Player player = (Player) sender; if (!player.hasPermission(plugin.getConfig().getString("permissions.mscrole"))) { player.sendMessage(plugin.getPrefix() + plugin.getMessageManager().getMessage("no-permission")); return true; } if (args.length == 0) { sendHelp(player); return true; } String subCommand = args[0].toLowerCase(); switch (subCommand) { case "balans": case "balance": case "bal": showBalance(player); break; case "wyslij": case "send": case "pay": sendMoney(player, args); break; case "sklep": case "shop": new ShopGUI().openShop(player); break; default: player.sendMessage(plugin.getPrefix() + plugin.getMessageManager().getMessage("unknown-command")); break; } return true; } private void sendHelp(Player player) { player.sendMessage(""); player.sendMessage(plugin.getMessageManager().getMessage("help-header")); player.sendMessage(plugin.getMessageManager().getMessage("help-balance")); player.sendMessage(plugin.getMessageManager().getMessage("help-send")); player.sendMessage(plugin.getMessageManager().getMessage("help-shop")); player.sendMessage(plugin.getMessageManager().getMessage("help-footer")); player.sendMessage(""); } private void showBalance(Player player) { int balance = plugin.getCurrencyManager().getBalance(player); player.sendMessage(plugin.getPrefix() + plugin.getMessageManager().getMessage("currency-check").replace("{amount}", String.valueOf(balance))); } private void sendMoney(Player player, String[] args) { if (args.length < 3) { player.sendMessage(plugin.getPrefix() + plugin.getMessageManager().getMessage("invalid-usage").replace("{usage}", "/mscroll send ")); return; } Player target = Bukkit.getPlayer(args[1]); if (target == null) { player.sendMessage(plugin.getPrefix() + plugin.getMessageManager().getMessage("player-not-found")); return; } if (target == player) { player.sendMessage(plugin.getPrefix() + plugin.getMessageManager().getMessage("cannot-send-to-self")); return; } int amount; try { amount = Integer.parseInt(args[2]); } catch (NumberFormatException e) { player.sendMessage(plugin.getPrefix() + plugin.getMessageManager().getMessage("invalid-amount")); return; } if (amount <= 0) { player.sendMessage(plugin.getPrefix() + plugin.getMessageManager().getMessage("amount-must-be-positive")); return; } int playerBalance = plugin.getCurrencyManager().getBalance(player); if (playerBalance < amount) { player.sendMessage(plugin.getPrefix() + plugin.getMessageManager().getMessage("not-enough-currency").replace("{amount}", String.valueOf(playerBalance))); return; } plugin.getCurrencyManager().subtractBalance(player, amount, player.getName()); plugin.getCurrencyManager().addBalance(target, amount, player.getName()); player.sendMessage(plugin.getPrefix() + plugin.getMessageManager().getMessage("currency-sent").replace("{amount}", String.valueOf(amount)).replace("{receiver}", target.getName())); target.sendMessage(plugin.getPrefix() + plugin.getMessageManager().getMessage("currency-received").replace("{amount}", String.valueOf(amount)).replace("{sender}", player.getName())); plugin.logToFile("[Currency] " + player.getName() + " sent " + amount + " to " + target.getName()); } }