mirror of
https://github.com/Grasscutters/Grasscutter.git
synced 2026-05-17 12:22:34 +08:00
Fix talking not progressing quests & Add talk execution handlers
This commit is contained in:
@@ -0,0 +1,27 @@
|
||||
package emu.grasscutter.game.talk.exec;
|
||||
|
||||
import emu.grasscutter.data.excels.TalkConfigData;
|
||||
import emu.grasscutter.data.excels.TalkConfigData.TalkExecParam;
|
||||
import emu.grasscutter.game.player.Player;
|
||||
import emu.grasscutter.game.quest.GameMainQuest;
|
||||
import emu.grasscutter.game.talk.TalkExec;
|
||||
import emu.grasscutter.game.talk.TalkExecHandler;
|
||||
import emu.grasscutter.game.talk.TalkValueExec;
|
||||
|
||||
@TalkValueExec(TalkExec.TALK_EXEC_SET_QUEST_VAR)
|
||||
public final class ExecSetQuestVar extends TalkExecHandler {
|
||||
@Override
|
||||
public void execute(Player player, TalkConfigData talkData, TalkExecParam execParam) {
|
||||
if (execParam.getParam().length < 3) return;
|
||||
|
||||
var mainQuest = player.getQuestManager().getMainQuestById(
|
||||
Integer.parseInt(execParam.getParam()[2])
|
||||
);
|
||||
if (mainQuest == null) return;
|
||||
|
||||
mainQuest.setQuestVar(
|
||||
Integer.parseInt(execParam.getParam()[0]),
|
||||
Integer.parseInt(execParam.getParam()[1])
|
||||
);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user