improve cache even more
This commit is contained in:
parent
a0ad960b17
commit
bff40048fa
@ -3,6 +3,7 @@ package me.xginko.villageroptimizer;
|
|||||||
import com.github.benmanes.caffeine.cache.Cache;
|
import com.github.benmanes.caffeine.cache.Cache;
|
||||||
import com.github.benmanes.caffeine.cache.Caffeine;
|
import com.github.benmanes.caffeine.cache.Caffeine;
|
||||||
import me.xginko.villageroptimizer.models.WrappedVillager;
|
import me.xginko.villageroptimizer.models.WrappedVillager;
|
||||||
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.entity.Villager;
|
import org.bukkit.entity.Villager;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import org.jetbrains.annotations.Nullable;
|
import org.jetbrains.annotations.Nullable;
|
||||||
@ -22,14 +23,13 @@ public class VillagerCache {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public @Nullable WrappedVillager get(@NotNull UUID uuid) {
|
public @Nullable WrappedVillager get(@NotNull UUID uuid) {
|
||||||
return villagerCache.getIfPresent(uuid);
|
WrappedVillager wrappedVillager = villagerCache.getIfPresent(uuid);
|
||||||
|
return wrappedVillager == null && Bukkit.getEntity(uuid) instanceof Villager villager ? add(villager) : wrappedVillager;
|
||||||
}
|
}
|
||||||
|
|
||||||
public @NotNull WrappedVillager getOrAddIfAbsent(@NotNull Villager villager) {
|
public @NotNull WrappedVillager get(@NotNull Villager villager) {
|
||||||
WrappedVillager wrappedVillager = villagerCache.getIfPresent(villager.getUniqueId());
|
WrappedVillager wrappedVillager = villagerCache.getIfPresent(villager.getUniqueId());
|
||||||
if (wrappedVillager == null) wrappedVillager = new WrappedVillager(villager);
|
return wrappedVillager == null ? add(new WrappedVillager(villager)) : add(wrappedVillager);
|
||||||
this.villagerCache.put(villager.getUniqueId(), wrappedVillager); // refresh cache
|
|
||||||
return wrappedVillager;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public @NotNull WrappedVillager add(@NotNull WrappedVillager villager) {
|
public @NotNull WrappedVillager add(@NotNull WrappedVillager villager) {
|
||||||
@ -38,9 +38,7 @@ public class VillagerCache {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public @NotNull WrappedVillager add(@NotNull Villager villager) {
|
public @NotNull WrappedVillager add(@NotNull Villager villager) {
|
||||||
WrappedVillager wrapped = new WrappedVillager(villager);
|
return add(new WrappedVillager(villager));
|
||||||
villagerCache.put(villager.getUniqueId(), wrapped);
|
|
||||||
return wrapped;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean contains(@NotNull WrappedVillager villager) {
|
public boolean contains(@NotNull WrappedVillager villager) {
|
||||||
|
@ -101,7 +101,7 @@ public final class VillagerOptimizer extends JavaPlugin {
|
|||||||
return OptimizationType.WORKSTATION;
|
return OptimizationType.WORKSTATION;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return villagerCache.getOrAddIfAbsent(villager).getOptimizationType();
|
return villagerCache.get(villager).getOptimizationType();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void reloadPlugin() {
|
public void reloadPlugin() {
|
||||||
|
@ -10,7 +10,7 @@ import org.bukkit.persistence.PersistentDataType;
|
|||||||
public record WrappedVillager(Villager villager) {
|
public record WrappedVillager(Villager villager) {
|
||||||
|
|
||||||
public static WrappedVillager fromVillager(Villager villager) {
|
public static WrappedVillager fromVillager(Villager villager) {
|
||||||
return VillagerOptimizer.getVillagerCache().getOrAddIfAbsent(villager);
|
return VillagerOptimizer.getVillagerCache().get(villager);
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isOptimized() {
|
public boolean isOptimized() {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user