mc-hipower
制作1.16.4的spigot插件,如何监听实体被特定玩家的物品造成伤害,比如说被玩家的钻石剑打伤,监听事件。谢谢大佬们

结城希亚
  1.     @EventHandler
  2.     public void onEntityDamageByEntity(EntityDamageByEntityEvent evt) {
  3.         if (evt.getDamager() instanceof Player) {
  4.             Player player = (Player) evt.getDamager();
  5.             ItemStack itemStack = player.getInventory().getItemInMainHand();
  6.         }
  7.     }
复制代码

自己判断下玩家的名字或者uuid就行

itemStack就是那个物品

mc-hipower
结城希亚 发表于 2021-1-26 21:41
自己判断下玩家的名字或者uuid就行

itemStack就是那个物品

Thanks!懂了!!


mc-hipower
本帖最后由 mc-hipower 于 2021-1-27 08:17 编辑
结城希亚 发表于 2021-1-26 21:39
自己判断下玩家的名字或者uuid就行

itemStack就是那个物品

如何获取该实体?并且如if这个实体等于Hoglin


结城希亚
mc-hipower 发表于 2021-1-27 08:06
如何获取该实体?并且如if这个实体等于Hoglin

evt.getEntity();
Hoglin是什么

mc-hipower
结城希亚 发表于 2021-1-27 08:26
evt.getEntity();
Hoglin是什么
  1. @EventHandler
  2.     public void onEntityDamageByEntity(EntityDamageByEntityEvent evt) {
  3.         ItemStack itemStack = new ItemStack(Material.IRON_SWORD);
  4.         ItemMeta itemMeta = itemStack.getItemMeta();
  5.         itemMeta.setDisplayName(ChatColor.GOLD + "Piglin" + " " + ChatColor.RED + "Friend");
  6.         ArrayList<String> itemMeta_lore = new ArrayList<>();
  7.         itemMeta_lore.add(ChatColor.YELLOW +"Make Hoglin baby");
  8.         itemMeta_lore.add(ChatColor.LIGHT_PURPLE + "Probability" + ChatColor.DARK_RED + "25%");
  9.         itemMeta.setLore(itemMeta_lore);
  10.         itemStack.setItemMeta(itemMeta);
  11.         Hoglin hoglin = (Hoglin) evt.getEntity();



  12.         if (evt.getDamager() instanceof Player) {
  13.             Player player = (Player) evt.getDamager();
  14.             if (player.getInventory().getItemInMainHand().equals(itemStack)) {
  15.                 hoglin.setBaby();
  16.             }
  17.             }
  18.         }
  19. 纵览一下我的代码看看可以不
复制代码

结城希亚

不能直接强转,要判断下是否符合这个类型

mc-hipower
结城希亚 发表于 2021-1-27 09:01
不能直接强转,要判断下是否符合这个类型

能帮忙改一下吗?谢谢

结城希亚
mc-hipower 发表于 2021-1-27 09:02
能帮忙改一下吗?谢谢

  1. @EventHandler
  2.     public void onEntityDamageByEntity(EntityDamageByEntityEvent evt) {
  3.         ItemStack itemStack = new ItemStack(Material.IRON_SWORD);
  4.         ItemMeta itemMeta = itemStack.getItemMeta();
  5.         itemMeta.setDisplayName(ChatColor.GOLD + "Piglin" + " " + ChatColor.RED + "Friend");
  6.         ArrayList<String> itemMeta_lore = new ArrayList<>();
  7.         itemMeta_lore.add(ChatColor.YELLOW +"Make Hoglin baby");
  8.         itemMeta_lore.add(ChatColor.LIGHT_PURPLE + "Probability" + ChatColor.DARK_RED + "25%");
  9.         itemMeta.setLore(itemMeta_lore);
  10.         itemStack.setItemMeta(itemMeta);
  11.         if (evt.getDamager() instanceof Player && evt.getEntity() instanceof Hoglin) {
  12.             Player player = (Player) evt.getDamager();
  13.             Hoglin hoglin = (Hoglin) evt.getEntity();
  14.             if (player.getInventory().getItemInMainHand().equals(itemStack)) {
  15.                 hoglin.setBaby();
  16.             }
  17.           }
  18.         }
复制代码

mc-hipower

谢谢大佬明白了!!!Nice

第一页 上一页 下一页 最后一页