From af2707120ae0a890f0729c62eef9c3884b9bd22e Mon Sep 17 00:00:00 2001 From: P0nk Date: Thu, 9 Sep 2021 22:14:54 +0200 Subject: [PATCH] Rename and clean up MapleLootManager --- src/main/java/server/life/Monster.java | 4 +- ...MapleLootManager.java => LootManager.java} | 37 ++++++++++--------- 2 files changed, 21 insertions(+), 20 deletions(-) rename src/main/java/server/loot/{MapleLootManager.java => LootManager.java} (91%) diff --git a/src/main/java/server/life/Monster.java b/src/main/java/server/life/Monster.java index 773890e45b..1c39354b13 100644 --- a/src/main/java/server/life/Monster.java +++ b/src/main/java/server/life/Monster.java @@ -45,7 +45,7 @@ import scripting.event.EventInstanceManager; import server.MapleStatEffect; import server.TimerManager; import server.life.LifeFactory.BanishInfo; -import server.loot.MapleLootManager; +import server.loot.LootManager; import server.maps.AbstractAnimatedMapleMapObject; import server.maps.MapleMap; import server.maps.MapleMapObjectType; @@ -751,7 +751,7 @@ public class Monster extends AbstractLoadedLife { } } - return MapleLootManager.retrieveRelevantDrops(this.getId(), lootChars); + return LootManager.retrieveRelevantDrops(this.getId(), lootChars); } public Character killBy(final Character killer) { diff --git a/src/main/java/server/loot/MapleLootManager.java b/src/main/java/server/loot/LootManager.java similarity index 91% rename from src/main/java/server/loot/MapleLootManager.java rename to src/main/java/server/loot/LootManager.java index 1d450f91d0..0515d85134 100644 --- a/src/main/java/server/loot/MapleLootManager.java +++ b/src/main/java/server/loot/LootManager.java @@ -28,11 +28,10 @@ import java.util.LinkedList; import java.util.List; /** - * * @author Ronan */ -public class MapleLootManager { - +public class LootManager { + private static boolean isRelevantDrop(MonsterDropEntry dropEntry, List players, List playersInv) { int qStartAmount = 0, qCompleteAmount = 0; MapleQuest quest = MapleQuest.getInstance(dropEntry.questid); @@ -40,11 +39,11 @@ public class MapleLootManager { qStartAmount = quest.getStartItemAmountNeeded(dropEntry.itemId); qCompleteAmount = quest.getCompleteItemAmountNeeded(dropEntry.itemId); } - + //boolean restricted = MapleItemInformationProvider.getInstance().isPickupRestricted(dropEntry.itemId); for (int i = 0; i < players.size(); i++) { LootInventory chrInv = playersInv.get(i); - + if (dropEntry.questid > 0) { int qItemAmount, chrQuestStatus = players.get(i).getQuestStatus(dropEntry.questid); if (chrQuestStatus == 0) { @@ -54,9 +53,9 @@ public class MapleLootManager { } else { qItemAmount = qCompleteAmount; } - + // thanks kvmba for noticing quest items with no required amount failing to be detected as such - + int qItemStatus = chrInv.hasItem(dropEntry.itemId, qItemAmount); if (qItemStatus == 2) { continue; @@ -66,31 +65,33 @@ public class MapleLootManager { } /*else if (restricted && chrInv.hasItem(dropEntry.itemId, 1) > 0) { // thanks Conrad, Legalize for noticing eligible loots not being available to drop for non-killer parties continue; }*/ - + return true; } - + return false; } - + public static List retrieveRelevantDrops(int monsterId, List players) { List loots = MonsterInformationProvider.getInstance().retrieveEffectiveDrop(monsterId); - if(loots.isEmpty()) return loots; - + if (loots.isEmpty()) { + return loots; + } + List playersInv = new LinkedList<>(); - for(Character chr : players) { + for (Character chr : players) { LootInventory lootInv = new LootInventory(chr); playersInv.add(lootInv); } - + List effectiveLoot = new LinkedList<>(); - for(MonsterDropEntry mde : loots) { - if(isRelevantDrop(mde, players, playersInv)) { + for (MonsterDropEntry mde : loots) { + if (isRelevantDrop(mde, players, playersInv)) { effectiveLoot.add(mde); } } - + return effectiveLoot; } - + }