Documentation
¶
Index ¶
- Constants
- Variables
- func BytesToJSONB(value []byte) pgtype.JSONB
- func ClearTokenSession(session sessions.Session)
- func GetPreviousPathSession(session sessions.Session) (previousPath string, ok bool)
- func GetStateSession(session sessions.Session) (state string, ok bool)
- func GetTokenSession(session sessions.Session) (token oauth2.Token, ok bool)
- func Int64SliceToString(value []int64) []string
- func Int64ToStringPointer(value int64) *string
- func JSONBToBytes(value pgtype.JSONB) []byte
- func JSONBToString(value pgtype.JSONB) string
- func MarshalTimeRolesJSON(roles []GuildSettingsTimeRolesRole) (rolesJSON []byte)
- func MinimalRolesToMap(roles []*MinimalRole) map[discord.Snowflake]*MinimalRole
- func ParseImageAlignment(value string) welcomer.ImageAlignment
- func ParseImageProfileBorderType(value string) welcomer.ImageProfileBorderType
- func ParseImageTheme(value string) welcomer.ImageTheme
- func PartialToGuildSettings(guildID int64, guildSettings *GuildSettingsSettings) *database.Guilds
- func PartialToGuildSettingsAutoRolesSettings(guildID int64, guildSettings *GuildSettingsAutoRoles) *database.GuildSettingsAutoroles
- func PartialToGuildSettingsBorderwallSettings(guildID int64, guildSettings *GuildSettingsBorderwall) *database.GuildSettingsBorderwall
- func PartialToGuildSettingsFreeRolesSettings(guildID int64, guildSettings *GuildSettingsFreeRoles) *database.GuildSettingsFreeroles
- func PartialToGuildSettingsLeaverSettings(guildID int64, guildSettings *GuildSettingsLeaver) *database.GuildSettingsLeaver
- func PartialToGuildSettingsRulesSettings(guildID int64, guildSettings *GuildSettingsRules) *database.GuildSettingsRules
- func PartialToGuildSettingsTempChannelsSettings(guildID int64, guildSettings *GuildSettingsTempChannels) *database.GuildSettingsTempchannels
- func PartialToGuildSettingsTimeRolesSettings(guildID int64, guildSettings *GuildSettingsTimeRoles) *database.GuildSettingsTimeroles
- func PartialToGuildSettingsWelcomerSettings(guildID int64, guildSettings *GuildSettingsWelcomer) (*database.GuildSettingsWelcomerText, *database.GuildSettingsWelcomerImages, ...)
- func RandStringBytesRmndr(n int) string
- func SetPreviousPathSession(session sessions.Session, previousPath string)
- func SetStateSession(session sessions.Session, state string)
- func SetTokenSession(session sessions.Session, token oauth2.Token)
- func SetUserSession(session sessions.Session, sessionUser SessionUser)
- func StringPointerToInt64(value *string) int64
- func StringSliceToInt64(value []string) []int64
- func StringToJSONB(value string) pgtype.JSONB
- type Backend
- func (b *Backend) Close() error
- func (b *Backend) GetBasicEventContext() (client *sandwich.EventContext)
- func (b *Backend) GetUserGuilds(session sessions.Session) (guilds map[discord.Snowflake]*SessionGuild, err error)
- func (b *Backend) GetUserMemberships(session sessions.Session) (memberships []*Membership, err error)
- func (b *Backend) LoadConfiguration(path string) (configuration *Configuration, err error)
- func (b *Backend) Open() error
- func (b *Backend) PrepareGin() *gin.Engine
- func (b *Backend) PublishSimpleWebhook(s *discord.Session, title string, description string, footer string, ...)
- func (b *Backend) PublishWebhook(session *discord.Session, message discord.WebhookMessageParams)
- func (b *Backend) SetupPrometheus() error
- type BaseResponse
- type Configuration
- type Guild
- type GuildSettingsAutoRoles
- type GuildSettingsBorderwall
- type GuildSettingsFreeRoles
- type GuildSettingsLeaver
- type GuildSettingsRules
- type GuildSettingsSettings
- type GuildSettingsTempChannels
- type GuildSettingsTimeRoles
- type GuildSettingsTimeRolesRole
- type GuildSettingsWelcomer
- type GuildSettingsWelcomerCustom
- type GuildSettingsWelcomerDms
- type GuildSettingsWelcomerImages
- type GuildSettingsWelcomerText
- type Membership
- type MinimalChannel
- type MinimalEmoji
- type MinimalGuild
- type MinimalRole
- type MinimalUser
- type PartialGuild
- type SessionGuild
- type SessionUser
- type Store
Constants ¶
const ( PermissionsDefault = 0o744 PermissionWrite = 0o600 RequestSizeLimit = 100000000 )
const ( MaxRuleCount = 25 MaxRuleLength = 250 )
const ( MaxBackgroundSize = 20000000 MaxFileResolution = 16777216 MIMEPNG = "image/png" MIMEJPEG = "image/jpeg" MIMEGIF = "image/gif" MIMEWEBP = "image/webp" )
const ( RefreshFrequency = time.Minute * 15 MinimumRefreshFrequency = time.Second * 30 LazyRefreshFrequency = time.Hour )
const ( UserKey = "user" GuildKey = "guild" GuildIDKey = "guildID" KeyKey = "key" TokenKey = "token" StateKey = "state" PreviousPathKey = "previous_path" )
const ( EmbedColourSandwich = 16701571 EmbedColourWarning = 16760839 EmbedColourDanger = 14431557 WebhookRateLimitDuration = 5 * time.Second WebhookRateLimitLimit = 5 )
Embed colours for webhooks.
const (
StateStringLength = 16
)
const VERSION = "0.1"
Variables ¶
var ( ErrBackendAlreadyExists = errors.New("backend already created") ErrReadConfigurationFailure = errors.New("failed to read configuration") ErrLoadConfigurationFailure = errors.New("failed to load configuration") ErrMissingToken = errors.New("missing token in session") ErrMissingUser = errors.New("missing user in session") ErrMissingParameter = errors.New("missing parameter \"%s\" in request") ErrWelcomerMissing = errors.New("bot is missing from server") ErrEnsureFailure = errors.New("failed to ensure guild") )
var ( ErrRequired = errors.New("this field is required") ErrChannelInvalid = errors.New("this channel does not exist") ErrInvalidJSON = errors.New("invalid json") ErrInvalidColour = errors.New("colour format is not recognised") ErrInvalidBackground = errors.New("invalid background") ErrInvalidImageAlignment = errors.New("image alignment is not recognised") ErrInvalidImageTheme = errors.New("image theme is not recognised") ErrInvalidProfileBorderType = errors.New("profile border type is not recognised") ErrBackgroundTooLarge = errors.New("background size is too large") ErrFileSizeTooLarge = errors.New("this file has an image resolution that is too high") ErrFileNotSupported = errors.New("this file format is not supported") ErrConversionFailed = errors.New("failed to convert background") ErrCannotUseCustomBackgrounds = errors.New("you cannot upload custom welcomer backgrounds") ErrStringTooLong = errors.New("string is too long") ErrListTooLong = errors.New("list is too long") )
Validation errors.
var (
ErrInvalidContentType = errors.New("content type not accepted")
)
HTTP errors.
var OAuth2Config = &oauth2.Config{ ClientID: "", ClientSecret: "", Endpoint: oauth2.Endpoint{ AuthURL: discord.EndpointDiscord + discord.EndpointOAuth2Authorize + "?prompt=none", TokenURL: discord.EndpointDiscord + "/api/v10" + discord.EndpointOAuth2Token, AuthStyle: oauth2.AuthStyleInParams, }, RedirectURL: "", Scopes: []string{"identify", "guilds"}, }
var RecoderQuantizationAttributes = recoder.NewQuantizationAttributes()
Functions ¶
func BytesToJSONB ¶
func ClearTokenSession ¶
func GetPreviousPathSession ¶
func Int64SliceToString ¶
func Int64ToStringPointer ¶
func JSONBToBytes ¶
func JSONBToString ¶
func MarshalTimeRolesJSON ¶
func MarshalTimeRolesJSON(roles []GuildSettingsTimeRolesRole) (rolesJSON []byte)
func MinimalRolesToMap ¶
func MinimalRolesToMap(roles []*MinimalRole) map[discord.Snowflake]*MinimalRole
func ParseImageAlignment ¶
func ParseImageAlignment(value string) welcomer.ImageAlignment
func ParseImageProfileBorderType ¶
func ParseImageProfileBorderType(value string) welcomer.ImageProfileBorderType
func ParseImageTheme ¶
func ParseImageTheme(value string) welcomer.ImageTheme
func PartialToGuildSettings ¶
func PartialToGuildSettings(guildID int64, guildSettings *GuildSettingsSettings) *database.Guilds
func PartialToGuildSettingsAutoRolesSettings ¶
func PartialToGuildSettingsAutoRolesSettings(guildID int64, guildSettings *GuildSettingsAutoRoles) *database.GuildSettingsAutoroles
func PartialToGuildSettingsBorderwallSettings ¶
func PartialToGuildSettingsBorderwallSettings(guildID int64, guildSettings *GuildSettingsBorderwall) *database.GuildSettingsBorderwall
func PartialToGuildSettingsFreeRolesSettings ¶
func PartialToGuildSettingsFreeRolesSettings(guildID int64, guildSettings *GuildSettingsFreeRoles) *database.GuildSettingsFreeroles
func PartialToGuildSettingsLeaverSettings ¶
func PartialToGuildSettingsLeaverSettings(guildID int64, guildSettings *GuildSettingsLeaver) *database.GuildSettingsLeaver
func PartialToGuildSettingsRulesSettings ¶
func PartialToGuildSettingsRulesSettings(guildID int64, guildSettings *GuildSettingsRules) *database.GuildSettingsRules
func PartialToGuildSettingsTempChannelsSettings ¶
func PartialToGuildSettingsTempChannelsSettings(guildID int64, guildSettings *GuildSettingsTempChannels) *database.GuildSettingsTempchannels
func PartialToGuildSettingsTimeRolesSettings ¶
func PartialToGuildSettingsTimeRolesSettings(guildID int64, guildSettings *GuildSettingsTimeRoles) *database.GuildSettingsTimeroles
func PartialToGuildSettingsWelcomerSettings ¶
func PartialToGuildSettingsWelcomerSettings(guildID int64, guildSettings *GuildSettingsWelcomer) (*database.GuildSettingsWelcomerText, *database.GuildSettingsWelcomerImages, *database.GuildSettingsWelcomerDms)
func RandStringBytesRmndr ¶
func SetPreviousPathSession ¶
func SetStateSession ¶
func SetUserSession ¶
func SetUserSession(session sessions.Session, sessionUser SessionUser)
func StringPointerToInt64 ¶
func StringSliceToInt64 ¶
func StringToJSONB ¶
Types ¶
type Backend ¶
type Backend struct {
sync.Mutex
ConfigurationLocation string `json:"configuration_location"`
Logger zerolog.Logger `json:"-"`
StartTime time.Time `json:"start_time" yaml:"start_time"`
Configuration *Configuration `json:"configuration" yaml:"configuration"`
RESTInterface discord.RESTInterface
SandwichClient protobuf.SandwichClient
GRPCInterface sandwich.GRPC
PrometheusHandler *ginprometheus.Prometheus
Route *gin.Engine
Pool *pgxpool.Pool
Store Store
Database *database.Queries
EmptySession *discord.Session
BotSession *discord.Session
DonatorBotSession *discord.Session
// contains filtered or unexported fields
}
func NewBackend ¶
func NewBackend(conn grpc.ClientConnInterface, restInterface discord.RESTInterface, logger io.Writer, isReleaseMode bool, configurationLocation, host, botToken, donatorBotToken, prometheusAddress, postgresAddress, nginxAddress, clientId, clientSecret, redirectURL, cdnCustomBackgroundsPath, cdnBackgroundsPath string) (b *Backend, err error)
NewBackend creates a new backend.
func (*Backend) GetBasicEventContext ¶
func (b *Backend) GetBasicEventContext() (client *sandwich.EventContext)
GetEventContext.
func (*Backend) GetUserGuilds ¶
func (*Backend) GetUserMemberships ¶
func (b *Backend) GetUserMemberships(session sessions.Session) (memberships []*Membership, err error)
func (*Backend) LoadConfiguration ¶
func (b *Backend) LoadConfiguration(path string) (configuration *Configuration, err error)
LoadConfiguration handles loading the configuration file.
func (*Backend) PrepareGin ¶
PrepareGin prepares gin routes and middleware.
func (*Backend) PublishSimpleWebhook ¶
func (b *Backend) PublishSimpleWebhook(s *discord.Session, title string, description string, footer string, colour int32)
PublishSimpleWebhook is a helper function for creating quicker webhook messages.
func (*Backend) PublishWebhook ¶
func (b *Backend) PublishWebhook(session *discord.Session, message discord.WebhookMessageParams)
PublishWebhook sends a webhook message to all added webhooks in the configuration.
func (*Backend) SetupPrometheus ¶
SetupPrometheus sets up prometheus.
type BaseResponse ¶
type BaseResponse struct {
Ok bool `json:"ok"`
Error string `json:"error,omitempty"`
Data interface{} `json:"data,omitempty"`
}
BaseResponse represents the base response sent to a client.
type Configuration ¶
type Configuration struct {
Logging struct {
Level string `json:"level" yaml:"level"`
FileLoggingEnabled bool `json:"file_logging_enabled" yaml:"file_logging_enabled"`
EncodeAsJSON bool `json:"encode_as_json" yaml:"encode_as_json"`
Directory string `json:"directory" yaml:"directory"`
Filename string `json:"filename" yaml:"filename"`
MaxSize int `json:"max_size" yaml:"max_size"`
MaxBackups int `json:"max_backups" yaml:"max_backups"`
MaxAge int `json:"max_age" yaml:"max_age"`
Compress bool `json:"compress" yaml:"compress"`
} `json:"logging" yaml:"logging"`
Webhooks []string `json:"webhooks" yaml:"webhooks"`
}
Configuration represents the configuration file.
type Guild ¶
type Guild struct {
Guild *PartialGuild `json:"guild,omitempty"`
HasWelcomerPro bool `json:"has_welcomer_pro"`
HasCustomBackgrounds bool `json:"has_custom_backgrounds"`
CreatedAt time.Time `json:"created_at"`
UpdatedAt time.Time `json:"updated_at"`
EmbedColour int `json:"embed_colour"`
SplashURL string `json:"splash_url"`
StaffVisible bool `json:"staff_visible"`
GuildVisible bool `json:"guild_visible"`
AllowInvites bool `json:"allow_invites"`
}
type GuildSettingsAutoRoles ¶
type GuildSettingsAutoRoles struct {
ToggleEnabled bool `json:"enabled"`
Roles []string `json:"roles"`
}
func GuildSettingsAutoRolesSettingsToPartial ¶
func GuildSettingsAutoRolesSettingsToPartial( autoRoles *database.GuildSettingsAutoroles, ) *GuildSettingsAutoRoles
type GuildSettingsBorderwall ¶
type GuildSettingsBorderwall struct {
ToggleEnabled bool `json:"enabled"`
ToggleSendDm bool `json:"send_dm"`
Channel *string `json:"channel"`
MessageVerify string `json:"message_verify"`
MessageVerified string `json:"message_verified"`
RolesOnJoin []string `json:"roles_on_join"`
RolesOnVerify []string `json:"roles_on_verify"`
}
func GuildSettingsBorderwallSettingsToPartial ¶
func GuildSettingsBorderwallSettingsToPartial( borderwall *database.GuildSettingsBorderwall, ) *GuildSettingsBorderwall
type GuildSettingsFreeRoles ¶
type GuildSettingsFreeRoles struct {
ToggleEnabled bool `json:"enabled"`
Roles []string `json:"roles"`
}
func GuildSettingsFreeRolesSettingsToPartial ¶
func GuildSettingsFreeRolesSettingsToPartial( freeRoles *database.GuildSettingsFreeroles, ) *GuildSettingsFreeRoles
type GuildSettingsLeaver ¶
type GuildSettingsLeaver struct {
ToggleEnabled bool `json:"enabled"`
Channel *string `json:"channel"`
MessageFormat string `json:"message_json"`
}
func GuildSettingsLeaverSettingsToPartial ¶
func GuildSettingsLeaverSettingsToPartial( leaver *database.GuildSettingsLeaver, ) *GuildSettingsLeaver
type GuildSettingsRules ¶
type GuildSettingsRules struct {
ToggleEnabled bool `json:"enabled"`
ToggleDmsEnabled bool `json:"dms_enabled"`
Rules []string `json:"rules"`
}
func GuildSettingsRulesSettingsToPartial ¶
func GuildSettingsRulesSettingsToPartial( rules *database.GuildSettingsRules, ) *GuildSettingsRules
type GuildSettingsSettings ¶
type GuildSettingsSettings struct {
Name string `json:"name"`
EmbedColour int32 `json:"embed_colour"`
SiteSplashUrl string `json:"site_splash_url"`
SiteStaffVisible bool `json:"site_staff_visible"`
SiteGuildVisible bool `json:"site_guild_visible"`
SiteAllowInvites bool `json:"site_allow_invites"`
}
func GuildSettingsToPartial ¶
func GuildSettingsToPartial( guildSettings *database.Guilds, ) *GuildSettingsSettings
type GuildSettingsTempChannels ¶
type GuildSettingsTempChannels struct {
ToggleEnabled bool `json:"enabled"`
ToggleAutopurge bool `json:"autopurge"`
ChannelLobby *string `json:"channel_lobby"`
ChannelCategory *string `json:"channel_category"`
DefaultUserCount int32 `json:"default_user_count"`
}
func GuildSettingsTempChannelsSettingsToPartial ¶
func GuildSettingsTempChannelsSettingsToPartial( tempChannels *database.GuildSettingsTempchannels, ) *GuildSettingsTempChannels
type GuildSettingsTimeRoles ¶
type GuildSettingsTimeRoles struct {
ToggleEnabled bool `json:"enabled"`
Roles []GuildSettingsTimeRolesRole `json:"roles"`
}
func GuildSettingsTimeRolesSettingsToPartial ¶
func GuildSettingsTimeRolesSettingsToPartial( timeroles *database.GuildSettingsTimeroles, ) *GuildSettingsTimeRoles
type GuildSettingsTimeRolesRole ¶
type GuildSettingsTimeRolesRole struct {
Role string `json:"role_id"`
Seconds int `json:"seconds"`
}
func UnmarshalTimeRolesJSON ¶
func UnmarshalTimeRolesJSON(rolesJSON []byte) (roles []GuildSettingsTimeRolesRole)
type GuildSettingsWelcomer ¶
type GuildSettingsWelcomer struct {
Text *GuildSettingsWelcomerText `json:"text"`
Images *GuildSettingsWelcomerImages `json:"images"`
DMs *GuildSettingsWelcomerDms `json:"dms"`
Custom *GuildSettingsWelcomerCustom `json:"custom,omitempty"`
}
func GuildSettingsWelcomerSettingsToPartial ¶
func GuildSettingsWelcomerSettingsToPartial( text *database.GuildSettingsWelcomerText, images *database.GuildSettingsWelcomerImages, dms *database.GuildSettingsWelcomerDms, Custom *GuildSettingsWelcomerCustom, ) *GuildSettingsWelcomer
type GuildSettingsWelcomerCustom ¶
type GuildSettingsWelcomerCustom struct {
CustomBackgroundIDs []string `json:"custom_ids"`
}
type GuildSettingsWelcomerImages ¶
type GuildSettingsWelcomerImages struct {
ToggleEnabled bool `json:"enabled"`
ToggleImageBorder bool `json:"enable_border"`
BackgroundName string `json:"background"`
ColourText string `json:"text_colour"`
ColourTextBorder string `json:"text_colour_border"`
ColourImageBorder string `json:"border_colour"`
ColourProfileBorder string `json:"profile_border_colour"`
ImageAlignment string `json:"image_alignment"`
ImageTheme string `json:"image_theme"`
ImageMessage string `json:"message"`
ImageProfileBorderType string `json:"profile_border_type"`
}
type Membership ¶
type Membership struct {
MembershipUuid uuid.UUID `json:"membership_uuid"`
CreatedAt time.Time `json:"created_at"`
UpdatedAt time.Time `json:"updated_at"`
StartedAt time.Time `json:"started_at"`
ExpiresAt time.Time `json:"expires_at"`
Status int32 `json:"status"`
MembershipType int32 `json:"membership_type"`
GuildID discord.Snowflake `json:"guild_id"`
Guild *MinimalGuild `json:"guild"`
}
Membership represents a membership to a server.
type MinimalChannel ¶
type MinimalChannel struct {
ID discord.Snowflake `json:"id"`
Type discord.ChannelType `json:"type"`
Position int32 `json:"position,omitempty"`
Name string `json:"name,omitempty"`
}
func ChannelsToMinimal ¶
func ChannelsToMinimal(channels []*discord.Channel) []*MinimalChannel
type MinimalEmoji ¶
type MinimalEmoji struct {
ID discord.Snowflake `json:"id"`
Name string `json:"name"`
Managed bool `json:"managed"`
Animated bool `json:"animated"`
Available bool `json:"available"`
}
func EmojisToMinimal ¶
func EmojisToMinimal(emojis []*discord.Emoji) []*MinimalEmoji
type MinimalGuild ¶
type MinimalGuild struct {
ID discord.Snowflake `json:"id"`
Name string `json:"name"`
Icon string `json:"icon"`
IconHash string `json:"icon_hash"`
Splash string `json:"splash,omitempty"`
DiscoverySplash string `json:"discovery_splash,omitempty"`
Description string `json:"description,omitempty"`
Banner string `json:"banner,omitempty"`
}
func GuildToMinimal ¶
func GuildToMinimal(guild *discord.Guild) *MinimalGuild
type MinimalRole ¶
type MinimalRole struct {
ID discord.Snowflake `json:"id"`
Name string `json:"name"`
Color int32 `json:"color"`
Position int32 `json:"position"`
IsAssignable bool `json:"is_assignable"`
IsElevated bool `json:"is_elevated"`
// contains filtered or unexported fields
}
func CalculateRoleValues ¶
func CalculateRoleValues(roles []*MinimalRole, guildMembers []*discord.GuildMember) (convertedRoles []*MinimalRole)
func RolesToMinimal ¶
func RolesToMinimal(roles []*discord.Role) []*MinimalRole
type MinimalUser ¶
type MinimalUser struct {
ID discord.Snowflake `json:"id"`
Username string `json:"username"`
Discriminator string `json:"discriminator"`
GlobalName string `json:"global_name"`
Avatar string `json:"avatar"`
Memberships []*Membership `json:"memberships,omitempty"`
}
func SessionUserToMinimal ¶
func SessionUserToMinimal(sessionUser *SessionUser) *MinimalUser
type PartialGuild ¶
type PartialGuild struct {
*MinimalGuild
MemberCount int32 `json:"member_count"`
Channels []*MinimalChannel `json:"channels"`
Roles []*MinimalRole `json:"roles"`
Emojis []*MinimalEmoji `json:"emojis"`
}
func GuildToPartial ¶
func GuildToPartial(guild *discord.Guild) *PartialGuild
type SessionGuild ¶
type SessionGuild struct {
ID discord.Snowflake `json:"id"`
Name string `json:"name"`
Icon string `json:"icon"`
HasWelcomer bool `json:"has_welcomer"`
HasWelcomerPro bool `json:"has_welcomer_pro"`
HasCustomBackgrounds bool `json:"has_custom_backgrounds"`
HasElevation bool `json:"has_elevation"`
IsOwner bool `json:"is_owner"`
}
SessionGuild represents a guild passed through /api/users/guilds and is stored in the session.
type SessionUser ¶
type SessionUser struct {
ID discord.Snowflake `json:"id"`
Username string `json:"username"`
Discriminator string `json:"discriminator"`
GlobalName string `json:"global_name"`
Avatar string `json:"avatar"`
Guilds map[discord.Snowflake]*SessionGuild `json:"guilds"`
GuildsLastRequestedAt time.Time `json:"-"`
Memberships []*Membership `json:"memberships"`
MembershipsLastRequestedAt time.Time `json:"-"`
}
SessionUser stores the user in a session.
func GetUserSession ¶
func GetUserSession(session sessions.Session) (sessionUser SessionUser, ok bool)
Source Files
¶
- auth.go
- backend.go
- checks.go
- errors.go
- pgxstore.go
- routes_example.go
- routes_guild.go
- routes_guild_settings.go
- routes_guild_settings_autoroles.go
- routes_guild_settings_borderwall.go
- routes_guild_settings_freeroles.go
- routes_guild_settings_leaver.go
- routes_guild_settings_rules.go
- routes_guild_settings_tempchannels.go
- routes_guild_settings_timeroles.go
- routes_guild_settings_welcomer.go
- routes_session.go
- routes_user.go
- session.go
- struct_sessions.go
- structs_database.go
- structs_guild.go
- structs_guild_settings_autoroles.go
- structs_guild_settings_borderwall.go
- structs_guild_settings_freeroles.go
- structs_guild_settings_leaver.go
- structs_guild_settings_rules.go
- structs_guild_settings_settings.go
- structs_guild_settings_tempchannels.go
- structs_guild_settings_timeroles.go
- structs_guild_settings_welcomer.go
- structs_response.go
- structs_user.go
- utils.go
- webhooks.go