build(gokord): upgrade to latest version

This commit is contained in:
Anhgelus Morhtuuzh 2025-08-06 02:22:06 +02:00
parent d72004ae14
commit 5a8da1eaeb
Signed by: anhgelus
GPG key ID: CAD341EFA92DDDE5
13 changed files with 136 additions and 146 deletions

View file

@ -3,7 +3,8 @@ package commands
import (
"fmt"
"github.com/anhgelus/gokord"
"github.com/anhgelus/gokord/utils"
"github.com/anhgelus/gokord/cmd"
"github.com/anhgelus/gokord/logger"
"github.com/anhgelus/les-copaings-bot/config"
"github.com/anhgelus/les-copaings-bot/exp"
"github.com/bwmarrin/discordgo"
@ -33,7 +34,7 @@ var (
configModifyMap = map[string]uint{}
)
func Config(s *discordgo.Session, i *discordgo.InteractionCreate, optMap utils.OptionMap, resp *utils.ResponseBuilder) {
func Config(s *discordgo.Session, i *discordgo.InteractionCreate, _ cmd.OptionMap, resp *cmd.ResponseBuilder) {
cfg := config.GetGuildConfig(i.GuildID)
roles := ""
l := len(cfg.XpRoles) - 1
@ -69,7 +70,7 @@ func Config(s *discordgo.Session, i *discordgo.InteractionCreate, optMap utils.O
err := resp.AddEmbed(&discordgo.MessageEmbed{
Type: discordgo.EmbedTypeRich,
Title: "Config",
Color: utils.Success,
Color: 0x10E6AD,
Fields: []*discordgo.MessageEmbedField{
{
Name: "Salon par défaut",
@ -127,7 +128,7 @@ func Config(s *discordgo.Session, i *discordgo.InteractionCreate, optMap utils.O
},
}}).IsEphemeral().Send()
if err != nil {
utils.SendAlert("config/guild.go - Sending config", err.Error())
logger.Alert("config/guild.go - Sending config", err.Error())
}
}
@ -138,7 +139,7 @@ func ConfigXP(s *discordgo.Session, i *discordgo.InteractionCreate) {
cfg := config.GetGuildConfig(i.GuildID)
resp := utils.NewResponseBuilder(s, i)
resp := cmd.NewResponseBuilder(s, i)
msgData := i.MessageComponentData()
switch msgData.CustomID {
@ -173,7 +174,7 @@ func ConfigXP(s *discordgo.Session, i *discordgo.InteractionCreate) {
},
}}).Send()
if err != nil {
utils.SendAlert("config/guild.go - Sending config", err.Error())
logger.Alert("config/guild.go - Sending config", err.Error())
}
case XpRoleAdd, XpRoleEdit:
cID := XpRoleAddLevel
@ -195,7 +196,7 @@ func ConfigXP(s *discordgo.Session, i *discordgo.InteractionCreate) {
}}).
Send()
if err != nil {
utils.SendAlert("config/guild.go - Sending modal to add", err.Error())
logger.Alert("config/guild.go - Sending modal to add", err.Error())
}
case XpRoleAddRole:
roleId := msgData.Values[0]
@ -203,7 +204,7 @@ func ConfigXP(s *discordgo.Session, i *discordgo.InteractionCreate) {
if r.RoleID == roleId {
err := resp.SetMessage("Le rôle est déjà présent dans la config").Send()
if err != nil {
utils.SendAlert("commands/config.go - Role already in config", err.Error())
logger.Alert("commands/config.go - Role already in config", err.Error())
}
return
}
@ -214,7 +215,7 @@ func ConfigXP(s *discordgo.Session, i *discordgo.InteractionCreate) {
})
err := cfg.Save()
if err != nil {
utils.SendAlert(
logger.Alert(
"commands/config.go - Saving config",
err.Error(),
"guild_id", i.GuildID,
@ -223,7 +224,7 @@ func ConfigXP(s *discordgo.Session, i *discordgo.InteractionCreate) {
)
}
if err = resp.IsEphemeral().SetMessage("Rôle ajouté.").Send(); err != nil {
utils.SendAlert("commands/config.go - Sending success", err.Error())
logger.Alert("commands/config.go - Sending success", err.Error())
}
case XpRoleEditRole:
roleId := msgData.Values[0]
@ -231,14 +232,14 @@ func ConfigXP(s *discordgo.Session, i *discordgo.InteractionCreate) {
if r == nil {
err := resp.SetMessage("Le rôle n'a pas été trouvé dans la config.").Send()
if err != nil {
utils.SendAlert("commands/config.go - Role not found (edit)", err.Error())
logger.Alert("commands/config.go - Role not found (edit)", err.Error())
}
return
}
r.XP = configModifyMap[getKeyConfigRole(i)]
err := gokord.DB.Save(r).Error
if err != nil {
utils.SendAlert(
logger.Alert(
"commands/config.go - Saving config",
err.Error(),
"guild_id", i.GuildID,
@ -247,7 +248,7 @@ func ConfigXP(s *discordgo.Session, i *discordgo.InteractionCreate) {
)
}
if err = resp.IsEphemeral().SetMessage("Rôle modifié.").Send(); err != nil {
utils.SendAlert("commands/config.go - Sending success", err.Error())
logger.Alert("commands/config.go - Sending success", err.Error())
}
case XpRoleDel:
err := resp.IsEphemeral().
@ -258,7 +259,7 @@ func ConfigXP(s *discordgo.Session, i *discordgo.InteractionCreate) {
}}}).
Send()
if err != nil {
utils.SendAlert("config/guild.go - Sending response to del", err.Error())
logger.Alert("config/guild.go - Sending response to del", err.Error())
}
case XpRoleDelRole:
roleId := msgData.Values[0]
@ -266,13 +267,13 @@ func ConfigXP(s *discordgo.Session, i *discordgo.InteractionCreate) {
if r == nil {
err := resp.SetMessage("Le rôle n'a pas été trouvé dans la config.").Send()
if err != nil {
utils.SendAlert("commands/config.go - Role not found (del)", err.Error())
logger.Alert("commands/config.go - Role not found (del)", err.Error())
}
return
}
err := gokord.DB.Delete(r).Error
if err != nil {
utils.SendAlert(
logger.Alert(
"commands/config.go - Deleting entry",
err.Error(),
"guild_id", i.GuildID,
@ -281,12 +282,12 @@ func ConfigXP(s *discordgo.Session, i *discordgo.InteractionCreate) {
)
}
if err = resp.IsEphemeral().SetMessage("Rôle supprimé.").Send(); err != nil {
utils.SendAlert("commands/config.go - Sending success", err.Error())
logger.Alert("commands/config.go - Sending success", err.Error())
}
default:
err := resp.SetMessage("Le type d'action n'est pas valide.").Send()
if err != nil {
utils.SendAlert("commands/config.go - Invalid action type", err.Error())
logger.Alert("commands/config.go - Invalid action type", err.Error())
}
return
}
@ -296,7 +297,7 @@ func ConfigXPModal(s *discordgo.Session, i *discordgo.InteractionCreate) {
if i.Type != discordgo.InteractionModalSubmit {
return
}
resp := utils.NewResponseBuilder(s, i)
resp := cmd.NewResponseBuilder(s, i)
modalData := i.ModalSubmitData()
@ -312,7 +313,7 @@ func ConfigXPModal(s *discordgo.Session, i *discordgo.InteractionCreate) {
if err = resp.IsEphemeral().
SetMessage("Impossible de lire le nombre. Il doit s'agit d'un nombre entier positif.").
Send(); err != nil {
utils.SendAlert("command/config.go - Sending bad number", err.Error())
logger.Alert("command/config.go - Sending bad number", err.Error())
}
return
}
@ -337,7 +338,7 @@ func ConfigXPModal(s *discordgo.Session, i *discordgo.InteractionCreate) {
}}}).
Send()
if err != nil {
utils.SendAlert("config/guild.go - Sending response to add/edit", err.Error())
logger.Alert("config/guild.go - Sending response to add/edit", err.Error())
}
}
@ -345,14 +346,14 @@ func getKeyConfigRole(i *discordgo.InteractionCreate) string {
return fmt.Sprintf("r:%s:%s", i.GuildID, i.User.ID)
}
func ConfigChannel(s *discordgo.Session, i *discordgo.InteractionCreate, optMap utils.OptionMap, resp *utils.ResponseBuilder) {
func ConfigChannel(s *discordgo.Session, i *discordgo.InteractionCreate, optMap cmd.OptionMap, resp *cmd.ResponseBuilder) {
resp.IsEphemeral()
// verify every args
t, ok := optMap["type"]
if !ok {
err := resp.SetMessage("Le type d'action n'a pas été renseigné.").Send()
if err != nil {
utils.SendAlert("commands/config.go - Action type not set", err.Error())
logger.Alert("commands/config.go - Action type not set", err.Error())
}
return
}
@ -361,7 +362,7 @@ func ConfigChannel(s *discordgo.Session, i *discordgo.InteractionCreate, optMap
if !ok {
err := resp.SetMessage("Le salon n'a pas été renseigné.").Send()
if err != nil {
utils.SendAlert("commands/config.go - Channel not set (disabled)", err.Error())
logger.Alert("commands/config.go - Channel not set (disabled)", err.Error())
}
return
}
@ -372,7 +373,7 @@ func ConfigChannel(s *discordgo.Session, i *discordgo.InteractionCreate, optMap
if strings.Contains(cfg.DisabledChannels, channel.ID) {
err := resp.SetMessage("Le salon est déjà dans la liste des salons désactivés").Send()
if err != nil {
utils.SendAlert("commands/config.go - Channel already disabled", err.Error())
logger.Alert("commands/config.go - Channel already disabled", err.Error())
}
return
}
@ -381,7 +382,7 @@ func ConfigChannel(s *discordgo.Session, i *discordgo.InteractionCreate, optMap
if !strings.Contains(cfg.DisabledChannels, channel.ID) {
err := resp.SetMessage("Le salon n'est pas désactivé").Send()
if err != nil {
utils.SendAlert("commands/config.go - Channel not disabled", err.Error())
logger.Alert("commands/config.go - Channel not disabled", err.Error())
}
return
}
@ -389,14 +390,14 @@ func ConfigChannel(s *discordgo.Session, i *discordgo.InteractionCreate, optMap
default:
err := resp.SetMessage("Le type d'action n'est pas valide.").Send()
if err != nil {
utils.SendAlert("commands/config.go - Invalid action type", err.Error())
logger.Alert("commands/config.go - Invalid action type", err.Error())
}
return
}
// save
err := cfg.Save()
if err != nil {
utils.SendAlert(
logger.Alert(
"commands/config.go - Saving config",
err.Error(),
"guild_id",
@ -411,18 +412,18 @@ func ConfigChannel(s *discordgo.Session, i *discordgo.InteractionCreate, optMap
err = resp.SetMessage("Modification sauvegardé.").Send()
}
if err != nil {
utils.SendAlert("commands/config.go - Modification saved message", err.Error())
logger.Alert("commands/config.go - Modification saved message", err.Error())
}
}
func ConfigFallbackChannel(s *discordgo.Session, i *discordgo.InteractionCreate, optMap utils.OptionMap, resp *utils.ResponseBuilder) {
func ConfigFallbackChannel(s *discordgo.Session, i *discordgo.InteractionCreate, optMap cmd.OptionMap, resp *cmd.ResponseBuilder) {
resp.IsEphemeral()
// verify every args
salon, ok := optMap["channel"]
if !ok {
err := resp.SetMessage("Le salon n'a pas été renseigné.").Send()
if err != nil {
utils.SendAlert("commands/config.go - Channel not set (fallback)", err.Error())
logger.Alert("commands/config.go - Channel not set (fallback)", err.Error())
}
return
}
@ -430,7 +431,7 @@ func ConfigFallbackChannel(s *discordgo.Session, i *discordgo.InteractionCreate,
if channel.Type != discordgo.ChannelTypeGuildText {
err := resp.SetMessage("Le salon n'est pas un salon textuel.").Send()
if err != nil {
utils.SendAlert("commands/config.go - Invalid channel type", err.Error())
logger.Alert("commands/config.go - Invalid channel type", err.Error())
}
return
}
@ -439,7 +440,7 @@ func ConfigFallbackChannel(s *discordgo.Session, i *discordgo.InteractionCreate,
// save
err := cfg.Save()
if err != nil {
utils.SendAlert(
logger.Alert(
"commands/config.go - Saving config",
err.Error(),
"guild_id",
@ -452,18 +453,18 @@ func ConfigFallbackChannel(s *discordgo.Session, i *discordgo.InteractionCreate,
err = resp.SetMessage("Salon enregistré.").Send()
}
if err != nil {
utils.SendAlert("commands/config.go - Channel saved message", err.Error())
logger.Alert("commands/config.go - Channel saved message", err.Error())
}
}
func ConfigPeriodBeforeReduce(s *discordgo.Session, i *discordgo.InteractionCreate, optMap utils.OptionMap, resp *utils.ResponseBuilder) {
func ConfigPeriodBeforeReduce(s *discordgo.Session, i *discordgo.InteractionCreate, optMap cmd.OptionMap, resp *cmd.ResponseBuilder) {
resp.IsEphemeral()
// verify every args
days, ok := optMap["days"]
if !ok {
err := resp.SetMessage("Le nombre de jours n'a pas été renseigné.").Send()
if err != nil {
utils.SendAlert("commands/config.go - Days not set (fallback)", err.Error())
logger.Alert("commands/config.go - Days not set (fallback)", err.Error())
}
return
}
@ -471,7 +472,7 @@ func ConfigPeriodBeforeReduce(s *discordgo.Session, i *discordgo.InteractionCrea
if d < 30 {
err := resp.SetMessage("Le nombre de jours est inférieur à 30.").Send()
if err != nil {
utils.SendAlert("commands/config.go - Days < 30 (fallback)", err.Error())
logger.Alert("commands/config.go - Days < 30 (fallback)", err.Error())
}
return
}
@ -480,7 +481,7 @@ func ConfigPeriodBeforeReduce(s *discordgo.Session, i *discordgo.InteractionCrea
cfg.DaysXPRemains = uint(d)
err := cfg.Save()
if err != nil {
utils.SendAlert(
logger.Alert(
"commands/config.go - Saving config",
err.Error(),
"guild_id",
@ -493,6 +494,6 @@ func ConfigPeriodBeforeReduce(s *discordgo.Session, i *discordgo.InteractionCrea
err = resp.SetMessage("Nombre de jours enregistré.").Send()
}
if err != nil {
utils.SendAlert("commands/config.go - Days saved message", err.Error())
logger.Alert("commands/config.go - Days saved message", err.Error())
}
}

View file

@ -1,17 +1,18 @@
package commands
import (
"github.com/anhgelus/gokord/utils"
"github.com/anhgelus/gokord/cmd"
"github.com/anhgelus/gokord/logger"
"github.com/bwmarrin/discordgo"
)
func Credits(s *discordgo.Session, i *discordgo.InteractionCreate, optMap utils.OptionMap, resp *utils.ResponseBuilder) {
func Credits(_ *discordgo.Session, i *discordgo.InteractionCreate, _ cmd.OptionMap, resp *cmd.ResponseBuilder) {
err := resp.AddEmbed(&discordgo.MessageEmbed{
Type: discordgo.EmbedTypeRich,
Title: "Crédits",
Description: "Auteur du bot : @anhgelus (https://github.com/anhgelus)\nLangage : Go 1.24\nLicence : AGPLv3",
Color: utils.Success,
Color: 0x10E6AD,
Fields: []*discordgo.MessageEmbedField{
{
Name: "anhgelus/gokord",
@ -31,6 +32,6 @@ func Credits(s *discordgo.Session, i *discordgo.InteractionCreate, optMap utils.
},
}).Send()
if err != nil {
utils.SendAlert("commands/credits.go - Sending credits", err.Error(), "guild_id", i.GuildID)
logger.Alert("commands/credits.go - Sending credits", err.Error(), "guild_id", i.GuildID)
}
}

View file

@ -2,13 +2,14 @@ package commands
import (
"fmt"
"github.com/anhgelus/gokord/utils"
"github.com/anhgelus/gokord/cmd"
"github.com/anhgelus/gokord/logger"
"github.com/anhgelus/les-copaings-bot/exp"
"github.com/anhgelus/les-copaings-bot/user"
"github.com/bwmarrin/discordgo"
)
func Rank(s *discordgo.Session, i *discordgo.InteractionCreate, optMap utils.OptionMap, resp *utils.ResponseBuilder) {
func Rank(s *discordgo.Session, i *discordgo.InteractionCreate, optMap cmd.OptionMap, resp *cmd.ResponseBuilder) {
c := user.GetCopaing(i.Member.User.ID, i.GuildID) // current user = member who used /rank
msg := "Votre niveau"
m := i.Member
@ -18,12 +19,12 @@ func Rank(s *discordgo.Session, i *discordgo.InteractionCreate, optMap utils.Opt
if u.Bot {
err = resp.SetMessage("Imagine si les bots avaient un niveau :rolling_eyes:").IsEphemeral().Send()
if err != nil {
utils.SendAlert("commands/rank.go - Reply error user is a bot", err.Error())
logger.Alert("commands/rank.go - Reply error user is a bot", err.Error())
}
}
m, err = s.GuildMember(i.GuildID, u.ID)
if err != nil {
utils.SendAlert(
logger.Alert(
"commands/rank.go - Fetching guild member",
err.Error(),
"discord_id",
@ -33,7 +34,7 @@ func Rank(s *discordgo.Session, i *discordgo.InteractionCreate, optMap utils.Opt
)
err = resp.SetMessage("Erreur : impossible de récupérer le membre").IsEphemeral().Send()
if err != nil {
utils.SendAlert("commands/rank.go - Reply error fetching guild member", err.Error())
logger.Alert("commands/rank.go - Reply error fetching guild member", err.Error())
}
return
}
@ -42,7 +43,7 @@ func Rank(s *discordgo.Session, i *discordgo.InteractionCreate, optMap utils.Opt
}
xp, err := c.GetXP()
if err != nil {
utils.SendAlert(
logger.Alert(
"commands/rank.go - Fetching xp",
err.Error(),
"discord_id",
@ -52,7 +53,7 @@ func Rank(s *discordgo.Session, i *discordgo.InteractionCreate, optMap utils.Opt
)
err = resp.SetMessage("Erreur : impossible de récupérer l'XP").IsEphemeral().Send()
if err != nil {
utils.SendAlert("commands/rank.go - Reply error fetching xp", err.Error())
logger.Alert("commands/rank.go - Reply error fetching xp", err.Error())
}
return
}
@ -66,6 +67,6 @@ func Rank(s *discordgo.Session, i *discordgo.InteractionCreate, optMap utils.Opt
nxtLvlXP-xp,
)).Send()
if err != nil {
utils.SendAlert("commands/rank.go - Sending rank", err.Error())
logger.Alert("commands/rank.go - Sending rank", err.Error())
}
}

View file

@ -2,44 +2,45 @@ package commands
import (
"github.com/anhgelus/gokord"
"github.com/anhgelus/gokord/utils"
"github.com/anhgelus/gokord/cmd"
"github.com/anhgelus/gokord/logger"
"github.com/anhgelus/les-copaings-bot/user"
"github.com/bwmarrin/discordgo"
)
func Reset(s *discordgo.Session, i *discordgo.InteractionCreate, optMap utils.OptionMap, resp *utils.ResponseBuilder) {
func Reset(_ *discordgo.Session, i *discordgo.InteractionCreate, _ cmd.OptionMap, resp *cmd.ResponseBuilder) {
var copaings []*user.Copaing
gokord.DB.Where("guild_id = ?", i.GuildID).Delete(&copaings)
if err := resp.IsEphemeral().SetMessage("L'XP a été reset.").Send(); err != nil {
utils.SendAlert("commands/reset.go - Sending success (all)", err.Error())
logger.Alert("commands/reset.go - Sending success (all)", err.Error())
}
}
func ResetUser(s *discordgo.Session, i *discordgo.InteractionCreate, optMap utils.OptionMap, resp *utils.ResponseBuilder) {
func ResetUser(s *discordgo.Session, i *discordgo.InteractionCreate, optMap cmd.OptionMap, resp *cmd.ResponseBuilder) {
resp.IsEphemeral()
v, ok := optMap["user"]
if !ok {
if err := resp.SetMessage("Le user n'a pas été renseigné.").Send(); err != nil {
utils.SendAlert("commands/reset.go - Copaing not set", err.Error())
logger.Alert("commands/reset.go - Copaing not set", err.Error())
}
return
}
m := v.UserValue(s)
if m.Bot {
if err := resp.SetMessage("Les bots n'ont pas de niveau :upside_down:").Send(); err != nil {
utils.SendAlert("commands/reset.go - Copaing not set", err.Error())
logger.Alert("commands/reset.go - Copaing not set", err.Error())
}
return
}
err := user.GetCopaing(m.ID, i.GuildID).Delete()
if err != nil {
utils.SendAlert("commands/reset.go - Copaing not deleted", err.Error(), "discord_id", m.ID, "guild_id", i.GuildID)
logger.Alert("commands/reset.go - Copaing not deleted", err.Error(), "discord_id", m.ID, "guild_id", i.GuildID)
err = resp.SetMessage("Erreur : impossible de reset l'utilisateur").Send()
if err != nil {
utils.SendAlert("commands/reset.go - Error deleting", err.Error())
logger.Alert("commands/reset.go - Error deleting", err.Error())
}
}
if err = resp.SetMessage("Le user bien été reset.").Send(); err != nil {
utils.SendAlert("commands/reset.go - Sending success (user)", err.Error())
logger.Alert("commands/reset.go - Sending success (user)", err.Error())
}
}

View file

@ -2,7 +2,8 @@ package commands
import (
"fmt"
"github.com/anhgelus/gokord/utils"
"github.com/anhgelus/gokord/cmd"
"github.com/anhgelus/gokord/logger"
"github.com/anhgelus/les-copaings-bot/config"
"github.com/anhgelus/les-copaings-bot/exp"
"github.com/anhgelus/les-copaings-bot/user"
@ -10,10 +11,10 @@ import (
"sync"
)
func Top(s *discordgo.Session, i *discordgo.InteractionCreate, optMap utils.OptionMap, resp *utils.ResponseBuilder) {
func Top(_ *discordgo.Session, i *discordgo.InteractionCreate, _ cmd.OptionMap, resp *cmd.ResponseBuilder) {
err := resp.IsDeferred().Send()
if err != nil {
utils.SendAlert("commands/top.go - Sending deferred", err.Error())
logger.Alert("commands/top.go - Sending deferred", err.Error())
return
}
embeds := make([]*discordgo.MessageEmbed, 3)
@ -23,18 +24,18 @@ func Top(s *discordgo.Session, i *discordgo.InteractionCreate, optMap utils.Opti
defer wg.Done()
tops, err := user.GetBestXP(i.GuildID, n, d)
if err != nil {
utils.SendAlert("commands/top.go - Fetching best xp", err.Error(), "n", n, "d", d, "id", id, "guild_id", i.GuildID)
logger.Alert("commands/top.go - Fetching best xp", err.Error(), "n", n, "d", d, "id", id, "guild_id", i.GuildID)
embeds[id] = &discordgo.MessageEmbed{
Title: s,
Description: "Erreur : impossible de récupérer la liste",
Color: utils.Error,
Color: 0x831010,
}
return
}
embeds[id] = &discordgo.MessageEmbed{
Title: s,
Description: genTopsMessage(tops),
Color: utils.Success,
Color: 0x10E6AD,
}
}
cfg := config.GetGuildConfig(i.GuildID)
@ -57,7 +58,7 @@ func Top(s *discordgo.Session, i *discordgo.InteractionCreate, optMap utils.Opti
}
err = resp.Send()
if err != nil {
utils.SendAlert("commands/top.go - Sending response top", err.Error())
logger.Alert("commands/top.go - Sending response top", err.Error())
}
}()
}