if (equip != null) { tag.putCompoundList("HandItems", Arrays.asList( NbtSerialization.writeItem(equip.getItemInMainHand(), -1), NbtSerialization.writeItem(equip.getItemInOffHand(), -1) )); tag.putCompoundList("ArmorItems", Arrays.asList( NbtSerialization.writeItem(equip.getBoots(), -1), NbtSerialization.writeItem(equip.getLeggings(), -1), NbtSerialization.writeItem(equip.getChestplate(), -1), NbtSerialization.writeItem(equip.getHelmet(), -1) )); equip.getItemInMainHandDropChance(), equip.getItemInOffHandDropChance() )); tag.putFloatList("ArmorDropChances", Arrays.asList( equip.getBootsDropChance(), equip.getLeggingsDropChance(), equip.getChestplateDropChance(), equip.getHelmetDropChance() ));
equip.setItemInMainHand(getItem(list, 0)); equip.setBoots(getItem(list, 1)); equip.setLeggings(getItem(list, 2)); equip.setChestplate(getItem(list, 3)); equip.setHelmet(getItem(list, 4)); }); equip.setItemInMainHandDropChance(getOrDefault(list, 0, 1f)); equip.setBootsDropChance(getOrDefault(list, 1, 1f)); equip.setLeggingsDropChance(getOrDefault(list, 2, 1f)); equip.setChestplateDropChance(getOrDefault(list, 3, 1f)); equip.setHelmetDropChance(getOrDefault(list, 4, 1f)); }); compound.readCompoundList("HandItems", list -> { equip.setItemInMainHand(getItem(list, 0)); equip.setItemInOffHand(getItem(list, 1)); }); compound.readCompoundList("ArmorItems", list -> { equip.setBoots(getItem(list, 0)); equip.setLeggings(getItem(list, 1)); equip.setChestplate(getItem(list, 2)); equip.setHelmet(getItem(list, 3)); }); equip.setItemInMainHandDropChance(getOrDefault(list, 0, 1f)); equip.setItemInOffHandDropChance(getOrDefault(list, 1, 1f)); }); compound.readFloatList("ArmorDropChances", list -> { equip.setBootsDropChance(getOrDefault(list, 0, 1f));
/** * Get the item in the inventory. * * <p>Slot 0 is the item in the hand. * * <p>Slot 1 to 4 is armor (boots to helmet). * * @return The item in that slot. */ private ItemStack getItem(int slot) { EntityEquipment equipment = entity.getEquipment(); if (equipment == null) { return null; } if (slot == 0) { return equipment.getItemInMainHand(); } else if (slot == 1) { return equipment.getItemInOffHand(); } else { return equipment.getArmorContents()[slot - 2]; } }
/** * Gets equipment from this entity based on the slot given. * * @param slot * @return null if the disguisedEntity is not an instance of a living entity */ public static ItemStack getEquipment(EquipmentSlot slot, Entity disguisedEntity) { if (!(disguisedEntity instanceof LivingEntity)) return null; switch (slot) { case HAND: return ((LivingEntity) disguisedEntity).getEquipment().getItemInMainHand(); case OFF_HAND: return ((LivingEntity) disguisedEntity).getEquipment().getItemInOffHand(); case FEET: return ((LivingEntity) disguisedEntity).getEquipment().getBoots(); case LEGS: return ((LivingEntity) disguisedEntity).getEquipment().getLeggings(); case CHEST: return ((LivingEntity) disguisedEntity).getEquipment().getChestplate(); case HEAD: return ((LivingEntity) disguisedEntity).getEquipment().getHelmet(); default: return null; } }
@Override @SuppressWarnings("deprecation") public void onSpawn() { if (!(npc.getEntity() instanceof LivingEntity) && !(npc.getEntity() instanceof ArmorStand)) return; if (npc.getEntity() instanceof Enderman) { Enderman enderman = (Enderman) npc.getEntity(); if (equipment[0] != null) { enderman.setCarriedMaterial(equipment[0].getData()); } } else { EntityEquipment equip = getEquipmentFromEntity(npc.getEntity()); if (equipment[0] != null) { equip.setItemInHand(equipment[0]); } equip.setHelmet(equipment[1]); equip.setChestplate(equipment[2]); equip.setLeggings(equipment[3]); equip.setBoots(equipment[4]); try { equip.setItemInOffHand(equipment[5]); } catch (NoSuchMethodError e) { } } if (npc.getEntity() instanceof Player) { ((Player) npc.getEntity()).updateInventory(); } }
EntityEquipment ep = pigzombie.getEquipment(); if (m.getEquipment() != null) { ep.setArmorContents(m.getEquipment().getArmorContents()); ep.setItemInMainHand(m.getEquipment().getItemInMainHand()); EntityEquipment es = skeleton.getEquipment(); if (m.getEquipment() != null) { es.setArmorContents(m.getEquipment().getArmorContents()); es.setItemInMainHand(m.getEquipment().getItemInMainHand()); if (m.getEquipment().getHelmet().getType().equals(Material.VINE) && plugin.getPM().isPluginEnabled("LibsDisguises")) { TARDISDalekDisguiser.dalekanium(skeleton); EntityEquipment ev = vindicator.getEquipment(); if (m.getEquipment() != null) { ev.setArmorContents(m.getEquipment().getArmorContents()); ev.setItemInMainHand(m.getEquipment().getItemInMainHand()); EntityEquipment ez = zombie.getEquipment(); if (m.getEquipment() != null) { ez.setArmorContents(m.getEquipment().getArmorContents()); ez.setItemInMainHand(m.getEquipment().getItemInMainHand()); zv.setArmorContents(m.getEquipment().getArmorContents()); zv.setItemInMainHand(m.getEquipment().getItemInMainHand());
public void copyEquipmentTo(LivingEntity entity) { if (itemInHand != null) { entity.getEquipment().setItemInMainHand(itemInHand.getItemStack(1)); } if (itemInOffhand != null) { entity.getEquipment().setItemInOffHand(itemInOffhand.getItemStack(1)); } if (helmet != null) { entity.getEquipment().setHelmet(helmet.getItemStack(1)); } if (chestplate != null) { entity.getEquipment().setChestplate(chestplate.getItemStack(1)); } if (leggings != null) { entity.getEquipment().setLeggings(leggings.getItemStack(1)); } if (boots != null) { entity.getEquipment().setBoots(boots.getItemStack(1)); } }
/** * Takes one item from the NPC's held items (for consumables). */ public void takeOne() { if (SentinelTarget.v1_9) { ItemStack item = getLivingEntity().getEquipment().getItemInMainHand(); if (item != null && item.getType() != Material.AIR) { if (item.getAmount() > 1) { item.setAmount(item.getAmount() - 1); getLivingEntity().getEquipment().setItemInMainHand(item); } else { getLivingEntity().getEquipment().setItemInMainHand(null); } } } else { ItemStack item = getLivingEntity().getEquipment().getItemInHand(); if (item != null && item.getType() != Material.AIR) { if (item.getAmount() > 1) { item.setAmount(item.getAmount() - 1); getLivingEntity().getEquipment().setItemInHand(item); } else { getLivingEntity().getEquipment().setItemInHand(null); } } } }
public void convertEquipable(LivingEntity entity, TagCompound properties) { List<TagCompound> equipmentList = new ArrayList<>(); if (random.nextFloat() <= entity.getEquipment().getChestplateDropChance()) { ItemStack itemStack = entity.getEquipment().getChestplate(); if (itemStack != null && itemStack.getType() != Material.AIR) { TagCompound item = MyPetApi.getPlatformHelper().itemStackToCompund(itemStack); if (random.nextFloat() <= entity.getEquipment().getHelmetDropChance()) { ItemStack itemStack = entity.getEquipment().getHelmet(); if (itemStack != null && itemStack.getType() != Material.AIR) { TagCompound item = MyPetApi.getPlatformHelper().itemStackToCompund(itemStack); if (random.nextFloat() <= entity.getEquipment().getLeggingsDropChance()) { ItemStack itemStack = entity.getEquipment().getLeggings(); if (itemStack != null && itemStack.getType() != Material.AIR) { TagCompound item = MyPetApi.getPlatformHelper().itemStackToCompund(itemStack); if (random.nextFloat() <= entity.getEquipment().getBootsDropChance()) { ItemStack itemStack = entity.getEquipment().getBoots(); if (itemStack != null && itemStack.getType() != Material.AIR) { TagCompound item = MyPetApi.getPlatformHelper().itemStackToCompund(itemStack);
/** * Sets the ball in the hands of the entity. * * @param livingEntity entity */ @Override public void grab(LivingEntity livingEntity) { if (livingEntity == null) throw new IllegalArgumentException("Living entity cannot be null!"); if (this.isGrabbed()) return; this.interactionEntity = livingEntity; if (livingEntity.getEquipment().getItemInHand() == null || livingEntity.getEquipment().getItemInHand().getType() == Material.AIR) { final BallGrabEvent event = new BallGrabEvent(this, livingEntity); Bukkit.getPluginManager().callEvent(event); if (!event.isCancelled()) { livingEntity.getEquipment().setItemInHand(this.getSpigotEntity().getHelmet().clone()); this.setHelmet(null); this.grabbed = true; } } }
/** * Removes the ball from the hands of an entity. */ @Override public void deGrab() { if (this.isGrabbed() && this.interactionEntity != null) { final LivingEntity livingEntity = (LivingEntity) this.interactionEntity; livingEntity.getEquipment().setItemInHand(null); this.grabbed = false; final ItemStack itemStack = new ItemStack(Material.SKULL_ITEM, 1, (short) 3); try { SkinHelper.setItemStackSkin(itemStack, this.ballMeta.getSkin()); } catch (final Exception e1) { Bukkit.getLogger().log(Level.WARNING, "Failed to degrab entity.", e1); } this.setHelmet(itemStack); final Vector vector = this.getDirection(livingEntity).normalize().multiply(3); this.teleport(livingEntity.getLocation().add(vector)); } }
if (displayName == null) { EntityEquipment equipment = livingEntity.getEquipment(); item = equipment.getItemInMainHand();; equipment.setItemInMainHand(null); } else { if (!(target instanceof Player)) {
@Override public MCItemStack getWeapon() { return new BukkitMCItemStack(ee.getItemInMainHand()); }
/** * Returns the item held in an entity's hand. */ public static ItemStack getHeldItem(LivingEntity entity) { if (SentinelTarget.v1_9) { return entity.getEquipment().getItemInMainHand(); } else { return entity.getEquipment().getItemInHand(); } }
@Override public PowerResult<Double> hit(Player player, ItemStack stack, LivingEntity entity, double damage, EntityDamageByEntityEvent event) { if (!getItem().consumeDurability(stack, cost)) return PowerResult.cost(); if (rand.nextInt(chance) != 0) return PowerResult.noop(); if (entity instanceof Skeleton || entity instanceof Zombie) { if (entity.getEquipment().getHelmet() == null || entity.getEquipment().getHelmet().getType() == Material.AIR) { entity.getEquipment().setHelmet(new ItemStack(Material.CARVED_PUMPKIN)); entity.getEquipment().setHelmetDropChance((float) drop); } } return PowerResult.ok(damage); }
@Override public void setWeapon(MCItemStack stack) { ee.setItemInMainHand(((BukkitMCItemStack) stack).asItemStack()); }
private int getProtectionFactor(Entity entity) { if (!(entity instanceof LivingEntity)) { return 0; } LivingEntity livingEntity = (LivingEntity) entity; int level = 0; if (livingEntity.getEquipment() != null) { for (ItemStack stack : livingEntity.getEquipment().getArmorContents()) { if (stack != null) { int stackLevel = stack.getEnchantmentLevel(Enchantment.PROTECTION_EXPLOSIONS); if (stackLevel > level) { level = stackLevel; } } } } return level << 1; }
EntityEquipment equip = ((LivingEntity) entity).getEquipment(); watcher.setArmor(equip.getArmorContents()); watcher.setItemInMainHand(equip.getItemInMainHand());
@Override public MCItemStack getHelmet() { return new BukkitMCItemStack(ee.getHelmet()); }
asL.setVisible(false); asL.setLeftArmPose(new EulerAngle(90 * Math.PI / 180, 60 * Math.PI / 180, 0)); asL.getEquipment().setItemInOffHand(new ItemStack(Material.SHIELD)); asR.setVisible(false); asR.setRightArmPose(new EulerAngle(90 * Math.PI / 180, 300 * Math.PI / 180, 0)); asR.getEquipment().setItemInMainHand(new ItemStack(Material.SHIELD)); asB.setVisible(false); asB.setLeftArmPose(new EulerAngle(90 * Math.PI / 180, 270 * Math.PI / 180, 0)); asB.getEquipment().setItemInOffHand(new ItemStack(Material.SHIELD));