2017-07-04 3 views
2

なぜこれは機能しませんか?私が殺されたら、私は何の反応も得ない!あなたが見ることができるように、私は複数の方法をテストしました。しかし、誰も働いていません。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; 
} 
} 

私は間違ったことをしましたか? http://bukkit.gamepedia.com/Event_API_Reference#.40EventHandler

から

+0

メソッドに@EventHandlerアノテーションを使用します。また、リスナーを正しく登録していますか(onEnableからのメッセージがLoggerによってプリンタになっているかどうかを確認するには、サーバーコンソールを確認してください)。出典:http://bukkit.gamepedia.com/Event_API_Reference#.40EventHandler – Harrand

+0

Loggerからのメッセージは送信されます。@EventHandlerは私が – Ruben

+0

を試してテストします(あなたにプライベートメッセージを送信することもできますそれは誰もがそれを読むことができることを意味する放送されています。一度に "キズで殺された"の束を受け取ったときにチャットで混乱を引き起こすかもしれません。 – AscendedKitten

答えて

2

引用イベント「ときに、この方法は、Bukkitで呼び出すことができる前に 『』発射され、我々はそれに注釈を付ける必要がある。我々はのEventHandlerでこれを行います。」

あなたはonPlayerInteractメソッドにこの注釈を追加しましたが、あなたのonDeathメソッドなど他のものは追加しませんでした。リスナーが正しく設定されている場合、これらのメソッドに@EventHandlerアノテーションを追加すると、bukkitが正しく呼び出すことができます。

@EventHandler 
public void onPlayerDeath (PlayerDeathEvent event){ 
    Bukkit.broadcastMessage("send"); 
    event.getEntity().getPlayer().setExp(1000); 
} 
関連する問題