added member events.
This commit is contained in:
		
							
								
								
									
										18
									
								
								client.go
									
									
									
									
									
								
							
							
						
						
									
										18
									
								
								client.go
									
									
									
									
									
								
							| @@ -34,6 +34,9 @@ type Client struct { | |||||||
| 	OnChannelStopTypingFunctions  []func(channel_id, user_id string) | 	OnChannelStopTypingFunctions  []func(channel_id, user_id string) | ||||||
| 	OnServerUpdateFunctions       []func(server_id, clear string, payload map[string]interface{}) | 	OnServerUpdateFunctions       []func(server_id, clear string, payload map[string]interface{}) | ||||||
| 	OnServerDeleteFunctions       []func(server_id string) | 	OnServerDeleteFunctions       []func(server_id string) | ||||||
|  | 	OnServerMemberUpdateFunctions []func(server_id, clear string, payload map[string]interface{}) | ||||||
|  | 	OnServerMemberJoinFunctions   []func(server_id, user_id string) | ||||||
|  | 	OnServerMemberLeaveFunctions  []func(server_id, user_id string) | ||||||
| } | } | ||||||
|  |  | ||||||
| // Self bot struct. | // Self bot struct. | ||||||
| @@ -105,6 +108,21 @@ func (c *Client) OnServerDelete(fn func(server_id string)) { | |||||||
| 	c.OnServerDeleteFunctions = append(c.OnServerDeleteFunctions, fn) | 	c.OnServerDeleteFunctions = append(c.OnServerDeleteFunctions, fn) | ||||||
| } | } | ||||||
|  |  | ||||||
|  | // On server member update will run when a server member updates. | ||||||
|  | func (c *Client) OnServerMemberUpdate(fn func(server_id, clear string, payload map[string]interface{})) { | ||||||
|  | 	c.OnServerMemberUpdateFunctions = append(c.OnServerMemberUpdateFunctions, fn) | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // On server member join will run when someone joins to the server. | ||||||
|  | func (c *Client) OnServerMemberJoin(fn func(server_id string, user_id string)) { | ||||||
|  | 	c.OnServerMemberJoinFunctions = append(c.OnServerMemberJoinFunctions, fn) | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // On server member leave will run when someone left from server. | ||||||
|  | func (c *Client) OnServerMemberLeave(fn func(server_id string, user_id string)) { | ||||||
|  | 	c.OnServerMemberLeaveFunctions = append(c.OnServerMemberLeaveFunctions, fn) | ||||||
|  | } | ||||||
|  |  | ||||||
| // Fetch a channel by Id. | // Fetch a channel by Id. | ||||||
| func (c *Client) FetchChannel(id string) (*Channel, error) { | func (c *Client) FetchChannel(id string) (*Channel, error) { | ||||||
| 	channel := &Channel{} | 	channel := &Channel{} | ||||||
|   | |||||||
							
								
								
									
										83
									
								
								websocket.go
									
									
									
									
									
								
							
							
						
						
									
										83
									
								
								websocket.go
									
									
									
									
									
								
							| @@ -88,14 +88,14 @@ func (c *Client) handleEvents(rawData *struct { | |||||||
| 	} else if rawData.Type == "Message" && c.OnMessageFunctions != nil { | 	} else if rawData.Type == "Message" && c.OnMessageFunctions != nil { | ||||||
| 		// Message Event | 		// Message Event | ||||||
| 		msgData := &Message{} | 		msgData := &Message{} | ||||||
|  | 		msgData.Client = c | ||||||
|  |  | ||||||
| 		err := json.Unmarshal([]byte(message), msgData) | 		err := json.Unmarshal([]byte(message), msgData) | ||||||
|  |  | ||||||
| 		if err != nil { | 		if err != nil { | ||||||
| 			fmt.Printf("Unexcepted Error: %s", err) | 			fmt.Printf("Unexcepted Error: %s", err) | ||||||
| 		} | 		} | ||||||
|  |  | ||||||
| 		msgData.Client = c |  | ||||||
|  |  | ||||||
| 		for _, i := range c.OnMessageFunctions { | 		for _, i := range c.OnMessageFunctions { | ||||||
| 			i(msgData) | 			i(msgData) | ||||||
| 		} | 		} | ||||||
| @@ -118,10 +118,7 @@ func (c *Client) handleEvents(rawData *struct { | |||||||
| 		} | 		} | ||||||
| 	} else if rawData.Type == "MessageDelete" && c.OnMessageDeleteFunctions != nil { | 	} else if rawData.Type == "MessageDelete" && c.OnMessageDeleteFunctions != nil { | ||||||
| 		// Message Delete Event | 		// Message Delete Event | ||||||
| 		data := &struct { | 		data := &map[string]string{} | ||||||
| 			ChannelId string `json:"channel"` |  | ||||||
| 			MessageId string `json:"id"` |  | ||||||
| 		}{} |  | ||||||
|  |  | ||||||
| 		err := json.Unmarshal([]byte(message), data) | 		err := json.Unmarshal([]byte(message), data) | ||||||
|  |  | ||||||
| @@ -130,11 +127,12 @@ func (c *Client) handleEvents(rawData *struct { | |||||||
| 		} | 		} | ||||||
|  |  | ||||||
| 		for _, i := range c.OnMessageDeleteFunctions { | 		for _, i := range c.OnMessageDeleteFunctions { | ||||||
| 			i(data.ChannelId, data.MessageId) | 			i((*data)["channel"], (*data)["id"]) | ||||||
| 		} | 		} | ||||||
| 	} else if rawData.Type == "ChannelCreate" && c.OnChannelCreateFunctions != nil { | 	} else if rawData.Type == "ChannelCreate" && c.OnChannelCreateFunctions != nil { | ||||||
| 		// Channel create event. | 		// Channel create event. | ||||||
| 		channelData := &Channel{} | 		channelData := &Channel{} | ||||||
|  | 		channelData.Client = c | ||||||
|  |  | ||||||
| 		err := json.Unmarshal([]byte(message), channelData) | 		err := json.Unmarshal([]byte(message), channelData) | ||||||
|  |  | ||||||
| @@ -142,8 +140,6 @@ func (c *Client) handleEvents(rawData *struct { | |||||||
| 			fmt.Printf("Unexcepted Error: %s", err) | 			fmt.Printf("Unexcepted Error: %s", err) | ||||||
| 		} | 		} | ||||||
|  |  | ||||||
| 		channelData.Client = c |  | ||||||
|  |  | ||||||
| 		for _, i := range c.OnChannelCreateFunctions { | 		for _, i := range c.OnChannelCreateFunctions { | ||||||
| 			i(channelData) | 			i(channelData) | ||||||
| 		} | 		} | ||||||
| @@ -166,9 +162,7 @@ func (c *Client) handleEvents(rawData *struct { | |||||||
| 		} | 		} | ||||||
| 	} else if rawData.Type == "ChannelDelete" && c.OnChannelDeleteFunctions != nil { | 	} else if rawData.Type == "ChannelDelete" && c.OnChannelDeleteFunctions != nil { | ||||||
| 		// Channel delete event. | 		// Channel delete event. | ||||||
| 		data := &struct { | 		data := &map[string]string{} | ||||||
| 			ChannelId string `json:"id"` |  | ||||||
| 		}{} |  | ||||||
|  |  | ||||||
| 		err := json.Unmarshal([]byte(message), data) | 		err := json.Unmarshal([]byte(message), data) | ||||||
|  |  | ||||||
| @@ -177,14 +171,11 @@ func (c *Client) handleEvents(rawData *struct { | |||||||
| 		} | 		} | ||||||
|  |  | ||||||
| 		for _, i := range c.OnChannelDeleteFunctions { | 		for _, i := range c.OnChannelDeleteFunctions { | ||||||
| 			i(data.ChannelId) | 			i((*data)["id"]) | ||||||
| 		} | 		} | ||||||
| 	} else if rawData.Type == "ChannelStartTyping" && c.OnChannelStartTypingFunctions != nil { | 	} else if rawData.Type == "ChannelStartTyping" && c.OnChannelStartTypingFunctions != nil { | ||||||
| 		// Channel start typing event. | 		// Channel start typing event. | ||||||
| 		data := &struct { | 		data := &map[string]string{} | ||||||
| 			ChannelId string `json:"id"` |  | ||||||
| 			UserId    string `json:"user"` |  | ||||||
| 		}{} |  | ||||||
|  |  | ||||||
| 		err := json.Unmarshal([]byte(message), data) | 		err := json.Unmarshal([]byte(message), data) | ||||||
|  |  | ||||||
| @@ -193,14 +184,11 @@ func (c *Client) handleEvents(rawData *struct { | |||||||
| 		} | 		} | ||||||
|  |  | ||||||
| 		for _, i := range c.OnChannelStartTypingFunctions { | 		for _, i := range c.OnChannelStartTypingFunctions { | ||||||
| 			i(data.ChannelId, data.UserId) | 			i((*data)["id"], (*data)["user"]) | ||||||
| 		} | 		} | ||||||
| 	} else if rawData.Type == "ChannelStopTyping" && c.OnChannelStopTypingFunctions != nil { | 	} else if rawData.Type == "ChannelStopTyping" && c.OnChannelStopTypingFunctions != nil { | ||||||
| 		// Channel stop typing event. | 		// Channel stop typing event. | ||||||
| 		data := &struct { | 		data := &map[string]string{} | ||||||
| 			ChannelId string `json:"id"` |  | ||||||
| 			UserId    string `json:"user"` |  | ||||||
| 		}{} |  | ||||||
|  |  | ||||||
| 		err := json.Unmarshal([]byte(message), data) | 		err := json.Unmarshal([]byte(message), data) | ||||||
|  |  | ||||||
| @@ -209,7 +197,7 @@ func (c *Client) handleEvents(rawData *struct { | |||||||
| 		} | 		} | ||||||
|  |  | ||||||
| 		for _, i := range c.OnChannelStopTypingFunctions { | 		for _, i := range c.OnChannelStopTypingFunctions { | ||||||
| 			i(data.ChannelId, data.UserId) | 			i((*data)["id"], (*data)["user"]) | ||||||
| 		} | 		} | ||||||
| 	} else if rawData.Type == "ServerUpdate" && c.OnServerUpdateFunctions != nil { | 	} else if rawData.Type == "ServerUpdate" && c.OnServerUpdateFunctions != nil { | ||||||
| 		// Server update event. | 		// Server update event. | ||||||
| @@ -230,9 +218,7 @@ func (c *Client) handleEvents(rawData *struct { | |||||||
| 		} | 		} | ||||||
| 	} else if rawData.Type == "ServerDelete" && c.OnServerDeleteFunctions != nil { | 	} else if rawData.Type == "ServerDelete" && c.OnServerDeleteFunctions != nil { | ||||||
| 		// Server delete event. | 		// Server delete event. | ||||||
| 		data := &struct { | 		data := &map[string]string{} | ||||||
| 			ServerId string `json:"id"` |  | ||||||
| 		}{} |  | ||||||
|  |  | ||||||
| 		err := json.Unmarshal([]byte(message), data) | 		err := json.Unmarshal([]byte(message), data) | ||||||
|  |  | ||||||
| @@ -241,7 +227,50 @@ func (c *Client) handleEvents(rawData *struct { | |||||||
| 		} | 		} | ||||||
|  |  | ||||||
| 		for _, i := range c.OnServerDeleteFunctions { | 		for _, i := range c.OnServerDeleteFunctions { | ||||||
| 			i(data.ServerId) | 			i((*data)["id"]) | ||||||
|  | 		} | ||||||
|  | 	} else if rawData.Type == "ServerMemberUpdate" && c.OnServerMemberUpdateFunctions != nil { | ||||||
|  | 		// Member update event. | ||||||
|  | 		data := &struct { | ||||||
|  | 			ServerId string                 `json:"id"` | ||||||
|  | 			Clear    string                 `json:"clear"` | ||||||
|  | 			Payload  map[string]interface{} `json:"data"` | ||||||
|  | 		}{} | ||||||
|  |  | ||||||
|  | 		err := json.Unmarshal([]byte(message), data) | ||||||
|  |  | ||||||
|  | 		if err != nil { | ||||||
|  | 			fmt.Printf("Unexcepted Error: %s", err) | ||||||
|  | 		} | ||||||
|  |  | ||||||
|  | 		for _, i := range c.OnServerMemberUpdateFunctions { | ||||||
|  | 			i(data.ServerId, data.Clear, data.Payload) | ||||||
|  | 		} | ||||||
|  | 	} else if rawData.Type == "ServerMemberJoin" && c.OnServerMemberJoinFunctions != nil { | ||||||
|  | 		// Member join event. | ||||||
|  | 		data := &map[string]string{} | ||||||
|  |  | ||||||
|  | 		err := json.Unmarshal([]byte(message), data) | ||||||
|  |  | ||||||
|  | 		if err != nil { | ||||||
|  | 			fmt.Printf("Unexcepted Error: %s", err) | ||||||
|  | 		} | ||||||
|  |  | ||||||
|  | 		for _, i := range c.OnServerMemberJoinFunctions { | ||||||
|  | 			i((*data)["id"], (*data)["user"]) | ||||||
|  | 		} | ||||||
|  | 	} else if rawData.Type == "ServerMemberLeave" && c.OnServerMemberLeaveFunctions != nil { | ||||||
|  | 		// Member left event. | ||||||
|  | 		data := &map[string]string{} | ||||||
|  |  | ||||||
|  | 		err := json.Unmarshal([]byte(message), data) | ||||||
|  |  | ||||||
|  | 		if err != nil { | ||||||
|  | 			fmt.Printf("Unexcepted Error: %s", err) | ||||||
|  | 		} | ||||||
|  |  | ||||||
|  | 		for _, i := range c.OnServerMemberLeaveFunctions { | ||||||
|  | 			i((*data)["id"], (*data)["user"]) | ||||||
| 		} | 		} | ||||||
| 	} else { | 	} else { | ||||||
| 		// Unknown event. | 		// Unknown event. | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user