40 lines
2.6 KiB
Diff
40 lines
2.6 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: Libalpm64 <levamara@proton.me>
|
|
Date: Thu, 9 Jul 2026 10:08:30 +0800
|
|
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 862a764889ed9ca985afdf672aebeb342c18b0c2..acb148f14593bf8a468a4623b68ba1c7935b5ba6 100644
|
|
--- a/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
|
+++ b/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
|
@@ -2183,7 +2183,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 (!io.nanachiyo0721.shiroha.config.modules.fixes.ItemMultitaskConfig.enabled) { // Shiroha - Add config for item multitask
|
|
this.player.stopUsingItem(); // CraftBukkit - SPIGOT-4706
|
|
+ } // Shiroha - Add config for item multitask
|
|
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);
|
|
@@ -2382,9 +2384,13 @@ public class ServerGamePacketListenerImpl
|
|
return;
|
|
}
|
|
// CraftBukkit end
|
|
- if (this.player.getInventory().getSelectedSlot() != packet.getSlot() && this.player.getUsedItemHand() == InteractionHand.MAIN_HAND) {
|
|
- this.player.stopUsingItem();
|
|
+ // Shiroha start - Add item multitask config
|
|
+ if (!io.nanachiyo0721.shiroha.config.modules.fixes.ItemMultitaskConfig.enabled) {
|
|
+ if (this.player.getInventory().getSelectedSlot() != packet.getSlot() && this.player.getUsedItemHand() == InteractionHand.MAIN_HAND) {
|
|
+ this.player.stopUsingItem();
|
|
+ }
|
|
}
|
|
+ // Shiroha end
|
|
|
|
this.player.getInventory().setSelectedSlot(packet.getSlot());
|
|
this.player.resetLastActionTime();
|