added on message handler.

This commit is contained in:
5elenay 2021-08-20 23:25:27 +03:00
parent f91c9f9554
commit c3ced58c5a
2 changed files with 20 additions and 4 deletions

View File

@ -14,11 +14,17 @@ type Client struct {
Token string Token string
Socket gowebsocket.Socket Socket gowebsocket.Socket
// Functions // Event Functions
OnReadyFunction func() OnReadyFunction func()
OnMessageFunction func(message *Message)
} }
// On Ready event will run when websocket connection is started and bot is ready to work. // On ready event will run when websocket connection is started and bot is ready to work.
func (c *Client) OnReady(fn func()) { func (c *Client) OnReady(fn func()) {
c.OnReadyFunction = fn c.OnReadyFunction = fn
} }
// On message event will run when someone sends a message.
func (c *Client) OnMessage(fn func(message *Message)) {
c.OnMessageFunction = fn
}

View File

@ -37,8 +37,18 @@ func (c *Client) Start() {
} }
// Check events // Check events
if rawData.Type == "Ready" { if rawData.Type == "Ready" && c.OnReadyFunction != nil {
c.OnReadyFunction() c.OnReadyFunction()
} else if rawData.Type == "Message" && c.OnMessageFunction != nil {
msgData := &Message{}
err := json.Unmarshal([]byte(message), msgData)
if err != nil {
fmt.Printf("Unexcepted Error: %s", err)
}
msgData.Client = c
c.OnMessageFunction(msgData)
} }
fmt.Println(message) fmt.Println(message)