From 533031863f27b6840a316adfb7260565e1d38648 Mon Sep 17 00:00:00 2001 From: xGinko Date: Wed, 20 Mar 2024 22:10:23 +0100 Subject: [PATCH] fix messages --- .../villageroptimizer/config/LanguageCache.java | 4 ++-- .../modules/optimization/OptimizeByWorkstation.java | 13 ++++++++----- 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/src/main/java/me/xginko/villageroptimizer/config/LanguageCache.java b/src/main/java/me/xginko/villageroptimizer/config/LanguageCache.java index 701355f..b42fe15 100644 --- a/src/main/java/me/xginko/villageroptimizer/config/LanguageCache.java +++ b/src/main/java/me/xginko/villageroptimizer/config/LanguageCache.java @@ -62,11 +62,11 @@ public class LanguageCache { "Successfully unoptimized %villagertype% villager by removing %blocktype%."); // Workstation this.workstation_optimize_success = getListTranslation("messages.workstation.optimize-success", - "%villagertype% villager successfully optimized using workstation %workstation%."); + "%villagertype% villager successfully optimized using workstation %blocktype%."); this.workstation_on_optimize_cooldown = getListTranslation("messages.workstation.optimize-on-cooldown", "You need to wait %time% until you can optimize this villager again."); this.workstation_unoptimize_success = getListTranslation("messages.workstation.unoptimize-success", - "Successfully unoptimized %villagertype% villager by removing workstation block %workstation%."); + "Successfully unoptimized %villagertype% villager by removing workstation block %blocktype%."); // Command this.command_optimize_success = getListTranslation("messages.command.optimize-success", "Successfully optimized %amount% villager(s) in a radius of %radius% blocks."); diff --git a/src/main/java/me/xginko/villageroptimizer/modules/optimization/OptimizeByWorkstation.java b/src/main/java/me/xginko/villageroptimizer/modules/optimization/OptimizeByWorkstation.java index fc720df..c18bc60 100644 --- a/src/main/java/me/xginko/villageroptimizer/modules/optimization/OptimizeByWorkstation.java +++ b/src/main/java/me/xginko/villageroptimizer/modules/optimization/OptimizeByWorkstation.java @@ -28,6 +28,7 @@ import org.bukkit.event.block.BlockPlaceEvent; import java.time.Duration; import java.util.Iterator; import java.util.concurrent.TimeUnit; +import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicInteger; public class OptimizeByWorkstation implements VillagerOptimizerModule, Listener { @@ -91,10 +92,11 @@ public class OptimizeByWorkstation implements VillagerOptimizerModule, Listener if (!player.hasPermission(Permissions.Optimize.WORKSTATION.get())) return; final Location workstationLoc = placed.getLocation(); + final AtomicBoolean done = new AtomicBoolean(false); final AtomicInteger taskAliveTicks = new AtomicInteger(check_duration_ticks); scheduler.runAtLocationTimer(workstationLoc, lingeringRepeatingCheck -> { - if (taskAliveTicks.getAndAdd(-10) <= 0) { + if (done.get() || taskAliveTicks.getAndAdd(-10) <= 0) { lingeringRepeatingCheck.cancel(); return; } @@ -121,6 +123,7 @@ public class OptimizeByWorkstation implements VillagerOptimizerModule, Listener VillagerOptimizer.getLang(player.locale()).nametag_on_optimize_cooldown .forEach(line -> KyoriUtil.sendMessage(player, line.replaceText(timeLeft))); } + done.set(true); return; } @@ -142,7 +145,7 @@ public class OptimizeByWorkstation implements VillagerOptimizerModule, Listener .replacement(wrapped.villager().getProfession().toString().toLowerCase()) .build(); final TextReplacementConfig placedWorkstation = TextReplacementConfig.builder() - .matchLiteral("%workstation%") + .matchLiteral("%blocktype%") .replacement(placed.getType().toString().toLowerCase()) .build(); VillagerOptimizer.getLang(player.locale()).workstation_optimize_success @@ -155,8 +158,8 @@ public class OptimizeByWorkstation implements VillagerOptimizerModule, Listener GenericUtil.formatLocation(wrapped.villager().getLocation())).color(GenericUtil.COLOR)); } - lingeringRepeatingCheck.cancel(); - break; + done.set(true); + return; } }, 1L, 10L); } @@ -207,7 +210,7 @@ public class OptimizeByWorkstation implements VillagerOptimizerModule, Listener .replacement(closestOptimized.villager().getProfession().toString().toLowerCase()) .build(); final TextReplacementConfig brokenWorkstation = TextReplacementConfig.builder() - .matchLiteral("%workstation%") + .matchLiteral("%blocktype%") .replacement(broken.getType().toString().toLowerCase()) .build(); VillagerOptimizer.getLang(player.locale()).workstation_unoptimize_success