package cc.lukatown.icefox.plugincore.Functions;

import org.bukkit.entity.Player;
import org.bukkit.potion.PotionEffect;
import org.bukkit.potion.PotionEffectType;

/**
 * *******************************************
 * Created by Icefox on 14-8-14.
 * Just for LukaTownMinecraftServer
 * Web: LukaTown.cc  E-Mail: icefox@LukaTown.cc
 * ********************************************
 */
public class PluginCoreFunction_Potion {
    public static PotionEffect API_PotionEffectType(PotionEffectType potionEffectType, int time, int level) {
        /**
         返回一个整理后的药水效果

         使用时直接传递药水类型<potionEffectType>与需要的时间<time>和药水效果等级<level>  时间<time>的单位为秒

         如果需要生成一个 5级饥饿且持续时间为1小时的药水效果  则药水类型<potionEffectType>为PotionEffectType.HUNGER 时间<time>为3600 等级<level>为5
         返回的值可以直接带入addPotionEffect() 例如Player.addPotionEffect(API_PotionEffectType (PotionEffectType.HUNGER, 3600, 5))

         使用率虽然不是太高。 但每次都new一个PotionEffect出来实在蛋碎  而且还要计算tick  虽然意义不大但也够用
         */

        return new PotionEffect(potionEffectType, time * 20, level);
    }

    public static boolean API_CheckAndClearPotionEffect(Player player, PotionEffectType potionEffectType) {
        /**7
         检测某个玩家身上特定类型的药水效果是否存在. 如果存在则清除并返回真,否则返回假

         使用时直接传递玩家<player>与需要检测的药水效果<potionEffectType>

         如果传递进来的玩家<player>存在此药水效果<potionEffectType>,则清除并返回真
         否则返回假

         做Buff药水的时候有用到,就搬来了
         */

        if (player.hasPotionEffect(potionEffectType)) {
            player.removePotionEffect(potionEffectType);
            return true;
        }
        return false;
    }

    public static void API_ChearPlayerAllPotionEffect(Player player) {  //  !!!!!
        /**
         清除某玩家身上的所有药水效果

         貌似没用 （╯‵□′）╯ノ┻━┻
         */

        player.getActivePotionEffects().clear();
    }
}
