package commands import ( "fmt" "homestead/homestead_to_go/relay/storage" "log" "github.com/disgoorg/disgo/discord" "github.com/disgoorg/disgo/handler" ) var ChannelStore *storage.ChannelStorage func InitStorage() error { var err error ChannelStore, err = storage.NewChannelStorage("registered_channels.json") return err } func SyncHandler(e *handler.CommandEvent) error { data := e.SlashCommandInteractionData() subcommand := data.SubCommandName if subcommand == nil { return e.CreateMessage(discord.MessageCreate{ Content: "Invalid subcommand!", Flags: discord.MessageFlagEphemeral, }) } channelID, ok := data.OptSnowflake("channel") if !ok { return e.CreateMessage(discord.MessageCreate{ Content: "Channel not provided!", Flags: discord.MessageFlagEphemeral, }) } switch *subcommand { case "register": if err := ChannelStore.AddChannel(channelID); err != nil { log.Printf("Error registering channel: %v", err) return e.CreateMessage(discord.MessageCreate{ Content: "❌ Failed to register channel!", Flags: discord.MessageFlagEphemeral, }) } return e.CreateMessage(discord.MessageCreate{ Content: fmt.Sprintf("✅ Registered <#%s> for message logging!", channelID), Flags: discord.MessageFlagEphemeral, }) case "remove": if err := ChannelStore.RemoveChannel(channelID); err != nil { log.Printf("Error removing channel: %v", err) return e.CreateMessage(discord.MessageCreate{ Content: "❌ Failed to remove channel!", Flags: discord.MessageFlagEphemeral, }) } return e.CreateMessage(discord.MessageCreate{ Content: fmt.Sprintf("✅ Removed <#%s> from message logging!", channelID), Flags: discord.MessageFlagEphemeral, }) default: return e.CreateMessage(discord.MessageCreate{ Content: "Unknown subcommand!", Flags: discord.MessageFlagEphemeral, }) } }