2017-07-04 6 views
2

Warum funktioniert das nicht? Ich bekomme keine Antwort, wenn ich getötet wurde! Wie du sehen kannst, habe ich mehrere Möglichkeiten getestet. Aber niemand arbeitet.Bukkit PlayerDeathEvent

package net.gameforce.testing; 
import org.bukkit.Bukkit; 
import org.bukkit.entity.Player; 
import org.bukkit.event.EventHandler; 
import org.bukkit.event.Listener; 
import org.bukkit.event.entity.PlayerDeathEvent; 
import org.bukkit.event.player.PlayerInteractEvent; 
import org.bukkit.plugin.java.JavaPlugin; 






public class Main extends JavaPlugin implements Listener { 


@Override 
public void onEnable() { 
    getServer().getPluginManager().registerEvents(this,this); 
    getLogger().info("Testing Plugin Started"); 
} 

public void onDisable() {} 

@EventHandler 
public void onPlayerInteract(PlayerInteractEvent event){ 
    Bukkit.broadcastMessage("test"); 
    event.getPlayer().setExp(100); 
} 
public void onPlayerDeath (PlayerDeathEvent event){ 
    Bukkit.broadcastMessage("send"); 
    event.getEntity().getPlayer().setExp(1000); 
} 

public boolean onDeath (PlayerDeathEvent event) { 
    Player Player = event.getEntity(); 
    Bukkit.broadcastMessage(Player.getKiller().getDisplayName() + ", has killed you!"); 
    if (Player.getKiller() != null) { 
     Bukkit.broadcastMessage("No Player"); 
    } 
    else { 
     Bukkit.broadcastMessage("IDK"); 
    } 


    return true; 
} 
} 

Habe ich etwas falsch gemacht?

+0

die @EventHandler Anmerkung für die Methode verwenden. Außerdem registrieren Sie Ihren Listener korrekt (Überprüfen Sie Ihre Serverkonsole, um festzustellen, ob Ihre Nachricht von onEnable Drucker von Logger ist)? Quelle: http://bukkit.gamepedia.com/Event_API_Reference#.40EventHandler – Harrand

+0

Die Nachricht vom Logger wird gesendet ja, der @EventHandler wird ich testen – Ruben

+0

(Sie können auch private Nachrichten an den Spieler senden, wie gerade jetzt es wird ausgestrahlt, was bedeutet, dass jeder es lesen kann, was im Chat Verwirrung stiften kann, wenn man sofort einen Haufen "von xyz getötet" erhält. – AscendedKitten

Antwort

2

Zitat aus http://bukkit.gamepedia.com/Event_API_Reference#.40EventHandler

„Bevor diese Methode durch Bukkit aufgerufen werden kann, wenn das‚Ereignis‘ausgelöst wird, müssen wir es mit Anmerkungen versehen. Wir tun dies mit Eventhandler.“

Sie haben diese Anmerkung Ihrer onPlayerInteract-Methode hinzugefügt, aber keine Ihrer anderen, z. B. Ihre onDeath-Methode. Wenn Ihre Zuhörer richtig eingestellt ist, Hinzufügen der @EventHandler Anmerkung zu diesen Methoden können bukkit ihnen richtig aufrufen, etwa so:

@EventHandler 
public void onPlayerDeath (PlayerDeathEvent event){ 
    Bukkit.broadcastMessage("send"); 
    event.getEntity().getPlayer().setExp(1000); 
}