use region scheduler here for safety

This commit is contained in:
xGinko 2023-09-10 02:54:18 +02:00
parent b5522121ba
commit 034a20930a
2 changed files with 10 additions and 5 deletions

View File

@ -1,5 +1,6 @@
package me.xginko.villageroptimizer.models; package me.xginko.villageroptimizer.models;
import me.xginko.villageroptimizer.VillagerOptimizer;
import me.xginko.villageroptimizer.enums.Keys; import me.xginko.villageroptimizer.enums.Keys;
import me.xginko.villageroptimizer.enums.OptimizationType; import me.xginko.villageroptimizer.enums.OptimizationType;
import org.bukkit.entity.Villager; import org.bukkit.entity.Villager;
@ -45,11 +46,15 @@ public final class WrappedVillager {
public void setOptimization(OptimizationType type) { public void setOptimization(OptimizationType type) {
if (type.equals(OptimizationType.OFF) && isOptimized()) { if (type.equals(OptimizationType.OFF) && isOptimized()) {
dataContainer.remove(Keys.OPTIMIZATION_TYPE.key()); dataContainer.remove(Keys.OPTIMIZATION_TYPE.key());
villager.getScheduler().run(VillagerOptimizer.getInstance(), enableAI -> {
villager.setAware(true); villager.setAware(true);
villager.setAI(true); villager.setAI(true);
}, null);
} else { } else {
dataContainer.set(Keys.OPTIMIZATION_TYPE.key(), PersistentDataType.STRING, type.name()); dataContainer.set(Keys.OPTIMIZATION_TYPE.key(), PersistentDataType.STRING, type.name());
villager.getScheduler().run(VillagerOptimizer.getInstance(), disableAI -> {
villager.setAware(false); villager.setAware(false);
}, null);
} }
} }

View File

@ -68,8 +68,8 @@ public class LevelVillagers implements VillagerOptimizerModule, Listener {
&& wVillager.calculateLevel() > villager.getVillagerLevel() && wVillager.calculateLevel() > villager.getVillagerLevel()
) { ) {
villager.addPotionEffect(new PotionEffect(PotionEffectType.SLOW, (int) (20 + (cooldown / 50L)), 120, false, false)); villager.addPotionEffect(new PotionEffect(PotionEffectType.SLOW, (int) (20 + (cooldown / 50L)), 120, false, false));
villager.setAware(true); villager.getScheduler().run(VillagerOptimizer.getInstance(), enableAI -> villager.setAware(true), null);
villager.getScheduler().runDelayed(plugin, reOptimize -> { villager.getScheduler().runDelayed(plugin, disableAI -> {
villager.setAware(false); villager.setAware(false);
wVillager.saveLastLevelUp(); wVillager.saveLastLevelUp();
}, null, 100L); }, null, 100L);