BungeeMain / src / main / java / com / lifeknight / relaymcbungeemain / commands / staff / PurchaseCommand.java
PurchaseCommand.java
Raw
package com.lifeknight.relaymcbungeemain.commands.staff;

import com.lifeknight.relaymcbungeemain.commands.CommandUtilities;
import com.lifeknight.relaymcbungeemain.player.SmartPlayer;
import com.lifeknight.relaymcbungeemain.utilities.BotUtils;
import com.lifeknight.relayutils.basic.Miscellaneous;
import com.lifeknight.relayutils.basic.Text;
import com.lifeknight.relayutils.player.Group;
import net.md_5.bungee.api.CommandSender;
import net.md_5.bungee.api.plugin.Command;
import org.bukkit.ChatColor;

import java.util.List;

public class PurchaseCommand extends Command {

    private static final List<String> COMMANDS = Miscellaneous.getList("add", "remove");

    public PurchaseCommand() {
        super("purchase");
    }

    @Override
    public void execute(CommandSender commandSender, String[] arguments) {
        if (!CommandUtilities.isAdministrator(commandSender)) {
            CommandUtilities.sendInsufficientPermissionsMessage(commandSender);
            return;
        }

        if (arguments.length > 2) {
            SmartPlayer smartPlayer = SmartPlayer.getOrCreate(arguments[1]);
            if (smartPlayer == null) {
                CommandUtilities.noPlayerFound(commandSender, arguments[1]);
                return;
            }
            String entire = Text.concatenateArguments(Miscellaneous.from(arguments, 2));
            switch (COMMANDS.indexOf(arguments[0].toLowerCase())) {
                case 0:
                    if (entire.toLowerCase().contains("tokens")) {
                        long credits = Long.parseLong(arguments[2].replace(",", ""));
                        smartPlayer.setCredits(smartPlayer.getCredits() + credits);
                        smartPlayer.broadcastUpdateMessage();
                        smartPlayer.sendMessage(true, "%sYou have received %s%d%s tokens!", ChatColor.GREEN, ChatColor.YELLOW, credits, ChatColor.GREEN);
                        CommandUtilities.sendSuccessMessage(commandSender, "Gave %s %d credits with purchase command.", smartPlayer.getName(), credits);
                        BotUtils.onGivenTokens(smartPlayer, credits);
                    } else {
                        if (entire.equalsIgnoreCase("skiptier")) {
                            smartPlayer.onPurchaseSkipTier();
                            BotUtils.sendMessage("purchases", "%s skipped tier to %s", smartPlayer.getName(), smartPlayer.getFormattedName());
                        } else {

                            Group group = Group.getGroup(Text.toComparable(entire));
                            smartPlayer.addToGroup(group);
                            smartPlayer.sendMessage(true, "%sYou are now %s%s.", ChatColor.GREEN, smartPlayer.getFormattedName(), ChatColor.GREEN);
                            if (group == Group.CHAMPION) {
                                smartPlayer.onPurchaseChampion();
                            }
                            BotUtils.onGivenGroup(smartPlayer, group);
                        }
                        CommandUtilities.sendSuccessMessage(commandSender, "Gave %s to %s with purchase command.", entire, smartPlayer.getName());
                    }
                    break;
                case 1:
                    if (entire.toLowerCase().contains("tokens")) {
                        long credits = Long.parseLong(arguments[2].replace(",", ""));
                        smartPlayer.setCredits(smartPlayer.getCredits() - credits);
                        smartPlayer.broadcastUpdateMessage();
                        CommandUtilities.sendSuccessMessage(commandSender, "Took %s %d credits with purchase command.", smartPlayer.getName(), credits);
                        BotUtils.onTakenCredits(smartPlayer, credits);
                    } else {
                        Group group = Group.getGroup(Text.toComparable(entire));
                        smartPlayer.removeFromGroup(group);
                        CommandUtilities.sendSuccessMessage(commandSender, "Took %s to %s with purchase command.", group.getGroupName(), smartPlayer.getName());
                        BotUtils.onTakenGroup(smartPlayer, group);
                    }
                    break;
                default:
                    CommandUtilities.sendCommandsMessage(commandSender, COMMANDS);
                    break;
            }
        } else {
            CommandUtilities.sendUsageMessage(commandSender, "/purchase add/remove [recipient] [item]");
        }
    }
}