diff --git a/pom.xml b/pom.xml
index 6c51f81..4a320a0 100644
--- a/pom.xml
+++ b/pom.xml
@@ -122,25 +122,19 @@
net.kyori
adventure-text-minimessage
- 4.16.0
+ 4.17.0
net.kyori
adventure-text-serializer-ansi
- 4.16.0
-
-
-
- net.kyori
- adventure-text-serializer-plain
- 4.16.0
+ 4.17.0
net.kyori
adventure-text-logger-slf4j
- 4.16.0
+ 4.17.0
diff --git a/src/main/java/me/xginko/villageroptimizer/modules/optimization/OptimizeByNametag.java b/src/main/java/me/xginko/villageroptimizer/modules/optimization/OptimizeByNametag.java
index 9d9fd0b..bde740e 100644
--- a/src/main/java/me/xginko/villageroptimizer/modules/optimization/OptimizeByNametag.java
+++ b/src/main/java/me/xginko/villageroptimizer/modules/optimization/OptimizeByNametag.java
@@ -111,8 +111,8 @@ public class OptimizeByNametag implements VillagerOptimizerModule, Listener {
if (!optimizeEvent.callEvent()) return;
if (!consume_nametag) {
- event.setCancelled(true);
- villager.customName(meta.displayName());
+ player.getInventory().addItem(usedItem.asOne());
+ player.updateInventory();
}
wVillager.setOptimizationType(optimizeEvent.getOptimizationType());
diff --git a/src/main/java/me/xginko/villageroptimizer/wrapper/AVLVillagerDataHandlerImpl.java b/src/main/java/me/xginko/villageroptimizer/wrapper/AVLVillagerDataHandlerImpl.java
index d7d3dd6..41d333c 100644
--- a/src/main/java/me/xginko/villageroptimizer/wrapper/AVLVillagerDataHandlerImpl.java
+++ b/src/main/java/me/xginko/villageroptimizer/wrapper/AVLVillagerDataHandlerImpl.java
@@ -92,14 +92,13 @@ public class AVLVillagerDataHandlerImpl implements VillagerDataHandler {
@Override
public void saveOptimizeTime() {
- dataContainer.set(Keyring.AntiVillagerLag.NEXT_OPTIMIZATION_SYSTIME_SECONDS.getKey(), PersistentDataType.LONG,
- TimeUnit.MILLISECONDS.toSeconds(System.currentTimeMillis()) + 30);
+ // We do nothing here to not break stuff
}
@Override
public long getOptimizeCooldownMillis(long cooldown_millis) {
if (dataContainer.has(Keyring.AntiVillagerLag.NEXT_OPTIMIZATION_SYSTIME_SECONDS.getKey(), PersistentDataType.LONG)) {
- return Math.max(cooldown_millis, System.currentTimeMillis() - TimeUnit.SECONDS.toMillis(dataContainer.get(Keyring.AntiVillagerLag.NEXT_OPTIMIZATION_SYSTIME_SECONDS.getKey(), PersistentDataType.LONG)));
+ return TimeUnit.SECONDS.toMillis(dataContainer.get(Keyring.AntiVillagerLag.NEXT_OPTIMIZATION_SYSTIME_SECONDS.getKey(), PersistentDataType.LONG) - System.currentTimeMillis());
}
return cooldown_millis;
}
@@ -130,7 +129,7 @@ public class AVLVillagerDataHandlerImpl implements VillagerDataHandler {
@Override
public void saveLastLevelUp() {
- dataContainer.set(Keyring.AntiVillagerLag.NEXT_LEVELUP_SYSTIME_SECONDS.getKey(), PersistentDataType.LONG, TimeUnit.MILLISECONDS.toSeconds(System.currentTimeMillis()) + 30);
+ // We do nothing here to not break stuff
}
@Override
diff --git a/src/main/java/me/xginko/villageroptimizer/wrapper/MainVillagerDataHandlerImpl.java b/src/main/java/me/xginko/villageroptimizer/wrapper/MainVillagerDataHandlerImpl.java
index fdb4b87..227f79a 100644
--- a/src/main/java/me/xginko/villageroptimizer/wrapper/MainVillagerDataHandlerImpl.java
+++ b/src/main/java/me/xginko/villageroptimizer/wrapper/MainVillagerDataHandlerImpl.java
@@ -82,7 +82,10 @@ public class MainVillagerDataHandlerImpl implements VillagerDataHandler {
@Override
public long getOptimizeCooldownMillis(long cooldown_millis) {
- return Math.max(System.currentTimeMillis() - getLastOptimize(), cooldown_millis);
+ if (getLastOptimize() > 0L) {
+ return cooldown_millis - (System.currentTimeMillis() - getLastOptimize());
+ }
+ return cooldown_millis;
}
@Override
diff --git a/src/main/java/me/xginko/villageroptimizer/wrapper/WrappedVillager.java b/src/main/java/me/xginko/villageroptimizer/wrapper/WrappedVillager.java
index db43425..84f030c 100644
--- a/src/main/java/me/xginko/villageroptimizer/wrapper/WrappedVillager.java
+++ b/src/main/java/me/xginko/villageroptimizer/wrapper/WrappedVillager.java
@@ -126,7 +126,7 @@ public class WrappedVillager implements VillagerDataHandler {
@Override
public long getOptimizeCooldownMillis(long cooldown_millis) {
- long cooldown = cooldown_millis;
+ long cooldown = 0L;
for (VillagerDataHandler handler : dataHandlers) {
cooldown = Math.max(cooldown, handler.getOptimizeCooldownMillis(cooldown_millis));
}