From 11ef3eedac50d14821c55c33c2ea5f85cff10bbc Mon Sep 17 00:00:00 2001 From: xGinko Date: Sat, 11 May 2024 12:14:43 +0200 Subject: [PATCH] fix nametag optimization still consuming item when consumption is disabled fix datahandlers returning wrong values when checking for cooldown millis remove unused dependency --- pom.xml | 12 +++--------- .../modules/optimization/OptimizeByNametag.java | 4 ++-- .../wrapper/AVLVillagerDataHandlerImpl.java | 7 +++---- .../wrapper/MainVillagerDataHandlerImpl.java | 5 ++++- .../villageroptimizer/wrapper/WrappedVillager.java | 2 +- 5 files changed, 13 insertions(+), 17 deletions(-) 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)); }