- Баллы
- 6
- Имя в Minecraft
- RIPEX_RU
Создаю плагин для своего сервера, суть плагина в том что если игрок находится под дождем, то он получает урон и эффекты. И сначала все работало, но я решил добавить шлем, который будет защищать от дождя (Пока что наоборот, урон проходит только в нем, но это для теста). Проблема в том, что урон проходит только если первый игрок зашедший на сервер одевает шлем, а второй уже как будто зависит от него. То есть если первый игрок наденет шлем, тогда будет идти проверка на второго игрока. Если же у первого игрока шлема нет, проверка по второму не проходит. Однако если убрать фишку с защитой то сам дождь будет дамажить всех игроков по отдельности. То есть проблема появилась только с добавлением этого шлема. Буду рад помощи, так как я впервые занимаюсь написанием плагинов. Заранее спасибо)
Код:
public void run() {
if(w.hasStorm() == true) {
boolean bool = false;
double maxHeight = w.getMaxHeight();
for(Player player: Bukkit.getOnlinePlayers()) {
ItemStack curHelm = player.getEquipment().getHelmet();
double x = player.getLocation().getX();
double z = player.getLocation().getZ();
double blockUp = player.getLocation().getY() + 2;
double difference = maxHeight - blockUp;
World w = player.getWorld();
for (int i2 =0; i2<difference; i2++) {
Location l;
Block b = w.getBlockAt(l = new Location (w, x, blockUp + i2, z));
if (b.getType().isAir()) {
bool = false;
}
else {
bool = true;
break;
}
}
if (bool == false && curHelm.getItemMeta().getLore().equals(helmet.getItemMeta().getLore())) {
player.sendMessage(player.getName());
player.sendMessage(String.valueOf(x));
player.sendMessage(String.valueOf(curHelm));
player.sendMessage("Урон");
player.damage(2);
player.addPotionEffect(poison);
player.addPotionEffect(blind);
}
}
}
}