From 43588a8894c57ab8a0d731c58584d1069c609df3 Mon Sep 17 00:00:00 2001 From: Tnze Date: Sun, 4 Jul 2021 13:03:09 +0800 Subject: [PATCH] Display screen slot change --- examples/daze/daze.go | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/examples/daze/daze.go b/examples/daze/daze.go index 9c7175a..a3ed9ef 100644 --- a/examples/daze/daze.go +++ b/examples/daze/daze.go @@ -14,6 +14,7 @@ import ( "github.com/Tnze/go-mc/bot/basic" "github.com/Tnze/go-mc/bot/screen" "github.com/Tnze/go-mc/chat" + "github.com/Tnze/go-mc/data/item" _ "github.com/Tnze/go-mc/data/lang/zh-cn" ) @@ -91,12 +92,22 @@ func onChatMsg(c chat.Message, _ byte, _ uuid.UUID) error { func onScreenSlotChange(id, index int) error { if id == -2 { - log.Printf("Slot change: inventory: %v", screenManager.Inventory.Slots[index]) + log.Printf("Slot: inventory: %v", screenManager.Inventory.Slots[index]) } else if id == -1 && index == -1 { - log.Printf("Slot change: cursor: %v", screenManager.Cursor) + log.Printf("Slot: cursor: %v", screenManager.Cursor) } else { - container := screenManager.Screens[id] - log.Printf("Slot change: Screen[%d].Slot[%d]: %T", id, index, container) + container, ok := screenManager.Screens[id] + if ok { + // Currently only inventory container is supported + switch container.(type) { + case *screen.Inventory: + slot := container.(*screen.Inventory).Slots[index] + itemInfo := item.ByID[item.ID(slot.ID)] + if slot.ID != 0 { + log.Printf("Slot: Screen[%d].Slot[%d]: [%v] * %d", id, index, itemInfo.DisplayName, slot.Count) + } + } + } } return nil }