Blitze und Spielernähe [BukkitAPI]

Cookienation

Mitglied
Ich habe 2 Fragen:
1. Wie bekomm' ich es hin, dass bei einem Blitzeinschlag kein Feuer kommt und kein Spieler Schaden bekommt? Versuch im EntityDamageByEntityEvent:

Code:
if (e.getDamager().getType() == EntityType.LIGHTNING) {
                e.setCancelled(true);
                return;
            }

2. Wie frage ich ab,(ohne playerMoveEvent) ob ein Spieler sich in der Nähe eines anderen befindet?

Danke im Voraus
Cookienation
 

Henne079

Aktives Mitglied
Zu 1.
Es ist möglich bei jedem Blitzeinschlag die Koordinaten auszugeben. Dadurch ist es möglich das Feuer zu löschen.
Du kannst aber auch ein BlockChangeEvent nutzen.

Zu 2.
Du kannst die Positionen jedes Spieler ausgeben lassen. Damit kannst du prüfen ob jemand in der nähe ist.
 

GentleXD

Aktives Mitglied
Antwort zu 2: Das müsste mit .distance gehen wenn du zwei Locations vergleichst dann kannst du alle Spieler in einer for Schleife durchgehen und vergleichen!
 

Cookienation

Mitglied
Habe die Lösung zu 1: Es gibt eine Methode mit lightningEffect.
Auch zu 2:
Code:
for (Entity e : p.getNearbyEntities(30, 30, 30)) {
                                if (e instanceof Player) {
                                    if (!(cfg.getString(p.getName()).equals(cfg.getString(e.getName())))) {
                                        NichtKicken = true;
                                    } else
                                        NichtKicken = false;
                                }
                            }
 

Neue Themen


Oben