9
0
mirror of https://github.com/Auxilor/EcoArmor.git synced 2025-12-28 03:19:25 +00:00

Added has-permission condition

This commit is contained in:
Auxilor
2021-04-11 15:13:22 +01:00
parent 82b25a3a5b
commit 31506b7638
3 changed files with 42 additions and 3 deletions

View File

@@ -13,9 +13,7 @@ import com.willfp.ecoarmor.display.ArmorDisplay;
import com.willfp.ecoarmor.effects.Effect;
import com.willfp.ecoarmor.effects.Effects;
import com.willfp.ecoarmor.effects.util.EffectWatcher;
import com.willfp.ecoarmor.sets.ArmorSet;
import com.willfp.ecoarmor.sets.ArmorSets;
import com.willfp.ecoarmor.sets.meta.ArmorSlot;
import com.willfp.ecoarmor.sets.util.EffectiveDurabilityListener;
import com.willfp.ecoarmor.sets.util.PreventSkullPlaceListener;
import com.willfp.ecoarmor.upgrades.Tiers;
@@ -23,7 +21,6 @@ import com.willfp.ecoarmor.upgrades.listeners.AdvancementShardListener;
import com.willfp.ecoarmor.upgrades.listeners.CrystalListener;
import com.willfp.ecoarmor.util.DiscoverRecipeListener;
import lombok.Getter;
import org.bukkit.Bukkit;
import org.bukkit.event.Listener;
import org.jetbrains.annotations.Nullable;
@@ -63,6 +60,7 @@ public class EcoArmorPlugin extends EcoPlugin {
Effects.values().stream().filter(Effect::isEnabled).forEach(effect -> this.getEventManager().registerListener(effect));
Conditions.values().forEach(condition -> this.getEventManager().registerListener(condition));
this.getScheduler().runTimer((Runnable) Conditions.HAS_PERMISSION, 100, 100);
}
/**

View File

@@ -11,6 +11,7 @@ import com.willfp.ecoarmor.conditions.conditions.ConditionBelowHealthPercent;
import com.willfp.ecoarmor.conditions.conditions.ConditionBelowHungerPercent;
import com.willfp.ecoarmor.conditions.conditions.ConditionBelowXPLevel;
import com.willfp.ecoarmor.conditions.conditions.ConditionBelowY;
import com.willfp.ecoarmor.conditions.conditions.ConditionHasPermission;
import com.willfp.ecoarmor.conditions.conditions.ConditionInBiome;
import com.willfp.ecoarmor.conditions.conditions.ConditionInWater;
import com.willfp.ecoarmor.conditions.conditions.ConditionInWorld;
@@ -38,6 +39,7 @@ public class Conditions {
public static final Condition<?> ABOVE_HUNGER_PERCENT = new ConditionAboveHungerPercent();
public static final Condition<?> BELOW_HUNGER_PERCENT = new ConditionBelowHungerPercent();
public static final Condition<?> IN_BIOME = new ConditionInBiome();
public static final Condition<?> HAS_PERMISSION = new ConditionHasPermission();
/**
* Get condition matching name.s

View File

@@ -0,0 +1,39 @@
package com.willfp.ecoarmor.conditions.conditions;
import com.willfp.ecoarmor.conditions.Condition;
import com.willfp.ecoarmor.sets.ArmorSet;
import com.willfp.ecoarmor.sets.util.ArmorUtils;
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import org.jetbrains.annotations.NotNull;
public class ConditionHasPermission extends Condition<String> implements Runnable {
public ConditionHasPermission() {
super("has-permission", String.class);
}
@Override
public void run() {
for (Player player : Bukkit.getOnlinePlayers()) {
ArmorSet set = ArmorUtils.getSetOnPlayer(player);
if (set == null) {
return;
}
String value = set.getConditionValue(this);
if (value == null) {
return;
}
evaluateEffects(player, value, set);
}
}
@Override
public boolean isConditionMet(@NotNull final Player player,
@NotNull final String value) {
return player.hasPermission(value);
}
}