From a6b42b79dfb276d9b0d1ea4b9372747a6e01a042 Mon Sep 17 00:00:00 2001 From: Siwoo Jeon Date: Fri, 4 Apr 2025 22:05:32 +0900 Subject: [PATCH] feat: Add arguments in learn command --- commands/learn.go | 6 +++++- configs/version.go | 2 +- handler/messageCreate.go | 29 ++++++++++++++++++++--------- 3 files changed, 26 insertions(+), 11 deletions(-) diff --git a/commands/learn.go b/commands/learn.go index a610911..f8ea705 100644 --- a/commands/learn.go +++ b/commands/learn.go @@ -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{ diff --git a/configs/version.go b/configs/version.go index 0032d8a..23e7391 100644 --- a/configs/version.go +++ b/configs/version.go @@ -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] diff --git a/handler/messageCreate.go b/handler/messageCreate.go index 5e04e52..e31d7ea 100644 --- a/handler/messageCreate.go +++ b/handler/messageCreate.go @@ -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