26ed99fda6
Build and deploy / Build (push) Has been cancelled
Build and deploy / Update Contributors (push) Has been cancelled
Build and deploy / Deploy (push) Has been cancelled
34 lines
1.3 KiB
Go
34 lines
1.3 KiB
Go
package inventory
|
|
|
|
import (
|
|
"github.com/df-mc/dragonfly/server/event"
|
|
"github.com/df-mc/dragonfly/server/item"
|
|
)
|
|
|
|
type Holder interface{}
|
|
|
|
type Context = event.Context[Holder]
|
|
|
|
// Handler is a type that may be used to handle actions performed on an inventory by a player.
|
|
type Handler interface {
|
|
// HandleTake handles an item.Stack being taken from a slot in the inventory. This item might be the whole stack or
|
|
// part of the stack currently present in that slot.
|
|
HandleTake(ctx *Context, slot int, it item.Stack)
|
|
// HandlePlace handles an item.Stack being placed in a slot of the inventory. It might either be added to an empty
|
|
// slot or a slot that contains an item of the same type.
|
|
HandlePlace(ctx *Context, slot int, it item.Stack)
|
|
// HandleDrop handles the dropping of an item.Stack in a slot out of the inventory.
|
|
HandleDrop(ctx *Context, slot int, it item.Stack)
|
|
}
|
|
|
|
// Check to make sure NopHandler implements Handler.
|
|
var _ Handler = NopHandler{}
|
|
|
|
// NopHandler is an implementation of Handler that does not run any code in any of its methods. It is the default
|
|
// Handler of an Inventory.
|
|
type NopHandler struct{}
|
|
|
|
func (NopHandler) HandleTake(*Context, int, item.Stack) {}
|
|
func (NopHandler) HandlePlace(*Context, int, item.Stack) {}
|
|
func (NopHandler) HandleDrop(*Context, int, item.Stack) {}
|