Initial commit
This commit is contained in:
@@ -0,0 +1,130 @@
|
||||
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;
|
||||
|
||||
case "admin":
|
||||
if (player.hasPermission(plugin.getConfig().getString("permissions.mscroleadmin"))) {
|
||||
new AdminGUI().openAdminPanel(player);
|
||||
} else {
|
||||
player.sendMessage(plugin.getPrefix() + plugin.getMessageManager().getMessage("no-permission"));
|
||||
}
|
||||
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-admin"));
|
||||
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);
|
||||
plugin.getCurrencyManager().addBalance(target, amount);
|
||||
|
||||
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());
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user