package org.buckit.commands.kits; import java.util.Arrays; import org.buckit.Config; import org.buckit.datasource.type.KitsDataSource; import org.buckit.model.Kit; import org.buckit.util.TimeFormat; import org.bukkit.Server; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import org.bukkit.inventory.ItemStack; public class KitCommand extends Command { private final KitsDataSource datasource; public KitCommand(String name, Server server){ super(name); this.datasource = server.getDataSourceManager().getKitsDataSource(); this.description = "Gives the specified kit to yourself."; this.usageMessage = "Usage: /kit [kit name]"; this.accessname = "buckit.kits.kit"; this.setAliases(Arrays.asList("getkit")); } @Override public boolean execute(CommandSender sender, String currentAlias, String[] args) { if(!(sender instanceof Player)) return false; if(args.length < 1) { sender.sendMessage(Config.DEFAULT_ERROR_COLOR + "Please specify a kit name."); return true; } String name = args[0].toLowerCase(); Kit kit = datasource.getKit(name); Player player = ((Player)sender); if(kit == null || kit.getMinaccesslevel() > player.getAccessLevel().getId()) { sender.sendMessage(Config.DEFAULT_ERROR_COLOR + "No kit found with name '" + name + "' ."); return true; } int lastused = (kit.getDelay() != 0 ? datasource.lastUsed(player.getPlayerId(), name) + kit.getDelay() : 0); if(lastused > (System.currentTimeMillis()/1000)) { sender.sendMessage(Config.DEFAULT_ERROR_COLOR + "You cannot use this kit yet, please wait " + TimeFormat.formatRemaining((int) (lastused - (System.currentTimeMillis()/1000))) + " before using this kit again."); } else { ItemStack[] items = kit.getItems(); player.getInventory().addItem(items); if(kit.getDelay() != 0) datasource.setLastUsed(player.getPlayerId(), kit.getName(), kit.getDelay() + (int) (System.currentTimeMillis()/1000)); sender.sendMessage(Config.DEFAULT_INFO_COLOR + "There you go " + player.getName() + "."); } return true; } }