Jonjs' Blog

如少年般, 迎风而立

0%

【Java】[Bukkit] 给玩家新增药水效果

开发环境: Spigot-1.16.5
JDK 版本: 1.8

如果玩家已经有某个药水效果,那么 add 会失败
所以新增某药水效果之前要移除其原有的该药水效果

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

public class PotionEffectUtils {
    public static void add(Player player, PotionEffectType type, int duration, int amplifier) {
        if (player.hasPotionEffect(type)) {
            player.removePotionEffect(type);
        }
        player.addPotionEffect(new PotionEffect(type, duration, amplifier, false, true, true));
    }
}

使用示例:

PotionEffectUtils.add(player, PotionEffectType.SLOW_FALLING, 200, 1);
// 10秒缓降II效果
// 倒数第二个参数为时间, 单位为 tick
// 最后一个参数为 0 时, 给予的药水效果为 1 倍.

PotionEffect 枚举常量列表:
https://bukkit.windit.net/javadoc/org/bukkit/potion/PotionEffectType.html