- Баллы
- 173
- Имя в Minecraft
- Blayzer
Не работают методы OnPlayerRespawn и OnWorldChange на ядре KCauldron.
Есть плагин, которые добавляет экстра-сердца. Чтобы они отображались после респауна или смены мира, я сделал исполнение функции при OnPlayerRespawn и OnWorldChange, но оно не работает. На чистом Spigot и Bukkit работает. Возможно эти методы работают по другому на этом ядре... или какой то костыль можно сделать. Мне нужно использовать именно это ядро :c
Вот кусок кода:
Есть плагин, которые добавляет экстра-сердца. Чтобы они отображались после респауна или смены мира, я сделал исполнение функции при OnPlayerRespawn и OnWorldChange, но оно не работает. На чистом Spigot и Bukkit работает. Возможно эти методы работают по другому на этом ядре... или какой то костыль можно сделать. Мне нужно использовать именно это ядро :c
Вот кусок кода:
Код:
@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"));
}
}
}
}