Files
Mscroll/src/main/java/com/github/krzysiek944/mscrole/commands/MscroleCommand.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());
}
}