У меня есть хэш-карта типа HashMap <UUID,ArrayList<util.Package>>
.Хэш-карта работает нормально, но ArrayList не хранит.Я могу добавить к нему элементы, но они там не сохраняются.
util.Package - это тип enum с парой Enums внутри.
Я пробовал разные способы добавления (Straight thruкарта: hashMapName.get(uuid).add(util.Package.TYPE)
, и, получив объект, удалив его с карты, добавив к нему, а затем вернув его обратно.) Ни один из них не сработал.
событие присоединения: loadAndCoins.newPlayer(e.getPlayer().getUniqueId());
loadAndCoins.newPlayer ():
public static boolean newPlayer(UUID uuid) {
if (!balances.containsKey(uuid)) {
balances.put(uuid, 0);
experience.put(uuid,
GameStats.createNewPlayer(uuid);
Packages.newPlayer(uuid); // this is the line that creates
return true;
}
return false;
}
Packages.newPlayer ():
public static void newPlayer(UUID uuid) {
ArrayList<util.Package> n = new ArrayList<util.Package>();
n.add(util.Package.JMSG_DEFAULT);
System.out.println("NEW: " + n); // debug, has JMSG_DEFAULT
Packs.put(uuid, n);
}
Пакеты.addPackage (): (Добавить пакет в uuid)
public static boolean addPackage(UUID uuid,util.Package pack) {
if (!Packs.containsKey(uuid)) return false;
if (!Packs.get(uuid).contains(pack)) {
ArrayList<util.Package> op = Packs.get(uuid);
op.add(pack);
Packs.remove(uuid);
Packs.put(uuid, op);
System.out.println("ADDPACKAGE: " + op);
// has DEFAULT and the added package
return true;
} return false;
}
Packages.hasPackage (): (Используется для проверки наличия пакета в uuid)
public static boolean hasPackage(UUID uuid,util.Package pack) {
if (!Packs.containsKey(uuid)) return false;
System.out.println(Packs.toString()); //has only DEFAULT.
if(Packs.get(uuid).contains(pack)) return true;
return false;
}
Ожидается: сначалавызов addPackage (uuid, Package.JMSG_FESTIVE), затем вызов hasPackage (uuid, Package.JMSG_FESTIVE) вернет true.Фактически: возвращается false.Возвращение отладочных отпечатков комментируется, поэтому их легко понять.
Содержимое util.Package:
package util;
public enum Package {
LUCK_1,LUCK_2,LUCK_3,LUCK_4,LUCK_5,SPEED_1,SPEED_2,SPEED_3,SPEED_4,SPEED_5,J
MSG_DEFAULT, JMSG_COMPUTERSPEAK, JMSG_RAINBOW, JMSG_ROYALTY,
JMSG_FESTIVE,SHOVEL_STONE,SHOVEL_IRON,SHOVEL_GOLD,
}