Skip to content

Commit 101e51c

Browse files
minecraft/protocol: Fix shield blocking tick (#420)
1 parent 9e96ee3 commit 101e51c

3 files changed

Lines changed: 6 additions & 8 deletions

File tree

minecraft/protocol/item.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,8 @@ type ItemStack struct {
3636
CanBreak []string
3737
// HasNetworkID ...
3838
HasNetworkID bool
39+
// BlockingTick is the tick at which a shield started blocking. It is only used for shield items.
40+
BlockingTick int64
3941
}
4042

4143
// ItemType represents a consistent combination of network ID and metadata value of an item. It cannot usually

minecraft/protocol/reader.go

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -467,8 +467,7 @@ func (r *Reader) ItemInstance(i *ItemInstance) {
467467
FuncSliceUint32Length(bufReader, &x.CanBreak, bufReader.StringUTF)
468468

469469
if x.NetworkID == bufReader.shieldID {
470-
var blockingTick int64
471-
bufReader.Int64(&blockingTick)
470+
bufReader.Int64(&x.BlockingTick)
472471
}
473472
}
474473

@@ -517,8 +516,7 @@ func (r *Reader) Item(x *ItemStack) {
517516
FuncSliceUint32Length(bufReader, &x.CanBreak, bufReader.StringUTF)
518517

519518
if x.NetworkID == bufReader.shieldID {
520-
var blockingTick int64
521-
bufReader.Int64(&blockingTick)
519+
bufReader.Int64(&x.BlockingTick)
522520
}
523521
}
524522

minecraft/protocol/writer.go

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -362,8 +362,7 @@ func (w *Writer) ItemInstance(i *ItemInstance) {
362362
FuncSliceUint32Length(bufWriter, &x.CanBreak, bufWriter.StringUTF)
363363

364364
if x.NetworkID == bufWriter.shieldID {
365-
var blockingTick int64
366-
bufWriter.Int64(&blockingTick)
365+
bufWriter.Int64(&x.BlockingTick)
367366
}
368367

369368
b := buf.Bytes()
@@ -407,8 +406,7 @@ func (w *Writer) Item(x *ItemStack) {
407406
FuncSliceUint32Length(bufWriter, &x.CanBreak, bufWriter.StringUTF)
408407

409408
if x.NetworkID == bufWriter.shieldID {
410-
var blockingTick int64
411-
bufWriter.Int64(&blockingTick)
409+
bufWriter.Int64(&x.BlockingTick)
412410
}
413411

414412
extraData := buf.Bytes()

0 commit comments

Comments
 (0)