615Power Geschrieben 15. Juli 2015 Share Geschrieben 15. Juli 2015 (bearbeitet) 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 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 bearbeitet 15. Juli 2015 von 615Power Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
boomer41 Geschrieben 15. Juli 2015 Share Geschrieben 15. Juli 2015 Damager => Pfeil Entity => Getroffener Damager.getShooter() (Nach instanceOf-Check mit Arrow und Cast dahin) => Spieler der geschossen hat Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
615Power Geschrieben 15. Juli 2015 Autor Share Geschrieben 15. Juli 2015 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? Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
boomer41 Geschrieben 17. Juli 2015 Share Geschrieben 17. Juli 2015 (bearbeitet) Bukkit.getScheduler().runTaskAsync(this, new Runnable() { @Override public void run() { // ... } }); bearbeitet 17. Juli 2015 von boomer41 Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
615Power Geschrieben 18. Juli 2015 Autor Share Geschrieben 18. Juli 2015 Ok danke. Hat geklappt. Hab noch ne Frage. Stelle die aber in einem neuen Thread. Sonst wird es zu undurchsichtig Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde dich hier an.
Jetzt anmelden