Env
data class Env(val appId: String, val secret: String, val token: String, val plain: Boolean = false) : TicketConfiguration(source)
使用JVM参数或环境变量来读取 QGBotFileConfiguration.Ticket 中对应的配置类型。
{
"ticket": {
"type": "env",
"appId": "APP_ID",
"secret": "SECRET",
"token": "TOKEN",
"plain": false
}
}
Content copied to clipboard
Env 会首先尝试获取 JVM 参数,即运行时的 -Dxxx=xxx
(也就是 System.getProperty
), 当不存在时会尝试通过环境变量获取(即 System.getenv
)。
原始输入
当 plain 为 true
时(默认为 false
),如果某属性通过上述流程无法获取到值,则会尝试直接使用原始输入值。
例如:
{
"ticket": {
"type": "env",
"appId": "aaa",
"secret": "MY_SECRET",
"token": "MY_TOKEN",
"plain": true
}
}
Content copied to clipboard
示例中的 appId
并没有找到名为 aaa
的 JVM 参数或环境变量,因此它会直接使用 aaa
作为 appId。 而如果 plain 为 false
,则会直接抛出 IllegalStateException 异常。
当一个属性以 PLAIN:
(区分大小写) 为前缀,则会直接使用原始输入值,不会尝试从环境变量中获取。
例如:
{
"ticket": {
"type": "env",
"appId": "PLAIN:aaa",
"secret": "MY_SECRET",
"token": "MY_TOKEN",
"plain": false
}
}
Content copied to clipboard
示例中 appId
会直接使用 aaa
作为 appId,而不会尝试从 JVM 参数或环境变量中获取。