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);
}
}