guildstate

package
v0.0.0-...-740c2d9 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 8, 2026 License: Unlicense Imports: 23 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func AddGuildCoordinator

func AddGuildCoordinator(guildID, userID, addedBy string) error

AddGuildCoordinator registers a user as a coordinator for the guild.

func DeleteGuildRecords

func DeleteGuildRecords(guildID string) error

DeleteGuildRecords deletes guild records for a guild ID.

func DeleteGuildState

func DeleteGuildState(guildID string) error

DeleteGuildState deletes persisted state for a guild.

func DeleteLeaderboardConfig

func DeleteLeaderboardConfig(lbType, guildID string) error

DeleteLeaderboardConfig removes a leaderboard config row.

func GetAllGuildIDs

func GetAllGuildIDs() ([]string, error)

GetAllGuildIDs returns all persisted guild IDs sorted ascending.

func GetGuildFlag

func GetGuildFlag(s *discordgo.Session, i *discordgo.InteractionCreate)

GetGuildFlag handles the admin slash command for getting a guild boolean flag.

func GetGuildSettingFlag

func GetGuildSettingFlag(guildID string, key string) bool

GetGuildSettingFlag gets a boolean guild setting.

func GetGuildSettingString

func GetGuildSettingString(guildID string, key string) string

GetGuildSettingString gets a string guild setting.

func GetGuildSettings

func GetGuildSettings(s *discordgo.Session, i *discordgo.InteractionCreate)

GetGuildSettings handles the admin slash command for retrieving all guild settings.

func GetGuildSettingsForGuild

func GetGuildSettingsForGuild(s *discordgo.Session, i *discordgo.InteractionCreate, guildID string)

GetGuildSettingsForGuild retrieves all persisted guild settings for a specific guild ID.

func HandleAdminSlashAdminSetServerBannerCommand

func HandleAdminSlashAdminSetServerBannerCommand(s *discordgo.Session, i *discordgo.InteractionCreate)

HandleAdminSlashAdminSetServerBannerCommand handles the /admin-set-server-banner command. The banner is stored with guildID in the user_id column and "DEFAULT" in the guild_id column.

func HandleCoordinators

func HandleCoordinators(s *discordgo.Session, i *discordgo.InteractionCreate)

HandleCoordinators dispatches the /admin-coordinators subcommands.

func HandleGuildFlagAutoComplete

func HandleGuildFlagAutoComplete(s *discordgo.Session, i *discordgo.InteractionCreate)

HandleGuildFlagAutoComplete handles autocomplete for the flag key option on set/get flag commands.

func HandleSetGuildSettingAutoComplete

func HandleSetGuildSettingAutoComplete(s *discordgo.Session, i *discordgo.InteractionCreate)

HandleSetGuildSettingAutoComplete handles autocomplete for the admin-set-guild-setting command.

func HandleSetServerBanner

func HandleSetServerBanner(s *discordgo.Session, i *discordgo.InteractionCreate)

HandleSetServerBanner handles the /set-server-banner command.

func IsGuildCoordinator

func IsGuildCoordinator(guildID, userID string) bool

IsGuildCoordinator returns true if the user is a registered coordinator for the guild or the global bot admin.

func RemoveGuildCoordinator

func RemoveGuildCoordinator(guildID, userID string) error

RemoveGuildCoordinator removes a user from the guild's coordinator list.

func SetGuildFlag

func SetGuildFlag(s *discordgo.Session, i *discordgo.InteractionCreate)

SetGuildFlag handles the admin slash command for setting a guild boolean flag.

func SetGuildSetting

func SetGuildSetting(s *discordgo.Session, i *discordgo.InteractionCreate)

SetGuildSetting handles the admin slash command for setting or clearing guild settings.

func SetGuildSettingFlag

func SetGuildSettingFlag(guildID string, key string, value bool)

SetGuildSettingFlag sets a boolean guild setting and persists it.

func SetGuildSettingForGuild

func SetGuildSettingForGuild(s *discordgo.Session, i *discordgo.InteractionCreate, guildID, setting, value string)

SetGuildSettingForGuild sets or clears a guild setting for a specific guild ID.

func SetGuildSettingString

func SetGuildSettingString(guildID string, key string, value string)

SetGuildSettingString sets a string guild setting and persists it.

func SlashAdminSetServerBannerCommand

func SlashAdminSetServerBannerCommand(cmd string) *discordgo.ApplicationCommand

SlashAdminSetServerBannerCommand creates an admin slash command to set a default guild banner.

func SlashCoordinatorsCommand

func SlashCoordinatorsCommand(cmd string) *discordgo.ApplicationCommand

SlashCoordinatorsCommand builds the /admin-coordinators slash command definition. DefaultMemberPermissions is set to 0 so only Discord server admins can use it.

func SlashGetGuildFlagCommand

func SlashGetGuildFlagCommand(cmd string) *discordgo.ApplicationCommand

SlashGetGuildFlagCommand creates an admin slash command to get a guild boolean flag.

func SlashGetGuildSettingsCommand

func SlashGetGuildSettingsCommand(cmd string) *discordgo.ApplicationCommand

SlashGetGuildSettingsCommand creates an admin slash command to get all settings for a guild.

func SlashSetGuildFlagCommand

func SlashSetGuildFlagCommand(cmd string) *discordgo.ApplicationCommand

SlashSetGuildFlagCommand creates an admin slash command to set a guild boolean flag.

func SlashSetGuildSettingCommand

func SlashSetGuildSettingCommand(cmd string) *discordgo.ApplicationCommand

SlashSetGuildSettingCommand creates an admin slash command to set/clear a guild string setting.

func SlashSetServerBannerCommand

func SlashSetServerBannerCommand(cmd string) *discordgo.ApplicationCommand

SlashSetServerBannerCommand creates an admin-only command to set a guild default banner.

func UpdateLeaderboardConfigMessageIDs

func UpdateLeaderboardConfigMessageIDs(messageIDsJSON, lbType, guildID string) error

UpdateLeaderboardConfigMessageIDs persists message IDs after a post run.

func UpsertGuildState

func UpsertGuildState(guild *GuildState) error

UpsertGuildState inserts or updates guild settings by GuildID.

func UpsertLeaderboardConfig

func UpsertLeaderboardConfig(lbType, guildID, channelID, messageIDsJSON string) error

UpsertLeaderboardConfig inserts or updates a guild leaderboard config row.

Types

type DBTX

type DBTX interface {
	ExecContext(context.Context, string, ...interface{}) (sql.Result, error)
	PrepareContext(context.Context, string) (*sql.Stmt, error)
	QueryContext(context.Context, string, ...interface{}) (*sql.Rows, error)
	QueryRowContext(context.Context, string, ...interface{}) *sql.Row
}

type DeleteGuildCoordinatorParams

type DeleteGuildCoordinatorParams struct {
	GuildID string
	UserID  string
}

type DeleteLeaderboardConfigParams

type DeleteLeaderboardConfigParams struct {
	LbType  string
	GuildID string
}

type GetGuildCoordinatorParams

type GetGuildCoordinatorParams struct {
	GuildID string
	UserID  string
}

type GetLeaderboardConfigParams

type GetLeaderboardConfigParams struct {
	LbType  string
	GuildID string
}

type GuildCoordinator

type GuildCoordinator struct {
	GuildID string
	UserID  string
	AddedBy string
	AddedAt int64
}

func GetCoordinatorList

func GetCoordinatorList(guildID string) ([]GuildCoordinator, error)

GetCoordinatorList returns all coordinators for a guild ordered by when they were added.

type GuildRecord

type GuildRecord struct {
	ID    string
	Value sql.NullString
}

type GuildState

type GuildState struct {
	GuildID            string
	MiscSettingsFlag   map[string]bool
	MiscSettingsString map[string]string
	LastUpdated        time.Time
}

GuildState stores guild-scoped bot settings.

func GetAllGuildState

func GetAllGuildState() ([]GuildState, error)

GetAllGuildState returns all persisted guild settings.

func GetGuildState

func GetGuildState(guildID string) (*GuildState, error)

GetGuildState returns persisted settings for a guild.

type InsertGuildCoordinatorParams

type InsertGuildCoordinatorParams struct {
	GuildID string
	UserID  string
	AddedBy string
	AddedAt int64
}

type InsertGuildStateParams

type InsertGuildStateParams struct {
	ID    string
	Value sql.NullString
}

type LeaderboardConfig

type LeaderboardConfig struct {
	LbType     string
	GuildID    string
	ChannelID  string
	MessageIds sql.NullString
}

func GetAllLeaderboardConfigs

func GetAllLeaderboardConfigs() ([]LeaderboardConfig, error)

GetAllLeaderboardConfigs returns every configured (lb_type, guild_id) pair.

func GetAllLeaderboardConfigsForGuild

func GetAllLeaderboardConfigsForGuild(guildID string) ([]LeaderboardConfig, error)

GetAllLeaderboardConfigsForGuild returns all leaderboard configs for a guild.

func GetLeaderboardConfig

func GetLeaderboardConfig(lbType, guildID string) (LeaderboardConfig, error)

GetLeaderboardConfig retrieves a single leaderboard config row.

type Queries

type Queries struct {
	// contains filtered or unexported fields
}

func New

func New(db DBTX) *Queries

func (*Queries) DeleteGuildCoordinator

func (q *Queries) DeleteGuildCoordinator(ctx context.Context, arg DeleteGuildCoordinatorParams) error

func (*Queries) DeleteGuildRecords

func (q *Queries) DeleteGuildRecords(ctx context.Context, id string) error

func (*Queries) DeleteGuildState

func (q *Queries) DeleteGuildState(ctx context.Context, id string) error

func (*Queries) DeleteLeaderboardConfig

func (q *Queries) DeleteLeaderboardConfig(ctx context.Context, arg DeleteLeaderboardConfigParams) error

func (*Queries) GetAllGuildState

func (q *Queries) GetAllGuildState(ctx context.Context) ([]GuildRecord, error)

func (*Queries) GetAllLeaderboardConfigs

func (q *Queries) GetAllLeaderboardConfigs(ctx context.Context) ([]LeaderboardConfig, error)

Returns every configured (lb_type, guild_id) pair - used by the weekly post task.

func (*Queries) GetAllLeaderboardConfigsForGuild

func (q *Queries) GetAllLeaderboardConfigsForGuild(ctx context.Context, guildID string) ([]LeaderboardConfig, error)

func (*Queries) GetGuildCoordinator

func (q *Queries) GetGuildCoordinator(ctx context.Context, arg GetGuildCoordinatorParams) (GuildCoordinator, error)

func (*Queries) GetGuildCoordinators

func (q *Queries) GetGuildCoordinators(ctx context.Context, guildID string) ([]GuildCoordinator, error)

func (*Queries) GetGuildState

func (q *Queries) GetGuildState(ctx context.Context, id string) (GuildRecord, error)

--- Guild Record ------------------------------------------------------------

func (*Queries) GetLeaderboardConfig

func (q *Queries) GetLeaderboardConfig(ctx context.Context, arg GetLeaderboardConfigParams) (LeaderboardConfig, error)

func (*Queries) InsertGuildCoordinator

func (q *Queries) InsertGuildCoordinator(ctx context.Context, arg InsertGuildCoordinatorParams) error

--- Guild Coordinator -------------------------------------------------------

func (*Queries) InsertGuildState

func (q *Queries) InsertGuildState(ctx context.Context, arg InsertGuildStateParams) (GuildRecord, error)

func (*Queries) UpdateGuildState

func (q *Queries) UpdateGuildState(ctx context.Context, arg UpdateGuildStateParams) (int64, error)

func (*Queries) UpdateLeaderboardConfigMessageIDs

func (q *Queries) UpdateLeaderboardConfigMessageIDs(ctx context.Context, arg UpdateLeaderboardConfigMessageIDsParams) error

Persist the message ID(s) written during the last post run.

func (*Queries) UpsertLeaderboardConfig

func (q *Queries) UpsertLeaderboardConfig(ctx context.Context, arg UpsertLeaderboardConfigParams) error

--- Leaderboard Config ------------------------------------------------------ Insert or update a guild leaderboard channel configuration.

func (*Queries) WithTx

func (q *Queries) WithTx(tx *sql.Tx) *Queries

type UpdateGuildStateParams

type UpdateGuildStateParams struct {
	Value sql.NullString
	ID    string
}

type UpdateLeaderboardConfigMessageIDsParams

type UpdateLeaderboardConfigMessageIDsParams struct {
	MessageIds sql.NullString
	LbType     string
	GuildID    string
}

type UpsertLeaderboardConfigParams

type UpsertLeaderboardConfigParams struct {
	LbType     string
	GuildID    string
	ChannelID  string
	MessageIds sql.NullString
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL