go: Add admin command to take a peek at trust

pull/6/head
Luther Wen Xu 2019-10-11 23:13:57 +07:00
parent 75363ec5a2
commit 8210ac59b2
Signed by: chanbakjsd
GPG Key ID: B7D77E3E9D102B70
2 changed files with 44 additions and 0 deletions

@ -1,6 +1,7 @@
package main
import (
"fmt"
"strings"
"github.com/bwmarrin/discordgo"
@ -38,3 +39,44 @@ func editAs(s *discordgo.Session, m *discordgo.MessageCreate, command []string)
}
s.ChannelMessageSend(m.ChannelID, "The message has been edited.")
}
func viewTrustLevel(s *discordgo.Session, m *discordgo.MessageCreate, command []string) {
if m.Author.ID != adminID {
return
}
if len(command) > 1 {
value, err := getTrust(command[1])
if err != nil {
s.ChannelMessageSend(m.ChannelID, err.Error())
return
}
total, err := getTotalTrust(s)
if err != nil {
s.ChannelMessageSend(m.ChannelID, err.Error())
return
}
s.ChannelMessageSend(m.ChannelID, fmt.Sprintf("Trust level is %.1f/%.1f (%.2f%%) for user <@%d>.", value, total, value/total*100, command[1]))
return
}
total, err := getTotalTrust(s)
if err != nil {
s.ChannelMessageSend(m.ChannelID, err.Error())
return
}
message := ""
members, err := getAllMembers(s)
if err != nil {
s.ChannelMessageSend(m.ChannelID, err.Error())
return
}
for _, v := range members {
value, err := getTrust(v.User.ID)
if err != nil {
s.ChannelMessageSend(m.ChannelID, err.Error())
return
}
message += fmt.Sprintf("%s#%s - %.1f/%.1f (%.2f%%)\n", v.User.Username, v.User.Discriminator, value, total, value/total*100)
}
s.ChannelMessageSend(m.ChannelID, message)
}

@ -53,6 +53,8 @@ func messageCreate(s *discordgo.Session, m *discordgo.MessageCreate) {
sendAs(s, m, command)
case "!editas":
editAs(s, m, command)
case "!peektrust":
viewTrustLevel(s, m, command)
case "!invite":
createInvite(s, m, command)
case "!trust":