fix(修复模块依赖读取错误): 如题

This commit is contained in:
叁玖领域 2026-02-09 15:10:18 +08:00
parent 988ed191ec
commit 81e1237635
3 changed files with 9 additions and 10 deletions

View File

@ -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

View File

@ -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 =

View File

@ -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")