fix optimization logic

This commit is contained in:
xGinko 2023-09-10 18:57:38 +02:00
parent 533d0507b2
commit e660acd55e
2 changed files with 5 additions and 15 deletions

View File

@ -1,22 +1,11 @@
package me.xginko.villageroptimizer.enums;
public class Permissions {
public enum Misc {
IGNORED("villageroptimizer.ignore");
private final String key;
Misc(String key) {
this.key = key;
}
public String get() {
return key;
}
}
public enum Commands {
VERSION("villageroptimizer.cmd.version"),
RELOAD("villageroptimizer.cmd.reload"),
OPTIMIZE_RADIUS("villageroptimizer.cmd.optimize"),
UNOPTIMIZE_RADIUS("villageroptimizer.cmd.unoptimize");
private final String key;
Commands(String key) {
this.key = key;
@ -29,7 +18,6 @@ public class Permissions {
NAMETAG("villageroptimizer.optimize.nametag"),
BLOCK("villageroptimizer.optimize.block"),
WORKSTATION("villageroptimizer.optimize.workstation");
private final String key;
Optimize(String key) {
this.key = key;
@ -45,7 +33,6 @@ public class Permissions {
BLOCK_COOLDOWN("villageroptimizer.bypass.blockcooldown"),
WORKSTATION_COOLDOWN("villageroptimizer.bypass.workstationcooldown"),
COMMAND_COOLDOWN("villageroptimizer.bypass.commandcooldown");
private final String key;
Bypass(String key) {
this.key = key;

View File

@ -90,7 +90,7 @@ public class WorkstationOptimization implements VillagerOptimizerModule, Listene
final Location workstationLoc = placed.getLocation();
WrappedVillager closestOptimizableVillager = null;
double closestDistance = Double.MAX_VALUE;
double closestDistance = search_radius;
for (Entity entity : workstationLoc.getNearbyEntities(search_radius, search_radius, search_radius)) {
if (!entity.getType().equals(EntityType.VILLAGER)) continue;
@ -99,8 +99,11 @@ public class WorkstationOptimization implements VillagerOptimizerModule, Listene
if (profession.equals(Villager.Profession.NONE) || profession.equals(Villager.Profession.NITWIT)) continue;
WrappedVillager wVillager = villagerManager.getOrAdd(villager);
if (!wVillager.isOptimized() && entity.getLocation().distance(workstationLoc) < closestDistance) {
final double distance = entity.getLocation().distance(workstationLoc);
if (!wVillager.isOptimized() && distance < closestDistance) {
closestOptimizableVillager = wVillager;
closestDistance = distance;
}
}