getLastDamager?

Wenn ihr bei eurem Plugin nicht weiter kommt, könnt ihr hier euer Problem beschreiben und um Hilfe bitten.

getLastDamager?

Beitragvon PCodezz » Sa 26. Nov 2016, 17:13

Hey, ich habe mal eine Frage:

Wie gette ich den Spieler, der einen anderen Spieler zuletzt geschlagen hat. Geht das überhaupt?

Würde mich über Antworten freuen!

MfG
Benutzeravatar
PCodezz
 
Beiträge: 6
Registriert: Sa 26. Nov 2016, 17:11

Re: getLastDamager?

Beitragvon DevToLearn » Sa 26. Nov 2016, 17:37

Hey,

nach meinem Wissen her, gibt es dafür glaube ich keine Methode.
Jedoch kannst du dir diese ganz einfach selbst erstellen!

Du erstellst eine HashMap mit dem Inhalt <Player, Player> und speicherst als "Key" den Spieler, dessen letzten "Damager" du bekommen möchtest und als "Value" den Spieler der als letztes Schaden hinzugefügt hat, ein.

Das machst du einfach im EntityDamageByEntityEvent. Wenn du dir jetzt den "LastDamager" eines Spielers ausgeben lassen möchtest, gibst du einfach den Value des jeweiligen Spielers aus.

Code: Alles auswählen
  1. import java.util.HashMap;
  2. import org.bukkit.entity.Player;
  3. import org.bukkit.event.EventHandler;
  4. import org.bukkit.event.Listener;
  5. import org.bukkit.event.entity.EntityDamageByEntityEvent;
  6. public class LastDamager implements Listener {
  7.    private static HashMap<Player, Player> lastDamagerByPlayer = new HashMap<>();
  8.    
  9.    @EventHandler
  10.    public void onDamage(EntityDamageByEntityEvent e) {
  11.       Player p = (Player) e.getEntity();
  12.       if(e.getDamager() instanceof Player) {
  13.          lastDamagerByPlayer.put(p, (Player) e.getDamager());
  14.       }
  15.    }
  16.    public static Player getLastDamager(Player p) {
  17.       if(lastDamagerByPlayer.containsKey(p)) {
  18.          return lastDamagerByPlayer.get(p);
  19.       }
  20.       return null;
  21.    }
  22. }


Als letztes nur noch das Event registrieren.

Eigentlich ganz einfach :D

Hoffe, dass ich dir helfen konnte!
Benutzeravatar
DevToLearn
 
Beiträge: 15
Registriert: So 13. Mär 2016, 10:20

Re: getLastDamager?

Beitragvon PCodezz » Di 13. Dez 2016, 14:44

Sorry, dass ich jetzt erst antworte: Vielen Dank für deine Antwort! Wird sicher weiterhelfen ;)

MfG
Benutzeravatar
PCodezz
 
Beiträge: 6
Registriert: Sa 26. Nov 2016, 17:11


Zurück zu Hilfe und Support

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 7 Gäste

cron