package discord import ( "fmt" "github.com/bwmarrin/discordgo" ) func init() { commands["welcome"] = command{ validate: func(cmd commandInit) bool { return isStaff(cmd.message.Member.Roles, cmd.config.StaffRoles) }, run: func(cmd commandInit) (string, error) { if err := cmd.session.ChannelMessageDelete(cmd.message.ChannelID, cmd.message.ID); err != nil { return "", err } orphans := make([]*discordgo.Member, 0) members, err := cmd.session.GuildMembers(cmd.message.GuildID, "", 1000) if err != nil { return "", err } for _, member := range members { if len(member.Roles) == 0 { orphans = append(orphans, member) } } resp := "There are no members without roles!" if len(orphans) > 0 { resp = "```\n" for _, orphan := range orphans { resp += fmt.Sprintf("<@%s>\n", orphan.User.ID) } resp += "```" } channel, err := cmd.session.UserChannelCreate(cmd.message.Author.ID) if err != nil { return "", nil } if _, err := cmd.session.ChannelMessageSend(channel.ID, resp); err != nil { return "", nil } return "", nil }, help: "Get a list of people with no roles", } }