// • ▌ ▄ ·. ▄▄▄· ▄▄ • ▪ ▄▄· ▄▄▄▄· ▄▄▄· ▐▄▄▄ ▄▄▄ . // ·██ ▐███▪▐█ ▀█ ▐█ ▀ ▪██ ▐█ ▌▪▐█ ▀█▪▐█ ▀█ •█▌ ▐█▐▌· // ▐█ ▌▐▌▐█·▄█▀▀█ ▄█ ▀█▄▐█·██ ▄▄▐█▀▀█▄▄█▀▀█ ▐█▐ ▐▌▐▀▀▀ // ██ ██▌▐█▌▐█ ▪▐▌▐█▄▪▐█▐█▌▐███▌██▄▪▐█▐█ ▪▐▌██▐ █▌▐█▄▄▌ // ▀▀ █▪▀▀▀ ▀ ▀ ·▀▀▀▀ ▀▀▀·▀▀▀ ·▀▀▀▀ ▀ ▀ ▀▀ █▪ ▀▀▀ // Magicbane Emulator Project © 2013 - 2022 // www.magicbane.com package engine.devcmd.cmds; import engine.Enum.ModType; import engine.devcmd.AbstractDevCmd; import engine.gameManager.PowersManager; import engine.net.ItemProductionManager; import engine.objects.*; import engine.powers.effectmodifiers.AbstractEffectModifier; import engine.powers.poweractions.AbstractPowerAction; import org.pmw.tinylog.Logger; public class AuditFailedItemsCmd extends AbstractDevCmd { public AuditFailedItemsCmd() { super("faileditems"); } @Override protected void _doCmd(PlayerCharacter pcSender, String[] words, AbstractGameObject target) { if (ItemProductionManager.FailedItems.isEmpty()) return; Logger.info("Auditing Item production Failed Items"); String newLine = "\r\n"; String auditFailedItem = "Failed Item Name | Prefix | Suffix | NPC | Contract | Player | "; for (ProducedItem failedItem : ItemProductionManager.FailedItems) { String npcName = ""; String playerName = ""; String contractName = ""; String prefix = ""; String suffix = ""; String itemName = ""; NPC npc = NPC.getFromCache(failedItem.getNpcUID()); if (npc == null) { npcName = "null"; contractName = "null"; } else { npcName = npc.getName(); if (npc.getContract() != null) contractName = npc.getContract().getName(); } PlayerCharacter roller = PlayerCharacter.getFromCache(failedItem.getPlayerID()); if (roller == null) playerName = "null"; else playerName = roller.getName(); ItemBase ib = ItemBase.getItemBase(failedItem.getItemBaseID()); if (ib != null) { itemName = ib.getName(); } if (failedItem.isRandom() == false) { if (failedItem.getPrefix().isEmpty() == false) { AbstractPowerAction pa = PowersManager.getPowerActionByIDString(failedItem.getPrefix()); if (pa != null) { for (AbstractEffectModifier aem : pa.getEffectsBase().getModifiers()) { if (aem.modType.equals(ModType.ItemName)) { prefix = aem.getString1(); break; } } } } if (failedItem.getSuffix().isEmpty() == false) { AbstractPowerAction pa = PowersManager.getPowerActionByIDString(failedItem.getSuffix()); if (pa != null) { for (AbstractEffectModifier aem : pa.getEffectsBase().getModifiers()) { if (aem.modType.equals(ModType.ItemName)) { suffix = aem.getString1(); break; } } } } } else { prefix = "random"; } auditFailedItem += newLine; auditFailedItem += itemName + " | " + prefix + " | " + suffix + " | " + failedItem.getNpcUID() + ":" + npcName + " | " + contractName + " | " + failedItem.getPlayerID() + ":" + playerName; } Logger.info(auditFailedItem); ItemProductionManager.FailedItems.clear(); } @Override protected String _getUsageString() { return "' /bounds'"; } @Override protected String _getHelpString() { return "Audits all the mobs in a zone."; } }