mirror of
https://github.com/Auxilor/Reforges.git
synced 2025-12-28 11:29:20 +00:00
Fixed caching errors and slow update times
This commit is contained in:
@@ -17,6 +17,7 @@ import com.willfp.reforges.reforges.Reforge;
|
||||
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.util.AntiPlaceListener;
|
||||
import com.willfp.reforges.util.DiscoverRecipeListener;
|
||||
import lombok.Getter;
|
||||
@@ -56,6 +57,8 @@ public class ReforgesPlugin extends EcoPlugin {
|
||||
this.targetYml = new TargetYml(this);
|
||||
this.reforgesJson = new ReforgesJson(this);
|
||||
instance = this;
|
||||
|
||||
LibReforge.registerHolderProvider(player -> new ArrayList<>(ReforgeLookup.provideReforges(player)));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -97,6 +97,8 @@ public class ReforgeEnableListeners extends PluginDependent<EcoPlugin> implement
|
||||
@EventHandler
|
||||
public void onChangeSlot(@NotNull final PlayerItemHeldEvent event) {
|
||||
refreshPlayer(event.getPlayer());
|
||||
|
||||
this.getPlugin().getScheduler().run(() -> refreshPlayer(event.getPlayer()));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -133,6 +135,7 @@ public class ReforgeEnableListeners extends PluginDependent<EcoPlugin> implement
|
||||
}
|
||||
|
||||
private void refreshPlayer(@NotNull final Player player) {
|
||||
ReforgeLookup.clearCache(player);
|
||||
LibReforgeUtils.updateEffects(player);
|
||||
}
|
||||
}
|
||||
@@ -1,7 +1,6 @@
|
||||
package com.willfp.reforges.reforges.util;
|
||||
|
||||
import com.willfp.eco.core.EcoPlugin;
|
||||
import com.willfp.libreforge.LibReforge;
|
||||
import com.willfp.reforges.ReforgesPlugin;
|
||||
import com.willfp.reforges.reforges.Reforge;
|
||||
import com.willfp.reforges.reforges.meta.ReforgeTarget;
|
||||
@@ -119,6 +118,16 @@ public class ReforgeLookup {
|
||||
return found;
|
||||
}
|
||||
|
||||
/**
|
||||
* Clear cache.
|
||||
*
|
||||
* @param player The player.
|
||||
*/
|
||||
public static void clearCache(@NotNull final Player player) {
|
||||
ITEM_CACHE.remove(player.getUniqueId());
|
||||
REFORGE_CACHE.remove(player.getUniqueId());
|
||||
}
|
||||
|
||||
static {
|
||||
registerProvider(player -> Map.of(
|
||||
player.getInventory().getItemInMainHand(),
|
||||
@@ -135,7 +144,5 @@ public class ReforgeLookup {
|
||||
}
|
||||
return items;
|
||||
});
|
||||
|
||||
LibReforge.registerHolderProvider(player -> new ArrayList<>(provideReforges(player)));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,209 +0,0 @@
|
||||
package com.willfp.reforges.reforges.util;
|
||||
|
||||
import com.willfp.eco.core.config.interfaces.JSONConfig;
|
||||
import com.willfp.eco.core.events.EntityDeathByEntityEvent;
|
||||
import org.bukkit.block.Block;
|
||||
import org.bukkit.entity.Arrow;
|
||||
import org.bukkit.entity.LivingEntity;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.entity.Projectile;
|
||||
import org.bukkit.entity.Trident;
|
||||
import org.bukkit.event.block.BlockBreakEvent;
|
||||
import org.bukkit.event.entity.EntityDamageByEntityEvent;
|
||||
import org.bukkit.event.entity.EntityDamageEvent;
|
||||
import org.bukkit.event.entity.ProjectileHitEvent;
|
||||
import org.bukkit.event.entity.ProjectileLaunchEvent;
|
||||
import org.bukkit.event.player.PlayerItemDamageEvent;
|
||||
import org.bukkit.event.player.PlayerMoveEvent;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
@SuppressWarnings("unused")
|
||||
public interface Watcher {
|
||||
|
||||
/**
|
||||
* Called when a player breaks a block.
|
||||
*
|
||||
* @param player The player.
|
||||
* @param block The block that was broken.
|
||||
* @param event The event that called this watcher.
|
||||
* @param config The effect config.
|
||||
*/
|
||||
default void onBlockBreak(@NotNull final Player player,
|
||||
@NotNull final Block block,
|
||||
@NotNull final BlockBreakEvent event,
|
||||
@NotNull final JSONConfig config) {
|
||||
// Empty default as effects only override required watchers.
|
||||
}
|
||||
|
||||
/**
|
||||
* Called when an entity attacks another entity via any mean.
|
||||
*
|
||||
* @param attacker The attacker.
|
||||
* @param victim The victim.
|
||||
* @param event The event.
|
||||
* @param config The effect config.
|
||||
*/
|
||||
default void onAnyDamage(@NotNull final Player attacker,
|
||||
@NotNull final LivingEntity victim,
|
||||
@NotNull final EntityDamageByEntityEvent event,
|
||||
@NotNull final JSONConfig config) {
|
||||
// Empty default as effects only override required watchers.
|
||||
}
|
||||
|
||||
/**
|
||||
* Called when an entity shoots another entity with an arrow.
|
||||
*
|
||||
* @param attacker The shooter.
|
||||
* @param victim The victim.
|
||||
* @param arrow The arrow entity.
|
||||
* @param event The event that called this watcher.
|
||||
* @param config The effect config.
|
||||
*/
|
||||
default void onArrowDamage(@NotNull final Player attacker,
|
||||
@NotNull final LivingEntity victim,
|
||||
@NotNull final Arrow arrow,
|
||||
@NotNull final EntityDamageByEntityEvent event,
|
||||
@NotNull final JSONConfig config) {
|
||||
// Empty default as effects only override required watchers.
|
||||
}
|
||||
|
||||
/**
|
||||
* Called when an entity damages another entity with a trident throw.
|
||||
*
|
||||
* @param attacker The shooter.
|
||||
* @param victim The victim.
|
||||
* @param trident The trident entity.
|
||||
* @param event The event that called this watcher.
|
||||
* @param config The effect config.
|
||||
*/
|
||||
default void onTridentDamage(@NotNull final Player attacker,
|
||||
@NotNull final LivingEntity victim,
|
||||
@NotNull final Trident trident,
|
||||
@NotNull final EntityDamageByEntityEvent event,
|
||||
@NotNull final JSONConfig config) {
|
||||
// Empty default as effects only override required watchers.
|
||||
}
|
||||
|
||||
/**
|
||||
* Called when a player jumps.
|
||||
*
|
||||
* @param player The player.
|
||||
* @param event The event that called this watcher.
|
||||
* @param config The effect config.
|
||||
*/
|
||||
default void onJump(@NotNull final Player player,
|
||||
@NotNull final PlayerMoveEvent event,
|
||||
@NotNull final JSONConfig config) {
|
||||
// Empty default as effects only override required watchers.
|
||||
}
|
||||
|
||||
/**
|
||||
* Called when an entity attacks another entity with a melee attack.
|
||||
*
|
||||
* @param attacker The attacker.
|
||||
* @param victim The victim.
|
||||
* @param event The event that called this watcher.
|
||||
* @param config The effect config.
|
||||
*/
|
||||
default void onMeleeAttack(@NotNull final Player attacker,
|
||||
@NotNull final LivingEntity victim,
|
||||
@NotNull final EntityDamageByEntityEvent event,
|
||||
@NotNull final JSONConfig config) {
|
||||
// Empty default as effects only override required watchers.
|
||||
}
|
||||
|
||||
/**
|
||||
* Called when an entity shoots a projectile.
|
||||
*
|
||||
* @param shooter The entity that shot the bow.
|
||||
* @param projectile The projectile that was shot.
|
||||
* @param event The event that called this watcher.
|
||||
* @param config The effect config.
|
||||
*/
|
||||
default void onProjectileLaunch(@NotNull final Player shooter,
|
||||
@NotNull final Projectile projectile,
|
||||
@NotNull final ProjectileLaunchEvent event,
|
||||
@NotNull final JSONConfig config) {
|
||||
// Empty default as effects only override required watchers.
|
||||
}
|
||||
|
||||
/**
|
||||
* Called when an entity takes fall damage.
|
||||
*
|
||||
* @param faller The entity that took the fall damage.
|
||||
* @param event The event that called this watcher.
|
||||
* @param config The effect config.
|
||||
*/
|
||||
default void onFallDamage(@NotNull final Player faller,
|
||||
@NotNull final EntityDamageEvent event,
|
||||
@NotNull final JSONConfig config) {
|
||||
// Empty default as effects only override required watchers.
|
||||
}
|
||||
|
||||
/**
|
||||
* Called when a projectile hits a block or entity.
|
||||
*
|
||||
* @param shooter The entity that shot the arrow.
|
||||
* @param event The event that called this watcher.
|
||||
* @param config The effect config.
|
||||
*/
|
||||
default void onProjectileHit(@NotNull final Player shooter,
|
||||
@NotNull final ProjectileHitEvent event,
|
||||
@NotNull final JSONConfig config) {
|
||||
// Empty default as effects only override required watchers.
|
||||
}
|
||||
|
||||
/**
|
||||
* Called when an entity kills another entity.
|
||||
*
|
||||
* @param killer The killer.
|
||||
* @param victim The victim.
|
||||
* @param event The event.
|
||||
* @param config The effect config.
|
||||
*/
|
||||
default void onKill(@NotNull final Player killer,
|
||||
@NotNull final LivingEntity victim,
|
||||
@NotNull final EntityDeathByEntityEvent event,
|
||||
@NotNull final JSONConfig config) {
|
||||
// Empty default as effects only override required watchers.
|
||||
}
|
||||
|
||||
/**
|
||||
* Called when an entity takes damage wearing armor.
|
||||
*
|
||||
* @param victim The entity that took damage.
|
||||
* @param event The event that called this watcher.
|
||||
* @param config The effect config.
|
||||
*/
|
||||
default void onDamageWearingArmor(@NotNull final Player victim,
|
||||
@NotNull final EntityDamageEvent event,
|
||||
@NotNull final JSONConfig config) {
|
||||
// Empty default as effects only override required watchers.
|
||||
}
|
||||
|
||||
/**
|
||||
* Called when an entity throws a trident.
|
||||
*
|
||||
* @param shooter The entity that threw the trident.
|
||||
* @param trident The trident that was thrown.
|
||||
* @param event The event that called this watcher.
|
||||
* @param config The effect config.
|
||||
*/
|
||||
default void onTridentLaunch(@NotNull final Player shooter,
|
||||
@NotNull final Trident trident,
|
||||
@NotNull final ProjectileLaunchEvent event,
|
||||
@NotNull final JSONConfig config) {
|
||||
// Empty default as effects only override required watchers.
|
||||
}
|
||||
|
||||
/**
|
||||
* Called when an item takes durability damage.
|
||||
*
|
||||
* @param event The event that called this watcher.
|
||||
* @param config The effect config.
|
||||
*/
|
||||
default void onDurabilityDamage(@NotNull final PlayerItemDamageEvent event,
|
||||
@NotNull final JSONConfig config) {
|
||||
// Empty default as effects only override required watchers.
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user