/* * This program is free software: you can redistribute it and/or modify it under * the terms of the GNU General Public License as published by the Free Software * Foundation, either version 3 of the License, or (at your option) any later * version. * * This program is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more * details. * * You should have received a copy of the GNU General Public License along with * this program. If not, see . */ package net.sf.l2j.gameserver.handler.admincommandhandlers; import java.util.StringTokenizer; import net.sf.l2j.gameserver.datatables.ItemTable; import net.sf.l2j.gameserver.handler.IAdminCommandHandler; import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance; import net.sf.l2j.gameserver.serverpackets.ItemList; import net.sf.l2j.gameserver.templates.L2Item; /** * This class handles following admin commands: * - itemcreate = show menu * - create_item [num] = creates num items with respective id, if num is not specified, assumes 1. * * @version $Revision: 1.2.2.2.2.3 $ $Date: 2005/04/11 10:06:06 $ */ public class AdminCreateItem implements IAdminCommandHandler { private static final String[] ADMIN_COMMANDS = { "admin_itemcreate", "admin_create_item" }; public boolean useAdminCommand(String command, L2PcInstance activeChar) { if (command.equals("admin_itemcreate")) { AdminHelpPage.showHelpPage(activeChar, "itemcreation.htm"); } else if (command.startsWith("admin_create_item")) { try { String val = command.substring(17); StringTokenizer st = new StringTokenizer(val); if (st.countTokens()== 2) { String id = st.nextToken(); int idval = Integer.parseInt(id); String num = st.nextToken(); int numval = Integer.parseInt(num); createItem(activeChar,idval,numval); } else if (st.countTokens()== 1) { String id = st.nextToken(); int idval = Integer.parseInt(id); createItem(activeChar,idval,1); } } catch (StringIndexOutOfBoundsException e) { activeChar.sendMessage("Usage: //itemcreate [amount]"); } catch (NumberFormatException nfe) { activeChar.sendMessage("Specify a valid number."); } AdminHelpPage.showHelpPage(activeChar, "itemcreation.htm"); } return true; } public String[] getAdminCommandList() { return ADMIN_COMMANDS; } private void createItem(L2PcInstance activeChar, int id, int num) { L2Item template = ItemTable.getInstance().getTemplate(id); if (template == null) { activeChar.sendMessage("This item doesn't exist."); return; } if (num > 20) { if (!template.isStackable()) { activeChar.sendMessage("This item does not stack - Creation aborted."); return; } } activeChar.getInventory().addItem("Admin", id, num, activeChar, null); ItemList il = new ItemList(activeChar, true); activeChar.sendPacket(il); activeChar.sendMessage("You have spawned " + num + " item(s) number " + id + " in your inventory."); } }