Здравствуйте, я беру значения из MySQL и сохраняю в Map, но возвращает null при попытки получить значение.
Вот код:
private static Map<Player, Map<String, Integer>> cache = new HashMap<>();
public static void cache(Player player) {
Bukkit.getScheduler().runTaskAsynchronously(Jumper.getPlugin(Jumper.class), () -> {
Connection connection = Jumper.connection;
PreparedStatement statement;
try {
statement = connection.prepareStatement("SELECT * FROM players WHERE nickname = ?");
statement.setString(1, player.getName());
ResultSet rs = statement.executeQuery();
Map<String, Integer> map = new HashMap<>();
while (rs.next()) {
if(cache.get(player) != null) {
map.replace("level", rs.getInt("level"));
map.replace("xp", rs.getInt("xp"));
map.replace("balance", rs.getInt("balance"));
map.replace("rebirths", rs.getInt("rebirths"));
map.replace("bLevel", rs.getInt("bLevel"));
} else {
map.put("level", rs.getInt("level"));
map.put("xp", rs.getInt("xp"));
map.put("balance", rs.getInt("balance"));
map.put("rebirths", rs.getInt("rebirths"));
map.put("bLevel", rs.getInt("bLevel"));
}
}
cache.put(player, map);
} catch (SQLException e) {
e.printStackTrace();
}
});
}
public static Integer getLevel(Player player) throws SQLException {
return cache.get(player).get("level");
}
Как это можно исправить?