From f132cdbed43d1243ae7025d10f290d2ce7302f1d Mon Sep 17 00:00:00 2001 From: DaPigGuy Date: Wed, 29 Jan 2025 23:22:21 -0800 Subject: [PATCH] player/player.go: Correctly deplete items on use when offhand is not empty --- server/player/player.go | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/server/player/player.go b/server/player/player.go index d5252609b..23b80865a 100644 --- a/server/player/player.go +++ b/server/player/player.go @@ -1510,12 +1510,16 @@ func (p *Player) handleUseContext(ctx *item.UseContext) { p.SetHeldItems(p.subtractItem(p.damageItem(i, ctx.Damage), ctx.CountSub), left) p.addNewItem(ctx) for _, it := range ctx.ConsumedItems { - _ = p.offHand.RemoveItem(it) - it = it.Grow(-left.Count()) + _, offHand := p.HeldItems() + if offHand.Comparable(it) { + if err := p.offHand.RemoveItem(it); err == nil { + continue + } - if !it.Empty() { - _ = p.Inventory().RemoveItem(it) + it = it.Grow(-offHand.Count()) } + + _ = p.Inventory().RemoveItem(it) } }