21 lines
507 B
Go
21 lines
507 B
Go
package bot
|
|
|
|
type EventHandler interface {
|
|
PublishEvent(event string, data any) error
|
|
SubscribeEvent(event string, handler func(data any) error)
|
|
}
|
|
|
|
type Event interface {
|
|
EventID() string
|
|
}
|
|
|
|
func PublishEvent(client Client, event Event) error {
|
|
return client.EventHandler().PublishEvent(event.EventID(), event)
|
|
}
|
|
|
|
func SubscribeEvent(client Client, event string, handler func(event Event) error) {
|
|
client.EventHandler().SubscribeEvent(event, func(data any) error {
|
|
return handler(data.(Event))
|
|
})
|
|
}
|