fix(修复模块依赖读取错误): 如题
This commit is contained in:
parent
988ed191ec
commit
81e1237635
|
|
@ -3,5 +3,5 @@ org.gradle.downloadSources=false
|
||||||
org.gradle.parallel=true
|
org.gradle.parallel=true
|
||||||
org.gradle.degree_of_parallelism=16
|
org.gradle.degree_of_parallelism=16
|
||||||
project_group=top.r3944realms.ltdmanager
|
project_group=top.r3944realms.ltdmanager
|
||||||
project_version=1.15-SNAPSHOT
|
project_version=1.16-SNAPSHOT
|
||||||
dg_lab_version=4.4.14.18
|
dg_lab_version=4.4.14.18
|
||||||
|
|
|
||||||
|
|
@ -10,21 +10,19 @@ data class ModuleConfig(
|
||||||
var name: String = "default",
|
var name: String = "default",
|
||||||
var type: ModuleType = ModuleType.HELP_MODULE,
|
var type: ModuleType = ModuleType.HELP_MODULE,
|
||||||
var enabled: Boolean = true,
|
var enabled: Boolean = true,
|
||||||
var dependencies: List<Dependency> = emptyList(),
|
var dependencies: List<Dependency>? = emptyList(),
|
||||||
var config: Map<String, Any> = emptyMap()
|
var config: Map<String, Any> = emptyMap()
|
||||||
) {
|
) {
|
||||||
data class Dependency(
|
data class Dependency(
|
||||||
var name: String,
|
var name: String = "unknown",
|
||||||
var type: ModuleType
|
var type: ModuleType = ModuleType.UNKNOWN_MODULE,
|
||||||
) {
|
) {
|
||||||
private val dependencyName: String = "${type.modName}-$name"
|
fun getDepName() :String = "${type.modName}-#$name"
|
||||||
|
|
||||||
fun getDepName() :String = dependencyName
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fun findDependency(type: ModuleType): Dependency? {
|
fun findDependency(type: ModuleType): Dependency? {
|
||||||
return dependencies.find { it.type == type }
|
return dependencies?.find { it.type == type }
|
||||||
}
|
}
|
||||||
inline fun <reified T> typedList(paramName: String): List<T> {
|
inline fun <reified T> typedList(paramName: String): List<T> {
|
||||||
val list = anyList(paramName)
|
val list = anyList(paramName)
|
||||||
|
|
@ -125,7 +123,8 @@ data class ModuleConfig(
|
||||||
MOD_GROUP_HANDLER_MODULE(Modules.MOD_GROUP_HANDLER),
|
MOD_GROUP_HANDLER_MODULE(Modules.MOD_GROUP_HANDLER),
|
||||||
RCON_PLAYER_LIST_MODULE(Modules.RCON_PLAYER_LIST),
|
RCON_PLAYER_LIST_MODULE(Modules.RCON_PLAYER_LIST),
|
||||||
STATE_MODULE(Modules.STATE),
|
STATE_MODULE(Modules.STATE),
|
||||||
HELP_MODULE(Modules.HELP),;
|
HELP_MODULE(Modules.HELP),
|
||||||
|
UNKNOWN_MODULE("UnknownModule");
|
||||||
}
|
}
|
||||||
// 基础获取方法
|
// 基础获取方法
|
||||||
fun value(paramName: String): Any =
|
fun value(paramName: String): Any =
|
||||||
|
|
|
||||||
|
|
@ -20,6 +20,7 @@ object ModuleFactory {
|
||||||
STATE_MODULE -> createState(config)
|
STATE_MODULE -> createState(config)
|
||||||
MOD_GROUP_HANDLER_MODULE -> createModGroupHandler(config)
|
MOD_GROUP_HANDLER_MODULE -> createModGroupHandler(config)
|
||||||
HELP_MODULE -> createHelpModule(config)
|
HELP_MODULE -> createHelpModule(config)
|
||||||
|
UNKNOWN_MODULE -> throw ConfigError(ConfigError.Type.INVALID_PARAMETER, "unknown module")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
private fun resolveDependency(dep: ModuleConfig.Module.Dependency?, name: String): BaseModule? {
|
private fun resolveDependency(dep: ModuleConfig.Module.Dependency?, name: String): BaseModule? {
|
||||||
|
|
@ -176,7 +177,6 @@ object ModuleFactory {
|
||||||
private fun createHelpModule(config: ModuleConfig.Module): HelpModule {
|
private fun createHelpModule(config: ModuleConfig.Module): HelpModule {
|
||||||
val selfId = config.long("self-id")
|
val selfId = config.long("self-id")
|
||||||
val cooldownMillis = config.getOrDefault("cooldown-millis", 10_000L)
|
val cooldownMillis = config.getOrDefault("cooldown-millis", 10_000L)
|
||||||
config.getOrDefault("rcon-timeout-millis", 2_000L)
|
|
||||||
val groupMessagePollingModule = resolveDependency(config.findDependency(GROUP_MESSAGE_POLLING_MODULE), "groupMessagePolling") as GroupMessagePollingModule
|
val groupMessagePollingModule = resolveDependency(config.findDependency(GROUP_MESSAGE_POLLING_MODULE), "groupMessagePolling") as GroupMessagePollingModule
|
||||||
val selfNickName = config.string("self-nick-name")
|
val selfNickName = config.string("self-nick-name")
|
||||||
val keywords = config.stringList("keywords")
|
val keywords = config.stringList("keywords")
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user