From 5d192b357e78d15ba731e4b5919cfe08ee1269f8 Mon Sep 17 00:00:00 2001
From: RandomChars <random@chars.jp>
Date: Sun, 1 Aug 2021 14:57:29 +0900
Subject: [PATCH] configurable default user limit

---
 config.go   | 22 ++++++++++++++--------
 instance.go |  2 +-
 2 files changed, 15 insertions(+), 9 deletions(-)

diff --git a/config.go b/config.go
index 0d5c866..e5cb94b 100644
--- a/config.go
+++ b/config.go
@@ -11,17 +11,19 @@ import (
 var config configPayload
 var configPath string
 var defaultConfig = configPayload{
-	Prefix:    "!",
-	Token:     "TOKEN",
-	Timeout:   120,
-	ChannelID: []string{},
+	Prefix:           "!",
+	Token:            "TOKEN",
+	Timeout:          120,
+	ChannelID:        []string{},
+	DefaultUserLimit: 2,
 }
 
 type configPayload struct {
-	Prefix    string
-	Token     string
-	Timeout   int
-	ChannelID []string
+	Prefix           string
+	Token            string
+	Timeout          int
+	ChannelID        []string
+	DefaultUserLimit int
 }
 
 func init() {
@@ -51,6 +53,10 @@ func parse() {
 }
 
 func configLate() {
+	if config.DefaultUserLimit > 99 || config.DefaultUserLimit < 1 {
+		log.Warnf("Value %v is out of range for default user limit.", config.DefaultUserLimit)
+		config.DefaultUserLimit = defaultConfig.DefaultUserLimit
+	}
 	timeout = time.Duration(config.Timeout) * time.Second
 	allowedChannels = make(map[string]bool)
 	categoryMap = make(map[string]string)
diff --git a/instance.go b/instance.go
index add0a03..137fe9b 100644
--- a/instance.go
+++ b/instance.go
@@ -78,7 +78,7 @@ func setupInstance(member *discordgo.Member) *chatInstance {
 		Type:      discordgo.ChannelTypeGuildVoice,
 		Topic:     "Volatile channel created by " + member.User.ID,
 		Bitrate:   64000,
-		UserLimit: 10,
+		UserLimit: config.DefaultUserLimit,
 		ParentID:  parentID,
 	})
 	if err != nil {
-- 
GitLab