From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Libalpm64 Date: Wed, 4 Mar 2026 00:00:00 +0000 Subject: [PATCH] Add config for item multitask Allows players to use items while moving or switching hotbar slots. This is for Anarchy servers or Crystal PVP servers this allows them to pvp without stopping the item mid animation. diff --git a/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/net/minecraft/server/network/ServerGamePacketListenerImpl.java index 1ea8e03a4dc39486505d21bff1d15cb2339cafc2..a2146662c8ec83f62547bcd813c0e4dcb10efc07 100644 --- a/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -2186,7 +2186,9 @@ public class ServerGamePacketListenerImpl this.player.sendSpawnProtectionMessage(pos); } else if (this.awaitingPositionFromClient == null && (level.mayInteract(this.player, pos) || passthroughSignInteraction)) { // Paper end - Allow using signs inside spawn protection + if (!me.earthme.luminol.config.modules.fixes.ItemMultitaskConfig.enabled) { // Luminol - Add item multitask config this.player.stopUsingItem(); // CraftBukkit - SPIGOT-4706 + } // Luminol - Add item multitask config InteractionResult interactionResult = this.player.gameMode.useItemOn(this.player, level, itemStack, hand, blockHit); if (interactionResult.consumesAction()) { CriteriaTriggers.ANY_BLOCK_USE.trigger(this.player, blockHit.getBlockPos(), itemStack); @@ -2385,9 +2387,13 @@ public class ServerGamePacketListenerImpl return; } // CraftBukkit end - if (this.player.getInventory().getSelectedSlot() != packet.getSlot() && this.player.getUsedItemHand() == InteractionHand.MAIN_HAND) { - this.player.stopUsingItem(); + // Luminol start - Add item multitask config + if (!me.earthme.luminol.config.modules.fixes.ItemMultitaskConfig.enabled) { + if (this.player.getInventory().getSelectedSlot() != packet.getSlot() && this.player.getUsedItemHand() == InteractionHand.MAIN_HAND) { + this.player.stopUsingItem(); + } } + // Luminol end this.player.getInventory().setSelectedSlot(packet.getSlot()); this.player.resetLastActionTime();