diff --git a/eco-core/core-plugin/src/main/java/com/willfp/reforges/conditions/Conditions.java b/eco-core/core-plugin/src/main/java/com/willfp/reforges/conditions/Conditions.java index 73ec284..001f6b1 100644 --- a/eco-core/core-plugin/src/main/java/com/willfp/reforges/conditions/Conditions.java +++ b/eco-core/core-plugin/src/main/java/com/willfp/reforges/conditions/Conditions.java @@ -12,6 +12,7 @@ import com.willfp.reforges.conditions.conditions.ConditionBelowHungerPercent; import com.willfp.reforges.conditions.conditions.ConditionBelowXPLevel; import com.willfp.reforges.conditions.conditions.ConditionBelowY; import com.willfp.reforges.conditions.conditions.ConditionHasPermission; +import com.willfp.reforges.conditions.conditions.ConditionInAir; import com.willfp.reforges.conditions.conditions.ConditionInBiome; import com.willfp.reforges.conditions.conditions.ConditionInWater; import com.willfp.reforges.conditions.conditions.ConditionInWorld; @@ -42,6 +43,7 @@ public class Conditions { public static final Condition IN_BIOME = new ConditionInBiome(); public static final Condition HAS_PERMISSION = new ConditionHasPermission(); public static final Condition IS_SNEAKING = new ConditionIsSneaking(); + public static final Condition IN_AIR = new ConditionInAir(); /** * Get condition matching name.s diff --git a/eco-core/core-plugin/src/main/kotlin/com/willfp/reforges/conditions/conditions/ConditionInAir.kt b/eco-core/core-plugin/src/main/kotlin/com/willfp/reforges/conditions/conditions/ConditionInAir.kt new file mode 100644 index 0000000..349bf42 --- /dev/null +++ b/eco-core/core-plugin/src/main/kotlin/com/willfp/reforges/conditions/conditions/ConditionInAir.kt @@ -0,0 +1,30 @@ +package com.willfp.reforges.conditions.conditions + +import com.willfp.eco.core.config.interfaces.JSONConfig +import com.willfp.reforges.conditions.Condition +import com.willfp.reforges.conditions.updateReforge +import com.willfp.reforges.reforges.ReforgeLookup +import org.bukkit.entity.Player +import org.bukkit.event.EventHandler +import org.bukkit.event.EventPriority +import org.bukkit.event.player.PlayerMoveEvent + +class ConditionInAir: Condition("in_air") { + @EventHandler( + priority = EventPriority.MONITOR, + ignoreCancelled = true + ) + fun handle(event: PlayerMoveEvent) { + val player = event.player + + val items = ReforgeLookup.provide(player) + + for (item in items) { + item.updateReforge(player, this) + } + } + + override fun isConditionMet(player: Player, config: JSONConfig): Boolean { + return player.location.block.isEmpty + } +} \ No newline at end of file diff --git a/eco-core/core-plugin/src/main/resources/reforges.json b/eco-core/core-plugin/src/main/resources/reforges.json index 38e9c46..d384581 100644 --- a/eco-core/core-plugin/src/main/resources/reforges.json +++ b/eco-core/core-plugin/src/main/resources/reforges.json @@ -21,16 +21,17 @@ "multiplier": 3, "chance": 2 } - ] + ], + "conditions": [] }, { - "id": "acute", - "name": "Acute", + "id": "aerobic", + "name": "Aerobic", "description": [ - "&a+2% &fTriple Damage Chance" + "&a+9% &fDamage when shot in air" ], "targets": [ - "axe" + "bow" ], "stone": { "enabled": false, @@ -41,8 +42,12 @@ "effects": [ { "id": "damage_multiplier", - "multiplier": 3, - "chance": 2 + "multiplier": 1.09 + } + ], + "conditions": [ + { + "id": } ] },