aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnhgelus Morhtuuzh <william@herges.fr>2026-03-02 12:38:58 +0100
committerAnhgelus Morhtuuzh <william@herges.fr>2026-03-02 12:38:58 +0100
commite566489af26fc9133a3509251812910e03b90c8c (patch)
tree186a7aac60c64e3466f7a84f6fcf87e811b2486d
parent443286aabc9d9e433625e0dd99e678754bbc74e5 (diff)
build(gokord): update to latest nightly
-rw-r--r--commands/config.go6
-rw-r--r--commands/credits.go2
-rw-r--r--commands/deploy.go2
-rw-r--r--commands/rank.go5
-rw-r--r--commands/reset.go4
-rw-r--r--commands/stats.go9
-rw-r--r--commands/top.go2
-rw-r--r--config/guild.go3
-rw-r--r--config/xp_reduce.go6
-rw-r--r--config/xp_role.go20
-rw-r--r--events.go5
-rw-r--r--main.go8
-rw-r--r--rolereact/events.go5
-rw-r--r--rolereact/manager.go4
-rw-r--r--rolereact/rolereact.go56
-rw-r--r--user/level.go7
16 files changed, 75 insertions, 69 deletions
diff --git a/commands/config.go b/commands/config.go
index d9b04ec..37aa953 100644
--- a/commands/config.go
+++ b/commands/config.go
@@ -121,7 +121,7 @@ func ConfigResponse(ctx context.Context, guildID string) *interaction.Response {
}
func ConfigCommand(ctx context.Context, dg bot.Session, i *interaction.ApplicationCommand) {
- err := dg.InteractionAPI().Respond(i.Interaction, ConfigResponse(ctx, i.GuildID)).Do(ctx)
+ err := interaction.Respond(i.Interaction, ConfigResponse(ctx, i.GuildID)).Do(ctx)
if err != nil {
bot.Logger(ctx).Error("sending config", "error", err)
}
@@ -131,7 +131,7 @@ func ConfigMessageComponent(ctx context.Context, dg bot.Session, i *interaction.
response := ConfigResponse(ctx, i.GuildID)
response.Type = types.InteractionResponseUpdateMessage
- err := dg.InteractionAPI().Respond(i.Interaction, response).Do(ctx)
+ err := interaction.Respond(i.Interaction, response).Do(ctx)
if err != nil {
bot.Logger(ctx).Error("sending config", "error", err)
}
@@ -141,7 +141,7 @@ func ConfigModal(ctx context.Context, dg bot.Session, i *interaction.ModalSubmit
response := ConfigResponse(ctx, i.GuildID)
response.Type = types.InteractionResponseUpdateMessage
- err := dg.InteractionAPI().Respond(i.Interaction, response).Do(ctx)
+ err := interaction.Respond(i.Interaction, response).Do(ctx)
if err != nil {
bot.Logger(ctx).Error("sending config", "error", err)
}
diff --git a/commands/credits.go b/commands/credits.go
index a27d2cc..403329e 100644
--- a/commands/credits.go
+++ b/commands/credits.go
@@ -15,7 +15,7 @@ func Credits(ctx context.Context, dg bot.Session, i *interaction.ApplicationComm
msg += "Utilise :\n- [nyttikord/gokord](<https://github.com/nyttikord/gokord>)\n"
msg += "- [Inter](<https://github.com/rsms/inter>)"
resp := interaction.NewMessageResponse().Message(msg).Response()
- err := dg.InteractionAPI().Respond(i.Interaction, resp).Do(ctx)
+ err := interaction.Respond(i.Interaction, resp).Do(ctx)
if err != nil {
bot.Logger(ctx).Error("sending credits", "error", err)
}
diff --git a/commands/deploy.go b/commands/deploy.go
index ee98d07..e652d43 100644
--- a/commands/deploy.go
+++ b/commands/deploy.go
@@ -73,6 +73,6 @@ func Deploy(ctx context.Context, dg bot.Session) error {
guildID = dg.GuildAPI().State.Guilds()[0]
bot.Logger(ctx).Debug("using guild as debug", "guild", guildID)
}
- _, err := dg.InteractionAPI().CommandBulkOverwrite(dg.SessionState().Application().ID, guildID, commands).Do(ctx)
+ _, err := interaction.OverwriteCommands(dg.SessionState().Application().ID, guildID, commands).Do(ctx)
return err
}
diff --git a/commands/rank.go b/commands/rank.go
index 07bbe75..aea2aa8 100644
--- a/commands/rank.go
+++ b/commands/rank.go
@@ -7,6 +7,7 @@ import (
"git.anhgelus.world/anhgelus/les-copaings-bot/exp"
"git.anhgelus.world/anhgelus/les-copaings-bot/user"
"github.com/nyttikord/gokord/bot"
+ "github.com/nyttikord/gokord/guild"
"github.com/nyttikord/gokord/interaction"
)
@@ -17,7 +18,7 @@ func Rank(ctx context.Context, dg bot.Session, i *interaction.ApplicationCommand
opts := i.OptionMap()
resp := interaction.NewMessageResponse()
defer func() {
- err := dg.InteractionAPI().Respond(i.Interaction, resp.Response()).Do(ctx)
+ err := interaction.Respond(i.Interaction, resp.Response()).Do(ctx)
if err != nil {
bot.Logger(ctx).Error("replying to interaction", "error", err)
}
@@ -29,7 +30,7 @@ func Rank(ctx context.Context, dg bot.Session, i *interaction.ApplicationCommand
resp.IsEphemeral().Message("Imagine si les bots avaient un niveau :rolling_eyes:")
return
}
- m, err = dg.GuildAPI().Member(i.GuildID, u.ID).Do(ctx)
+ m, err = guild.GetMember(i.GuildID, u.ID).Do(ctx)
if err != nil {
bot.Logger(ctx).Error("fetching guild member", "error", err, "user", u.Username, "guild", i.GuildID)
resp.IsEphemeral().Message("Erreur : impossible de récupérer le membre")
diff --git a/commands/reset.go b/commands/reset.go
index 85f8f0d..f9c81d2 100644
--- a/commands/reset.go
+++ b/commands/reset.go
@@ -14,7 +14,7 @@ func Reset(ctx context.Context, dg bot.Session, i *interaction.ApplicationComman
//TODO: delete everything from cache
common.GetDB(ctx).Where("guild_id = ?", i.GuildID).Delete(&copaings)
resp := interaction.NewMessageResponse().IsEphemeral().Message("L'XP a été reset.").Response()
- err := dg.InteractionAPI().Respond(i.Interaction, resp).Do(ctx)
+ err := interaction.Respond(i.Interaction, resp).Do(ctx)
if err != nil {
bot.Logger(ctx).Error("sending reset success", "error", err)
}
@@ -23,7 +23,7 @@ func Reset(ctx context.Context, dg bot.Session, i *interaction.ApplicationComman
func ResetUser(ctx context.Context, dg bot.Session, i *interaction.ApplicationCommand) {
resp := interaction.NewMessageResponse().IsEphemeral()
defer func() {
- err := dg.InteractionAPI().Respond(i.Interaction, resp.Response()).Do(ctx)
+ err := interaction.Respond(i.Interaction, resp.Response()).Do(ctx)
if err != nil {
bot.Logger(ctx).Error("replying to interaction", "error", err)
}
diff --git a/commands/stats.go b/commands/stats.go
index 971d36a..2cc0b3e 100644
--- a/commands/stats.go
+++ b/commands/stats.go
@@ -19,6 +19,7 @@ import (
"github.com/jackc/pgx/v5/pgtype"
"github.com/nyttikord/gokord/bot"
"github.com/nyttikord/gokord/discord/request"
+ "github.com/nyttikord/gokord/guild"
"github.com/nyttikord/gokord/interaction"
"gonum.org/v1/plot"
"gonum.org/v1/plot/plotter"
@@ -56,14 +57,14 @@ func Stats(ctx context.Context, dg bot.Session, i *interaction.ApplicationComman
days = 90
}
- err := dg.InteractionAPI().Respond(i.Interaction, interaction.NewDeferredResponse()).Do(ctx)
+ err := interaction.Respond(i.Interaction, interaction.NewDeferredResponse()).Do(ctx)
if err != nil {
bot.Logger(ctx).Error("sending deferred", "error", err)
}
resp := interaction.NewMessageResponse()
defer func() {
- _, err = dg.InteractionAPI().ResponseEdit(i.Interaction, resp.WebhookEdit()).Do(ctx)
+ _, err = interaction.EditResponse(i.Interaction, resp.WebhookEdit()).Do(ctx)
if err != nil {
bot.Logger(ctx).Error("replying to interaction", "error", err)
}
@@ -118,7 +119,7 @@ func statsAll(ctx context.Context, dg bot.Session, i *interaction.ApplicationCom
}
func statsMember(ctx context.Context, dg bot.Session, i *interaction.ApplicationCommand, days int, discordID string) (io.WriterTo, error) {
- _, err := dg.GuildAPI().Member(i.GuildID, discordID).Do(ctx)
+ _, err := guild.GetMember(i.GuildID, discordID).Do(ctx)
if err != nil {
return nil, err
}
@@ -236,7 +237,7 @@ func generatePlot(ctx context.Context, dg bot.Session, i *interaction.Applicatio
cnt := 0
for in, c := range copaings {
- m, err := dg.GuildAPI().Member(i.GuildID, c.DiscordID).Do(ctx)
+ m, err := guild.GetMember(i.GuildID, c.DiscordID).Do(ctx)
if err != nil {
bot.Logger(ctx).Error("fetching guild member", "error", err)
return nil, err
diff --git a/commands/top.go b/commands/top.go
index 7b57d8f..aa0c288 100644
--- a/commands/top.go
+++ b/commands/top.go
@@ -50,7 +50,7 @@ func Top(ctx context.Context, dg bot.Session, i *interaction.ApplicationCommand)
resp.AddEmbed(embeds[1]).
AddEmbed(embeds[2])
}
- err := dg.InteractionAPI().Respond(i.Interaction, resp.Response()).Do(ctx)
+ err := interaction.Respond(i.Interaction, resp.Response()).Do(ctx)
if err != nil {
bot.Logger(ctx).Error("sending response top", "error", err)
}
diff --git a/config/guild.go b/config/guild.go
index 6cdc06b..98ef0cb 100644
--- a/config/guild.go
+++ b/config/guild.go
@@ -6,6 +6,7 @@ import (
"git.anhgelus.world/anhgelus/les-copaings-bot/common"
"github.com/nyttikord/gokord/bot"
+ "github.com/nyttikord/gokord/channel"
)
type Guild struct {
@@ -59,7 +60,7 @@ func (cfg *Guild) IsDisabled(ctx context.Context, dg bot.Session, channelID stri
c, err := dg.ChannelAPI().State.Channel(channelID)
if err != nil {
bot.Logger(ctx).Error("unable to find channel %s in state", "error", err, "channel", c)
- c, err = dg.ChannelAPI().Channel(channelID).Do(ctx)
+ c, err = channel.Get(channelID).Do(ctx)
if err != nil {
bot.Logger(ctx).Error("unable to fetch channel", "error", err, "channel", c)
return false
diff --git a/config/xp_reduce.go b/config/xp_reduce.go
index aa2c540..36e64ed 100644
--- a/config/xp_reduce.go
+++ b/config/xp_reduce.go
@@ -35,7 +35,7 @@ func HandleModifyPeriodicReduceCommand(ctx context.Context, dg bot.Session, i *i
},
}).
Response()
- err := dg.InteractionAPI().Respond(i.Interaction, resp).Do(ctx)
+ err := interaction.Respond(i.Interaction, resp).Do(ctx)
if err != nil {
bot.Logger(ctx).Error("sending xp reduce modal", "error", err)
}
@@ -49,7 +49,7 @@ func HandleTimeReduceSet(ctx context.Context, dg bot.Session, i *interaction.Mod
IsEphemeral().
Message(fmt.Sprintf("La valeur indiquée, `%s`, c'est pas un entier.", v)).
Response()
- err = dg.InteractionAPI().Respond(i.Interaction, resp).Do(ctx)
+ err = interaction.Respond(i.Interaction, resp).Do(ctx)
if err != nil {
bot.Logger(ctx).Error("sending bad input message", "error", err)
}
@@ -60,7 +60,7 @@ func HandleTimeReduceSet(ctx context.Context, dg bot.Session, i *interaction.Mod
IsEphemeral().
Message("Le nombre de jours doit être suppérieur à 30.").
Response()
- err = dg.InteractionAPI().Respond(i.Interaction, resp).Do(ctx)
+ err = interaction.Respond(i.Interaction, resp).Do(ctx)
if err != nil {
bot.Logger(ctx).Error("sending less than 30 days message", "error", err)
}
diff --git a/config/xp_role.go b/config/xp_role.go
index edf5f61..e00d3f7 100644
--- a/config/xp_role.go
+++ b/config/xp_role.go
@@ -89,7 +89,7 @@ func HandleXpRole(ctx context.Context, dg bot.Session, i *interaction.Interactio
Flags: channel.MessageFlagsIsComponentsV2,
},
}
- err := dg.InteractionAPI().Respond(i, response).Do(ctx)
+ err := interaction.Respond(i, response).Do(ctx)
if err != nil {
bot.Logger(ctx).Error("sending config", "error", err)
}
@@ -121,7 +121,7 @@ func HandleXpRoleNew(ctx context.Context, dg bot.Session, i *interaction.Message
},
}).
Response()
- err := dg.InteractionAPI().Respond(i.Interaction, resp).Do(ctx)
+ err := interaction.Respond(i.Interaction, resp).Do(ctx)
if err != nil {
bot.Logger(ctx).Error("sending modal to add", "error", err)
}
@@ -181,7 +181,7 @@ func HandleXpRoleEdit(ctx context.Context, dg bot.Session, i *interaction.Intera
},
}
- err := dg.InteractionAPI().Respond(i, response).Do(ctx)
+ err := interaction.Respond(i, response).Do(ctx)
if err != nil {
bot.Logger(ctx).Error("sending xp_role config", "error", err)
}
@@ -193,7 +193,7 @@ func HandleXpRoleEditRole(ctx context.Context, dg bot.Session, i *interaction.Me
cfg := GetGuildConfig(ctx, i.GuildID)
_, xpRole := cfg.FindXpRoleID(id)
if xpRole == nil {
- err := dg.InteractionAPI().Respond(i.Interaction, &interaction.Response{
+ err := interaction.Respond(i.Interaction, &interaction.Response{
Type: types.InteractionResponseChannelMessageWithSource,
Data: &interaction.ResponseData{
Flags: channel.MessageFlagsEphemeral,
@@ -218,7 +218,7 @@ func HandleXpRoleEditLevelStart(ctx context.Context, dg bot.Session, i *interact
cfg := GetGuildConfig(ctx, i.GuildID)
_, xpRole := cfg.FindXpRoleID(id)
if xpRole == nil {
- err := dg.InteractionAPI().Respond(i.Interaction, &interaction.Response{
+ err := interaction.Respond(i.Interaction, &interaction.Response{
Type: types.InteractionResponseChannelMessageWithSource,
Data: &interaction.ResponseData{
Flags: channel.MessageFlagsEphemeral,
@@ -251,7 +251,7 @@ func HandleXpRoleEditLevelStart(ctx context.Context, dg bot.Session, i *interact
},
},
}
- err := dg.InteractionAPI().Respond(i.Interaction, response).Do(ctx)
+ err := interaction.Respond(i.Interaction, response).Do(ctx)
if err != nil {
bot.Logger(ctx).Error("sending edit level modal", "error", err)
}
@@ -267,7 +267,7 @@ func HandleXpRoleEditLevel(ctx context.Context, dg bot.Session, i *interaction.M
IsEphemeral().
Message(fmt.Sprintf("Le niveau doit être un nombre entier positif.\n-# Trouvé : %s", levelInput.Value)).
Response()
- err = dg.InteractionAPI().Respond(i.Interaction, resp).Do(ctx)
+ err = interaction.Respond(i.Interaction, resp).Do(ctx)
if err != nil {
bot.Logger(ctx).Error("sending bad number warning message", "error", err)
}
@@ -278,7 +278,7 @@ func HandleXpRoleEditLevel(ctx context.Context, dg bot.Session, i *interaction.M
cfg := GetGuildConfig(ctx, i.GuildID)
_, xpRole := cfg.FindXpRoleID(id)
if xpRole == nil {
- err = dg.InteractionAPI().Respond(i.Interaction, &interaction.Response{
+ err = interaction.Respond(i.Interaction, &interaction.Response{
Type: types.InteractionResponseChannelMessageWithSource,
Data: &interaction.ResponseData{
Flags: channel.MessageFlagsEphemeral,
@@ -303,7 +303,7 @@ func HandleXpRoleDel(ctx context.Context, dg bot.Session, i *interaction.Message
cfg := GetGuildConfig(ctx, i.GuildID)
_, role := cfg.FindXpRoleID(id)
if role == nil {
- err := dg.InteractionAPI().Respond(i.Interaction, &interaction.Response{
+ err := interaction.Respond(i.Interaction, &interaction.Response{
Type: types.InteractionResponseChannelMessageWithSource,
Data: &interaction.ResponseData{
Content: "Rôle introuvable. Peut-être a-t-il déjà été supprimé ?",
@@ -332,7 +332,7 @@ func HandleXpRoleAdd(ctx context.Context, dg bot.Session, i *interaction.ModalSu
IsEphemeral().
Message(fmt.Sprintf("Le niveau doit être un nombre entier positif.\n-# Trouvé : %s", levelInput.Value)).
Response()
- err = dg.InteractionAPI().Respond(i.Interaction, resp).Do(ctx)
+ err = interaction.Respond(i.Interaction, resp).Do(ctx)
if err != nil {
bot.Logger(ctx).Error("sending bad number warning message", "error", err)
}
diff --git a/events.go b/events.go
index 1d53f11..a9a14a7 100644
--- a/events.go
+++ b/events.go
@@ -10,6 +10,7 @@ import (
"git.anhgelus.world/anhgelus/les-copaings-bot/exp"
"git.anhgelus.world/anhgelus/les-copaings-bot/user"
"github.com/nyttikord/gokord/bot"
+ "github.com/nyttikord/gokord/channel"
"github.com/nyttikord/gokord/event"
)
@@ -38,7 +39,7 @@ func OnMessage(ctx context.Context, dg bot.Session, m *event.MessageCreate) {
m.Member.GuildID = m.GuildID
xp := min(exp.MessageXP(uint(len(trimmed)), exp.CalcDiversity(trimmed)), MaxXpPerMessage)
cc.AddXP(ctx, dg, m.Member, xp, func(_ uint, _ uint) {
- if err := dg.ChannelAPI().MessageReactionAdd(m.ChannelID, m.Message.ID, "⬆").Do(ctx); err != nil {
+ if err := channel.AddReaction(m.ChannelID, m.Message.ID, "⬆").Do(ctx); err != nil {
bot.Logger(ctx).Error(
"add reaction for new level",
"error", err, "channel", m.ChannelID, "message", m.Message.ID,
@@ -102,7 +103,7 @@ func onDisconnect(ctx context.Context, dg bot.Session, e *event.VoiceStateUpdate
if len(cfg.FallbackChannel) == 0 {
return
}
- _, err := dg.ChannelAPI().MessageSend(cfg.FallbackChannel, fmt.Sprintf(
+ _, err := channel.SendMessage(cfg.FallbackChannel, fmt.Sprintf(
"%s est maintenant niveau %d", e.Member.Mention(), newLevel,
)).Do(ctx)
if err != nil {
diff --git a/main.go b/main.go
index c3410c9..1a66b5a 100644
--- a/main.go
+++ b/main.go
@@ -250,16 +250,16 @@ func setupTimers(ctx context.Context, dg *gokord.Session) {
var statuses = []func(context.Context, bot.Session) error{
func(ctx context.Context, dg bot.Session) error {
- return dg.BotAPI().UpdateGameStatus(ctx, 0, "être dev par @anhgelus")
+ return dg.GatewayAPI().UpdateGameStatus(ctx, false, "être dev par @anhgelus")
},
func(ctx context.Context, dg bot.Session) error {
- return dg.BotAPI().UpdateWatchStatus(ctx, 0, "Les Copaings")
+ return dg.GatewayAPI().UpdateWatchStatus(ctx, false, "Les Copaings")
},
func(ctx context.Context, dg bot.Session) error {
- return dg.BotAPI().UpdateListeningStatus(ctx, "http 418, I'm a tea pot")
+ return dg.GatewayAPI().UpdateListeningStatus(ctx, "http 418, I'm a tea pot")
},
func(ctx context.Context, dg bot.Session) error {
- return dg.BotAPI().UpdateGameStatus(ctx, 0, "Les Copaings Bot v"+Version)
+ return dg.GatewayAPI().UpdateGameStatus(ctx, false, "Les Copaings Bot v"+Version)
},
}
diff --git a/rolereact/events.go b/rolereact/events.go
index 190c0d8..537b6dd 100644
--- a/rolereact/events.go
+++ b/rolereact/events.go
@@ -7,6 +7,7 @@ import (
"git.anhgelus.world/anhgelus/les-copaings-bot/config"
"github.com/nyttikord/gokord/bot"
"github.com/nyttikord/gokord/event"
+ "github.com/nyttikord/gokord/guild"
)
type RoleReact struct {
@@ -20,7 +21,7 @@ func HandleReactionAdd(ctx context.Context, dg bot.Session, e *event.MessageReac
Where("role_react_messages.message_id = ? AND role_reacts.reaction = ?", e.MessageID, e.MessageReaction.Emoji.APIName()).
Scan(&results)
for _, role := range results {
- err := dg.GuildAPI().MemberRoleAdd(e.GuildID, e.UserID, role.RoleID).Do(ctx)
+ err := guild.AddMemberRole(e.GuildID, e.UserID, role.RoleID).Do(ctx)
if err != nil {
bot.Logger(ctx).Error("Unable to add role after member added reaction", "error", err)
}
@@ -34,7 +35,7 @@ func HandleReactionRemove(ctx context.Context, dg bot.Session, e *event.MessageR
Where("role_react_messages.message_id = ? AND role_reacts.reaction = ?", e.MessageID, e.MessageReaction.Emoji.APIName()).
Scan(&results)
for _, role := range results {
- err := dg.GuildAPI().MemberRoleRemove(e.GuildID, e.UserID, role.RoleID).Do(ctx)
+ err := guild.RemoveMemberRole(e.GuildID, e.UserID, role.RoleID).Do(ctx)
if err != nil {
bot.Logger(ctx).Error("Unable to remove role after member removed reaction", "error", err)
}
diff --git a/rolereact/manager.go b/rolereact/manager.go
index 1deee14..84081e5 100644
--- a/rolereact/manager.go
+++ b/rolereact/manager.go
@@ -34,7 +34,7 @@ func MessageContent(message *config.RoleReactMessage) string {
func ApplyMessageChange(ctx context.Context, dg bot.Session, i *interaction.Interaction, message *config.RoleReactMessage) string {
messageContent := MessageContent(message)
- _, err := dg.ChannelAPI().MessageEditComplex(&channel.MessageEdit{
+ _, err := channel.EditMessageComplex(&channel.MessageEdit{
Content: &messageContent,
AllowedMentions: &channel.MessageAllowedMentions{},
Channel: message.ChannelID,
@@ -46,7 +46,7 @@ func ApplyMessageChange(ctx context.Context, dg bot.Session, i *interaction.Inte
}
for _, role := range message.Roles {
if role.Reaction != "" && role.RoleID != "" && err == nil {
- err = dg.ChannelAPI().MessageReactionAdd(message.ChannelID, message.MessageID, role.Reaction).Do(ctx)
+ err = channel.AddReaction(message.ChannelID, message.MessageID, role.Reaction).Do(ctx)
}
}
if err != nil {
diff --git a/rolereact/rolereact.go b/rolereact/rolereact.go
index aef5fd3..dce4e81 100644
--- a/rolereact/rolereact.go
+++ b/rolereact/rolereact.go
@@ -42,7 +42,7 @@ var (
)
func HandleCommand(ctx context.Context, dg bot.Session, i *interaction.ApplicationCommand) {
- err := dg.InteractionAPI().Respond(i.Interaction, &interaction.Response{
+ err := interaction.Respond(i.Interaction, &interaction.Response{
Type: types.InteractionResponseDeferredChannelMessageWithSource,
Data: &interaction.ResponseData{
Flags: channel.MessageFlagsEphemeral,
@@ -66,13 +66,13 @@ func HandleCommand(ctx context.Context, dg bot.Session, i *interaction.Applicati
GuildID: i.GuildID,
}
messageContent := MessageContent(&message)
- m, err := dg.ChannelAPI().MessageSendComplex(channelID, &channel.MessageSend{
+ m, err := channel.SendMessageComplex(channelID, &channel.MessageSend{
Content: messageContent,
AllowedMentions: &channel.MessageAllowedMentions{},
}).Do(ctx)
if err != nil {
bot.Logger(ctx).Error("sending message", "error", err)
- _, err := dg.InteractionAPI().FollowupMessageCreate(i.Interaction, false, &channel.WebhookParams{
+ _, err := interaction.CreateFollowupMessage(i.Interaction, false, &channel.WebhookParams{
Flags: channel.MessageFlagsIsComponentsV2,
Components: []component.Message{&component.TextDisplay{Content: "Impossible d'envoyer le message"}},
}).Do(ctx)
@@ -87,7 +87,7 @@ func HandleCommand(ctx context.Context, dg bot.Session, i *interaction.Applicati
err = cfg.Save(ctx)
if err != nil {
bot.Logger(ctx).Error("unable to save rolereact message in database", "error", err)
- _, err := dg.InteractionAPI().FollowupMessageCreate(i.Interaction, false, &channel.WebhookParams{
+ _, err := interaction.CreateFollowupMessage(i.Interaction, false, &channel.WebhookParams{
Flags: channel.MessageFlagsIsComponentsV2,
Components: []component.Message{
&component.TextDisplay{Content: "Impossible d'enregistrer le message dans la base de données. Merci de contacter l'administrateur du bot."},
@@ -107,7 +107,7 @@ func HandleCommand(ctx context.Context, dg bot.Session, i *interaction.Applicati
// Using this function here is deprecated as per discord documentation.
// That said, using the recommended EditResponse endpoint does not allow the use of
// version 2 components...
- _, err = dg.InteractionAPI().FollowupMessageCreate(i.Interaction, false, &channel.WebhookParams{
+ _, err = interaction.CreateFollowupMessage(i.Interaction, false, &channel.WebhookParams{
Flags: channel.MessageFlagsIsComponentsV2,
Components: components,
}).Do(ctx)
@@ -135,7 +135,7 @@ func HandleModifyCommand(ctx context.Context, dg bot.Session, i *interaction.App
}
}
if target == nil {
- err := dg.InteractionAPI().Respond(i.Interaction, &interaction.Response{
+ err := interaction.Respond(i.Interaction, &interaction.Response{
Type: types.InteractionResponseChannelMessageWithSource,
Data: &interaction.ResponseData{
Flags: channel.MessageFlagsEphemeral,
@@ -151,7 +151,7 @@ func HandleModifyCommand(ctx context.Context, dg bot.Session, i *interaction.App
targetEditID = messageCounter
messageCounter++
}
- err := dg.InteractionAPI().Respond(i.Interaction, &interaction.Response{
+ err := interaction.Respond(i.Interaction, &interaction.Response{
Type: types.InteractionResponseChannelMessageWithSource,
Data: MessageModifyData(ctx, i.Interaction, &EditID{MessageEditID: targetEditID}),
}).Do(ctx)
@@ -161,7 +161,7 @@ func HandleModifyCommand(ctx context.Context, dg bot.Session, i *interaction.App
}
func HandleModifyComponent(ctx context.Context, dg bot.Session, i *interaction.MessageComponent, params *EditID) {
- err := dg.InteractionAPI().Respond(i.Interaction, &interaction.Response{
+ err := interaction.Respond(i.Interaction, &interaction.Response{
Type: types.InteractionResponseUpdateMessage,
Data: MessageModifyData(ctx, i.Interaction, params),
}).Do(ctx)
@@ -189,7 +189,7 @@ func HandleResetMessage(ctx context.Context, dg bot.Session, i *interaction.Mess
}
responseData = *MessageModifyData(ctx, i.Interaction, params)
}
- err := dg.InteractionAPI().Respond(i.Interaction, &interaction.Response{
+ err := interaction.Respond(i.Interaction, &interaction.Response{
Type: types.InteractionResponseUpdateMessage,
Data: &responseData,
}).Do(ctx)
@@ -201,7 +201,7 @@ func HandleResetMessage(ctx context.Context, dg bot.Session, i *interaction.Mess
func HandleStartSetNote(ctx context.Context, dg bot.Session, i *interaction.MessageComponent, params *EditID) {
message, ok := GetMessageFromEditID(ctx, i.Interaction, params.MessageEditID)
if !ok {
- err := dg.InteractionAPI().Respond(i.Interaction, &interaction.Response{
+ err := interaction.Respond(i.Interaction, &interaction.Response{
Type: types.InteractionResponseUpdateMessage,
Data: &interaction.ResponseData{
Flags: channel.MessageFlagsEphemeral | channel.MessageFlagsIsComponentsV2,
@@ -229,7 +229,7 @@ func HandleStartSetNote(ctx context.Context, dg bot.Session, i *interaction.Mess
},
}).
Response()
- err := dg.InteractionAPI().Respond(i.Interaction, resp).Do(ctx)
+ err := interaction.Respond(i.Interaction, resp).Do(ctx)
if err != nil {
bot.Logger(ctx).Error("unable to send edit note modal", "error", err)
}
@@ -238,7 +238,7 @@ func HandleStartSetNote(ctx context.Context, dg bot.Session, i *interaction.Mess
func HandleSetNote(ctx context.Context, dg bot.Session, i *interaction.ModalSubmit, params *EditID) {
message, ok := GetMessageFromEditID(ctx, i.Interaction, params.MessageEditID)
if !ok {
- err := dg.InteractionAPI().Respond(i.Interaction, &interaction.Response{
+ err := interaction.Respond(i.Interaction, &interaction.Response{
Type: types.InteractionResponseUpdateMessage,
Data: &interaction.ResponseData{
Flags: channel.MessageFlagsEphemeral | channel.MessageFlagsIsComponentsV2,
@@ -253,7 +253,7 @@ func HandleSetNote(ctx context.Context, dg bot.Session, i *interaction.ModalSubm
return
}
message.Note = i.Data.Components[0].(*component.Label).Component.(*component.TextInput).Value
- err := dg.InteractionAPI().Respond(i.Interaction, &interaction.Response{
+ err := interaction.Respond(i.Interaction, &interaction.Response{
Type: types.InteractionResponseUpdateMessage,
Data: MessageModifyData(ctx, i.Interaction, params),
}).Do(ctx)
@@ -272,7 +272,7 @@ func HandleApplyMessage(ctx context.Context, dg bot.Session, i *interaction.Mess
&component.TextDisplay{Content: "Impossible de trouver la modification de message. Veuillez réessayer."},
},
}
- err := dg.InteractionAPI().Respond(i.Interaction, &interaction.Response{
+ err := interaction.Respond(i.Interaction, &interaction.Response{
Type: types.InteractionResponseUpdateMessage,
Data: &responseData,
}).Do(ctx)
@@ -281,7 +281,7 @@ func HandleApplyMessage(ctx context.Context, dg bot.Session, i *interaction.Mess
}
return
}
- err := dg.InteractionAPI().Respond(i.Interaction, &interaction.Response{
+ err := interaction.Respond(i.Interaction, &interaction.Response{
Type: types.InteractionResponseDeferredChannelMessageWithSource,
Data: &interaction.ResponseData{Flags: channel.MessageFlagsEphemeral},
}).Do(ctx)
@@ -290,7 +290,7 @@ func HandleApplyMessage(ctx context.Context, dg bot.Session, i *interaction.Mess
return
}
m := ApplyMessageChange(ctx, dg, i.Interaction, message)
- _, err = dg.InteractionAPI().ResponseEdit(i.Interaction, &channel.WebhookEdit{
+ _, err = interaction.EditResponse(i.Interaction, &channel.WebhookEdit{
Content: &m,
}).Do(ctx)
if err != nil {
@@ -313,7 +313,7 @@ func HandleNewRole(ctx context.Context, dg bot.Session, i *interaction.MessageCo
responseData = MessageModifyRoleData(ctx, i.Interaction, &EditIDWithRole{MessageEditID: params.MessageEditID, RoleCounterID: roleCounter}, "")
roleCounter++
}
- err := dg.InteractionAPI().Respond(i.Interaction, &interaction.Response{
+ err := interaction.Respond(i.Interaction, &interaction.Response{
Type: types.InteractionResponseUpdateMessage,
Data: &responseData,
}).Do(ctx)
@@ -335,7 +335,7 @@ func HandleOpenRole(ctx context.Context, dg bot.Session, i *interaction.MessageC
} else {
responseData = MessageModifyRoleData(ctx, i.Interaction, params, "")
}
- err := dg.InteractionAPI().Respond(i.Interaction, &interaction.Response{
+ err := interaction.Respond(i.Interaction, &interaction.Response{
Type: types.InteractionResponseUpdateMessage,
Data: &responseData,
}).Do(ctx)
@@ -365,7 +365,7 @@ func HandleSetRole(ctx context.Context, dg bot.Session, i *interaction.MessageCo
role.RoleID = i.Data.Values[0]
responseData = MessageModifyRoleData(ctx, i.Interaction, params, "")
}
- err := dg.InteractionAPI().Respond(i.Interaction, &interaction.Response{
+ err := interaction.Respond(i.Interaction, &interaction.Response{
Type: types.InteractionResponseUpdateMessage,
Data: &responseData,
}).Do(ctx)
@@ -384,7 +384,7 @@ func HandleSetReaction(ctx context.Context, dg bot.Session, i *interaction.Messa
}
}
if !ok || role == nil {
- err := dg.InteractionAPI().Respond(i.Interaction, &interaction.Response{
+ err := interaction.Respond(i.Interaction, &interaction.Response{
Type: types.InteractionResponseUpdateMessage,
Data: &interaction.ResponseData{
Flags: channel.MessageFlagsEphemeral | channel.MessageFlagsIsComponentsV2,
@@ -400,14 +400,14 @@ func HandleSetReaction(ctx context.Context, dg bot.Session, i *interaction.Messa
}
responseData := MessageModifyRoleData(ctx, i.Interaction, params, "Ajoute la réaction que tu veux choisir au message de rôle de réaction (tu peux y accéder avec le bouton ci-dessous)")
//TODO: handle errors here
- dg.InteractionAPI().Respond(i.Interaction, &interaction.Response{
+ interaction.Respond(i.Interaction, &interaction.Response{
Type: types.InteractionResponseUpdateMessage,
Data: &responseData,
}).Do(ctx)
emojiName, ok := WaitForEmoji(ctx, dg, i.Member.User.ID, message.MessageID)
if !ok {
editResponseComponents := MessageModifyRoleComponents(ctx, i.Interaction, params, "Le temps d'attente a été dépassé")
- _, err := dg.InteractionAPI().ResponseEdit(i.Interaction, &channel.WebhookEdit{
+ _, err := interaction.EditResponse(i.Interaction, &channel.WebhookEdit{
Components: &editResponseComponents,
}).Do(ctx)
if err != nil {
@@ -416,10 +416,10 @@ func HandleSetReaction(ctx context.Context, dg bot.Session, i *interaction.Messa
return
}
- err := dg.ChannelAPI().MessageReactionAdd(message.ChannelID, message.MessageID, emojiName).Do(ctx)
+ err := channel.AddReaction(message.ChannelID, message.MessageID, emojiName).Do(ctx)
if err != nil {
editResponseComponents := MessageModifyRoleComponents(ctx, i.Interaction, params, "La réaction n'est pas utilisable. Cela peut être résolu en l'ajoutant à ce serveur")
- _, err := dg.InteractionAPI().ResponseEdit(i.Interaction, &channel.WebhookEdit{
+ _, err := interaction.EditResponse(i.Interaction, &channel.WebhookEdit{
Components: &editResponseComponents,
}).Do(ctx)
if err != nil {
@@ -427,13 +427,13 @@ func HandleSetReaction(ctx context.Context, dg bot.Session, i *interaction.Messa
}
return
}
- err = dg.ChannelAPI().MessageReactionRemove(message.ChannelID, message.MessageID, emojiName, i.Member.User.ID).Do(ctx)
+ err = channel.DeleteReaction(message.ChannelID, message.MessageID, emojiName, i.Member.User.ID).Do(ctx)
if err != nil {
bot.Logger(ctx).Warn("unable to remove author reaction from message", "error", err)
}
role.Reaction = emojiName
components := MessageModifyRoleComponents(ctx, i.Interaction, params, "")
- _, err = dg.InteractionAPI().ResponseEdit(i.Interaction, &channel.WebhookEdit{
+ _, err = interaction.EditResponse(i.Interaction, &channel.WebhookEdit{
Flags: channel.MessageFlagsIsComponentsV2 | channel.MessageFlagsEphemeral,
Components: &components,
}).Do(ctx)
@@ -449,7 +449,7 @@ func HandleDelRole(ctx context.Context, dg bot.Session, i *interaction.MessageCo
roleIndex = slices.IndexFunc(message.Roles, func(role *config.RoleReact) bool { return role.CounterID == params.RoleCounterID })
}
if !ok || roleIndex == -1 {
- err := dg.InteractionAPI().Respond(i.Interaction, &interaction.Response{
+ err := interaction.Respond(i.Interaction, &interaction.Response{
Type: types.InteractionResponseUpdateMessage,
Data: &interaction.ResponseData{
Flags: channel.MessageFlagsEphemeral | channel.MessageFlagsIsComponentsV2,
@@ -466,7 +466,7 @@ func HandleDelRole(ctx context.Context, dg bot.Session, i *interaction.MessageCo
message.Roles = append(message.Roles[:roleIndex],
message.Roles[roleIndex+1:]...,
)
- err := dg.InteractionAPI().Respond(i.Interaction,
+ err := interaction.Respond(i.Interaction,
&interaction.Response{
Type: types.InteractionResponseUpdateMessage,
Data: MessageModifyData(ctx, i.Interaction, &EditID{MessageEditID: params.MessageEditID}),
diff --git a/user/level.go b/user/level.go
index 2a5d494..609130f 100644
--- a/user/level.go
+++ b/user/level.go
@@ -10,6 +10,7 @@ import (
"git.anhgelus.world/anhgelus/les-copaings-bot/config"
"git.anhgelus.world/anhgelus/les-copaings-bot/exp"
"github.com/nyttikord/gokord/bot"
+ "github.com/nyttikord/gokord/guild"
"github.com/nyttikord/gokord/user"
)
@@ -19,7 +20,7 @@ func onNewLevel(ctx context.Context, dg bot.Session, m *user.Member, level uint)
for _, role := range cfg.XpRoles {
if role.XP <= xpForLevel && !slices.Contains(m.Roles, role.RoleID) {
bot.Logger(ctx).Debug("add role", "role", role.RoleID, "user", m.DisplayName(), "guild", m.GuildID)
- err := dg.GuildAPI().MemberRoleAdd(m.GuildID, m.User.ID, role.RoleID).Do(ctx)
+ err := guild.AddMemberRole(m.GuildID, m.User.ID, role.RoleID).Do(ctx)
if err != nil {
bot.Logger(ctx).Error(
"adding role",
@@ -28,7 +29,7 @@ func onNewLevel(ctx context.Context, dg bot.Session, m *user.Member, level uint)
}
} else if role.XP > xpForLevel && slices.Contains(m.Roles, role.RoleID) {
bot.Logger(ctx).Debug("remove role", "role", role.RoleID, "user", m.DisplayName(), "guild", m.GuildID)
- err := dg.GuildAPI().MemberRoleRemove(m.GuildID, m.User.ID, role.RoleID).Do(ctx)
+ err := guild.RemoveMemberRole(m.GuildID, m.User.ID, role.RoleID).Do(ctx)
if err != nil {
bot.Logger(ctx).Error(
"removing role",
@@ -40,7 +41,7 @@ func onNewLevel(ctx context.Context, dg bot.Session, m *user.Member, level uint)
}
func (c *CopaingCached) onNewLevel(ctx context.Context, dg bot.Session, level uint) {
- m, err := dg.GuildAPI().Member(c.GuildID, c.DiscordID).Do(ctx)
+ m, err := guild.GetMember(c.GuildID, c.DiscordID).Do(ctx)
if err != nil {
bot.Logger(ctx).Error("getting member for new level", "error", err, "user", c.DiscordID, "guild", c.GuildID)
return