Prevent armor manipulation with InventoryClick and Drag events

Implemented handling for InventoryClick and InventoryDrag events to block interactions with armor slots. This ensures that players cannot equip or remove armor through inventory actions, maintaining consistency with existing item interaction restrictions.
This commit is contained in:
Teriuihi 2025-02-15 02:54:02 +01:00
parent f27038f91d
commit 6893e07619

View File

@ -3,6 +3,9 @@ package com.alttd.ctf.events;
import org.bukkit.Material;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.inventory.InventoryClickEvent;
import org.bukkit.event.inventory.InventoryDragEvent;
import org.bukkit.event.inventory.InventoryType;
import org.bukkit.event.player.PlayerAttemptPickupItemEvent;
import org.bukkit.event.player.PlayerDropItemEvent;
@ -26,4 +29,20 @@ public class InventoryItemInteractionEvent implements Listener {
event.setCancelled(true);
}
@EventHandler
public void onInventoryClick(InventoryClickEvent event) {
if (event.getSlotType() != InventoryType.SlotType.ARMOR) {
return;
}
event.setCancelled(true);
}
@EventHandler
public void onInventoryDrag(InventoryDragEvent event) {
if (event.getRawSlots().stream().noneMatch(slot -> slot >= 5 && slot <= 8)) { // Slot numbers 5-8 for armor
return;
}
event.setCancelled(true);
}
}