add HeldItemChange event

This commit is contained in:
Tnze
2019-06-10 15:24:24 +08:00
parent f909ed405e
commit 0a094cf956
2 changed files with 20 additions and 19 deletions

View File

@ -5,11 +5,12 @@ import (
)
type eventBroker struct {
GameStart func() error
ChatMsg func(msg chat.Message, pos byte) error
Disconnect func(reason chat.Message) error
HealthChange func() error
Die func() error
SoundPlay func(name string, category int, x, y, z float64, volume, pitch float32) error
PluginMessage func(channel string, data []byte) error
GameStart func() error
ChatMsg func(msg chat.Message, pos byte) error
Disconnect func(reason chat.Message) error
HealthChange func() error
Die func() error
SoundPlay func(name string, category int, x, y, z float64, volume, pitch float32) error
PluginMessage func(channel string, data []byte) error
HeldItemChange func(slot int) error
}

View File

@ -3,11 +3,8 @@ package bot
import (
"bytes"
"errors"
"io/ioutil"
// "math"
// "time"
"fmt"
"io/ioutil"
"github.com/Tnze/go-mc/bot/world"
"github.com/Tnze/go-mc/bot/world/entity"
@ -89,19 +86,19 @@ func (c *Client) handlePacket(p pk.Packet) (disconnect bool, err error) {
case data.PlayerPositionAndLookClientbound:
err = handlePlayerPositionAndLookPacket(c, p)
sendPlayerPositionAndLookPacket(c) // to confirm the position
case 0x5A:
case data.DeclareRecipes:
// handleDeclareRecipesPacket(g, reader)
case 0x29:
case data.EntityLookAndRelativeMove:
// err = handleEntityLookAndRelativeMove(g, reader)
case 0x3B:
case data.EntityHeadLook:
// handleEntityHeadLookPacket(g, reader)
case 0x28:
case data.EntityRelativeMove:
// err = handleEntityRelativeMovePacket(g, reader)
case data.KeepAliveClientbound:
err = handleKeepAlivePacket(c, p)
case 0x2B:
case data.Entity:
//handleEntityPacket(g, reader)
case 0x05:
case data.SpawnPlayer:
// err = handleSpawnPlayerPacket(g, reader)
case data.WindowItems:
err = handleWindowItemsPacket(c, p)
@ -113,7 +110,7 @@ func (c *Client) handlePacket(p pk.Packet) (disconnect bool, err error) {
////err = handleBlockChangePacket(c, p)
case data.MultiBlockChange:
////err = handleMultiBlockChangePacket(c, p)
case 0x1A:
case data.DisconnectPlay:
err = handleDisconnectPacket(c, p)
disconnect = true
case data.SetSlot:
@ -123,7 +120,6 @@ func (c *Client) handlePacket(p pk.Packet) (disconnect bool, err error) {
case data.NamedSoundEffect:
err = handleNamedSoundEffect(c, p)
default:
// fmt.Printf("ignore pack id %X\n", p.ID)
}
return
@ -428,6 +424,10 @@ func handleHeldItemPacket(c *Client, p pk.Packet) error {
return err
}
c.HeldItem = int(hi)
if c.Events.HeldItemChange != nil {
return c.Events.HeldItemChange(c.HeldItem)
}
return nil
}