From fef273ecc9689b007d19a8666bca95fdfe3f5ff9 Mon Sep 17 00:00:00 2001 From: P0nk Date: Thu, 9 Sep 2021 22:42:02 +0200 Subject: [PATCH] Rename and clean up MapleQuest --- src/main/java/client/Character.java | 46 +- src/main/java/client/QuestStatus.java | 18 +- .../command/commands/gm2/SearchCommand.java | 4 +- .../commands/gm3/QuestCompleteCommand.java | 4 +- .../commands/gm3/QuestResetCommand.java | 4 +- .../commands/gm3/QuestStartCommand.java | 4 +- .../commands/gm6/ClearQuestCacheCommand.java | 4 +- .../commands/gm6/ClearQuestCommand.java | 4 +- .../java/constants/game/GameConstants.java | 4 +- src/main/java/net/server/Server.java | 4 +- .../channel/handlers/AdminCommandHandler.java | 4 +- .../channel/handlers/QuestActionHandler.java | 6 +- .../channel/handlers/RaiseIncExpHandler.java | 4 +- .../channel/handlers/RaiseUIStateHandler.java | 4 +- .../scripting/AbstractPlayerInteraction.java | 22 +- .../java/scripting/event/EventManager.java | 6 +- .../java/scripting/map/MapScriptMethods.java | 6 +- .../scripting/quest/QuestActionManager.java | 4 +- .../scripting/quest/QuestScriptManager.java | 6 +- src/main/java/server/loot/LootManager.java | 4 +- src/main/java/server/maps/MapleMap.java | 2 +- .../quest/{MapleQuest.java => Quest.java} | 556 +++++++++--------- .../java/server/quest/actions/BuffAction.java | 4 +- .../java/server/quest/actions/ExpAction.java | 4 +- .../java/server/quest/actions/FameAction.java | 4 +- .../java/server/quest/actions/InfoAction.java | 4 +- .../java/server/quest/actions/ItemAction.java | 4 +- .../quest/actions/MapleQuestAction.java | 4 +- .../java/server/quest/actions/MesoAction.java | 4 +- .../server/quest/actions/NextQuestAction.java | 6 +- .../server/quest/actions/PetSkillAction.java | 6 +- .../server/quest/actions/PetSpeedAction.java | 4 +- .../quest/actions/PetTamenessAction.java | 4 +- .../server/quest/actions/QuestAction.java | 6 +- .../server/quest/actions/SkillAction.java | 4 +- .../requirements/BuffExceptRequirement.java | 6 +- .../quest/requirements/BuffRequirement.java | 4 +- .../CompletedQuestRequirement.java | 4 +- .../requirements/EndDateRequirement.java | 4 +- .../requirements/FieldEnterRequirement.java | 4 +- .../quest/requirements/InfoExRequirement.java | 4 +- .../requirements/InfoNumberRequirement.java | 4 +- .../requirements/IntervalRequirement.java | 10 +- .../quest/requirements/ItemRequirement.java | 4 +- .../quest/requirements/JobRequirement.java | 4 +- .../requirements/MaxLevelRequirement.java | 4 +- .../quest/requirements/MesoRequirement.java | 4 +- .../requirements/MinLevelRequirement.java | 4 +- .../requirements/MinTamenessRequirement.java | 4 +- .../quest/requirements/MobRequirement.java | 6 +- .../MonsterBookCountRequirement.java | 4 +- .../quest/requirements/NpcRequirement.java | 4 +- .../quest/requirements/PetRequirement.java | 4 +- .../quest/requirements/QuestRequirement.java | 6 +- .../quest/requirements/ScriptRequirement.java | 6 +- 55 files changed, 436 insertions(+), 436 deletions(-) rename src/main/java/server/quest/{MapleQuest.java => Quest.java} (67%) diff --git a/src/main/java/client/Character.java b/src/main/java/client/Character.java index 070c55ad5a..b0a246fa27 100644 --- a/src/main/java/client/Character.java +++ b/src/main/java/client/Character.java @@ -74,7 +74,7 @@ import server.partyquest.AriantColiseum; import server.partyquest.MonsterCarnival; import server.partyquest.MonsterCarnivalParty; import server.partyquest.PartyQuest; -import server.quest.MapleQuest; +import server.quest.Quest; import tools.*; import tools.exceptions.NotEnabledException; import tools.packets.WeddingPackets; @@ -195,7 +195,7 @@ public class Character extends AbstractCharacterObject { private byte[] m_aQuickslotLoaded; private QuickslotBinding m_pQuickslotKeyMapped; private Door pdoor = null; - private Map questExpirations = new LinkedHashMap<>(); + private Map questExpirations = new LinkedHashMap<>(); private ScheduledFuture dragonBloodSchedule; private ScheduledFuture hpDecreaseTask; private ScheduledFuture beholderHealingSchedule, beholderBuffSchedule, berserkSchedule; @@ -5686,10 +5686,10 @@ public class Character extends AbstractCharacterObject { } public QuestStatus getQuest(final int quest) { - return getQuest(MapleQuest.getInstance(quest)); + return getQuest(Quest.getInstance(quest)); } - public QuestStatus getQuest(MapleQuest quest) { + public QuestStatus getQuest(Quest quest) { synchronized (quests) { short questid = quest.getId(); QuestStatus qs = quests.get(questid); @@ -5703,7 +5703,7 @@ public class Character extends AbstractCharacterObject { //---- \/ \/ \/ \/ \/ \/ \/ NOT TESTED \/ \/ \/ \/ \/ \/ \/ \/ \/ ---- - public final void setQuestAdd(final MapleQuest quest, final byte status, final String customData) { + public final void setQuestAdd(final Quest quest, final byte status, final String customData) { synchronized (quests) { if (!quests.containsKey(quest.getId())) { final QuestStatus stat = new QuestStatus(quest, QuestStatus.Status.getById(status)); @@ -5713,7 +5713,7 @@ public class Character extends AbstractCharacterObject { } } - public final QuestStatus getQuestNAdd(final MapleQuest quest) { + public final QuestStatus getQuestNAdd(final Quest quest) { synchronized (quests) { if (!quests.containsKey(quest.getId())) { final QuestStatus status = new QuestStatus(quest, QuestStatus.Status.NOT_STARTED); @@ -5724,13 +5724,13 @@ public class Character extends AbstractCharacterObject { } } - public final QuestStatus getQuestNoAdd(final MapleQuest quest) { + public final QuestStatus getQuestNoAdd(final Quest quest) { synchronized (quests) { return quests.get(quest.getId()); } } - public final QuestStatus getQuestRemove(final MapleQuest quest) { + public final QuestStatus getQuestRemove(final Quest quest) { synchronized (quests) { return quests.remove(quest.getId()); } @@ -5745,14 +5745,14 @@ public class Character extends AbstractCharacterObject { int amountNeeded, questStatus = this.getQuestStatus(questid); if (questStatus == 0) { - amountNeeded = MapleQuest.getInstance(questid).getStartItemAmountNeeded(itemid); + amountNeeded = Quest.getInstance(questid).getStartItemAmountNeeded(itemid); if (amountNeeded == Integer.MIN_VALUE) { return false; } } else if (questStatus != 1) { return false; } else { - amountNeeded = MapleQuest.getInstance(questid).getCompleteItemAmountNeeded(itemid); + amountNeeded = Quest.getInstance(questid).getCompleteItemAmountNeeded(itemid); if (amountNeeded == Integer.MAX_VALUE) { return true; } @@ -7241,7 +7241,7 @@ public class Character extends AbstractCharacterObject { try (ResultSet rs = ps.executeQuery()) { while (rs.next()) { - MapleQuest q = MapleQuest.getInstance(rs.getShort("quest")); + Quest q = Quest.getInstance(rs.getShort("quest")); QuestStatus status = new QuestStatus(q, QuestStatus.Status.getById(rs.getInt("status"))); long cTime = rs.getLong("time"); if (cTime > -1) { @@ -9821,11 +9821,11 @@ public class Character extends AbstractCharacterObject { } public void setQuestProgress(int id, int infoNumber, String progress) { - MapleQuest q = MapleQuest.getInstance(id); + Quest q = Quest.getInstance(id); QuestStatus qs = getQuest(q); if (qs.getInfoNumber() == infoNumber && infoNumber > 0) { - MapleQuest iq = MapleQuest.getInstance(infoNumber); + Quest iq = Quest.getInstance(infoNumber); QuestStatus iqs = getQuest(iq); iqs.setProgress(0, progress); } else { @@ -9919,9 +9919,9 @@ public class Character extends AbstractCharacterObject { } announceUpdateQuest(DelayedQuestUpdate.INFO, qs); } else if (qs.getStatus().equals(QuestStatus.Status.COMPLETED)) { - MapleQuest mquest = qs.getQuest(); + Quest mquest = qs.getQuest(); short questid = mquest.getId(); - if (!mquest.isSameDayRepeatable() && !MapleQuest.isExploitableQuest(questid)) { + if (!mquest.isSameDayRepeatable() && !Quest.isExploitableQuest(questid)) { awardQuestPoint(YamlConfig.config.server.QUEST_POINT_PER_QUEST_COMPLETE); } qs.setCompleted(qs.getCompleted() + 1); // Jayd's idea - count quest completed @@ -9937,7 +9937,7 @@ public class Character extends AbstractCharacterObject { } } - private void expireQuest(MapleQuest quest) { + private void expireQuest(Quest quest) { if (quest.forfeit(this)) { sendPacket(PacketCreator.questExpire(quest.getId())); } @@ -9958,7 +9958,7 @@ public class Character extends AbstractCharacterObject { public void forfeitExpirableQuests() { evtLock.lock(); try { - for (MapleQuest quest : questExpirations.keySet()) { + for (Quest quest : questExpirations.keySet()) { quest.forfeit(this); } @@ -9990,16 +9990,16 @@ public class Character extends AbstractCharacterObject { evtLock.lock(); try { long timeNow = Server.getInstance().getCurrentTime(); - List expireList = new LinkedList<>(); + List expireList = new LinkedList<>(); - for (Entry qe : questExpirations.entrySet()) { + for (Entry qe : questExpirations.entrySet()) { if (qe.getValue() <= timeNow) { expireList.add(qe.getKey()); } } if (!expireList.isEmpty()) { - for (MapleQuest quest : expireList) { + for (Quest quest : expireList) { expireQuest(quest); questExpirations.remove(quest); } @@ -10014,7 +10014,7 @@ public class Character extends AbstractCharacterObject { } } - private void registerQuestExpire(MapleQuest quest, long time) { + private void registerQuestExpire(Quest quest, long time) { evtLock.lock(); try { if (questExpireTask == null) { @@ -10032,12 +10032,12 @@ public class Character extends AbstractCharacterObject { } } - public void questTimeLimit(final MapleQuest quest, int seconds) { + public void questTimeLimit(final Quest quest, int seconds) { registerQuestExpire(quest, seconds * 1000); sendPacket(PacketCreator.addQuestTimeLimit(quest.getId(), seconds * 1000)); } - public void questTimeLimit2(final MapleQuest quest, long expires) { + public void questTimeLimit2(final Quest quest, long expires) { long timeLeft = expires - System.currentTimeMillis(); if (timeLeft <= 0) { diff --git a/src/main/java/client/QuestStatus.java b/src/main/java/client/QuestStatus.java index c1d6d2dc54..4e681f23c0 100644 --- a/src/main/java/client/QuestStatus.java +++ b/src/main/java/client/QuestStatus.java @@ -21,7 +21,7 @@ */ package client; -import server.quest.MapleQuest; +import server.quest.Quest; import tools.StringUtil; import java.util.*; @@ -65,7 +65,7 @@ public class QuestStatus { private int forfeited = 0, completed = 0; private String customData; - public QuestStatus(MapleQuest quest, Status status) { + public QuestStatus(Quest quest, Status status) { this.questID = quest.getId(); this.setStatus(status); this.completionTime = System.currentTimeMillis(); @@ -76,7 +76,7 @@ public class QuestStatus { } } - public QuestStatus(MapleQuest quest, Status status, int npc) { + public QuestStatus(Quest quest, Status status, int npc) { this.questID = quest.getId(); this.setStatus(status); this.setNpc(npc); @@ -88,8 +88,8 @@ public class QuestStatus { } } - public MapleQuest getQuest() { - return MapleQuest.getInstance(questID); + public Quest getQuest() { + return Quest.getInstance(questID); } public short getQuestID() { @@ -127,7 +127,7 @@ public class QuestStatus { } private void registerMobs() { - for (int i : MapleQuest.getInstance(questID).getRelevantMobs()) { + for (int i : Quest.getInstance(questID).getRelevantMobs()) { progress.put(i, "000"); } //this.setUpdated(); @@ -200,21 +200,21 @@ public class QuestStatus { } public short getInfoNumber() { - MapleQuest q = this.getQuest(); + Quest q = this.getQuest(); Status s = this.getStatus(); return q.getInfoNumber(s); } public String getInfoEx(int index) { - MapleQuest q = this.getQuest(); + Quest q = this.getQuest(); Status s = this.getStatus(); return q.getInfoEx(s, index); } public List getInfoEx() { - MapleQuest q = this.getQuest(); + Quest q = this.getQuest(); Status s = this.getStatus(); return q.getInfoEx(s); diff --git a/src/main/java/client/command/commands/gm2/SearchCommand.java b/src/main/java/client/command/commands/gm2/SearchCommand.java index ef221be929..f086729bdb 100644 --- a/src/main/java/client/command/commands/gm2/SearchCommand.java +++ b/src/main/java/client/command/commands/gm2/SearchCommand.java @@ -32,7 +32,7 @@ import provider.DataProviderFactory; import provider.DataTool; import provider.wz.WZFiles; import server.MapleItemInformationProvider; -import server.quest.MapleQuest; +import server.quest.Quest; import tools.Pair; public class SearchCommand extends Command { @@ -105,7 +105,7 @@ public class SearchCommand extends Command { } } } else { - for (MapleQuest mq : MapleQuest.getMatchedQuests(search)) { + for (Quest mq : Quest.getMatchedQuests(search)) { sb.append("#b").append(mq.getId()).append("#k - #r"); String parentName = mq.getParentName(); diff --git a/src/main/java/client/command/commands/gm3/QuestCompleteCommand.java b/src/main/java/client/command/commands/gm3/QuestCompleteCommand.java index 8a770bcb4c..85403e4e7e 100644 --- a/src/main/java/client/command/commands/gm3/QuestCompleteCommand.java +++ b/src/main/java/client/command/commands/gm3/QuestCompleteCommand.java @@ -26,7 +26,7 @@ package client.command.commands.gm3; import client.Character; import client.Client; import client.command.Command; -import server.quest.MapleQuest; +import server.quest.Quest; public class QuestCompleteCommand extends Command { { @@ -45,7 +45,7 @@ public class QuestCompleteCommand extends Command { int questId = Integer.parseInt(params[0]); if (player.getQuestStatus(questId) == 1) { - MapleQuest quest = MapleQuest.getInstance(questId); + Quest quest = Quest.getInstance(questId); if (quest != null && quest.getNpcRequirement(true) != -1) { c.getAbstractPlayerInteraction().forceCompleteQuest(questId, quest.getNpcRequirement(true)); } else { diff --git a/src/main/java/client/command/commands/gm3/QuestResetCommand.java b/src/main/java/client/command/commands/gm3/QuestResetCommand.java index dbc648a87a..7cd3cc8c41 100644 --- a/src/main/java/client/command/commands/gm3/QuestResetCommand.java +++ b/src/main/java/client/command/commands/gm3/QuestResetCommand.java @@ -26,7 +26,7 @@ package client.command.commands.gm3; import client.Character; import client.Client; import client.command.Command; -import server.quest.MapleQuest; +import server.quest.Quest; public class QuestResetCommand extends Command { { @@ -45,7 +45,7 @@ public class QuestResetCommand extends Command { int questid_ = Integer.parseInt(params[0]); if (player.getQuestStatus(questid_) != 0) { - MapleQuest quest = MapleQuest.getInstance(questid_); + Quest quest = Quest.getInstance(questid_); if (quest != null) { quest.reset(player); player.dropMessage(5, "QUEST " + questid_ + " reseted."); diff --git a/src/main/java/client/command/commands/gm3/QuestStartCommand.java b/src/main/java/client/command/commands/gm3/QuestStartCommand.java index 1ddfb7fca3..5e11e27622 100644 --- a/src/main/java/client/command/commands/gm3/QuestStartCommand.java +++ b/src/main/java/client/command/commands/gm3/QuestStartCommand.java @@ -26,7 +26,7 @@ package client.command.commands.gm3; import client.Character; import client.Client; import client.command.Command; -import server.quest.MapleQuest; +import server.quest.Quest; public class QuestStartCommand extends Command { { @@ -45,7 +45,7 @@ public class QuestStartCommand extends Command { int questid = Integer.parseInt(params[0]); if (player.getQuestStatus(questid) == 0) { - MapleQuest quest = MapleQuest.getInstance(questid); + Quest quest = Quest.getInstance(questid); if (quest != null && quest.getNpcRequirement(false) != -1) { c.getAbstractPlayerInteraction().forceStartQuest(questid, quest.getNpcRequirement(false)); } else { diff --git a/src/main/java/client/command/commands/gm6/ClearQuestCacheCommand.java b/src/main/java/client/command/commands/gm6/ClearQuestCacheCommand.java index 1fc3582286..5f094f5600 100644 --- a/src/main/java/client/command/commands/gm6/ClearQuestCacheCommand.java +++ b/src/main/java/client/command/commands/gm6/ClearQuestCacheCommand.java @@ -26,7 +26,7 @@ package client.command.commands.gm6; import client.Character; import client.Client; import client.command.Command; -import server.quest.MapleQuest; +import server.quest.Quest; public class ClearQuestCacheCommand extends Command { { @@ -36,7 +36,7 @@ public class ClearQuestCacheCommand extends Command { @Override public void execute(Client c, String[] params) { Character player = c.getPlayer(); - MapleQuest.clearCache(); + Quest.clearCache(); player.dropMessage(5, "Quest Cache Cleared."); } } diff --git a/src/main/java/client/command/commands/gm6/ClearQuestCommand.java b/src/main/java/client/command/commands/gm6/ClearQuestCommand.java index 19c5fbb16b..79707eff05 100644 --- a/src/main/java/client/command/commands/gm6/ClearQuestCommand.java +++ b/src/main/java/client/command/commands/gm6/ClearQuestCommand.java @@ -26,7 +26,7 @@ package client.command.commands.gm6; import client.Character; import client.Client; import client.command.Command; -import server.quest.MapleQuest; +import server.quest.Quest; public class ClearQuestCommand extends Command { { @@ -40,7 +40,7 @@ public class ClearQuestCommand extends Command { player.dropMessage(5, "Please include a quest ID."); return; } - MapleQuest.clearCache(Integer.parseInt(params[0])); + Quest.clearCache(Integer.parseInt(params[0])); player.dropMessage(5, "Quest Cache for quest " + params[0] + " cleared."); } diff --git a/src/main/java/constants/game/GameConstants.java b/src/main/java/constants/game/GameConstants.java index 4439943ff7..6b14ce388d 100644 --- a/src/main/java/constants/game/GameConstants.java +++ b/src/main/java/constants/game/GameConstants.java @@ -8,7 +8,7 @@ import provider.*; import provider.wz.WZFiles; import server.maps.FieldLimit; import server.maps.MapleMap; -import server.quest.MapleQuest; +import server.quest.Quest; import java.text.DecimalFormat; import java.text.NumberFormat; @@ -616,7 +616,7 @@ public class GameConstants { } public static boolean isMedalQuest(short questid) { - return MapleQuest.getInstance(questid).getMedalRequirement() != -1; + return Quest.getInstance(questid).getMedalRequirement() != -1; } public static boolean hasSPTable(Job job) { diff --git a/src/main/java/net/server/Server.java b/src/main/java/net/server/Server.java index 3669de3e4e..cee3750b23 100644 --- a/src/main/java/net/server/Server.java +++ b/src/main/java/net/server/Server.java @@ -61,7 +61,7 @@ import server.ThreadManager; import server.TimerManager; import server.expeditions.ExpeditionBossLog; import server.life.PlayerNPCFactory; -import server.quest.MapleQuest; +import server.quest.Quest; import tools.DatabaseConnection; import tools.FilePrinter; import tools.Pair; @@ -839,7 +839,7 @@ public class Server { final List> futures = new ArrayList<>(); futures.add(initExecutor.submit(() -> SkillFactory.loadAllSkills())); futures.add(initExecutor.submit(() -> CashItemFactory.loadAllCashItems())); - futures.add(initExecutor.submit(() -> MapleQuest.loadAllQuests())); + futures.add(initExecutor.submit(() -> Quest.loadAllQuests())); futures.add(initExecutor.submit(() -> MapleSkillbookInformationProvider.loadAllSkillbookInformation())); futures.add(initExecutor.submit(() -> PlayerNPCFactory.loadFactoryMetadata())); diff --git a/src/main/java/net/server/channel/handlers/AdminCommandHandler.java b/src/main/java/net/server/channel/handlers/AdminCommandHandler.java index aa096d0071..81a694a15b 100644 --- a/src/main/java/net/server/channel/handlers/AdminCommandHandler.java +++ b/src/main/java/net/server/channel/handlers/AdminCommandHandler.java @@ -33,7 +33,7 @@ import server.life.LifeFactory; import server.life.Monster; import server.maps.MapObject; import server.maps.MapObjectType; -import server.quest.MapleQuest; +import server.quest.Quest; import tools.PacketCreator; import tools.Randomizer; @@ -135,7 +135,7 @@ public final class AdminCommandHandler extends AbstractPacketHandler { } break; case 0x16: // Questreset - MapleQuest.getInstance(p.readShort()).reset(c.getPlayer()); + Quest.getInstance(p.readShort()).reset(c.getPlayer()); break; case 0x17: // Summon int mobId = p.readInt(); diff --git a/src/main/java/net/server/channel/handlers/QuestActionHandler.java b/src/main/java/net/server/channel/handlers/QuestActionHandler.java index ebed7d57be..f3db90f242 100644 --- a/src/main/java/net/server/channel/handlers/QuestActionHandler.java +++ b/src/main/java/net/server/channel/handlers/QuestActionHandler.java @@ -27,7 +27,7 @@ import net.AbstractPacketHandler; import net.packet.InPacket; import scripting.quest.QuestScriptManager; import server.life.NPC; -import server.quest.MapleQuest; +import server.quest.Quest; import java.awt.*; @@ -38,7 +38,7 @@ import java.awt.*; public final class QuestActionHandler extends AbstractPacketHandler { // isNpcNearby thanks to GabrielSin - private static boolean isNpcNearby(InPacket p, Character player, MapleQuest quest, int npcId) { + private static boolean isNpcNearby(InPacket p, Character player, Quest quest, int npcId) { Point playerP; Point pos = player.getPosition(); @@ -72,7 +72,7 @@ public final class QuestActionHandler extends AbstractPacketHandler { byte action = p.readByte(); short questid = p.readShort(); Character player = c.getPlayer(); - MapleQuest quest = MapleQuest.getInstance(questid); + Quest quest = Quest.getInstance(questid); if (action == 0) { // Restore lost item, Credits Darter ( Rajan ) p.readInt(); diff --git a/src/main/java/net/server/channel/handlers/RaiseIncExpHandler.java b/src/main/java/net/server/channel/handlers/RaiseIncExpHandler.java index 514f7bea09..4537216924 100644 --- a/src/main/java/net/server/channel/handlers/RaiseIncExpHandler.java +++ b/src/main/java/net/server/channel/handlers/RaiseIncExpHandler.java @@ -10,7 +10,7 @@ import net.AbstractPacketHandler; import net.packet.InPacket; import server.MapleItemInformationProvider; import server.MapleItemInformationProvider.QuestConsItem; -import server.quest.MapleQuest; +import server.quest.Quest; import tools.PacketCreator; import java.util.Map; @@ -40,7 +40,7 @@ public class RaiseIncExpHandler extends AbstractPacketHandler { Map consumables = consItem.items; Character chr = c.getPlayer(); - MapleQuest quest = MapleQuest.getInstanceFromInfoNumber(infoNumber); + Quest quest = Quest.getInstanceFromInfoNumber(infoNumber); if (!chr.getQuest(quest).getStatus().equals(QuestStatus.Status.STARTED)) { c.sendPacket(PacketCreator.enableActions()); return; diff --git a/src/main/java/net/server/channel/handlers/RaiseUIStateHandler.java b/src/main/java/net/server/channel/handlers/RaiseUIStateHandler.java index 48c733f81a..87def4ece3 100644 --- a/src/main/java/net/server/channel/handlers/RaiseUIStateHandler.java +++ b/src/main/java/net/server/channel/handlers/RaiseUIStateHandler.java @@ -7,7 +7,7 @@ import client.QuestStatus; import net.AbstractPacketHandler; import net.packet.InPacket; import scripting.quest.QuestScriptManager; -import server.quest.MapleQuest; +import server.quest.Quest; /** * @@ -22,7 +22,7 @@ public class RaiseUIStateHandler extends AbstractPacketHandler { if (c.tryacquireClient()) { try { Character chr = c.getPlayer(); - MapleQuest quest = MapleQuest.getInstanceFromInfoNumber(infoNumber); + Quest quest = Quest.getInstanceFromInfoNumber(infoNumber); QuestStatus mqs = chr.getQuest(quest); QuestScriptManager.getInstance().raiseOpen(c, (short) infoNumber, mqs.getNpc()); diff --git a/src/main/java/scripting/AbstractPlayerInteraction.java b/src/main/java/scripting/AbstractPlayerInteraction.java index 7b01b7ffe1..96ada3c5c3 100644 --- a/src/main/java/scripting/AbstractPlayerInteraction.java +++ b/src/main/java/scripting/AbstractPlayerInteraction.java @@ -47,7 +47,7 @@ import server.maps.MapObjectType; import server.maps.MapleMap; import server.partyquest.PartyQuest; import server.partyquest.Pyramid; -import server.quest.MapleQuest; +import server.quest.Quest; import tools.PacketCreator; import tools.Pair; @@ -320,11 +320,11 @@ public class AbstractPlayerInteraction { //---- \/ \/ \/ \/ \/ \/ \/ NOT TESTED \/ \/ \/ \/ \/ \/ \/ \/ \/ ---- public final QuestStatus getQuestRecord(final int id) { - return c.getPlayer().getQuestNAdd(MapleQuest.getInstance(id)); + return c.getPlayer().getQuestNAdd(Quest.getInstance(id)); } public final QuestStatus getQuestNoRecord(final int id) { - return c.getPlayer().getQuestNoAdd(MapleQuest.getInstance(id)); + return c.getPlayer().getQuestNoAdd(Quest.getInstance(id)); } //---- /\ /\ /\ /\ /\ /\ /\ NOT TESTED /\ /\ /\ /\ /\ /\ /\ /\ /\ ---- @@ -344,11 +344,11 @@ public class AbstractPlayerInteraction { } public int getQuestStatus(int id) { - return c.getPlayer().getQuest(MapleQuest.getInstance(id)).getStatus().getId(); + return c.getPlayer().getQuest(Quest.getInstance(id)).getStatus().getId(); } private QuestStatus.Status getQuestStat(int id) { - return c.getPlayer().getQuest(MapleQuest.getInstance(id)).getStatus(); + return c.getPlayer().getQuest(Quest.getInstance(id)).getStatus(); } public boolean isQuestCompleted(int id) { @@ -394,10 +394,10 @@ public class AbstractPlayerInteraction { } public String getQuestProgress(int id, int infoNumber) { - QuestStatus qs = getPlayer().getQuest(MapleQuest.getInstance(id)); + QuestStatus qs = getPlayer().getQuest(Quest.getInstance(id)); if (qs.getInfoNumber() == infoNumber && infoNumber > 0) { - qs = getPlayer().getQuest(MapleQuest.getInstance(infoNumber)); + qs = getPlayer().getQuest(Quest.getInstance(infoNumber)); infoNumber = 0; } @@ -425,7 +425,7 @@ public class AbstractPlayerInteraction { } public void resetAllQuestProgress(int id) { - QuestStatus qs = getPlayer().getQuest(MapleQuest.getInstance(id)); + QuestStatus qs = getPlayer().getQuest(Quest.getInstance(id)); if (qs != null) { qs.resetAllProgress(); getPlayer().announceUpdateQuest(DelayedQuestUpdate.UPDATE, qs, false); @@ -433,7 +433,7 @@ public class AbstractPlayerInteraction { } public void resetQuestProgress(int id, int infoNumber) { - QuestStatus qs = getPlayer().getQuest(MapleQuest.getInstance(id)); + QuestStatus qs = getPlayer().getQuest(Quest.getInstance(id)); if (qs != null) { qs.resetProgress(infoNumber); getPlayer().announceUpdateQuest(DelayedQuestUpdate.UPDATE, qs, false); @@ -482,7 +482,7 @@ public class AbstractPlayerInteraction { public boolean startQuest(int id, int npc) { try { - return MapleQuest.getInstance(id).forceStart(getPlayer(), npc); + return Quest.getInstance(id).forceStart(getPlayer(), npc); } catch (NullPointerException ex) { ex.printStackTrace(); return false; @@ -491,7 +491,7 @@ public class AbstractPlayerInteraction { public boolean completeQuest(int id, int npc) { try { - return MapleQuest.getInstance(id).forceComplete(getPlayer(), npc); + return Quest.getInstance(id).forceComplete(getPlayer(), npc); } catch (NullPointerException ex) { ex.printStackTrace(); return false; diff --git a/src/main/java/scripting/event/EventManager.java b/src/main/java/scripting/event/EventManager.java index 71bd4795f3..05a14ce223 100644 --- a/src/main/java/scripting/event/EventManager.java +++ b/src/main/java/scripting/event/EventManager.java @@ -41,7 +41,7 @@ import server.expeditions.Expedition; import server.life.LifeFactory; import server.life.Monster; import server.maps.MapleMap; -import server.quest.MapleQuest; +import server.quest.Quest; import tools.exceptions.EventInstanceInProgressException; import javax.script.Invocable; @@ -846,7 +846,7 @@ public class EventManager { public void startQuest(Character chr, int id, int npcid) { try { - MapleQuest.getInstance(id).forceStart(chr, npcid); + Quest.getInstance(id).forceStart(chr, npcid); } catch (NullPointerException ex) { ex.printStackTrace(); } @@ -854,7 +854,7 @@ public class EventManager { public void completeQuest(Character chr, int id, int npcid) { try { - MapleQuest.getInstance(id).forceComplete(chr, npcid); + Quest.getInstance(id).forceComplete(chr, npcid); } catch (NullPointerException ex) { ex.printStackTrace(); } diff --git a/src/main/java/scripting/map/MapScriptMethods.java b/src/main/java/scripting/map/MapScriptMethods.java index 7e54524aa2..3b1c71b2d4 100644 --- a/src/main/java/scripting/map/MapScriptMethods.java +++ b/src/main/java/scripting/map/MapScriptMethods.java @@ -25,7 +25,7 @@ import client.Character.DelayedQuestUpdate; import client.Client; import client.QuestStatus; import scripting.AbstractPlayerInteraction; -import server.quest.MapleQuest; +import server.quest.Quest; import tools.PacketCreator; public class MapScriptMethods extends AbstractPlayerInteraction { @@ -116,7 +116,7 @@ public class MapScriptMethods extends AbstractPlayerInteraction { } public void explorerQuest(short questid, String questName) { - MapleQuest quest = MapleQuest.getInstance(questid); + Quest quest = Quest.getInstance(questid); if (!isQuestStarted(questid)) { if (!quest.forceStart(getPlayer(), 9000066)) { return; @@ -145,7 +145,7 @@ public class MapScriptMethods extends AbstractPlayerInteraction { } public void touchTheSky() { //29004 - MapleQuest quest = MapleQuest.getInstance(29004); + Quest quest = Quest.getInstance(29004); if (!isQuestStarted(29004)) { if (!quest.forceStart(getPlayer(), 9000066)) { return; diff --git a/src/main/java/scripting/quest/QuestActionManager.java b/src/main/java/scripting/quest/QuestActionManager.java index 45f669fd17..b79075e833 100644 --- a/src/main/java/scripting/quest/QuestActionManager.java +++ b/src/main/java/scripting/quest/QuestActionManager.java @@ -24,7 +24,7 @@ package scripting.quest; import client.Client; import scripting.npc.NPCConversationManager; import server.MapleItemInformationProvider; -import server.quest.MapleQuest; +import server.quest.Quest; import server.quest.actions.ExpAction; import server.quest.actions.MesoAction; @@ -84,7 +84,7 @@ public class QuestActionManager extends NPCConversationManager { } public String getMedalName() { // usable only for medal quests (id 299XX) - MapleQuest q = MapleQuest.getInstance(quest); + Quest q = Quest.getInstance(quest); return MapleItemInformationProvider.getInstance().getName(q.getMedalRequirement()); } } diff --git a/src/main/java/scripting/quest/QuestScriptManager.java b/src/main/java/scripting/quest/QuestScriptManager.java index a76a366d67..b521c893a0 100644 --- a/src/main/java/scripting/quest/QuestScriptManager.java +++ b/src/main/java/scripting/quest/QuestScriptManager.java @@ -25,7 +25,7 @@ import client.Client; import client.QuestStatus; import constants.game.GameConstants; import scripting.AbstractScriptManager; -import server.quest.MapleQuest; +import server.quest.Quest; import tools.FilePrinter; import javax.script.Invocable; @@ -58,7 +58,7 @@ public class QuestScriptManager extends AbstractScriptManager { } public void start(Client c, short questid, int npc) { - MapleQuest quest = MapleQuest.getInstance(questid); + Quest quest = Quest.getInstance(questid); try { QuestActionManager qm = new QuestActionManager(c, questid, npc, true); if (qms.containsKey(c)) { @@ -109,7 +109,7 @@ public class QuestScriptManager extends AbstractScriptManager { } public void end(Client c, short questid, int npc) { - MapleQuest quest = MapleQuest.getInstance(questid); + Quest quest = Quest.getInstance(questid); if (!c.getPlayer().getQuest(quest).getStatus().equals(QuestStatus.Status.STARTED) || !c.getPlayer().getMap().containsNPC(npc)) { dispose(c); return; diff --git a/src/main/java/server/loot/LootManager.java b/src/main/java/server/loot/LootManager.java index 0515d85134..95e2fd5a83 100644 --- a/src/main/java/server/loot/LootManager.java +++ b/src/main/java/server/loot/LootManager.java @@ -22,7 +22,7 @@ package server.loot; import client.Character; import server.life.MonsterDropEntry; import server.life.MonsterInformationProvider; -import server.quest.MapleQuest; +import server.quest.Quest; import java.util.LinkedList; import java.util.List; @@ -34,7 +34,7 @@ public class LootManager { private static boolean isRelevantDrop(MonsterDropEntry dropEntry, List players, List playersInv) { int qStartAmount = 0, qCompleteAmount = 0; - MapleQuest quest = MapleQuest.getInstance(dropEntry.questid); + Quest quest = Quest.getInstance(dropEntry.questid); if (quest != null) { qStartAmount = quest.getStartItemAmountNeeded(dropEntry.itemId); qCompleteAmount = quest.getCompleteItemAmountNeeded(dropEntry.itemId); diff --git a/src/main/java/server/maps/MapleMap.java b/src/main/java/server/maps/MapleMap.java index 050a7fe662..682f807c21 100644 --- a/src/main/java/server/maps/MapleMap.java +++ b/src/main/java/server/maps/MapleMap.java @@ -1384,7 +1384,7 @@ public class MapleMap { AutobanFactory.GENERAL.alert(chr, " for killing a " + monster.getName() + " which is over 30 levels higher."); } - /*if (chr.getQuest(MapleQuest.getInstance(29400)).getStatus().equals(QuestStatus.Status.STARTED)) { + /*if (chr.getQuest(Quest.getInstance(29400)).getStatus().equals(QuestStatus.Status.STARTED)) { if (chr.getLevel() >= 120 && monster.getStats().getLevel() >= 120) { //FIX MEDAL SHET } else if (monster.getStats().getLevel() >= chr.getLevel()) { diff --git a/src/main/java/server/quest/MapleQuest.java b/src/main/java/server/quest/Quest.java similarity index 67% rename from src/main/java/server/quest/MapleQuest.java rename to src/main/java/server/quest/Quest.java index a697490a21..bd5dedbb7e 100644 --- a/src/main/java/server/quest/MapleQuest.java +++ b/src/main/java/server/quest/Quest.java @@ -39,24 +39,23 @@ import java.util.*; import java.util.Map.Entry; /** - * * @author Matze * @author Ronan - support for medal quests */ -public class MapleQuest { - - private static volatile Map quests = new HashMap<>(); +public class Quest { + private static volatile Map quests = new HashMap<>(); private static volatile Map infoNumberQuests = new HashMap<>(); - private static Map medals = new HashMap<>(); - + private static final Map medals = new HashMap<>(); + private static final Set exploitableQuests = new HashSet<>(); + static { exploitableQuests.add((short) 2338); // there are a lot more exploitable quests, they need to be nit-picked exploitableQuests.add((short) 3637); exploitableQuests.add((short) 3714); exploitableQuests.add((short) 21752); } - + protected short id; protected int timeLimit, timeLimit2; protected Map startReqs = new EnumMap<>(MapleQuestRequirementType.class); @@ -72,34 +71,36 @@ public class MapleQuest { private final static Data questInfo = questData.getData("QuestInfo.img"); private final static Data questAct = questData.getData("Act.img"); private final static Data questReq = questData.getData("Check.img"); - - private MapleQuest(int id) { + + private Quest(int id) { this.id = (short) id; - + Data reqData = questReq.getChildByPath(String.valueOf(id)); if (reqData == null) {//most likely infoEx return; } - - if(questInfo != null) { + + if (questInfo != null) { Data reqInfo = questInfo.getChildByPath(String.valueOf(id)); - if(reqInfo != null) { + if (reqInfo != null) { name = DataTool.getString("name", reqInfo, ""); parent = DataTool.getString("parent", reqInfo, ""); - + timeLimit = DataTool.getInt("timeLimit", reqInfo, 0); timeLimit2 = DataTool.getInt("timeLimit2", reqInfo, 0); autoStart = DataTool.getInt("autoStart", reqInfo, 0) == 1; autoPreComplete = DataTool.getInt("autoPreComplete", reqInfo, 0) == 1; autoComplete = DataTool.getInt("autoComplete", reqInfo, 0) == 1; - + int medalid = DataTool.getInt("viewMedalItem", reqInfo, 0); - if(medalid != 0) medals.put(this.id, medalid); + if (medalid != 0) { + medals.put(this.id, medalid); + } } else { System.out.println("no data " + id); } } - + Data startReqData = reqData.getChildByPath("0"); if (startReqData != null) { for (Data startReq : startReqData.getChildren()) { @@ -111,26 +112,26 @@ public class MapleQuest { relevantMobs.add(DataTool.getInt(mob.getChildByPath("id"))); } } - + MapleQuestRequirement req = this.getRequirement(type, startReq); if (req == null) { continue; } - + startReqs.put(type, req); } } - + Data completeReqData = reqData.getChildByPath("1"); if (completeReqData != null) { for (Data completeReq : completeReqData.getChildren()) { - MapleQuestRequirementType type = MapleQuestRequirementType.getByWZName(completeReq.getName()); - + MapleQuestRequirementType type = MapleQuestRequirementType.getByWZName(completeReq.getName()); + MapleQuestRequirement req = this.getRequirement(type, completeReq); if (req == null) { continue; } - + if (type.equals(MapleQuestRequirementType.MOB)) { for (Data mob : completeReq.getChildren()) { relevantMobs.add(DataTool.getInt(mob.getChildByPath("id"))); @@ -148,10 +149,11 @@ public class MapleQuest { for (Data startAct : startActData.getChildren()) { MapleQuestActionType questActionType = MapleQuestActionType.getByWZName(startAct.getName()); MapleQuestAction act = this.getAction(questActionType, startAct); - - if(act == null) + + if (act == null) { continue; - + } + startActs.put(questActionType, act); } } @@ -161,14 +163,15 @@ public class MapleQuest { MapleQuestActionType questActionType = MapleQuestActionType.getByWZName(completeAct.getName()); MapleQuestAction act = this.getAction(questActionType, completeAct); - if(act == null) + if (act == null) { continue; - + } + completeActs.put(questActionType, act); } } } - + public boolean isAutoComplete() { return autoPreComplete || autoComplete; } @@ -177,36 +180,38 @@ public class MapleQuest { return autoStart; } - public static MapleQuest getInstance(int id) { - MapleQuest ret = quests.get(id); + public static Quest getInstance(int id) { + Quest ret = quests.get(id); if (ret == null) { - ret = new MapleQuest(id); + ret = new Quest(id); quests.put(id, ret); } return ret; } - - public static MapleQuest getInstanceFromInfoNumber(int infoNumber) { + + public static Quest getInstanceFromInfoNumber(int infoNumber) { Integer id = infoNumberQuests.get(infoNumber); if (id == null) { id = infoNumber; } - + return getInstance(id); } - + public boolean isSameDayRepeatable() { - if(!repeatable) return false; - + if (!repeatable) { + return false; + } + IntervalRequirement ir = (IntervalRequirement) startReqs.get(MapleQuestRequirementType.INTERVAL); return ir.getInterval() < YamlConfig.config.server.QUEST_POINT_REPEATABLE_INTERVAL * 60 * 60 * 1000; } - + public boolean canStartQuestByStatus(Character chr) { QuestStatus mqs = chr.getQuest(this); return !(!mqs.getStatus().equals(Status.NOT_STARTED) && !(mqs.getStatus().equals(Status.COMPLETED) && repeatable)); } - + public boolean canQuestByInfoProgress(Character chr) { QuestStatus mqs = chr.getQuest(this); List ix = mqs.getInfoEx(); @@ -216,37 +221,33 @@ public class MapleQuest { if (infoNumber <= 0) { infoNumber = questid; // on default infoNumber mimics questid } - + int ixSize = ix.size(); for (int i = 0; i < ixSize; i++) { String progress = chr.getAbstractPlayerInteraction().getQuestProgress(infoNumber, i); String ixProgress = ix.get(i); - + if (!progress.contentEquals(ixProgress)) { return false; } } } - + return true; } - + public boolean canStart(Character chr, int npcid) { if (!canStartQuestByStatus(chr)) { return false; } - + for (MapleQuestRequirement r : startReqs.values()) { if (!r.check(chr, npcid)) { return false; } } - - if (!canQuestByInfoProgress(chr)) { - return false; - } - - return true; + + return canQuestByInfoProgress(chr); } public boolean canComplete(Character chr, Integer npcid) { @@ -254,18 +255,14 @@ public class MapleQuest { if (!mqs.getStatus().equals(Status.STARTED)) { return false; } - + for (MapleQuestRequirement r : completeReqs.values()) { if (!r.check(chr, npcid)) { return false; } } - - if (!canQuestByInfoProgress(chr)) { - return false; - } - - return true; + + return canQuestByInfoProgress(chr); } public void start(Character chr, int npc) { @@ -325,23 +322,23 @@ public class MapleQuest { public boolean forceStart(Character chr, int npc) { QuestStatus newStatus = new QuestStatus(this, QuestStatus.Status.STARTED, npc); - + QuestStatus oldStatus = chr.getQuest(this.getId()); for (Entry e : oldStatus.getProgress().entrySet()) { newStatus.setProgress(e.getKey(), e.getValue()); } - - if(id / 100 == 35 && YamlConfig.config.server.TOT_MOB_QUEST_REQUIREMENT > 0) { + + if (id / 100 == 35 && YamlConfig.config.server.TOT_MOB_QUEST_REQUIREMENT > 0) { int setProg = 999 - Math.min(999, YamlConfig.config.server.TOT_MOB_QUEST_REQUIREMENT); - - for(Integer pid : newStatus.getProgress().keySet()) { - if(pid >= 8200000 && pid <= 8200012) { + + for (Integer pid : newStatus.getProgress().keySet()) { + if (pid >= 8200000 && pid <= 8200012) { String pr = StringUtil.getLeftPaddedStr(Integer.toString(setProg), '0', 3); newStatus.setProgress(pid, pr); } } } - + newStatus.setForfeited(chr.getQuest(this).getForfeited()); newStatus.setCompleted(chr.getQuest(this).getCompleted()); @@ -353,9 +350,9 @@ public class MapleQuest { newStatus.setExpirationTime(System.currentTimeMillis() + timeLimit2); chr.questTimeLimit2(this, newStatus.getExpirationTime()); } - + chr.updateQuestStatus(newStatus); - + return true; } @@ -363,13 +360,13 @@ public class MapleQuest { if (timeLimit > 0) { chr.sendPacket(PacketCreator.removeQuestTimeLimit(id)); } - + QuestStatus newStatus = new QuestStatus(this, QuestStatus.Status.COMPLETED, npc); newStatus.setForfeited(chr.getQuest(this).getForfeited()); newStatus.setCompleted(chr.getQuest(this).getCompleted()); newStatus.setCompletionTime(System.currentTimeMillis()); chr.updateQuestStatus(newStatus); - + chr.sendPacket(PacketCreator.showSpecialEffect(9)); // Quest completion chr.getMap().broadcastMessage(chr, PacketCreator.showForeignEffect(chr.getId(), 9), false); //use 9 instead of 12 for both return true; @@ -385,26 +382,29 @@ public class MapleQuest { public int getStartItemAmountNeeded(int itemid) { MapleQuestRequirement req = startReqs.get(MapleQuestRequirementType.ITEM); - if(req == null) - return Integer.MIN_VALUE; - + if (req == null) { + return Integer.MIN_VALUE; + } + ItemRequirement ireq = (ItemRequirement) req; return ireq.getItemAmountNeeded(itemid, false); } - + public int getCompleteItemAmountNeeded(int itemid) { MapleQuestRequirement req = completeReqs.get(MapleQuestRequirementType.ITEM); - if(req == null) - return Integer.MAX_VALUE; - + if (req == null) { + return Integer.MAX_VALUE; + } + ItemRequirement ireq = (ItemRequirement) req; return ireq.getItemAmountNeeded(itemid, true); } public int getMobAmountNeeded(int mid) { MapleQuestRequirement req = completeReqs.get(MapleQuestRequirementType.MOB); - if(req == null) + if (req == null) { return 0; + } MobRequirement mreq = (MobRequirement) req; @@ -435,7 +435,7 @@ public class MapleQuest { return ""; } } - + public List getInfoEx(Status qs) { boolean checkEnd = qs.equals(Status.STARTED); Map reqs = !checkEnd ? startReqs : completeReqs; @@ -448,215 +448,215 @@ public class MapleQuest { } } - public int getTimeLimit() { - return timeLimit; - } - - public static void clearCache(int quest) { + public int getTimeLimit() { + return timeLimit; + } + + public static void clearCache(int quest) { quests.remove(quest); - } - - public static void clearCache() { - quests.clear(); - } - - private MapleQuestRequirement getRequirement(MapleQuestRequirementType type, Data data) { - MapleQuestRequirement ret = null; - switch(type) { - case END_DATE: - ret = new EndDateRequirement(this, data); - break; - case JOB: - ret = new JobRequirement(this, data); - break; - case QUEST: - ret = new QuestRequirement(this, data); - break; - case FIELD_ENTER: - ret = new FieldEnterRequirement(this, data); - break; - case INFO_NUMBER: - ret = new InfoNumberRequirement(this, data); - break; - case INFO_EX: - ret = new InfoExRequirement(this, data); - break; - case INTERVAL: - ret = new IntervalRequirement(this, data); - break; - case COMPLETED_QUEST: - ret = new CompletedQuestRequirement(this, data); - break; - case ITEM: - ret = new ItemRequirement(this, data); - break; - case MAX_LEVEL: - ret = new MaxLevelRequirement(this, data); - break; - case MESO: - ret = new MesoRequirement(this, data); - break; - case MIN_LEVEL: - ret = new MinLevelRequirement(this, data); - break; - case MIN_PET_TAMENESS: - ret = new MinTamenessRequirement(this, data); - break; - case MOB: - ret = new MobRequirement(this, data); - break; - case MONSTER_BOOK: - ret = new MonsterBookCountRequirement(this, data); - break; - case NPC: - ret = new NpcRequirement(this, data); - break; - case PET: - ret = new PetRequirement(this, data); - break; - case BUFF: - ret = new BuffRequirement(this, data); - break; - case EXCEPT_BUFF: - ret = new BuffExceptRequirement(this, data); - break; - case SCRIPT: - ret = new ScriptRequirement(this, data); - break; - case NORMAL_AUTO_START: - case START: - case END: - break; - default: - //FilePrinter.printError(FilePrinter.EXCEPTION_CAUGHT, "Unhandled Requirement Type: " + type.toString() + " QuestID: " + this.getId()); - break; - } - return ret; - } - - private MapleQuestAction getAction(MapleQuestActionType type, Data data) { - MapleQuestAction ret = null; - switch(type) { - case BUFF: - ret = new BuffAction(this, data); - break; - case EXP: - ret = new ExpAction(this, data); - break; - case FAME: - ret = new FameAction(this, data); - break; - case ITEM: - ret = new ItemAction(this, data); - break; - case MESO: - ret = new MesoAction(this, data); - break; - case NEXTQUEST: - ret = new NextQuestAction(this, data); - break; - case PETSKILL: - ret = new PetSkillAction(this, data); - break; - case QUEST: - ret = new QuestAction(this, data); - break; - case SKILL: - ret = new SkillAction(this, data); - break; - case PETTAMENESS: - ret = new PetTamenessAction(this, data); - break; - case PETSPEED: - ret = new PetSpeedAction(this, data); - break; - case INFO: - ret = new InfoAction(this, data); - break; - default: - //FilePrinter.printError(FilePrinter.EXCEPTION_CAUGHT, "Unhandled Action Type: " + type.toString() + " QuestID: " + this.getId()); - break; - } - return ret; - } - - public boolean restoreLostItem(Character chr, int itemid) { - if (chr.getQuest(this).getStatus().equals(QuestStatus.Status.STARTED)) { - ItemAction itemAct = (ItemAction) startActs.get(MapleQuestActionType.ITEM); - if (itemAct != null) { - return itemAct.restoreLostItem(chr, itemid); - } - } - - return false; + } + + public static void clearCache() { + quests.clear(); + } + + private MapleQuestRequirement getRequirement(MapleQuestRequirementType type, Data data) { + MapleQuestRequirement ret = null; + switch (type) { + case END_DATE: + ret = new EndDateRequirement(this, data); + break; + case JOB: + ret = new JobRequirement(this, data); + break; + case QUEST: + ret = new QuestRequirement(this, data); + break; + case FIELD_ENTER: + ret = new FieldEnterRequirement(this, data); + break; + case INFO_NUMBER: + ret = new InfoNumberRequirement(this, data); + break; + case INFO_EX: + ret = new InfoExRequirement(this, data); + break; + case INTERVAL: + ret = new IntervalRequirement(this, data); + break; + case COMPLETED_QUEST: + ret = new CompletedQuestRequirement(this, data); + break; + case ITEM: + ret = new ItemRequirement(this, data); + break; + case MAX_LEVEL: + ret = new MaxLevelRequirement(this, data); + break; + case MESO: + ret = new MesoRequirement(this, data); + break; + case MIN_LEVEL: + ret = new MinLevelRequirement(this, data); + break; + case MIN_PET_TAMENESS: + ret = new MinTamenessRequirement(this, data); + break; + case MOB: + ret = new MobRequirement(this, data); + break; + case MONSTER_BOOK: + ret = new MonsterBookCountRequirement(this, data); + break; + case NPC: + ret = new NpcRequirement(this, data); + break; + case PET: + ret = new PetRequirement(this, data); + break; + case BUFF: + ret = new BuffRequirement(this, data); + break; + case EXCEPT_BUFF: + ret = new BuffExceptRequirement(this, data); + break; + case SCRIPT: + ret = new ScriptRequirement(this, data); + break; + case NORMAL_AUTO_START: + case START: + case END: + break; + default: + //FilePrinter.printError(FilePrinter.EXCEPTION_CAUGHT, "Unhandled Requirement Type: " + type.toString() + " QuestID: " + this.getId()); + break; } - - public int getMedalRequirement() { - Integer medalid = medals.get(id); - return medalid != null ? medalid : -1; + return ret; + } + + private MapleQuestAction getAction(MapleQuestActionType type, Data data) { + MapleQuestAction ret = null; + switch (type) { + case BUFF: + ret = new BuffAction(this, data); + break; + case EXP: + ret = new ExpAction(this, data); + break; + case FAME: + ret = new FameAction(this, data); + break; + case ITEM: + ret = new ItemAction(this, data); + break; + case MESO: + ret = new MesoAction(this, data); + break; + case NEXTQUEST: + ret = new NextQuestAction(this, data); + break; + case PETSKILL: + ret = new PetSkillAction(this, data); + break; + case QUEST: + ret = new QuestAction(this, data); + break; + case SKILL: + ret = new SkillAction(this, data); + break; + case PETTAMENESS: + ret = new PetTamenessAction(this, data); + break; + case PETSPEED: + ret = new PetSpeedAction(this, data); + break; + case INFO: + ret = new InfoAction(this, data); + break; + default: + //FilePrinter.printError(FilePrinter.EXCEPTION_CAUGHT, "Unhandled Action Type: " + type.toString() + " QuestID: " + this.getId()); + break; } - - public int getNpcRequirement(boolean checkEnd) { - Map reqs = !checkEnd ? startReqs : completeReqs; - MapleQuestRequirement mqr = reqs.get(MapleQuestRequirementType.NPC); - if (mqr != null) { - return ((NpcRequirement) mqr).get(); - } else { - return -1; - } - } - - public boolean hasScriptRequirement(boolean checkEnd) { - Map reqs = !checkEnd ? startReqs : completeReqs; - MapleQuestRequirement mqr = reqs.get(MapleQuestRequirementType.SCRIPT); - - if (mqr != null) { - return ((ScriptRequirement) mqr).get(); - } else { - return false; - } - } - - public boolean hasNextQuestAction() { - Map acts = completeActs; - MapleQuestAction mqa = acts.get(MapleQuestActionType.NEXTQUEST); - - return mqa != null; - } - - public String getName() { - return name; - } - - public String getParentName() { - return parent; - } - - public static boolean isExploitableQuest(short questid) { - return exploitableQuests.contains(questid); - } - - public static List getMatchedQuests(String search) { - List ret = new LinkedList<>(); - - search = search.toLowerCase(); - for (MapleQuest mq : quests.values()) { - if (mq.name.toLowerCase().contains(search) || mq.parent.toLowerCase().contains(search)) { - ret.add(mq); - } - } - - return ret; + return ret; + } + + public boolean restoreLostItem(Character chr, int itemid) { + if (chr.getQuest(this).getStatus().equals(QuestStatus.Status.STARTED)) { + ItemAction itemAct = (ItemAction) startActs.get(MapleQuestActionType.ITEM); + if (itemAct != null) { + return itemAct.restoreLostItem(chr, itemid); + } } + return false; + } + + public int getMedalRequirement() { + Integer medalid = medals.get(id); + return medalid != null ? medalid : -1; + } + + public int getNpcRequirement(boolean checkEnd) { + Map reqs = !checkEnd ? startReqs : completeReqs; + MapleQuestRequirement mqr = reqs.get(MapleQuestRequirementType.NPC); + if (mqr != null) { + return ((NpcRequirement) mqr).get(); + } else { + return -1; + } + } + + public boolean hasScriptRequirement(boolean checkEnd) { + Map reqs = !checkEnd ? startReqs : completeReqs; + MapleQuestRequirement mqr = reqs.get(MapleQuestRequirementType.SCRIPT); + + if (mqr != null) { + return ((ScriptRequirement) mqr).get(); + } else { + return false; + } + } + + public boolean hasNextQuestAction() { + Map acts = completeActs; + MapleQuestAction mqa = acts.get(MapleQuestActionType.NEXTQUEST); + + return mqa != null; + } + + public String getName() { + return name; + } + + public String getParentName() { + return parent; + } + + public static boolean isExploitableQuest(short questid) { + return exploitableQuests.contains(questid); + } + + public static List getMatchedQuests(String search) { + List ret = new LinkedList<>(); + + search = search.toLowerCase(); + for (Quest mq : quests.values()) { + if (mq.name.toLowerCase().contains(search) || mq.parent.toLowerCase().contains(search)) { + ret.add(mq); + } + } + + return ret; + } + public static void loadAllQuests() { - final Map loadedQuests = new HashMap<>(); + final Map loadedQuests = new HashMap<>(); final Map loadedInfoNumberQuests = new HashMap<>(); for (Data quest : questInfo.getChildren()) { int questID = Integer.parseInt(quest.getName()); - MapleQuest q = new MapleQuest(questID); + Quest q = new Quest(questID); loadedQuests.put(questID, q); int infoNumber; @@ -672,7 +672,7 @@ public class MapleQuest { } } - MapleQuest.quests = loadedQuests; - MapleQuest.infoNumberQuests = loadedInfoNumberQuests; + Quest.quests = loadedQuests; + Quest.infoNumberQuests = loadedInfoNumberQuests; } } diff --git a/src/main/java/server/quest/actions/BuffAction.java b/src/main/java/server/quest/actions/BuffAction.java index 5b2c5afda4..7749ba11a5 100644 --- a/src/main/java/server/quest/actions/BuffAction.java +++ b/src/main/java/server/quest/actions/BuffAction.java @@ -25,8 +25,8 @@ import client.Character; import provider.Data; import provider.DataTool; import server.MapleItemInformationProvider; -import server.quest.MapleQuest; import server.quest.MapleQuestActionType; +import server.quest.Quest; /** * @@ -35,7 +35,7 @@ import server.quest.MapleQuestActionType; public class BuffAction extends MapleQuestAction { int itemEffect; - public BuffAction(MapleQuest quest, Data data) { + public BuffAction(Quest quest, Data data) { super(MapleQuestActionType.BUFF, quest); processData(data); } diff --git a/src/main/java/server/quest/actions/ExpAction.java b/src/main/java/server/quest/actions/ExpAction.java index 11d148c907..2f86a15191 100644 --- a/src/main/java/server/quest/actions/ExpAction.java +++ b/src/main/java/server/quest/actions/ExpAction.java @@ -25,8 +25,8 @@ import client.Character; import config.YamlConfig; import provider.Data; import provider.DataTool; -import server.quest.MapleQuest; import server.quest.MapleQuestActionType; +import server.quest.Quest; /** * @@ -35,7 +35,7 @@ import server.quest.MapleQuestActionType; public class ExpAction extends MapleQuestAction { int exp; - public ExpAction(MapleQuest quest, Data data) { + public ExpAction(Quest quest, Data data) { super(MapleQuestActionType.EXP, quest); processData(data); } diff --git a/src/main/java/server/quest/actions/FameAction.java b/src/main/java/server/quest/actions/FameAction.java index 72c8e44f07..851116fcaa 100644 --- a/src/main/java/server/quest/actions/FameAction.java +++ b/src/main/java/server/quest/actions/FameAction.java @@ -24,8 +24,8 @@ package server.quest.actions; import client.Character; import provider.Data; import provider.DataTool; -import server.quest.MapleQuest; import server.quest.MapleQuestActionType; +import server.quest.Quest; /** * @@ -34,7 +34,7 @@ import server.quest.MapleQuestActionType; public class FameAction extends MapleQuestAction { int fame; - public FameAction(MapleQuest quest, Data data) { + public FameAction(Quest quest, Data data) { super(MapleQuestActionType.FAME, quest); questID = quest.getId(); processData(data); diff --git a/src/main/java/server/quest/actions/InfoAction.java b/src/main/java/server/quest/actions/InfoAction.java index 9c9dcf9311..f29b311074 100644 --- a/src/main/java/server/quest/actions/InfoAction.java +++ b/src/main/java/server/quest/actions/InfoAction.java @@ -22,8 +22,8 @@ package server.quest.actions; import client.Character; import provider.Data; import provider.DataTool; -import server.quest.MapleQuest; import server.quest.MapleQuestActionType; +import server.quest.Quest; /** * @@ -34,7 +34,7 @@ public class InfoAction extends MapleQuestAction { private String info; private int questID; - public InfoAction(MapleQuest quest, Data data) { + public InfoAction(Quest quest, Data data) { super(MapleQuestActionType.INFO, quest); questID = quest.getId(); processData(data); diff --git a/src/main/java/server/quest/actions/ItemAction.java b/src/main/java/server/quest/actions/ItemAction.java index 5f7b67338d..b33673b341 100644 --- a/src/main/java/server/quest/actions/ItemAction.java +++ b/src/main/java/server/quest/actions/ItemAction.java @@ -30,8 +30,8 @@ import constants.inventory.ItemConstants; import provider.Data; import provider.DataTool; import server.MapleItemInformationProvider; -import server.quest.MapleQuest; import server.quest.MapleQuestActionType; +import server.quest.Quest; import tools.FilePrinter; import tools.PacketCreator; import tools.Pair; @@ -50,7 +50,7 @@ import java.util.List; public class ItemAction extends MapleQuestAction { List items = new ArrayList<>(); - public ItemAction(MapleQuest quest, Data data) { + public ItemAction(Quest quest, Data data) { super(MapleQuestActionType.ITEM, quest); processData(data); } diff --git a/src/main/java/server/quest/actions/MapleQuestAction.java b/src/main/java/server/quest/actions/MapleQuestAction.java index 56e59c4db8..8433c10014 100644 --- a/src/main/java/server/quest/actions/MapleQuestAction.java +++ b/src/main/java/server/quest/actions/MapleQuestAction.java @@ -20,8 +20,8 @@ package server.quest.actions; import client.Character; import provider.Data; -import server.quest.MapleQuest; import server.quest.MapleQuestActionType; +import server.quest.Quest; import java.util.ArrayList; import java.util.List; @@ -34,7 +34,7 @@ public abstract class MapleQuestAction { private final MapleQuestActionType type; protected int questID; - public MapleQuestAction(MapleQuestActionType action, MapleQuest quest) { + public MapleQuestAction(MapleQuestActionType action, Quest quest) { this.type = action; this.questID = quest.getId(); } diff --git a/src/main/java/server/quest/actions/MesoAction.java b/src/main/java/server/quest/actions/MesoAction.java index 3f7500eb43..f4ecbb0c59 100644 --- a/src/main/java/server/quest/actions/MesoAction.java +++ b/src/main/java/server/quest/actions/MesoAction.java @@ -25,8 +25,8 @@ import client.Character; import config.YamlConfig; import provider.Data; import provider.DataTool; -import server.quest.MapleQuest; import server.quest.MapleQuestActionType; +import server.quest.Quest; /** * @@ -35,7 +35,7 @@ import server.quest.MapleQuestActionType; public class MesoAction extends MapleQuestAction { int mesos; - public MesoAction(MapleQuest quest, Data data) { + public MesoAction(Quest quest, Data data) { super(MapleQuestActionType.MESO, quest); questID = quest.getId(); processData(data); diff --git a/src/main/java/server/quest/actions/NextQuestAction.java b/src/main/java/server/quest/actions/NextQuestAction.java index 8c3911d97c..29790b1439 100644 --- a/src/main/java/server/quest/actions/NextQuestAction.java +++ b/src/main/java/server/quest/actions/NextQuestAction.java @@ -25,8 +25,8 @@ import client.Character; import client.QuestStatus; import provider.Data; import provider.DataTool; -import server.quest.MapleQuest; import server.quest.MapleQuestActionType; +import server.quest.Quest; import tools.PacketCreator; /** @@ -36,7 +36,7 @@ import tools.PacketCreator; public class NextQuestAction extends MapleQuestAction { int nextQuest; - public NextQuestAction(MapleQuest quest, Data data) { + public NextQuestAction(Quest quest, Data data) { super(MapleQuestActionType.NEXTQUEST, quest); processData(data); } @@ -49,7 +49,7 @@ public class NextQuestAction extends MapleQuestAction { @Override public void run(Character chr, Integer extSelection) { - QuestStatus status = chr.getQuest(MapleQuest.getInstance(questID)); + QuestStatus status = chr.getQuest(Quest.getInstance(questID)); chr.sendPacket(PacketCreator.updateQuestFinish((short) questID, status.getNpc(), (short) nextQuest)); } } diff --git a/src/main/java/server/quest/actions/PetSkillAction.java b/src/main/java/server/quest/actions/PetSkillAction.java index 2f78284065..c3f338f177 100644 --- a/src/main/java/server/quest/actions/PetSkillAction.java +++ b/src/main/java/server/quest/actions/PetSkillAction.java @@ -26,8 +26,8 @@ import client.QuestStatus; import constants.inventory.ItemConstants; import provider.Data; import provider.DataTool; -import server.quest.MapleQuest; import server.quest.MapleQuestActionType; +import server.quest.Quest; /** * @@ -36,7 +36,7 @@ import server.quest.MapleQuestActionType; public class PetSkillAction extends MapleQuestAction { int flag; - public PetSkillAction(MapleQuest quest, Data data) { + public PetSkillAction(Quest quest, Data data) { super(MapleQuestActionType.PETSKILL, quest); questID = quest.getId(); processData(data); @@ -50,7 +50,7 @@ public class PetSkillAction extends MapleQuestAction { @Override public boolean check(Character chr, Integer extSelection) { - QuestStatus status = chr.getQuest(MapleQuest.getInstance(questID)); + QuestStatus status = chr.getQuest(Quest.getInstance(questID)); if(!(status.getStatus() == QuestStatus.Status.NOT_STARTED && status.getForfeited() > 0)) return false; diff --git a/src/main/java/server/quest/actions/PetSpeedAction.java b/src/main/java/server/quest/actions/PetSpeedAction.java index 79f6e3eb2e..4cddc3e649 100644 --- a/src/main/java/server/quest/actions/PetSpeedAction.java +++ b/src/main/java/server/quest/actions/PetSpeedAction.java @@ -23,8 +23,8 @@ import client.Character; import client.Client; import client.inventory.Pet; import provider.Data; -import server.quest.MapleQuest; import server.quest.MapleQuestActionType; +import server.quest.Quest; /** * @@ -32,7 +32,7 @@ import server.quest.MapleQuestActionType; */ public class PetSpeedAction extends MapleQuestAction { - public PetSpeedAction(MapleQuest quest, Data data) { + public PetSpeedAction(Quest quest, Data data) { super(MapleQuestActionType.PETTAMENESS, quest); questID = quest.getId(); } diff --git a/src/main/java/server/quest/actions/PetTamenessAction.java b/src/main/java/server/quest/actions/PetTamenessAction.java index e84f56be46..7a138efe24 100644 --- a/src/main/java/server/quest/actions/PetTamenessAction.java +++ b/src/main/java/server/quest/actions/PetTamenessAction.java @@ -24,8 +24,8 @@ import client.Client; import client.inventory.Pet; import provider.Data; import provider.DataTool; -import server.quest.MapleQuest; import server.quest.MapleQuestActionType; +import server.quest.Quest; /** * @@ -34,7 +34,7 @@ import server.quest.MapleQuestActionType; public class PetTamenessAction extends MapleQuestAction { int tameness; - public PetTamenessAction(MapleQuest quest, Data data) { + public PetTamenessAction(Quest quest, Data data) { super(MapleQuestActionType.PETTAMENESS, quest); questID = quest.getId(); processData(data); diff --git a/src/main/java/server/quest/actions/QuestAction.java b/src/main/java/server/quest/actions/QuestAction.java index be00f062c8..0fcc8aba2f 100644 --- a/src/main/java/server/quest/actions/QuestAction.java +++ b/src/main/java/server/quest/actions/QuestAction.java @@ -25,8 +25,8 @@ import client.Character; import client.QuestStatus; import provider.Data; import provider.DataTool; -import server.quest.MapleQuest; import server.quest.MapleQuestActionType; +import server.quest.Quest; import java.util.HashMap; import java.util.Map; @@ -39,7 +39,7 @@ public class QuestAction extends MapleQuestAction { int mesos; Map quests = new HashMap<>(); - public QuestAction(MapleQuest quest, Data data) { + public QuestAction(Quest quest, Data data) { super(MapleQuestActionType.QUEST, quest); questID = quest.getId(); processData(data); @@ -59,7 +59,7 @@ public class QuestAction extends MapleQuestAction { public void run(Character chr, Integer extSelection) { for(Integer questID : quests.keySet()) { int stat = quests.get(questID); - chr.updateQuestStatus(new QuestStatus(MapleQuest.getInstance(questID), QuestStatus.Status.getById(stat))); + chr.updateQuestStatus(new QuestStatus(Quest.getInstance(questID), QuestStatus.Status.getById(stat))); } } } diff --git a/src/main/java/server/quest/actions/SkillAction.java b/src/main/java/server/quest/actions/SkillAction.java index f9c55dbcfd..f2425193ed 100644 --- a/src/main/java/server/quest/actions/SkillAction.java +++ b/src/main/java/server/quest/actions/SkillAction.java @@ -27,8 +27,8 @@ import client.Skill; import client.SkillFactory; import provider.Data; import provider.DataTool; -import server.quest.MapleQuest; import server.quest.MapleQuestActionType; +import server.quest.Quest; import java.util.ArrayList; import java.util.HashMap; @@ -43,7 +43,7 @@ public class SkillAction extends MapleQuestAction { int itemEffect; Map skillData = new HashMap<>(); - public SkillAction(MapleQuest quest, Data data) { + public SkillAction(Quest quest, Data data) { super(MapleQuestActionType.SKILL, quest); processData(data); } diff --git a/src/main/java/server/quest/requirements/BuffExceptRequirement.java b/src/main/java/server/quest/requirements/BuffExceptRequirement.java index e392c69c67..09f5382988 100644 --- a/src/main/java/server/quest/requirements/BuffExceptRequirement.java +++ b/src/main/java/server/quest/requirements/BuffExceptRequirement.java @@ -18,12 +18,12 @@ along with this program. If not, see . */ package server.quest.requirements; - + import client.Character; import provider.Data; import provider.DataTool; -import server.quest.MapleQuest; import server.quest.MapleQuestRequirementType; +import server.quest.Quest; /** * @@ -32,7 +32,7 @@ import server.quest.MapleQuestRequirementType; public class BuffExceptRequirement extends MapleQuestRequirement { private int buffId = -1; - public BuffExceptRequirement(MapleQuest quest, Data data) { + public BuffExceptRequirement(Quest quest, Data data) { super(MapleQuestRequirementType.BUFF); processData(data); } diff --git a/src/main/java/server/quest/requirements/BuffRequirement.java b/src/main/java/server/quest/requirements/BuffRequirement.java index df41292f91..1a49e9314b 100644 --- a/src/main/java/server/quest/requirements/BuffRequirement.java +++ b/src/main/java/server/quest/requirements/BuffRequirement.java @@ -22,8 +22,8 @@ package server.quest.requirements; import client.Character; import provider.Data; import provider.DataTool; -import server.quest.MapleQuest; import server.quest.MapleQuestRequirementType; +import server.quest.Quest; /** * @@ -32,7 +32,7 @@ import server.quest.MapleQuestRequirementType; public class BuffRequirement extends MapleQuestRequirement { private int buffId = 1; - public BuffRequirement(MapleQuest quest, Data data) { + public BuffRequirement(Quest quest, Data data) { super(MapleQuestRequirementType.BUFF); processData(data); } diff --git a/src/main/java/server/quest/requirements/CompletedQuestRequirement.java b/src/main/java/server/quest/requirements/CompletedQuestRequirement.java index 2854a3cf4c..5f81f7f222 100644 --- a/src/main/java/server/quest/requirements/CompletedQuestRequirement.java +++ b/src/main/java/server/quest/requirements/CompletedQuestRequirement.java @@ -24,8 +24,8 @@ package server.quest.requirements; import client.Character; import provider.Data; import provider.DataTool; -import server.quest.MapleQuest; import server.quest.MapleQuestRequirementType; +import server.quest.Quest; /** * @@ -35,7 +35,7 @@ public class CompletedQuestRequirement extends MapleQuestRequirement { private int reqQuest; - public CompletedQuestRequirement(MapleQuest quest, Data data) { + public CompletedQuestRequirement(Quest quest, Data data) { super(MapleQuestRequirementType.COMPLETED_QUEST); processData(data); } diff --git a/src/main/java/server/quest/requirements/EndDateRequirement.java b/src/main/java/server/quest/requirements/EndDateRequirement.java index 018cd198a4..184a3bf961 100644 --- a/src/main/java/server/quest/requirements/EndDateRequirement.java +++ b/src/main/java/server/quest/requirements/EndDateRequirement.java @@ -24,8 +24,8 @@ package server.quest.requirements; import client.Character; import provider.Data; import provider.DataTool; -import server.quest.MapleQuest; import server.quest.MapleQuestRequirementType; +import server.quest.Quest; import java.util.Calendar; @@ -37,7 +37,7 @@ public class EndDateRequirement extends MapleQuestRequirement { private String timeStr; - public EndDateRequirement(MapleQuest quest, Data data) { + public EndDateRequirement(Quest quest, Data data) { super(MapleQuestRequirementType.END_DATE); processData(data); } diff --git a/src/main/java/server/quest/requirements/FieldEnterRequirement.java b/src/main/java/server/quest/requirements/FieldEnterRequirement.java index 7e9db4c287..b6540fc1d4 100644 --- a/src/main/java/server/quest/requirements/FieldEnterRequirement.java +++ b/src/main/java/server/quest/requirements/FieldEnterRequirement.java @@ -24,8 +24,8 @@ package server.quest.requirements; import client.Character; import provider.Data; import provider.DataTool; -import server.quest.MapleQuest; import server.quest.MapleQuestRequirementType; +import server.quest.Quest; /** * @@ -35,7 +35,7 @@ public class FieldEnterRequirement extends MapleQuestRequirement { private int mapId = -1; - public FieldEnterRequirement(MapleQuest quest, Data data) { + public FieldEnterRequirement(Quest quest, Data data) { super(MapleQuestRequirementType.FIELD_ENTER); processData(data); } diff --git a/src/main/java/server/quest/requirements/InfoExRequirement.java b/src/main/java/server/quest/requirements/InfoExRequirement.java index 8e53afa800..29a043aaf5 100644 --- a/src/main/java/server/quest/requirements/InfoExRequirement.java +++ b/src/main/java/server/quest/requirements/InfoExRequirement.java @@ -24,8 +24,8 @@ package server.quest.requirements; import client.Character; import provider.Data; import provider.DataTool; -import server.quest.MapleQuest; import server.quest.MapleQuestRequirementType; +import server.quest.Quest; import java.util.ArrayList; import java.util.List; @@ -39,7 +39,7 @@ public class InfoExRequirement extends MapleQuestRequirement { private int questID; - public InfoExRequirement(MapleQuest quest, Data data) { + public InfoExRequirement(Quest quest, Data data) { super(MapleQuestRequirementType.INFO_EX); questID = quest.getId(); processData(data); diff --git a/src/main/java/server/quest/requirements/InfoNumberRequirement.java b/src/main/java/server/quest/requirements/InfoNumberRequirement.java index 966210137b..d2ca95f051 100644 --- a/src/main/java/server/quest/requirements/InfoNumberRequirement.java +++ b/src/main/java/server/quest/requirements/InfoNumberRequirement.java @@ -22,8 +22,8 @@ package server.quest.requirements; import client.Character; import provider.Data; import provider.DataTool; -import server.quest.MapleQuest; import server.quest.MapleQuestRequirementType; +import server.quest.Quest; /** * @@ -34,7 +34,7 @@ public class InfoNumberRequirement extends MapleQuestRequirement { private short infoNumber; private int questID; - public InfoNumberRequirement(MapleQuest quest, Data data) { + public InfoNumberRequirement(Quest quest, Data data) { super(MapleQuestRequirementType.INFO_NUMBER); questID = quest.getId(); processData(data); diff --git a/src/main/java/server/quest/requirements/IntervalRequirement.java b/src/main/java/server/quest/requirements/IntervalRequirement.java index aee1326c8f..155c65558b 100644 --- a/src/main/java/server/quest/requirements/IntervalRequirement.java +++ b/src/main/java/server/quest/requirements/IntervalRequirement.java @@ -25,8 +25,8 @@ import client.Character; import client.QuestStatus; import provider.Data; import provider.DataTool; -import server.quest.MapleQuest; import server.quest.MapleQuestRequirementType; +import server.quest.Quest; /** * @@ -36,7 +36,7 @@ public class IntervalRequirement extends MapleQuestRequirement { private int interval = -1; private int questID; - public IntervalRequirement(MapleQuest quest, Data data) { + public IntervalRequirement(Quest quest, Data data) { super(MapleQuestRequirementType.INTERVAL); questID = quest.getId(); processData(data); @@ -54,7 +54,7 @@ public class IntervalRequirement extends MapleQuestRequirement { private static String getIntervalTimeLeft(Character chr, IntervalRequirement r) { StringBuilder str = new StringBuilder(); - long futureTime = chr.getQuest(MapleQuest.getInstance(r.questID)).getCompletionTime() + r.getInterval(); + long futureTime = chr.getQuest(Quest.getInstance(r.questID)).getCompletionTime() + r.getInterval(); long leftTime = futureTime - System.currentTimeMillis(); byte mode = 0; @@ -84,8 +84,8 @@ public class IntervalRequirement extends MapleQuestRequirement { @Override public boolean check(Character chr, Integer npcid) { - boolean check = !chr.getQuest(MapleQuest.getInstance(questID)).getStatus().equals(QuestStatus.Status.COMPLETED); - boolean check2 = chr.getQuest(MapleQuest.getInstance(questID)).getCompletionTime() <= System.currentTimeMillis() - interval; + boolean check = !chr.getQuest(Quest.getInstance(questID)).getStatus().equals(QuestStatus.Status.COMPLETED); + boolean check2 = chr.getQuest(Quest.getInstance(questID)).getCompletionTime() <= System.currentTimeMillis() - interval; if (check || check2) { return true; diff --git a/src/main/java/server/quest/requirements/ItemRequirement.java b/src/main/java/server/quest/requirements/ItemRequirement.java index d422de6a05..1f26b244ce 100644 --- a/src/main/java/server/quest/requirements/ItemRequirement.java +++ b/src/main/java/server/quest/requirements/ItemRequirement.java @@ -28,8 +28,8 @@ import constants.inventory.ItemConstants; import provider.Data; import provider.DataTool; import server.MapleItemInformationProvider; -import server.quest.MapleQuest; import server.quest.MapleQuestRequirementType; +import server.quest.Quest; import java.util.HashMap; import java.util.Map; @@ -42,7 +42,7 @@ public class ItemRequirement extends MapleQuestRequirement { Map items = new HashMap<>(); - public ItemRequirement(MapleQuest quest, Data data) { + public ItemRequirement(Quest quest, Data data) { super(MapleQuestRequirementType.ITEM); processData(data); } diff --git a/src/main/java/server/quest/requirements/JobRequirement.java b/src/main/java/server/quest/requirements/JobRequirement.java index 64ee3125d7..23e30dfa70 100644 --- a/src/main/java/server/quest/requirements/JobRequirement.java +++ b/src/main/java/server/quest/requirements/JobRequirement.java @@ -25,8 +25,8 @@ import client.Character; import client.Job; import provider.Data; import provider.DataTool; -import server.quest.MapleQuest; import server.quest.MapleQuestRequirementType; +import server.quest.Quest; import java.util.ArrayList; import java.util.List; @@ -38,7 +38,7 @@ import java.util.List; public class JobRequirement extends MapleQuestRequirement { List jobs = new ArrayList<>(); - public JobRequirement(MapleQuest quest, Data data) { + public JobRequirement(Quest quest, Data data) { super(MapleQuestRequirementType.JOB); processData(data); } diff --git a/src/main/java/server/quest/requirements/MaxLevelRequirement.java b/src/main/java/server/quest/requirements/MaxLevelRequirement.java index 52594b149f..f4413c01ba 100644 --- a/src/main/java/server/quest/requirements/MaxLevelRequirement.java +++ b/src/main/java/server/quest/requirements/MaxLevelRequirement.java @@ -24,8 +24,8 @@ package server.quest.requirements; import client.Character; import provider.Data; import provider.DataTool; -import server.quest.MapleQuest; import server.quest.MapleQuestRequirementType; +import server.quest.Quest; /** * @@ -35,7 +35,7 @@ public class MaxLevelRequirement extends MapleQuestRequirement { private int maxLevel; - public MaxLevelRequirement(MapleQuest quest, Data data) { + public MaxLevelRequirement(Quest quest, Data data) { super(MapleQuestRequirementType.MAX_LEVEL); processData(data); } diff --git a/src/main/java/server/quest/requirements/MesoRequirement.java b/src/main/java/server/quest/requirements/MesoRequirement.java index 5e12d7898e..37d81d50cf 100644 --- a/src/main/java/server/quest/requirements/MesoRequirement.java +++ b/src/main/java/server/quest/requirements/MesoRequirement.java @@ -22,8 +22,8 @@ package server.quest.requirements; import client.Character; import provider.Data; import provider.DataTool; -import server.quest.MapleQuest; import server.quest.MapleQuestRequirementType; +import server.quest.Quest; /** * @@ -32,7 +32,7 @@ import server.quest.MapleQuestRequirementType; public class MesoRequirement extends MapleQuestRequirement { private int meso = 0; - public MesoRequirement(MapleQuest quest, Data data) { + public MesoRequirement(Quest quest, Data data) { super(MapleQuestRequirementType.MESO); processData(data); } diff --git a/src/main/java/server/quest/requirements/MinLevelRequirement.java b/src/main/java/server/quest/requirements/MinLevelRequirement.java index 8ca97abe71..20ec7a539a 100644 --- a/src/main/java/server/quest/requirements/MinLevelRequirement.java +++ b/src/main/java/server/quest/requirements/MinLevelRequirement.java @@ -24,8 +24,8 @@ package server.quest.requirements; import client.Character; import provider.Data; import provider.DataTool; -import server.quest.MapleQuest; import server.quest.MapleQuestRequirementType; +import server.quest.Quest; /** * @@ -35,7 +35,7 @@ public class MinLevelRequirement extends MapleQuestRequirement { private int minLevel; - public MinLevelRequirement(MapleQuest quest, Data data) { + public MinLevelRequirement(Quest quest, Data data) { super(MapleQuestRequirementType.MIN_LEVEL); processData(data); } diff --git a/src/main/java/server/quest/requirements/MinTamenessRequirement.java b/src/main/java/server/quest/requirements/MinTamenessRequirement.java index 6f2d8fefaa..1608d154e8 100644 --- a/src/main/java/server/quest/requirements/MinTamenessRequirement.java +++ b/src/main/java/server/quest/requirements/MinTamenessRequirement.java @@ -25,8 +25,8 @@ import client.Character; import client.inventory.Pet; import provider.Data; import provider.DataTool; -import server.quest.MapleQuest; import server.quest.MapleQuestRequirementType; +import server.quest.Quest; /** * @@ -36,7 +36,7 @@ public class MinTamenessRequirement extends MapleQuestRequirement { private int minTameness; - public MinTamenessRequirement(MapleQuest quest, Data data) { + public MinTamenessRequirement(Quest quest, Data data) { super(MapleQuestRequirementType.MIN_PET_TAMENESS); processData(data); } diff --git a/src/main/java/server/quest/requirements/MobRequirement.java b/src/main/java/server/quest/requirements/MobRequirement.java index 2994e3e8db..4536807305 100644 --- a/src/main/java/server/quest/requirements/MobRequirement.java +++ b/src/main/java/server/quest/requirements/MobRequirement.java @@ -25,8 +25,8 @@ import client.Character; import client.QuestStatus; import provider.Data; import provider.DataTool; -import server.quest.MapleQuest; import server.quest.MapleQuestRequirementType; +import server.quest.Quest; import tools.FilePrinter; import java.util.HashMap; @@ -40,7 +40,7 @@ public class MobRequirement extends MapleQuestRequirement { Map mobs = new HashMap<>(); private int questID; - public MobRequirement(MapleQuest quest, Data data) { + public MobRequirement(Quest quest, Data data) { super(MapleQuestRequirementType.MOB); questID = quest.getId(); processData(data); @@ -62,7 +62,7 @@ public class MobRequirement extends MapleQuestRequirement { @Override public boolean check(Character chr, Integer npcid) { - QuestStatus status = chr.getQuest(MapleQuest.getInstance(questID)); + QuestStatus status = chr.getQuest(Quest.getInstance(questID)); for(Integer mobID : mobs.keySet()) { int countReq = mobs.get(mobID); int progress; diff --git a/src/main/java/server/quest/requirements/MonsterBookCountRequirement.java b/src/main/java/server/quest/requirements/MonsterBookCountRequirement.java index 3886d80ba9..f515c65c63 100644 --- a/src/main/java/server/quest/requirements/MonsterBookCountRequirement.java +++ b/src/main/java/server/quest/requirements/MonsterBookCountRequirement.java @@ -24,8 +24,8 @@ package server.quest.requirements; import client.Character; import provider.Data; import provider.DataTool; -import server.quest.MapleQuest; import server.quest.MapleQuestRequirementType; +import server.quest.Quest; /** * @@ -35,7 +35,7 @@ public class MonsterBookCountRequirement extends MapleQuestRequirement { private int reqCards; - public MonsterBookCountRequirement(MapleQuest quest, Data data) { + public MonsterBookCountRequirement(Quest quest, Data data) { super(MapleQuestRequirementType.MONSTER_BOOK); processData(data); } diff --git a/src/main/java/server/quest/requirements/NpcRequirement.java b/src/main/java/server/quest/requirements/NpcRequirement.java index a017a58c4e..171189535c 100644 --- a/src/main/java/server/quest/requirements/NpcRequirement.java +++ b/src/main/java/server/quest/requirements/NpcRequirement.java @@ -24,8 +24,8 @@ package server.quest.requirements; import client.Character; import provider.Data; import provider.DataTool; -import server.quest.MapleQuest; import server.quest.MapleQuestRequirementType; +import server.quest.Quest; /** * @@ -34,7 +34,7 @@ import server.quest.MapleQuestRequirementType; public class NpcRequirement extends MapleQuestRequirement { private int reqNPC; - public NpcRequirement(MapleQuest quest, Data data) { + public NpcRequirement(Quest quest, Data data) { super(MapleQuestRequirementType.NPC); processData(data); } diff --git a/src/main/java/server/quest/requirements/PetRequirement.java b/src/main/java/server/quest/requirements/PetRequirement.java index 986fcd4c21..cca35e5bed 100644 --- a/src/main/java/server/quest/requirements/PetRequirement.java +++ b/src/main/java/server/quest/requirements/PetRequirement.java @@ -25,8 +25,8 @@ import client.Character; import client.inventory.Pet; import provider.Data; import provider.DataTool; -import server.quest.MapleQuest; import server.quest.MapleQuestRequirementType; +import server.quest.Quest; import java.util.ArrayList; import java.util.List; @@ -39,7 +39,7 @@ public class PetRequirement extends MapleQuestRequirement { List petIDs = new ArrayList<>(); - public PetRequirement(MapleQuest quest, Data data) { + public PetRequirement(Quest quest, Data data) { super(MapleQuestRequirementType.PET); processData(data); } diff --git a/src/main/java/server/quest/requirements/QuestRequirement.java b/src/main/java/server/quest/requirements/QuestRequirement.java index 341e92a82f..3cb8adbddc 100644 --- a/src/main/java/server/quest/requirements/QuestRequirement.java +++ b/src/main/java/server/quest/requirements/QuestRequirement.java @@ -22,8 +22,8 @@ import client.Character; import client.QuestStatus; import provider.Data; import provider.DataTool; -import server.quest.MapleQuest; import server.quest.MapleQuestRequirementType; +import server.quest.Quest; import java.util.HashMap; import java.util.Map; @@ -35,7 +35,7 @@ import java.util.Map; public class QuestRequirement extends MapleQuestRequirement { Map quests = new HashMap<>(); - public QuestRequirement(MapleQuest quest, Data data) { + public QuestRequirement(Quest quest, Data data) { super(MapleQuestRequirementType.QUEST); processData(data); } @@ -58,7 +58,7 @@ public class QuestRequirement extends MapleQuestRequirement { public boolean check(Character chr, Integer npcid) { for(Integer questID : quests.keySet()) { int stateReq = quests.get(questID); - QuestStatus qs = chr.getQuest(MapleQuest.getInstance(questID)); + QuestStatus qs = chr.getQuest(Quest.getInstance(questID)); if(qs == null && QuestStatus.Status.getById(stateReq).equals(QuestStatus.Status.NOT_STARTED)) continue; diff --git a/src/main/java/server/quest/requirements/ScriptRequirement.java b/src/main/java/server/quest/requirements/ScriptRequirement.java index a6add2e272..c8d183c640 100644 --- a/src/main/java/server/quest/requirements/ScriptRequirement.java +++ b/src/main/java/server/quest/requirements/ScriptRequirement.java @@ -18,12 +18,12 @@ along with this program. If not, see . */ package server.quest.requirements; - + import client.Character; import provider.Data; import provider.DataTool; -import server.quest.MapleQuest; import server.quest.MapleQuestRequirementType; +import server.quest.Quest; /** * @@ -32,7 +32,7 @@ import server.quest.MapleQuestRequirementType; public class ScriptRequirement extends MapleQuestRequirement { private boolean reqScript; - public ScriptRequirement(MapleQuest quest, Data data) { + public ScriptRequirement(Quest quest, Data data) { super(MapleQuestRequirementType.BUFF); processData(data); }