pocketmine\item\enchantment\Enchantment::getEnchantMaxLevel PHP Method

getEnchantMaxLevel() public static method

public static getEnchantMaxLevel ( integer $enchantmentId )
$enchantmentId integer
    public static function getEnchantMaxLevel(int $enchantmentId)
    {
        switch ($enchantmentId) {
            case self::TYPE_ARMOR_PROTECTION:
            case self::TYPE_ARMOR_FIRE_PROTECTION:
            case self::TYPE_ARMOR_FALL_PROTECTION:
            case self::TYPE_ARMOR_EXPLOSION_PROTECTION:
            case self::TYPE_ARMOR_PROJECTILE_PROTECTION:
                return 4;
            case self::TYPE_ARMOR_THORNS:
                return 3;
            case self::TYPE_WATER_BREATHING:
            case self::TYPE_WATER_SPEED:
                return 3;
            case self::TYPE_WATER_AFFINITY:
                return 1;
            case self::TYPE_WEAPON_SHARPNESS:
            case self::TYPE_WEAPON_SMITE:
            case self::TYPE_WEAPON_ARTHROPODS:
                return 5;
            case self::TYPE_WEAPON_KNOCKBACK:
            case self::TYPE_WEAPON_FIRE_ASPECT:
                return 2;
            case self::TYPE_WEAPON_LOOTING:
                return 3;
            case self::TYPE_MINING_EFFICIENCY:
                return 5;
            case self::TYPE_MINING_SILK_TOUCH:
                return 1;
            case self::TYPE_MINING_DURABILITY:
            case self::TYPE_MINING_FORTUNE:
                return 3;
            case self::TYPE_BOW_POWER:
                return 5;
            case self::TYPE_BOW_KNOCKBACK:
                return 2;
            case self::TYPE_BOW_FLAME:
            case self::TYPE_BOW_INFINITY:
                return 1;
            case self::TYPE_FISHING_FORTUNE:
            case self::TYPE_FISHING_LURE:
                return 3;
        }
        return 999;
    }

Usage Example

示例#1
0
 public function execute(CommandSender $sender, $currentAlias, array $args)
 {
     if (!$this->testPermission($sender)) {
         return true;
     }
     if (count($args) < 2) {
         $sender->sendMessage(new TranslationContainer("commands.generic.usage", [$this->usageMessage]));
         return true;
     }
     $player = $sender->getServer()->getPlayer($args[0]);
     if ($player === null) {
         $sender->sendMessage(new TranslationContainer(TextFormat::RED . "%commands.generic.player.notFound"));
         return true;
     }
     $enchantId = $args[1];
     $enchantLevel = isset($args[2]) ? (int) $args[2] : 1;
     $enchantment = Enchantment::getEnchantment($enchantId);
     if ($enchantment->getId() === Enchantment::TYPE_INVALID) {
         $enchantment = Enchantment::getEnchantmentByName($enchantId);
         if ($enchantment->getId() === Enchantment::TYPE_INVALID) {
             $sender->sendMessage(new TranslationContainer("commands.enchant.notFound", [$enchantment->getId()]));
             return true;
         }
     }
     $id = $enchantment->getId();
     $maxLevel = Enchantment::getEnchantMaxLevel($id);
     if ($enchantLevel > $maxLevel or $enchantLevel <= 0) {
         $sender->sendMessage(new TranslationContainer("commands.enchant.maxLevel", [$maxLevel]));
         return true;
     }
     $enchantment->setLevel($enchantLevel);
     $item = $player->getInventory()->getItemInHand();
     if ($item->getId() <= 0) {
         $sender->sendMessage(new TranslationContainer("commands.enchant.noItem"));
         return true;
     }
     if (Enchantment::getEnchantAbility($item) === 0) {
         $sender->sendMessage(new TranslationContainer(TextFormat::RED . "%commands.enchant.cantEnchant"));
         return true;
     }
     $item->addEnchantment($enchantment);
     $player->getInventory()->setItemInHand($item);
     self::broadcastCommandMessage($sender, new TranslationContainer("%commands.enchant.success"));
     return true;
 }
All Usage Examples Of pocketmine\item\enchantment\Enchantment::getEnchantMaxLevel