Jump to content

Recommended Posts

Posted (edited)

Moin,

Ich habe auch mal wieder Zeit und Lust gefunden Minecraft zu spielen. Nun sitze ich wieder an meinem KitPvP Plugin.

Ein Bogen soll mehrere verschieden Projectile verschießen. Diese sollen wählbar sein , mit der Linken Maustaste. Funktioniert eigentlich auch gut. Nur funktioniert die Spezialfunktion(GiftPfeil, Verwirrungspfeil, Flammenpfeil) nicht,

Hier ist der Kot XD

http://pastebin.com/Vks4hEQH

nun zur Frage:

Ist der "Damager" der Pfeil oder der Spieler, der den verschossen hat?

Ist Entity, die Person, die den Pfeil abbekommen hat, oder der Pfeil? Da ein Pfeil ja auch eine Entity ist

Ich hab es hinbekommen. Und da ich weiß, dass daran bestimmt andere auch verw?zweifeln. Hier meine Lösung:

if (e.getEntityType() == EntityType.ARROW) {

Muss so heißen:

if (e.getDamager().getType() == EntityType.ARROW) {

Und das Abfragen der Metadata darf nicht über folgendes gemacht werden:

if (e.getDamager().getMetadata("GiftPfeil") != null) {

Sondern so:

if (e.getDamager().hasMetadata("GiftPfeil")) {

Da dadurch ein Boolean abgefragt wird. Nehmt als Referenz hierzu bitte meinen Code von Pastebin

Edited by 615Power
Posted

Damager => Pfeil

Entity => Getroffener

Damager.getShooter() (Nach instanceOf-Check mit Arrow und Cast dahin) => Spieler der geschossen hat

Posted

Ja, wie bereits gesagt, Hab ichs schon hin bekommen. Hab da aber noch eine Frage. Beim DeathEven muss ich viele Werte speichern, was zu Lags führt. Wie kann ich das Async laufen lassen?

Posted (edited)

Bukkit.getScheduler().runTaskAsync(this, new Runnable() {

@Override

public void run() {

// ...

}

});

Edited by boomer41

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...
B
B