- /*
- * Minecraft Dev for IntelliJ
- *
- * https://minecraftdev.org
- *
- * Copyright (c) 2022 minecraft-dev
- *
- * MIT License
- */
-
- package com.demonwav.mcdev.platform.mcp
-
- import com.demonwav.mcdev.facet.MinecraftFacet
- import com.demonwav.mcdev.platform.AbstractModule
- import com.demonwav.mcdev.platform.PlatformType
- import com.demonwav.mcdev.platform.mcp.srg.SrgManager
- import com.demonwav.mcdev.translations.TranslationFileListener
- import com.intellij.openapi.vfs.VirtualFile
- import com.intellij.openapi.vfs.VirtualFileManager
- import com.intellij.psi.PsiClass
- import com.intellij.psi.PsiMethod
- import com.intellij.util.messages.MessageBusConnection
- import javax.swing.Icon
-
- class McpModule(facet: MinecraftFacet) : AbstractModule(facet) {
-
- private lateinit var connection: MessageBusConnection
-
- private val settings: McpModuleSettings = McpModuleSettings.getInstance(module)
- val accessTransformers = mutableSetOf<VirtualFile>()
-
- var srgManager: SrgManager? = null
- private set
-
- override fun init() {
- initSrg()
- connection = project.messageBus.connect()
- connection.subscribe(VirtualFileManager.VFS_CHANGES, TranslationFileListener)
- }
-
- private fun initSrg() {
- val settings = getSettings()
- val file = settings.mappingFile ?: return
- val srgType = settings.srgType ?: return
-
- srgManager = SrgManager.getInstance(file, srgType)
- srgManager?.parse()
- }
-
- override val moduleType = McpModuleType
- override val type = PlatformType.MCP
- override val icon: Icon? = null
-
- override fun writeErrorMessageForEventParameter(eventClass: PsiClass, method: PsiMethod) = ""
-
- fun getSettings() = settings.state
-
- fun updateSettings(data: McpModuleSettings.State) {
- this.settings.loadState(data)
- val mappingFile = data.mappingFile ?: return
- val srgType = data.srgType ?: return
-
- srgManager = SrgManager.getInstance(mappingFile, srgType)
- srgManager?.parse()
- }
-
- fun addAccessTransformerFile(file: VirtualFile) {
- accessTransformers.add(file)
- }
-
- override fun dispose() {
- super.dispose()
-
- connection.disconnect()
- accessTransformers.clear()
- srgManager = null
- }
- }
- /*
- * Minecraft Dev for IntelliJ
- *
- * https://minecraftdev.org
- *
- * Copyright (c) 2023 minecraft-dev
- *
- * MIT License
- */
-
- package com.demonwav.mcdev.platform.mcp
-
- import com.demonwav.mcdev.facet.MinecraftFacet
- import com.demonwav.mcdev.platform.AbstractModule
- import com.demonwav.mcdev.platform.PlatformType
- import com.demonwav.mcdev.platform.mcp.srg.SrgManager
- import com.demonwav.mcdev.translations.TranslationFileListener
- import com.intellij.openapi.vfs.VirtualFile
- import com.intellij.openapi.vfs.VirtualFileManager
- import com.intellij.psi.PsiClass
- import com.intellij.psi.PsiMethod
- import com.intellij.util.messages.MessageBusConnection
- import javax.swing.Icon
-
- class McpModule(facet: MinecraftFacet) : AbstractModule(facet) {
-
- private lateinit var connection: MessageBusConnection
-
- private val settings: McpModuleSettings = McpModuleSettings.getInstance(module)
- val accessTransformers = mutableSetOf<VirtualFile>()
-
- var srgManager: SrgManager? = null
- private set
-
- override fun init() {
- initSrg()
- connection = project.messageBus.connect()
- connection.subscribe(VirtualFileManager.VFS_CHANGES, TranslationFileListener)
- }
-
- private fun initSrg() {
- val settings = getSettings()
- val file = settings.mappingFile ?: return
- val srgType = settings.srgType ?: return
-
- srgManager = SrgManager.getInstance(file, srgType)
- srgManager?.parse()
- }
-
- override val moduleType = McpModuleType
- override val type = PlatformType.MCP
- override val icon: Icon? = null
-
- override fun writeErrorMessageForEventParameter(eventClass: PsiClass, method: PsiMethod) = ""
-
- fun getSettings() = settings.state
-
- fun updateSettings(data: McpModuleSettings.State) {
- this.settings.loadState(data)
- val mappingFile = data.mappingFile ?: return
- val srgType = data.srgType ?: return
-
- srgManager = SrgManager.getInstance(mappingFile, srgType)
- srgManager?.parse()
- }
-
- fun addAccessTransformerFile(file: VirtualFile) {
- accessTransformers.add(file)
- }
-
- override fun dispose() {
- super.dispose()
-
- connection.disconnect()
- accessTransformers.clear()
- srgManager = null
- }
- }