publicclassDamageEvent implements Listener{@EventHandlerpublicvoid playerDamage(EntityDamageByEntityEvent e){Player p =(Player) e.getEntity();String pn = p.getName();String tag1 =(String)Main.mysql.getRecord("players","tag","`pl` = '"+ pn +"'");if(e.getDamager() instanceof Player){Player d =(Player) e.getDamager();String dn = d.getName();String tag2 =(String)Main.mysql.getRecord("players","tag","`pl` = '"+ dn +"'");if(tag1.equalsIgnoreCase(tag2)){
e.setCancelled(true);
d.sendMessage(ChatColor.RED +"Czlonkowie klanu nie moga ze soba walczyc!");}else{}}else{}}}
Jak widać kod pobiera wartości z bazy danych i jeśli są identyczne ma blokować zadawanie obrażeń. Problem w tym że jeśli obrażenia zadane są łukiem bądź potką to obiekt Damager nie jest graczem tylko Entity. I zastanawiam się jak w takiej sytuacji to rozwiązać.
Pytanie
Arczi98 1
Witam.
Potrzebuję zablokować obrażenia zadawane z łuku.
Mam taki kod:
Jak widać kod pobiera wartości z bazy danych i jeśli są identyczne ma blokować zadawanie obrażeń. Problem w tym że jeśli obrażenia zadane są łukiem bądź potką to obiekt Damager nie jest graczem tylko Entity. I zastanawiam się jak w takiej sytuacji to rozwiązać.
Odnośnik do komentarza
https://skript.pl/temat/22389-entitydamagebyentityevent-i-obra%C5%BCenia-z-%C5%82uku/Udostępnij na innych stronach
16 odpowiedzi na to pytanie
Rekomendowane odpowiedzi