diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/capability/drive/DrivePool.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/capability/drive/DrivePool.kt index b22e8c299..368376a40 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/capability/drive/DrivePool.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/capability/drive/DrivePool.kt @@ -13,6 +13,7 @@ import net.minecraftforge.event.server.ServerAboutToStartEvent import net.minecraftforge.event.server.ServerStoppingEvent import net.minecraftforge.event.level.LevelEvent import org.apache.logging.log4j.LogManager +import ru.dbotthepony.mc.otm.NULLABLE_MINECRAFT_SERVER import ru.dbotthepony.mc.otm.SERVER_IS_LIVE import java.io.File import java.lang.ref.WeakReference @@ -106,7 +107,21 @@ object DrivePool { } private var backlog = ArrayList() - private var baseDirectory: File? = null + private var knownBaseDirectory: File? = null + + private val baseDirectory: File? get() { + val server = NULLABLE_MINECRAFT_SERVER ?: return null + + val baseDirectory = File(server.storageSource.worldDir.toFile(), DATA_PATH) + + if (knownBaseDirectory != baseDirectory) { + baseDirectory.mkdirs() + knownBaseDirectory = baseDirectory + } + + return baseDirectory + } + private var serverThread: Thread? = null private fun thread() { @@ -156,11 +171,6 @@ object DrivePool { } pool.clear() - - val server = event.server - baseDirectory = File(server.storageSource.worldDir.toFile(), DATA_PATH) - baseDirectory!!.mkdirs() - serverThread = Thread.currentThread() stopping = false @@ -310,4 +320,4 @@ private data class BacklogLine(val file: UUID, val tag: CompoundTag, val drive: return false } -} \ No newline at end of file +}