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]"); } } }