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.bukkit.Server; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; public class CreateKitCommand extends Command { private final KitsDataSource datasource; public CreateKitCommand(String name, Server server){ super(name); this.datasource = server.getDataSourceManager().getKitsDataSource(); this.description = "Used to create kits on a live server, items format: itemid,amount,damage and "; this.usageMessage = "Usage: /createkit [kit name] [min access level] [delay] [items...]"; this.accessname = "buckit.kits.createkit"; this.setAliases(Arrays.asList("setkit")); } @Override public boolean execute(CommandSender sender, String currentAlias, String[] args) { if(args.length < 3) { sender.sendMessage(Config.DEFAULT_ERROR_COLOR + "Insufficient arguments specified"); sender.sendMessage(Config.DEFAULT_ERROR_COLOR + getUsage()); return true; } String name = args[0].toLowerCase(); int minaccesslevel,delay; try { minaccesslevel = Integer.parseInt(args[1]); } catch (NumberFormatException e ) {sender.sendMessage(Config.DEFAULT_ERROR_COLOR + "Invalid minimum access level '" + args[1] + "' !"); return true; } try { delay = Integer.parseInt(args[2]); } catch (NumberFormatException e ) {sender.sendMessage(Config.DEFAULT_ERROR_COLOR + "Invalid delay '" + args[2] + "' !"); return true; } String[] items = Arrays.copyOfRange(args, 3, args.length); Kit kit; try { int[][] itemarray = getItemArray(items); if (itemarray==null) { sender.sendMessage(Config.DEFAULT_ERROR_COLOR + "Invalid items."); return true; } kit = new Kit(-1, name, itemarray, minaccesslevel, delay); } catch (NumberFormatException e ) {sender.sendMessage(Config.DEFAULT_ERROR_COLOR + "Invalid items."); return true; } if(kit != null && datasource.setKit(kit)) { sender.sendMessage(Config.DEFAULT_INFO_COLOR + "Succesfully added kit '" + name + "' with " + kit.getItems().length + " items."); } else { sender.sendMessage(Config.DEFAULT_ERROR_COLOR + "Error while making kit, please report any errors from the console to Buck - It!"); } return true; } private static int[][] getItemArray(String[] items) throws NumberFormatException{ int[][] rt = new int[items.length][3]; String[] parts; for (int i = 0; i < items.length; i++) { parts = items[i].split(Config.DATABASE_DELIMITER); if (parts.length<3){ return null; } rt[i][0] = Integer.parseInt(parts[0]); rt[i][1] = Integer.parseInt(parts[1]); rt[i][2] = Integer.parseInt(parts[2]); } return rt; } }