From 3dbc32ee7ba5c22003b6084bf511b0040c76b842 Mon Sep 17 00:00:00 2001 From: Siwoo Jeon Date: Sat, 5 Jul 2025 14:52:56 +0900 Subject: [PATCH] feat: add unblock command --- commands/block.go | 2 +- commands/unblock.go | 67 +++++++++++++++++++++++++++++++++++++++++++++ configs/version.go | 2 +- 3 files changed, 69 insertions(+), 2 deletions(-) create mode 100644 commands/unblock.go diff --git a/commands/block.go b/commands/block.go index 97f9aba..060a56b 100644 --- a/commands/block.go +++ b/commands/block.go @@ -15,7 +15,7 @@ import ( var BlockCommand *Command = &Command{ ApplicationCommand: &discordgo.ApplicationCommand{ Name: "차단", - Description: "유저를 차단합니다.", + Description: "유저를 차단해요.", }, DetailedDescription: &DetailedDescription{ Usage: fmt.Sprintf("%s차단 (유저의 ID) [사유]", configs.Config.Bot.Prefix), diff --git a/commands/unblock.go b/commands/unblock.go new file mode 100644 index 0000000..dd6f019 --- /dev/null +++ b/commands/unblock.go @@ -0,0 +1,67 @@ +package commands + +import ( + "context" + "fmt" + + "git.wh64.net/muffin/goMuffin/configs" + "git.wh64.net/muffin/goMuffin/databases" + "git.wh64.net/muffin/goMuffin/utils" + "github.com/bwmarrin/discordgo" + "go.mongodb.org/mongo-driver/v2/bson" +) + +var UnblockCommand *Command = &Command{ + ApplicationCommand: &discordgo.ApplicationCommand{ + Name: "차단해제", + Description: "유저의 차단을 해제해요.", + }, + DetailedDescription: &DetailedDescription{ + Usage: fmt.Sprintf("%s차단해제 (유저의 ID)", configs.Config.Bot.Prefix), + }, + Category: DeveloperOnly, + RegisterApplicationCommand: false, + RegisterMessageCommand: true, + Flags: CommandFlagsIsDeveloper, + MessageRun: func(ctx *MsgContext) error { + if len(*ctx.Args) < 1 { + utils.NewMessageSender(ctx.Msg). + AddComponents(utils.GetErrorContainer(discordgo.TextDisplay{Content: "유저 ID는 필수에요."})). + SetComponentsV2(true). + SetReply(true). + Send() + return nil + } + + userId := (*ctx.Args)[0] + user, err := ctx.Msg.Session.User(userId) + if err != nil { + return err + } + + _, err = databases.Database.Users.UpdateOne(context.TODO(), + bson.D{{Key: "user_id", Value: userId}}, + bson.D{{ + Key: "$set", + Value: bson.D{ + { + Key: "blocked", + Value: false, + }, + { + Key: "blocked_reason", + Value: "", + }, + }, + }}) + if err != nil { + return err + } + + return utils.NewMessageSender(ctx.Msg). + AddComponents(utils.GetSuccessContainer(discordgo.TextDisplay{Content: fmt.Sprintf("%s의 차단을 성공적으로 해제했어요.", user.GlobalName)})). + SetComponentsV2(true). + SetReply(true). + Send() + }, +} diff --git a/configs/version.go b/configs/version.go index a0ce36e..78a06f1 100644 --- a/configs/version.go +++ b/configs/version.go @@ -7,7 +7,7 @@ import ( "git.wh64.net/muffin/goMuffin/utils" ) -const MUFFIN_VERSION = "6.0.0-madeleine_develop.250703a" +const MUFFIN_VERSION = "6.0.0-madeleine_develop.250704a" var updatedString string = utils.RegexpDecimals.FindAllStringSubmatch(MUFFIN_VERSION, -1)[3][0]