- Баллы
- 66
- Имя в Minecraft
- xflyiwnl
И так, у меня есть HashMap, в котором записываю все нужные мне данные.
И получаю нужные мне данные через:
И теперь мне надо проверить, есть ли такой ключ в HashMap:
Захожу на сервер, игрок добавляется в хэшмап и всё правильно.
И я для примера выдам игроку 500 заработанных монет:
Монеты выдаются и всё отображается правильно.
НО проблема в том, что после перезахода игрока все данные сбрасываются и игрок записывается в хэшмап заново. Может я проверяю на наличие игрока в хэшмапе неправильно?
Все классы:
EconomyManager:
EventManager:
Economy:
Код:
private static HashMap<Player, Economy> economies = new HashMap<Player, Economy>();
И получаю нужные мне данные через:
Код:
public static Economy getEconomy(Player player) {
return economies.get(player);
}
public static HashMap<Player, Economy> getEconomies() {
return economies;
}
И теперь мне надо проверить, есть ли такой ключ в HashMap:
Код:
@EventHandler
public void onJoin(PlayerJoinEvent event) {
Player player = event.getPlayer();
if (!EconomyManager.getEconomies().containsKey(player)) {
Economy economy = new Economy(player, 0);
EconomyManager.getEconomies().put(player, economy);
}
}
Захожу на сервер, игрок добавляется в хэшмап и всё правильно.
И я для примера выдам игроку 500 заработанных монет:
Код:
if (args[0].equalsIgnoreCase("set")) {
EconomyManager.getEconomy(player).setEarned(Integer.valueOf(args[1]));
return true;
}
Монеты выдаются и всё отображается правильно.
НО проблема в том, что после перезахода игрока все данные сбрасываются и игрок записывается в хэшмап заново. Может я проверяю на наличие игрока в хэшмапе неправильно?
Все классы:
EconomyManager:
Код:
public class EconomyManager {
private static HashMap<Player, Economy> economies = new HashMap<Player, Economy>();
public static Economy getEconomy(Player player) {
return economies.get(player);
}
public static HashMap<Player, Economy> getEconomies() {
return economies;
}
}
EventManager:
Код:
public class EventManager implements Listener {
@EventHandler
public void onJoin(PlayerJoinEvent event) {
Player player = event.getPlayer();
if (!EconomyManager.getEconomies().containsKey(player)) {
Economy economy = new Economy(player, 0);
EconomyManager.getEconomies().put(player, economy);
}
}
}
Economy:
Код:
public class Economy {
private Player player;
private Integer earned;
public Economy(Player player, Integer earned) {
this.player = player;
this.earned = earned;
}
public Player getPlayer() {
return player;
}
public Integer getEarned() {
return earned;
}
public void setEarned(Integer earned) {
this.earned = earned;
}
}