122 lines
4.6 KiB
Java
122 lines
4.6 KiB
Java
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 <player> <amount>"));
|
|
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());
|
|
}
|
|
|
|
}
|