Multiple meeting lobbies and beta-gated features (3.5.2)
- /meeting add-lobby, remove-lobby, lobbies: up to 10 lobbies per server, capped in the database - Deleted voice channels are dropped from the lobbies - Beta features: registered only in the beta server and usable only with the Beta Tester role (BETA_GUILD_ID, BETA_ROLE_ID); fails closed - /beta (bot owner only) shows how beta access is set up Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
This commit is contained in:
1 parent
136377d81a
commit
a364435bab
15 files changed
+789
-52
No files matched your search
@@ -7,10 +7,16 @@ import (
|
||||
"github.com/joho/godotenv"
|
||||
)
|
||||
|
||||
// DefaultBetaGuildID is the server that beta features are tried in, unless
|
||||
// BETA_GUILD_ID says otherwise.
|
||||
const DefaultBetaGuildID = "1170934850157547600"
|
||||
|
||||
type Config struct {
|
||||
BotToken string
|
||||
AppID string
|
||||
GuildID string
|
||||
BetaGuildID string // BETA_GUILD_ID: where beta features exist
|
||||
BetaRoleID string // BETA_ROLE_ID: the Beta Tester role; empty keeps beta features locked for everyone
|
||||
DBHost string
|
||||
LavalinkHost string
|
||||
LavalinkPass string
|
||||
@@ -33,6 +39,12 @@ func LoadConfig() (*Config, error) {
|
||||
|
||||
guildID := os.Getenv("GUILD_ID")
|
||||
|
||||
betaGuildID := os.Getenv("BETA_GUILD_ID")
|
||||
if betaGuildID == "" {
|
||||
betaGuildID = DefaultBetaGuildID
|
||||
}
|
||||
betaRoleID := os.Getenv("BETA_ROLE_ID")
|
||||
|
||||
dbHost := os.Getenv("DB_HOST")
|
||||
if dbHost == "" {
|
||||
return nil, fmt.Errorf("DB_HOST is not set")
|
||||
@@ -50,6 +62,8 @@ func LoadConfig() (*Config, error) {
|
||||
BotToken: token,
|
||||
AppID: appID,
|
||||
GuildID: guildID,
|
||||
BetaGuildID: betaGuildID,
|
||||
BetaRoleID: betaRoleID,
|
||||
DBHost: dbHost,
|
||||
LavalinkHost: lavalinkHost,
|
||||
LavalinkPass: lavalinkPass,
|
||||
|
||||
Reference in new issue
Block a user