From 8210ac59b265f93f582d940f06f8412851bac2bb Mon Sep 17 00:00:00 2001 From: Luther Wen Xu Date: Fri, 11 Oct 2019 23:13:57 +0800 Subject: [PATCH] go: Add admin command to take a peek at trust --- GoBot/command_admin.go | 42 ++++++++++++++++++++++++++++++++++++++++++ GoBot/main.go | 2 ++ 2 files changed, 44 insertions(+) diff --git a/GoBot/command_admin.go b/GoBot/command_admin.go index e223b95..a5ceb46 100644 --- a/GoBot/command_admin.go +++ b/GoBot/command_admin.go @@ -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) +} diff --git a/GoBot/main.go b/GoBot/main.go index 61d3b2f..c695ea9 100644 --- a/GoBot/main.go +++ b/GoBot/main.go @@ -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":