forked from Minecraft/canopeas
Add welcome command (#10)
Add welcome command Signed-off-by: Etzelia <etzelia@hotmail.com> Reviewed-on: https://git.etztech.xyz/Etzelia/sedbot/pulls/10fix-app
parent
37c6afa8c3
commit
1683cc6214
|
@ -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",
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue