Fixed the load order of configs with plugins - many configs are now loaded after plugins so that npc/item/object handlers in the old plugin system are set properly

This commit is contained in:
Ceikry 2022-05-15 23:22:30 +00:00 committed by Ryan
parent 24cea604fc
commit 966a5e1c55
3 changed files with 7 additions and 3 deletions

View file

@ -4,12 +4,14 @@ import kotlinx.coroutines.GlobalScope
import kotlinx.coroutines.launch
class ConfigParser {
fun parseConfigs() {
fun prePlugin() {
NPCConfigParser().load()
ItemConfigParser().load()
ObjectConfigParser().load()
XteaParser().load()
InterfaceConfigParser().load()
}
fun postPlugin() {
ShopParser().load()
DropTableParser().load()
NPCSpawner().load()

View file

@ -160,11 +160,12 @@ object GameWorld {
Cache.init(ServerConstants.CACHE_PATH)
databaseManager = DatabaseManager(ServerConstants.DATABASE)
databaseManager!!.connect()
ConfigParser().parseConfigs()
configParser.prePlugin()
ClassScanner.scanClasspath()
ClassScanner.loadPureInterfaces()
worldPersists.forEach { it.parse() }
ClassScanner.loadSideEffectfulPlugins()
configParser.postPlugin()
startupListeners.forEach { it.startup() }
if (run) {
SystemManager.flag(if (settings?.isDevMode == true) SystemState.PRIVATE else SystemState.ACTIVE)

View file

@ -47,7 +47,8 @@ object TestUtils {
if(ServerConstants.DATA_PATH == null) {
ServerConfigParser.parse(this::class.java.getResource("test.conf"))
Cache.init(this::class.java.getResource("cache").path.toString())
ConfigParser().parseConfigs()
ConfigParser().prePlugin()
ConfigParser().postPlugin()
}
}