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:
FernandoJVideiraandClaude Sonnet 5.5 committed 2026-10-23 00:38:48 +01:00
1 parent 136377d81a
commit a364435bab
15 files changed
+789 -52

No files matched your search

+14
View File
@@ -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,