package admincommands; import com.aionemu.gameserver.dataholders.DataManager; import com.aionemu.gameserver.model.gameobjects.player.Player; import com.aionemu.gameserver.model.items.ItemId; import com.aionemu.gameserver.model.templates.item.ItemTemplate; import com.aionemu.gameserver.network.aion.serverpackets.SM_SYSTEM_MESSAGE; import com.aionemu.gameserver.services.AdminService; import com.aionemu.gameserver.services.item.ItemService; import com.aionemu.gameserver.utils.ChatUtil; import com.aionemu.gameserver.utils.PacketSendUtility; import com.aionemu.gameserver.utils.Util; import com.aionemu.gameserver.utils.chathandlers.AdminCommand; import com.aionemu.gameserver.world.World; /** * @author Phantom, ATracer, Source */ public class Add extends AdminCommand { public Add() { super("add", "Adds Kinah or items to a player's inventory."); // @formatter:off setSyntaxInfo( "kinah - Adds the specified amount of Kinah to your inventory.", " [count] - Adds the specified item(s) to your inventory.", " kinah - Adds the specified amount of Kinah to the player's inventory.", " [count] - Adds the specified item(s) to the player's inventory." ); // @formatter:on } @Override public void execute(Player player, String... params) { if (params.length < 1) { sendInfo(player); return; } int index = 0; Player receiver = player; int itemId = params.length == 2 && "Kinah".equalsIgnoreCase(params[index]) ? ItemId.KINAH : ChatUtil.getItemId(params[index]); if (itemId == 0) { String playerName = Util.convertName(params[index]); receiver = World.getInstance().getPlayer(playerName); if (receiver == null) { PacketSendUtility.sendPacket(player, SM_SYSTEM_MESSAGE.STR_NO_SUCH_USER(playerName)); return; } if (++index < params.length) itemId = "Kinah".equalsIgnoreCase(params[index]) ? ItemId.KINAH : ChatUtil.getItemId(params[index]); } ItemTemplate itemTemplate; if (itemId == 0 || (itemTemplate = DataManager.ITEM_DATA.getItemTemplate(itemId)) == null) { sendInfo(player, "Invalid item."); return; } long itemCount = params.length > ++index ? Long.parseLong(params[index]) : 1; if (itemCount <= 0 || (itemId == ItemId.KINAH ? receiver.getInventory().getKinah() + itemCount < 0 : itemCount / itemTemplate.getMaxStackCount() > 126)) { sendInfo(player, "Invalid item count."); return; } if (!AdminService.getInstance().canOperate(player, receiver, itemId, "command //add")) return; long notAddedCount = ItemService.addItem(receiver, itemId, itemCount, true); if (notAddedCount == 0) { if (player != receiver) { sendInfo(player, "You gave " + itemCount + " x [item:" + itemId + "] to " + receiver.getName() + "."); sendInfo(receiver, "You received " + itemCount + " x [item:" + itemId + "] from " + player.getName() + "."); } } else { sendInfo(player, "Item couldn't be added"); } } }