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

import com.lifeknight.relaymcbungeemain.commands.CommandUtilities;
import com.lifeknight.relaymcbungeemain.player.SmartPlayer;
import com.lifeknight.relayutils.player.data.ProfileColumn;
import net.md_5.bungee.api.ChatColor;
import net.md_5.bungee.api.CommandSender;
import net.md_5.bungee.api.plugin.Command;

import java.util.Arrays;
import java.util.List;

public class CreditsCommand extends Command {
    private static final List<String> COMMANDS = Arrays.asList(
            "add",
            "remove",
            "view",
            "set");

    public CreditsCommand() {
        super("tokens");
    }

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

        if (arguments.length > 0) {
            switch (COMMANDS.indexOf(arguments[0].toLowerCase())) {
                case 0:
                    this.handleAddCommand(commandSender, arguments);
                    break;
                case 1:
                    this.handleRemoveCommand(commandSender, arguments);
                    break;
                case 2:
                    this.handleViewCommand(commandSender, arguments);
                    break;
                case 3:
                    this.handleSetCommand(commandSender, arguments);
                    break;
                default:
                    CommandUtilities.sendCommandsMessage(commandSender, COMMANDS);
                    break;
            }
        }
    }

    private void handleAddCommand(CommandSender commandSender, String[] arguments) {
        if (arguments.length > 2) {
            String name = arguments[1];
            SmartPlayer smartPlayer = SmartPlayer.getSmartPlayerOrNick(name);
            if (smartPlayer == null) {
                CommandUtilities.noPlayerFound(commandSender, name);
                return;
            }
            try {
                long amount = Long.parseLong(arguments[2]);
                smartPlayer.setCredits(smartPlayer.getCredits() + amount);
                smartPlayer.updateProfile(ProfileColumn.CREDITS);
                smartPlayer.sendMessage(true, "%sYou've received %s%d%s tokens!", ChatColor.GREEN, ChatColor.YELLOW, amount, ChatColor.GREEN);
                CommandUtilities.sendSuccessMessage(commandSender, "Gave %s %d credits.", smartPlayer.getName(), amount);
            } catch (Exception exception) {
                CommandUtilities.sendUsageMessage(commandSender, "/tokens add [player] [amount]");
            }
        } else {
            CommandUtilities.sendUsageMessage(commandSender, "/tokens add [player] [amount]");
        }
    }

    private void handleRemoveCommand(CommandSender commandSender, String[] arguments) {
        if (arguments.length > 2) {
            String name = arguments[1];
            SmartPlayer smartPlayer = SmartPlayer.getSmartPlayerOrNick(name);
            if (smartPlayer == null) {
                CommandUtilities.noPlayerFound(commandSender, name);
                return;
            }
            try {
                long amount = Long.parseLong(arguments[2]);
                smartPlayer.setCredits(smartPlayer.getCredits() - amount);
                smartPlayer.updateProfile(ProfileColumn.CREDITS);
                CommandUtilities.sendSuccessMessage(commandSender, "Took %d credits from %s.", amount, smartPlayer.getName());
            } catch (Exception exception) {
                CommandUtilities.sendUsageMessage(commandSender, "/tokens remove [player] [amount]");
            }
        } else {
            CommandUtilities.sendUsageMessage(commandSender, "/tokens remove [player] [amount]");
        }
    }

    private void handleViewCommand(CommandSender commandSender, String[] arguments) {
        if (arguments.length > 1) {
            String name = arguments[1];
            SmartPlayer smartPlayer = SmartPlayer.getSmartPlayerOrNick(name);
            if (smartPlayer != null) {
                CommandUtilities.sendInfoMessage(commandSender, "%s%s credits: %d", smartPlayer.getPossessiveFormattedName(), ChatColor.YELLOW, smartPlayer.getCredits());
            }
        } else {
            CommandUtilities.sendUsageMessage(commandSender, "/tokens view [player]");
        }
    }

    private void handleSetCommand(CommandSender commandSender, String[] arguments) {
        if (arguments.length > 2) {
            String name = arguments[1];
            SmartPlayer smartPlayer = SmartPlayer.getSmartPlayerOrNick(name);
            if (smartPlayer == null) {
                CommandUtilities.noPlayerFound(commandSender, name);
                return;
            }
            try {
                long amount = Long.parseLong(arguments[2]);
                smartPlayer.setCredits(amount);
                smartPlayer.updateProfile(ProfileColumn.CREDITS);
                CommandUtilities.sendSuccessMessage(commandSender, "Set %d credits to %s.", amount, smartPlayer.getName());
            } catch (Exception exception) {
                CommandUtilities.sendUsageMessage(commandSender, "/tokens set [player] [amount]");
            }
        } else {
            CommandUtilities.sendUsageMessage(commandSender, "/tokens set [player] [amount]");
        }
    }
}