From d7d16b0871100f9b45fd3c90af22ebbcd6ddfa53 Mon Sep 17 00:00:00 2001 From: xGinko Date: Sun, 10 Sep 2023 01:10:52 +0200 Subject: [PATCH] prevent inventory clicks as well --- .../modules/PreventUnoptimizedTrading.java | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/main/java/me/xginko/villageroptimizer/modules/PreventUnoptimizedTrading.java b/src/main/java/me/xginko/villageroptimizer/modules/PreventUnoptimizedTrading.java index 81751aa..083d7e0 100644 --- a/src/main/java/me/xginko/villageroptimizer/modules/PreventUnoptimizedTrading.java +++ b/src/main/java/me/xginko/villageroptimizer/modules/PreventUnoptimizedTrading.java @@ -9,6 +9,7 @@ import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; import org.bukkit.event.HandlerList; import org.bukkit.event.Listener; +import org.bukkit.event.inventory.InventoryClickEvent; import org.bukkit.event.inventory.InventoryType; import org.bukkit.event.inventory.TradeSelectEvent; @@ -57,4 +58,18 @@ public class PreventUnoptimizedTrading implements VillagerOptimizerModule, Liste VillagerOptimizer.getLang(player.locale()).optimize_for_trading.forEach(player::sendMessage); } } + + @EventHandler(priority = EventPriority.NORMAL, ignoreCancelled = true) + private void onInventoryClick(InventoryClickEvent event) { + if ( + event.getInventory().getType().equals(InventoryType.MERCHANT) + && event.getInventory().getHolder() instanceof Villager villager + && !villagerManager.getOrAdd(villager).isOptimized() + ) { + event.setCancelled(true); + if (!notifyPlayer) return; + Player player = (Player) event.getWhoClicked(); + VillagerOptimizer.getLang(player.locale()).optimize_for_trading.forEach(player::sendMessage); + } + } }