move SystemChat event from bot/basic
to bot/msg
This commit is contained in:
@ -15,7 +15,6 @@
|
|||||||
// Handles some basic event you probably need.
|
// Handles some basic event you probably need.
|
||||||
// - GameStart
|
// - GameStart
|
||||||
// - ChatMsg
|
// - ChatMsg
|
||||||
// - SystemMsg
|
|
||||||
// - Disconnect
|
// - Disconnect
|
||||||
// - HealthChange
|
// - HealthChange
|
||||||
// - Death
|
// - Death
|
||||||
|
@ -9,7 +9,6 @@ import (
|
|||||||
|
|
||||||
type EventsListener struct {
|
type EventsListener struct {
|
||||||
GameStart func() error
|
GameStart func() error
|
||||||
SystemMsg func(c chat.Message, overlay bool) error
|
|
||||||
Disconnect func(reason chat.Message) error
|
Disconnect func(reason chat.Message) error
|
||||||
HealthChange func(health float32) error
|
HealthChange func(health float32) error
|
||||||
Death func() error
|
Death func() error
|
||||||
@ -21,9 +20,6 @@ func (e EventsListener) attach(p *Player) {
|
|||||||
if e.GameStart != nil {
|
if e.GameStart != nil {
|
||||||
attachJoinGameHandler(p.c, e.GameStart)
|
attachJoinGameHandler(p.c, e.GameStart)
|
||||||
}
|
}
|
||||||
if e.SystemMsg != nil {
|
|
||||||
attachSystemMsg(p.c, e.SystemMsg)
|
|
||||||
}
|
|
||||||
if e.Disconnect != nil {
|
if e.Disconnect != nil {
|
||||||
attachDisconnect(p.c, e.Disconnect)
|
attachDisconnect(p.c, e.Disconnect)
|
||||||
}
|
}
|
||||||
@ -41,20 +37,6 @@ func attachJoinGameHandler(c *bot.Client, handler func() error) {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
func attachSystemMsg(c *bot.Client, handler func(c chat.Message, overlay bool) error) {
|
|
||||||
c.Events.AddListener(bot.PacketHandler{
|
|
||||||
Priority: 64, ID: packetid.ClientboundSystemChat,
|
|
||||||
F: func(p pk.Packet) error {
|
|
||||||
var msg chat.Message
|
|
||||||
var pos pk.Boolean
|
|
||||||
if err := p.Scan(&msg, &pos); err != nil {
|
|
||||||
return Error{err}
|
|
||||||
}
|
|
||||||
return handler(msg, bool(pos))
|
|
||||||
},
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
func attachDisconnect(c *bot.Client, handler func(reason chat.Message) error) {
|
func attachDisconnect(c *bot.Client, handler func(reason chat.Message) error) {
|
||||||
c.Events.AddListener(bot.PacketHandler{
|
c.Events.AddListener(bot.PacketHandler{
|
||||||
Priority: 64, ID: packetid.ClientboundDisconnect,
|
Priority: 64, ID: packetid.ClientboundDisconnect,
|
||||||
|
@ -34,6 +34,12 @@ func New(c *bot.Client, p *basic.Player, pl *playerlist.PlayerList, events Event
|
|||||||
events: events,
|
events: events,
|
||||||
SignatureCache: sign.NewSignatureCache(),
|
SignatureCache: sign.NewSignatureCache(),
|
||||||
}
|
}
|
||||||
|
if events.SystemChat != nil {
|
||||||
|
c.Events.AddListener(bot.PacketHandler{
|
||||||
|
Priority: 64, ID: packetid.ClientboundSystemChat,
|
||||||
|
F: m.handleSystemMessage,
|
||||||
|
})
|
||||||
|
}
|
||||||
if events.PlayerChatMessage != nil {
|
if events.PlayerChatMessage != nil {
|
||||||
c.Events.AddListener(bot.PacketHandler{
|
c.Events.AddListener(bot.PacketHandler{
|
||||||
Priority: 64, ID: packetid.ClientboundPlayerChat,
|
Priority: 64, ID: packetid.ClientboundPlayerChat,
|
||||||
@ -49,6 +55,15 @@ func New(c *bot.Client, p *basic.Player, pl *playerlist.PlayerList, events Event
|
|||||||
return m
|
return m
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (m *Manager) handleSystemMessage(p pk.Packet) error {
|
||||||
|
var msg chat.Message
|
||||||
|
var overlay pk.Boolean
|
||||||
|
if err := p.Scan(&msg, &overlay); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
return m.events.SystemChat(msg, bool(overlay))
|
||||||
|
}
|
||||||
|
|
||||||
func (m *Manager) handlePlayerChat(packet pk.Packet) error {
|
func (m *Manager) handlePlayerChat(packet pk.Packet) error {
|
||||||
var (
|
var (
|
||||||
sender pk.UUID
|
sender pk.UUID
|
||||||
|
@ -3,6 +3,7 @@ package msg
|
|||||||
import "github.com/Tnze/go-mc/chat"
|
import "github.com/Tnze/go-mc/chat"
|
||||||
|
|
||||||
type EventsHandler struct {
|
type EventsHandler struct {
|
||||||
|
SystemChat func(msg chat.Message, overlay bool) error
|
||||||
PlayerChatMessage func(msg chat.Message, validated bool) error
|
PlayerChatMessage func(msg chat.Message, validated bool) error
|
||||||
DisguisedChat func(msg chat.Message) error
|
DisguisedChat func(msg chat.Message) error
|
||||||
}
|
}
|
||||||
|
@ -8,6 +8,8 @@ import (
|
|||||||
|
|
||||||
"github.com/Tnze/go-mc/bot"
|
"github.com/Tnze/go-mc/bot"
|
||||||
"github.com/Tnze/go-mc/bot/basic"
|
"github.com/Tnze/go-mc/bot/basic"
|
||||||
|
"github.com/Tnze/go-mc/bot/msg"
|
||||||
|
"github.com/Tnze/go-mc/bot/playerlist"
|
||||||
"github.com/Tnze/go-mc/chat"
|
"github.com/Tnze/go-mc/chat"
|
||||||
_ "github.com/Tnze/go-mc/data/lang/en-us"
|
_ "github.com/Tnze/go-mc/data/lang/en-us"
|
||||||
"github.com/Tnze/go-mc/data/packetid"
|
"github.com/Tnze/go-mc/data/packetid"
|
||||||
@ -20,6 +22,9 @@ var (
|
|||||||
c *bot.Client
|
c *bot.Client
|
||||||
p *basic.Player
|
p *basic.Player
|
||||||
|
|
||||||
|
playerList *playerlist.PlayerList
|
||||||
|
chatHandler *msg.Manager
|
||||||
|
|
||||||
watch chan time.Time
|
watch chan time.Time
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -28,10 +33,15 @@ func main() {
|
|||||||
c = bot.NewClient()
|
c = bot.NewClient()
|
||||||
p = basic.NewPlayer(c, basic.DefaultSettings, basic.EventsListener{
|
p = basic.NewPlayer(c, basic.DefaultSettings, basic.EventsListener{
|
||||||
GameStart: onGameStart,
|
GameStart: onGameStart,
|
||||||
SystemMsg: onSystemMsg,
|
|
||||||
Disconnect: onDisconnect,
|
Disconnect: onDisconnect,
|
||||||
Death: onDeath,
|
Death: onDeath,
|
||||||
})
|
})
|
||||||
|
playerList = playerlist.New(c)
|
||||||
|
chatHandler = msg.New(c, p, playerList, msg.EventsHandler{
|
||||||
|
SystemChat: onSystemChat,
|
||||||
|
PlayerChatMessage: onPlayerChat,
|
||||||
|
DisguisedChat: onDisguisedChat,
|
||||||
|
})
|
||||||
|
|
||||||
// Register event handlers
|
// Register event handlers
|
||||||
|
|
||||||
@ -106,13 +116,18 @@ func onSound(id int, category int, x, y, z float64, volume, pitch float32) error
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func onChatMsg(c chat.Message) error {
|
func onSystemChat(c chat.Message, overlay bool) error {
|
||||||
log.Println("Chat:", c)
|
log.Printf("System Chat: %v, Overlay: %v", c, overlay)
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func onSystemMsg(c chat.Message, overlay bool) error {
|
func onPlayerChat(c chat.Message, _ bool) error {
|
||||||
log.Printf("System: %v, Overlay: %v", c, overlay)
|
log.Println("Player Chat:", c)
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func onDisguisedChat(c chat.Message) error {
|
||||||
|
log.Println("Disguised Chat:", c)
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -49,13 +49,13 @@ func main() {
|
|||||||
}
|
}
|
||||||
player = basic.NewPlayer(client, basic.DefaultSettings, basic.EventsListener{
|
player = basic.NewPlayer(client, basic.DefaultSettings, basic.EventsListener{
|
||||||
GameStart: onGameStart,
|
GameStart: onGameStart,
|
||||||
SystemMsg: onSystemMsg,
|
|
||||||
Disconnect: onDisconnect,
|
Disconnect: onDisconnect,
|
||||||
HealthChange: onHealthChange,
|
HealthChange: onHealthChange,
|
||||||
Death: onDeath,
|
Death: onDeath,
|
||||||
})
|
})
|
||||||
playerList = playerlist.New(client)
|
playerList = playerlist.New(client)
|
||||||
chatHandler = msg.New(client, player, playerList, msg.EventsHandler{
|
chatHandler = msg.New(client, player, playerList, msg.EventsHandler{
|
||||||
|
SystemChat: onSystemMsg,
|
||||||
PlayerChatMessage: onPlayerMsg,
|
PlayerChatMessage: onPlayerMsg,
|
||||||
DisguisedChat: onDisguisedMsg,
|
DisguisedChat: onDisguisedMsg,
|
||||||
})
|
})
|
||||||
@ -117,6 +117,11 @@ func onGameStart() error {
|
|||||||
return nil // if err isn't nil, HandleGame() will return it.
|
return nil // if err isn't nil, HandleGame() will return it.
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func onSystemMsg(c chat.Message, overlay bool) error {
|
||||||
|
log.Printf("System: %v, Overlay: %v", c, overlay)
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
func onPlayerMsg(msg chat.Message, validated bool) error {
|
func onPlayerMsg(msg chat.Message, validated bool) error {
|
||||||
var prefix string
|
var prefix string
|
||||||
if !validated {
|
if !validated {
|
||||||
@ -131,11 +136,6 @@ func onDisguisedMsg(msg chat.Message) error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func onSystemMsg(c chat.Message, overlay bool) error {
|
|
||||||
log.Printf("System: %v, Overlay: %v", c, overlay)
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func onChunkLoad(pos level.ChunkPos) error {
|
func onChunkLoad(pos level.ChunkPos) error {
|
||||||
log.Println("Load chunk:", pos)
|
log.Println("Load chunk:", pos)
|
||||||
return nil
|
return nil
|
||||||
|
Reference in New Issue
Block a user