23 package com.realtime.crossfire.jxclient.spells;
32 import java.util.ArrayList;
33 import java.util.Collection;
34 import java.util.Collections;
35 import java.util.Comparator;
36 import java.util.HashMap;
37 import java.util.List;
39 import java.util.concurrent.CopyOnWriteArrayList;
40 import java.util.stream.Collectors;
41 import org.jetbrains.annotations.NotNull;
42 import org.jetbrains.annotations.Nullable;
71 private final List<Spell>
spells =
new CopyOnWriteArrayList<>();
111 @SuppressWarnings(
"FieldCanBeLocal")
115 public void start() {
120 public void metaserver() {
125 public void preConnecting(@NotNull
final String serverInfo) {
130 public void connecting(@NotNull
final String serverInfo) {
137 public void connecting(@NotNull
final ClientSocketState clientSocketState, @NotNull
final String param) {
142 public void connected() {
147 public void connectFailed(@NotNull
final String reason) {
216 public void addSpell(
final int tag,
final int level,
final int castingTime,
final int mana,
final int grace,
final int damage,
final int skill,
final int path,
final int faceNum, @NotNull
final String spellName, @NotNull
final String message) {
218 key.
setParameters(faceNum, tag, message, level, castingTime, mana, grace, damage, skill, path);
223 final Spell existingSpell;
227 if (existingSpell ==
null) {
230 spell = existingSpell;
231 spell.
setParameters(faceNum, tag, message, level, castingTime, mana, grace, damage, skill, path);
236 spell =
spells.get(index);
237 spell.
setParameters(faceNum, tag, message, level, castingTime, mana, grace, damage, skill, path);
244 listener.spellAdded(index);
256 public void updateSpell(
final int flags,
final int tag,
final int mana,
final int grace,
final int damage) {
258 if (spell.getTag() == tag) {
272 if (spell.getTag() == tag) {
293 listener.spellRemoved(index);
309 if (spell.getName().equals(spellName)) {
316 if (spell.getName().startsWith(spellName)) {
318 if (result !=
null) {
365 }
catch (
final IndexOutOfBoundsException ignored) {
377 if (spell.getFaceNum() == faceNum) {
412 listener.spellAdded(0);
431 if (skill !=
null && !
spellSkills.contains(skill)) {