Rename and clean up MapleQuestStatus
This commit is contained in:
@@ -176,7 +176,7 @@ public class Character extends AbstractCharacterObject {
|
||||
private List<Integer> lastmonthfameids;
|
||||
private final List<WeakReference<MapleMap>> lastVisitedMaps = new LinkedList<>();
|
||||
private WeakReference<MapleMap> ownedMap = new WeakReference<>(null);
|
||||
private final Map<Short, MapleQuestStatus> quests;
|
||||
private final Map<Short, QuestStatus> quests;
|
||||
private final Set<MapleMonster> controlled = new LinkedHashSet<>();
|
||||
private final Map<Integer, String> entered = new LinkedHashMap<>();
|
||||
private final Set<MapleMapObject> visibleMapObjects = Collections.newSetFromMap(new ConcurrentHashMap<>());
|
||||
@@ -4622,16 +4622,16 @@ public class Character extends AbstractCharacterObject {
|
||||
return client.getAbstractPlayerInteraction();
|
||||
}
|
||||
|
||||
private List<MapleQuestStatus> getQuests() {
|
||||
private List<QuestStatus> getQuests() {
|
||||
synchronized (quests) {
|
||||
return new ArrayList<>(quests.values());
|
||||
}
|
||||
}
|
||||
|
||||
public final List<MapleQuestStatus> getCompletedQuests() {
|
||||
List<MapleQuestStatus> ret = new LinkedList<>();
|
||||
for (MapleQuestStatus qs : getQuests()) {
|
||||
if (qs.getStatus().equals(MapleQuestStatus.Status.COMPLETED)) {
|
||||
public final List<QuestStatus> getCompletedQuests() {
|
||||
List<QuestStatus> ret = new LinkedList<>();
|
||||
for (QuestStatus qs : getQuests()) {
|
||||
if (qs.getStatus().equals(QuestStatus.Status.COMPLETED)) {
|
||||
ret.add(qs);
|
||||
}
|
||||
}
|
||||
@@ -5676,7 +5676,7 @@ public class Character extends AbstractCharacterObject {
|
||||
|
||||
public final byte getQuestStatus(final int quest) {
|
||||
synchronized (quests) {
|
||||
MapleQuestStatus mqs = quests.get((short) quest);
|
||||
QuestStatus mqs = quests.get((short) quest);
|
||||
if (mqs != null) {
|
||||
return (byte) mqs.getStatus().getId();
|
||||
} else {
|
||||
@@ -5685,16 +5685,16 @@ public class Character extends AbstractCharacterObject {
|
||||
}
|
||||
}
|
||||
|
||||
public MapleQuestStatus getQuest(final int quest) {
|
||||
public QuestStatus getQuest(final int quest) {
|
||||
return getQuest(MapleQuest.getInstance(quest));
|
||||
}
|
||||
|
||||
public MapleQuestStatus getQuest(MapleQuest quest) {
|
||||
public QuestStatus getQuest(MapleQuest quest) {
|
||||
synchronized (quests) {
|
||||
short questid = quest.getId();
|
||||
MapleQuestStatus qs = quests.get(questid);
|
||||
QuestStatus qs = quests.get(questid);
|
||||
if (qs == null) {
|
||||
qs = new MapleQuestStatus(quest, MapleQuestStatus.Status.NOT_STARTED);
|
||||
qs = new QuestStatus(quest, QuestStatus.Status.NOT_STARTED);
|
||||
quests.put(questid, qs);
|
||||
}
|
||||
return qs;
|
||||
@@ -5706,17 +5706,17 @@ public class Character extends AbstractCharacterObject {
|
||||
public final void setQuestAdd(final MapleQuest quest, final byte status, final String customData) {
|
||||
synchronized (quests) {
|
||||
if (!quests.containsKey(quest.getId())) {
|
||||
final MapleQuestStatus stat = new MapleQuestStatus(quest, MapleQuestStatus.Status.getById(status));
|
||||
final QuestStatus stat = new QuestStatus(quest, QuestStatus.Status.getById(status));
|
||||
stat.setCustomData(customData);
|
||||
quests.put(quest.getId(), stat);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public final MapleQuestStatus getQuestNAdd(final MapleQuest quest) {
|
||||
public final QuestStatus getQuestNAdd(final MapleQuest quest) {
|
||||
synchronized (quests) {
|
||||
if (!quests.containsKey(quest.getId())) {
|
||||
final MapleQuestStatus status = new MapleQuestStatus(quest, MapleQuestStatus.Status.NOT_STARTED);
|
||||
final QuestStatus status = new QuestStatus(quest, QuestStatus.Status.NOT_STARTED);
|
||||
quests.put(quest.getId(), status);
|
||||
return status;
|
||||
}
|
||||
@@ -5724,13 +5724,13 @@ public class Character extends AbstractCharacterObject {
|
||||
}
|
||||
}
|
||||
|
||||
public final MapleQuestStatus getQuestNoAdd(final MapleQuest quest) {
|
||||
public final QuestStatus getQuestNoAdd(final MapleQuest quest) {
|
||||
synchronized (quests) {
|
||||
return quests.get(quest.getId());
|
||||
}
|
||||
}
|
||||
|
||||
public final MapleQuestStatus getQuestRemove(final MapleQuest quest) {
|
||||
public final QuestStatus getQuestRemove(final MapleQuest quest) {
|
||||
synchronized (quests) {
|
||||
return quests.remove(quest.getId());
|
||||
}
|
||||
@@ -5838,10 +5838,10 @@ public class Character extends AbstractCharacterObject {
|
||||
return slots;
|
||||
}
|
||||
|
||||
public final List<MapleQuestStatus> getStartedQuests() {
|
||||
List<MapleQuestStatus> ret = new LinkedList<>();
|
||||
for (MapleQuestStatus qs : getQuests()) {
|
||||
if (qs.getStatus().equals(MapleQuestStatus.Status.STARTED)) {
|
||||
public final List<QuestStatus> getStartedQuests() {
|
||||
List<QuestStatus> ret = new LinkedList<>();
|
||||
for (QuestStatus qs : getQuests()) {
|
||||
if (qs.getStatus().equals(QuestStatus.Status.STARTED)) {
|
||||
ret.add(qs);
|
||||
}
|
||||
}
|
||||
@@ -7233,7 +7233,7 @@ public class Character extends AbstractCharacterObject {
|
||||
}
|
||||
|
||||
if (channelserver) {
|
||||
final Map<Integer, MapleQuestStatus> loadedQuestStatus = new LinkedHashMap<>();
|
||||
final Map<Integer, QuestStatus> loadedQuestStatus = new LinkedHashMap<>();
|
||||
|
||||
// Quest status
|
||||
try (PreparedStatement ps = con.prepareStatement("SELECT * FROM queststatus WHERE characterid = ?")) {
|
||||
@@ -7242,7 +7242,7 @@ public class Character extends AbstractCharacterObject {
|
||||
try (ResultSet rs = ps.executeQuery()) {
|
||||
while (rs.next()) {
|
||||
MapleQuest q = MapleQuest.getInstance(rs.getShort("quest"));
|
||||
MapleQuestStatus status = new MapleQuestStatus(q, MapleQuestStatus.Status.getById(rs.getInt("status")));
|
||||
QuestStatus status = new QuestStatus(q, QuestStatus.Status.getById(rs.getInt("status")));
|
||||
long cTime = rs.getLong("time");
|
||||
if (cTime > -1) {
|
||||
status.setCompletionTime(cTime * 1000);
|
||||
@@ -7267,7 +7267,7 @@ public class Character extends AbstractCharacterObject {
|
||||
ps.setInt(1, charid);
|
||||
try (ResultSet rsProgress = ps.executeQuery()) {
|
||||
while (rsProgress.next()) {
|
||||
MapleQuestStatus status = loadedQuestStatus.get(rsProgress.getInt("queststatusid"));
|
||||
QuestStatus status = loadedQuestStatus.get(rsProgress.getInt("queststatusid"));
|
||||
if (status != null) {
|
||||
status.setProgress(rsProgress.getInt("progressid"), rsProgress.getString("progress"));
|
||||
}
|
||||
@@ -7280,7 +7280,7 @@ public class Character extends AbstractCharacterObject {
|
||||
ps.setInt(1, charid);
|
||||
try (ResultSet rsMedalMaps = ps.executeQuery()) {
|
||||
while (rsMedalMaps.next()) {
|
||||
MapleQuestStatus status = loadedQuestStatus.get(rsMedalMaps.getInt("queststatusid"));
|
||||
QuestStatus status = loadedQuestStatus.get(rsMedalMaps.getInt("queststatusid"));
|
||||
if (status != null) {
|
||||
status.addMedalMap(rsMedalMaps.getInt("mapid"));
|
||||
}
|
||||
@@ -7453,7 +7453,7 @@ public class Character extends AbstractCharacterObject {
|
||||
}
|
||||
|
||||
public void reloadQuestExpirations() {
|
||||
for (MapleQuestStatus mqs : getStartedQuests()) {
|
||||
for (QuestStatus mqs : getStartedQuests()) {
|
||||
if (mqs.getExpirationTime() > 0) {
|
||||
questTimeLimit2(mqs.getQuest(), mqs.getExpirationTime());
|
||||
}
|
||||
@@ -7521,9 +7521,9 @@ public class Character extends AbstractCharacterObject {
|
||||
int lastQuestProcessed = 0;
|
||||
try {
|
||||
synchronized (quests) {
|
||||
for (MapleQuestStatus qs : getQuests()) {
|
||||
for (QuestStatus qs : getQuests()) {
|
||||
lastQuestProcessed = qs.getQuest().getId();
|
||||
if (qs.getStatus() == MapleQuestStatus.Status.COMPLETED || qs.getQuest().canComplete(this, null)) {
|
||||
if (qs.getStatus() == QuestStatus.Status.COMPLETED || qs.getQuest().canComplete(this, null)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
@@ -8675,7 +8675,7 @@ public class Character extends AbstractCharacterObject {
|
||||
PreparedStatement psMedal = con.prepareStatement("INSERT INTO medalmaps VALUES (DEFAULT, ?, ?, ?)")) {
|
||||
psStatus.setInt(1, id);
|
||||
|
||||
for (MapleQuestStatus qs : getQuests()) {
|
||||
for (QuestStatus qs : getQuests()) {
|
||||
psStatus.setInt(2, qs.getQuest().getId());
|
||||
psStatus.setInt(3, qs.getStatus().getId());
|
||||
psStatus.setInt(4, (int) (qs.getCompletionTime() / 1000));
|
||||
@@ -9822,11 +9822,11 @@ public class Character extends AbstractCharacterObject {
|
||||
|
||||
public void setQuestProgress(int id, int infoNumber, String progress) {
|
||||
MapleQuest q = MapleQuest.getInstance(id);
|
||||
MapleQuestStatus qs = getQuest(q);
|
||||
QuestStatus qs = getQuest(q);
|
||||
|
||||
if (qs.getInfoNumber() == infoNumber && infoNumber > 0) {
|
||||
MapleQuest iq = MapleQuest.getInstance(infoNumber);
|
||||
MapleQuestStatus iqs = getQuest(iq);
|
||||
QuestStatus iqs = getQuest(iq);
|
||||
iqs.setProgress(0, progress);
|
||||
} else {
|
||||
qs.setProgress(infoNumber, progress); // quest progress is thoroughly a string match, infoNumber is actually another questid
|
||||
@@ -9865,7 +9865,7 @@ public class Character extends AbstractCharacterObject {
|
||||
|
||||
switch (questUpdate.getLeft()) {
|
||||
case UPDATE:
|
||||
sendPacket(PacketCreator.updateQuest(chr, (MapleQuestStatus) objs[0], (Boolean) objs[1]));
|
||||
sendPacket(PacketCreator.updateQuest(chr, (QuestStatus) objs[0], (Boolean) objs[1]));
|
||||
break;
|
||||
|
||||
case FORFEIT:
|
||||
@@ -9877,7 +9877,7 @@ public class Character extends AbstractCharacterObject {
|
||||
break;
|
||||
|
||||
case INFO:
|
||||
MapleQuestStatus qs = (MapleQuestStatus) objs[0];
|
||||
QuestStatus qs = (QuestStatus) objs[0];
|
||||
sendPacket(PacketCreator.updateQuestInfo(qs.getQuest().getId(), qs.getNpc()));
|
||||
break;
|
||||
}
|
||||
@@ -9908,17 +9908,17 @@ public class Character extends AbstractCharacterObject {
|
||||
}
|
||||
}
|
||||
|
||||
public void updateQuestStatus(MapleQuestStatus qs) {
|
||||
public void updateQuestStatus(QuestStatus qs) {
|
||||
synchronized (quests) {
|
||||
quests.put(qs.getQuestID(), qs);
|
||||
}
|
||||
if (qs.getStatus().equals(MapleQuestStatus.Status.STARTED)) {
|
||||
if (qs.getStatus().equals(QuestStatus.Status.STARTED)) {
|
||||
announceUpdateQuest(DelayedQuestUpdate.UPDATE, qs, false);
|
||||
if (qs.getInfoNumber() > 0) {
|
||||
announceUpdateQuest(DelayedQuestUpdate.UPDATE, qs, true);
|
||||
}
|
||||
announceUpdateQuest(DelayedQuestUpdate.INFO, qs);
|
||||
} else if (qs.getStatus().equals(MapleQuestStatus.Status.COMPLETED)) {
|
||||
} else if (qs.getStatus().equals(QuestStatus.Status.COMPLETED)) {
|
||||
MapleQuest mquest = qs.getQuest();
|
||||
short questid = mquest.getId();
|
||||
if (!mquest.isSameDayRepeatable() && !MapleQuest.isExploitableQuest(questid)) {
|
||||
@@ -9928,7 +9928,7 @@ public class Character extends AbstractCharacterObject {
|
||||
|
||||
announceUpdateQuest(DelayedQuestUpdate.COMPLETE, questid, qs.getCompletionTime());
|
||||
//announceUpdateQuest(DelayedQuestUpdate.INFO, qs); // happens after giving rewards, for non-next quests only
|
||||
} else if (qs.getStatus().equals(MapleQuestStatus.Status.NOT_STARTED)) {
|
||||
} else if (qs.getStatus().equals(QuestStatus.Status.NOT_STARTED)) {
|
||||
announceUpdateQuest(DelayedQuestUpdate.UPDATE, qs, false);
|
||||
if (qs.getInfoNumber() > 0) {
|
||||
announceUpdateQuest(DelayedQuestUpdate.UPDATE, qs, true);
|
||||
|
||||
@@ -27,10 +27,9 @@ import tools.StringUtil;
|
||||
import java.util.*;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author Matze
|
||||
*/
|
||||
public class MapleQuestStatus {
|
||||
public class QuestStatus {
|
||||
public enum Status {
|
||||
UNDEFINED(-1),
|
||||
NOT_STARTED(0),
|
||||
@@ -38,7 +37,7 @@ public class MapleQuestStatus {
|
||||
COMPLETED(2);
|
||||
final int status;
|
||||
|
||||
private Status(int id) {
|
||||
Status(int id) {
|
||||
status = id;
|
||||
}
|
||||
|
||||
@@ -55,7 +54,8 @@ public class MapleQuestStatus {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
private short questID;
|
||||
|
||||
private final short questID;
|
||||
private Status status;
|
||||
//private boolean updated; //maybe this can be of use for someone?
|
||||
private final Map<Integer, String> progress = new LinkedHashMap<>();
|
||||
@@ -65,17 +65,18 @@ public class MapleQuestStatus {
|
||||
private int forfeited = 0, completed = 0;
|
||||
private String customData;
|
||||
|
||||
public MapleQuestStatus(MapleQuest quest, Status status) {
|
||||
public QuestStatus(MapleQuest quest, Status status) {
|
||||
this.questID = quest.getId();
|
||||
this.setStatus(status);
|
||||
this.completionTime = System.currentTimeMillis();
|
||||
this.expirationTime = 0;
|
||||
//this.updated = true;
|
||||
if (status == Status.STARTED)
|
||||
registerMobs();
|
||||
if (status == Status.STARTED) {
|
||||
registerMobs();
|
||||
}
|
||||
}
|
||||
|
||||
public MapleQuestStatus(MapleQuest quest, Status status, int npc) {
|
||||
public QuestStatus(MapleQuest quest, Status status, int npc) {
|
||||
this.questID = quest.getId();
|
||||
this.setStatus(status);
|
||||
this.setNpc(npc);
|
||||
@@ -90,7 +91,7 @@ public class MapleQuestStatus {
|
||||
public MapleQuest getQuest() {
|
||||
return MapleQuest.getInstance(questID);
|
||||
}
|
||||
|
||||
|
||||
public short getQuestID() {
|
||||
return questID;
|
||||
}
|
||||
@@ -133,7 +134,9 @@ public class MapleQuestStatus {
|
||||
}
|
||||
|
||||
public boolean addMedalMap(int mapid) {
|
||||
if (medalProgress.contains(mapid)) return false;
|
||||
if (medalProgress.contains(mapid)) {
|
||||
return false;
|
||||
}
|
||||
medalProgress.add(mapid);
|
||||
//this.setUpdated();
|
||||
return true;
|
||||
@@ -152,12 +155,12 @@ public class MapleQuestStatus {
|
||||
if (currentStr == null) {
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
int current = Integer.parseInt(currentStr);
|
||||
if (current >= this.getQuest().getMobAmountNeeded(id)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
String str = StringUtil.getLeftPaddedStr(Integer.toString(++current), '0', 3);
|
||||
progress.put(id, str);
|
||||
//this.setUpdated();
|
||||
@@ -172,7 +175,7 @@ public class MapleQuestStatus {
|
||||
public boolean madeProgress() {
|
||||
return progress.size() > 0;
|
||||
}
|
||||
|
||||
|
||||
public String getProgress(int id) {
|
||||
String ret = progress.get(id);
|
||||
if (ret == null) {
|
||||
@@ -181,13 +184,13 @@ public class MapleQuestStatus {
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public void resetProgress(int id) {
|
||||
setProgress(id, "000");
|
||||
}
|
||||
|
||||
|
||||
public void resetAllProgress() {
|
||||
for(Map.Entry<Integer, String> entry : progress.entrySet()) {
|
||||
for (Map.Entry<Integer, String> entry : progress.entrySet()) {
|
||||
setProgress(entry.getKey(), "000");
|
||||
}
|
||||
}
|
||||
@@ -195,25 +198,25 @@ public class MapleQuestStatus {
|
||||
public Map<Integer, String> getProgress() {
|
||||
return Collections.unmodifiableMap(progress);
|
||||
}
|
||||
|
||||
|
||||
public short getInfoNumber() {
|
||||
MapleQuest q = this.getQuest();
|
||||
Status s = this.getStatus();
|
||||
|
||||
|
||||
return q.getInfoNumber(s);
|
||||
}
|
||||
|
||||
|
||||
public String getInfoEx(int index) {
|
||||
MapleQuest q = this.getQuest();
|
||||
Status s = this.getStatus();
|
||||
|
||||
|
||||
return q.getInfoEx(s, index);
|
||||
}
|
||||
|
||||
|
||||
public List<String> getInfoEx() {
|
||||
MapleQuest q = this.getQuest();
|
||||
Status s = this.getStatus();
|
||||
|
||||
|
||||
return q.getInfoEx(s);
|
||||
}
|
||||
|
||||
@@ -224,11 +227,11 @@ public class MapleQuestStatus {
|
||||
public void setCompletionTime(long completionTime) {
|
||||
this.completionTime = completionTime;
|
||||
}
|
||||
|
||||
|
||||
public long getExpirationTime() {
|
||||
return expirationTime;
|
||||
}
|
||||
|
||||
|
||||
public void setExpirationTime(long expirationTime) {
|
||||
this.expirationTime = expirationTime;
|
||||
}
|
||||
@@ -236,7 +239,7 @@ public class MapleQuestStatus {
|
||||
public int getForfeited() {
|
||||
return forfeited;
|
||||
}
|
||||
|
||||
|
||||
public int getCompleted() {
|
||||
return completed;
|
||||
}
|
||||
@@ -248,7 +251,7 @@ public class MapleQuestStatus {
|
||||
throw new IllegalArgumentException("Can't set forfeits to something lower than before.");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public void setCompleted(int completed) {
|
||||
if (completed >= this.completed) {
|
||||
this.completed = completed;
|
||||
@@ -264,7 +267,7 @@ public class MapleQuestStatus {
|
||||
public final String getCustomData() {
|
||||
return customData;
|
||||
}
|
||||
|
||||
|
||||
public String getProgressData() {
|
||||
StringBuilder str = new StringBuilder();
|
||||
for (String ps : progress.values()) {
|
||||
@@ -2,7 +2,7 @@ package net.server.channel.handlers;
|
||||
|
||||
import client.Character;
|
||||
import client.Client;
|
||||
import client.MapleQuestStatus;
|
||||
import client.QuestStatus;
|
||||
import client.inventory.Inventory;
|
||||
import client.inventory.InventoryType;
|
||||
import client.inventory.manipulator.InventoryManipulator;
|
||||
@@ -41,7 +41,7 @@ public class RaiseIncExpHandler extends AbstractPacketHandler {
|
||||
|
||||
Character chr = c.getPlayer();
|
||||
MapleQuest quest = MapleQuest.getInstanceFromInfoNumber(infoNumber);
|
||||
if (!chr.getQuest(quest).getStatus().equals(MapleQuestStatus.Status.STARTED)) {
|
||||
if (!chr.getQuest(quest).getStatus().equals(QuestStatus.Status.STARTED)) {
|
||||
c.sendPacket(PacketCreator.enableActions());
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -3,7 +3,7 @@ package net.server.channel.handlers;
|
||||
import client.Character;
|
||||
import client.Character.DelayedQuestUpdate;
|
||||
import client.Client;
|
||||
import client.MapleQuestStatus;
|
||||
import client.QuestStatus;
|
||||
import net.AbstractPacketHandler;
|
||||
import net.packet.InPacket;
|
||||
import scripting.quest.QuestScriptManager;
|
||||
@@ -23,14 +23,14 @@ public class RaiseUIStateHandler extends AbstractPacketHandler {
|
||||
try {
|
||||
Character chr = c.getPlayer();
|
||||
MapleQuest quest = MapleQuest.getInstanceFromInfoNumber(infoNumber);
|
||||
MapleQuestStatus mqs = chr.getQuest(quest);
|
||||
QuestStatus mqs = chr.getQuest(quest);
|
||||
|
||||
QuestScriptManager.getInstance().raiseOpen(c, (short) infoNumber, mqs.getNpc());
|
||||
|
||||
if (mqs.getStatus() == MapleQuestStatus.Status.NOT_STARTED) {
|
||||
if (mqs.getStatus() == QuestStatus.Status.NOT_STARTED) {
|
||||
quest.forceStart(chr, 22000);
|
||||
c.getAbstractPlayerInteraction().setQuestProgress(quest.getId(), infoNumber, 0);
|
||||
} else if (mqs.getStatus() == MapleQuestStatus.Status.STARTED) {
|
||||
} else if (mqs.getStatus() == QuestStatus.Status.STARTED) {
|
||||
chr.announceUpdateQuest(DelayedQuestUpdate.UPDATE, mqs, mqs.getInfoNumber() > 0);
|
||||
}
|
||||
} finally {
|
||||
|
||||
@@ -319,11 +319,11 @@ public class AbstractPlayerInteraction {
|
||||
|
||||
//---- \/ \/ \/ \/ \/ \/ \/ NOT TESTED \/ \/ \/ \/ \/ \/ \/ \/ \/ ----
|
||||
|
||||
public final MapleQuestStatus getQuestRecord(final int id) {
|
||||
public final QuestStatus getQuestRecord(final int id) {
|
||||
return c.getPlayer().getQuestNAdd(MapleQuest.getInstance(id));
|
||||
}
|
||||
|
||||
public final MapleQuestStatus getQuestNoRecord(final int id) {
|
||||
public final QuestStatus getQuestNoRecord(final int id) {
|
||||
return c.getPlayer().getQuestNoAdd(MapleQuest.getInstance(id));
|
||||
}
|
||||
|
||||
@@ -347,13 +347,13 @@ public class AbstractPlayerInteraction {
|
||||
return c.getPlayer().getQuest(MapleQuest.getInstance(id)).getStatus().getId();
|
||||
}
|
||||
|
||||
private MapleQuestStatus.Status getQuestStat(int id) {
|
||||
private QuestStatus.Status getQuestStat(int id) {
|
||||
return c.getPlayer().getQuest(MapleQuest.getInstance(id)).getStatus();
|
||||
}
|
||||
|
||||
public boolean isQuestCompleted(int id) {
|
||||
try {
|
||||
return getQuestStat(id) == MapleQuestStatus.Status.COMPLETED;
|
||||
return getQuestStat(id) == QuestStatus.Status.COMPLETED;
|
||||
} catch (NullPointerException e) {
|
||||
e.printStackTrace();
|
||||
return false;
|
||||
@@ -366,7 +366,7 @@ public class AbstractPlayerInteraction {
|
||||
|
||||
public boolean isQuestStarted(int id) {
|
||||
try {
|
||||
return getQuestStat(id) == MapleQuestStatus.Status.STARTED;
|
||||
return getQuestStat(id) == QuestStatus.Status.STARTED;
|
||||
} catch (NullPointerException e) {
|
||||
e.printStackTrace();
|
||||
return false;
|
||||
@@ -394,7 +394,7 @@ public class AbstractPlayerInteraction {
|
||||
}
|
||||
|
||||
public String getQuestProgress(int id, int infoNumber) {
|
||||
MapleQuestStatus qs = getPlayer().getQuest(MapleQuest.getInstance(id));
|
||||
QuestStatus qs = getPlayer().getQuest(MapleQuest.getInstance(id));
|
||||
|
||||
if (qs.getInfoNumber() == infoNumber && infoNumber > 0) {
|
||||
qs = getPlayer().getQuest(MapleQuest.getInstance(infoNumber));
|
||||
@@ -425,7 +425,7 @@ public class AbstractPlayerInteraction {
|
||||
}
|
||||
|
||||
public void resetAllQuestProgress(int id) {
|
||||
MapleQuestStatus qs = getPlayer().getQuest(MapleQuest.getInstance(id));
|
||||
QuestStatus qs = getPlayer().getQuest(MapleQuest.getInstance(id));
|
||||
if (qs != null) {
|
||||
qs.resetAllProgress();
|
||||
getPlayer().announceUpdateQuest(DelayedQuestUpdate.UPDATE, qs, false);
|
||||
@@ -433,7 +433,7 @@ public class AbstractPlayerInteraction {
|
||||
}
|
||||
|
||||
public void resetQuestProgress(int id, int infoNumber) {
|
||||
MapleQuestStatus qs = getPlayer().getQuest(MapleQuest.getInstance(id));
|
||||
QuestStatus qs = getPlayer().getQuest(MapleQuest.getInstance(id));
|
||||
if (qs != null) {
|
||||
qs.resetProgress(infoNumber);
|
||||
getPlayer().announceUpdateQuest(DelayedQuestUpdate.UPDATE, qs, false);
|
||||
|
||||
@@ -23,7 +23,7 @@ package scripting.map;
|
||||
|
||||
import client.Character.DelayedQuestUpdate;
|
||||
import client.Client;
|
||||
import client.MapleQuestStatus;
|
||||
import client.QuestStatus;
|
||||
import scripting.AbstractPlayerInteraction;
|
||||
import server.quest.MapleQuest;
|
||||
import tools.PacketCreator;
|
||||
@@ -122,7 +122,7 @@ public class MapScriptMethods extends AbstractPlayerInteraction {
|
||||
return;
|
||||
}
|
||||
}
|
||||
MapleQuestStatus qs = getPlayer().getQuest(quest);
|
||||
QuestStatus qs = getPlayer().getQuest(quest);
|
||||
if (!qs.addMedalMap(getPlayer().getMapId())) {
|
||||
return;
|
||||
}
|
||||
@@ -151,7 +151,7 @@ public class MapScriptMethods extends AbstractPlayerInteraction {
|
||||
return;
|
||||
}
|
||||
}
|
||||
MapleQuestStatus qs = getPlayer().getQuest(quest);
|
||||
QuestStatus qs = getPlayer().getQuest(quest);
|
||||
if (!qs.addMedalMap(getPlayer().getMapId())) {
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
package scripting.quest;
|
||||
|
||||
import client.Client;
|
||||
import client.MapleQuestStatus;
|
||||
import client.QuestStatus;
|
||||
import constants.game.GameConstants;
|
||||
import scripting.AbstractScriptManager;
|
||||
import server.quest.MapleQuest;
|
||||
@@ -110,7 +110,7 @@ public class QuestScriptManager extends AbstractScriptManager {
|
||||
|
||||
public void end(Client c, short questid, int npc) {
|
||||
MapleQuest quest = MapleQuest.getInstance(questid);
|
||||
if (!c.getPlayer().getQuest(quest).getStatus().equals(MapleQuestStatus.Status.STARTED) || !c.getPlayer().getMap().containsNPC(npc)) {
|
||||
if (!c.getPlayer().getQuest(quest).getStatus().equals(QuestStatus.Status.STARTED) || !c.getPlayer().getMap().containsNPC(npc)) {
|
||||
dispose(c);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -1383,7 +1383,7 @@ public class MapleMap {
|
||||
AutobanFactory.GENERAL.alert(chr, " for killing a " + monster.getName() + " which is over 30 levels higher.");
|
||||
}
|
||||
|
||||
/*if (chr.getQuest(MapleQuest.getInstance(29400)).getStatus().equals(MapleQuestStatus.Status.STARTED)) {
|
||||
/*if (chr.getQuest(MapleQuest.getInstance(29400)).getStatus().equals(QuestStatus.Status.STARTED)) {
|
||||
if (chr.getLevel() >= 120 && monster.getStats().getLevel() >= 120) {
|
||||
//FIX MEDAL SHET
|
||||
} else if (monster.getStats().getLevel() >= chr.getLevel()) {
|
||||
|
||||
@@ -22,8 +22,8 @@
|
||||
package server.quest;
|
||||
|
||||
import client.Character;
|
||||
import client.MapleQuestStatus;
|
||||
import client.MapleQuestStatus.Status;
|
||||
import client.QuestStatus;
|
||||
import client.QuestStatus.Status;
|
||||
import config.YamlConfig;
|
||||
import provider.MapleData;
|
||||
import provider.MapleDataProvider;
|
||||
@@ -203,12 +203,12 @@ public class MapleQuest {
|
||||
}
|
||||
|
||||
public boolean canStartQuestByStatus(Character chr) {
|
||||
MapleQuestStatus mqs = chr.getQuest(this);
|
||||
QuestStatus mqs = chr.getQuest(this);
|
||||
return !(!mqs.getStatus().equals(Status.NOT_STARTED) && !(mqs.getStatus().equals(Status.COMPLETED) && repeatable));
|
||||
}
|
||||
|
||||
public boolean canQuestByInfoProgress(Character chr) {
|
||||
MapleQuestStatus mqs = chr.getQuest(this);
|
||||
QuestStatus mqs = chr.getQuest(this);
|
||||
List<String> ix = mqs.getInfoEx();
|
||||
if (!ix.isEmpty()) {
|
||||
short questid = mqs.getQuestID();
|
||||
@@ -250,7 +250,7 @@ public class MapleQuest {
|
||||
}
|
||||
|
||||
public boolean canComplete(Character chr, Integer npcid) {
|
||||
MapleQuestStatus mqs = chr.getQuest(this);
|
||||
QuestStatus mqs = chr.getQuest(this);
|
||||
if (!mqs.getStatus().equals(Status.STARTED)) {
|
||||
return false;
|
||||
}
|
||||
@@ -306,7 +306,7 @@ public class MapleQuest {
|
||||
}
|
||||
|
||||
public void reset(Character chr) {
|
||||
MapleQuestStatus newStatus = new MapleQuestStatus(this, MapleQuestStatus.Status.NOT_STARTED);
|
||||
QuestStatus newStatus = new QuestStatus(this, QuestStatus.Status.NOT_STARTED);
|
||||
chr.updateQuestStatus(newStatus);
|
||||
}
|
||||
|
||||
@@ -317,16 +317,16 @@ public class MapleQuest {
|
||||
if (timeLimit > 0) {
|
||||
chr.sendPacket(PacketCreator.removeQuestTimeLimit(id));
|
||||
}
|
||||
MapleQuestStatus newStatus = new MapleQuestStatus(this, MapleQuestStatus.Status.NOT_STARTED);
|
||||
QuestStatus newStatus = new QuestStatus(this, QuestStatus.Status.NOT_STARTED);
|
||||
newStatus.setForfeited(chr.getQuest(this).getForfeited() + 1);
|
||||
chr.updateQuestStatus(newStatus);
|
||||
return true;
|
||||
}
|
||||
|
||||
public boolean forceStart(Character chr, int npc) {
|
||||
MapleQuestStatus newStatus = new MapleQuestStatus(this, MapleQuestStatus.Status.STARTED, npc);
|
||||
QuestStatus newStatus = new QuestStatus(this, QuestStatus.Status.STARTED, npc);
|
||||
|
||||
MapleQuestStatus oldStatus = chr.getQuest(this.getId());
|
||||
QuestStatus oldStatus = chr.getQuest(this.getId());
|
||||
for (Entry<Integer, String> e : oldStatus.getProgress().entrySet()) {
|
||||
newStatus.setProgress(e.getKey(), e.getValue());
|
||||
}
|
||||
@@ -364,7 +364,7 @@ public class MapleQuest {
|
||||
chr.sendPacket(PacketCreator.removeQuestTimeLimit(id));
|
||||
}
|
||||
|
||||
MapleQuestStatus newStatus = new MapleQuestStatus(this, MapleQuestStatus.Status.COMPLETED, npc);
|
||||
QuestStatus newStatus = new QuestStatus(this, QuestStatus.Status.COMPLETED, npc);
|
||||
newStatus.setForfeited(chr.getQuest(this).getForfeited());
|
||||
newStatus.setCompleted(chr.getQuest(this).getCompleted());
|
||||
newStatus.setCompletionTime(System.currentTimeMillis());
|
||||
@@ -581,7 +581,7 @@ public class MapleQuest {
|
||||
}
|
||||
|
||||
public boolean restoreLostItem(Character chr, int itemid) {
|
||||
if (chr.getQuest(this).getStatus().equals(MapleQuestStatus.Status.STARTED)) {
|
||||
if (chr.getQuest(this).getStatus().equals(QuestStatus.Status.STARTED)) {
|
||||
ItemAction itemAct = (ItemAction) startActs.get(MapleQuestActionType.ITEM);
|
||||
if (itemAct != null) {
|
||||
return itemAct.restoreLostItem(chr, itemid);
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
package server.quest.actions;
|
||||
|
||||
import client.Character;
|
||||
import client.MapleQuestStatus;
|
||||
import client.QuestStatus;
|
||||
import provider.MapleData;
|
||||
import provider.MapleDataTool;
|
||||
import server.quest.MapleQuest;
|
||||
@@ -49,7 +49,7 @@ public class NextQuestAction extends MapleQuestAction {
|
||||
|
||||
@Override
|
||||
public void run(Character chr, Integer extSelection) {
|
||||
MapleQuestStatus status = chr.getQuest(MapleQuest.getInstance(questID));
|
||||
QuestStatus status = chr.getQuest(MapleQuest.getInstance(questID));
|
||||
chr.sendPacket(PacketCreator.updateQuestFinish((short) questID, status.getNpc(), (short) nextQuest));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
package server.quest.actions;
|
||||
|
||||
import client.Character;
|
||||
import client.MapleQuestStatus;
|
||||
import client.QuestStatus;
|
||||
import constants.inventory.ItemConstants;
|
||||
import provider.MapleData;
|
||||
import provider.MapleDataTool;
|
||||
@@ -50,8 +50,8 @@ public class PetSkillAction extends MapleQuestAction {
|
||||
|
||||
@Override
|
||||
public boolean check(Character chr, Integer extSelection) {
|
||||
MapleQuestStatus status = chr.getQuest(MapleQuest.getInstance(questID));
|
||||
if(!(status.getStatus() == MapleQuestStatus.Status.NOT_STARTED && status.getForfeited() > 0))
|
||||
QuestStatus status = chr.getQuest(MapleQuest.getInstance(questID));
|
||||
if(!(status.getStatus() == QuestStatus.Status.NOT_STARTED && status.getForfeited() > 0))
|
||||
return false;
|
||||
|
||||
return chr.getPet(0) != null;
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
package server.quest.actions;
|
||||
|
||||
import client.Character;
|
||||
import client.MapleQuestStatus;
|
||||
import client.QuestStatus;
|
||||
import provider.MapleData;
|
||||
import provider.MapleDataTool;
|
||||
import server.quest.MapleQuest;
|
||||
@@ -59,7 +59,7 @@ public class QuestAction extends MapleQuestAction {
|
||||
public void run(Character chr, Integer extSelection) {
|
||||
for(Integer questID : quests.keySet()) {
|
||||
int stat = quests.get(questID);
|
||||
chr.updateQuestStatus(new MapleQuestStatus(MapleQuest.getInstance(questID), MapleQuestStatus.Status.getById(stat)));
|
||||
chr.updateQuestStatus(new QuestStatus(MapleQuest.getInstance(questID), QuestStatus.Status.getById(stat)));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
package server.quest.requirements;
|
||||
|
||||
import client.Character;
|
||||
import client.MapleQuestStatus;
|
||||
import client.QuestStatus;
|
||||
import provider.MapleData;
|
||||
import provider.MapleDataTool;
|
||||
import server.quest.MapleQuest;
|
||||
@@ -84,7 +84,7 @@ public class IntervalRequirement extends MapleQuestRequirement {
|
||||
|
||||
@Override
|
||||
public boolean check(Character chr, Integer npcid) {
|
||||
boolean check = !chr.getQuest(MapleQuest.getInstance(questID)).getStatus().equals(MapleQuestStatus.Status.COMPLETED);
|
||||
boolean check = !chr.getQuest(MapleQuest.getInstance(questID)).getStatus().equals(QuestStatus.Status.COMPLETED);
|
||||
boolean check2 = chr.getQuest(MapleQuest.getInstance(questID)).getCompletionTime() <= System.currentTimeMillis() - interval;
|
||||
|
||||
if (check || check2) {
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
package server.quest.requirements;
|
||||
|
||||
import client.Character;
|
||||
import client.MapleQuestStatus;
|
||||
import client.QuestStatus;
|
||||
import provider.MapleData;
|
||||
import provider.MapleDataTool;
|
||||
import server.quest.MapleQuest;
|
||||
@@ -62,7 +62,7 @@ public class MobRequirement extends MapleQuestRequirement {
|
||||
|
||||
@Override
|
||||
public boolean check(Character chr, Integer npcid) {
|
||||
MapleQuestStatus status = chr.getQuest(MapleQuest.getInstance(questID));
|
||||
QuestStatus status = chr.getQuest(MapleQuest.getInstance(questID));
|
||||
for(Integer mobID : mobs.keySet()) {
|
||||
int countReq = mobs.get(mobID);
|
||||
int progress;
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
package server.quest.requirements;
|
||||
|
||||
import client.Character;
|
||||
import client.MapleQuestStatus;
|
||||
import client.QuestStatus;
|
||||
import provider.MapleData;
|
||||
import provider.MapleDataTool;
|
||||
import server.quest.MapleQuest;
|
||||
@@ -58,12 +58,12 @@ public class QuestRequirement extends MapleQuestRequirement {
|
||||
public boolean check(Character chr, Integer npcid) {
|
||||
for(Integer questID : quests.keySet()) {
|
||||
int stateReq = quests.get(questID);
|
||||
MapleQuestStatus qs = chr.getQuest(MapleQuest.getInstance(questID));
|
||||
QuestStatus qs = chr.getQuest(MapleQuest.getInstance(questID));
|
||||
|
||||
if(qs == null && MapleQuestStatus.Status.getById(stateReq).equals(MapleQuestStatus.Status.NOT_STARTED))
|
||||
if(qs == null && QuestStatus.Status.getById(stateReq).equals(QuestStatus.Status.NOT_STARTED))
|
||||
continue;
|
||||
|
||||
if(qs == null || !qs.getStatus().equals(MapleQuestStatus.Status.getById(stateReq))) {
|
||||
if(qs == null || !qs.getStatus().equals(QuestStatus.Status.getById(stateReq))) {
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
@@ -310,29 +310,29 @@ public class PacketCreator {
|
||||
}
|
||||
|
||||
private static void addQuestInfo(OutPacket p, Character chr) {
|
||||
List<MapleQuestStatus> started = chr.getStartedQuests();
|
||||
List<QuestStatus> started = chr.getStartedQuests();
|
||||
int startedSize = 0;
|
||||
for (MapleQuestStatus qs : started) {
|
||||
for (QuestStatus qs : started) {
|
||||
if (qs.getInfoNumber() > 0) {
|
||||
startedSize++;
|
||||
}
|
||||
startedSize++;
|
||||
}
|
||||
p.writeShort(startedSize);
|
||||
for (MapleQuestStatus qs : started) {
|
||||
for (QuestStatus qs : started) {
|
||||
p.writeShort(qs.getQuest().getId());
|
||||
p.writeString(qs.getProgressData());
|
||||
|
||||
short infoNumber = qs.getInfoNumber();
|
||||
if (infoNumber > 0) {
|
||||
MapleQuestStatus iqs = chr.getQuest(infoNumber);
|
||||
QuestStatus iqs = chr.getQuest(infoNumber);
|
||||
p.writeShort(infoNumber);
|
||||
p.writeString(iqs.getProgressData());
|
||||
}
|
||||
}
|
||||
List<MapleQuestStatus> completed = chr.getCompletedQuests();
|
||||
List<QuestStatus> completed = chr.getCompletedQuests();
|
||||
p.writeShort(completed.size());
|
||||
for (MapleQuestStatus qs : completed) {
|
||||
for (QuestStatus qs : completed) {
|
||||
p.writeShort(qs.getQuest().getId());
|
||||
p.writeLong(getTime(qs.getCompletionTime()));
|
||||
}
|
||||
@@ -2738,8 +2738,8 @@ public class PacketCreator {
|
||||
p.writeInt(0);
|
||||
}
|
||||
ArrayList<Short> medalQuests = new ArrayList<>();
|
||||
List<MapleQuestStatus> completed = chr.getCompletedQuests();
|
||||
for (MapleQuestStatus qs : completed) {
|
||||
List<QuestStatus> completed = chr.getCompletedQuests();
|
||||
for (QuestStatus qs : completed) {
|
||||
if (qs.getQuest().getId() >= 29000) { // && q.getQuest().getId() <= 29923
|
||||
medalQuests.add(qs.getQuest().getId());
|
||||
}
|
||||
@@ -2878,11 +2878,11 @@ public class PacketCreator {
|
||||
return p;
|
||||
}
|
||||
|
||||
public static Packet updateQuest(Character chr, MapleQuestStatus qs, boolean infoUpdate) {
|
||||
public static Packet updateQuest(Character chr, QuestStatus qs, boolean infoUpdate) {
|
||||
final OutPacket p = OutPacket.create(SendOpcode.SHOW_STATUS_INFO);
|
||||
p.writeByte(1);
|
||||
if (infoUpdate) {
|
||||
MapleQuestStatus iqs = chr.getQuest(qs.getInfoNumber());
|
||||
QuestStatus iqs = chr.getQuest(qs.getInfoNumber());
|
||||
p.writeShort(iqs.getQuestID());
|
||||
p.writeByte(1);
|
||||
p.writeString(iqs.getProgressData());
|
||||
|
||||
Reference in New Issue
Block a user