Вопрос HashMap и null ошибка

RpAhmed

Пользователь
Сообщения
17
Проблема в том, что метод getBalance(); выдает null ошибку без предварительной инициализации на игроке.
Java:
public static HashMap<Player, Double> balance = new HashMap<>();

public static void setBalance(Player player, double amount)
{
    balance.put(player, amount);
}

public static double getBalance(Player player)
{
    return balance.get(player);
}

Java:
@EventHandler
public void onBreakBlock(BlockBreakEvent e)
{
    Player ply = e.getPlayer();
    Block block = e.getBlock();
    double plyBalance = main.getBalance(ply);

    if (block.getType().equals(Material.GOLD_ORE))
    {
        main.setBalance(ply, main.getBalance(ply) + 1);
        ply.playSound(ply.getLocation(), Sound.ITEM_TRIDENT_HIT, 1.0f, 1.0f);
        ply.sendMessage("§6 Balance: " + plyBalance);
    }
}
Я пробовал конструкции по типу:
Java:
if (plyBalance == null) { plyBalance = 0; } // null err
if (plyBalance != 0) { plyBalance = 0; } // null err
Можно конечно-же сделать вот так, но мне необходимо найти решение в рамках ивента.
Java:
private void loadBalance()
{
    for (Player ply : getServer().getOnlinePlayers())
    {
        balance.put(ply, 1d);
    }
}
 
Назад
Сверху Снизу