23 package com.realtime.crossfire.jxclient.quests;
29 import java.util.ArrayList;
30 import java.util.Collections;
31 import java.util.Comparator;
32 import java.util.List;
33 import java.util.concurrent.CopyOnWriteArrayList;
34 import org.jetbrains.annotations.NotNull;
35 import org.jetbrains.annotations.Nullable;
47 private final List<Quest>
quests =
new CopyOnWriteArrayList<>();
68 @SuppressWarnings(
"FieldCanBeLocal")
77 public void metaserver() {
82 public void preConnecting(@NotNull
final String serverInfo) {
87 public void connecting(@NotNull
final String serverInfo) {
92 public void connecting(@NotNull
final ClientSocketState clientSocketState, @NotNull
final String param) {
97 public void connected() {
102 public void connectFailed(@NotNull
final String reason) {
143 public void addQuest(
final int code, @NotNull
final String title,
final int face,
final boolean replay,
final int parent,
final boolean end, @NotNull
final String description) {
144 final Quest key =
new Quest(code, title, face, replay, parent, end, description);
152 quest.
setStep(end, description);
156 listener.questChanged(index);
166 public void updateQuest(
final int code,
final boolean end, @NotNull
final String step) {
167 for (
int index = 0; index <
quests.size(); index++) {
172 listener.questChanged(index);
194 return 0 <= index && index <
quests.size() ?
quests.get(index) :
null;
200 if (quest.getCode() == code) {
214 if (quest.getFace() == faceNum) {
234 return new ArrayList<>(
quests);