Fix duplicate sorting trigger

This commit is contained in:
Gabriel Tofvesson 2021-04-25 00:12:17 +02:00
parent 7a0fd842c9
commit fe53481afd

View File

@ -6,6 +6,7 @@ import org.bukkit.block.ShulkerBox;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerInteractEvent;
import org.bukkit.inventory.EquipmentSlot;
import org.bukkit.inventory.PlayerInventory;
import java.util.Objects;
@ -27,12 +28,14 @@ public class SortListener implements Listener {
* 2. Player must be attempting to interact with a Chest or Shulker Box
* 3. Player must be sneaking
* 4. Player must be holding a sword in their main hand
* 5. Event is not triggered for players off-hand
*/
if (event.hasBlock() &&
(Objects.requireNonNull(event.getClickedBlock()).getState() instanceof Chest ||
event.getClickedBlock().getState() instanceof ShulkerBox) &&
event.getPlayer().isSneaking() &&
playerInventory.getItemInMainHand().getType().name().endsWith("_SWORD")
playerInventory.getItemInMainHand().getType().name().endsWith("_SWORD") &&
event.getHand() != EquipmentSlot.OFF_HAND
) {
logger.fine(LOG_PLUGIN_NAME + " Triggering /sort for player " + event.getPlayer().getName());
event.getPlayer().performCommand("sort");