From 75df974f6fa47291eedadbea8bffbce7b90acfac Mon Sep 17 00:00:00 2001 From: Anhgelus Morhtuuzh Date: Mon, 15 Apr 2024 18:30:58 +0200 Subject: feat(command): top --- commands/top.go | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 commands/top.go (limited to 'commands/top.go') diff --git a/commands/top.go b/commands/top.go new file mode 100644 index 0000000..bc444a3 --- /dev/null +++ b/commands/top.go @@ -0,0 +1,41 @@ +package commands + +import ( + "fmt" + "github.com/anhgelus/gokord" + "github.com/anhgelus/gokord/utils" + "github.com/anhgelus/les-copaings-bot/xp" + "github.com/bwmarrin/discordgo" +) + +func Top(s *discordgo.Session, i *discordgo.InteractionCreate) { + resp := utils.ResponseBuilder{C: s, I: i} + err := resp.IsDeferred().Send() + if err != nil { + utils.SendAlert("commands/top.go - Sending deferred", err.Error()) + return + } + resp.NotDeferred().IsEdit() + go func() { + var tops []xp.Copaing + gokord.DB.Where("guild_id = ?", i.GuildID).Limit(10).Order("xp desc").Find(&tops) + msg := "" + for i, c := range tops { + if i == 9 { + msg += fmt.Sprintf("%d. **<@%s>** - niveau %d", i+1, c.DiscordID, xp.Level(c.XP)) + } else { + msg += fmt.Sprintf("%d. **<@%s>** - niveau %d\n", i+1, c.DiscordID, xp.Level(c.XP)) + } + } + err = resp.Embeds([]*discordgo.MessageEmbed{ + { + Title: "Top", + Description: msg, + Color: utils.Success, + }, + }).Send() + if err != nil { + utils.SendAlert("commands/top.go - Sending response top", err.Error()) + } + }() +} -- cgit v1.2.3