From 562ddead33ff6dab67425c36943258902cd42acc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rub=C3=A9n?= <44579213+Rubenicos@users.noreply.github.com> Date: Mon, 20 Oct 2025 07:11:17 -0600 Subject: [PATCH] Add pick item protection --- .../protections/Protection.java | 1 + .../generic/PickItemProtection.java | 27 +++++++++++++++++++ src/main/resources/config.yml | 2 ++ 3 files changed, 30 insertions(+) create mode 100644 src/main/java/fr/k0bus/creativemanager2/protections/generic/PickItemProtection.java diff --git a/src/main/java/fr/k0bus/creativemanager2/protections/Protection.java b/src/main/java/fr/k0bus/creativemanager2/protections/Protection.java index 33e82c4..3d190e8 100644 --- a/src/main/java/fr/k0bus/creativemanager2/protections/Protection.java +++ b/src/main/java/fr/k0bus/creativemanager2/protections/Protection.java @@ -143,6 +143,7 @@ public static Map loadProtections() { new LogBlockPaperProtection().init().getMapEntry(), new LogEntityProtection().init().getMapEntry(), new PickupProtection().init().getMapEntry(), + new PickItemProtection().init().getMapEntry(), new ThrowProtection().init().getMapEntry(), new DataRemoverProtection().init().getMapEntry(), new ChestShopProtection().init().getMapEntry(), diff --git a/src/main/java/fr/k0bus/creativemanager2/protections/generic/PickItemProtection.java b/src/main/java/fr/k0bus/creativemanager2/protections/generic/PickItemProtection.java new file mode 100644 index 0000000..7fcf50d --- /dev/null +++ b/src/main/java/fr/k0bus/creativemanager2/protections/generic/PickItemProtection.java @@ -0,0 +1,27 @@ +package fr.k0bus.creativemanager2.protections.generic; + +import fr.k0bus.creativemanager2.protections.Protection; +import fr.k0bus.creativemanager2.utils.SpigotUtils; +import io.papermc.paper.event.player.PlayerPickItemEvent; +import org.bukkit.Material; +import org.bukkit.event.EventHandler; +import org.bukkit.event.EventPriority; + +public class PickItemProtection extends Protection { + public PickItemProtection() { + super(Material.ITEM_FRAME); + } + + @Override + public boolean isCompatible() { + return SpigotUtils.isPaper(); + } + + @EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true) + public void onPickItem(PlayerPickItemEvent event) { + if (isDisabled()) return; + if (!Protection.isCreativePlayer(event.getPlayer())) return; + if (hasPermission(event.getPlayer())) return; + event.setCancelled(true); + } +} diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml index 72bddac..4a48cda 100644 --- a/src/main/resources/config.yml +++ b/src/main/resources/config.yml @@ -39,6 +39,8 @@ protections: enabled: true pickup: enabled: true + pickitem: + enabled: true entity: enabled: true combat: