// • ▌ ▄ ·. ▄▄▄· ▄▄ • ▪ ▄▄· ▄▄▄▄· ▄▄▄· ▐▄▄▄ ▄▄▄ . // ·██ ▐███▪▐█ ▀█ ▐█ ▀ ▪██ ▐█ ▌▪▐█ ▀█▪▐█ ▀█ •█▌ ▐█▐▌· // ▐█ ▌▐▌▐█·▄█▀▀█ ▄█ ▀█▄▐█·██ ▄▄▐█▀▀█▄▄█▀▀█ ▐█▐ ▐▌▐▀▀▀ // ██ ██▌▐█▌▐█ ▪▐▌▐█▄▪▐█▐█▌▐███▌██▄▪▐█▐█ ▪▐▌██▐ █▌▐█▄▄▌ // ▀▀ █▪▀▀▀ ▀ ▀ ·▀▀▀▀ ▀▀▀·▀▀▀ ·▀▀▀▀ ▀ ▀ ▀▀ █▪ ▀▀▀ // 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."; } }