制作1.16.4的spigot插件,如何监听实体被特定玩家的物品造成伤害,比如说被玩家的钻石剑打伤,监听事件。谢谢大佬们
- @EventHandler
- public void onEntityDamageByEntity(EntityDamageByEntityEvent evt) {
- if (evt.getDamager() instanceof Player) {
- Player player = (Player) evt.getDamager();
- ItemStack itemStack = player.getInventory().getItemInMainHand();
- }
- }
自己判断下玩家的名字或者uuid就行
itemStack就是那个物品
本帖最后由 mc-hipower 于 2021-1-27 08:17 编辑
如何获取该实体?并且如if这个实体等于Hoglin
结城希亚 发表于 2021-1-26 21:39
自己判断下玩家的名字或者uuid就行
itemStack就是那个物品
如何获取该实体?并且如if这个实体等于Hoglin
结城希亚 发表于 2021-1-27 08:26
evt.getEntity();
Hoglin是什么
- @EventHandler
- public void onEntityDamageByEntity(EntityDamageByEntityEvent evt) {
- ItemStack itemStack = new ItemStack(Material.IRON_SWORD);
- ItemMeta itemMeta = itemStack.getItemMeta();
- itemMeta.setDisplayName(ChatColor.GOLD + "Piglin" + " " + ChatColor.RED + "Friend");
- ArrayList<String> itemMeta_lore = new ArrayList<>();
- itemMeta_lore.add(ChatColor.YELLOW +"Make Hoglin baby");
- itemMeta_lore.add(ChatColor.LIGHT_PURPLE + "Probability" + ChatColor.DARK_RED + "25%");
- itemMeta.setLore(itemMeta_lore);
- itemStack.setItemMeta(itemMeta);
- Hoglin hoglin = (Hoglin) evt.getEntity();
- if (evt.getDamager() instanceof Player) {
- Player player = (Player) evt.getDamager();
- if (player.getInventory().getItemInMainHand().equals(itemStack)) {
- hoglin.setBaby();
- }
- }
- }
- 纵览一下我的代码看看可以不
不能直接强转,要判断下是否符合这个类型