1 package com.realtime.crossfire.jxclient.knowledge;
7 import java.util.ArrayList;
8 import java.util.Collection;
9 import java.util.Comparator;
10 import java.util.List;
11 import java.util.stream.Collectors;
12 import org.jetbrains.annotations.NotNull;
13 import org.jetbrains.annotations.Nullable;
25 private static final Comparator<KnowledgeItem>
KNOWLEDGE_COMPARATOR = (o1, o2) -> o1.getKnowledgeTitle().compareToIgnoreCase(o2.getKnowledgeTitle());
35 private final List<String>
types =
new ArrayList<>();
38 private final List<String>
names =
new ArrayList<>();
41 private final List<Integer>
faces =
new ArrayList<>();
44 private final List<Boolean>
attempt =
new ArrayList<>();
47 private final Collection<KnowledgeItem>
items =
new ArrayList<>();
60 @SuppressWarnings(
"FieldCanBeLocal")
69 public void metaserver() {
74 public void preConnecting(@NotNull
final String serverInfo) {
79 public void connecting(@NotNull
final String serverInfo) {
89 public void connecting(@NotNull
final ClientSocketState clientSocketState, @NotNull
final String param) {
94 public void connected() {
99 public void connectFailed(@NotNull
final String reason) {
125 public void addKnowledgeType(@NotNull
final String type, @NotNull
final String name,
final int face,
final boolean canAttempt) {
127 if (type.isEmpty()) {
128 names.add(
"All types");
135 listener.typeAdded(0);
152 if (index < 0 || index >=
faces.size()) {
155 return names.get(index);
159 if (index < 0 || index >=
faces.size()) {
162 return faces.get(index);
166 for (
int i = 0; i <
types.size(); i++) {
167 if (type.equals(
types.get(i))) {
175 public void addKnowledge(
final int index, @NotNull
final String type, @NotNull
final String title,
final int face) {
179 listener.knowledgeAdded(0);
196 }
catch (
final IndexOutOfBoundsException ignored) {
202 if (index < 0 || index >=
types.size()) {
206 final String filter =
types.get(index);
216 listener.knowledgeAdded(0);