now blocking autojoinroles with missing permissions

This commit is contained in:
2024-03-04 17:38:55 +01:00
parent 031d8ee81d
commit 4d02026f25
3 changed files with 55 additions and 22 deletions

47
tool.go
View File

@@ -1,6 +1,12 @@
package main
import "encoding/json"
import (
"encoding/json"
"strconv"
"strings"
"github.com/bwmarrin/discordgo"
)
type ModalJsonField struct {
Label string `json:"label"`
@@ -20,5 +26,42 @@ type ModalJson struct {
func jsonStringShowModal(jsonString string, id string) {
var modal ModalJson
json.Unmarshal([]byte(jsonString), &modal)
}
func getHighestRole(s *discordgo.Session, guildID string) (*discordgo.Role, error) {
botMember, err := s.GuildMember(guildID, s.State.User.ID)
if err != nil {
return nil, err
}
roles, err := s.GuildRoles(guildID)
if err != nil {
return nil, err
}
var highestRole *discordgo.Role
for _, roleID := range botMember.Roles {
for _, role := range roles {
if role.ID == roleID {
if highestRole == nil || role.Position > highestRole.Position {
highestRole = role
}
break
}
}
}
return highestRole, nil
}
func int64Ptr(i int64) *int64 {
return &i
}
func hexToDecimal(hexColor string) int {
// Remove the hash symbol if it's present
hexColor = strings.TrimPrefix(hexColor, "#")
decimal, err := strconv.ParseInt(hexColor, 16, 64)
if err != nil {
return 0
}
return int(decimal)
}