1
0
Fork 0
mirror of https://github.com/diamondburned/arikawa.git synced 2025-06-13 05:11:21 +00:00

Bot: Reply with reference to message

This commit is contained in:
diamondburned 2021-02-14 12:39:39 -08:00
parent abeaef8122
commit 74019dc909

View file

@ -7,6 +7,7 @@ import (
"github.com/diamondburned/arikawa/v2/api" "github.com/diamondburned/arikawa/v2/api"
"github.com/diamondburned/arikawa/v2/discord" "github.com/diamondburned/arikawa/v2/discord"
"github.com/diamondburned/arikawa/v2/gateway" "github.com/diamondburned/arikawa/v2/gateway"
"github.com/diamondburned/arikawa/v2/utils/json/option"
"github.com/pkg/errors" "github.com/pkg/errors"
) )
@ -303,23 +304,39 @@ func (ctx *Context) callMessageCreate(mc *gateway.MessageCreateEvent, value refl
Call: Call:
// call the function and parse the error return value // call the function and parse the error return value
v, err := cmd.call(value, argv...) v, err := cmd.call(value, argv...)
if err != nil { if err != nil || v == nil {
return err return err
} }
var data api.SendMessageData
switch v := v.(type) { switch v := v.(type) {
case string: case string:
v = sub.SanitizeMessage(v) data.Content = v
_, err = ctx.SendMessage(mc.ChannelID, v, nil)
case *discord.Embed: case *discord.Embed:
_, err = ctx.SendMessage(mc.ChannelID, "", v) data.Embed = v
case *api.SendMessageData: case *api.SendMessageData:
if v.Content != "" { data = *v
v.Content = sub.SanitizeMessage(v.Content) default:
} return nil
_, err = ctx.SendMessageComplex(mc.ChannelID, *v)
} }
if data.Content != "" {
data.Content = sub.SanitizeMessage(data.Content)
}
if data.Reference == nil {
data.Reference = &discord.MessageReference{MessageID: mc.ID}
if data.AllowedMentions == nil {
// Do not mention on reply by default.
data.AllowedMentions = &api.AllowedMentions{
RepliedUser: option.False,
}
}
}
_, err = ctx.SendMessageComplex(mc.ChannelID, data)
return err return err
} }