feat: Add arguments in learn command

This commit is contained in:
Siwoo Jeon 2025-04-04 22:05:32 +09:00
parent 73d905735b
commit a6b42b79df
Signed by: migan
GPG key ID: 036E9A8C5E8E48DA
3 changed files with 26 additions and 11 deletions

View file

@ -17,9 +17,13 @@ var arguments = utils.InlineCode("{user.name}") + "\n" +
utils.InlineCode("{user.mention}") + "\n" +
utils.InlineCode("{user.globalName}") + "\n" +
utils.InlineCode("{user.id}") + "\n" +
utils.InlineCode("{user.createdAt}") + "\n" +
utils.InlineCode("{user.joinedAt}") + "\n" +
utils.InlineCode("{muffin.version}") + "\n" +
utils.InlineCode("{muffin.updatedAt}") + "\n" +
utils.InlineCode("{muffin.statedAt}")
utils.InlineCode("{muffin.statedAt}") + "\n" +
utils.InlineCode("{muffin.name}") + "\n" +
utils.InlineCode("{muffin.id}")
var LearnCommand *Command = &Command{
ApplicationCommand: &discordgo.ApplicationCommand{

View file

@ -7,7 +7,7 @@ import (
"git.wh64.net/muffin/goMuffin/utils"
)
const MUFFIN_VERSION = "0.0.0-gopher_dev.250403b"
const MUFFIN_VERSION = "5.0.0-gopher_dev.250404a"
var updatedString string = utils.Decimals.FindAllStringSubmatch(MUFFIN_VERSION, -1)[3][0]

View file

@ -28,6 +28,25 @@ func argParser(content string) (args []string) {
return
}
func resultParser(content string, s *discordgo.Session, m *discordgo.MessageCreate) string {
result := content
userCreatedAt, _ := discordgo.SnowflakeTimestamp(m.Author.ID)
result = strings.ReplaceAll(result, "{user.name}", m.Author.Username)
result = strings.ReplaceAll(result, "{user.mention}", m.Author.Mention())
result = strings.ReplaceAll(result, "{user.globalName}", m.Author.GlobalName)
result = strings.ReplaceAll(result, "{user.id}", m.Author.ID)
result = strings.ReplaceAll(result, "{user.createdAt}", utils.TimeWithStyle(&userCreatedAt, utils.RelativeTime))
result = strings.ReplaceAll(result, "{user.joinedAt}", utils.TimeWithStyle(&m.Member.JoinedAt, utils.RelativeTime))
result = strings.ReplaceAll(result, "{muffin.version}", configs.MUFFIN_VERSION)
result = strings.ReplaceAll(result, "{muffin.updatedAt}", utils.TimeWithStyle(configs.UpdatedAt, utils.RelativeTime))
result = strings.ReplaceAll(result, "{muffin.startedAt}", utils.TimeWithStyle(configs.StartedAt, utils.RelativeTime))
result = strings.ReplaceAll(result, "{muffin.name}", s.State.User.Username)
result = strings.ReplaceAll(result, "{muffin.id}", s.State.User.ID)
return result
}
// MessageCreate is handlers of messageCreate event
func MessageCreate(s *discordgo.Session, m *discordgo.MessageCreate) {
config := configs.Config
@ -110,15 +129,7 @@ func MessageCreate(s *discordgo.Session, m *discordgo.MessageCreate) {
if x > 2 && len(learnDatas) != 0 {
data := learnDatas[rand.Intn(len(learnDatas))]
user, _ := s.User(data.UserId)
result := data.Result
result = strings.ReplaceAll(result, "{user.name}", m.Author.Username)
result = strings.ReplaceAll(result, "{user.mention}", m.Author.Mention())
result = strings.ReplaceAll(result, "{user.globalName}", m.Author.GlobalName)
result = strings.ReplaceAll(result, "{user.id}", m.Author.ID)
result = strings.ReplaceAll(result, "{muffin.version}", configs.MUFFIN_VERSION)
result = strings.ReplaceAll(result, "{muffin.updatedAt}", utils.TimeWithStyle(configs.UpdatedAt, utils.RelativeTime))
result = strings.ReplaceAll(result, "{muffin.startedAt}", utils.TimeWithStyle(configs.StartedAt, utils.RelativeTime))
result := resultParser(data.Result, s, m)
s.ChannelMessageSendReply(m.ChannelID, fmt.Sprintf("%s\n%s", result, utils.InlineCode(fmt.Sprintf("%s님이 알려주셨어요.", user.Username))), m.Reference())
return