- Баллы
- 173
- Имя в Minecraft
- Blayzer
OnPlayerRespawn и OnWorldChange не работают на ядре KCauldron, на Bukkit все в порядке. Экстра сердца не хотят показыватся, я думаю что именно эти методы не работают. Кто нибудь сталкивался с таким?
Часть кода:
Часть кода:
Код:
@EventHandler (priority = EventPriority.MONITOR)
public void onWorldChange(PlayerChangedWorldEvent e) {
Player player = e.getPlayer();
scaleHealth(player);
}
@EventHandler (priority = EventPriority.MONITOR)
public void onPlayerRespawn(PlayerRespawnEvent e) {
Player player = e.getPlayer();
scaleHealth(player);
}
@EventHandler (priority = EventPriority.MONITOR)
private void scaleHealth(Player player) {
ArrayList<String> hpList = new ArrayList<>(plugin.getConfig().getStringList("hp"));
if (!hpList.get(0).equals("none")) {
for (String hp : hpList) {
int levelCompare = Integer.parseInt(hp.split(" ")[0] )- 1;
int hpAmount = Integer.parseInt(hp.split(" ")[1]);
int lvl = player.getLevel();
int maxHP;
int getHpUp = hpAmount-20;
if (lvl == levelCompare && lvl > 0) {
maxHP = hpAmount;
player.setMaxHealth(maxHP);
// Пишем в чат, когда добавляются дополнительные сердца
if (plugin.getConfig().getBoolean("messages.msghpup") != false) {
player.sendMessage(ChatColor.GREEN + plugin.getConfig().getString("messages.prefix") + ChatColor.WHITE + plugin.getConfig().getString("messages.hpup") + getHpUp + "!");
}
return;
}
}
// Пишем в чат, когда получаем максимальное количество сердец
if (player.getLevel() > 0) {
if (plugin.getConfig().getBoolean("messages.msgmaxhp") != false) {
player.sendMessage(ChatColor.GREEN + plugin.getConfig().getString("messages.prefix") + ChatColor.WHITE + plugin.getConfig().getString("messages.maxhp"));
}
}
}
}