Skip to content

Commit 1f2ab8e

Browse files
committed
feat: add potion_effect_level (close #66)
1 parent de9307c commit 1f2ab8e

File tree

1 file changed

+25
-10
lines changed

1 file changed

+25
-10
lines changed

src/main/java/at/helpch/placeholderapi/expansion/player/PlayerExpansion.java

Lines changed: 25 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
import org.bukkit.block.BlockFace;
1616
import org.bukkit.entity.Player;
1717
import org.bukkit.inventory.ItemStack;
18+
import org.bukkit.potion.PotionEffect;
1819
import org.bukkit.potion.PotionEffectType;
1920
import org.jetbrains.annotations.NotNull;
2021
import org.jetbrains.annotations.Nullable;
@@ -72,13 +73,6 @@ public Map<String, Object> getDefaults() {
7273

7374
@Override
7475
public boolean canRegister() {
75-
/*pingFormatter = new PingFormatter(
76-
getInt("ping_value.medium", 50),
77-
getInt("ping_value.high", 100),
78-
getString("ping_color.low", "&a"),
79-
getString("ping_color.medium", "&e"),
80-
getString("ping_color.high", "&c")
81-
);*/
8276
pingFormatter = new PingFormatter(getConfigSection("ping.formatting"));
8377
directionNames = Optional.ofNullable(getConfigSection("direction"))
8478
.map(section -> section.getValues(false))
@@ -457,10 +451,31 @@ public boolean canRegister() {
457451
// has_potioneffect_<effect>
458452
if (params.startsWith("has_potioneffect_")) {
459453
final String effectName = params.substring("has_potioneffect_".length());
460-
return Optional.ofNullable(PotionEffectType.getByName(effectName))
461-
.map(player::hasPotionEffect)
454+
final Optional<PotionEffectType> effectType = Optional.ofNullable(PotionEffectType.getByName(effectName));
455+
456+
if (effectType.isEmpty()) {
457+
return "Unknown potion effect " + effectName;
458+
}
459+
460+
return effectType.map(player::hasPotionEffect)
462461
.map(this::bool)
463-
.orElse("Unknown potion effect " + effectName);
462+
.get();
463+
}
464+
465+
// potion_effect_level_<effect>
466+
if (params.startsWith("potion_effect_level_")) {
467+
final String effectName = params.substring("potion_effect_level_".length());
468+
final Optional<PotionEffectType> effectType = Optional.ofNullable(PotionEffectType.getByName(effectName));
469+
470+
if (effectType.isEmpty()) {
471+
return "Unknown potion effect " + effectName;
472+
}
473+
474+
return effectType.filter(player::hasPotionEffect)
475+
.map(player::getPotionEffect)
476+
.map(PotionEffect::getAmplifier)
477+
.map(String::valueOf)
478+
.orElse("0");
464479
}
465480

466481
// item_in_hand_level_<enchantment name or key>

0 commit comments

Comments
 (0)