Rename and clean up MapleQuest

This commit is contained in:
P0nk
2021-09-09 22:42:02 +02:00
parent 75d631bebb
commit fef273ecc9
55 changed files with 436 additions and 436 deletions
+23 -23
View File
@@ -74,7 +74,7 @@ import server.partyquest.AriantColiseum;
import server.partyquest.MonsterCarnival; import server.partyquest.MonsterCarnival;
import server.partyquest.MonsterCarnivalParty; import server.partyquest.MonsterCarnivalParty;
import server.partyquest.PartyQuest; import server.partyquest.PartyQuest;
import server.quest.MapleQuest; import server.quest.Quest;
import tools.*; import tools.*;
import tools.exceptions.NotEnabledException; import tools.exceptions.NotEnabledException;
import tools.packets.WeddingPackets; import tools.packets.WeddingPackets;
@@ -195,7 +195,7 @@ public class Character extends AbstractCharacterObject {
private byte[] m_aQuickslotLoaded; private byte[] m_aQuickslotLoaded;
private QuickslotBinding m_pQuickslotKeyMapped; private QuickslotBinding m_pQuickslotKeyMapped;
private Door pdoor = null; private Door pdoor = null;
private Map<MapleQuest, Long> questExpirations = new LinkedHashMap<>(); private Map<Quest, Long> questExpirations = new LinkedHashMap<>();
private ScheduledFuture<?> dragonBloodSchedule; private ScheduledFuture<?> dragonBloodSchedule;
private ScheduledFuture<?> hpDecreaseTask; private ScheduledFuture<?> hpDecreaseTask;
private ScheduledFuture<?> beholderHealingSchedule, beholderBuffSchedule, berserkSchedule; private ScheduledFuture<?> beholderHealingSchedule, beholderBuffSchedule, berserkSchedule;
@@ -5686,10 +5686,10 @@ public class Character extends AbstractCharacterObject {
} }
public QuestStatus getQuest(final int quest) { 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) { synchronized (quests) {
short questid = quest.getId(); short questid = quest.getId();
QuestStatus qs = quests.get(questid); QuestStatus qs = quests.get(questid);
@@ -5703,7 +5703,7 @@ public class Character extends AbstractCharacterObject {
//---- \/ \/ \/ \/ \/ \/ \/ NOT TESTED \/ \/ \/ \/ \/ \/ \/ \/ \/ ---- //---- \/ \/ \/ \/ \/ \/ \/ 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) { synchronized (quests) {
if (!quests.containsKey(quest.getId())) { if (!quests.containsKey(quest.getId())) {
final QuestStatus stat = new QuestStatus(quest, QuestStatus.Status.getById(status)); 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) { synchronized (quests) {
if (!quests.containsKey(quest.getId())) { if (!quests.containsKey(quest.getId())) {
final QuestStatus status = new QuestStatus(quest, QuestStatus.Status.NOT_STARTED); 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) { synchronized (quests) {
return quests.get(quest.getId()); return quests.get(quest.getId());
} }
} }
public final QuestStatus getQuestRemove(final MapleQuest quest) { public final QuestStatus getQuestRemove(final Quest quest) {
synchronized (quests) { synchronized (quests) {
return quests.remove(quest.getId()); return quests.remove(quest.getId());
} }
@@ -5745,14 +5745,14 @@ public class Character extends AbstractCharacterObject {
int amountNeeded, questStatus = this.getQuestStatus(questid); int amountNeeded, questStatus = this.getQuestStatus(questid);
if (questStatus == 0) { if (questStatus == 0) {
amountNeeded = MapleQuest.getInstance(questid).getStartItemAmountNeeded(itemid); amountNeeded = Quest.getInstance(questid).getStartItemAmountNeeded(itemid);
if (amountNeeded == Integer.MIN_VALUE) { if (amountNeeded == Integer.MIN_VALUE) {
return false; return false;
} }
} else if (questStatus != 1) { } else if (questStatus != 1) {
return false; return false;
} else { } else {
amountNeeded = MapleQuest.getInstance(questid).getCompleteItemAmountNeeded(itemid); amountNeeded = Quest.getInstance(questid).getCompleteItemAmountNeeded(itemid);
if (amountNeeded == Integer.MAX_VALUE) { if (amountNeeded == Integer.MAX_VALUE) {
return true; return true;
} }
@@ -7241,7 +7241,7 @@ public class Character extends AbstractCharacterObject {
try (ResultSet rs = ps.executeQuery()) { try (ResultSet rs = ps.executeQuery()) {
while (rs.next()) { 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"))); QuestStatus status = new QuestStatus(q, QuestStatus.Status.getById(rs.getInt("status")));
long cTime = rs.getLong("time"); long cTime = rs.getLong("time");
if (cTime > -1) { if (cTime > -1) {
@@ -9821,11 +9821,11 @@ public class Character extends AbstractCharacterObject {
} }
public void setQuestProgress(int id, int infoNumber, String progress) { public void setQuestProgress(int id, int infoNumber, String progress) {
MapleQuest q = MapleQuest.getInstance(id); Quest q = Quest.getInstance(id);
QuestStatus qs = getQuest(q); QuestStatus qs = getQuest(q);
if (qs.getInfoNumber() == infoNumber && infoNumber > 0) { if (qs.getInfoNumber() == infoNumber && infoNumber > 0) {
MapleQuest iq = MapleQuest.getInstance(infoNumber); Quest iq = Quest.getInstance(infoNumber);
QuestStatus iqs = getQuest(iq); QuestStatus iqs = getQuest(iq);
iqs.setProgress(0, progress); iqs.setProgress(0, progress);
} else { } else {
@@ -9919,9 +9919,9 @@ public class Character extends AbstractCharacterObject {
} }
announceUpdateQuest(DelayedQuestUpdate.INFO, qs); announceUpdateQuest(DelayedQuestUpdate.INFO, qs);
} else if (qs.getStatus().equals(QuestStatus.Status.COMPLETED)) { } else if (qs.getStatus().equals(QuestStatus.Status.COMPLETED)) {
MapleQuest mquest = qs.getQuest(); Quest mquest = qs.getQuest();
short questid = mquest.getId(); 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); awardQuestPoint(YamlConfig.config.server.QUEST_POINT_PER_QUEST_COMPLETE);
} }
qs.setCompleted(qs.getCompleted() + 1); // Jayd's idea - count quest completed 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)) { if (quest.forfeit(this)) {
sendPacket(PacketCreator.questExpire(quest.getId())); sendPacket(PacketCreator.questExpire(quest.getId()));
} }
@@ -9958,7 +9958,7 @@ public class Character extends AbstractCharacterObject {
public void forfeitExpirableQuests() { public void forfeitExpirableQuests() {
evtLock.lock(); evtLock.lock();
try { try {
for (MapleQuest quest : questExpirations.keySet()) { for (Quest quest : questExpirations.keySet()) {
quest.forfeit(this); quest.forfeit(this);
} }
@@ -9990,16 +9990,16 @@ public class Character extends AbstractCharacterObject {
evtLock.lock(); evtLock.lock();
try { try {
long timeNow = Server.getInstance().getCurrentTime(); long timeNow = Server.getInstance().getCurrentTime();
List<MapleQuest> expireList = new LinkedList<>(); List<Quest> expireList = new LinkedList<>();
for (Entry<MapleQuest, Long> qe : questExpirations.entrySet()) { for (Entry<Quest, Long> qe : questExpirations.entrySet()) {
if (qe.getValue() <= timeNow) { if (qe.getValue() <= timeNow) {
expireList.add(qe.getKey()); expireList.add(qe.getKey());
} }
} }
if (!expireList.isEmpty()) { if (!expireList.isEmpty()) {
for (MapleQuest quest : expireList) { for (Quest quest : expireList) {
expireQuest(quest); expireQuest(quest);
questExpirations.remove(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(); evtLock.lock();
try { try {
if (questExpireTask == null) { 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); registerQuestExpire(quest, seconds * 1000);
sendPacket(PacketCreator.addQuestTimeLimit(quest.getId(), 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(); long timeLeft = expires - System.currentTimeMillis();
if (timeLeft <= 0) { if (timeLeft <= 0) {
+9 -9
View File
@@ -21,7 +21,7 @@
*/ */
package client; package client;
import server.quest.MapleQuest; import server.quest.Quest;
import tools.StringUtil; import tools.StringUtil;
import java.util.*; import java.util.*;
@@ -65,7 +65,7 @@ public class QuestStatus {
private int forfeited = 0, completed = 0; private int forfeited = 0, completed = 0;
private String customData; private String customData;
public QuestStatus(MapleQuest quest, Status status) { public QuestStatus(Quest quest, Status status) {
this.questID = quest.getId(); this.questID = quest.getId();
this.setStatus(status); this.setStatus(status);
this.completionTime = System.currentTimeMillis(); 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.questID = quest.getId();
this.setStatus(status); this.setStatus(status);
this.setNpc(npc); this.setNpc(npc);
@@ -88,8 +88,8 @@ public class QuestStatus {
} }
} }
public MapleQuest getQuest() { public Quest getQuest() {
return MapleQuest.getInstance(questID); return Quest.getInstance(questID);
} }
public short getQuestID() { public short getQuestID() {
@@ -127,7 +127,7 @@ public class QuestStatus {
} }
private void registerMobs() { private void registerMobs() {
for (int i : MapleQuest.getInstance(questID).getRelevantMobs()) { for (int i : Quest.getInstance(questID).getRelevantMobs()) {
progress.put(i, "000"); progress.put(i, "000");
} }
//this.setUpdated(); //this.setUpdated();
@@ -200,21 +200,21 @@ public class QuestStatus {
} }
public short getInfoNumber() { public short getInfoNumber() {
MapleQuest q = this.getQuest(); Quest q = this.getQuest();
Status s = this.getStatus(); Status s = this.getStatus();
return q.getInfoNumber(s); return q.getInfoNumber(s);
} }
public String getInfoEx(int index) { public String getInfoEx(int index) {
MapleQuest q = this.getQuest(); Quest q = this.getQuest();
Status s = this.getStatus(); Status s = this.getStatus();
return q.getInfoEx(s, index); return q.getInfoEx(s, index);
} }
public List<String> getInfoEx() { public List<String> getInfoEx() {
MapleQuest q = this.getQuest(); Quest q = this.getQuest();
Status s = this.getStatus(); Status s = this.getStatus();
return q.getInfoEx(s); return q.getInfoEx(s);
@@ -32,7 +32,7 @@ import provider.DataProviderFactory;
import provider.DataTool; import provider.DataTool;
import provider.wz.WZFiles; import provider.wz.WZFiles;
import server.MapleItemInformationProvider; import server.MapleItemInformationProvider;
import server.quest.MapleQuest; import server.quest.Quest;
import tools.Pair; import tools.Pair;
public class SearchCommand extends Command { public class SearchCommand extends Command {
@@ -105,7 +105,7 @@ public class SearchCommand extends Command {
} }
} }
} else { } else {
for (MapleQuest mq : MapleQuest.getMatchedQuests(search)) { for (Quest mq : Quest.getMatchedQuests(search)) {
sb.append("#b").append(mq.getId()).append("#k - #r"); sb.append("#b").append(mq.getId()).append("#k - #r");
String parentName = mq.getParentName(); String parentName = mq.getParentName();
@@ -26,7 +26,7 @@ package client.command.commands.gm3;
import client.Character; import client.Character;
import client.Client; import client.Client;
import client.command.Command; import client.command.Command;
import server.quest.MapleQuest; import server.quest.Quest;
public class QuestCompleteCommand extends Command { public class QuestCompleteCommand extends Command {
{ {
@@ -45,7 +45,7 @@ public class QuestCompleteCommand extends Command {
int questId = Integer.parseInt(params[0]); int questId = Integer.parseInt(params[0]);
if (player.getQuestStatus(questId) == 1) { if (player.getQuestStatus(questId) == 1) {
MapleQuest quest = MapleQuest.getInstance(questId); Quest quest = Quest.getInstance(questId);
if (quest != null && quest.getNpcRequirement(true) != -1) { if (quest != null && quest.getNpcRequirement(true) != -1) {
c.getAbstractPlayerInteraction().forceCompleteQuest(questId, quest.getNpcRequirement(true)); c.getAbstractPlayerInteraction().forceCompleteQuest(questId, quest.getNpcRequirement(true));
} else { } else {
@@ -26,7 +26,7 @@ package client.command.commands.gm3;
import client.Character; import client.Character;
import client.Client; import client.Client;
import client.command.Command; import client.command.Command;
import server.quest.MapleQuest; import server.quest.Quest;
public class QuestResetCommand extends Command { public class QuestResetCommand extends Command {
{ {
@@ -45,7 +45,7 @@ public class QuestResetCommand extends Command {
int questid_ = Integer.parseInt(params[0]); int questid_ = Integer.parseInt(params[0]);
if (player.getQuestStatus(questid_) != 0) { if (player.getQuestStatus(questid_) != 0) {
MapleQuest quest = MapleQuest.getInstance(questid_); Quest quest = Quest.getInstance(questid_);
if (quest != null) { if (quest != null) {
quest.reset(player); quest.reset(player);
player.dropMessage(5, "QUEST " + questid_ + " reseted."); player.dropMessage(5, "QUEST " + questid_ + " reseted.");
@@ -26,7 +26,7 @@ package client.command.commands.gm3;
import client.Character; import client.Character;
import client.Client; import client.Client;
import client.command.Command; import client.command.Command;
import server.quest.MapleQuest; import server.quest.Quest;
public class QuestStartCommand extends Command { public class QuestStartCommand extends Command {
{ {
@@ -45,7 +45,7 @@ public class QuestStartCommand extends Command {
int questid = Integer.parseInt(params[0]); int questid = Integer.parseInt(params[0]);
if (player.getQuestStatus(questid) == 0) { if (player.getQuestStatus(questid) == 0) {
MapleQuest quest = MapleQuest.getInstance(questid); Quest quest = Quest.getInstance(questid);
if (quest != null && quest.getNpcRequirement(false) != -1) { if (quest != null && quest.getNpcRequirement(false) != -1) {
c.getAbstractPlayerInteraction().forceStartQuest(questid, quest.getNpcRequirement(false)); c.getAbstractPlayerInteraction().forceStartQuest(questid, quest.getNpcRequirement(false));
} else { } else {
@@ -26,7 +26,7 @@ package client.command.commands.gm6;
import client.Character; import client.Character;
import client.Client; import client.Client;
import client.command.Command; import client.command.Command;
import server.quest.MapleQuest; import server.quest.Quest;
public class ClearQuestCacheCommand extends Command { public class ClearQuestCacheCommand extends Command {
{ {
@@ -36,7 +36,7 @@ public class ClearQuestCacheCommand extends Command {
@Override @Override
public void execute(Client c, String[] params) { public void execute(Client c, String[] params) {
Character player = c.getPlayer(); Character player = c.getPlayer();
MapleQuest.clearCache(); Quest.clearCache();
player.dropMessage(5, "Quest Cache Cleared."); player.dropMessage(5, "Quest Cache Cleared.");
} }
} }
@@ -26,7 +26,7 @@ package client.command.commands.gm6;
import client.Character; import client.Character;
import client.Client; import client.Client;
import client.command.Command; import client.command.Command;
import server.quest.MapleQuest; import server.quest.Quest;
public class ClearQuestCommand extends Command { public class ClearQuestCommand extends Command {
{ {
@@ -40,7 +40,7 @@ public class ClearQuestCommand extends Command {
player.dropMessage(5, "Please include a quest ID."); player.dropMessage(5, "Please include a quest ID.");
return; return;
} }
MapleQuest.clearCache(Integer.parseInt(params[0])); Quest.clearCache(Integer.parseInt(params[0]));
player.dropMessage(5, "Quest Cache for quest " + params[0] + " cleared."); player.dropMessage(5, "Quest Cache for quest " + params[0] + " cleared.");
} }
@@ -8,7 +8,7 @@ import provider.*;
import provider.wz.WZFiles; import provider.wz.WZFiles;
import server.maps.FieldLimit; import server.maps.FieldLimit;
import server.maps.MapleMap; import server.maps.MapleMap;
import server.quest.MapleQuest; import server.quest.Quest;
import java.text.DecimalFormat; import java.text.DecimalFormat;
import java.text.NumberFormat; import java.text.NumberFormat;
@@ -616,7 +616,7 @@ public class GameConstants {
} }
public static boolean isMedalQuest(short questid) { public static boolean isMedalQuest(short questid) {
return MapleQuest.getInstance(questid).getMedalRequirement() != -1; return Quest.getInstance(questid).getMedalRequirement() != -1;
} }
public static boolean hasSPTable(Job job) { public static boolean hasSPTable(Job job) {
+2 -2
View File
@@ -61,7 +61,7 @@ import server.ThreadManager;
import server.TimerManager; import server.TimerManager;
import server.expeditions.ExpeditionBossLog; import server.expeditions.ExpeditionBossLog;
import server.life.PlayerNPCFactory; import server.life.PlayerNPCFactory;
import server.quest.MapleQuest; import server.quest.Quest;
import tools.DatabaseConnection; import tools.DatabaseConnection;
import tools.FilePrinter; import tools.FilePrinter;
import tools.Pair; import tools.Pair;
@@ -839,7 +839,7 @@ public class Server {
final List<Future<?>> futures = new ArrayList<>(); final List<Future<?>> futures = new ArrayList<>();
futures.add(initExecutor.submit(() -> SkillFactory.loadAllSkills())); futures.add(initExecutor.submit(() -> SkillFactory.loadAllSkills()));
futures.add(initExecutor.submit(() -> CashItemFactory.loadAllCashItems())); 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(() -> MapleSkillbookInformationProvider.loadAllSkillbookInformation()));
futures.add(initExecutor.submit(() -> PlayerNPCFactory.loadFactoryMetadata())); futures.add(initExecutor.submit(() -> PlayerNPCFactory.loadFactoryMetadata()));
@@ -33,7 +33,7 @@ import server.life.LifeFactory;
import server.life.Monster; import server.life.Monster;
import server.maps.MapObject; import server.maps.MapObject;
import server.maps.MapObjectType; import server.maps.MapObjectType;
import server.quest.MapleQuest; import server.quest.Quest;
import tools.PacketCreator; import tools.PacketCreator;
import tools.Randomizer; import tools.Randomizer;
@@ -135,7 +135,7 @@ public final class AdminCommandHandler extends AbstractPacketHandler {
} }
break; break;
case 0x16: // Questreset case 0x16: // Questreset
MapleQuest.getInstance(p.readShort()).reset(c.getPlayer()); Quest.getInstance(p.readShort()).reset(c.getPlayer());
break; break;
case 0x17: // Summon case 0x17: // Summon
int mobId = p.readInt(); int mobId = p.readInt();
@@ -27,7 +27,7 @@ import net.AbstractPacketHandler;
import net.packet.InPacket; import net.packet.InPacket;
import scripting.quest.QuestScriptManager; import scripting.quest.QuestScriptManager;
import server.life.NPC; import server.life.NPC;
import server.quest.MapleQuest; import server.quest.Quest;
import java.awt.*; import java.awt.*;
@@ -38,7 +38,7 @@ import java.awt.*;
public final class QuestActionHandler extends AbstractPacketHandler { public final class QuestActionHandler extends AbstractPacketHandler {
// isNpcNearby thanks to GabrielSin // 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 playerP;
Point pos = player.getPosition(); Point pos = player.getPosition();
@@ -72,7 +72,7 @@ public final class QuestActionHandler extends AbstractPacketHandler {
byte action = p.readByte(); byte action = p.readByte();
short questid = p.readShort(); short questid = p.readShort();
Character player = c.getPlayer(); Character player = c.getPlayer();
MapleQuest quest = MapleQuest.getInstance(questid); Quest quest = Quest.getInstance(questid);
if (action == 0) { // Restore lost item, Credits Darter ( Rajan ) if (action == 0) { // Restore lost item, Credits Darter ( Rajan )
p.readInt(); p.readInt();
@@ -10,7 +10,7 @@ import net.AbstractPacketHandler;
import net.packet.InPacket; import net.packet.InPacket;
import server.MapleItemInformationProvider; import server.MapleItemInformationProvider;
import server.MapleItemInformationProvider.QuestConsItem; import server.MapleItemInformationProvider.QuestConsItem;
import server.quest.MapleQuest; import server.quest.Quest;
import tools.PacketCreator; import tools.PacketCreator;
import java.util.Map; import java.util.Map;
@@ -40,7 +40,7 @@ public class RaiseIncExpHandler extends AbstractPacketHandler {
Map<Integer, Integer> consumables = consItem.items; Map<Integer, Integer> consumables = consItem.items;
Character chr = c.getPlayer(); Character chr = c.getPlayer();
MapleQuest quest = MapleQuest.getInstanceFromInfoNumber(infoNumber); Quest quest = Quest.getInstanceFromInfoNumber(infoNumber);
if (!chr.getQuest(quest).getStatus().equals(QuestStatus.Status.STARTED)) { if (!chr.getQuest(quest).getStatus().equals(QuestStatus.Status.STARTED)) {
c.sendPacket(PacketCreator.enableActions()); c.sendPacket(PacketCreator.enableActions());
return; return;
@@ -7,7 +7,7 @@ import client.QuestStatus;
import net.AbstractPacketHandler; import net.AbstractPacketHandler;
import net.packet.InPacket; import net.packet.InPacket;
import scripting.quest.QuestScriptManager; import scripting.quest.QuestScriptManager;
import server.quest.MapleQuest; import server.quest.Quest;
/** /**
* *
@@ -22,7 +22,7 @@ public class RaiseUIStateHandler extends AbstractPacketHandler {
if (c.tryacquireClient()) { if (c.tryacquireClient()) {
try { try {
Character chr = c.getPlayer(); Character chr = c.getPlayer();
MapleQuest quest = MapleQuest.getInstanceFromInfoNumber(infoNumber); Quest quest = Quest.getInstanceFromInfoNumber(infoNumber);
QuestStatus mqs = chr.getQuest(quest); QuestStatus mqs = chr.getQuest(quest);
QuestScriptManager.getInstance().raiseOpen(c, (short) infoNumber, mqs.getNpc()); QuestScriptManager.getInstance().raiseOpen(c, (short) infoNumber, mqs.getNpc());
@@ -47,7 +47,7 @@ import server.maps.MapObjectType;
import server.maps.MapleMap; import server.maps.MapleMap;
import server.partyquest.PartyQuest; import server.partyquest.PartyQuest;
import server.partyquest.Pyramid; import server.partyquest.Pyramid;
import server.quest.MapleQuest; import server.quest.Quest;
import tools.PacketCreator; import tools.PacketCreator;
import tools.Pair; import tools.Pair;
@@ -320,11 +320,11 @@ public class AbstractPlayerInteraction {
//---- \/ \/ \/ \/ \/ \/ \/ NOT TESTED \/ \/ \/ \/ \/ \/ \/ \/ \/ ---- //---- \/ \/ \/ \/ \/ \/ \/ NOT TESTED \/ \/ \/ \/ \/ \/ \/ \/ \/ ----
public final QuestStatus getQuestRecord(final int id) { 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) { public final QuestStatus getQuestNoRecord(final int id) {
return c.getPlayer().getQuestNoAdd(MapleQuest.getInstance(id)); return c.getPlayer().getQuestNoAdd(Quest.getInstance(id));
} }
//---- /\ /\ /\ /\ /\ /\ /\ NOT TESTED /\ /\ /\ /\ /\ /\ /\ /\ /\ ---- //---- /\ /\ /\ /\ /\ /\ /\ NOT TESTED /\ /\ /\ /\ /\ /\ /\ /\ /\ ----
@@ -344,11 +344,11 @@ public class AbstractPlayerInteraction {
} }
public int getQuestStatus(int id) { 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) { 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) { public boolean isQuestCompleted(int id) {
@@ -394,10 +394,10 @@ public class AbstractPlayerInteraction {
} }
public String getQuestProgress(int id, int infoNumber) { 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) { if (qs.getInfoNumber() == infoNumber && infoNumber > 0) {
qs = getPlayer().getQuest(MapleQuest.getInstance(infoNumber)); qs = getPlayer().getQuest(Quest.getInstance(infoNumber));
infoNumber = 0; infoNumber = 0;
} }
@@ -425,7 +425,7 @@ public class AbstractPlayerInteraction {
} }
public void resetAllQuestProgress(int id) { public void resetAllQuestProgress(int id) {
QuestStatus qs = getPlayer().getQuest(MapleQuest.getInstance(id)); QuestStatus qs = getPlayer().getQuest(Quest.getInstance(id));
if (qs != null) { if (qs != null) {
qs.resetAllProgress(); qs.resetAllProgress();
getPlayer().announceUpdateQuest(DelayedQuestUpdate.UPDATE, qs, false); getPlayer().announceUpdateQuest(DelayedQuestUpdate.UPDATE, qs, false);
@@ -433,7 +433,7 @@ public class AbstractPlayerInteraction {
} }
public void resetQuestProgress(int id, int infoNumber) { public void resetQuestProgress(int id, int infoNumber) {
QuestStatus qs = getPlayer().getQuest(MapleQuest.getInstance(id)); QuestStatus qs = getPlayer().getQuest(Quest.getInstance(id));
if (qs != null) { if (qs != null) {
qs.resetProgress(infoNumber); qs.resetProgress(infoNumber);
getPlayer().announceUpdateQuest(DelayedQuestUpdate.UPDATE, qs, false); getPlayer().announceUpdateQuest(DelayedQuestUpdate.UPDATE, qs, false);
@@ -482,7 +482,7 @@ public class AbstractPlayerInteraction {
public boolean startQuest(int id, int npc) { public boolean startQuest(int id, int npc) {
try { try {
return MapleQuest.getInstance(id).forceStart(getPlayer(), npc); return Quest.getInstance(id).forceStart(getPlayer(), npc);
} catch (NullPointerException ex) { } catch (NullPointerException ex) {
ex.printStackTrace(); ex.printStackTrace();
return false; return false;
@@ -491,7 +491,7 @@ public class AbstractPlayerInteraction {
public boolean completeQuest(int id, int npc) { public boolean completeQuest(int id, int npc) {
try { try {
return MapleQuest.getInstance(id).forceComplete(getPlayer(), npc); return Quest.getInstance(id).forceComplete(getPlayer(), npc);
} catch (NullPointerException ex) { } catch (NullPointerException ex) {
ex.printStackTrace(); ex.printStackTrace();
return false; return false;
@@ -41,7 +41,7 @@ import server.expeditions.Expedition;
import server.life.LifeFactory; import server.life.LifeFactory;
import server.life.Monster; import server.life.Monster;
import server.maps.MapleMap; import server.maps.MapleMap;
import server.quest.MapleQuest; import server.quest.Quest;
import tools.exceptions.EventInstanceInProgressException; import tools.exceptions.EventInstanceInProgressException;
import javax.script.Invocable; import javax.script.Invocable;
@@ -846,7 +846,7 @@ public class EventManager {
public void startQuest(Character chr, int id, int npcid) { public void startQuest(Character chr, int id, int npcid) {
try { try {
MapleQuest.getInstance(id).forceStart(chr, npcid); Quest.getInstance(id).forceStart(chr, npcid);
} catch (NullPointerException ex) { } catch (NullPointerException ex) {
ex.printStackTrace(); ex.printStackTrace();
} }
@@ -854,7 +854,7 @@ public class EventManager {
public void completeQuest(Character chr, int id, int npcid) { public void completeQuest(Character chr, int id, int npcid) {
try { try {
MapleQuest.getInstance(id).forceComplete(chr, npcid); Quest.getInstance(id).forceComplete(chr, npcid);
} catch (NullPointerException ex) { } catch (NullPointerException ex) {
ex.printStackTrace(); ex.printStackTrace();
} }
@@ -25,7 +25,7 @@ import client.Character.DelayedQuestUpdate;
import client.Client; import client.Client;
import client.QuestStatus; import client.QuestStatus;
import scripting.AbstractPlayerInteraction; import scripting.AbstractPlayerInteraction;
import server.quest.MapleQuest; import server.quest.Quest;
import tools.PacketCreator; import tools.PacketCreator;
public class MapScriptMethods extends AbstractPlayerInteraction { public class MapScriptMethods extends AbstractPlayerInteraction {
@@ -116,7 +116,7 @@ public class MapScriptMethods extends AbstractPlayerInteraction {
} }
public void explorerQuest(short questid, String questName) { public void explorerQuest(short questid, String questName) {
MapleQuest quest = MapleQuest.getInstance(questid); Quest quest = Quest.getInstance(questid);
if (!isQuestStarted(questid)) { if (!isQuestStarted(questid)) {
if (!quest.forceStart(getPlayer(), 9000066)) { if (!quest.forceStart(getPlayer(), 9000066)) {
return; return;
@@ -145,7 +145,7 @@ public class MapScriptMethods extends AbstractPlayerInteraction {
} }
public void touchTheSky() { //29004 public void touchTheSky() { //29004
MapleQuest quest = MapleQuest.getInstance(29004); Quest quest = Quest.getInstance(29004);
if (!isQuestStarted(29004)) { if (!isQuestStarted(29004)) {
if (!quest.forceStart(getPlayer(), 9000066)) { if (!quest.forceStart(getPlayer(), 9000066)) {
return; return;
@@ -24,7 +24,7 @@ package scripting.quest;
import client.Client; import client.Client;
import scripting.npc.NPCConversationManager; import scripting.npc.NPCConversationManager;
import server.MapleItemInformationProvider; import server.MapleItemInformationProvider;
import server.quest.MapleQuest; import server.quest.Quest;
import server.quest.actions.ExpAction; import server.quest.actions.ExpAction;
import server.quest.actions.MesoAction; import server.quest.actions.MesoAction;
@@ -84,7 +84,7 @@ public class QuestActionManager extends NPCConversationManager {
} }
public String getMedalName() { // usable only for medal quests (id 299XX) 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()); return MapleItemInformationProvider.getInstance().getName(q.getMedalRequirement());
} }
} }
@@ -25,7 +25,7 @@ import client.Client;
import client.QuestStatus; import client.QuestStatus;
import constants.game.GameConstants; import constants.game.GameConstants;
import scripting.AbstractScriptManager; import scripting.AbstractScriptManager;
import server.quest.MapleQuest; import server.quest.Quest;
import tools.FilePrinter; import tools.FilePrinter;
import javax.script.Invocable; import javax.script.Invocable;
@@ -58,7 +58,7 @@ public class QuestScriptManager extends AbstractScriptManager {
} }
public void start(Client c, short questid, int npc) { public void start(Client c, short questid, int npc) {
MapleQuest quest = MapleQuest.getInstance(questid); Quest quest = Quest.getInstance(questid);
try { try {
QuestActionManager qm = new QuestActionManager(c, questid, npc, true); QuestActionManager qm = new QuestActionManager(c, questid, npc, true);
if (qms.containsKey(c)) { if (qms.containsKey(c)) {
@@ -109,7 +109,7 @@ public class QuestScriptManager extends AbstractScriptManager {
} }
public void end(Client c, short questid, int npc) { 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)) { if (!c.getPlayer().getQuest(quest).getStatus().equals(QuestStatus.Status.STARTED) || !c.getPlayer().getMap().containsNPC(npc)) {
dispose(c); dispose(c);
return; return;
+2 -2
View File
@@ -22,7 +22,7 @@ package server.loot;
import client.Character; import client.Character;
import server.life.MonsterDropEntry; import server.life.MonsterDropEntry;
import server.life.MonsterInformationProvider; import server.life.MonsterInformationProvider;
import server.quest.MapleQuest; import server.quest.Quest;
import java.util.LinkedList; import java.util.LinkedList;
import java.util.List; import java.util.List;
@@ -34,7 +34,7 @@ public class LootManager {
private static boolean isRelevantDrop(MonsterDropEntry dropEntry, List<Character> players, List<LootInventory> playersInv) { private static boolean isRelevantDrop(MonsterDropEntry dropEntry, List<Character> players, List<LootInventory> playersInv) {
int qStartAmount = 0, qCompleteAmount = 0; int qStartAmount = 0, qCompleteAmount = 0;
MapleQuest quest = MapleQuest.getInstance(dropEntry.questid); Quest quest = Quest.getInstance(dropEntry.questid);
if (quest != null) { if (quest != null) {
qStartAmount = quest.getStartItemAmountNeeded(dropEntry.itemId); qStartAmount = quest.getStartItemAmountNeeded(dropEntry.itemId);
qCompleteAmount = quest.getCompleteItemAmountNeeded(dropEntry.itemId); qCompleteAmount = quest.getCompleteItemAmountNeeded(dropEntry.itemId);
+1 -1
View File
@@ -1384,7 +1384,7 @@ public class MapleMap {
AutobanFactory.GENERAL.alert(chr, " for killing a " + monster.getName() + " which is over 30 levels higher."); 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) { if (chr.getLevel() >= 120 && monster.getStats().getLevel() >= 120) {
//FIX MEDAL SHET //FIX MEDAL SHET
} else if (monster.getStats().getLevel() >= chr.getLevel()) { } else if (monster.getStats().getLevel() >= chr.getLevel()) {
@@ -39,24 +39,23 @@ import java.util.*;
import java.util.Map.Entry; import java.util.Map.Entry;
/** /**
*
* @author Matze * @author Matze
* @author Ronan - support for medal quests * @author Ronan - support for medal quests
*/ */
public class MapleQuest { public class Quest {
private static volatile Map<Integer, Quest> quests = new HashMap<>();
private static volatile Map<Integer, MapleQuest> quests = new HashMap<>();
private static volatile Map<Integer, Integer> infoNumberQuests = new HashMap<>(); private static volatile Map<Integer, Integer> infoNumberQuests = new HashMap<>();
private static Map<Short, Integer> medals = new HashMap<>(); private static final Map<Short, Integer> medals = new HashMap<>();
private static final Set<Short> exploitableQuests = new HashSet<>(); private static final Set<Short> exploitableQuests = new HashSet<>();
static { static {
exploitableQuests.add((short) 2338); // there are a lot more exploitable quests, they need to be nit-picked exploitableQuests.add((short) 2338); // there are a lot more exploitable quests, they need to be nit-picked
exploitableQuests.add((short) 3637); exploitableQuests.add((short) 3637);
exploitableQuests.add((short) 3714); exploitableQuests.add((short) 3714);
exploitableQuests.add((short) 21752); exploitableQuests.add((short) 21752);
} }
protected short id; protected short id;
protected int timeLimit, timeLimit2; protected int timeLimit, timeLimit2;
protected Map<MapleQuestRequirementType, MapleQuestRequirement> startReqs = new EnumMap<>(MapleQuestRequirementType.class); protected Map<MapleQuestRequirementType, MapleQuestRequirement> 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 questInfo = questData.getData("QuestInfo.img");
private final static Data questAct = questData.getData("Act.img"); private final static Data questAct = questData.getData("Act.img");
private final static Data questReq = questData.getData("Check.img"); private final static Data questReq = questData.getData("Check.img");
private MapleQuest(int id) { private Quest(int id) {
this.id = (short) id; this.id = (short) id;
Data reqData = questReq.getChildByPath(String.valueOf(id)); Data reqData = questReq.getChildByPath(String.valueOf(id));
if (reqData == null) {//most likely infoEx if (reqData == null) {//most likely infoEx
return; return;
} }
if(questInfo != null) { if (questInfo != null) {
Data reqInfo = questInfo.getChildByPath(String.valueOf(id)); Data reqInfo = questInfo.getChildByPath(String.valueOf(id));
if(reqInfo != null) { if (reqInfo != null) {
name = DataTool.getString("name", reqInfo, ""); name = DataTool.getString("name", reqInfo, "");
parent = DataTool.getString("parent", reqInfo, ""); parent = DataTool.getString("parent", reqInfo, "");
timeLimit = DataTool.getInt("timeLimit", reqInfo, 0); timeLimit = DataTool.getInt("timeLimit", reqInfo, 0);
timeLimit2 = DataTool.getInt("timeLimit2", reqInfo, 0); timeLimit2 = DataTool.getInt("timeLimit2", reqInfo, 0);
autoStart = DataTool.getInt("autoStart", reqInfo, 0) == 1; autoStart = DataTool.getInt("autoStart", reqInfo, 0) == 1;
autoPreComplete = DataTool.getInt("autoPreComplete", reqInfo, 0) == 1; autoPreComplete = DataTool.getInt("autoPreComplete", reqInfo, 0) == 1;
autoComplete = DataTool.getInt("autoComplete", reqInfo, 0) == 1; autoComplete = DataTool.getInt("autoComplete", reqInfo, 0) == 1;
int medalid = DataTool.getInt("viewMedalItem", reqInfo, 0); int medalid = DataTool.getInt("viewMedalItem", reqInfo, 0);
if(medalid != 0) medals.put(this.id, medalid); if (medalid != 0) {
medals.put(this.id, medalid);
}
} else { } else {
System.out.println("no data " + id); System.out.println("no data " + id);
} }
} }
Data startReqData = reqData.getChildByPath("0"); Data startReqData = reqData.getChildByPath("0");
if (startReqData != null) { if (startReqData != null) {
for (Data startReq : startReqData.getChildren()) { for (Data startReq : startReqData.getChildren()) {
@@ -111,26 +112,26 @@ public class MapleQuest {
relevantMobs.add(DataTool.getInt(mob.getChildByPath("id"))); relevantMobs.add(DataTool.getInt(mob.getChildByPath("id")));
} }
} }
MapleQuestRequirement req = this.getRequirement(type, startReq); MapleQuestRequirement req = this.getRequirement(type, startReq);
if (req == null) { if (req == null) {
continue; continue;
} }
startReqs.put(type, req); startReqs.put(type, req);
} }
} }
Data completeReqData = reqData.getChildByPath("1"); Data completeReqData = reqData.getChildByPath("1");
if (completeReqData != null) { if (completeReqData != null) {
for (Data completeReq : completeReqData.getChildren()) { for (Data completeReq : completeReqData.getChildren()) {
MapleQuestRequirementType type = MapleQuestRequirementType.getByWZName(completeReq.getName()); MapleQuestRequirementType type = MapleQuestRequirementType.getByWZName(completeReq.getName());
MapleQuestRequirement req = this.getRequirement(type, completeReq); MapleQuestRequirement req = this.getRequirement(type, completeReq);
if (req == null) { if (req == null) {
continue; continue;
} }
if (type.equals(MapleQuestRequirementType.MOB)) { if (type.equals(MapleQuestRequirementType.MOB)) {
for (Data mob : completeReq.getChildren()) { for (Data mob : completeReq.getChildren()) {
relevantMobs.add(DataTool.getInt(mob.getChildByPath("id"))); relevantMobs.add(DataTool.getInt(mob.getChildByPath("id")));
@@ -148,10 +149,11 @@ public class MapleQuest {
for (Data startAct : startActData.getChildren()) { for (Data startAct : startActData.getChildren()) {
MapleQuestActionType questActionType = MapleQuestActionType.getByWZName(startAct.getName()); MapleQuestActionType questActionType = MapleQuestActionType.getByWZName(startAct.getName());
MapleQuestAction act = this.getAction(questActionType, startAct); MapleQuestAction act = this.getAction(questActionType, startAct);
if(act == null) if (act == null) {
continue; continue;
}
startActs.put(questActionType, act); startActs.put(questActionType, act);
} }
} }
@@ -161,14 +163,15 @@ public class MapleQuest {
MapleQuestActionType questActionType = MapleQuestActionType.getByWZName(completeAct.getName()); MapleQuestActionType questActionType = MapleQuestActionType.getByWZName(completeAct.getName());
MapleQuestAction act = this.getAction(questActionType, completeAct); MapleQuestAction act = this.getAction(questActionType, completeAct);
if(act == null) if (act == null) {
continue; continue;
}
completeActs.put(questActionType, act); completeActs.put(questActionType, act);
} }
} }
} }
public boolean isAutoComplete() { public boolean isAutoComplete() {
return autoPreComplete || autoComplete; return autoPreComplete || autoComplete;
} }
@@ -177,36 +180,38 @@ public class MapleQuest {
return autoStart; return autoStart;
} }
public static MapleQuest getInstance(int id) { public static Quest getInstance(int id) {
MapleQuest ret = quests.get(id); Quest ret = quests.get(id);
if (ret == null) { if (ret == null) {
ret = new MapleQuest(id); ret = new Quest(id);
quests.put(id, ret); quests.put(id, ret);
} }
return ret; return ret;
} }
public static MapleQuest getInstanceFromInfoNumber(int infoNumber) { public static Quest getInstanceFromInfoNumber(int infoNumber) {
Integer id = infoNumberQuests.get(infoNumber); Integer id = infoNumberQuests.get(infoNumber);
if (id == null) { if (id == null) {
id = infoNumber; id = infoNumber;
} }
return getInstance(id); return getInstance(id);
} }
public boolean isSameDayRepeatable() { public boolean isSameDayRepeatable() {
if(!repeatable) return false; if (!repeatable) {
return false;
}
IntervalRequirement ir = (IntervalRequirement) startReqs.get(MapleQuestRequirementType.INTERVAL); IntervalRequirement ir = (IntervalRequirement) startReqs.get(MapleQuestRequirementType.INTERVAL);
return ir.getInterval() < YamlConfig.config.server.QUEST_POINT_REPEATABLE_INTERVAL * 60 * 60 * 1000; return ir.getInterval() < YamlConfig.config.server.QUEST_POINT_REPEATABLE_INTERVAL * 60 * 60 * 1000;
} }
public boolean canStartQuestByStatus(Character chr) { public boolean canStartQuestByStatus(Character chr) {
QuestStatus mqs = chr.getQuest(this); QuestStatus mqs = chr.getQuest(this);
return !(!mqs.getStatus().equals(Status.NOT_STARTED) && !(mqs.getStatus().equals(Status.COMPLETED) && repeatable)); return !(!mqs.getStatus().equals(Status.NOT_STARTED) && !(mqs.getStatus().equals(Status.COMPLETED) && repeatable));
} }
public boolean canQuestByInfoProgress(Character chr) { public boolean canQuestByInfoProgress(Character chr) {
QuestStatus mqs = chr.getQuest(this); QuestStatus mqs = chr.getQuest(this);
List<String> ix = mqs.getInfoEx(); List<String> ix = mqs.getInfoEx();
@@ -216,37 +221,33 @@ public class MapleQuest {
if (infoNumber <= 0) { if (infoNumber <= 0) {
infoNumber = questid; // on default infoNumber mimics questid infoNumber = questid; // on default infoNumber mimics questid
} }
int ixSize = ix.size(); int ixSize = ix.size();
for (int i = 0; i < ixSize; i++) { for (int i = 0; i < ixSize; i++) {
String progress = chr.getAbstractPlayerInteraction().getQuestProgress(infoNumber, i); String progress = chr.getAbstractPlayerInteraction().getQuestProgress(infoNumber, i);
String ixProgress = ix.get(i); String ixProgress = ix.get(i);
if (!progress.contentEquals(ixProgress)) { if (!progress.contentEquals(ixProgress)) {
return false; return false;
} }
} }
} }
return true; return true;
} }
public boolean canStart(Character chr, int npcid) { public boolean canStart(Character chr, int npcid) {
if (!canStartQuestByStatus(chr)) { if (!canStartQuestByStatus(chr)) {
return false; return false;
} }
for (MapleQuestRequirement r : startReqs.values()) { for (MapleQuestRequirement r : startReqs.values()) {
if (!r.check(chr, npcid)) { if (!r.check(chr, npcid)) {
return false; return false;
} }
} }
if (!canQuestByInfoProgress(chr)) { return canQuestByInfoProgress(chr);
return false;
}
return true;
} }
public boolean canComplete(Character chr, Integer npcid) { public boolean canComplete(Character chr, Integer npcid) {
@@ -254,18 +255,14 @@ public class MapleQuest {
if (!mqs.getStatus().equals(Status.STARTED)) { if (!mqs.getStatus().equals(Status.STARTED)) {
return false; return false;
} }
for (MapleQuestRequirement r : completeReqs.values()) { for (MapleQuestRequirement r : completeReqs.values()) {
if (!r.check(chr, npcid)) { if (!r.check(chr, npcid)) {
return false; return false;
} }
} }
if (!canQuestByInfoProgress(chr)) { return canQuestByInfoProgress(chr);
return false;
}
return true;
} }
public void start(Character chr, int npc) { public void start(Character chr, int npc) {
@@ -325,23 +322,23 @@ public class MapleQuest {
public boolean forceStart(Character chr, int npc) { public boolean forceStart(Character chr, int npc) {
QuestStatus newStatus = new QuestStatus(this, QuestStatus.Status.STARTED, npc); QuestStatus newStatus = new QuestStatus(this, QuestStatus.Status.STARTED, npc);
QuestStatus oldStatus = chr.getQuest(this.getId()); QuestStatus oldStatus = chr.getQuest(this.getId());
for (Entry<Integer, String> e : oldStatus.getProgress().entrySet()) { for (Entry<Integer, String> e : oldStatus.getProgress().entrySet()) {
newStatus.setProgress(e.getKey(), e.getValue()); 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); int setProg = 999 - Math.min(999, YamlConfig.config.server.TOT_MOB_QUEST_REQUIREMENT);
for(Integer pid : newStatus.getProgress().keySet()) { for (Integer pid : newStatus.getProgress().keySet()) {
if(pid >= 8200000 && pid <= 8200012) { if (pid >= 8200000 && pid <= 8200012) {
String pr = StringUtil.getLeftPaddedStr(Integer.toString(setProg), '0', 3); String pr = StringUtil.getLeftPaddedStr(Integer.toString(setProg), '0', 3);
newStatus.setProgress(pid, pr); newStatus.setProgress(pid, pr);
} }
} }
} }
newStatus.setForfeited(chr.getQuest(this).getForfeited()); newStatus.setForfeited(chr.getQuest(this).getForfeited());
newStatus.setCompleted(chr.getQuest(this).getCompleted()); newStatus.setCompleted(chr.getQuest(this).getCompleted());
@@ -353,9 +350,9 @@ public class MapleQuest {
newStatus.setExpirationTime(System.currentTimeMillis() + timeLimit2); newStatus.setExpirationTime(System.currentTimeMillis() + timeLimit2);
chr.questTimeLimit2(this, newStatus.getExpirationTime()); chr.questTimeLimit2(this, newStatus.getExpirationTime());
} }
chr.updateQuestStatus(newStatus); chr.updateQuestStatus(newStatus);
return true; return true;
} }
@@ -363,13 +360,13 @@ public class MapleQuest {
if (timeLimit > 0) { if (timeLimit > 0) {
chr.sendPacket(PacketCreator.removeQuestTimeLimit(id)); chr.sendPacket(PacketCreator.removeQuestTimeLimit(id));
} }
QuestStatus newStatus = new QuestStatus(this, QuestStatus.Status.COMPLETED, npc); QuestStatus newStatus = new QuestStatus(this, QuestStatus.Status.COMPLETED, npc);
newStatus.setForfeited(chr.getQuest(this).getForfeited()); newStatus.setForfeited(chr.getQuest(this).getForfeited());
newStatus.setCompleted(chr.getQuest(this).getCompleted()); newStatus.setCompleted(chr.getQuest(this).getCompleted());
newStatus.setCompletionTime(System.currentTimeMillis()); newStatus.setCompletionTime(System.currentTimeMillis());
chr.updateQuestStatus(newStatus); chr.updateQuestStatus(newStatus);
chr.sendPacket(PacketCreator.showSpecialEffect(9)); // Quest completion chr.sendPacket(PacketCreator.showSpecialEffect(9)); // Quest completion
chr.getMap().broadcastMessage(chr, PacketCreator.showForeignEffect(chr.getId(), 9), false); //use 9 instead of 12 for both chr.getMap().broadcastMessage(chr, PacketCreator.showForeignEffect(chr.getId(), 9), false); //use 9 instead of 12 for both
return true; return true;
@@ -385,26 +382,29 @@ public class MapleQuest {
public int getStartItemAmountNeeded(int itemid) { public int getStartItemAmountNeeded(int itemid) {
MapleQuestRequirement req = startReqs.get(MapleQuestRequirementType.ITEM); MapleQuestRequirement req = startReqs.get(MapleQuestRequirementType.ITEM);
if(req == null) if (req == null) {
return Integer.MIN_VALUE; return Integer.MIN_VALUE;
}
ItemRequirement ireq = (ItemRequirement) req; ItemRequirement ireq = (ItemRequirement) req;
return ireq.getItemAmountNeeded(itemid, false); return ireq.getItemAmountNeeded(itemid, false);
} }
public int getCompleteItemAmountNeeded(int itemid) { public int getCompleteItemAmountNeeded(int itemid) {
MapleQuestRequirement req = completeReqs.get(MapleQuestRequirementType.ITEM); MapleQuestRequirement req = completeReqs.get(MapleQuestRequirementType.ITEM);
if(req == null) if (req == null) {
return Integer.MAX_VALUE; return Integer.MAX_VALUE;
}
ItemRequirement ireq = (ItemRequirement) req; ItemRequirement ireq = (ItemRequirement) req;
return ireq.getItemAmountNeeded(itemid, true); return ireq.getItemAmountNeeded(itemid, true);
} }
public int getMobAmountNeeded(int mid) { public int getMobAmountNeeded(int mid) {
MapleQuestRequirement req = completeReqs.get(MapleQuestRequirementType.MOB); MapleQuestRequirement req = completeReqs.get(MapleQuestRequirementType.MOB);
if(req == null) if (req == null) {
return 0; return 0;
}
MobRequirement mreq = (MobRequirement) req; MobRequirement mreq = (MobRequirement) req;
@@ -435,7 +435,7 @@ public class MapleQuest {
return ""; return "";
} }
} }
public List<String> getInfoEx(Status qs) { public List<String> getInfoEx(Status qs) {
boolean checkEnd = qs.equals(Status.STARTED); boolean checkEnd = qs.equals(Status.STARTED);
Map<MapleQuestRequirementType, MapleQuestRequirement> reqs = !checkEnd ? startReqs : completeReqs; Map<MapleQuestRequirementType, MapleQuestRequirement> reqs = !checkEnd ? startReqs : completeReqs;
@@ -448,215 +448,215 @@ public class MapleQuest {
} }
} }
public int getTimeLimit() { public int getTimeLimit() {
return timeLimit; return timeLimit;
} }
public static void clearCache(int quest) { public static void clearCache(int quest) {
quests.remove(quest); quests.remove(quest);
} }
public static void clearCache() { public static void clearCache() {
quests.clear(); quests.clear();
} }
private MapleQuestRequirement getRequirement(MapleQuestRequirementType type, Data data) { private MapleQuestRequirement getRequirement(MapleQuestRequirementType type, Data data) {
MapleQuestRequirement ret = null; MapleQuestRequirement ret = null;
switch(type) { switch (type) {
case END_DATE: case END_DATE:
ret = new EndDateRequirement(this, data); ret = new EndDateRequirement(this, data);
break; break;
case JOB: case JOB:
ret = new JobRequirement(this, data); ret = new JobRequirement(this, data);
break; break;
case QUEST: case QUEST:
ret = new QuestRequirement(this, data); ret = new QuestRequirement(this, data);
break; break;
case FIELD_ENTER: case FIELD_ENTER:
ret = new FieldEnterRequirement(this, data); ret = new FieldEnterRequirement(this, data);
break; break;
case INFO_NUMBER: case INFO_NUMBER:
ret = new InfoNumberRequirement(this, data); ret = new InfoNumberRequirement(this, data);
break; break;
case INFO_EX: case INFO_EX:
ret = new InfoExRequirement(this, data); ret = new InfoExRequirement(this, data);
break; break;
case INTERVAL: case INTERVAL:
ret = new IntervalRequirement(this, data); ret = new IntervalRequirement(this, data);
break; break;
case COMPLETED_QUEST: case COMPLETED_QUEST:
ret = new CompletedQuestRequirement(this, data); ret = new CompletedQuestRequirement(this, data);
break; break;
case ITEM: case ITEM:
ret = new ItemRequirement(this, data); ret = new ItemRequirement(this, data);
break; break;
case MAX_LEVEL: case MAX_LEVEL:
ret = new MaxLevelRequirement(this, data); ret = new MaxLevelRequirement(this, data);
break; break;
case MESO: case MESO:
ret = new MesoRequirement(this, data); ret = new MesoRequirement(this, data);
break; break;
case MIN_LEVEL: case MIN_LEVEL:
ret = new MinLevelRequirement(this, data); ret = new MinLevelRequirement(this, data);
break; break;
case MIN_PET_TAMENESS: case MIN_PET_TAMENESS:
ret = new MinTamenessRequirement(this, data); ret = new MinTamenessRequirement(this, data);
break; break;
case MOB: case MOB:
ret = new MobRequirement(this, data); ret = new MobRequirement(this, data);
break; break;
case MONSTER_BOOK: case MONSTER_BOOK:
ret = new MonsterBookCountRequirement(this, data); ret = new MonsterBookCountRequirement(this, data);
break; break;
case NPC: case NPC:
ret = new NpcRequirement(this, data); ret = new NpcRequirement(this, data);
break; break;
case PET: case PET:
ret = new PetRequirement(this, data); ret = new PetRequirement(this, data);
break; break;
case BUFF: case BUFF:
ret = new BuffRequirement(this, data); ret = new BuffRequirement(this, data);
break; break;
case EXCEPT_BUFF: case EXCEPT_BUFF:
ret = new BuffExceptRequirement(this, data); ret = new BuffExceptRequirement(this, data);
break; break;
case SCRIPT: case SCRIPT:
ret = new ScriptRequirement(this, data); ret = new ScriptRequirement(this, data);
break; break;
case NORMAL_AUTO_START: case NORMAL_AUTO_START:
case START: case START:
case END: case END:
break; break;
default: default:
//FilePrinter.printError(FilePrinter.EXCEPTION_CAUGHT, "Unhandled Requirement Type: " + type.toString() + " QuestID: " + this.getId()); //FilePrinter.printError(FilePrinter.EXCEPTION_CAUGHT, "Unhandled Requirement Type: " + type.toString() + " QuestID: " + this.getId());
break; 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;
} }
return ret;
public int getMedalRequirement() { }
Integer medalid = medals.get(id);
return medalid != null ? medalid : -1; 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 int getNpcRequirement(boolean checkEnd) { }
Map<MapleQuestRequirementType, MapleQuestRequirement> reqs = !checkEnd ? startReqs : completeReqs;
MapleQuestRequirement mqr = reqs.get(MapleQuestRequirementType.NPC); public boolean restoreLostItem(Character chr, int itemid) {
if (mqr != null) { if (chr.getQuest(this).getStatus().equals(QuestStatus.Status.STARTED)) {
return ((NpcRequirement) mqr).get(); ItemAction itemAct = (ItemAction) startActs.get(MapleQuestActionType.ITEM);
} else { if (itemAct != null) {
return -1; return itemAct.restoreLostItem(chr, itemid);
} }
}
public boolean hasScriptRequirement(boolean checkEnd) {
Map<MapleQuestRequirementType, MapleQuestRequirement> reqs = !checkEnd ? startReqs : completeReqs;
MapleQuestRequirement mqr = reqs.get(MapleQuestRequirementType.SCRIPT);
if (mqr != null) {
return ((ScriptRequirement) mqr).get();
} else {
return false;
}
}
public boolean hasNextQuestAction() {
Map<MapleQuestActionType, MapleQuestAction> 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<MapleQuest> getMatchedQuests(String search) {
List<MapleQuest> 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 false;
}
public int getMedalRequirement() {
Integer medalid = medals.get(id);
return medalid != null ? medalid : -1;
}
public int getNpcRequirement(boolean checkEnd) {
Map<MapleQuestRequirementType, MapleQuestRequirement> 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<MapleQuestRequirementType, MapleQuestRequirement> reqs = !checkEnd ? startReqs : completeReqs;
MapleQuestRequirement mqr = reqs.get(MapleQuestRequirementType.SCRIPT);
if (mqr != null) {
return ((ScriptRequirement) mqr).get();
} else {
return false;
}
}
public boolean hasNextQuestAction() {
Map<MapleQuestActionType, MapleQuestAction> 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<Quest> getMatchedQuests(String search) {
List<Quest> 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() { public static void loadAllQuests() {
final Map<Integer, MapleQuest> loadedQuests = new HashMap<>(); final Map<Integer, Quest> loadedQuests = new HashMap<>();
final Map<Integer, Integer> loadedInfoNumberQuests = new HashMap<>(); final Map<Integer, Integer> loadedInfoNumberQuests = new HashMap<>();
for (Data quest : questInfo.getChildren()) { for (Data quest : questInfo.getChildren()) {
int questID = Integer.parseInt(quest.getName()); int questID = Integer.parseInt(quest.getName());
MapleQuest q = new MapleQuest(questID); Quest q = new Quest(questID);
loadedQuests.put(questID, q); loadedQuests.put(questID, q);
int infoNumber; int infoNumber;
@@ -672,7 +672,7 @@ public class MapleQuest {
} }
} }
MapleQuest.quests = loadedQuests; Quest.quests = loadedQuests;
MapleQuest.infoNumberQuests = loadedInfoNumberQuests; Quest.infoNumberQuests = loadedInfoNumberQuests;
} }
} }
@@ -25,8 +25,8 @@ import client.Character;
import provider.Data; import provider.Data;
import provider.DataTool; import provider.DataTool;
import server.MapleItemInformationProvider; import server.MapleItemInformationProvider;
import server.quest.MapleQuest;
import server.quest.MapleQuestActionType; import server.quest.MapleQuestActionType;
import server.quest.Quest;
/** /**
* *
@@ -35,7 +35,7 @@ import server.quest.MapleQuestActionType;
public class BuffAction extends MapleQuestAction { public class BuffAction extends MapleQuestAction {
int itemEffect; int itemEffect;
public BuffAction(MapleQuest quest, Data data) { public BuffAction(Quest quest, Data data) {
super(MapleQuestActionType.BUFF, quest); super(MapleQuestActionType.BUFF, quest);
processData(data); processData(data);
} }
@@ -25,8 +25,8 @@ import client.Character;
import config.YamlConfig; import config.YamlConfig;
import provider.Data; import provider.Data;
import provider.DataTool; import provider.DataTool;
import server.quest.MapleQuest;
import server.quest.MapleQuestActionType; import server.quest.MapleQuestActionType;
import server.quest.Quest;
/** /**
* *
@@ -35,7 +35,7 @@ import server.quest.MapleQuestActionType;
public class ExpAction extends MapleQuestAction { public class ExpAction extends MapleQuestAction {
int exp; int exp;
public ExpAction(MapleQuest quest, Data data) { public ExpAction(Quest quest, Data data) {
super(MapleQuestActionType.EXP, quest); super(MapleQuestActionType.EXP, quest);
processData(data); processData(data);
} }
@@ -24,8 +24,8 @@ package server.quest.actions;
import client.Character; import client.Character;
import provider.Data; import provider.Data;
import provider.DataTool; import provider.DataTool;
import server.quest.MapleQuest;
import server.quest.MapleQuestActionType; import server.quest.MapleQuestActionType;
import server.quest.Quest;
/** /**
* *
@@ -34,7 +34,7 @@ import server.quest.MapleQuestActionType;
public class FameAction extends MapleQuestAction { public class FameAction extends MapleQuestAction {
int fame; int fame;
public FameAction(MapleQuest quest, Data data) { public FameAction(Quest quest, Data data) {
super(MapleQuestActionType.FAME, quest); super(MapleQuestActionType.FAME, quest);
questID = quest.getId(); questID = quest.getId();
processData(data); processData(data);
@@ -22,8 +22,8 @@ package server.quest.actions;
import client.Character; import client.Character;
import provider.Data; import provider.Data;
import provider.DataTool; import provider.DataTool;
import server.quest.MapleQuest;
import server.quest.MapleQuestActionType; import server.quest.MapleQuestActionType;
import server.quest.Quest;
/** /**
* *
@@ -34,7 +34,7 @@ public class InfoAction extends MapleQuestAction {
private String info; private String info;
private int questID; private int questID;
public InfoAction(MapleQuest quest, Data data) { public InfoAction(Quest quest, Data data) {
super(MapleQuestActionType.INFO, quest); super(MapleQuestActionType.INFO, quest);
questID = quest.getId(); questID = quest.getId();
processData(data); processData(data);
@@ -30,8 +30,8 @@ import constants.inventory.ItemConstants;
import provider.Data; import provider.Data;
import provider.DataTool; import provider.DataTool;
import server.MapleItemInformationProvider; import server.MapleItemInformationProvider;
import server.quest.MapleQuest;
import server.quest.MapleQuestActionType; import server.quest.MapleQuestActionType;
import server.quest.Quest;
import tools.FilePrinter; import tools.FilePrinter;
import tools.PacketCreator; import tools.PacketCreator;
import tools.Pair; import tools.Pair;
@@ -50,7 +50,7 @@ import java.util.List;
public class ItemAction extends MapleQuestAction { public class ItemAction extends MapleQuestAction {
List<ItemData> items = new ArrayList<>(); List<ItemData> items = new ArrayList<>();
public ItemAction(MapleQuest quest, Data data) { public ItemAction(Quest quest, Data data) {
super(MapleQuestActionType.ITEM, quest); super(MapleQuestActionType.ITEM, quest);
processData(data); processData(data);
} }
@@ -20,8 +20,8 @@ package server.quest.actions;
import client.Character; import client.Character;
import provider.Data; import provider.Data;
import server.quest.MapleQuest;
import server.quest.MapleQuestActionType; import server.quest.MapleQuestActionType;
import server.quest.Quest;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
@@ -34,7 +34,7 @@ public abstract class MapleQuestAction {
private final MapleQuestActionType type; private final MapleQuestActionType type;
protected int questID; protected int questID;
public MapleQuestAction(MapleQuestActionType action, MapleQuest quest) { public MapleQuestAction(MapleQuestActionType action, Quest quest) {
this.type = action; this.type = action;
this.questID = quest.getId(); this.questID = quest.getId();
} }
@@ -25,8 +25,8 @@ import client.Character;
import config.YamlConfig; import config.YamlConfig;
import provider.Data; import provider.Data;
import provider.DataTool; import provider.DataTool;
import server.quest.MapleQuest;
import server.quest.MapleQuestActionType; import server.quest.MapleQuestActionType;
import server.quest.Quest;
/** /**
* *
@@ -35,7 +35,7 @@ import server.quest.MapleQuestActionType;
public class MesoAction extends MapleQuestAction { public class MesoAction extends MapleQuestAction {
int mesos; int mesos;
public MesoAction(MapleQuest quest, Data data) { public MesoAction(Quest quest, Data data) {
super(MapleQuestActionType.MESO, quest); super(MapleQuestActionType.MESO, quest);
questID = quest.getId(); questID = quest.getId();
processData(data); processData(data);
@@ -25,8 +25,8 @@ import client.Character;
import client.QuestStatus; import client.QuestStatus;
import provider.Data; import provider.Data;
import provider.DataTool; import provider.DataTool;
import server.quest.MapleQuest;
import server.quest.MapleQuestActionType; import server.quest.MapleQuestActionType;
import server.quest.Quest;
import tools.PacketCreator; import tools.PacketCreator;
/** /**
@@ -36,7 +36,7 @@ import tools.PacketCreator;
public class NextQuestAction extends MapleQuestAction { public class NextQuestAction extends MapleQuestAction {
int nextQuest; int nextQuest;
public NextQuestAction(MapleQuest quest, Data data) { public NextQuestAction(Quest quest, Data data) {
super(MapleQuestActionType.NEXTQUEST, quest); super(MapleQuestActionType.NEXTQUEST, quest);
processData(data); processData(data);
} }
@@ -49,7 +49,7 @@ public class NextQuestAction extends MapleQuestAction {
@Override @Override
public void run(Character chr, Integer extSelection) { 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)); chr.sendPacket(PacketCreator.updateQuestFinish((short) questID, status.getNpc(), (short) nextQuest));
} }
} }
@@ -26,8 +26,8 @@ import client.QuestStatus;
import constants.inventory.ItemConstants; import constants.inventory.ItemConstants;
import provider.Data; import provider.Data;
import provider.DataTool; import provider.DataTool;
import server.quest.MapleQuest;
import server.quest.MapleQuestActionType; import server.quest.MapleQuestActionType;
import server.quest.Quest;
/** /**
* *
@@ -36,7 +36,7 @@ import server.quest.MapleQuestActionType;
public class PetSkillAction extends MapleQuestAction { public class PetSkillAction extends MapleQuestAction {
int flag; int flag;
public PetSkillAction(MapleQuest quest, Data data) { public PetSkillAction(Quest quest, Data data) {
super(MapleQuestActionType.PETSKILL, quest); super(MapleQuestActionType.PETSKILL, quest);
questID = quest.getId(); questID = quest.getId();
processData(data); processData(data);
@@ -50,7 +50,7 @@ public class PetSkillAction extends MapleQuestAction {
@Override @Override
public boolean check(Character chr, Integer extSelection) { 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)) if(!(status.getStatus() == QuestStatus.Status.NOT_STARTED && status.getForfeited() > 0))
return false; return false;
@@ -23,8 +23,8 @@ import client.Character;
import client.Client; import client.Client;
import client.inventory.Pet; import client.inventory.Pet;
import provider.Data; import provider.Data;
import server.quest.MapleQuest;
import server.quest.MapleQuestActionType; import server.quest.MapleQuestActionType;
import server.quest.Quest;
/** /**
* *
@@ -32,7 +32,7 @@ import server.quest.MapleQuestActionType;
*/ */
public class PetSpeedAction extends MapleQuestAction { public class PetSpeedAction extends MapleQuestAction {
public PetSpeedAction(MapleQuest quest, Data data) { public PetSpeedAction(Quest quest, Data data) {
super(MapleQuestActionType.PETTAMENESS, quest); super(MapleQuestActionType.PETTAMENESS, quest);
questID = quest.getId(); questID = quest.getId();
} }
@@ -24,8 +24,8 @@ import client.Client;
import client.inventory.Pet; import client.inventory.Pet;
import provider.Data; import provider.Data;
import provider.DataTool; import provider.DataTool;
import server.quest.MapleQuest;
import server.quest.MapleQuestActionType; import server.quest.MapleQuestActionType;
import server.quest.Quest;
/** /**
* *
@@ -34,7 +34,7 @@ import server.quest.MapleQuestActionType;
public class PetTamenessAction extends MapleQuestAction { public class PetTamenessAction extends MapleQuestAction {
int tameness; int tameness;
public PetTamenessAction(MapleQuest quest, Data data) { public PetTamenessAction(Quest quest, Data data) {
super(MapleQuestActionType.PETTAMENESS, quest); super(MapleQuestActionType.PETTAMENESS, quest);
questID = quest.getId(); questID = quest.getId();
processData(data); processData(data);
@@ -25,8 +25,8 @@ import client.Character;
import client.QuestStatus; import client.QuestStatus;
import provider.Data; import provider.Data;
import provider.DataTool; import provider.DataTool;
import server.quest.MapleQuest;
import server.quest.MapleQuestActionType; import server.quest.MapleQuestActionType;
import server.quest.Quest;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
@@ -39,7 +39,7 @@ public class QuestAction extends MapleQuestAction {
int mesos; int mesos;
Map<Integer, Integer> quests = new HashMap<>(); Map<Integer, Integer> quests = new HashMap<>();
public QuestAction(MapleQuest quest, Data data) { public QuestAction(Quest quest, Data data) {
super(MapleQuestActionType.QUEST, quest); super(MapleQuestActionType.QUEST, quest);
questID = quest.getId(); questID = quest.getId();
processData(data); processData(data);
@@ -59,7 +59,7 @@ public class QuestAction extends MapleQuestAction {
public void run(Character chr, Integer extSelection) { public void run(Character chr, Integer extSelection) {
for(Integer questID : quests.keySet()) { for(Integer questID : quests.keySet()) {
int stat = quests.get(questID); 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)));
} }
} }
} }
@@ -27,8 +27,8 @@ import client.Skill;
import client.SkillFactory; import client.SkillFactory;
import provider.Data; import provider.Data;
import provider.DataTool; import provider.DataTool;
import server.quest.MapleQuest;
import server.quest.MapleQuestActionType; import server.quest.MapleQuestActionType;
import server.quest.Quest;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
@@ -43,7 +43,7 @@ public class SkillAction extends MapleQuestAction {
int itemEffect; int itemEffect;
Map<Integer, SkillData> skillData = new HashMap<>(); Map<Integer, SkillData> skillData = new HashMap<>();
public SkillAction(MapleQuest quest, Data data) { public SkillAction(Quest quest, Data data) {
super(MapleQuestActionType.SKILL, quest); super(MapleQuestActionType.SKILL, quest);
processData(data); processData(data);
} }
@@ -18,12 +18,12 @@
along with this program. If not, see <http://www.gnu.org/licenses/>. along with this program. If not, see <http://www.gnu.org/licenses/>.
*/ */
package server.quest.requirements; package server.quest.requirements;
import client.Character; import client.Character;
import provider.Data; import provider.Data;
import provider.DataTool; import provider.DataTool;
import server.quest.MapleQuest;
import server.quest.MapleQuestRequirementType; import server.quest.MapleQuestRequirementType;
import server.quest.Quest;
/** /**
* *
@@ -32,7 +32,7 @@ import server.quest.MapleQuestRequirementType;
public class BuffExceptRequirement extends MapleQuestRequirement { public class BuffExceptRequirement extends MapleQuestRequirement {
private int buffId = -1; private int buffId = -1;
public BuffExceptRequirement(MapleQuest quest, Data data) { public BuffExceptRequirement(Quest quest, Data data) {
super(MapleQuestRequirementType.BUFF); super(MapleQuestRequirementType.BUFF);
processData(data); processData(data);
} }
@@ -22,8 +22,8 @@ package server.quest.requirements;
import client.Character; import client.Character;
import provider.Data; import provider.Data;
import provider.DataTool; import provider.DataTool;
import server.quest.MapleQuest;
import server.quest.MapleQuestRequirementType; import server.quest.MapleQuestRequirementType;
import server.quest.Quest;
/** /**
* *
@@ -32,7 +32,7 @@ import server.quest.MapleQuestRequirementType;
public class BuffRequirement extends MapleQuestRequirement { public class BuffRequirement extends MapleQuestRequirement {
private int buffId = 1; private int buffId = 1;
public BuffRequirement(MapleQuest quest, Data data) { public BuffRequirement(Quest quest, Data data) {
super(MapleQuestRequirementType.BUFF); super(MapleQuestRequirementType.BUFF);
processData(data); processData(data);
} }
@@ -24,8 +24,8 @@ package server.quest.requirements;
import client.Character; import client.Character;
import provider.Data; import provider.Data;
import provider.DataTool; import provider.DataTool;
import server.quest.MapleQuest;
import server.quest.MapleQuestRequirementType; import server.quest.MapleQuestRequirementType;
import server.quest.Quest;
/** /**
* *
@@ -35,7 +35,7 @@ public class CompletedQuestRequirement extends MapleQuestRequirement {
private int reqQuest; private int reqQuest;
public CompletedQuestRequirement(MapleQuest quest, Data data) { public CompletedQuestRequirement(Quest quest, Data data) {
super(MapleQuestRequirementType.COMPLETED_QUEST); super(MapleQuestRequirementType.COMPLETED_QUEST);
processData(data); processData(data);
} }
@@ -24,8 +24,8 @@ package server.quest.requirements;
import client.Character; import client.Character;
import provider.Data; import provider.Data;
import provider.DataTool; import provider.DataTool;
import server.quest.MapleQuest;
import server.quest.MapleQuestRequirementType; import server.quest.MapleQuestRequirementType;
import server.quest.Quest;
import java.util.Calendar; import java.util.Calendar;
@@ -37,7 +37,7 @@ public class EndDateRequirement extends MapleQuestRequirement {
private String timeStr; private String timeStr;
public EndDateRequirement(MapleQuest quest, Data data) { public EndDateRequirement(Quest quest, Data data) {
super(MapleQuestRequirementType.END_DATE); super(MapleQuestRequirementType.END_DATE);
processData(data); processData(data);
} }
@@ -24,8 +24,8 @@ package server.quest.requirements;
import client.Character; import client.Character;
import provider.Data; import provider.Data;
import provider.DataTool; import provider.DataTool;
import server.quest.MapleQuest;
import server.quest.MapleQuestRequirementType; import server.quest.MapleQuestRequirementType;
import server.quest.Quest;
/** /**
* *
@@ -35,7 +35,7 @@ public class FieldEnterRequirement extends MapleQuestRequirement {
private int mapId = -1; private int mapId = -1;
public FieldEnterRequirement(MapleQuest quest, Data data) { public FieldEnterRequirement(Quest quest, Data data) {
super(MapleQuestRequirementType.FIELD_ENTER); super(MapleQuestRequirementType.FIELD_ENTER);
processData(data); processData(data);
} }
@@ -24,8 +24,8 @@ package server.quest.requirements;
import client.Character; import client.Character;
import provider.Data; import provider.Data;
import provider.DataTool; import provider.DataTool;
import server.quest.MapleQuest;
import server.quest.MapleQuestRequirementType; import server.quest.MapleQuestRequirementType;
import server.quest.Quest;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
@@ -39,7 +39,7 @@ public class InfoExRequirement extends MapleQuestRequirement {
private int questID; private int questID;
public InfoExRequirement(MapleQuest quest, Data data) { public InfoExRequirement(Quest quest, Data data) {
super(MapleQuestRequirementType.INFO_EX); super(MapleQuestRequirementType.INFO_EX);
questID = quest.getId(); questID = quest.getId();
processData(data); processData(data);
@@ -22,8 +22,8 @@ package server.quest.requirements;
import client.Character; import client.Character;
import provider.Data; import provider.Data;
import provider.DataTool; import provider.DataTool;
import server.quest.MapleQuest;
import server.quest.MapleQuestRequirementType; import server.quest.MapleQuestRequirementType;
import server.quest.Quest;
/** /**
* *
@@ -34,7 +34,7 @@ public class InfoNumberRequirement extends MapleQuestRequirement {
private short infoNumber; private short infoNumber;
private int questID; private int questID;
public InfoNumberRequirement(MapleQuest quest, Data data) { public InfoNumberRequirement(Quest quest, Data data) {
super(MapleQuestRequirementType.INFO_NUMBER); super(MapleQuestRequirementType.INFO_NUMBER);
questID = quest.getId(); questID = quest.getId();
processData(data); processData(data);
@@ -25,8 +25,8 @@ import client.Character;
import client.QuestStatus; import client.QuestStatus;
import provider.Data; import provider.Data;
import provider.DataTool; import provider.DataTool;
import server.quest.MapleQuest;
import server.quest.MapleQuestRequirementType; import server.quest.MapleQuestRequirementType;
import server.quest.Quest;
/** /**
* *
@@ -36,7 +36,7 @@ public class IntervalRequirement extends MapleQuestRequirement {
private int interval = -1; private int interval = -1;
private int questID; private int questID;
public IntervalRequirement(MapleQuest quest, Data data) { public IntervalRequirement(Quest quest, Data data) {
super(MapleQuestRequirementType.INTERVAL); super(MapleQuestRequirementType.INTERVAL);
questID = quest.getId(); questID = quest.getId();
processData(data); processData(data);
@@ -54,7 +54,7 @@ public class IntervalRequirement extends MapleQuestRequirement {
private static String getIntervalTimeLeft(Character chr, IntervalRequirement r) { private static String getIntervalTimeLeft(Character chr, IntervalRequirement r) {
StringBuilder str = new StringBuilder(); 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(); long leftTime = futureTime - System.currentTimeMillis();
byte mode = 0; byte mode = 0;
@@ -84,8 +84,8 @@ public class IntervalRequirement extends MapleQuestRequirement {
@Override @Override
public boolean check(Character chr, Integer npcid) { public boolean check(Character chr, Integer npcid) {
boolean check = !chr.getQuest(MapleQuest.getInstance(questID)).getStatus().equals(QuestStatus.Status.COMPLETED); boolean check = !chr.getQuest(Quest.getInstance(questID)).getStatus().equals(QuestStatus.Status.COMPLETED);
boolean check2 = chr.getQuest(MapleQuest.getInstance(questID)).getCompletionTime() <= System.currentTimeMillis() - interval; boolean check2 = chr.getQuest(Quest.getInstance(questID)).getCompletionTime() <= System.currentTimeMillis() - interval;
if (check || check2) { if (check || check2) {
return true; return true;
@@ -28,8 +28,8 @@ import constants.inventory.ItemConstants;
import provider.Data; import provider.Data;
import provider.DataTool; import provider.DataTool;
import server.MapleItemInformationProvider; import server.MapleItemInformationProvider;
import server.quest.MapleQuest;
import server.quest.MapleQuestRequirementType; import server.quest.MapleQuestRequirementType;
import server.quest.Quest;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
@@ -42,7 +42,7 @@ public class ItemRequirement extends MapleQuestRequirement {
Map<Integer, Integer> items = new HashMap<>(); Map<Integer, Integer> items = new HashMap<>();
public ItemRequirement(MapleQuest quest, Data data) { public ItemRequirement(Quest quest, Data data) {
super(MapleQuestRequirementType.ITEM); super(MapleQuestRequirementType.ITEM);
processData(data); processData(data);
} }
@@ -25,8 +25,8 @@ import client.Character;
import client.Job; import client.Job;
import provider.Data; import provider.Data;
import provider.DataTool; import provider.DataTool;
import server.quest.MapleQuest;
import server.quest.MapleQuestRequirementType; import server.quest.MapleQuestRequirementType;
import server.quest.Quest;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
@@ -38,7 +38,7 @@ import java.util.List;
public class JobRequirement extends MapleQuestRequirement { public class JobRequirement extends MapleQuestRequirement {
List<Integer> jobs = new ArrayList<>(); List<Integer> jobs = new ArrayList<>();
public JobRequirement(MapleQuest quest, Data data) { public JobRequirement(Quest quest, Data data) {
super(MapleQuestRequirementType.JOB); super(MapleQuestRequirementType.JOB);
processData(data); processData(data);
} }
@@ -24,8 +24,8 @@ package server.quest.requirements;
import client.Character; import client.Character;
import provider.Data; import provider.Data;
import provider.DataTool; import provider.DataTool;
import server.quest.MapleQuest;
import server.quest.MapleQuestRequirementType; import server.quest.MapleQuestRequirementType;
import server.quest.Quest;
/** /**
* *
@@ -35,7 +35,7 @@ public class MaxLevelRequirement extends MapleQuestRequirement {
private int maxLevel; private int maxLevel;
public MaxLevelRequirement(MapleQuest quest, Data data) { public MaxLevelRequirement(Quest quest, Data data) {
super(MapleQuestRequirementType.MAX_LEVEL); super(MapleQuestRequirementType.MAX_LEVEL);
processData(data); processData(data);
} }
@@ -22,8 +22,8 @@ package server.quest.requirements;
import client.Character; import client.Character;
import provider.Data; import provider.Data;
import provider.DataTool; import provider.DataTool;
import server.quest.MapleQuest;
import server.quest.MapleQuestRequirementType; import server.quest.MapleQuestRequirementType;
import server.quest.Quest;
/** /**
* *
@@ -32,7 +32,7 @@ import server.quest.MapleQuestRequirementType;
public class MesoRequirement extends MapleQuestRequirement { public class MesoRequirement extends MapleQuestRequirement {
private int meso = 0; private int meso = 0;
public MesoRequirement(MapleQuest quest, Data data) { public MesoRequirement(Quest quest, Data data) {
super(MapleQuestRequirementType.MESO); super(MapleQuestRequirementType.MESO);
processData(data); processData(data);
} }
@@ -24,8 +24,8 @@ package server.quest.requirements;
import client.Character; import client.Character;
import provider.Data; import provider.Data;
import provider.DataTool; import provider.DataTool;
import server.quest.MapleQuest;
import server.quest.MapleQuestRequirementType; import server.quest.MapleQuestRequirementType;
import server.quest.Quest;
/** /**
* *
@@ -35,7 +35,7 @@ public class MinLevelRequirement extends MapleQuestRequirement {
private int minLevel; private int minLevel;
public MinLevelRequirement(MapleQuest quest, Data data) { public MinLevelRequirement(Quest quest, Data data) {
super(MapleQuestRequirementType.MIN_LEVEL); super(MapleQuestRequirementType.MIN_LEVEL);
processData(data); processData(data);
} }
@@ -25,8 +25,8 @@ import client.Character;
import client.inventory.Pet; import client.inventory.Pet;
import provider.Data; import provider.Data;
import provider.DataTool; import provider.DataTool;
import server.quest.MapleQuest;
import server.quest.MapleQuestRequirementType; import server.quest.MapleQuestRequirementType;
import server.quest.Quest;
/** /**
* *
@@ -36,7 +36,7 @@ public class MinTamenessRequirement extends MapleQuestRequirement {
private int minTameness; private int minTameness;
public MinTamenessRequirement(MapleQuest quest, Data data) { public MinTamenessRequirement(Quest quest, Data data) {
super(MapleQuestRequirementType.MIN_PET_TAMENESS); super(MapleQuestRequirementType.MIN_PET_TAMENESS);
processData(data); processData(data);
} }
@@ -25,8 +25,8 @@ import client.Character;
import client.QuestStatus; import client.QuestStatus;
import provider.Data; import provider.Data;
import provider.DataTool; import provider.DataTool;
import server.quest.MapleQuest;
import server.quest.MapleQuestRequirementType; import server.quest.MapleQuestRequirementType;
import server.quest.Quest;
import tools.FilePrinter; import tools.FilePrinter;
import java.util.HashMap; import java.util.HashMap;
@@ -40,7 +40,7 @@ public class MobRequirement extends MapleQuestRequirement {
Map<Integer, Integer> mobs = new HashMap<>(); Map<Integer, Integer> mobs = new HashMap<>();
private int questID; private int questID;
public MobRequirement(MapleQuest quest, Data data) { public MobRequirement(Quest quest, Data data) {
super(MapleQuestRequirementType.MOB); super(MapleQuestRequirementType.MOB);
questID = quest.getId(); questID = quest.getId();
processData(data); processData(data);
@@ -62,7 +62,7 @@ public class MobRequirement extends MapleQuestRequirement {
@Override @Override
public boolean check(Character chr, Integer npcid) { 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()) { for(Integer mobID : mobs.keySet()) {
int countReq = mobs.get(mobID); int countReq = mobs.get(mobID);
int progress; int progress;
@@ -24,8 +24,8 @@ package server.quest.requirements;
import client.Character; import client.Character;
import provider.Data; import provider.Data;
import provider.DataTool; import provider.DataTool;
import server.quest.MapleQuest;
import server.quest.MapleQuestRequirementType; import server.quest.MapleQuestRequirementType;
import server.quest.Quest;
/** /**
* *
@@ -35,7 +35,7 @@ public class MonsterBookCountRequirement extends MapleQuestRequirement {
private int reqCards; private int reqCards;
public MonsterBookCountRequirement(MapleQuest quest, Data data) { public MonsterBookCountRequirement(Quest quest, Data data) {
super(MapleQuestRequirementType.MONSTER_BOOK); super(MapleQuestRequirementType.MONSTER_BOOK);
processData(data); processData(data);
} }
@@ -24,8 +24,8 @@ package server.quest.requirements;
import client.Character; import client.Character;
import provider.Data; import provider.Data;
import provider.DataTool; import provider.DataTool;
import server.quest.MapleQuest;
import server.quest.MapleQuestRequirementType; import server.quest.MapleQuestRequirementType;
import server.quest.Quest;
/** /**
* *
@@ -34,7 +34,7 @@ import server.quest.MapleQuestRequirementType;
public class NpcRequirement extends MapleQuestRequirement { public class NpcRequirement extends MapleQuestRequirement {
private int reqNPC; private int reqNPC;
public NpcRequirement(MapleQuest quest, Data data) { public NpcRequirement(Quest quest, Data data) {
super(MapleQuestRequirementType.NPC); super(MapleQuestRequirementType.NPC);
processData(data); processData(data);
} }
@@ -25,8 +25,8 @@ import client.Character;
import client.inventory.Pet; import client.inventory.Pet;
import provider.Data; import provider.Data;
import provider.DataTool; import provider.DataTool;
import server.quest.MapleQuest;
import server.quest.MapleQuestRequirementType; import server.quest.MapleQuestRequirementType;
import server.quest.Quest;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
@@ -39,7 +39,7 @@ public class PetRequirement extends MapleQuestRequirement {
List<Integer> petIDs = new ArrayList<>(); List<Integer> petIDs = new ArrayList<>();
public PetRequirement(MapleQuest quest, Data data) { public PetRequirement(Quest quest, Data data) {
super(MapleQuestRequirementType.PET); super(MapleQuestRequirementType.PET);
processData(data); processData(data);
} }
@@ -22,8 +22,8 @@ import client.Character;
import client.QuestStatus; import client.QuestStatus;
import provider.Data; import provider.Data;
import provider.DataTool; import provider.DataTool;
import server.quest.MapleQuest;
import server.quest.MapleQuestRequirementType; import server.quest.MapleQuestRequirementType;
import server.quest.Quest;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
@@ -35,7 +35,7 @@ import java.util.Map;
public class QuestRequirement extends MapleQuestRequirement { public class QuestRequirement extends MapleQuestRequirement {
Map<Integer, Integer> quests = new HashMap<>(); Map<Integer, Integer> quests = new HashMap<>();
public QuestRequirement(MapleQuest quest, Data data) { public QuestRequirement(Quest quest, Data data) {
super(MapleQuestRequirementType.QUEST); super(MapleQuestRequirementType.QUEST);
processData(data); processData(data);
} }
@@ -58,7 +58,7 @@ public class QuestRequirement extends MapleQuestRequirement {
public boolean check(Character chr, Integer npcid) { public boolean check(Character chr, Integer npcid) {
for(Integer questID : quests.keySet()) { for(Integer questID : quests.keySet()) {
int stateReq = quests.get(questID); 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)) if(qs == null && QuestStatus.Status.getById(stateReq).equals(QuestStatus.Status.NOT_STARTED))
continue; continue;
@@ -18,12 +18,12 @@
along with this program. If not, see <http://www.gnu.org/licenses/>. along with this program. If not, see <http://www.gnu.org/licenses/>.
*/ */
package server.quest.requirements; package server.quest.requirements;
import client.Character; import client.Character;
import provider.Data; import provider.Data;
import provider.DataTool; import provider.DataTool;
import server.quest.MapleQuest;
import server.quest.MapleQuestRequirementType; import server.quest.MapleQuestRequirementType;
import server.quest.Quest;
/** /**
* *
@@ -32,7 +32,7 @@ import server.quest.MapleQuestRequirementType;
public class ScriptRequirement extends MapleQuestRequirement { public class ScriptRequirement extends MapleQuestRequirement {
private boolean reqScript; private boolean reqScript;
public ScriptRequirement(MapleQuest quest, Data data) { public ScriptRequirement(Quest quest, Data data) {
super(MapleQuestRequirementType.BUFF); super(MapleQuestRequirementType.BUFF);
processData(data); processData(data);
} }