public function getDrops(Item $item) { if ($item->isSword()) { return [[Item::STRING, 0, 1]]; } return []; }
public function getDrops(Item $item) { if ($item->isShears() || $item->isSword() >= Tool::TIER_WOODEN) { return [[Item::STRING, 0, 1]]; } else { return []; } }
public function getDrops(Item $item) { if ($item->isSword() >= Tool::TIER_STONE) { return [[Item::STRING, 0, 1]]; } else { return []; } }
/** * @param Item $item * @param int $modifiedLevel * @return Enchantment[] */ public static function getPossibleEnchantments(Item $item, int $modifiedLevel) { $result = []; $enchantmentIds = []; if ($item->getId() == Item::BOOK) { $enchantmentIds = array_keys(self::$map); } elseif ($item->isArmor()) { $enchantmentIds[] = Enchantment::TYPE_ARMOR_PROTECTION; $enchantmentIds[] = Enchantment::TYPE_ARMOR_FIRE_PROTECTION; $enchantmentIds[] = Enchantment::TYPE_ARMOR_EXPLOSION_PROTECTION; $enchantmentIds[] = Enchantment::TYPE_ARMOR_PROJECTILE_PROTECTION; $enchantmentIds[] = Enchantment::TYPE_ARMOR_THORNS; if ($item->isBoots()) { $enchantmentIds[] = Enchantment::TYPE_ARMOR_FALL_PROTECTION; } if ($item->isHelmet()) { $enchantmentIds[] = Enchantment::TYPE_WATER_BREATHING; $enchantmentIds[] = Enchantment::TYPE_WATER_AFFINITY; } } elseif ($item->isSword()) { $enchantmentIds[] = Enchantment::TYPE_WEAPON_SHARPNESS; $enchantmentIds[] = Enchantment::TYPE_WEAPON_SMITE; $enchantmentIds[] = Enchantment::TYPE_WEAPON_ARTHROPODS; $enchantmentIds[] = Enchantment::TYPE_WEAPON_KNOCKBACK; $enchantmentIds[] = Enchantment::TYPE_WEAPON_FIRE_ASPECT; $enchantmentIds[] = Enchantment::TYPE_WEAPON_LOOTING; } elseif ($item->isTool()) { $enchantmentIds[] = Enchantment::TYPE_MINING_EFFICIENCY; $enchantmentIds[] = Enchantment::TYPE_MINING_SILK_TOUCH; $enchantmentIds[] = Enchantment::TYPE_MINING_FORTUNE; } elseif ($item->getId() == Item::BOW) { $enchantmentIds[] = Enchantment::TYPE_BOW_POWER; $enchantmentIds[] = Enchantment::TYPE_BOW_KNOCKBACK; $enchantmentIds[] = Enchantment::TYPE_BOW_FLAME; $enchantmentIds[] = Enchantment::TYPE_BOW_INFINITY; } elseif ($item->getId() == Item::FISHING_ROD) { $enchantmentIds[] = Enchantment::TYPE_FISHING_FORTUNE; $enchantmentIds[] = Enchantment::TYPE_FISHING_LURE; } if ($item->isTool() || $item->isArmor()) { $enchantmentIds[] = Enchantment::TYPE_MINING_DURABILITY; } foreach ($enchantmentIds as $enchantmentId) { $enchantment = Enchantment::getEnchantment($enchantmentId); $ranges = self::$map[$enchantmentId]; $i = 0; /** @var Range $range */ foreach ($ranges as $range) { $i++; if (self::isInRange($range[0], $range[1], $modifiedLevel)) { $result[] = $enchantment->setLevel($i); } } } return $result; }
public function getDrops(Item $item) : array { if ($item->isShears()) { return [[Item::COBWEB, 0, 1]]; } elseif ($item->isSword() >= Tool::TIER_WOODEN) { if ($item->getEnchantmentLevel(Enchantment::TYPE_MINING_SILK_TOUCH) > 0) { return [[Item::COBWEB, 0, 1]]; } else { return [[Item::STRING, 0, 1]]; } } return []; }
public function getBreakTime(Item $item) { if ($item->isShears()) { return 0.02; } elseif ($item->isSword()) { return 0.2; } elseif ($item->isAxe()) { switch ($item->isAxe()) { case Tool::TIER_WOODEN: return 0.15; case Tool::TIER_STONE: return 0.075; case Tool::TIER_IRON: return 0.05; case Tool::TIER_DIAMOND: return 0.0375; case Tool::TIER_GOLD: return 0.025; } } return 0.3; }