Files
HomesteadToGo/relay/commands/sync.go
2025-12-08 13:31:47 +01:00

75 lines
1.8 KiB
Go

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,
})
}
}