aboutsummaryrefslogtreecommitdiff
path: root/dynamicid
diff options
context:
space:
mode:
authorAnhgelus Morhtuuzh <william@herges.fr>2026-01-22 19:23:41 +0100
committerAnhgelus Morhtuuzh <william@herges.fr>2026-01-22 19:23:41 +0100
commiteee2a3873e11bef6bee2f71cf429c8a870c5383c (patch)
tree9baad7c84ce2a12cefed768ee17aacff507810e3 /dynamicid
parentf4368074a7cc07ad305ae9fb9b08d6b8dd3025eb (diff)
refactor(events): use new handlers
Diffstat (limited to 'dynamicid')
-rw-r--r--dynamicid/handling.go67
1 files changed, 29 insertions, 38 deletions
diff --git a/dynamicid/handling.go b/dynamicid/handling.go
index e43d658..08d1620 100644
--- a/dynamicid/handling.go
+++ b/dynamicid/handling.go
@@ -4,69 +4,60 @@ import (
"context"
"strings"
- "github.com/anhgelus/gokord"
- "github.com/anhgelus/gokord/cmd"
"github.com/nyttikord/gokord/bot"
"github.com/nyttikord/gokord/discord/types"
"github.com/nyttikord/gokord/event"
"github.com/nyttikord/gokord/interaction"
)
-func HandleDynamicMessageComponent[DynamicData any](
- b *gokord.Bot,
- handler func(
- bot.Session,
- *event.InteractionCreate,
- *interaction.MessageComponentData,
- *DynamicData, *cmd.ResponseBuilder,
- ),
+func HandleDynamicMessageComponent[T any](
+ events bot.EventManager,
+ handler func(context.Context, bot.Session, *interaction.MessageComponent, T),
base string,
) {
- b.AddHandler(func(_ context.Context, s bot.Session, i *event.InteractionCreate) {
+ events.AddHandler(func(ctx context.Context, dg bot.Session, i *event.InteractionCreate) {
if i.Type != types.InteractionMessageComponent {
return
}
- data := i.MessageComponentData()
- if !strings.HasPrefix(data.CustomID, base+";") {
+ msg := i.MessageComponent()
+ cid := msg.Data.CustomID
+ if !strings.HasPrefix(cid, base+";") {
return
}
- dynamicID := data.CustomID[len(base)+1:]
- dynamicData := new(DynamicData)
- err := UnmarshallCSV(dynamicID, dynamicData)
+ dynamicID := cid[len(base)+1:]
+ var dynamic T
+ err := UnmarshallCSV(dynamicID, dynamic)
if err != nil {
- s.Logger().Error("Unable to parse CustomID", "error", err, "CustomID", data.CustomID, "base", base)
+ bot.Logger(ctx).Error("Unable to parse CustomID", "error", err, "CustomID", cid, "base", base)
return
}
- handler(s, i, data, dynamicData, cmd.NewResponseBuilder(s, i))
+ handler(ctx, dg, msg, dynamic)
})
}
-func HandleDynamicModalComponent[DynamicData any](
- b *gokord.Bot,
- handler func(
- bot.Session,
- *event.InteractionCreate,
- *interaction.ModalSubmitData,
- *DynamicData,
- *cmd.ResponseBuilder,
- ),
+func HandleDynamicModalComponent[T any](
+ events bot.EventManager,
+ handler func(context.Context, bot.Session, *interaction.ModalSubmit, T),
base string,
+
) {
- b.AddHandler(func(_ context.Context, s bot.Session, i *event.InteractionCreate) {
+ events.AddHandler(func(ctx context.Context, dg bot.Session, i *event.InteractionCreate) {
if i.Type != types.InteractionModalSubmit {
return
}
- data := i.ModalSubmitData()
- if strings.HasPrefix(data.CustomID, base+";") {
- dynamicID := data.CustomID[len(base)+1:]
- dynamicData := new(DynamicData)
- err := UnmarshallCSV(dynamicID, dynamicData)
- if err != nil {
- s.Logger().Error("Unable to parse CustomID", "error", err, "CustomID", data.CustomID, "base", base)
- return
- }
- handler(s, i, data, dynamicData, cmd.NewResponseBuilder(s, i))
+ modal := i.ModalSubmit()
+ cid := modal.Data.CustomID
+ if !strings.HasPrefix(cid, base+";") {
+ return
+ }
+ dynamicID := cid[len(base)+1:]
+ var dynamic T
+ err := UnmarshallCSV(dynamicID, dynamic)
+ if err != nil {
+ bot.Logger(ctx).Error("Unable to parse CustomID", "error", err, "CustomID", cid, "base", base)
+ return
}
+ handler(ctx, dg, modal, dynamic)
})
}