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.degree_of_parallelism=16
project_group=top.r3944realms.ltdmanager
project_version=1.15-SNAPSHOT
project_version=1.16-SNAPSHOT
dg_lab_version=4.4.14.18

View File

@ -10,21 +10,19 @@ data class ModuleConfig(
var name: String = "default",
var type: ModuleType = ModuleType.HELP_MODULE,
var enabled: Boolean = true,
var dependencies: List<Dependency> = emptyList(),
var dependencies: List<Dependency>? = emptyList(),
var config: Map<String, Any> = emptyMap()
) {
data class Dependency(
var name: String,
var type: ModuleType
var name: String = "unknown",
var type: ModuleType = ModuleType.UNKNOWN_MODULE,
) {
private val dependencyName: String = "${type.modName}-$name"
fun getDepName() :String = dependencyName
fun getDepName() :String = "${type.modName}-#$name"
}
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> {
val list = anyList(paramName)
@ -125,7 +123,8 @@ data class ModuleConfig(
MOD_GROUP_HANDLER_MODULE(Modules.MOD_GROUP_HANDLER),
RCON_PLAYER_LIST_MODULE(Modules.RCON_PLAYER_LIST),
STATE_MODULE(Modules.STATE),
HELP_MODULE(Modules.HELP),;
HELP_MODULE(Modules.HELP),
UNKNOWN_MODULE("UnknownModule");
}
// 基础获取方法
fun value(paramName: String): Any =

View File

@ -20,6 +20,7 @@ object ModuleFactory {
STATE_MODULE -> createState(config)
MOD_GROUP_HANDLER_MODULE -> createModGroupHandler(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? {
@ -176,7 +177,6 @@ object ModuleFactory {
private fun createHelpModule(config: ModuleConfig.Module): HelpModule {
val selfId = config.long("self-id")
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 selfNickName = config.string("self-nick-name")
val keywords = config.stringList("keywords")