Methods 对于类型Player-Bukkit 1.7.2,getHealth()方法是不明确的

Methods 对于类型Player-Bukkit 1.7.2,getHealth()方法是不明确的,methods,minecraft,bukkit,Methods,Minecraft,Bukkit,我有一个问题,我试图从PlayerDeathEvent获取killers的运行状况,但它给了我一个错误,即getHealth()方法对于类型Player是不明确的 下面是一段代码 @EventHandler public void onDeath(PlayerDeathEvent event) { Player p = event.getEntity(); Player killer = p.getKiller(); double playerHealth = kille

我有一个问题,我试图从PlayerDeathEvent获取killers的运行状况,但它给了我一个错误,即getHealth()方法对于类型Player是不明确的

下面是一段代码

@EventHandler
public void onDeath(PlayerDeathEvent event) {
    Player p = event.getEntity();
    Player killer = p.getKiller();
    double playerHealth = killer.getHealth();
}
有人知道它为什么不工作吗?

有两个getHealth()方法,这是因为Bukkit处理Minecraft的方式改变了1.6中实体健康的存储方式。你可以阅读更多关于这方面的内容

如果您没有使用任何NMS代码,那么应该在构建路径中使用bukkit.jar,而不是craftbukkit.jar。这将很容易解决您的问题

如果确实需要NMS代码,则需要在构建路径中同时包含bukkit.jar和craftbukkit.jar。此外,您必须在构建路径中的craftbukkit.jar上方有bukkit.jar,它才能工作。

有两个getHealth()方法,这是因为bukkit处理Minecraft的方式改变了1.6中实体健康的存储方式。你可以阅读更多关于这方面的内容

如果您没有使用任何NMS代码,那么应该在构建路径中使用bukkit.jar,而不是craftbukkit.jar。这将很容易解决您的问题

如果确实需要NMS代码,则需要在构建路径中同时包含bukkit.jar和craftbukkit.jar。此外,您必须在构建路径中的craftbukkit.jar上方有bukkit.jar,它才能工作。

有两个getHealth()方法,这是因为bukkit处理Minecraft的方式改变了1.6中实体健康的存储方式。你可以阅读更多关于这方面的内容

如果您没有使用任何NMS代码,那么应该在构建路径中使用bukkit.jar,而不是craftbukkit.jar。这将很容易解决您的问题

如果确实需要NMS代码,则需要在构建路径中同时包含bukkit.jar和craftbukkit.jar。此外,您必须在构建路径中的craftbukkit.jar上方有bukkit.jar,它才能工作。

有两个getHealth()方法,这是因为bukkit处理Minecraft的方式改变了1.6中实体健康的存储方式。你可以阅读更多关于这方面的内容

如果您没有使用任何NMS代码,那么应该在构建路径中使用bukkit.jar,而不是craftbukkit.jar。这将很容易解决您的问题


如果确实需要NMS代码,则需要在构建路径中同时包含bukkit.jar和craftbukkit.jar。此外,您必须在构建路径中的craftbukkit.jar上方有bukkit.jar,才能使其工作。

出现错误的原因可能是因为,比如说爬虫或其他非玩家实体杀死了玩家。以下是您应该采取的预防措施:

@EventHandler
public void onDeath(PlayerDeathEvent e){
    Player p = e.getEntity().getPlayer(); //use .getPlayer() just to be safe
    if(p.getLastDamageCause().equals(DamageCause.ENTITY_ATTACK) && p.getKiller() instanceof Player){
        //the player was last damaged by a LivingEntity, and the killer of the player is in-fact a player
        Player killer = p.getKiller();
        double playerHealth = killer.getHealth();
    }
}

你出错的原因可能是因为,比如说爬虫或其他非玩家实体杀死了玩家。以下是您应该采取的预防措施:

@EventHandler
public void onDeath(PlayerDeathEvent e){
    Player p = e.getEntity().getPlayer(); //use .getPlayer() just to be safe
    if(p.getLastDamageCause().equals(DamageCause.ENTITY_ATTACK) && p.getKiller() instanceof Player){
        //the player was last damaged by a LivingEntity, and the killer of the player is in-fact a player
        Player killer = p.getKiller();
        double playerHealth = killer.getHealth();
    }
}

你出错的原因可能是因为,比如说爬虫或其他非玩家实体杀死了玩家。以下是您应该采取的预防措施:

@EventHandler
public void onDeath(PlayerDeathEvent e){
    Player p = e.getEntity().getPlayer(); //use .getPlayer() just to be safe
    if(p.getLastDamageCause().equals(DamageCause.ENTITY_ATTACK) && p.getKiller() instanceof Player){
        //the player was last damaged by a LivingEntity, and the killer of the player is in-fact a player
        Player killer = p.getKiller();
        double playerHealth = killer.getHealth();
    }
}

你出错的原因可能是因为,比如说爬虫或其他非玩家实体杀死了玩家。以下是您应该采取的预防措施:

@EventHandler
public void onDeath(PlayerDeathEvent e){
    Player p = e.getEntity().getPlayer(); //use .getPlayer() just to be safe
    if(p.getLastDamageCause().equals(DamageCause.ENTITY_ATTACK) && p.getKiller() instanceof Player){
        //the player was last damaged by a LivingEntity, and the killer of the player is in-fact a player
        Player killer = p.getKiller();
        double playerHealth = killer.getHealth();
    }
}

如果您需要nms代码,将玩家铸造到Damagable也会起作用

如果您需要nms代码,将玩家铸造到Damagable也会起作用

如果您需要nms代码,将玩家铸造到Damagable也会起作用