mirror of
https://github.com/42wim/matterbridge.git
synced 2024-11-30 14:42:00 -08:00
52e2f926f4
This has been tested with one webhook in one channel. Sends, edits and deletions work fine
33 lines
765 B
Go
33 lines
765 B
Go
package transmitter
|
|
|
|
import (
|
|
"github.com/matterbridge/discordgo"
|
|
)
|
|
|
|
// isDiscordPermissionError returns false for nil, and true if a Discord RESTError with code discordgo.ErrorCodeMissionPermissions
|
|
func isDiscordPermissionError(err error) bool {
|
|
if err == nil {
|
|
return false
|
|
}
|
|
|
|
restErr, ok := err.(*discordgo.RESTError)
|
|
if !ok {
|
|
return false
|
|
}
|
|
|
|
return restErr.Message != nil && restErr.Message.Code == discordgo.ErrCodeMissingPermissions
|
|
}
|
|
|
|
// getDiscordUserID gets own user ID from state, and fallback on API request
|
|
func getDiscordUserID(session *discordgo.Session) (string, error) {
|
|
if user := session.State.User; user != nil {
|
|
return user.ID, nil
|
|
}
|
|
|
|
user, err := session.User("@me")
|
|
if err != nil {
|
|
return "", err
|
|
}
|
|
return user.ID, nil
|
|
}
|