// • ▌ ▄ ·. ▄▄▄· ▄▄ • ▪ ▄▄· ▄▄▄▄· ▄▄▄· ▐▄▄▄ ▄▄▄ . // ·██ ▐███▪▐█ ▀█ ▐█ ▀ ▪██ ▐█ ▌▪▐█ ▀█▪▐█ ▀█ •█▌ ▐█▐▌· // ▐█ ▌▐▌▐█·▄█▀▀█ ▄█ ▀█▄▐█·██ ▄▄▐█▀▀█▄▄█▀▀█ ▐█▐ ▐▌▐▀▀▀ // ██ ██▌▐█▌▐█ ▪▐▌▐█▄▪▐█▐█▌▐███▌██▄▪▐█▐█ ▪▐▌██▐ █▌▐█▄▄▌ // ▀▀ █▪▀▀▀ ▀ ▀ ·▀▀▀▀ ▀▀▀·▀▀▀ ·▀▀▀▀ ▀ ▀ ▀▀ █▪ ▀▀▀ // Magicbane Emulator Project © 2013 - 2022 // www.magicbane.com package engine.devcmd.cmds; import engine.devcmd.AbstractDevCmd; import engine.gameManager.ZoneManager; import engine.objects.AbstractGameObject; import engine.objects.PlayerCharacter; import engine.objects.Zone; public class AuditMobsCmd extends AbstractDevCmd { public AuditMobsCmd() { super("auditmobs"); } @Override protected void _doCmd(PlayerCharacter pcSender, String[] words, AbstractGameObject target) { if (pcSender == null) return; //get Zone to check mobs against Zone zone; if (words.length == 2){ if (words[0].equals("all")){ int plusplus = 0; int count = Integer.parseInt(words[1]); for (Zone zoneMicro: ZoneManager.getAllZones()){ int size = zoneMicro.zoneMobSet.size(); if (size >= count){ plusplus++; throwbackInfo(pcSender, zoneMicro.getName() + " at location " + zoneMicro.getLoc().toString() + " has " + size + " mobs. "); System.out.println(zoneMicro.getName() + " at location " + zoneMicro.getLoc().toString() + " has " + size + " mobs. "); } } throwbackInfo(pcSender," there are " +plusplus + " zones with at least " + count + " mobs in each."); } return; } if (words.length > 1) { this.sendUsage(pcSender); return; } else if (words.length == 1) { int uuid; try { uuid = Integer.parseInt(words[0]); zone = ZoneManager.getZoneByUUID(uuid); } catch (NumberFormatException e) { zone = ZoneManager.findSmallestZone(pcSender.getLoc()); } } else zone = ZoneManager.findSmallestZone(pcSender.getLoc()); if (zone == null) { throwbackError(pcSender, "Unable to find the zone"); return; } //get list of mobs for zone if (zone.zoneMobSet.isEmpty()) { throwbackError(pcSender, "No mobs found for this zone."); return; } // ConcurrentHashMap spawnMap = Mob.getSpawnMap(); //ConcurrentHashMap respawnMap = Mob.getRespawnMap(); // ConcurrentHashMap despawnMap = Mob.getDespawnMap(); throwbackInfo(pcSender, zone.getName() + ", numMobs: " + zone.zoneMobSet.size()); throwbackInfo(pcSender, "UUID, dbID, inRespawnMap, isAlive, activeAI, Loc"); //mob not found in spawn map, check respawn boolean inRespawn = false; } @Override protected String _getUsageString() { return "' /auditmobs [zone.UUID]'"; } @Override protected String _getHelpString() { return "Audits all the mobs in a zone."; } }