Skip to content

Commit d49e4d4

Browse files
authored
player/handler.go: Pass damage as pointer to HandleItemDamage (#1144)
1 parent f7c9342 commit d49e4d4

File tree

2 files changed

+9
-7
lines changed

2 files changed

+9
-7
lines changed

server/player/handler.go

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
package player
22

33
import (
4+
"net"
5+
"time"
6+
47
"github.com/df-mc/dragonfly/server/block/cube"
58
"github.com/df-mc/dragonfly/server/cmd"
69
"github.com/df-mc/dragonfly/server/event"
@@ -9,8 +12,6 @@ import (
912
"github.com/df-mc/dragonfly/server/session"
1013
"github.com/df-mc/dragonfly/server/world"
1114
"github.com/go-gl/mathgl/mgl64"
12-
"net"
13-
"time"
1415
)
1516

1617
type Context = event.Context[*Player]
@@ -128,7 +129,7 @@ type Handler interface {
128129
// damage through usage.
129130
// The type of the item may be checked to determine whether it was armour or a tool used. The damage to
130131
// the item is passed.
131-
HandleItemDamage(ctx *Context, i item.Stack, damage int)
132+
HandleItemDamage(ctx *Context, i item.Stack, damage *int)
132133
// HandleItemPickup handles the player picking up an item from the ground. The item stack laying on the
133134
// ground is passed. ctx.Cancel() may be called to prevent the player from picking up the item.
134135
HandleItemPickup(ctx *Context, i *item.Stack)
@@ -186,7 +187,7 @@ func (NopHandler) HandleItemUseOnBlock(*Context, cube.Pos, cube.Face, mgl64.Vec3
186187
func (NopHandler) HandleItemUseOnEntity(*Context, world.Entity) {}
187188
func (NopHandler) HandleItemRelease(ctx *Context, item item.Stack, dur time.Duration) {}
188189
func (NopHandler) HandleItemConsume(*Context, item.Stack) {}
189-
func (NopHandler) HandleItemDamage(*Context, item.Stack, int) {}
190+
func (NopHandler) HandleItemDamage(*Context, item.Stack, *int) {}
190191
func (NopHandler) HandleAttackEntity(*Context, world.Entity, *float64, *float64, *bool) {}
191192
func (NopHandler) HandleExperienceGain(*Context, *int) {}
192193
func (NopHandler) HandlePunchAir(*Context) {}

server/player/player.go

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,6 @@ package player
22

33
import (
44
"fmt"
5-
"github.com/df-mc/dragonfly/server/player/debug"
6-
"github.com/df-mc/dragonfly/server/player/hud"
75
"math"
86
"math/rand/v2"
97
"net"
@@ -12,6 +10,9 @@ import (
1210
"sync"
1311
"time"
1412

13+
"github.com/df-mc/dragonfly/server/player/debug"
14+
"github.com/df-mc/dragonfly/server/player/hud"
15+
1516
"github.com/df-mc/dragonfly/server/block"
1617
"github.com/df-mc/dragonfly/server/block/cube"
1718
"github.com/df-mc/dragonfly/server/block/model"
@@ -2914,7 +2915,7 @@ func (p *Player) damageItem(s item.Stack, d int) item.Stack {
29142915
return s
29152916
}
29162917
ctx := event.C(p)
2917-
if p.Handler().HandleItemDamage(ctx, s, d); ctx.Cancelled() {
2918+
if p.Handler().HandleItemDamage(ctx, s, &d); ctx.Cancelled() || d <= 0 {
29182919
return s
29192920
}
29202921
if e, ok := s.Enchantment(enchantment.Unbreaking); ok {

0 commit comments

Comments
 (0)