Add welcome command (#10)

Add welcome command

Signed-off-by: Etzelia <etzelia@hotmail.com>

Reviewed-on: https://git.etztech.xyz/Etzelia/sedbot/pulls/10
fix-app
Etzelia 2020-08-02 23:00:05 +02:00
parent 37c6afa8c3
commit 1683cc6214
1 changed files with 53 additions and 0 deletions

53
discord/welcome.go 100644
View File

@ -0,0 +1,53 @@
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",
}
}