This commit is contained in:
@@ -41,21 +41,23 @@ func OnGuildMemberAdd(s *discordgo.Session, member *discordgo.GuildMemberAdd) {
|
||||
if err != nil {
|
||||
log.Println("Error adding user to guild: ", err)
|
||||
}
|
||||
roles, err := services.RoleService.GetAutoRoles(member.GuildID)
|
||||
if err != nil {
|
||||
log.Println("Error getting Auto Join Roles: ", err)
|
||||
}
|
||||
log.Println(roles)
|
||||
for _, r := range roles {
|
||||
role, err := s.State.Role(member.GuildID, r.ID)
|
||||
if !member.Member.Pending {
|
||||
roles, err := services.RoleService.GetAutoRoles(member.GuildID)
|
||||
if err != nil {
|
||||
log.Println("Error getting role: ", err)
|
||||
continue
|
||||
log.Println("Error getting Auto Join Roles: ", err)
|
||||
}
|
||||
err = s.GuildMemberRoleAdd(member.GuildID, member.User.ID, role.ID)
|
||||
if err != nil {
|
||||
log.Println("Error adding Role to member: ", err)
|
||||
continue
|
||||
log.Println(roles)
|
||||
for _, r := range roles {
|
||||
role, err := s.State.Role(member.GuildID, r.ID)
|
||||
if err != nil {
|
||||
log.Println("Error getting role: ", err)
|
||||
continue
|
||||
}
|
||||
err = s.GuildMemberRoleAdd(member.GuildID, member.User.ID, role.ID)
|
||||
if err != nil {
|
||||
log.Println("Error adding Role to member: ", err)
|
||||
continue
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -88,3 +90,36 @@ func OnGuildMemberRemove(s *discordgo.Session, member *discordgo.GuildMemberRemo
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func OnGuildMemberUpdate(s *discordgo.Session, member *discordgo.GuildMemberUpdate) {
|
||||
defer func() {
|
||||
if r := recover(); r != nil {
|
||||
log.Println("Recovered from panic in OnGuildMemberUpdate: ", r)
|
||||
}
|
||||
}()
|
||||
if !member.Member.Pending {
|
||||
roles, err := services.RoleService.GetAutoRoles(member.GuildID)
|
||||
if err != nil {
|
||||
log.Println("Error getting Auto Join Roles: ", err)
|
||||
}
|
||||
log.Println(roles)
|
||||
RoleLoop:
|
||||
for _, r := range roles {
|
||||
for _, rl := range member.Roles {
|
||||
if rl == r.ID {
|
||||
continue RoleLoop
|
||||
}
|
||||
}
|
||||
role, err := s.State.Role(member.GuildID, r.ID)
|
||||
if err != nil {
|
||||
log.Println("Error getting role: ", err)
|
||||
continue
|
||||
}
|
||||
err = s.GuildMemberRoleAdd(member.GuildID, member.User.ID, role.ID)
|
||||
if err != nil {
|
||||
log.Println("Error adding Role to member: ", err)
|
||||
continue
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -163,5 +163,4 @@ func MarkMemberInactive(s *discordgo.Session, m *discordgo.GuildMemberRemove) {
|
||||
log.Println(fmt.Errorf("error marking %s as inactive: %w", m.User.ID, err))
|
||||
return
|
||||
}
|
||||
log.Println("User left: %s")
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user