• Es freut uns dass du in unser Minecraft Forum gefunden hast. Hier kannst du mit über 130.000 Minecraft Fans über Minecraft diskutieren, Fragen stellen und anderen helfen. In diesem Minecraft Forum kannst du auch nach Teammitgliedern, Administratoren, Moderatoren , Supporter oder Sponsoren suchen. Gerne kannst du im Offtopic Bereich unseres Minecraft Forums auch über nicht Minecraft spezifische Themen reden. Wir hoffen dir gefällt es in unserem Minecraft Forum!

Spigot Spieler erkennen, der eine Explosion veranlasst hat

iTzCeddy

Redstoneengineer
Registriert
31 Mai 2015
Beiträge
30
Diamanten
302
Minecraft
iTzCeddy
Hey zusammen,

programmiere derzeit an einem RageMode-Plugin und bin nun bei einem Problem angekommen. Und zwar gibt es dort ja einen Bogen, dessen abgeschossender Pfeil eine Explosion an der Einschlagsstelle des Pfeils erzeugt, wenn er keinen Spieler trifft.
Soweit so gut.
Wenn aber nun ein Spieler durch diese Explosion stirbt, möchte ich gerne den Spieler, der den Pfeil abgeschossen hat, als Killer bekommen.
Wenn ich die Explosion nun mit World#createExplosion erstelle, kann ich dem ja leider keine Metadata setzen.
Wenn ich die Explosion über PrimedTNT (Also quasi so: TNTPrimed tnt = e.getEntity().getWorld().spawn(e.getEntity().getLocation(), TNTPrimed.class); ) lösen würde, wäre das Problem zwar gelöst, aber das TNT ist trotzdem kurz sichtbar und das möchte ich nicht, auch wenn ich die FuseTicks auf 0 setze. Gibt es vielleicht dort eine Möglichkeit, das TNT vollständig unsichtbar zu machen?
Oder hat jemand noch eine ganz andere Idee?

Mit HashMaps möchte ich das ganze nur ungerne lösen..

Viele Grüße
Ceddy
 

iTzCeddy

Redstoneengineer
Registriert
31 Mai 2015
Beiträge
30
Diamanten
302
Minecraft
iTzCeddy
Hey,

vielen Dank! Das konnte mir helfen!

Habs letztendlich so gelöst:
Code:
((CraftWorld) e.getEntity().getWorld()).getHandle().createExplosion(((CraftPlayer) e.getEntity().getShooter()).getHandle(), e.getEntity().getLocation().getX(), e.getEntity().getLocation().getY(), e.getEntity().getLocation().getZ(), 2.0F, false, false);
 
Oben