package consolecommands; import com.aionemu.gameserver.model.gameobjects.Item; import com.aionemu.gameserver.model.gameobjects.Persistable.PersistentState; import com.aionemu.gameserver.model.gameobjects.player.Player; import com.aionemu.gameserver.network.aion.serverpackets.SM_SYSTEM_MESSAGE; import com.aionemu.gameserver.services.EnchantService; import com.aionemu.gameserver.services.item.ItemPacketService; import com.aionemu.gameserver.services.item.ItemPacketService.ItemUpdateType; import com.aionemu.gameserver.utils.PacketSendUtility; import com.aionemu.gameserver.utils.chathandlers.ConsoleCommand; /** * @author ginho1 */ public class Set_enchantcount extends ConsoleCommand { public Set_enchantcount() { super("set_enchantcount"); } @Override public void execute(Player admin, String... params) { if (params.length < 1) { info(admin, null); return; } int objId; int enchant; try { objId = Integer.parseInt(params[0]); enchant = Integer.parseInt(params[1]); } catch (NumberFormatException e) { PacketSendUtility.sendMessage(admin, "Invalid params."); return; } Item item = admin.getInventory().getItemByObjId(objId); if (item == null) item = admin.getEquipment().getEquippedItemByObjId(objId); if (item != null) { int curEnchant = item.getEnchantLevel(); int maxEnchant = item.getItemTemplate().getMaxEnchantLevel(); maxEnchant += item.getItemTemplate().getMaxEnchantBonus(); if (curEnchant + enchant <= maxEnchant) { curEnchant += enchant; item.setEnchantLevel(Math.min(curEnchant, maxEnchant)); if (item.isEquipped()) admin.getGameStats().updateStatsVisually(); ItemPacketService.updateItemAfterInfoChange(admin, item, ItemUpdateType.STATS_CHANGE); if (item.getEnchantEffect() != null) { item.getEnchantEffect().endEffect(admin); item.setEnchantEffect(null); } if (item.getEnchantLevel() > 0 && item.isEquipped()) { EnchantService.applyEnchantEffect(item, admin, item.getEnchantLevel()); } if (item.isEquipped()) admin.getEquipment().setPersistentState(PersistentState.UPDATE_REQUIRED); else admin.getInventory().setPersistentState(PersistentState.UPDATE_REQUIRED); PacketSendUtility.sendPacket(admin, SM_SYSTEM_MESSAGE.STR_MSG_ENCHANT_ITEM_SUCCEED_NEW(item.getL10n(), enchant)); } else { PacketSendUtility.sendMessage(admin, "Max Enchat for this item is: " + maxEnchant); } } else { PacketSendUtility.sendMessage(admin, "Invalid item."); return; } } @Override public void info(Player admin, String message) { PacketSendUtility.sendMessage(admin, "syntax ///set_enchantcount "); } }