sweetgum83/src/main/java/net/server/channel/handlers/RaiseUIStateHandler.java
2024-01-19 03:56:28 -05:00

40 lines
1.3 KiB
Java

package net.server.channel.handlers;
import client.Character;
import client.Character.DelayedQuestUpdate;
import client.Client;
import client.QuestStatus;
import net.AbstractPacketHandler;
import net.packet.InPacket;
import scripting.quest.QuestScriptManager;
import server.quest.Quest;
/**
* @author Xari
*/
public class RaiseUIStateHandler extends AbstractPacketHandler {
@Override
public final void handlePacket(InPacket p, Client c) {
int infoNumber = p.readShort();
if (c.tryacquireClient()) {
try {
Character chr = c.getPlayer();
Quest quest = Quest.getInstanceFromInfoNumber(infoNumber);
QuestStatus mqs = chr.getQuest(quest);
QuestScriptManager.getInstance().raiseOpen(c, (short) infoNumber, mqs.getNpc());
if (mqs.getStatus() == QuestStatus.Status.NOT_STARTED) {
quest.forceStart(chr, 22000);
c.getAbstractPlayerInteraction().setQuestProgress(quest.getId(), infoNumber, 0);
} else if (mqs.getStatus() == QuestStatus.Status.STARTED) {
chr.announceUpdateQuest(DelayedQuestUpdate.UPDATE, mqs, mqs.getInfoNumber() > 0);
}
} finally {
c.releaseClient();
}
}
}
}