From 20effd37cb35e781510de96d6b03027a8c758c39 Mon Sep 17 00:00:00 2001 From: Artur Kociszewski <36969029+xartuu@users.noreply.github.com> Date: Sun, 30 Apr 2023 19:45:09 +0200 Subject: [PATCH 1/2] fix: Fixed interactions with kit blocks --- .../listeners/InteractListeners.java | 69 +++++++++++-------- 1 file changed, 42 insertions(+), 27 deletions(-) diff --git a/src/main/java/com/songoda/ultimatekits/listeners/InteractListeners.java b/src/main/java/com/songoda/ultimatekits/listeners/InteractListeners.java index 0b1f1eb..bf8910a 100644 --- a/src/main/java/com/songoda/ultimatekits/listeners/InteractListeners.java +++ b/src/main/java/com/songoda/ultimatekits/listeners/InteractListeners.java @@ -21,6 +21,7 @@ import org.bukkit.event.player.PlayerInteractEvent; import org.bukkit.inventory.EquipmentSlot; import org.bukkit.inventory.InventoryHolder; import org.bukkit.inventory.ItemStack; +import com.songoda.ultimatekits.settings.Settings; public class InteractListeners implements Listener { @@ -48,50 +49,64 @@ public class InteractListeners implements Listener { Kit kit = kitBlockData.getKit(); Player player = event.getPlayer(); + + Material itemInHand = player.getItemInHand().getType(); + + Material keyMaterial = Settings.KEY_MATERIAL.getMaterial().getItem().getType(); + if (event.getAction() == Action.LEFT_CLICK_BLOCK) { - if (player.isSneaking()) return; - event.setCancelled(true); - - if (player.getItemInHand().getType() == Material.TRIPWIRE_HOOK) { - event.setCancelled(true); - kit.processKeyUse(player); + if (player.isSneaking()) { return; } - if (kitBlockData.getType() != KitType.PREVIEW) { + event.setCancelled(true); + + if (kitBlockData.getType() == KitType.PREVIEW) { + kit.display(player, guiManager, null); + + } else if(kitBlockData.getType() == KitType.CRATE) { + + if (itemInHand == keyMaterial) { + kit.processKeyUse(player); + } else { + plugin.getLocale().getMessage("event.crate.needkey").sendPrefixedMessage(player); + return; + } + + } else if (kitBlockData.getType() == KitType.CLAIM) { + if (!kit.hasPermissionToClaim(player)) { plugin.getLocale().getMessage("command.general.noperms").sendPrefixedMessage(player); return; } - if (kit.getNextUse(player) <= 0) { - kit.processGenericUse(player, false); - kit.updateDelay(player); - } else { + + if (kit.getNextUse(player) > 0) { long time = kit.getNextUse(player); - plugin.getLocale().getMessage("event.crate.notyet").processPlaceholder("time", - Methods.makeReadable(time)).sendPrefixedMessage(player); + plugin.getLocale().getMessage("event.crate.notyet").processPlaceholder("time", Methods.makeReadable(time)).sendPrefixedMessage(player); + return; } - } else if (kit.getLink() != null || kit.getPrice() != 0) { - kit.buy(player, guiManager); - } else { - kit.display(player, guiManager, null); - } - } else if (event.getAction() == Action.RIGHT_CLICK_BLOCK) { - if (block.getState() instanceof InventoryHolder || block.getType() == Material.ENDER_CHEST) { - event.setCancelled(true); + + if (kit.getLink() != null || kit.getPrice() != 0) { + kit.buy(player, guiManager); + } else { + kit.processGenericUse(player, false); + } + + kit.updateDelay(player); } + } + + if (event.getAction() == Action.RIGHT_CLICK_BLOCK) { + + event.setCancelled(true); + if (player.isSneaking() && player.hasPermission("ultimatekits.admin")) { guiManager.showGUI(player, new BlockEditorGui(plugin, kitBlockData)); return; } - if (player.getItemInHand().getType() == Material.TRIPWIRE_HOOK) { - event.setCancelled(true); - kit.processKeyUse(player); - return; - } - kit.display(player, guiManager, null); + kit.display(player, guiManager, null); } } From a74b801576c0a11665bc7b2910d25736511c8dbe Mon Sep 17 00:00:00 2001 From: Artur Kociszewski <36969029+xartuu@users.noreply.github.com> Date: Sun, 30 Apr 2023 19:46:04 +0200 Subject: [PATCH 2/2] feat: Added message about the need for a key --- src/main/resources/en_US.lang | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/resources/en_US.lang b/src/main/resources/en_US.lang index 0da1b88..146b7ee 100644 --- a/src/main/resources/en_US.lang +++ b/src/main/resources/en_US.lang @@ -187,6 +187,7 @@ event: wrongkey: '&cThis key doesn''t belong to this kit..' success: '&9Successfully opened a crate.' given: '&9You have received a %crate% %kit% crate.' + needkey: '&cYou need the right key to get this kit' claim: cannotafford: '&9You cannot afford to buy kit &7%kit%&9.' nottwice: '&9You can only receive this kit once.'