package de.iani.treasurechest.commands;
import de.iani.cubesideutils.StringUtil;
import de.iani.cubesideutils.bukkit.commands.SubCommand;
import de.iani.cubesideutils.bukkit.commands.exceptions.DisallowsCommandBlockException;
import de.iani.cubesideutils.bukkit.commands.exceptions.IllegalSyntaxException;
import de.iani.cubesideutils.bukkit.commands.exceptions.InternalCommandException;
import de.iani.cubesideutils.bukkit.commands.exceptions.NoPermissionException;
import de.iani.cubesideutils.bukkit.commands.exceptions.RequiresPlayerException;
import de.iani.cubesideutils.commands.ArgsParser;
import de.iani.treasurechest.Permissions;
import de.iani.treasurechest.TreasureChest;
import de.iani.treasurechest.TreasureChestItem;
import java.util.Collection;
import java.util.List;
import org.bukkit.Material;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack;
public class AddItemCommand extends SubCommand {
private TreasureChest plugin;
public AddItemCommand(TreasureChest plugin) {
this.plugin = plugin;
}
@Override
public String getRequiredPermission() {
return Permissions.CREATE;
}
@Override
public boolean requiresPlayer() {
return true;
}
@Override
public boolean onCommand(CommandSender sender, Command command, String alias, String commandString, ArgsParser args) throws DisallowsCommandBlockException, RequiresPlayerException, NoPermissionException, IllegalSyntaxException, InternalCommandException {
if (args.remaining() != 0) {
plugin.sendMessage(sender, commandString + getUsage(), true);
return true;
}
Player player = ((Player) sender);
ItemStack inHand = player.getInventory().getItemInMainHand();
if (inHand == null || inHand.getType() == Material.AIR || inHand.getAmount() == 0) {
plugin.sendMessage(sender, "You have to hold the item in hand!", true);
return true;
}
TreasureChestItem activeItem = plugin.getData().getActiveItem(player.getUniqueId());
if (activeItem == null) {
plugin.sendMessage(sender, "You have no active item!", true);
return true;
}
activeItem.addPriceItem(inHand.clone());
plugin.sendMessage(sender, "Item added: " + inHand.getAmount() + " " + StringUtil.capitalizeFirstLetter(inHand.getType().name(), true));
return true;
}
@Override
public Collection<String> onTabComplete(CommandSender sender, Command command, String alias, ArgsParser args) {
return List.of();
}
}