Refactor game server managers to systems

This commit is contained in:
Melledy
2022-07-18 22:47:38 -07:00
parent d20e9d1f72
commit 2e19e70fe1
63 changed files with 254 additions and 264 deletions

View File

@@ -58,7 +58,7 @@ public class GameQuest {
this.mainQuest.getChildQuests().put(this.questId, this);
this.getData().getBeginExec().forEach(e -> getOwner().getServer().getQuestHandler().triggerExec(this, e, e.getParam()));
this.getData().getBeginExec().forEach(e -> getOwner().getServer().getQuestSystem().triggerExec(this, e, e.getParam()));
this.getOwner().getQuestManager().triggerEvent(QuestTrigger.QUEST_CONTENT_QUEST_STATE_EQUAL, this.questId, this.state.getValue());
@@ -171,7 +171,7 @@ public class GameQuest {
this.save();
}
this.getData().getFinishExec().forEach(e -> getOwner().getServer().getQuestHandler().triggerExec(this, e, e.getParam()));
this.getData().getFinishExec().forEach(e -> getOwner().getServer().getQuestSystem().triggerExec(this, e, e.getParam()));
this.getOwner().getQuestManager().triggerEvent(QuestTrigger.QUEST_CONTENT_QUEST_STATE_EQUAL, this.questId, this.state.getValue());
@@ -205,7 +205,7 @@ public class GameQuest {
// TODO
for (int i = 0; i < questData.getAcceptCond().size(); i++) {
QuestCondition condition = questData.getAcceptCond().get(i);
boolean result = getOwner().getServer().getQuestHandler().triggerCondition(this, condition,
boolean result = getOwner().getServer().getQuestSystem().triggerCondition(this, condition,
condition.getParamStr(),
condition.getParam());

View File

@@ -153,7 +153,7 @@ public class QuestManager extends BasePlayerManager {
continue;
}
boolean result = getPlayer().getServer().getQuestHandler().triggerContent(quest, condition, paramStr, params);
boolean result = getPlayer().getServer().getQuestSystem().triggerContent(quest, condition, paramStr, params);
if (result) {
quest.getFinishProgressList()[i] = 1;

View File

@@ -4,6 +4,9 @@ import java.util.Set;
import emu.grasscutter.data.excels.QuestData;
import emu.grasscutter.game.quest.handlers.QuestExecHandler;
import emu.grasscutter.server.game.BaseGameSystem;
import emu.grasscutter.server.game.GameServer;
import org.reflections.Reflections;
import emu.grasscutter.Grasscutter;
@@ -13,12 +16,14 @@ import it.unimi.dsi.fastutil.ints.Int2ObjectMap;
import it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap;
@SuppressWarnings("unchecked")
public class ServerQuestHandler {
public class QuestSystem extends BaseGameSystem {
private final Int2ObjectMap<QuestBaseHandler> condHandlers;
private final Int2ObjectMap<QuestBaseHandler> contHandlers;
private final Int2ObjectMap<QuestExecHandler> execHandlers;
public ServerQuestHandler() {
public QuestSystem(GameServer server) {
super(server);
this.condHandlers = new Int2ObjectOpenHashMap<>();
this.contHandlers = new Int2ObjectOpenHashMap<>();
this.execHandlers = new Int2ObjectOpenHashMap<>();