diff --git a/eco-core/core-plugin/src/main/java/com/willfp/reforges/ReforgesPlugin.java b/eco-core/core-plugin/src/main/java/com/willfp/reforges/ReforgesPlugin.java index 6494f5c..c188819 100644 --- a/eco-core/core-plugin/src/main/java/com/willfp/reforges/ReforgesPlugin.java +++ b/eco-core/core-plugin/src/main/java/com/willfp/reforges/ReforgesPlugin.java @@ -6,7 +6,6 @@ import com.willfp.eco.core.display.DisplayModule; import com.willfp.eco.core.items.Items; import com.willfp.reforges.commands.CommandReforge; import com.willfp.reforges.commands.CommandReforges; -import com.willfp.reforges.conditions.Conditions; import com.willfp.reforges.config.ReforgesJson; import com.willfp.reforges.config.TargetYml; import com.willfp.reforges.display.ReforgesDisplay; @@ -14,9 +13,9 @@ import com.willfp.reforges.effects.Effect; import com.willfp.reforges.effects.Effects; import com.willfp.reforges.reforges.Reforges; import com.willfp.reforges.reforges.util.ReforgeArgParser; +import com.willfp.reforges.reforges.util.ReforgeEnableListeners; +import com.willfp.reforges.reforges.util.ReforgeLookup; import com.willfp.reforges.reforges.util.WatcherTriggers; -import com.willfp.reforges.reforges.util.equip.ReforgeEnableListeners; -import com.willfp.reforges.reforges.util.equip.SyncReforgeEnableTask; import com.willfp.reforges.util.AntiPlaceListener; import com.willfp.reforges.util.DiscoverRecipeListener; import com.willfp.reforges.vault.EconomyHandler; @@ -79,10 +78,9 @@ public class ReforgesPlugin extends EcoPlugin { this.getScheduler().run(() -> this.getEventManager().registerListener(effect)); } this.getLogger().info(Reforges.values().size() + " Reforges Loaded"); - this.getScheduler().runTimer((Runnable) Conditions.HAS_PERMISSION, 103, 100); this.getScheduler().runTimer(() -> { for (Player player : Bukkit.getOnlinePlayers()) { - SyncReforgeEnableTask.CHECK.accept(player); + ReforgeLookup.updateReforges(player); } }, 81, 81); } diff --git a/eco-core/core-plugin/src/main/java/com/willfp/reforges/reforges/util/equip/ReforgeEnableListeners.java b/eco-core/core-plugin/src/main/java/com/willfp/reforges/reforges/util/ReforgeEnableListeners.java similarity index 83% rename from eco-core/core-plugin/src/main/java/com/willfp/reforges/reforges/util/equip/ReforgeEnableListeners.java rename to eco-core/core-plugin/src/main/java/com/willfp/reforges/reforges/util/ReforgeEnableListeners.java index 3343dd3..4b1b1ec 100644 --- a/eco-core/core-plugin/src/main/java/com/willfp/reforges/reforges/util/equip/ReforgeEnableListeners.java +++ b/eco-core/core-plugin/src/main/java/com/willfp/reforges/reforges/util/ReforgeEnableListeners.java @@ -1,4 +1,4 @@ -package com.willfp.reforges.reforges.util.equip; +package com.willfp.reforges.reforges.util; import com.willfp.eco.core.EcoPlugin; import com.willfp.eco.core.PluginDependent; @@ -14,8 +14,6 @@ import org.bukkit.event.inventory.InventoryClickEvent; import org.bukkit.event.player.PlayerDropItemEvent; import org.bukkit.event.player.PlayerJoinEvent; import org.bukkit.event.player.PlayerQuitEvent; -import org.bukkit.event.player.PlayerSwapHandItemsEvent; -import org.bukkit.inventory.ItemStack; import org.jetbrains.annotations.NotNull; public class ReforgeEnableListeners extends PluginDependent implements Listener { @@ -85,12 +83,7 @@ public class ReforgeEnableListeners extends PluginDependent implement return; } - refreshPlayer(event.getPlayer(), event.getItemDrop().getItemStack()); - } - - @EventHandler - public void onSwitchHands(@NotNull final PlayerSwapHandItemsEvent event) { - refreshPlayer(event.getPlayer(), event.getPlayer().getInventory().getItemInOffHand()); + refreshPlayer(event.getPlayer()); } /** @@ -116,8 +109,7 @@ public class ReforgeEnableListeners extends PluginDependent implement this.getPlugin().getServer().getOnlinePlayers().forEach(this::refreshPlayer); } - private void refreshPlayer(@NotNull final Player player, - @NotNull final ItemStack... extra) { - SyncReforgeEnableTask.CHECK.accept(player); + private void refreshPlayer(@NotNull final Player player) { + ReforgeLookup.updateReforges(player); } } \ No newline at end of file diff --git a/eco-core/core-plugin/src/main/java/com/willfp/reforges/reforges/ReforgeLookup.java b/eco-core/core-plugin/src/main/java/com/willfp/reforges/reforges/util/ReforgeLookup.java similarity index 82% rename from eco-core/core-plugin/src/main/java/com/willfp/reforges/reforges/ReforgeLookup.java rename to eco-core/core-plugin/src/main/java/com/willfp/reforges/reforges/util/ReforgeLookup.java index 227ea55..a5da7cb 100644 --- a/eco-core/core-plugin/src/main/java/com/willfp/reforges/reforges/ReforgeLookup.java +++ b/eco-core/core-plugin/src/main/java/com/willfp/reforges/reforges/util/ReforgeLookup.java @@ -1,9 +1,9 @@ -package com.willfp.reforges.reforges; +package com.willfp.reforges.reforges.util; import com.willfp.eco.core.EcoPlugin; import com.willfp.reforges.ReforgesPlugin; +import com.willfp.reforges.reforges.Reforge; import com.willfp.reforges.reforges.meta.ReforgeTarget; -import com.willfp.reforges.reforges.util.ReforgeUtils; import org.bukkit.entity.Player; import org.bukkit.inventory.ItemStack; import org.jetbrains.annotations.NotNull; @@ -127,6 +127,31 @@ public class ReforgeLookup { ITEM_CACHE.remove(player.getUniqueId()); } + /** + * Update reforges for a player. + * + * @param player The player. + */ + public static void updateReforges(@NotNull final Player player) { + List before = ReforgeLookup.provideReforges(player); + ReforgeLookup.clearCaches(player); + PLUGIN.getScheduler().run(() -> { + List after = ReforgeLookup.provideReforges(player); + List added = new ArrayList<>(after); + added.removeAll(before); + + for (Reforge reforge : added) { + reforge.handleActivation(player); + } + + before.removeAll(after); + + for (Reforge reforge : before) { + reforge.handleDeactivation(player); + } + }); + } + static { registerProvider(player -> Map.of( player.getInventory().getItemInMainHand(), @@ -136,7 +161,7 @@ public class ReforgeLookup { player.getInventory().getItemInOffHand(), ReforgeTarget.Slot.HANDS )); - registerProvider(player -> { + registerProvider(player -> { Map items = new HashMap<>(); for (ItemStack stack : player.getInventory().getArmorContents()) { items.put(stack, ReforgeTarget.Slot.ARMOR); diff --git a/eco-core/core-plugin/src/main/java/com/willfp/reforges/reforges/util/Watcher.java b/eco-core/core-plugin/src/main/java/com/willfp/reforges/reforges/util/Watcher.java index a17118e..777293d 100644 --- a/eco-core/core-plugin/src/main/java/com/willfp/reforges/reforges/util/Watcher.java +++ b/eco-core/core-plugin/src/main/java/com/willfp/reforges/reforges/util/Watcher.java @@ -43,7 +43,7 @@ public interface Watcher { * @param event The event. * @param config The effect config. */ - default void onAnyDamage(@NotNull final LivingEntity attacker, + default void onAnyDamage(@NotNull final Player attacker, @NotNull final LivingEntity victim, @NotNull final EntityDamageByEntityEvent event, @NotNull final JSONConfig config) { @@ -59,7 +59,7 @@ public interface Watcher { * @param event The event that called this watcher. * @param config The effect config. */ - default void onArrowDamage(@NotNull final LivingEntity attacker, + default void onArrowDamage(@NotNull final Player attacker, @NotNull final LivingEntity victim, @NotNull final Arrow arrow, @NotNull final EntityDamageByEntityEvent event, @@ -76,7 +76,7 @@ public interface Watcher { * @param event The event that called this watcher. * @param config The effect config. */ - default void onTridentDamage(@NotNull final LivingEntity attacker, + default void onTridentDamage(@NotNull final Player attacker, @NotNull final LivingEntity victim, @NotNull final Trident trident, @NotNull final EntityDamageByEntityEvent event, @@ -105,7 +105,7 @@ public interface Watcher { * @param event The event that called this watcher. * @param config The effect config. */ - default void onMeleeAttack(@NotNull final LivingEntity attacker, + default void onMeleeAttack(@NotNull final Player attacker, @NotNull final LivingEntity victim, @NotNull final EntityDamageByEntityEvent event, @NotNull final JSONConfig config) { @@ -120,7 +120,7 @@ public interface Watcher { * @param event The event that called this watcher. * @param config The effect config. */ - default void onProjectileLaunch(@NotNull final LivingEntity shooter, + default void onProjectileLaunch(@NotNull final Player shooter, @NotNull final Projectile projectile, @NotNull final ProjectileLaunchEvent event, @NotNull final JSONConfig config) { @@ -134,7 +134,7 @@ public interface Watcher { * @param event The event that called this watcher. * @param config The effect config. */ - default void onFallDamage(@NotNull final LivingEntity faller, + default void onFallDamage(@NotNull final Player faller, @NotNull final EntityDamageEvent event, @NotNull final JSONConfig config) { // Empty default as effects only override required watchers. @@ -147,7 +147,7 @@ public interface Watcher { * @param event The event that called this watcher. * @param config The effect config. */ - default void onProjectileHit(@NotNull final LivingEntity shooter, + default void onProjectileHit(@NotNull final Player shooter, @NotNull final ProjectileHitEvent event, @NotNull final JSONConfig config) { // Empty default as effects only override required watchers. @@ -161,7 +161,7 @@ public interface Watcher { * @param event The event. * @param config The effect config. */ - default void onKill(@NotNull final LivingEntity killer, + default void onKill(@NotNull final Player killer, @NotNull final LivingEntity victim, @NotNull final EntityDeathByEntityEvent event, @NotNull final JSONConfig config) { @@ -175,7 +175,7 @@ public interface Watcher { * @param event The event that called this watcher. * @param config The effect config. */ - default void onDamageWearingArmor(@NotNull final LivingEntity victim, + default void onDamageWearingArmor(@NotNull final Player victim, @NotNull final EntityDamageEvent event, @NotNull final JSONConfig config) { // Empty default as effects only override required watchers. @@ -189,7 +189,7 @@ public interface Watcher { * @param event The event that called this watcher. * @param config The effect config. */ - default void onTridentLaunch(@NotNull final LivingEntity shooter, + default void onTridentLaunch(@NotNull final Player shooter, @NotNull final Trident trident, @NotNull final ProjectileLaunchEvent event, @NotNull final JSONConfig config) { diff --git a/eco-core/core-plugin/src/main/java/com/willfp/reforges/reforges/util/equip/SyncReforgeEnableTask.java b/eco-core/core-plugin/src/main/java/com/willfp/reforges/reforges/util/equip/SyncReforgeEnableTask.java deleted file mode 100644 index bec4f9e..0000000 --- a/eco-core/core-plugin/src/main/java/com/willfp/reforges/reforges/util/equip/SyncReforgeEnableTask.java +++ /dev/null @@ -1,29 +0,0 @@ -package com.willfp.reforges.reforges.util.equip; - -import com.willfp.reforges.reforges.Reforge; -import com.willfp.reforges.reforges.ReforgeLookup; -import org.bukkit.entity.Player; - -import java.util.ArrayList; -import java.util.List; -import java.util.function.Consumer; - -public class SyncReforgeEnableTask { - public static final Consumer CHECK = (player) -> { - List before = ReforgeLookup.provideReforges(player); - ReforgeLookup.clearCaches(player); - List after = ReforgeLookup.provideReforges(player); - List added = new ArrayList<>(after); - added.removeAll(before); - - for (Reforge reforge : added) { - reforge.handleActivation(player); - } - - before.removeAll(after); - - for (Reforge reforge : before) { - reforge.handleDeactivation(player); - } - }; -} \ No newline at end of file diff --git a/eco-core/core-plugin/src/main/kotlin/com/willfp/reforges/conditions/ConditionHelper.kt b/eco-core/core-plugin/src/main/kotlin/com/willfp/reforges/conditions/ConditionHelper.kt deleted file mode 100644 index 04962a7..0000000 --- a/eco-core/core-plugin/src/main/kotlin/com/willfp/reforges/conditions/ConditionHelper.kt +++ /dev/null @@ -1,35 +0,0 @@ -package com.willfp.reforges.conditions - -import com.willfp.reforges.ReforgesPlugin -import com.willfp.reforges.reforges.util.ReforgeUtils -import org.bukkit.entity.Player -import org.bukkit.inventory.ItemStack - -private val plugin = ReforgesPlugin.getInstance() - -fun ItemStack.updateReforge(player: Player, condition: Condition) { - plugin.scheduler.run { - val meta = this.itemMeta ?: return@run - - val reforge = ReforgeUtils.getReforge(meta) ?: return@run - - var allow = true - - for ((cond, cfg) in reforge.conditions) { - if (cond != condition) { - continue - } - - if (!cond.isConditionMet(player, cfg)) { - allow = false - break - } - } - - if (allow) { - reforge.handleActivation(player) - } else { - reforge.handleActivation(player) - } - } -} \ No newline at end of file diff --git a/eco-core/core-plugin/src/main/kotlin/com/willfp/reforges/conditions/conditions/ConditionAboveHealthPercent.kt b/eco-core/core-plugin/src/main/kotlin/com/willfp/reforges/conditions/conditions/ConditionAboveHealthPercent.kt index aa2811d..9d0e36e 100644 --- a/eco-core/core-plugin/src/main/kotlin/com/willfp/reforges/conditions/conditions/ConditionAboveHealthPercent.kt +++ b/eco-core/core-plugin/src/main/kotlin/com/willfp/reforges/conditions/conditions/ConditionAboveHealthPercent.kt @@ -2,8 +2,7 @@ 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 com.willfp.reforges.reforges.util.ReforgeLookup import org.bukkit.attribute.Attribute import org.bukkit.entity.Player import org.bukkit.event.EventHandler @@ -23,11 +22,7 @@ class ConditionAboveHealthPercent: Condition("above_health_percent") { return } - val items = ReforgeLookup.provide(player) - - for (item in items) { - item.updateReforge(player, this) - } + ReforgeLookup.updateReforges(player) } @EventHandler( @@ -41,11 +36,7 @@ class ConditionAboveHealthPercent: Condition("above_health_percent") { return } - val items = ReforgeLookup.provide(player) - - for (item in items) { - item.updateReforge(player, this) - } + ReforgeLookup.updateReforges(player) } override fun isConditionMet(player: Player, config: JSONConfig): Boolean { diff --git a/eco-core/core-plugin/src/main/kotlin/com/willfp/reforges/conditions/conditions/ConditionAboveHungerPercent.kt b/eco-core/core-plugin/src/main/kotlin/com/willfp/reforges/conditions/conditions/ConditionAboveHungerPercent.kt index 78c4527..f695037 100644 --- a/eco-core/core-plugin/src/main/kotlin/com/willfp/reforges/conditions/conditions/ConditionAboveHungerPercent.kt +++ b/eco-core/core-plugin/src/main/kotlin/com/willfp/reforges/conditions/conditions/ConditionAboveHungerPercent.kt @@ -2,8 +2,7 @@ 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 com.willfp.reforges.reforges.util.ReforgeLookup import org.bukkit.entity.Player import org.bukkit.event.EventHandler import org.bukkit.event.EventPriority @@ -22,11 +21,7 @@ class ConditionAboveHungerPercent : Condition("above_hunger_percent") { return } - val items = ReforgeLookup.provide(player) - - for (item in items) { - item.updateReforge(player, this) - } + ReforgeLookup.updateReforges(player) } override fun isConditionMet(player: Player, config: JSONConfig): Boolean { diff --git a/eco-core/core-plugin/src/main/kotlin/com/willfp/reforges/conditions/conditions/ConditionAboveXPLevel.kt b/eco-core/core-plugin/src/main/kotlin/com/willfp/reforges/conditions/conditions/ConditionAboveXPLevel.kt index 4f55c7e..be3a026 100644 --- a/eco-core/core-plugin/src/main/kotlin/com/willfp/reforges/conditions/conditions/ConditionAboveXPLevel.kt +++ b/eco-core/core-plugin/src/main/kotlin/com/willfp/reforges/conditions/conditions/ConditionAboveXPLevel.kt @@ -2,8 +2,7 @@ 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 com.willfp.reforges.reforges.util.ReforgeLookup import org.bukkit.entity.Player import org.bukkit.event.EventHandler import org.bukkit.event.EventPriority @@ -18,11 +17,7 @@ class ConditionAboveXPLevel : Condition("above_xp_level") { fun handle(event: PlayerExpChangeEvent) { val player = event.player - val items = ReforgeLookup.provide(player) - - for (item in items) { - item.updateReforge(player, this) - } + ReforgeLookup.updateReforges(player) } override fun isConditionMet(player: Player, config: JSONConfig): Boolean { diff --git a/eco-core/core-plugin/src/main/kotlin/com/willfp/reforges/conditions/conditions/ConditionAboveY.kt b/eco-core/core-plugin/src/main/kotlin/com/willfp/reforges/conditions/conditions/ConditionAboveY.kt index 5d93e78..d6666c2 100644 --- a/eco-core/core-plugin/src/main/kotlin/com/willfp/reforges/conditions/conditions/ConditionAboveY.kt +++ b/eco-core/core-plugin/src/main/kotlin/com/willfp/reforges/conditions/conditions/ConditionAboveY.kt @@ -2,8 +2,7 @@ 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 com.willfp.reforges.reforges.util.ReforgeLookup import org.bukkit.entity.Player import org.bukkit.event.EventHandler import org.bukkit.event.EventPriority @@ -17,11 +16,7 @@ class ConditionAboveY: Condition("above_y") { fun handle(event: PlayerMoveEvent) { val player = event.player - val items = ReforgeLookup.provide(player) - - for (item in items) { - item.updateReforge(player, this) - } + ReforgeLookup.updateReforges(player) } override fun isConditionMet(player: Player, config: JSONConfig): Boolean { diff --git a/eco-core/core-plugin/src/main/kotlin/com/willfp/reforges/conditions/conditions/ConditionBelowHealthPercent.kt b/eco-core/core-plugin/src/main/kotlin/com/willfp/reforges/conditions/conditions/ConditionBelowHealthPercent.kt index 4440943..1c7236f 100644 --- a/eco-core/core-plugin/src/main/kotlin/com/willfp/reforges/conditions/conditions/ConditionBelowHealthPercent.kt +++ b/eco-core/core-plugin/src/main/kotlin/com/willfp/reforges/conditions/conditions/ConditionBelowHealthPercent.kt @@ -2,8 +2,7 @@ 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 com.willfp.reforges.reforges.util.ReforgeLookup import org.bukkit.attribute.Attribute import org.bukkit.entity.Player import org.bukkit.event.EventHandler @@ -23,11 +22,7 @@ class ConditionBelowHealthPercent: Condition("below_health_percent") { return } - val items = ReforgeLookup.provide(player) - - for (item in items) { - item.updateReforge(player, this) - } + ReforgeLookup.updateReforges(player) } @EventHandler( @@ -41,11 +36,7 @@ class ConditionBelowHealthPercent: Condition("below_health_percent") { return } - val items = ReforgeLookup.provide(player) - - for (item in items) { - item.updateReforge(player, this) - } + ReforgeLookup.updateReforges(player) } override fun isConditionMet(player: Player, config: JSONConfig): Boolean { diff --git a/eco-core/core-plugin/src/main/kotlin/com/willfp/reforges/conditions/conditions/ConditionBelowHungerPercent.kt b/eco-core/core-plugin/src/main/kotlin/com/willfp/reforges/conditions/conditions/ConditionBelowHungerPercent.kt index a11dc05..47ee948 100644 --- a/eco-core/core-plugin/src/main/kotlin/com/willfp/reforges/conditions/conditions/ConditionBelowHungerPercent.kt +++ b/eco-core/core-plugin/src/main/kotlin/com/willfp/reforges/conditions/conditions/ConditionBelowHungerPercent.kt @@ -2,8 +2,7 @@ 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 com.willfp.reforges.reforges.util.ReforgeLookup import org.bukkit.entity.Player import org.bukkit.event.EventHandler import org.bukkit.event.EventPriority @@ -22,11 +21,7 @@ class ConditionBelowHungerPercent : Condition("below_hunger_percent") { return } - val items = ReforgeLookup.provide(player) - - for (item in items) { - item.updateReforge(player, this) - } + ReforgeLookup.updateReforges(player) } override fun isConditionMet(player: Player, config: JSONConfig): Boolean { diff --git a/eco-core/core-plugin/src/main/kotlin/com/willfp/reforges/conditions/conditions/ConditionBelowXPLevel.kt b/eco-core/core-plugin/src/main/kotlin/com/willfp/reforges/conditions/conditions/ConditionBelowXPLevel.kt index ee96162..5ca640a 100644 --- a/eco-core/core-plugin/src/main/kotlin/com/willfp/reforges/conditions/conditions/ConditionBelowXPLevel.kt +++ b/eco-core/core-plugin/src/main/kotlin/com/willfp/reforges/conditions/conditions/ConditionBelowXPLevel.kt @@ -2,8 +2,7 @@ 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 com.willfp.reforges.reforges.util.ReforgeLookup import org.bukkit.entity.Player import org.bukkit.event.EventHandler import org.bukkit.event.EventPriority @@ -18,11 +17,7 @@ class ConditionBelowXPLevel: Condition("below_xp_level") { fun handle(event: PlayerExpChangeEvent) { val player = event.player - val items = ReforgeLookup.provide(player) - - for (item in items) { - item.updateReforge(player, this) - } + ReforgeLookup.updateReforges(player) } override fun isConditionMet(player: Player, config: JSONConfig): Boolean { diff --git a/eco-core/core-plugin/src/main/kotlin/com/willfp/reforges/conditions/conditions/ConditionBelowY.kt b/eco-core/core-plugin/src/main/kotlin/com/willfp/reforges/conditions/conditions/ConditionBelowY.kt index 19235ef..a0b6c1f 100644 --- a/eco-core/core-plugin/src/main/kotlin/com/willfp/reforges/conditions/conditions/ConditionBelowY.kt +++ b/eco-core/core-plugin/src/main/kotlin/com/willfp/reforges/conditions/conditions/ConditionBelowY.kt @@ -2,8 +2,7 @@ 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 com.willfp.reforges.reforges.util.ReforgeLookup import org.bukkit.entity.Player import org.bukkit.event.EventHandler import org.bukkit.event.EventPriority @@ -17,11 +16,7 @@ class ConditionBelowY: Condition("below_y") { fun handle(event: PlayerMoveEvent) { val player = event.player - val items = ReforgeLookup.provide(player) - - for (item in items) { - item.updateReforge(player, this) - } + ReforgeLookup.updateReforges(player) } override fun isConditionMet(player: Player, config: JSONConfig): Boolean { diff --git a/eco-core/core-plugin/src/main/kotlin/com/willfp/reforges/conditions/conditions/ConditionHasPermission.kt b/eco-core/core-plugin/src/main/kotlin/com/willfp/reforges/conditions/conditions/ConditionHasPermission.kt index 46a0a39..a23cbbc 100644 --- a/eco-core/core-plugin/src/main/kotlin/com/willfp/reforges/conditions/conditions/ConditionHasPermission.kt +++ b/eco-core/core-plugin/src/main/kotlin/com/willfp/reforges/conditions/conditions/ConditionHasPermission.kt @@ -2,22 +2,10 @@ 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.Bukkit import org.bukkit.entity.Player -class ConditionHasPermission : Condition("is_sneaking"), Runnable { - override fun run() { - for (player in Bukkit.getOnlinePlayers()) { - val items = ReforgeLookup.provide(player) - for (item in items) { - item.updateReforge(player, this) - } - } - } - +class ConditionHasPermission : Condition("is_sneaking") { override fun isConditionMet(player: Player, config: JSONConfig): Boolean { return player.hasPermission(config.getString("permission")) } 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 index 349bf42..8dc1d8e 100644 --- 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 @@ -2,8 +2,7 @@ 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 com.willfp.reforges.reforges.util.ReforgeLookup import org.bukkit.entity.Player import org.bukkit.event.EventHandler import org.bukkit.event.EventPriority @@ -17,11 +16,7 @@ class ConditionInAir: Condition("in_air") { fun handle(event: PlayerMoveEvent) { val player = event.player - val items = ReforgeLookup.provide(player) - - for (item in items) { - item.updateReforge(player, this) - } + ReforgeLookup.updateReforges(player) } override fun isConditionMet(player: Player, config: JSONConfig): Boolean { diff --git a/eco-core/core-plugin/src/main/kotlin/com/willfp/reforges/conditions/conditions/ConditionInBiome.kt b/eco-core/core-plugin/src/main/kotlin/com/willfp/reforges/conditions/conditions/ConditionInBiome.kt index abf2955..8cf0c0b 100644 --- a/eco-core/core-plugin/src/main/kotlin/com/willfp/reforges/conditions/conditions/ConditionInBiome.kt +++ b/eco-core/core-plugin/src/main/kotlin/com/willfp/reforges/conditions/conditions/ConditionInBiome.kt @@ -2,8 +2,7 @@ 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 com.willfp.reforges.reforges.util.ReforgeLookup import org.bukkit.entity.Player import org.bukkit.event.EventHandler import org.bukkit.event.EventPriority @@ -17,11 +16,7 @@ class ConditionInBiome: Condition("in_biome") { fun handle(event: PlayerMoveEvent) { val player = event.player - val items = ReforgeLookup.provide(player) - - for (item in items) { - item.updateReforge(player, this) - } + ReforgeLookup.updateReforges(player) } override fun isConditionMet(player: Player, config: JSONConfig): Boolean { diff --git a/eco-core/core-plugin/src/main/kotlin/com/willfp/reforges/conditions/conditions/ConditionInWater.kt b/eco-core/core-plugin/src/main/kotlin/com/willfp/reforges/conditions/conditions/ConditionInWater.kt index c84b4f5..00fcfc9 100644 --- a/eco-core/core-plugin/src/main/kotlin/com/willfp/reforges/conditions/conditions/ConditionInWater.kt +++ b/eco-core/core-plugin/src/main/kotlin/com/willfp/reforges/conditions/conditions/ConditionInWater.kt @@ -2,8 +2,7 @@ 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 com.willfp.reforges.reforges.util.ReforgeLookup import org.bukkit.entity.Player import org.bukkit.event.EventHandler import org.bukkit.event.EventPriority @@ -17,11 +16,7 @@ class ConditionInWater: Condition("in_water") { fun handle(event: PlayerMoveEvent) { val player = event.player - val items = ReforgeLookup.provide(player) - - for (item in items) { - item.updateReforge(player, this) - } + ReforgeLookup.updateReforges(player) } override fun isConditionMet(player: Player, config: JSONConfig): Boolean { diff --git a/eco-core/core-plugin/src/main/kotlin/com/willfp/reforges/conditions/conditions/ConditionInWorld.kt b/eco-core/core-plugin/src/main/kotlin/com/willfp/reforges/conditions/conditions/ConditionInWorld.kt index 8149de2..0839380 100644 --- a/eco-core/core-plugin/src/main/kotlin/com/willfp/reforges/conditions/conditions/ConditionInWorld.kt +++ b/eco-core/core-plugin/src/main/kotlin/com/willfp/reforges/conditions/conditions/ConditionInWorld.kt @@ -2,8 +2,7 @@ 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 com.willfp.reforges.reforges.util.ReforgeLookup import org.bukkit.entity.Player import org.bukkit.event.EventHandler import org.bukkit.event.EventPriority @@ -17,11 +16,7 @@ class ConditionInWorld: Condition("in_world") { fun handle(event: PlayerMoveEvent) { val player = event.player - val items = ReforgeLookup.provide(player) - - for (item in items) { - item.updateReforge(player, this) - } + ReforgeLookup.updateReforges(player) } override fun isConditionMet(player: Player, config: JSONConfig): Boolean { diff --git a/eco-core/core-plugin/src/main/kotlin/com/willfp/reforges/conditions/conditions/ConditionIsSneaking.kt b/eco-core/core-plugin/src/main/kotlin/com/willfp/reforges/conditions/conditions/ConditionIsSneaking.kt index a66d450..87aa8b6 100644 --- a/eco-core/core-plugin/src/main/kotlin/com/willfp/reforges/conditions/conditions/ConditionIsSneaking.kt +++ b/eco-core/core-plugin/src/main/kotlin/com/willfp/reforges/conditions/conditions/ConditionIsSneaking.kt @@ -2,8 +2,7 @@ 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 com.willfp.reforges.reforges.util.ReforgeLookup import org.bukkit.entity.Player import org.bukkit.event.EventHandler import org.bukkit.event.EventPriority @@ -17,11 +16,7 @@ class ConditionIsSneaking: Condition("is_sneaking") { fun handle(event: PlayerToggleSneakEvent) { val player = event.player - val items = ReforgeLookup.provide(player) - - for (item in items) { - item.updateReforge(player, this) - } + ReforgeLookup.updateReforges(player) } override fun isConditionMet(player: Player, config: JSONConfig): Boolean { diff --git a/eco-core/core-plugin/src/main/kotlin/com/willfp/reforges/effects/effects/EffectCritMultiplier.kt b/eco-core/core-plugin/src/main/kotlin/com/willfp/reforges/effects/effects/EffectCritMultiplier.kt index f498bf8..c124ed1 100644 --- a/eco-core/core-plugin/src/main/kotlin/com/willfp/reforges/effects/effects/EffectCritMultiplier.kt +++ b/eco-core/core-plugin/src/main/kotlin/com/willfp/reforges/effects/effects/EffectCritMultiplier.kt @@ -3,11 +3,12 @@ package com.willfp.reforges.effects.effects import com.willfp.eco.core.config.interfaces.JSONConfig import com.willfp.reforges.effects.Effect import org.bukkit.entity.LivingEntity +import org.bukkit.entity.Player import org.bukkit.event.entity.EntityDamageByEntityEvent class EffectCritMultiplier : Effect("crit_multiplier") { override fun onAnyDamage( - attacker: LivingEntity, + attacker: Player, victim: LivingEntity, event: EntityDamageByEntityEvent, config: JSONConfig diff --git a/eco-core/core-plugin/src/main/kotlin/com/willfp/reforges/effects/effects/EffectDamageMultiplier.kt b/eco-core/core-plugin/src/main/kotlin/com/willfp/reforges/effects/effects/EffectDamageMultiplier.kt index a319c02..49f7710 100644 --- a/eco-core/core-plugin/src/main/kotlin/com/willfp/reforges/effects/effects/EffectDamageMultiplier.kt +++ b/eco-core/core-plugin/src/main/kotlin/com/willfp/reforges/effects/effects/EffectDamageMultiplier.kt @@ -3,11 +3,12 @@ package com.willfp.reforges.effects.effects import com.willfp.eco.core.config.interfaces.JSONConfig import com.willfp.reforges.effects.Effect import org.bukkit.entity.LivingEntity +import org.bukkit.entity.Player import org.bukkit.event.entity.EntityDamageByEntityEvent class EffectDamageMultiplier : Effect("damage_multiplier") { override fun onAnyDamage( - attacker: LivingEntity, + attacker: Player, victim: LivingEntity, event: EntityDamageByEntityEvent, config: JSONConfig diff --git a/eco-core/core-plugin/src/main/kotlin/com/willfp/reforges/effects/effects/EffectIncomingDamageMultiplier.kt b/eco-core/core-plugin/src/main/kotlin/com/willfp/reforges/effects/effects/EffectIncomingDamageMultiplier.kt index 449c69b..44a270b 100644 --- a/eco-core/core-plugin/src/main/kotlin/com/willfp/reforges/effects/effects/EffectIncomingDamageMultiplier.kt +++ b/eco-core/core-plugin/src/main/kotlin/com/willfp/reforges/effects/effects/EffectIncomingDamageMultiplier.kt @@ -2,12 +2,12 @@ package com.willfp.reforges.effects.effects import com.willfp.eco.core.config.interfaces.JSONConfig import com.willfp.reforges.effects.Effect -import org.bukkit.entity.LivingEntity +import org.bukkit.entity.Player import org.bukkit.event.entity.EntityDamageEvent class EffectIncomingDamageMultiplier : Effect("incoming_damage_multiplier") { override fun onDamageWearingArmor( - victim: LivingEntity, + victim: Player, event: EntityDamageEvent, config: JSONConfig ) { diff --git a/eco-core/core-plugin/src/main/kotlin/com/willfp/reforges/effects/effects/EffectRewardKill.kt b/eco-core/core-plugin/src/main/kotlin/com/willfp/reforges/effects/effects/EffectRewardKill.kt index 4ace99c..b147fde 100644 --- a/eco-core/core-plugin/src/main/kotlin/com/willfp/reforges/effects/effects/EffectRewardKill.kt +++ b/eco-core/core-plugin/src/main/kotlin/com/willfp/reforges/effects/effects/EffectRewardKill.kt @@ -9,15 +9,11 @@ import org.bukkit.entity.Player class EffectRewardKill : Effect("reward_kill") { override fun onKill( - killer: LivingEntity, + killer: Player, victim: LivingEntity, event: EntityDeathByEntityEvent, config: JSONConfig ) { - if (killer !is Player) { - return - } - EconomyHandler.getInstance().depositPlayer(killer, config.getDouble("amount")) } } \ No newline at end of file diff --git a/eco-core/core-plugin/src/main/kotlin/com/willfp/reforges/reforges/util/WatcherTriggers.kt b/eco-core/core-plugin/src/main/kotlin/com/willfp/reforges/reforges/util/WatcherTriggers.kt index 572117c..b0531c1 100644 --- a/eco-core/core-plugin/src/main/kotlin/com/willfp/reforges/reforges/util/WatcherTriggers.kt +++ b/eco-core/core-plugin/src/main/kotlin/com/willfp/reforges/reforges/util/WatcherTriggers.kt @@ -6,7 +6,6 @@ import com.willfp.eco.core.events.PlayerJumpEvent import com.willfp.eco.core.integrations.antigrief.AntigriefManager import com.willfp.eco.core.integrations.mcmmo.McmmoManager import com.willfp.eco.util.NumberUtils -import com.willfp.reforges.reforges.ReforgeLookup import org.bukkit.entity.* import org.bukkit.event.EventHandler import org.bukkit.event.Listener