├── .editorconfig ├── .gitattributes ├── .github ├── ISSUE_TEMPLATE │ ├── bug_report.yaml │ ├── config.yml │ ├── feature_request.yaml │ └── project_wizard_outdated.yaml ├── stale.yml └── workflows │ ├── pr.yml │ ├── pr_check_target_branch.yml │ ├── publish.yml │ └── test.yml ├── .gitignore ├── .gitmodules ├── .idea ├── encodings.xml └── icon.png ├── build.gradle.kts ├── buildSrc ├── build.gradle.kts ├── settings.gradle.kts └── src │ └── main │ └── kotlin │ ├── JFlexExec.kt │ ├── ParserExec.kt │ ├── mcdev-core.gradle.kts │ ├── mcdev-parsing.gradle.kts │ ├── mcdev-publishing.gradle.kts │ └── util.kt ├── changelog.md ├── copyright.txt ├── externalAnnotations ├── com │ └── mojang │ │ └── blaze3d │ │ └── platform │ │ └── annotations.xml └── net │ ├── minecraft │ ├── client │ │ ├── annotations.xml │ │ ├── option │ │ │ └── annotations.xml │ │ ├── resource │ │ │ └── language │ │ │ │ └── annotations.xml │ │ └── resources │ │ │ ├── annotations.xml │ │ │ └── language │ │ │ └── annotations.xml │ ├── command │ │ └── annotations.xml │ ├── network │ │ └── chat │ │ │ └── annotations.xml │ ├── text │ │ └── annotations.xml │ └── util │ │ └── text │ │ └── annotations.xml │ └── minecraftforge │ └── server │ └── command │ └── annotations.xml ├── gradle.properties ├── gradle ├── libs.versions.toml └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── license.txt ├── mixin-test-data ├── build.gradle.kts └── src │ └── main │ └── java │ └── com │ └── demonwav │ └── mcdev │ └── mixintestdata │ ├── accessor │ ├── BaseMixin.java │ └── BaseMixinInterface.java │ ├── ambiguousReference │ └── MixedIn.java │ ├── invalidInjectorMethodSignatureFix │ ├── GenericOneParam.java │ ├── GenericTwoParams.java │ ├── MixedInGeneric.java │ ├── MixedInOuter.java │ └── MixedInSimple.java │ ├── invalidInjectorMethodSignatureInspection │ └── MixedInOuter.java │ ├── meExpression │ └── MEExpressionTestData.java │ ├── multipleTarget │ └── MixedIn.java │ ├── shadow │ └── MixinBase.java │ ├── superClass │ ├── DemonWav.java │ ├── Entity.java │ └── Minecrell.java │ └── unnecessaryQualifiedMemberReference │ └── MixedIn.java ├── obfuscation-explorer ├── .gitignore ├── build.gradle.kts ├── changelog.md ├── gradle.properties ├── icons │ ├── csrg.svg │ ├── enigma.svg │ ├── jam.svg │ ├── pluginIcon.svg │ ├── proguard.svg │ ├── srg.svg │ ├── tinyv1.svg │ ├── tinyv2.svg │ ├── tsrg.svg │ ├── tsrg2.svg │ └── xsrg.svg └── src │ ├── main │ ├── grammars │ │ ├── CSrgLexer.flex │ │ ├── CSrgParser.bnf │ │ ├── EnigmaLexer.flex │ │ ├── EnigmaParser.bnf │ │ ├── JamLexer.flex │ │ ├── JamParser.bnf │ │ ├── ProGuardLexer.flex │ │ ├── ProGuardParser.bnf │ │ ├── SrgLexer.flex │ │ ├── SrgParser.bnf │ │ ├── TSrg2Lexer.flex │ │ ├── TSrg2Parser.bnf │ │ ├── TSrgLexer.flex │ │ ├── TSrgParser.bnf │ │ ├── TinyV1Lexer.flex │ │ ├── TinyV1Parser.bnf │ │ ├── TinyV2Lexer.flex │ │ └── TinyV2Parser.bnf │ ├── kotlin │ │ ├── ObfIcons.kt │ │ ├── facet │ │ │ ├── ObfExFacet.kt │ │ │ ├── ObfExFacetConfiguration.kt │ │ │ ├── ObfExFacetType.kt │ │ │ └── config │ │ │ │ ├── MappingsTable.kt │ │ │ │ ├── MappingsTableCell.kt │ │ │ │ ├── MappingsTableRow.kt │ │ │ │ └── ObfExFacetEditorTab.kt │ │ ├── formats │ │ │ ├── MappingsFormatType.kt │ │ │ ├── MappingsFormatTypeManager.kt │ │ │ ├── csrg │ │ │ │ ├── CSrgMappingsFormatParser.kt │ │ │ │ ├── CSrgMappingsFormatType.kt │ │ │ │ └── lang │ │ │ │ │ ├── CSrgFile.kt │ │ │ │ │ ├── CSrgFileType.kt │ │ │ │ │ ├── CSrgLanguage.kt │ │ │ │ │ ├── CSrgParserDefinition.kt │ │ │ │ │ ├── colors │ │ │ │ │ ├── CSrgAnnotator.kt │ │ │ │ │ ├── CSrgSyntaxHighlighter.kt │ │ │ │ │ └── CSrgSyntaxHighlighterFactory.kt │ │ │ │ │ └── psi │ │ │ │ │ ├── CSrgElementType.kt │ │ │ │ │ ├── CSrgLexerAdapter.kt │ │ │ │ │ └── CSrgTokenType.kt │ │ │ ├── enigma │ │ │ │ ├── EnigmaLanguageCodeStyleSettingsProvider.kt │ │ │ │ ├── EnigmaMappingsFormatParser.kt │ │ │ │ ├── EnigmaMappingsFormatType.kt │ │ │ │ └── lang │ │ │ │ │ ├── EnigmaFile.kt │ │ │ │ │ ├── EnigmaFileType.kt │ │ │ │ │ ├── EnigmaLanguage.kt │ │ │ │ │ ├── EnigmaLayoutLexer.kt │ │ │ │ │ ├── EnigmaParserDefinition.kt │ │ │ │ │ ├── colors │ │ │ │ │ ├── EnigmaAnnotator.kt │ │ │ │ │ ├── EnigmaSyntaxHighlighter.kt │ │ │ │ │ └── EnigmaSyntaxHighlighterFactory.kt │ │ │ │ │ └── psi │ │ │ │ │ ├── EnigmaElementType.kt │ │ │ │ │ ├── EnigmaLexerAdapter.kt │ │ │ │ │ ├── EnigmaParserUtil.kt │ │ │ │ │ └── EnigmaTokenType.kt │ │ │ ├── jam │ │ │ │ ├── JamMappingsFormatParser.kt │ │ │ │ ├── JamMappingsFormatType.kt │ │ │ │ └── lang │ │ │ │ │ ├── JamFile.kt │ │ │ │ │ ├── JamFileType.kt │ │ │ │ │ ├── JamLanguage.kt │ │ │ │ │ ├── JamParserDefinition.kt │ │ │ │ │ ├── colors │ │ │ │ │ ├── JamAnnotator.kt │ │ │ │ │ ├── JamSyntaxHighlighter.kt │ │ │ │ │ └── JamSyntaxHighlighterFactory.kt │ │ │ │ │ └── psi │ │ │ │ │ ├── JamElementType.kt │ │ │ │ │ ├── JamLexerAdapter.kt │ │ │ │ │ └── JamTokenType.kt │ │ │ ├── proguard │ │ │ │ ├── ProGuardMappingsFormatParser.kt │ │ │ │ ├── ProGuardMappingsFormatType.kt │ │ │ │ └── lang │ │ │ │ │ ├── ProGuardFile.kt │ │ │ │ │ ├── ProGuardFileType.kt │ │ │ │ │ ├── ProGuardFileTypeDetector.kt │ │ │ │ │ ├── ProGuardLanguage.kt │ │ │ │ │ ├── ProGuardParserDefinition.kt │ │ │ │ │ ├── colors │ │ │ │ │ ├── ProGuardAnnotator.kt │ │ │ │ │ ├── ProGuardSyntaxHighlighter.kt │ │ │ │ │ └── ProGuardSyntaxHighlighterFactory.kt │ │ │ │ │ └── psi │ │ │ │ │ ├── ProGuardElementType.kt │ │ │ │ │ ├── ProGuardLexerAdapter.kt │ │ │ │ │ └── ProGuardTokenType.kt │ │ │ ├── srg │ │ │ │ ├── SrgMappingsFormatParser.kt │ │ │ │ ├── SrgMappingsFormatType.kt │ │ │ │ └── lang │ │ │ │ │ ├── SrgFile.kt │ │ │ │ │ ├── SrgFileType.kt │ │ │ │ │ ├── SrgLanguage.kt │ │ │ │ │ ├── SrgParserDefinition.kt │ │ │ │ │ ├── colors │ │ │ │ │ ├── SrgAnnotator.kt │ │ │ │ │ ├── SrgSyntaxHighlighter.kt │ │ │ │ │ └── SrgSyntaxHighlighterFactory.kt │ │ │ │ │ └── psi │ │ │ │ │ ├── SrgElementType.kt │ │ │ │ │ ├── SrgLexerAdapter.kt │ │ │ │ │ ├── SrgTokenType.kt │ │ │ │ │ └── mixins │ │ │ │ │ ├── SrgFieldMappingMixin.kt │ │ │ │ │ └── impl │ │ │ │ │ └── SrgFieldMappingImplMixin.kt │ │ │ ├── tinyv1 │ │ │ │ ├── TinyV1MappingsFormatParser.kt │ │ │ │ ├── TinyV1MappingsFormatType.kt │ │ │ │ └── lang │ │ │ │ │ ├── TinyFileTypeDetector.kt │ │ │ │ │ ├── TinyV1File.kt │ │ │ │ │ ├── TinyV1FileType.kt │ │ │ │ │ ├── TinyV1Language.kt │ │ │ │ │ ├── TinyV1ParserDefinition.kt │ │ │ │ │ ├── colors │ │ │ │ │ ├── TinyV1Annotator.kt │ │ │ │ │ ├── TinyV1RainbowVisitor.kt │ │ │ │ │ ├── TinyV1SyntaxHighlighter.kt │ │ │ │ │ └── TinyV1SyntaxHighlighterFactory.kt │ │ │ │ │ └── psi │ │ │ │ │ ├── TinyV1ElementType.kt │ │ │ │ │ ├── TinyV1LexerAdapter.kt │ │ │ │ │ └── TinyV1TokenType.kt │ │ │ ├── tinyv2 │ │ │ │ ├── TinyV2LanguageCodeStyleSettingsProvider.kt │ │ │ │ ├── TinyV2MappingsFormatParser.kt │ │ │ │ ├── TinyV2MappingsFormatType.kt │ │ │ │ └── lang │ │ │ │ │ ├── TinyV2File.kt │ │ │ │ │ ├── TinyV2FileType.kt │ │ │ │ │ ├── TinyV2Language.kt │ │ │ │ │ ├── TinyV2ParserDefinition.kt │ │ │ │ │ ├── colors │ │ │ │ │ ├── TinyV2Annotator.kt │ │ │ │ │ ├── TinyV2RainbowVisitor.kt │ │ │ │ │ ├── TinyV2SyntaxHighlighter.kt │ │ │ │ │ └── TinyV2SyntaxHighlighterFactory.kt │ │ │ │ │ └── psi │ │ │ │ │ ├── TinyV2ElementType.kt │ │ │ │ │ ├── TinyV2LexerAdapter.kt │ │ │ │ │ └── TinyV2TokenType.kt │ │ │ ├── tsrg │ │ │ │ ├── TSrgLanguageCodeStyleSettingsProvider.kt │ │ │ │ ├── TSrgMappingsFormatParser.kt │ │ │ │ ├── TSrgMappingsFormatType.kt │ │ │ │ └── lang │ │ │ │ │ ├── TSrgFile.kt │ │ │ │ │ ├── TSrgFileType.kt │ │ │ │ │ ├── TSrgFileTypeDetector.kt │ │ │ │ │ ├── TSrgLanguage.kt │ │ │ │ │ ├── TSrgParserDefinition.kt │ │ │ │ │ ├── colors │ │ │ │ │ ├── TSrgAnnotator.kt │ │ │ │ │ ├── TSrgSyntaxHighlighter.kt │ │ │ │ │ └── TSrgSyntaxHighlighterFactory.kt │ │ │ │ │ └── psi │ │ │ │ │ ├── TSrgElementType.kt │ │ │ │ │ ├── TSrgLexerAdapter.kt │ │ │ │ │ └── TSrgTokenType.kt │ │ │ ├── tsrg2 │ │ │ │ ├── TSrg2LanguageCodeStyleSettingsProvider.kt │ │ │ │ ├── TSrg2MappingsFormatParser.kt │ │ │ │ ├── TSrg2MappingsFormatType.kt │ │ │ │ └── lang │ │ │ │ │ ├── TSrg2File.kt │ │ │ │ │ ├── TSrg2FileType.kt │ │ │ │ │ ├── TSrg2Language.kt │ │ │ │ │ ├── TSrg2LayoutLexer.kt │ │ │ │ │ ├── TSrg2ParserDefinition.kt │ │ │ │ │ ├── colors │ │ │ │ │ ├── TSrg2Annotator.kt │ │ │ │ │ ├── TSrg2RainbowVisitor.kt │ │ │ │ │ ├── TSrg2SyntaxHighlighter.kt │ │ │ │ │ └── TSrg2SyntaxHighlighterFactory.kt │ │ │ │ │ └── psi │ │ │ │ │ ├── TSrg2ElementType.kt │ │ │ │ │ ├── TSrg2LexerAdapter.kt │ │ │ │ │ └── TSrg2TokenType.kt │ │ │ ├── util │ │ │ │ ├── NamespaceRainbowVisitor.kt │ │ │ │ ├── TabCodeStyleSettingsProvider.kt │ │ │ │ ├── sigws │ │ │ │ │ ├── SignificantWhitespaceLexer.kt │ │ │ │ │ └── SignificantWhitespaceParserUtil.kt │ │ │ │ └── util.kt │ │ │ └── xsrg │ │ │ │ ├── XSrgMappingsFormatParser.kt │ │ │ │ ├── XSrgMappingsFormatType.kt │ │ │ │ └── lang │ │ │ │ ├── XSrgFile.kt │ │ │ │ ├── XSrgFileType.kt │ │ │ │ ├── XSrgLanguage.kt │ │ │ │ └── XSrgParserDefinition.kt │ │ ├── lookup │ │ │ ├── HashLookupIndex.kt │ │ │ ├── HashLookupTable.kt │ │ │ ├── LookupIndex.kt │ │ │ └── MultiLookupTable.kt │ │ ├── mappings │ │ │ ├── MappingElement.kt │ │ │ ├── MappingLocation.kt │ │ │ ├── MappingNamespace.kt │ │ │ ├── MappingSet.kt │ │ │ ├── MappingSetBuilder.kt │ │ │ ├── MappingSetSource.kt │ │ │ ├── MappingsDefinition.kt │ │ │ ├── MappingsFormatParser.kt │ │ │ └── store │ │ │ │ ├── MappingLookupIndex.kt │ │ │ │ ├── MappingLookupTable.kt │ │ │ │ └── NamespaceLookup.kt │ │ ├── ref │ │ │ ├── ref.kt │ │ │ └── types.kt │ │ └── util.kt │ └── resources │ │ ├── META-INF │ │ ├── plugin.xml │ │ └── pluginIcon.svg │ │ └── fileTypes │ │ ├── csrg.svg │ │ ├── enigma.svg │ │ ├── jam.svg │ │ ├── obfex.svg │ │ ├── proguard.svg │ │ ├── srg.svg │ │ ├── tinyv1.svg │ │ ├── tinyv2.svg │ │ ├── tsrg.svg │ │ ├── tsrg2.svg │ │ └── xsrg.svg │ └── test │ ├── kotlin │ ├── TypeParsingTest.kt │ ├── formats │ │ ├── ParserFixture.kt │ │ ├── csrg │ │ │ └── CSrgMappingsFormatParserTest.kt │ │ ├── enigma │ │ │ ├── EnigmaLexerTest.kt │ │ │ └── EnigmaMappingsFormatParserTest.kt │ │ ├── jam │ │ │ └── JamMappingsFormatParserTest.kt │ │ ├── proguard │ │ │ └── ProGuardMappingsFormatParserTest.kt │ │ ├── srg │ │ │ ├── SrgLexerTest.kt │ │ │ └── SrgMappingsFormatParserTest.kt │ │ ├── tinyv1 │ │ │ └── TinyV1MappingsFormatParserTest.kt │ │ ├── tinyv2 │ │ │ ├── TinyV2LexerTest.kt │ │ │ └── TinyV2MappingsFormatParserTest.kt │ │ ├── tsrg │ │ │ └── TSrgMappingsFormatParserTest.kt │ │ ├── tsrg2 │ │ │ ├── TSrg2LexerTest.kt │ │ │ └── TSrg2MappingsFormatParserTest.kt │ │ └── xsrg │ │ │ └── XSrgMappingsFormatParserTest.kt │ └── test-util.kt │ └── resources │ └── io │ └── mcdev │ └── obfex │ └── formats │ ├── enigma │ └── lexer │ │ └── fixtures │ │ ├── test.mapping │ │ └── test.txt │ ├── srg │ └── lexer │ │ └── fixtures │ │ ├── test.srg │ │ └── test.txt │ ├── tinyv2 │ └── lexer │ │ └── fixtures │ │ ├── test.tiny │ │ └── test.txt │ └── tsrg2 │ └── lexer │ └── fixtures │ ├── test.tsrg2 │ └── test.txt ├── readme.md ├── settings.gradle.kts ├── src ├── gradle-tooling-extension │ ├── groovy │ │ └── com │ │ │ └── demonwav │ │ │ └── mcdev │ │ │ └── platform │ │ │ └── mcp │ │ │ └── gradle │ │ │ └── tooling │ │ │ ├── McpModelFG2BuilderImpl.groovy │ │ │ ├── McpModelFG2Impl.groovy │ │ │ ├── McpModelFG3BuilderImpl.groovy │ │ │ ├── McpModelFG3Impl.groovy │ │ │ ├── McpModelRFGBuilderImpl.groovy │ │ │ ├── McpModelRFGImpl.groovy │ │ │ ├── archloom │ │ │ ├── ArchitecturyModelBuilderImpl.groovy │ │ │ └── ArchitecturyModelImpl.groovy │ │ │ ├── fabricloom │ │ │ ├── FabricLoomModelBuilderImpl.groovy │ │ │ └── FabricLoomModelImpl.groovy │ │ │ ├── neogradle │ │ │ ├── NeoGradle7ModelBuilderImpl.groovy │ │ │ └── NeoGradle7ModelImpl.groovy │ │ │ ├── neomoddev │ │ │ ├── NeoModDevGradleModelBuilderImpl.groovy │ │ │ └── NeoModDevGradleModelImpl.groovy │ │ │ └── vanillagradle │ │ │ ├── VanillaGradleModelBuilderImpl.groovy │ │ │ └── VanillaGradleModelImpl.groovy │ ├── java │ │ └── com │ │ │ └── demonwav │ │ │ └── mcdev │ │ │ └── platform │ │ │ └── mcp │ │ │ └── gradle │ │ │ └── tooling │ │ │ ├── McpModel.java │ │ │ ├── McpModelFG2.java │ │ │ ├── McpModelFG3.java │ │ │ ├── McpModelNG7.java │ │ │ ├── McpModelNMD.java │ │ │ ├── McpModelRFG.java │ │ │ ├── archloom │ │ │ └── ArchitecturyModel.java │ │ │ ├── fabricloom │ │ │ └── FabricLoomModel.java │ │ │ └── vanillagradle │ │ │ └── VanillaGradleModel.java │ └── resources │ │ └── META-INF │ │ └── services │ │ └── org.jetbrains.plugins.gradle.tooling.ModelBuilderService ├── main │ ├── grammars │ │ ├── AtLexer.flex │ │ ├── AtParser.bnf │ │ ├── AwLexer.flex │ │ ├── AwParser.bnf │ │ ├── LangLexer.flex │ │ ├── LangParser.bnf │ │ ├── MEExpressionLexer.flex │ │ ├── MEExpressionParser.bnf │ │ ├── NbttLexer.flex │ │ ├── NbttParser.bnf │ │ └── TranslationTemplateLexer.flex │ ├── kotlin │ │ ├── MinecraftConfigurable.kt │ │ ├── MinecraftProjectConfigurable.kt │ │ ├── MinecraftProjectSettings.kt │ │ ├── MinecraftSettings.kt │ │ ├── TranslationSettings.kt │ │ ├── asset │ │ │ ├── Assets.kt │ │ │ ├── GeneralAssets.kt │ │ │ ├── MCDevBundle.kt │ │ │ ├── MixinAssets.kt │ │ │ └── PlatformAssets.kt │ │ ├── creator │ │ │ ├── JdkComboBoxWithPreference.kt │ │ │ ├── MinecraftModuleBuilder.kt │ │ │ ├── ParchmentStep.kt │ │ │ ├── ParchmentVersion.kt │ │ │ ├── PlatformVersion.kt │ │ │ ├── ProjectSetupFinalizerWizardStep.kt │ │ │ ├── buildsystem │ │ │ │ ├── AbstractBuildSystemStep.kt │ │ │ │ ├── BuildSystem.kt │ │ │ │ ├── BuildSystemPropertiesStep.kt │ │ │ │ ├── BuildSystemSupport.kt │ │ │ │ ├── GradleFile.kt │ │ │ │ ├── gradle-steps.kt │ │ │ │ └── maven-steps.kt │ │ │ ├── creator-utils.kt │ │ │ ├── custom │ │ │ │ ├── BuiltinValidations.kt │ │ │ │ ├── CreatorContext.kt │ │ │ │ ├── CreatorCredentials.kt │ │ │ │ ├── CreatorProgressIndicator.kt │ │ │ │ ├── CreatorTemplateProcessor.kt │ │ │ │ ├── CustomMinecraftModuleBuilder.kt │ │ │ │ ├── CustomPlatformStep.kt │ │ │ │ ├── MavenRepoTable.kt │ │ │ │ ├── ResourceBundleTranslator.kt │ │ │ │ ├── TemplateDescriptor.kt │ │ │ │ ├── TemplateEvaluator.kt │ │ │ │ ├── TemplateRepoTable.kt │ │ │ │ ├── TemplateResourceBundle.kt │ │ │ │ ├── TemplateService.kt │ │ │ │ ├── TemplateValidationReporter.kt │ │ │ │ ├── derivation │ │ │ │ │ ├── ExtractVersionMajorMinorPropertyDerivation.kt │ │ │ │ │ ├── PropertyDerivation.kt │ │ │ │ │ ├── RecommendJavaVersionForMcVersionPropertyDerivation.kt │ │ │ │ │ ├── ReplacePropertyDerivation.kt │ │ │ │ │ ├── SelectPropertyDerivation.kt │ │ │ │ │ └── SuggestClassNamePropertyDerivation.kt │ │ │ │ ├── finalizers │ │ │ │ │ ├── CreatorFinalizer.kt │ │ │ │ │ ├── GitAddAllFinalizer.kt │ │ │ │ │ ├── ImportGradleProjectFinalizer.kt │ │ │ │ │ ├── ImportMavenProjectFinalizer.kt │ │ │ │ │ └── RunGradleTasksFinalizer.kt │ │ │ │ ├── model │ │ │ │ │ ├── ArchitecturyVersionsModel.kt │ │ │ │ │ ├── BuildSystemCoordinates.kt │ │ │ │ │ ├── ClassFqn.kt │ │ │ │ │ ├── CreatorJdk.kt │ │ │ │ │ ├── FabricVersionsModel.kt │ │ │ │ │ ├── ForgeVersions.kt │ │ │ │ │ ├── HasMinecraftVersion.kt │ │ │ │ │ ├── LicenseData.kt │ │ │ │ │ ├── NeoForgeVersions.kt │ │ │ │ │ ├── ParchmentVersions.kt │ │ │ │ │ ├── StringList.kt │ │ │ │ │ └── TemplateApi.kt │ │ │ │ ├── providers │ │ │ │ │ ├── BuiltinTemplateProvider.kt │ │ │ │ │ ├── EmptyLoadedTemplate.kt │ │ │ │ │ ├── LoadedTemplate.kt │ │ │ │ │ ├── LocalTemplateProvider.kt │ │ │ │ │ ├── RemoteTemplateProvider.kt │ │ │ │ │ ├── TemplateProvider.kt │ │ │ │ │ ├── VfsLoadedTemplate.kt │ │ │ │ │ └── ZipTemplateProvider.kt │ │ │ │ └── types │ │ │ │ │ ├── ArchitecturyVersionsCreatorProperty.kt │ │ │ │ │ ├── BooleanCreatorProperty.kt │ │ │ │ │ ├── BuildSystemCoordinatesCreatorProperty.kt │ │ │ │ │ ├── ClassFqnCreatorProperty.kt │ │ │ │ │ ├── CreatorProperty.kt │ │ │ │ │ ├── CreatorPropertyFactory.kt │ │ │ │ │ ├── ExternalCreatorProperty.kt │ │ │ │ │ ├── FabricVersionsCreatorProperty.kt │ │ │ │ │ ├── ForgeVersionsCreatorProperty.kt │ │ │ │ │ ├── InlineStringListCreatorProperty.kt │ │ │ │ │ ├── IntegerCreatorProperty.kt │ │ │ │ │ ├── JdkCreatorProperty.kt │ │ │ │ │ ├── LicenseCreatorProperty.kt │ │ │ │ │ ├── MavenArtifactVersionCreatorProperty.kt │ │ │ │ │ ├── NeoForgeVersionsCreatorProperty.kt │ │ │ │ │ ├── ParchmentCreatorProperty.kt │ │ │ │ │ ├── SemanticVersionCreatorProperty.kt │ │ │ │ │ ├── SimpleCreatorProperty.kt │ │ │ │ │ └── StringCreatorProperty.kt │ │ │ ├── field-validation.kt │ │ │ ├── maven-repo-utils.kt │ │ │ ├── platformtype │ │ │ │ ├── ModPlatformStep.kt │ │ │ │ ├── PlatformTypeStep.kt │ │ │ │ └── PluginPlatformStep.kt │ │ │ └── step │ │ │ │ ├── AbstractCollapsibleStep.kt │ │ │ │ ├── AbstractLatentStep.kt │ │ │ │ ├── AbstractLongRunningAssetsStep.kt │ │ │ │ ├── AbstractLongRunningStep.kt │ │ │ │ ├── AbstractReformatFilesStep.kt │ │ │ │ ├── AbstractSelectVersionStep.kt │ │ │ │ ├── AbstractVersionChainStep.kt │ │ │ │ ├── FixedAssetsNewProjectWizardStep.kt │ │ │ │ ├── LicenseStep.kt │ │ │ │ ├── MainClassStep.kt │ │ │ │ ├── McVersionStep.kt │ │ │ │ ├── ModIdStep.kt │ │ │ │ ├── ModNameStep.kt │ │ │ │ ├── NewProjectWizardChainStep.kt │ │ │ │ ├── OptionalSteps.kt │ │ │ │ ├── UseMixinsStep.kt │ │ │ │ └── WaitForSmartModeStep.kt │ │ ├── errorreporter │ │ │ ├── AnonymousFeedback.kt │ │ │ ├── AnonymousFeedbackTask.kt │ │ │ ├── ErrorData.kt │ │ │ ├── ErrorReporter.kt │ │ │ ├── LinkedStackTraceElement.kt │ │ │ └── package-info.kt │ │ ├── facet │ │ │ ├── LibraryPresentationProviders.kt │ │ │ ├── MinecraftFacet.kt │ │ │ ├── MinecraftFacetConfiguration.kt │ │ │ ├── MinecraftFacetDetector.kt │ │ │ ├── MinecraftFacetEditorTabV2.kt │ │ │ ├── MinecraftFacetType.kt │ │ │ ├── MinecraftLibraryKinds.kt │ │ │ └── ProjectReimporter.kt │ │ ├── insight │ │ │ ├── ColorAnnotator.kt │ │ │ ├── ColorLineMarkerProvider.kt │ │ │ ├── ColorPicker.kt │ │ │ ├── ColorUtil.kt │ │ │ ├── InsightUtil.kt │ │ │ ├── ListenerEventAnnotator.kt │ │ │ ├── ListenerLineMarkerProvider.kt │ │ │ ├── PluginLineMarkerProvider.kt │ │ │ └── generation │ │ │ │ ├── EventGenHelper.kt │ │ │ │ ├── EventListenerGenerationSupport.kt │ │ │ │ ├── GenerateEventListenerAction.kt │ │ │ │ ├── GenerateEventListenerHandler.kt │ │ │ │ ├── GenerationData.kt │ │ │ │ ├── MethodRenderer.kt │ │ │ │ ├── MethodRendererBasedEventListenerGenerationSupport.kt │ │ │ │ ├── MinecraftClassCreateAction.kt │ │ │ │ └── ui │ │ │ │ ├── EventGenerationDialog.kt │ │ │ │ ├── EventGenerationPanel.kt │ │ │ │ └── EventListenerWizard.kt │ │ ├── inspection │ │ │ ├── IsCancelled.kt │ │ │ ├── IsCancelledInspection.kt │ │ │ ├── PlatformAnnotationEntryPoint.kt │ │ │ ├── StaticListenerInspectionSuppressor.kt │ │ │ └── WrongEntityDataParameterClassInspection.kt │ │ ├── nbt │ │ │ ├── MalformedNbtFileException.kt │ │ │ ├── Nbt.kt │ │ │ ├── NbtVirtualFile.kt │ │ │ ├── editor │ │ │ │ ├── CompressionSelection.kt │ │ │ │ ├── NbtFileEditorProvider.kt │ │ │ │ └── NbtToolbar.kt │ │ │ ├── filetype │ │ │ │ ├── NbtFileType.kt │ │ │ │ └── NbtFileTypeDetector.kt │ │ │ ├── lang │ │ │ │ ├── NbttBraceMatcher.kt │ │ │ │ ├── NbttFile.kt │ │ │ │ ├── NbttFileType.kt │ │ │ │ ├── NbttFileViewProvider.kt │ │ │ │ ├── NbttLanguage.kt │ │ │ │ ├── NbttLexerAdapter.kt │ │ │ │ ├── NbttParserDefinition.kt │ │ │ │ ├── NbttQuoteHandler.kt │ │ │ │ ├── colors │ │ │ │ │ ├── NbttAnnotator.kt │ │ │ │ │ ├── NbttColorSettingsPage.kt │ │ │ │ │ ├── NbttSyntaxHighlighter.kt │ │ │ │ │ └── NbttSyntaxHighlighterFactory.kt │ │ │ │ ├── format │ │ │ │ │ ├── NbttBlock.kt │ │ │ │ │ ├── NbttCodeStyleSettings.kt │ │ │ │ │ ├── NbttCodeStyleSettingsProvider.kt │ │ │ │ │ ├── NbttFoldingBuilder.kt │ │ │ │ │ ├── NbttFormattingModelBuilder.kt │ │ │ │ │ ├── NbttLanguageCodeStyleSettingsProvider.kt │ │ │ │ │ └── NbttParameterNameHints.kt │ │ │ │ └── psi │ │ │ │ │ ├── NbttElement.kt │ │ │ │ │ ├── NbttElementType.kt │ │ │ │ │ ├── NbttMixinUtil.kt │ │ │ │ │ ├── NbttTokenType.kt │ │ │ │ │ └── mixins │ │ │ │ │ ├── NbttByteArrayMixin.kt │ │ │ │ │ ├── NbttByteMixin.kt │ │ │ │ │ ├── NbttCompoundMixin.kt │ │ │ │ │ ├── NbttDoubleMixin.kt │ │ │ │ │ ├── NbttFloatMixin.kt │ │ │ │ │ ├── NbttIntArrayMixin.kt │ │ │ │ │ ├── NbttIntMixin.kt │ │ │ │ │ ├── NbttListMixin.kt │ │ │ │ │ ├── NbttLongArrayMixin.kt │ │ │ │ │ ├── NbttLongMixin.kt │ │ │ │ │ ├── NbttRootCompoundMixin.kt │ │ │ │ │ ├── NbttShortMixin.kt │ │ │ │ │ ├── NbttStringMixin.kt │ │ │ │ │ ├── NbttTagMixin.kt │ │ │ │ │ ├── NbttTagNameMixin.kt │ │ │ │ │ └── impl │ │ │ │ │ ├── NbttByteArrayImplMixin.kt │ │ │ │ │ ├── NbttByteImplMixin.kt │ │ │ │ │ ├── NbttCompoundImplMixin.kt │ │ │ │ │ ├── NbttDoubleImplMixin.kt │ │ │ │ │ ├── NbttFloatImplMixin.kt │ │ │ │ │ ├── NbttIntArrayImplMixin.kt │ │ │ │ │ ├── NbttIntImplMixin.kt │ │ │ │ │ ├── NbttListImplMixin.kt │ │ │ │ │ ├── NbttLongArrayImplMixin.kt │ │ │ │ │ ├── NbttLongImplMixin.kt │ │ │ │ │ ├── NbttRootCompoundImplMixin.kt │ │ │ │ │ ├── NbttShortImplMixin.kt │ │ │ │ │ ├── NbttStringImplMixin.kt │ │ │ │ │ ├── NbttTagImplMixin.kt │ │ │ │ │ └── NbttTagNameImplMixin.kt │ │ │ └── tags │ │ │ │ ├── NbtTag.kt │ │ │ │ ├── NbtTypeId.kt │ │ │ │ ├── NbtValueTag.kt │ │ │ │ ├── TagByte.kt │ │ │ │ ├── TagByteArray.kt │ │ │ │ ├── TagCompound.kt │ │ │ │ ├── TagDouble.kt │ │ │ │ ├── TagEnd.kt │ │ │ │ ├── TagFloat.kt │ │ │ │ ├── TagInt.kt │ │ │ │ ├── TagIntArray.kt │ │ │ │ ├── TagList.kt │ │ │ │ ├── TagLong.kt │ │ │ │ ├── TagLongArray.kt │ │ │ │ ├── TagShort.kt │ │ │ │ └── TagString.kt │ │ ├── platform │ │ │ ├── AbstractModule.kt │ │ │ ├── AbstractModuleType.kt │ │ │ ├── BaseTemplate.kt │ │ │ ├── MinecraftProjectViewNodeDecorator.kt │ │ │ ├── PlatformType.kt │ │ │ ├── adventure │ │ │ │ ├── AdventureConstants.kt │ │ │ │ ├── AdventureModule.kt │ │ │ │ ├── AdventureModuleType.kt │ │ │ │ ├── color │ │ │ │ │ ├── AdventureColorLineMarkerProvider.kt │ │ │ │ │ └── AdventureColorUtil.kt │ │ │ │ └── framework │ │ │ │ │ ├── AdventureLibraryKind.kt │ │ │ │ │ └── AdventurePresentationProvider.kt │ │ │ ├── architectury │ │ │ │ ├── ArchitecturyModule.kt │ │ │ │ ├── ArchitecturyModuleType.kt │ │ │ │ ├── ArchitecturyVersion.kt │ │ │ │ ├── creator │ │ │ │ │ ├── asset-steps.kt │ │ │ │ │ ├── gradle-steps.kt │ │ │ │ │ └── ui-steps.kt │ │ │ │ └── framework │ │ │ │ │ ├── ArchitecturyGradleData.kt │ │ │ │ │ ├── ArchitecturyLibraryKind.kt │ │ │ │ │ ├── ArchitecturyPresentationProvider.kt │ │ │ │ │ └── ArchitecturyProjectResolverExtension.kt │ │ │ ├── bukkit │ │ │ │ ├── BukkitEventListenerGenerationSupport.kt │ │ │ │ ├── BukkitFileIconProvider.kt │ │ │ │ ├── BukkitLikeConfiguration.kt │ │ │ │ ├── BukkitModule.kt │ │ │ │ ├── BukkitModuleType.kt │ │ │ │ ├── PaperModuleType.kt │ │ │ │ ├── SpigotModuleType.kt │ │ │ │ ├── creator │ │ │ │ │ ├── LoadOrder.kt │ │ │ │ │ ├── asset-steps.kt │ │ │ │ │ ├── bukkit-platforms.kt │ │ │ │ │ ├── gradle-steps.kt │ │ │ │ │ ├── maven-steps.kt │ │ │ │ │ └── ui-steps.kt │ │ │ │ ├── framework │ │ │ │ │ ├── BukkitLibraryKind.kt │ │ │ │ │ └── BukkitPresentationProviders.kt │ │ │ │ ├── generation │ │ │ │ │ ├── BukkitEventGenerationPanel.kt │ │ │ │ │ └── BukkitGenerationData.kt │ │ │ │ ├── inspection │ │ │ │ │ └── BukkitListenerImplementedInspection.kt │ │ │ │ └── util │ │ │ │ │ ├── BukkitConstants.kt │ │ │ │ │ └── PaperConstants.kt │ │ │ ├── bungeecord │ │ │ │ ├── BungeeCordEventListenerGenerationSupport.kt │ │ │ │ ├── BungeeCordFileIconProvider.kt │ │ │ │ ├── BungeeCordModule.kt │ │ │ │ ├── BungeeCordModuleType.kt │ │ │ │ ├── WaterfallModuleType.kt │ │ │ │ ├── creator │ │ │ │ │ ├── asset-steps.kt │ │ │ │ │ ├── bungee-platforms.kt │ │ │ │ │ ├── gradle-steps.kt │ │ │ │ │ ├── maven-steps.kt │ │ │ │ │ └── ui-steps.kt │ │ │ │ ├── framework │ │ │ │ │ ├── BungeeCordLibraryKind.kt │ │ │ │ │ └── BungeeCordPresentationProvider.kt │ │ │ │ ├── generation │ │ │ │ │ ├── BungeeCordEventGenerationPanel.kt │ │ │ │ │ └── BungeeCordGenerationData.kt │ │ │ │ ├── inspection │ │ │ │ │ └── BungeeCordListenerImplementedInspection.kt │ │ │ │ └── util │ │ │ │ │ └── BungeeCordConstants.kt │ │ │ ├── fabric │ │ │ │ ├── EntryPoint.kt │ │ │ │ ├── FabricFileIconProvider.kt │ │ │ │ ├── FabricModule.kt │ │ │ │ ├── FabricModuleType.kt │ │ │ │ ├── creator │ │ │ │ │ ├── FabricMcVersion.kt │ │ │ │ │ ├── asset-steps.kt │ │ │ │ │ ├── gradle-steps.kt │ │ │ │ │ └── ui-steps.kt │ │ │ │ ├── framework │ │ │ │ │ ├── FabricLibraryKind.kt │ │ │ │ │ └── FabricPresentationProvider.kt │ │ │ │ ├── inspection │ │ │ │ │ ├── FabricEntrypointsInspection.kt │ │ │ │ │ └── UnresolvedReferenceInspection.kt │ │ │ │ ├── reference │ │ │ │ │ ├── EntryPointReference.kt │ │ │ │ │ ├── FabricClientUseScopeEnlarger.kt │ │ │ │ │ ├── FabricModJsonResolveScopeEnlarger.kt │ │ │ │ │ ├── FabricReferenceContributor.kt │ │ │ │ │ ├── LicenseReference.kt │ │ │ │ │ └── ResourceFileReference.kt │ │ │ │ └── util │ │ │ │ │ ├── FabricApiVersions.kt │ │ │ │ │ ├── FabricConstants.kt │ │ │ │ │ └── FabricVersions.kt │ │ │ ├── forge │ │ │ │ ├── ForgeEventListenerGenerationSupport.kt │ │ │ │ ├── ForgeFileIconProvider.kt │ │ │ │ ├── ForgeModule.kt │ │ │ │ ├── ForgeModuleType.kt │ │ │ │ ├── creator │ │ │ │ │ ├── asset-steps.kt │ │ │ │ │ ├── gradle-steps.kt │ │ │ │ │ └── ui-steps.kt │ │ │ │ ├── framework │ │ │ │ │ ├── ForgeLibraryKind.kt │ │ │ │ │ └── ForgePresentationProvider.kt │ │ │ │ ├── gradle │ │ │ │ │ └── ForgeRunConfigDataService.kt │ │ │ │ ├── insight │ │ │ │ │ └── ForgeImplicitUsageProvider.kt │ │ │ │ ├── inspections │ │ │ │ │ ├── sideonly │ │ │ │ │ │ ├── FieldDeclarationSideOnlyInspection.kt │ │ │ │ │ │ ├── LocalVariableDeclarationSideOnlyInspection.kt │ │ │ │ │ │ ├── MethodCallSideOnlyInspection.kt │ │ │ │ │ │ ├── MethodSideOnlyInspection.kt │ │ │ │ │ │ ├── NestedClassSideOnlyInspection.kt │ │ │ │ │ │ ├── NewExpressionSideOnlyInspection.kt │ │ │ │ │ │ ├── RemoveAnnotationInspectionGadgetsFix.kt │ │ │ │ │ │ ├── Side.kt │ │ │ │ │ │ ├── SideAnnotation.kt │ │ │ │ │ │ ├── SideOnlyUtil.kt │ │ │ │ │ │ ├── SidedProxyAnnotator.kt │ │ │ │ │ │ └── VariableUseSideOnlyInspection.kt │ │ │ │ │ └── simpleimpl │ │ │ │ │ │ ├── AddEmptyConstructorInspectionGadgetsFix.kt │ │ │ │ │ │ ├── MissingMessageConstructorInspection.kt │ │ │ │ │ │ └── SimpleImplUtil.kt │ │ │ │ ├── reflection │ │ │ │ │ └── reference │ │ │ │ │ │ ├── ReflectedFieldReference.kt │ │ │ │ │ │ ├── ReflectedMemberReferenceBasePoly.kt │ │ │ │ │ │ ├── ReflectedMethodReference.kt │ │ │ │ │ │ └── ReflectionReferenceContributor.kt │ │ │ │ ├── util │ │ │ │ │ ├── ForgeConstants.kt │ │ │ │ │ ├── ForgePackAdditionalData.kt │ │ │ │ │ └── ForgePackDescriptor.kt │ │ │ │ └── version │ │ │ │ │ └── ForgeVersion.kt │ │ │ ├── mcp │ │ │ │ ├── McpModule.kt │ │ │ │ ├── McpModuleSettings.kt │ │ │ │ ├── McpModuleType.kt │ │ │ │ ├── actions │ │ │ │ │ ├── CopyAtAction.kt │ │ │ │ │ ├── CopyAwAction.kt │ │ │ │ │ ├── CopyCoremodTargetAction.kt │ │ │ │ │ ├── FindSrgMappingAction.kt │ │ │ │ │ ├── GotoAtEntryAction.kt │ │ │ │ │ ├── LookupMemberAction.kt │ │ │ │ │ └── SrgActionBase.kt │ │ │ │ ├── at │ │ │ │ │ ├── AtAnnotator.kt │ │ │ │ │ ├── AtColorSettingsPage.kt │ │ │ │ │ ├── AtCommenter.kt │ │ │ │ │ ├── AtElementFactory.kt │ │ │ │ │ ├── AtFile.kt │ │ │ │ │ ├── AtFileType.kt │ │ │ │ │ ├── AtGotoDeclarationHandler.kt │ │ │ │ │ ├── AtLanguage.kt │ │ │ │ │ ├── AtLexerAdapter.kt │ │ │ │ │ ├── AtMemberReference.kt │ │ │ │ │ ├── AtParserDefinition.kt │ │ │ │ │ ├── AtSyntaxHighlighter.kt │ │ │ │ │ ├── AtSyntaxHighlighterFactory.kt │ │ │ │ │ ├── AtUsageInspection.kt │ │ │ │ │ ├── completion │ │ │ │ │ │ ├── AtCompletionContributor.kt │ │ │ │ │ │ ├── AtTypedHandlerDelegate.kt │ │ │ │ │ │ ├── KindPrefixMatcher.kt │ │ │ │ │ │ └── SrgPrefixMatcher.kt │ │ │ │ │ └── psi │ │ │ │ │ │ ├── AtElement.kt │ │ │ │ │ │ ├── AtElementType.kt │ │ │ │ │ │ ├── AtMixinUtil.kt │ │ │ │ │ │ ├── AtTokenType.kt │ │ │ │ │ │ └── mixins │ │ │ │ │ │ ├── AtArgumentMixin.kt │ │ │ │ │ │ ├── AtClassNameMixin.kt │ │ │ │ │ │ ├── AtEntryMixin.kt │ │ │ │ │ │ ├── AtFieldNameMixin.kt │ │ │ │ │ │ ├── AtFuncNameMixin.kt │ │ │ │ │ │ ├── AtFunctionMixin.kt │ │ │ │ │ │ ├── AtKeywordMixin.kt │ │ │ │ │ │ ├── AtReturnValueMixin.kt │ │ │ │ │ │ └── impl │ │ │ │ │ │ ├── AtArgumentImplMixin.kt │ │ │ │ │ │ ├── AtClassNameImplMixin.kt │ │ │ │ │ │ ├── AtEntryImplMixin.kt │ │ │ │ │ │ ├── AtFieldNameImplMixin.kt │ │ │ │ │ │ ├── AtFuncNameImplMixin.kt │ │ │ │ │ │ ├── AtFunctionImplMixin.kt │ │ │ │ │ │ ├── AtKeywordImplMixin.kt │ │ │ │ │ │ └── AtReturnValueImplMixin.kt │ │ │ │ ├── aw │ │ │ │ │ ├── AwAnnotator.kt │ │ │ │ │ ├── AwColorSettingsPage.kt │ │ │ │ │ ├── AwCommenter.kt │ │ │ │ │ ├── AwCompletionContributor.kt │ │ │ │ │ ├── AwFile.kt │ │ │ │ │ ├── AwFileType.kt │ │ │ │ │ ├── AwLanguage.kt │ │ │ │ │ ├── AwLexerAdapter.kt │ │ │ │ │ ├── AwParserDefinition.kt │ │ │ │ │ ├── AwSyntaxHighlighter.kt │ │ │ │ │ ├── AwSyntaxHighlighterFactory.kt │ │ │ │ │ ├── fixes │ │ │ │ │ │ └── CopyAwAccessibleEntryFix.kt │ │ │ │ │ ├── inspections │ │ │ │ │ │ └── DuplicateAwEntryInspection.kt │ │ │ │ │ └── psi │ │ │ │ │ │ ├── AwElement.kt │ │ │ │ │ │ ├── AwElementType.kt │ │ │ │ │ │ ├── AwTokenType.kt │ │ │ │ │ │ └── mixins │ │ │ │ │ │ ├── AwClassEntryMixin.kt │ │ │ │ │ │ ├── AwClassNameMixin.kt │ │ │ │ │ │ ├── AwDescElementMixin.kt │ │ │ │ │ │ ├── AwEntryMixin.kt │ │ │ │ │ │ ├── AwFieldEntryMixin.kt │ │ │ │ │ │ ├── AwHeaderMixin.kt │ │ │ │ │ │ ├── AwMemberNameMixin.kt │ │ │ │ │ │ ├── AwMethodEntryMixin.kt │ │ │ │ │ │ └── impl │ │ │ │ │ │ ├── AwClassEntryImplMixin.kt │ │ │ │ │ │ ├── AwClassNameImplMixin.kt │ │ │ │ │ │ ├── AwDescElementImplMixin.kt │ │ │ │ │ │ ├── AwEntryImplMixin.kt │ │ │ │ │ │ ├── AwFieldEntryImplMixin.kt │ │ │ │ │ │ ├── AwHeaderImplMixin.kt │ │ │ │ │ │ ├── AwMemberNameImplMixin.kt │ │ │ │ │ │ └── AwMethodEntryImplMixin.kt │ │ │ │ ├── debug │ │ │ │ │ ├── McpRunConfigurationExtension.kt │ │ │ │ │ └── UngrabMouseDebugSessionListener.kt │ │ │ │ ├── fabricloom │ │ │ │ │ ├── FabricLoomData.kt │ │ │ │ │ ├── FabricLoomDataService.kt │ │ │ │ │ ├── FabricLoomDecompileSourceProvider.kt │ │ │ │ │ ├── FabricLoomProjectResolverExtension.kt │ │ │ │ │ └── TinyUnscrambler.kt │ │ │ │ ├── framework │ │ │ │ │ ├── McpLibraryKind.kt │ │ │ │ │ └── McpPresentationProvider.kt │ │ │ │ ├── gradle │ │ │ │ │ ├── McpDataService.kt │ │ │ │ │ ├── McpModelData.kt │ │ │ │ │ ├── McpProjectResolverExtension.kt │ │ │ │ │ └── datahandler │ │ │ │ │ │ ├── McpModelDataHandler.kt │ │ │ │ │ │ ├── McpModelFG2Handler.kt │ │ │ │ │ │ ├── McpModelFG3Handler.kt │ │ │ │ │ │ ├── McpModelNG7Handler.kt │ │ │ │ │ │ ├── McpModelNMDHandler.kt │ │ │ │ │ │ └── McpModelRFGHandler.kt │ │ │ │ ├── inspections │ │ │ │ │ └── StackEmptyInspection.kt │ │ │ │ ├── mappings │ │ │ │ │ ├── HardcodedYarnToMojmap.kt │ │ │ │ │ ├── HasCustomNamedMappings.kt │ │ │ │ │ ├── Mappings.kt │ │ │ │ │ └── MappingsManager.kt │ │ │ │ ├── navigation │ │ │ │ │ └── SrgMemberChooseByNameContributor.kt │ │ │ │ ├── srg │ │ │ │ │ ├── McpUnscrambler.kt │ │ │ │ │ ├── SrgMemberReference.kt │ │ │ │ │ ├── SrgParser.kt │ │ │ │ │ ├── SrgType.kt │ │ │ │ │ ├── StandardSrgParser.kt │ │ │ │ │ └── TinySrgParser.kt │ │ │ │ ├── util │ │ │ │ │ └── McpConstants.kt │ │ │ │ └── vanillagradle │ │ │ │ │ ├── VanillaGradleData.kt │ │ │ │ │ ├── VanillaGradleDataService.kt │ │ │ │ │ ├── VanillaGradleDecompileSourceProvider.kt │ │ │ │ │ └── VanillaGradleProjectResolverExtension.kt │ │ │ ├── mixin │ │ │ │ ├── MixinCustomJavaDocTagProvider.kt │ │ │ │ ├── MixinModule.kt │ │ │ │ ├── MixinModuleType.kt │ │ │ │ ├── action │ │ │ │ │ ├── CopyMixinTargetReferenceAction.kt │ │ │ │ │ ├── FindMixinsAction.kt │ │ │ │ │ ├── GenerateAccessorAction.kt │ │ │ │ │ ├── GenerateAccessorHandler.kt │ │ │ │ │ ├── GenerateOverwriteAction.kt │ │ │ │ │ ├── GenerateShadowAction.kt │ │ │ │ │ ├── GenerateSoftImplementsAction.kt │ │ │ │ │ ├── MixinCodeInsightAction.kt │ │ │ │ │ └── ShadowReferences.kt │ │ │ │ ├── completion │ │ │ │ │ ├── AtArgsCompletionContributor.kt │ │ │ │ │ ├── MixinCompletionConfidence.kt │ │ │ │ │ ├── MixinCompletionContributor.kt │ │ │ │ │ ├── MixinCompletionWeigher.kt │ │ │ │ │ └── MixinLookupItem.kt │ │ │ │ ├── config │ │ │ │ │ ├── MixinConfig.kt │ │ │ │ │ ├── MixinConfigFileType.kt │ │ │ │ │ ├── MixinConfigImportOptimizer.kt │ │ │ │ │ ├── inspection │ │ │ │ │ │ ├── ConfigPropertyInspection.kt │ │ │ │ │ │ ├── ConfigValueInspection.kt │ │ │ │ │ │ ├── MixinConfigInspection.kt │ │ │ │ │ │ ├── MixinPluginInspection.kt │ │ │ │ │ │ ├── MixinRegistrationInspection.kt │ │ │ │ │ │ └── UnresolvedReferenceInspection.kt │ │ │ │ │ └── reference │ │ │ │ │ │ ├── CompatibilityLevel.kt │ │ │ │ │ │ ├── ConfigProperty.kt │ │ │ │ │ │ ├── MixinClass.kt │ │ │ │ │ │ ├── MixinConfigReferenceContributor.kt │ │ │ │ │ │ ├── MixinPackage.kt │ │ │ │ │ │ └── MixinPlugin.kt │ │ │ │ ├── debug │ │ │ │ │ ├── MixinDebuggerClassFilterProvider.kt │ │ │ │ │ ├── MixinPositionManager.kt │ │ │ │ │ └── MixinPositionManagerFactory.kt │ │ │ │ ├── expression │ │ │ │ │ ├── MEDefinitionFoldingBuilder.kt │ │ │ │ │ ├── MEExpressionAnnotator.kt │ │ │ │ │ ├── MEExpressionBraceMatcher.kt │ │ │ │ │ ├── MEExpressionColorSettingsPage.kt │ │ │ │ │ ├── MEExpressionCompletionContributor.kt │ │ │ │ │ ├── MEExpressionCompletionUtil.kt │ │ │ │ │ ├── MEExpressionElementFactory.kt │ │ │ │ │ ├── MEExpressionFileType.kt │ │ │ │ │ ├── MEExpressionInjector.kt │ │ │ │ │ ├── MEExpressionLanguage.kt │ │ │ │ │ ├── MEExpressionLexerAdapter.kt │ │ │ │ │ ├── MEExpressionMatchUtil.kt │ │ │ │ │ ├── MEExpressionParserDefinition.kt │ │ │ │ │ ├── MEExpressionQuoteHandler.kt │ │ │ │ │ ├── MEExpressionRefactoringSupport.kt │ │ │ │ │ ├── MEExpressionService.kt │ │ │ │ │ ├── MEExpressionSyntaxHighlighter.kt │ │ │ │ │ ├── MEExpressionTypedHandlerDelegate.kt │ │ │ │ │ ├── MEFlowContext.kt │ │ │ │ │ ├── MESourceMatchContext.kt │ │ │ │ │ ├── psi │ │ │ │ │ │ ├── MEExpressionElementType.kt │ │ │ │ │ │ ├── MEExpressionFile.kt │ │ │ │ │ │ ├── MEExpressionParserUtil.kt │ │ │ │ │ │ ├── MEExpressionTokenSets.kt │ │ │ │ │ │ ├── MEExpressionTokenType.kt │ │ │ │ │ │ ├── MEMatchableElement.kt │ │ │ │ │ │ ├── MENameElementManipulator.kt │ │ │ │ │ │ ├── MEPsiUtil.kt │ │ │ │ │ │ ├── MERecursiveWalkingVisitor.kt │ │ │ │ │ │ ├── METypeUtil.kt │ │ │ │ │ │ └── mixins │ │ │ │ │ │ │ ├── MEArgumentsMixin.kt │ │ │ │ │ │ │ ├── MEArrayAccessExpressionMixin.kt │ │ │ │ │ │ │ ├── MEBinaryExpressionMixin.kt │ │ │ │ │ │ │ ├── MECastExpressionMixin.kt │ │ │ │ │ │ │ ├── MEDeclarationItemMixin.kt │ │ │ │ │ │ │ ├── MELitExpressionMixin.kt │ │ │ │ │ │ │ ├── MENameMixin.kt │ │ │ │ │ │ │ ├── MENewExpressionMixin.kt │ │ │ │ │ │ │ ├── METypeMixin.kt │ │ │ │ │ │ │ ├── MEUnaryExpressionMixin.kt │ │ │ │ │ │ │ └── impl │ │ │ │ │ │ │ ├── MEArgumentsImplMixin.kt │ │ │ │ │ │ │ ├── MEArrayAccessExpressionImplMixin.kt │ │ │ │ │ │ │ ├── MEAssignStatementImplMixin.kt │ │ │ │ │ │ │ ├── MEBinaryExpressionImplMixin.kt │ │ │ │ │ │ │ ├── MEBoundReferenceExpressionImplMixin.kt │ │ │ │ │ │ │ ├── MECapturingExpressionImplMixin.kt │ │ │ │ │ │ │ ├── MECastExpressionImplMixin.kt │ │ │ │ │ │ │ ├── MEClassConstantExpressionImplMixin.kt │ │ │ │ │ │ │ ├── MEConstructorReferenceExpressionImplMixin.kt │ │ │ │ │ │ │ ├── MEDeclarationImplMixin.kt │ │ │ │ │ │ │ ├── MEDeclarationItemImplMixin.kt │ │ │ │ │ │ │ ├── MEExpressionImplMixin.kt │ │ │ │ │ │ │ ├── MEExpressionStatementImplMixin.kt │ │ │ │ │ │ │ ├── MEFreeMethodReferenceExpressionImplMixin.kt │ │ │ │ │ │ │ ├── MELitExpressionImplMixin.kt │ │ │ │ │ │ │ ├── MEMemberAccessExpressionImplMixin.kt │ │ │ │ │ │ │ ├── MEMethodCallExpressionImplMixin.kt │ │ │ │ │ │ │ ├── MENameExpressionImplMixin.kt │ │ │ │ │ │ │ ├── MENameImplMixin.kt │ │ │ │ │ │ │ ├── MENewExpressionImplMixin.kt │ │ │ │ │ │ │ ├── MEParenthesizedExpressionImplMixin.kt │ │ │ │ │ │ │ ├── MEReturnStatementImplMixin.kt │ │ │ │ │ │ │ ├── MEStatementImplMixin.kt │ │ │ │ │ │ │ ├── MEStaticMethodCallExpressionImplMixin.kt │ │ │ │ │ │ │ ├── MESuperCallExpressionImplMixin.kt │ │ │ │ │ │ │ ├── METhisExpressionImplMixin.kt │ │ │ │ │ │ │ ├── METhrowStatementImplMixin.kt │ │ │ │ │ │ │ ├── METypeImplMixin.kt │ │ │ │ │ │ │ └── MEUnaryExpressionImplMixin.kt │ │ │ │ │ └── reference │ │ │ │ │ │ ├── MEDefinitionReference.kt │ │ │ │ │ │ └── MEExpressionFindUsagesProvider.kt │ │ │ │ ├── folding │ │ │ │ │ ├── AccessorMixinFoldingBuilder.kt │ │ │ │ │ ├── MixinFoldingOptionsProvider.kt │ │ │ │ │ ├── MixinFoldingSettings.kt │ │ │ │ │ ├── MixinObjectCastFoldingBuilder.kt │ │ │ │ │ └── MixinTargetDescriptorFoldingBuilder.kt │ │ │ │ ├── framework │ │ │ │ │ ├── MixinIconProvider.kt │ │ │ │ │ ├── MixinLibraryKind.kt │ │ │ │ │ └── MixinPresentationProvider.kt │ │ │ │ ├── handlers │ │ │ │ │ ├── AccessorHandler.kt │ │ │ │ │ ├── InjectAnnotationHandler.kt │ │ │ │ │ ├── InjectorAnnotationHandler.kt │ │ │ │ │ ├── InvokerHandler.kt │ │ │ │ │ ├── MixinAnnotationHandler.kt │ │ │ │ │ ├── MixinMemberAnnotationHandler.kt │ │ │ │ │ ├── ModifyArgHandler.kt │ │ │ │ │ ├── ModifyArgsHandler.kt │ │ │ │ │ ├── ModifyConstantHandler.kt │ │ │ │ │ ├── ModifyVariableHandler.kt │ │ │ │ │ ├── OverwriteHandler.kt │ │ │ │ │ ├── RedirectInjectorHandler.kt │ │ │ │ │ ├── ShadowHandler.kt │ │ │ │ │ ├── injectionPoint │ │ │ │ │ │ ├── AtResolver.kt │ │ │ │ │ │ ├── ConstantInjectionPoint.kt │ │ │ │ │ │ ├── ConstantStringMethodInjectionPoint.kt │ │ │ │ │ │ ├── CtorHeadInjectionPoint.kt │ │ │ │ │ │ ├── FieldInjectionPoint.kt │ │ │ │ │ │ ├── HeadInjectionPoint.kt │ │ │ │ │ │ ├── InjectionPoint.kt │ │ │ │ │ │ ├── InjectionPointAnnotation.kt │ │ │ │ │ │ ├── InvokeInjectionPoint.kt │ │ │ │ │ │ ├── JumpInjectionPoint.kt │ │ │ │ │ │ ├── LoadInjectionPoint.kt │ │ │ │ │ │ ├── NewInsnInjectionPoint.kt │ │ │ │ │ │ └── ReturnInjectionPoint.kt │ │ │ │ │ └── mixinextras │ │ │ │ │ │ ├── ExpressionInjectionPoint.kt │ │ │ │ │ │ ├── MixinExtrasInjectorAnnotationHandler.kt │ │ │ │ │ │ ├── ModifyExpressionValueHandler.kt │ │ │ │ │ │ ├── ModifyReceiverHandler.kt │ │ │ │ │ │ ├── ModifyReturnValueHandler.kt │ │ │ │ │ │ ├── TargetInsn.kt │ │ │ │ │ │ ├── WrapMethodHandler.kt │ │ │ │ │ │ ├── WrapOperationHandler.kt │ │ │ │ │ │ └── WrapWithConditionHandler.kt │ │ │ │ ├── insight │ │ │ │ │ ├── MixinElementLineMarkerProvider.kt │ │ │ │ │ ├── MixinEntryPoint.kt │ │ │ │ │ ├── MixinImplicitUsageProvider.kt │ │ │ │ │ ├── MixinLineMarkerProvider.kt │ │ │ │ │ └── target │ │ │ │ │ │ ├── AbstractMixinTargetCodeVisionProvider.kt │ │ │ │ │ │ ├── AccessorTargetCodeVisionProvider.kt │ │ │ │ │ │ ├── MixinAccessorTargetLineMarkerProvider.kt │ │ │ │ │ │ ├── MixinTargetCodeVisionProvider.kt │ │ │ │ │ │ └── MixinTargetLineMarkerProvider.kt │ │ │ │ ├── inspection │ │ │ │ │ ├── MixinAnnotationAttributeInspection.kt │ │ │ │ │ ├── MixinAnnotationTargetInspection.kt │ │ │ │ │ ├── MixinAnnotationsInspection.kt │ │ │ │ │ ├── MixinCancellableInspection.kt │ │ │ │ │ ├── MixinClassReferenceInspection.kt │ │ │ │ │ ├── MixinInnerClassInspection.kt │ │ │ │ │ ├── MixinInspection.kt │ │ │ │ │ ├── MixinSuperClassInspection.kt │ │ │ │ │ ├── MixinTargetInspection.kt │ │ │ │ │ ├── NonJavaMixinInspection.kt │ │ │ │ │ ├── StaticMemberInspection.kt │ │ │ │ │ ├── UnusedMixinInspection.kt │ │ │ │ │ ├── addedMembers │ │ │ │ │ │ ├── AbstractAddedMembersInspection.kt │ │ │ │ │ │ ├── AddedMembersNameFormatInspection.kt │ │ │ │ │ │ └── MissingUniqueAnnotationInspection.kt │ │ │ │ │ ├── fix │ │ │ │ │ │ └── AnnotationAttributeFix.kt │ │ │ │ │ ├── implements │ │ │ │ │ │ ├── DuplicateInterfaceInspection.kt │ │ │ │ │ │ ├── DuplicateInterfacePrefixInspection.kt │ │ │ │ │ │ ├── EmptyImplementsInspection.kt │ │ │ │ │ │ ├── InterfaceIsInterfaceInspection.kt │ │ │ │ │ │ ├── InterfacePrefixInspection.kt │ │ │ │ │ │ ├── SoftImplementOverridesInspection.kt │ │ │ │ │ │ └── suppress │ │ │ │ │ │ │ └── SoftImplementInspectionSuppressor.kt │ │ │ │ │ ├── injector │ │ │ │ │ │ ├── CancellableBeforeSuperCallInspection.kt │ │ │ │ │ │ ├── CaptureFailExceptionInspection.kt │ │ │ │ │ │ ├── CtorHeadNoUnsafeInspection.kt │ │ │ │ │ │ ├── CtorHeadPostInitInspection.kt │ │ │ │ │ │ ├── CtorHeadUsedForNonConstructorInspection.kt │ │ │ │ │ │ ├── DiscouragedInjectionPointInspection.kt │ │ │ │ │ │ ├── DiscouragedShiftInspection.kt │ │ │ │ │ │ ├── ImplicitConstructorInvokerInspection.kt │ │ │ │ │ │ ├── InjectCouldBeOverwriteInspection.kt │ │ │ │ │ │ ├── InjectIntoConstructorInspection.kt │ │ │ │ │ │ ├── InvalidInjectorMethodSignatureInspection.kt │ │ │ │ │ │ ├── MethodSignature.kt │ │ │ │ │ │ ├── ModifyVariableArgsOnlyInspection.kt │ │ │ │ │ │ ├── ParameterGroup.kt │ │ │ │ │ │ ├── UnnecessaryUnsafeInspection.kt │ │ │ │ │ │ └── UnusedLocalCaptureInspection.kt │ │ │ │ │ ├── mixinextras │ │ │ │ │ │ ├── InjectLocalCaptureReplaceWithLocalInspection.kt │ │ │ │ │ │ ├── LocalArgsOnlyInspection.kt │ │ │ │ │ │ ├── UnnecessaryMutableLocalInspection.kt │ │ │ │ │ │ ├── UnresolvedLocalCaptureInspection.kt │ │ │ │ │ │ └── WrongOperationParametersInspection.kt │ │ │ │ │ ├── overwrite │ │ │ │ │ │ ├── OverwriteAuthorInspection.kt │ │ │ │ │ │ ├── OverwriteInspection.kt │ │ │ │ │ │ └── OverwriteModifiersInspection.kt │ │ │ │ │ ├── reference │ │ │ │ │ │ ├── AmbiguousReferenceInspection.kt │ │ │ │ │ │ ├── InvalidMemberReferenceInspection.kt │ │ │ │ │ │ ├── UnnecessaryQualifiedMemberReferenceInspection.kt │ │ │ │ │ │ ├── UnqualifiedMemberReferenceInspection.kt │ │ │ │ │ │ └── UnresolvedReferenceInspection.kt │ │ │ │ │ ├── shadow │ │ │ │ │ │ ├── ShadowFieldPrefixInspection.kt │ │ │ │ │ │ ├── ShadowFinalInspection.kt │ │ │ │ │ │ ├── ShadowModifiersInspection.kt │ │ │ │ │ │ ├── UnusedShadowMethodPrefixInspection.kt │ │ │ │ │ │ └── suppress │ │ │ │ │ │ │ └── ShadowNullableInspectionSuppressor.kt │ │ │ │ │ └── suppress │ │ │ │ │ │ ├── DefaultAnnotationParamInspectionSuppressor.kt │ │ │ │ │ │ ├── DynamicInspectionSuppressor.kt │ │ │ │ │ │ ├── MixinClassCastInspectionSuppressor.kt │ │ │ │ │ │ ├── ShadowOverwriteInspectionSuppressor.kt │ │ │ │ │ │ └── StaticInvokerUnusedParamInspectionSuppressor.kt │ │ │ │ ├── reference │ │ │ │ │ ├── AbstractMethodReference.kt │ │ │ │ │ ├── AccessorReference.kt │ │ │ │ │ ├── DescGTDHandler.kt │ │ │ │ │ ├── DescReference.kt │ │ │ │ │ ├── InjectionPointReference.kt │ │ │ │ │ ├── InvokerReference.kt │ │ │ │ │ ├── MethodGTDHandler.kt │ │ │ │ │ ├── MethodReference.kt │ │ │ │ │ ├── MixinReference.kt │ │ │ │ │ ├── MixinReferenceContributor.kt │ │ │ │ │ ├── MixinSelectors.kt │ │ │ │ │ └── target │ │ │ │ │ │ ├── DefinitionReferenceGTDHandler.kt │ │ │ │ │ │ ├── DefinitionReferences.kt │ │ │ │ │ │ ├── TargetGTDHandler.kt │ │ │ │ │ │ └── TargetReference.kt │ │ │ │ ├── search │ │ │ │ │ └── MixinSoftImplementMethodSuperSearcher.kt │ │ │ │ └── util │ │ │ │ │ ├── AsmDfaUtil.kt │ │ │ │ │ ├── AsmUtil.kt │ │ │ │ │ ├── Implements.kt │ │ │ │ │ ├── LocalInfo.kt │ │ │ │ │ ├── LocalVariables.kt │ │ │ │ │ ├── Mixin.kt │ │ │ │ │ ├── MixinConstants.kt │ │ │ │ │ ├── SignatureToPsi.kt │ │ │ │ │ ├── SourceCodeLocationInfo.kt │ │ │ │ │ ├── TargetClass.kt │ │ │ │ │ └── UnsafeCachedValueCapture.kt │ │ │ ├── neoforge │ │ │ │ ├── NeoForgeEventListenerGenerationSupport.kt │ │ │ │ ├── NeoForgeFileIconProvider.kt │ │ │ │ ├── NeoForgeModule.kt │ │ │ │ ├── NeoForgeModuleType.kt │ │ │ │ ├── creator │ │ │ │ │ ├── asset-steps.kt │ │ │ │ │ ├── gradle-steps.kt │ │ │ │ │ └── ui-steps.kt │ │ │ │ ├── framework │ │ │ │ │ ├── NeoForgeLibraryKind.kt │ │ │ │ │ └── NeoForgePresentationProvider.kt │ │ │ │ ├── gradle │ │ │ │ │ └── NeoForgeRunConfigDataService.kt │ │ │ │ ├── insight │ │ │ │ │ └── NeoForgeImplicitUsageProvider.kt │ │ │ │ ├── util │ │ │ │ │ └── NeoForgeConstants.kt │ │ │ │ └── version │ │ │ │ │ ├── NeoForgeVersion.kt │ │ │ │ │ ├── NeoGradleVersion.kt │ │ │ │ │ └── platform │ │ │ │ │ └── neoforge │ │ │ │ │ └── version │ │ │ │ │ └── NeoModDevVersion.kt │ │ │ ├── sponge │ │ │ │ ├── SpongeEventListenerGenerationSupport.kt │ │ │ │ ├── SpongeImportFilter.kt │ │ │ │ ├── SpongeModule.kt │ │ │ │ ├── SpongeModuleType.kt │ │ │ │ ├── SpongeVersion.kt │ │ │ │ ├── color │ │ │ │ │ ├── SpongeColorAnnotator.kt │ │ │ │ │ ├── SpongeColorLineMarkerProvider.kt │ │ │ │ │ └── SpongeColorUtil.kt │ │ │ │ ├── creator │ │ │ │ │ ├── asset-steps.kt │ │ │ │ │ ├── gradle-steps.kt │ │ │ │ │ ├── maven-steps.kt │ │ │ │ │ └── ui-steps.kt │ │ │ │ ├── framework │ │ │ │ │ ├── SpongeLibraryKind.kt │ │ │ │ │ └── SpongePresentationProvider.kt │ │ │ │ ├── generation │ │ │ │ │ ├── SpongeEventGenerationPanel.kt │ │ │ │ │ └── SpongeGenerationData.kt │ │ │ │ ├── insight │ │ │ │ │ └── SpongeImplicitUsageProvider.kt │ │ │ │ ├── inspection │ │ │ │ │ ├── SpongeInjectionInspection.kt │ │ │ │ │ ├── SpongeInvalidGetterTargetInspection.kt │ │ │ │ │ ├── SpongeLoggingInspection.kt │ │ │ │ │ ├── SpongePluginClassInspection.kt │ │ │ │ │ ├── SpongeWrongGetterTypeInspection.kt │ │ │ │ │ └── suppress │ │ │ │ │ │ └── SpongeGetterParamOptionalInspectionSuppressor.kt │ │ │ │ ├── reference │ │ │ │ │ └── SpongeReferenceContributor.kt │ │ │ │ └── util │ │ │ │ │ ├── Events.kt │ │ │ │ │ ├── SpongeConstants.kt │ │ │ │ │ └── SpongeUtils.kt │ │ │ └── velocity │ │ │ │ ├── VelocityEventListenerGenerationSupport.kt │ │ │ │ ├── VelocityModule.kt │ │ │ │ ├── VelocityModuleType.kt │ │ │ │ ├── creator │ │ │ │ ├── asset-steps.kt │ │ │ │ ├── gradle-steps.kt │ │ │ │ ├── maven-steps.kt │ │ │ │ └── ui-steps.kt │ │ │ │ ├── framework │ │ │ │ ├── VelocityLibraryKind.kt │ │ │ │ └── VelocityPresentationProvider.kt │ │ │ │ ├── generation │ │ │ │ ├── VelocityEventGenerationPanel.kt │ │ │ │ └── VelocityGenerationData.kt │ │ │ │ └── util │ │ │ │ └── VelocityConstants.kt │ │ ├── toml │ │ │ ├── TomlElementVisitor.kt │ │ │ ├── TomlKeyInsertionHandler.kt │ │ │ ├── TomlSchema.kt │ │ │ ├── TomlStringValueInsertionHandler.kt │ │ │ ├── platform │ │ │ │ └── forge │ │ │ │ │ ├── ForgeTomlConstants.kt │ │ │ │ │ ├── ModsTomlDocumentationProvider.kt │ │ │ │ │ ├── ModsTomlSchema.kt │ │ │ │ │ ├── completion │ │ │ │ │ └── ModsTomlCompletionContributor.kt │ │ │ │ │ ├── inspections │ │ │ │ │ └── ModsTomlValidationInspection.kt │ │ │ │ │ └── reference │ │ │ │ │ └── ModsTomlReferenceContributor.kt │ │ │ ├── toml-patterns.kt │ │ │ └── toml-psi.kt │ │ ├── translations │ │ │ ├── Translation.kt │ │ │ ├── TranslationConstants.kt │ │ │ ├── TranslationEditorNotificationProvider.kt │ │ │ ├── TranslationFileListener.kt │ │ │ ├── TranslationFiles.kt │ │ │ ├── actions │ │ │ │ ├── SortTranslationsAction.kt │ │ │ │ └── TranslationSortOrderDialog.kt │ │ │ ├── folding.kt │ │ │ ├── identification │ │ │ │ ├── LiteralTranslationIdentifier.kt │ │ │ │ ├── ReferenceTranslationIdentifier.kt │ │ │ │ ├── TranslationAnnotationsLocationProvider.kt │ │ │ │ ├── TranslationExternalAnnotationsArtifactsResolver.kt │ │ │ │ ├── TranslationIdentifier.kt │ │ │ │ └── TranslationInstance.kt │ │ │ ├── index │ │ │ │ ├── TranslationIndex.kt │ │ │ │ ├── TranslationIndexEntry.kt │ │ │ │ ├── TranslationInputFilter.kt │ │ │ │ ├── TranslationInverseIndex.kt │ │ │ │ └── providers.kt │ │ │ ├── inspections │ │ │ │ ├── ChangeTranslationQuickFix.kt │ │ │ │ ├── MissingFormatInspection.kt │ │ │ │ ├── NoTranslationInspection.kt │ │ │ │ ├── SuperfluousFormatInspection.kt │ │ │ │ ├── TranslationInspection.kt │ │ │ │ └── WrongTypeInTranslationArgsInspection.kt │ │ │ ├── intentions │ │ │ │ ├── ConvertToTranslationIntention.kt │ │ │ │ ├── RemoveDuplicatesIntention.kt │ │ │ │ ├── RemoveUnmatchedEntryIntention.kt │ │ │ │ ├── TranslationFileAnnotator.kt │ │ │ │ └── TrimKeyIntention.kt │ │ │ ├── lang │ │ │ │ ├── LangCommenter.kt │ │ │ │ ├── LangFile.kt │ │ │ │ ├── LangFileType.kt │ │ │ │ ├── LangLexerAdapter.kt │ │ │ │ ├── LangParserDefinition.kt │ │ │ │ ├── LangRenameInputValidator.kt │ │ │ │ ├── LangTypedHandlerDelegate.kt │ │ │ │ ├── MCLangLanguage.kt │ │ │ │ ├── colors │ │ │ │ │ ├── LangColorSettingsPage.kt │ │ │ │ │ ├── LangSyntaxHighlighter.kt │ │ │ │ │ └── LangSyntaxHighlighterFactory.kt │ │ │ │ ├── formatting │ │ │ │ │ ├── LangBlock.kt │ │ │ │ │ └── LangFormattingModelBuilder.kt │ │ │ │ ├── psi │ │ │ │ │ ├── LangElementType.kt │ │ │ │ │ ├── LangTokenType.kt │ │ │ │ │ └── mixins │ │ │ │ │ │ ├── LangEntryImplMixin.kt │ │ │ │ │ │ └── LangEntryMixin.kt │ │ │ │ ├── spellcheck │ │ │ │ │ ├── LangCommentTokenizer.kt │ │ │ │ │ ├── LangKeySplitter.kt │ │ │ │ │ └── LangSpellcheckingStrategy.kt │ │ │ │ └── structure │ │ │ │ │ ├── LangStructureViewElement.kt │ │ │ │ │ ├── LangStructureViewFactory.kt │ │ │ │ │ └── LangStructureViewModel.kt │ │ │ ├── reference │ │ │ │ ├── TranslationDescriptionProvider.kt │ │ │ │ ├── TranslationGotoModel.kt │ │ │ │ ├── TranslationGotoSymbolContributor.kt │ │ │ │ ├── TranslationReference.kt │ │ │ │ ├── TranslationReferenceCompletionConfidence.kt │ │ │ │ ├── TranslationReferenceSearch.kt │ │ │ │ ├── completion.kt │ │ │ │ ├── contributors.kt │ │ │ │ └── usages.kt │ │ │ └── sorting │ │ │ │ ├── Ordering.kt │ │ │ │ ├── TranslationSorter.kt │ │ │ │ ├── TranslationTemplateConfigurable.kt │ │ │ │ ├── TranslationTemplateLexerAdapter.kt │ │ │ │ └── template.kt │ │ ├── update │ │ │ ├── Channels.kt │ │ │ ├── ConfigurePluginUpdatesAction.kt │ │ │ ├── ConfigurePluginUpdatesDialog.kt │ │ │ ├── PluginUpdateStatus.kt │ │ │ ├── PluginUpdater.kt │ │ │ ├── PluginUtil.kt │ │ │ └── package-info.kt │ │ ├── util │ │ │ ├── ActionData.kt │ │ │ ├── BeforeOrAfter.kt │ │ │ ├── CommonColors.kt │ │ │ ├── Constants.kt │ │ │ ├── HttpConnectionFactory.kt │ │ │ ├── License.kt │ │ │ ├── McdevDfaUtil.kt │ │ │ ├── MemberReference.kt │ │ │ ├── MinecraftTemplates.kt │ │ │ ├── MinecraftVersions.kt │ │ │ ├── ModuleDebugRunConfigurationExtension.kt │ │ │ ├── Parameter.kt │ │ │ ├── SemanticVersion.kt │ │ │ ├── SourceType.kt │ │ │ ├── VersionRange.kt │ │ │ ├── actions.kt │ │ │ ├── analysis-utils.kt │ │ │ ├── annotation-utils.kt │ │ │ ├── bytecode-utils.kt │ │ │ ├── call-uast-utils.kt │ │ │ ├── call-utils.kt │ │ │ ├── class-utils.kt │ │ │ ├── code-gen.kt │ │ │ ├── coroutine-utils.kt │ │ │ ├── delegates.kt │ │ │ ├── editor-utils.kt │ │ │ ├── expression-utils.kt │ │ │ ├── files.kt │ │ │ ├── gradle-util.kt │ │ │ ├── json-patterns.kt │ │ │ ├── patterns.kt │ │ │ ├── psi-utils.kt │ │ │ ├── quickfix │ │ │ │ └── RemoveAnnotationAttributeQuickFix.kt │ │ │ ├── reference │ │ │ │ ├── ClassNameReferenceProvider.kt │ │ │ │ ├── InspectionReference.kt │ │ │ │ ├── PackageNameReferenceProvider.kt │ │ │ │ └── ReferenceResolver.kt │ │ │ ├── reflection-utils.kt │ │ │ ├── sequences.kt │ │ │ ├── sorting.kt │ │ │ ├── streams.kt │ │ │ ├── swing-utils.kt │ │ │ ├── uast-utils.kt │ │ │ └── utils.kt │ │ └── yaml │ │ │ ├── PluginYmlInspection.kt │ │ │ └── PluginYmlReferenceContributor.kt │ └── resources │ │ ├── META-INF │ │ ├── mcdev-kotlin.xml │ │ ├── mcdev-toml.xml │ │ ├── mcdev-yaml.xml │ │ ├── plugin.xml │ │ └── pluginIcon.svg │ │ ├── assets │ │ └── icons │ │ │ ├── general │ │ │ ├── EventListener_dark.png │ │ │ ├── MinecraftTemplate.png │ │ │ ├── MinecraftTemplate@2x.png │ │ │ └── plugin.png │ │ │ ├── mixin │ │ │ ├── accessor_mark.svg │ │ │ ├── mixin_accessor.svg │ │ │ ├── mixin_accessor_dark.svg │ │ │ ├── mixin_accessor_mixin.svg │ │ │ ├── mixin_accessor_mixin_dark.svg │ │ │ ├── mixin_class_gutter.svg │ │ │ ├── mixin_class_gutter_dark.svg │ │ │ ├── mixin_element.svg │ │ │ ├── mixin_element_dark.svg │ │ │ ├── mixin_injector.svg │ │ │ ├── mixin_injector_dark.svg │ │ │ ├── mixin_mark.svg │ │ │ ├── mixin_shadow.svg │ │ │ ├── mixin_shadow_dark.svg │ │ │ ├── mixin_shadow_dark_alt.svg │ │ │ ├── mixin_target_accessor_mixin.svg │ │ │ ├── mixin_target_accessor_mixin_dark.svg │ │ │ ├── mixin_target_class_gutter.svg │ │ │ └── mixin_target_class_gutter_dark.svg │ │ │ └── platform │ │ │ ├── Adventure.png │ │ │ ├── Adventure@2x.png │ │ │ ├── Architectury.png │ │ │ ├── Architectury@2x.png │ │ │ ├── Bukkit.png │ │ │ ├── Bukkit@2x.png │ │ │ ├── BungeeCord.png │ │ │ ├── BungeeCord@2x.png │ │ │ ├── Fabric.png │ │ │ ├── Fabric@2x.png │ │ │ ├── Forge.png │ │ │ ├── Forge@2x.png │ │ │ ├── MCP.png │ │ │ ├── MCP@2x.png │ │ │ ├── MCP@2x_dark.png │ │ │ ├── MCP_dark.png │ │ │ ├── Minecraft.png │ │ │ ├── Minecraft@2x.png │ │ │ ├── Mixins.png │ │ │ ├── Mixins@2x.png │ │ │ ├── Mixins@2x_dark.png │ │ │ ├── Mixins_dark.png │ │ │ ├── NeoForge.png │ │ │ ├── Paper.png │ │ │ ├── Paper@2x.png │ │ │ ├── Spigot.png │ │ │ ├── Spigot@2x.png │ │ │ ├── Sponge.png │ │ │ ├── Sponge@2x.png │ │ │ ├── Sponge@2x_dark.png │ │ │ ├── Sponge_dark.png │ │ │ ├── Velocity.png │ │ │ ├── Velocity@2x.png │ │ │ ├── Waterfall.png │ │ │ └── Waterfall@2x.png │ │ ├── colorSchemes │ │ ├── NbttDarcula.xml │ │ └── NbttDefault.xml │ │ ├── fileTemplates │ │ ├── code │ │ │ ├── Mixin Overwrite Fallback.java.ft │ │ │ └── Mixin Overwrite Fallback.java.html │ │ └── j2ee │ │ │ ├── architectury │ │ │ ├── architectury_build.gradle.ft │ │ │ ├── architectury_build.gradle.html │ │ │ ├── architectury_common_build.gradle.ft │ │ │ ├── architectury_common_build.gradle.html │ │ │ ├── architectury_common_main_class.java.ft │ │ │ ├── architectury_common_main_class.java.html │ │ │ ├── architectury_common_mixins.json.ft │ │ │ ├── architectury_common_mixins.json.html │ │ │ ├── architectury_fabric_build.gradle.ft │ │ │ ├── architectury_fabric_build.gradle.html │ │ │ ├── architectury_fabric_main_class.java.ft │ │ │ ├── architectury_fabric_main_class.java.html │ │ │ ├── architectury_fabric_mixins.json.ft │ │ │ ├── architectury_fabric_mixins.json.html │ │ │ ├── architectury_fabric_mod.json.ft │ │ │ ├── architectury_fabric_mod.json.html │ │ │ ├── architectury_forge_build.gradle.ft │ │ │ ├── architectury_forge_build.gradle.html │ │ │ ├── architectury_forge_gradle.properties.ft │ │ │ ├── architectury_forge_gradle.properties.html │ │ │ ├── architectury_forge_main_class.java.ft │ │ │ ├── architectury_forge_main_class.java.html │ │ │ ├── architectury_forge_mixins.json.ft │ │ │ ├── architectury_forge_mixins.json.html │ │ │ ├── architectury_forge_mods.toml.ft │ │ │ ├── architectury_forge_mods.toml.html │ │ │ ├── architectury_forge_pack.mcmeta.ft │ │ │ ├── architectury_forge_pack.mcmeta.html │ │ │ ├── architectury_gradle.properties.ft │ │ │ ├── architectury_gradle.properties.html │ │ │ ├── architectury_settings.gradle.ft │ │ │ └── architectury_settings.gradle.html │ │ │ ├── bukkit │ │ │ ├── Bukkit Main Class.java.ft │ │ │ ├── Bukkit Main Class.java.html │ │ │ ├── Bukkit build.gradle.ft │ │ │ ├── Bukkit build.gradle.html │ │ │ ├── Bukkit gradle.properties.ft │ │ │ ├── Bukkit gradle.properties.html │ │ │ ├── Bukkit plugin.yml.ft │ │ │ ├── Bukkit plugin.yml.html │ │ │ ├── Bukkit pom.xml.ft │ │ │ ├── Bukkit pom.xml.html │ │ │ ├── Bukkit settings.gradle.ft │ │ │ ├── Bukkit settings.gradle.html │ │ │ ├── Paper paper-plugin.yml.ft │ │ │ └── Paper paper-plugin.yml.html │ │ │ ├── bungeecord │ │ │ ├── BungeeCord Main Class.java.ft │ │ │ ├── BungeeCord Main Class.java.html │ │ │ ├── BungeeCord build.gradle.ft │ │ │ ├── BungeeCord build.gradle.html │ │ │ ├── BungeeCord bungee.yml.ft │ │ │ ├── BungeeCord bungee.yml.html │ │ │ ├── BungeeCord gradle.properties.ft │ │ │ ├── BungeeCord gradle.properties.html │ │ │ ├── BungeeCord pom.xml.ft │ │ │ ├── BungeeCord pom.xml.html │ │ │ ├── BungeeCord settings.gradle.ft │ │ │ └── BungeeCord settings.gradle.html │ │ │ ├── common │ │ │ ├── Gradle.gitignore.ft │ │ │ ├── Gradle.gitignore.html │ │ │ ├── Maven.gitignore.ft │ │ │ ├── Maven.gitignore.html │ │ │ ├── MinecraftDev gradle-wrapper.properties.ft │ │ │ └── MinecraftDev gradle-wrapper.properties.html │ │ │ ├── fabric │ │ │ ├── fabric_build.gradle.ft │ │ │ ├── fabric_build.gradle.html │ │ │ ├── fabric_gradle.properties.ft │ │ │ ├── fabric_gradle.properties.html │ │ │ ├── fabric_mixins.json.ft │ │ │ ├── fabric_mixins.json.html │ │ │ ├── fabric_mod.json.ft │ │ │ ├── fabric_mod.json.html │ │ │ ├── fabric_settings.gradle.ft │ │ │ └── fabric_settings.gradle.html │ │ │ ├── forge │ │ │ ├── Forge (1.13+) build.gradle.ft │ │ │ ├── Forge (1.13+) build.gradle.html │ │ │ ├── Forge (1.13+) gradle.properties.ft │ │ │ ├── Forge (1.13+) gradle.properties.html │ │ │ ├── Forge (1.13+) settings.gradle.ft │ │ │ ├── Forge (1.13+) settings.gradle.html │ │ │ ├── Forge (1.16+) Main Class.java.ft │ │ │ ├── Forge (1.16+) Main Class.java.html │ │ │ ├── Forge (1.17+) Main Class.java.ft │ │ │ ├── Forge (1.17+) Main Class.java.html │ │ │ ├── Forge (1.18+) Main Class.java.ft │ │ │ ├── Forge (1.18+) Main Class.java.html │ │ │ ├── Forge (1.19+) Main Class.java.ft │ │ │ ├── Forge (1.19+) Main Class.java.html │ │ │ ├── Forge (1.19.3+) Main Class.java.ft │ │ │ ├── Forge (1.19.3+) Main Class.java.html │ │ │ ├── Forge (1.20+) Config.java.ft │ │ │ ├── Forge (1.20+) Config.java.html │ │ │ ├── Forge (1.20+) Main Class.java.ft │ │ │ ├── Forge (1.20+) Main Class.java.html │ │ │ ├── Forge (1.20.6+) Main Class.java.ft │ │ │ ├── Forge (1.20.6+) Main Class.java.html │ │ │ ├── Forge (1.21+) Config.java.ft │ │ │ ├── Forge (1.21+) Config.java.html │ │ │ ├── Forge Mixins Config.json.ft │ │ │ ├── Forge Mixins Config.json.html │ │ │ ├── mods.toml.ft │ │ │ ├── mods.toml.html │ │ │ ├── pack.mcmeta.ft │ │ │ └── pack.mcmeta.html │ │ │ ├── licenses │ │ │ ├── AGPL-3.0.txt.ft │ │ │ ├── AGPL-3.0.txt.html │ │ │ ├── All-Rights-Reserved.txt.ft │ │ │ ├── All-Rights-Reserved.txt.html │ │ │ ├── Apache-2.0.txt.ft │ │ │ ├── Apache-2.0.txt.html │ │ │ ├── BSD-2-Clause-FreeBSD.txt.ft │ │ │ ├── BSD-2-Clause-FreeBSD.txt.html │ │ │ ├── BSD-3-Clause.txt.ft │ │ │ ├── BSD-3-Clause.txt.html │ │ │ ├── GPL-3.0.txt.ft │ │ │ ├── GPL-3.0.txt.html │ │ │ ├── ISC.txt.ft │ │ │ ├── ISC.txt.html │ │ │ ├── LGPL-3.0.txt.ft │ │ │ ├── LGPL-3.0.txt.html │ │ │ ├── MIT.txt.ft │ │ │ ├── MIT.txt.html │ │ │ ├── MPL-2.0.txt.ft │ │ │ ├── MPL-2.0.txt.html │ │ │ ├── unlicense.txt.ft │ │ │ └── unlicense.txt.html │ │ │ ├── neoforge │ │ │ ├── NeoForge (1.20.5) Config.java.ft │ │ │ ├── NeoForge (1.20.5) Config.java.html │ │ │ ├── NeoForge (1.20.5) Main Class.java.ft │ │ │ ├── NeoForge (1.20.5) Main Class.java.html │ │ │ ├── NeoForge (1.20.5) build.gradle.ft │ │ │ ├── NeoForge (1.20.5) build.gradle.html │ │ │ ├── NeoForge (1.21) Config.java.ft │ │ │ ├── NeoForge (1.21) Config.java.html │ │ │ ├── NeoForge Config.java.ft │ │ │ ├── NeoForge Config.java.html │ │ │ ├── NeoForge Main Class.java.ft │ │ │ ├── NeoForge Main Class.java.html │ │ │ ├── NeoForge Mixins Config.json.ft │ │ │ ├── NeoForge Mixins Config.json.html │ │ │ ├── NeoForge build.gradle.ft │ │ │ ├── NeoForge build.gradle.html │ │ │ ├── NeoForge gradle.properties.ft │ │ │ ├── NeoForge gradle.properties.html │ │ │ ├── NeoForge mods.toml.ft │ │ │ ├── NeoForge mods.toml.html │ │ │ ├── NeoForge neoforge.mods.toml.ft │ │ │ ├── NeoForge neoforge.mods.toml.html │ │ │ ├── NeoForge pack.mcmeta.ft │ │ │ ├── NeoForge pack.mcmeta.html │ │ │ ├── NeoForge settings.gradle.ft │ │ │ └── NeoForge settings.gradle.html │ │ │ ├── skeleton │ │ │ ├── fabric │ │ │ │ ├── FabricBlock.java.ft │ │ │ │ ├── FabricBlock.java.html │ │ │ │ ├── FabricEnchantment.java.ft │ │ │ │ ├── FabricEnchantment.java.html │ │ │ │ ├── FabricItem.java.ft │ │ │ │ ├── FabricItem.java.html │ │ │ │ ├── FabricStatusEffect.java.ft │ │ │ │ └── FabricStatusEffect.java.html │ │ │ ├── forge │ │ │ │ ├── ForgeBlock (1.17+).java.ft │ │ │ │ ├── ForgeBlock (1.17+).java.html │ │ │ │ ├── ForgeBlock.java.ft │ │ │ │ ├── ForgeBlock.java.html │ │ │ │ ├── ForgeEnchantment (1.17+).java.ft │ │ │ │ ├── ForgeEnchantment (1.17+).java.html │ │ │ │ ├── ForgeEnchantment.java.ft │ │ │ │ ├── ForgeEnchantment.java.html │ │ │ │ ├── ForgeItem (1.17+).java.ft │ │ │ │ ├── ForgeItem (1.17+).java.html │ │ │ │ ├── ForgeItem.java.ft │ │ │ │ ├── ForgeItem.java.html │ │ │ │ ├── ForgeMobEffect (1.17+).java.ft │ │ │ │ ├── ForgeModEffect (1.17+).java.html │ │ │ │ ├── ForgePacket (1.17+).java.ft │ │ │ │ ├── ForgePacket (1.17+).java.html │ │ │ │ ├── ForgePacket (1.18+).java.ft │ │ │ │ ├── ForgePacket (1.18+).java.html │ │ │ │ ├── ForgePacket.java.ft │ │ │ │ └── ForgePacket.java.html │ │ │ └── neoforge │ │ │ │ ├── NeoForgeBlock.java.ft │ │ │ │ ├── NeoForgeBlock.java.html │ │ │ │ ├── NeoForgeEnchantment.java.ft │ │ │ │ ├── NeoForgeEnchantment.java.html │ │ │ │ ├── NeoForgeItem.java.ft │ │ │ │ ├── NeoForgeItem.java.html │ │ │ │ ├── NeoForgeMobEffect.java.ft │ │ │ │ ├── NeoForgeModEffect.java.html │ │ │ │ ├── NeoForgePacket.java.ft │ │ │ │ └── NeoForgePacket.java.html │ │ │ ├── sponge │ │ │ ├── Sponge 8+ Main Class.java.ft │ │ │ ├── Sponge 8+ Main Class.java.html │ │ │ ├── Sponge 8+ build.gradle.kts.ft │ │ │ ├── Sponge 8+ build.gradle.kts.html │ │ │ ├── Sponge 8+ gradle.properties.ft │ │ │ ├── Sponge 8+ gradle.properties.html │ │ │ ├── Sponge 8+ settings.gradle.kts.ft │ │ │ ├── Sponge 8+ settings.gradle.kts.html │ │ │ ├── Sponge 8+ sponge_plugins.json.ft │ │ │ ├── Sponge 8+ sponge_plugins.json.html │ │ │ ├── Sponge pom.xml.ft │ │ │ └── Sponge pom.xml.html │ │ │ └── velocity │ │ │ ├── Velocity Build Constants.java.ft │ │ │ ├── Velocity Build Constants.java.html │ │ │ ├── Velocity Main Class V2.java.ft │ │ │ ├── Velocity Main Class V2.java.html │ │ │ ├── Velocity Main Class.java.ft │ │ │ ├── Velocity Main Class.java.html │ │ │ ├── Velocity build.gradle.ft │ │ │ ├── Velocity build.gradle.html │ │ │ ├── Velocity gradle.properties.ft │ │ │ ├── Velocity gradle.properties.html │ │ │ ├── Velocity pom.xml.ft │ │ │ ├── Velocity pom.xml.html │ │ │ ├── Velocity settings.gradle.ft │ │ │ └── Velocity settings.gradle.html │ │ ├── intentionDescriptions │ │ └── convertToTranslation │ │ │ ├── after.java.template │ │ │ ├── before.java.template │ │ │ └── description.html │ │ └── messages │ │ ├── MinecraftDevelopment.properties │ │ ├── MinecraftDevelopment_fr.properties │ │ └── MinecraftDevelopment_zh.properties └── test │ ├── kotlin │ ├── creator │ │ ├── ClassFqnCreatorPropertyTest.kt │ │ ├── CreatorTemplateProcessorTest.kt │ │ ├── CreatorTemplateProcessorTestBase.kt │ │ └── StringCreatorPropertyTest.kt │ ├── framework │ │ ├── BaseMinecraftTest.kt │ │ ├── CommenterTest.kt │ │ ├── EdtInterceptor.kt │ │ ├── MockJdk.kt │ │ ├── NoEdt.kt │ │ ├── ProjectBuilder.kt │ │ ├── ProjectBuilderTest.kt │ │ └── test-util.kt │ ├── nbt │ │ ├── NbtParseTest.kt │ │ └── lang │ │ │ ├── NbttLexerTest.kt │ │ │ └── NbttParsingTest.kt │ ├── package-info.kt │ ├── platform │ │ ├── bukkit │ │ │ ├── BaseSpigotTest.kt │ │ │ ├── PluginYmlReferenceContributorTest.kt │ │ │ └── PluginYmlSpigotInspectionTest.kt │ │ ├── bungeecord │ │ │ ├── BaseBungeeCordTest.kt │ │ │ └── PluginYmlBungeeInspectionTest.kt │ │ ├── fabric │ │ │ └── FabricEntrypointsInspectionTest.kt │ │ ├── forge │ │ │ ├── ModsTomlCompletionTest.kt │ │ │ ├── ModsTomlDocumentationTest.kt │ │ │ └── ModsTomlValidationInspectionTest.kt │ │ ├── mcp │ │ │ └── at │ │ │ │ ├── AtCommenterTest.kt │ │ │ │ ├── AtLexerTest.kt │ │ │ │ └── AtParsingTest.kt │ │ ├── mixin │ │ │ ├── AccessorMixinTest.kt │ │ │ ├── AmbiguousReferenceInspectionTest.kt │ │ │ ├── BaseMixinTest.kt │ │ │ ├── InnerClassTest.kt │ │ │ ├── InvalidInjectorMethodSignatureFixTest.kt │ │ │ ├── InvalidInjectorMethodSignatureInspectionTest.kt │ │ │ ├── MultipleTargetTest.kt │ │ │ ├── SuperClassTest.kt │ │ │ ├── UnnecessaryQualifiedMemberReferenceInspectionTest.kt │ │ │ ├── expression │ │ │ │ └── MEExpressionCompletionTest.kt │ │ │ ├── implements │ │ │ │ ├── DuplicateInterfaceInspectionTest.kt │ │ │ │ ├── DuplicateInterfacePrefixInspectionTest.kt │ │ │ │ ├── EmptyImplementsTest.kt │ │ │ │ ├── InterfaceIsInterfaceTest.kt │ │ │ │ ├── InterfacePrefixTest.kt │ │ │ │ └── SoftImplementTest.kt │ │ │ └── shadow │ │ │ │ ├── ShadowModifiersInspectionTest.kt │ │ │ │ └── ShadowTargetInspectionTest.kt │ │ └── sponge │ │ │ ├── BaseSpongeTest.kt │ │ │ ├── PluginClassInspectionTest.kt │ │ │ └── SpongeInjectionInspectionTest.kt │ ├── translations │ │ ├── LangCommenterTest.kt │ │ ├── LangLexerTest.kt │ │ └── LangParsingTest.kt │ └── util │ │ ├── McPsiClassTest.kt │ │ ├── OuterClassTest.kt │ │ └── PsiBytecodeUtilTest.kt │ └── resources │ └── com │ └── demonwav │ └── mcdev │ ├── nbt │ └── lang │ │ ├── lexer │ │ └── fixtures │ │ │ ├── all_types.nbtt │ │ │ └── all_types.txt │ │ └── parser │ │ └── fixtures │ │ ├── all_types.nbtt │ │ └── all_types.txt │ ├── platform │ ├── bukkit │ │ ├── pluginYmlInspection │ │ │ └── SimplePlugin.java │ │ └── pluginYmlReferenceContributor │ │ │ ├── SimplePlugin.java │ │ │ ├── afterMove │ │ │ └── plugin.yml │ │ │ ├── afterRename │ │ │ ├── RenamedPlugin.java │ │ │ └── plugin.yml │ │ │ └── plugin.yml │ ├── bungeecord │ │ └── pluginYmlInspection │ │ │ └── SimplePlugin.java │ ├── forge │ │ └── modsTomlCompletion │ │ │ ├── boolean │ │ │ └── mods.toml │ │ │ ├── dependenciesKeys │ │ │ └── mods.toml │ │ │ ├── dependencyOrderingValue │ │ │ └── mods.toml │ │ │ ├── dependencySideValue │ │ │ └── mods.toml │ │ │ ├── displayTestValue │ │ │ └── mods.toml │ │ │ ├── modDependencyKey │ │ │ └── mods.toml │ │ │ ├── modsKeys │ │ │ └── mods.toml │ │ │ ├── rootKeys │ │ │ └── mods.toml │ │ │ ├── stringCompletion │ │ │ ├── mods.toml │ │ │ └── mods.toml.after │ │ │ └── stringCompletionFromNothing │ │ │ ├── mods.toml │ │ │ └── mods.toml.after │ ├── mcp │ │ └── at │ │ │ ├── lexer │ │ │ └── fixtures │ │ │ │ ├── spigot_mappings_at.cfg │ │ │ │ └── spigot_mappings_at.txt │ │ │ └── parser │ │ │ └── fixtures │ │ │ ├── asterisks_at.cfg │ │ │ ├── asterisks_at.txt │ │ │ ├── comments_at.cfg │ │ │ ├── comments_at.txt │ │ │ ├── fields_at.cfg │ │ │ ├── fields_at.txt │ │ │ ├── funcs_at.cfg │ │ │ ├── funcs_at.txt │ │ │ ├── keywords_at.cfg │ │ │ ├── keywords_at.txt │ │ │ ├── no_value_at.cfg │ │ │ └── no_value_at.txt │ └── mixin │ │ └── invalidInjectorMethodSignature │ │ ├── genericCase.after.java │ │ ├── genericCase.java │ │ ├── genericCaseComplexReturnType.after.java │ │ ├── genericCaseComplexReturnType.java │ │ ├── injectWithoutCI.after.java │ │ ├── injectWithoutCI.java │ │ ├── innerCtorWithLocals.after.java │ │ ├── innerCtorWithLocals.java │ │ ├── modifyArgs.after.java │ │ ├── modifyArgs.java │ │ ├── simpleCase.after.java │ │ ├── simpleCase.java │ │ ├── simpleCaseWithMixinExtrasSugar.after.java │ │ ├── simpleCaseWithMixinExtrasSugar.java │ │ ├── simpleInnerCtor.after.java │ │ ├── simpleInnerCtor.java │ │ ├── simpleMethodWithInnerType.after.java │ │ ├── simpleMethodWithInnerType.java │ │ ├── withCapturedLocals.after.java │ │ └── withCapturedLocals.java │ └── translations │ ├── lexer │ └── fixtures │ │ ├── comments.lang │ │ ├── comments.txt │ │ ├── properties.lang │ │ └── properties.txt │ └── parser │ └── fixtures │ ├── comments.lang │ ├── comments.txt │ ├── mixed.lang │ ├── mixed.txt │ ├── properties.lang │ └── properties.txt └── updates ├── updatePlugins-231.xml ├── updatePlugins-232.xml ├── updatePlugins-233.xml ├── updatePlugins-241.xml ├── updatePlugins-242.xml ├── updatePlugins-243.xml └── updatePlugins-251.xml /.editorconfig: -------------------------------------------------------------------------------- 1 | [*.{kt,kts}] 2 | max_line_length=120 3 | indent_size = 4 4 | ij_kotlin_imports_layout=* 5 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | * text=auto 2 | 3 | *.sh text eol=lf 4 | gradlew text eol=lf 5 | *.bat text eol=crlf 6 | 7 | *.jar binary 8 | *.png binary 9 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/config.yml: -------------------------------------------------------------------------------- 1 | blank_issues_enabled: false 2 | contact_links: 3 | - name: Minecraft Development for IntelliJ Discord 4 | url: https://discord.gg/j6UNcfr 5 | about: Join our Discord server if you just have a question 6 | -------------------------------------------------------------------------------- /.github/workflows/pr.yml: -------------------------------------------------------------------------------- 1 | name: PR Validation 2 | on: 3 | pull_request: 4 | branches: ['*'] 5 | 6 | jobs: 7 | validation: 8 | name: Validation 9 | runs-on: ubuntu-latest 10 | steps: 11 | - uses: actions/checkout@v4 12 | - uses: gradle/actions/wrapper-validation@v4 13 | -------------------------------------------------------------------------------- /.github/workflows/pr_check_target_branch.yml: -------------------------------------------------------------------------------- 1 | name: Make sure PRs target the dev branch 2 | 3 | on: 4 | pull_request_target: 5 | types: [opened, edited] 6 | 7 | jobs: 8 | check-branch: 9 | runs-on: ubuntu-latest 10 | steps: 11 | # Do not check out the repository here. See https://securitylab.github.com/research/github-actions-preventing-pwn-requests/ 12 | - uses: Vankka/pr-target-branch-action@v2.1 13 | env: 14 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 15 | with: 16 | target: /\d+\.\d/ 17 | exclude: dev 18 | change-to: dev 19 | already-exists-action: nothing 20 | comment: | 21 | New PRs should target the `dev` branch. The base branch of this PR has been automatically changed to `dev`. 22 | Please check that there are no merge conflicts. 23 | 24 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .idea_modules/ 2 | *.iml 3 | *.ipr 4 | *.iws 5 | 6 | .idea/* 7 | !.idea/icon.png 8 | !.idea/encodings.xml 9 | !.idea/inspectionProfiles/Project_Default.xml 10 | 11 | **/out/ 12 | **/build/ 13 | 14 | com_crashlytics_export_strings.xml 15 | crashlytics.properties 16 | crashlytics-build.properties 17 | 18 | *.class 19 | *.jar 20 | *.war 21 | *.ear 22 | *.zip 23 | 24 | hs_err_pid* 25 | 26 | **/.gradle/ 27 | .intellijPlatform/ 28 | .sandbox/ 29 | .intellijPlatform/ 30 | .kotlin/ 31 | 32 | /gen/ 33 | 34 | .DS_Store 35 | 36 | !gradle/wrapper/gradle-wrapper.jar 37 | -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "templates"] 2 | path = templates 3 | branch = v1 4 | url = https://github.com/minecraft-dev/templates 5 | -------------------------------------------------------------------------------- /.idea/encodings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /.idea/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eigenraven/MinecraftDev/12d5577e37df3bc18b03e111750b31c87d96c666/.idea/icon.png -------------------------------------------------------------------------------- /copyright.txt: -------------------------------------------------------------------------------- 1 | Minecraft Development for IntelliJ 2 | 3 | https://mcdev.io/ 4 | 5 | Copyright (C) 2025 minecraft-dev 6 | 7 | This program is free software: you can redistribute it and/or modify 8 | it under the terms of the GNU Lesser General Public License as published 9 | by the Free Software Foundation, version 3.0 only. 10 | 11 | This program is distributed in the hope that it will be useful, 12 | but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | GNU General Public License for more details. 15 | 16 | You should have received a copy of the GNU Lesser General Public License 17 | along with this program. If not, see . 18 | -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eigenraven/MinecraftDev/12d5577e37df3bc18b03e111750b31c87d96c666/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionBase=GRADLE_USER_HOME 2 | distributionPath=wrapper/dists 3 | distributionUrl=https\://services.gradle.org/distributions/gradle-8.13-bin.zip 4 | networkTimeout=10000 5 | validateDistributionUrl=true 6 | zipStoreBase=GRADLE_USER_HOME 7 | zipStorePath=wrapper/dists 8 | -------------------------------------------------------------------------------- /mixin-test-data/src/main/java/com/demonwav/mcdev/mixintestdata/accessor/BaseMixin.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Minecraft Development for IntelliJ 3 | * 4 | * https://mcdev.io/ 5 | * 6 | * Copyright (C) 2025 minecraft-dev 7 | * 8 | * This program is free software: you can redistribute it and/or modify 9 | * it under the terms of the GNU Lesser General Public License as published 10 | * by the Free Software Foundation, version 3.0 only. 11 | * 12 | * This program is distributed in the hope that it will be useful, 13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | * GNU General Public License for more details. 16 | * 17 | * You should have received a copy of the GNU Lesser General Public License 18 | * along with this program. If not, see . 19 | */ 20 | 21 | package com.demonwav.mcdev.mixintestdata.accessor; 22 | 23 | public class BaseMixin { 24 | } 25 | -------------------------------------------------------------------------------- /mixin-test-data/src/main/java/com/demonwav/mcdev/mixintestdata/accessor/BaseMixinInterface.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Minecraft Development for IntelliJ 3 | * 4 | * https://mcdev.io/ 5 | * 6 | * Copyright (C) 2025 minecraft-dev 7 | * 8 | * This program is free software: you can redistribute it and/or modify 9 | * it under the terms of the GNU Lesser General Public License as published 10 | * by the Free Software Foundation, version 3.0 only. 11 | * 12 | * This program is distributed in the hope that it will be useful, 13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | * GNU General Public License for more details. 16 | * 17 | * You should have received a copy of the GNU Lesser General Public License 18 | * along with this program. If not, see . 19 | */ 20 | 21 | package com.demonwav.mcdev.mixintestdata.accessor; 22 | 23 | public interface BaseMixinInterface { 24 | } 25 | -------------------------------------------------------------------------------- /mixin-test-data/src/main/java/com/demonwav/mcdev/mixintestdata/superClass/DemonWav.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Minecraft Development for IntelliJ 3 | * 4 | * https://mcdev.io/ 5 | * 6 | * Copyright (C) 2025 minecraft-dev 7 | * 8 | * This program is free software: you can redistribute it and/or modify 9 | * it under the terms of the GNU Lesser General Public License as published 10 | * by the Free Software Foundation, version 3.0 only. 11 | * 12 | * This program is distributed in the hope that it will be useful, 13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | * GNU General Public License for more details. 16 | * 17 | * You should have received a copy of the GNU Lesser General Public License 18 | * along with this program. If not, see . 19 | */ 20 | 21 | package com.demonwav.mcdev.mixintestdata.superClass; 22 | 23 | public class DemonWav extends Entity { 24 | } 25 | -------------------------------------------------------------------------------- /mixin-test-data/src/main/java/com/demonwav/mcdev/mixintestdata/superClass/Entity.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Minecraft Development for IntelliJ 3 | * 4 | * https://mcdev.io/ 5 | * 6 | * Copyright (C) 2025 minecraft-dev 7 | * 8 | * This program is free software: you can redistribute it and/or modify 9 | * it under the terms of the GNU Lesser General Public License as published 10 | * by the Free Software Foundation, version 3.0 only. 11 | * 12 | * This program is distributed in the hope that it will be useful, 13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | * GNU General Public License for more details. 16 | * 17 | * You should have received a copy of the GNU Lesser General Public License 18 | * along with this program. If not, see . 19 | */ 20 | 21 | package com.demonwav.mcdev.mixintestdata.superClass; 22 | 23 | public class Entity { 24 | } 25 | -------------------------------------------------------------------------------- /mixin-test-data/src/main/java/com/demonwav/mcdev/mixintestdata/superClass/Minecrell.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Minecraft Development for IntelliJ 3 | * 4 | * https://mcdev.io/ 5 | * 6 | * Copyright (C) 2025 minecraft-dev 7 | * 8 | * This program is free software: you can redistribute it and/or modify 9 | * it under the terms of the GNU Lesser General Public License as published 10 | * by the Free Software Foundation, version 3.0 only. 11 | * 12 | * This program is distributed in the hope that it will be useful, 13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | * GNU General Public License for more details. 16 | * 17 | * You should have received a copy of the GNU Lesser General Public License 18 | * along with this program. If not, see . 19 | */ 20 | 21 | package com.demonwav.mcdev.mixintestdata.superClass; 22 | 23 | public class Minecrell extends Entity { 24 | } 25 | -------------------------------------------------------------------------------- /obfuscation-explorer/.gitignore: -------------------------------------------------------------------------------- 1 | .sandbox/ 2 | build/ 3 | gen/ 4 | -------------------------------------------------------------------------------- /obfuscation-explorer/changelog.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eigenraven/MinecraftDev/12d5577e37df3bc18b03e111750b31c87d96c666/obfuscation-explorer/changelog.md -------------------------------------------------------------------------------- /obfuscation-explorer/gradle.properties: -------------------------------------------------------------------------------- 1 | # 2 | # Minecraft Development for IntelliJ 3 | # 4 | # https://mcdev.io/ 5 | # 6 | # Copyright (C) 2025 minecraft-dev 7 | # 8 | # This program is free software: you can redistribute it and/or modify 9 | # it under the terms of the GNU Lesser General Public License as published 10 | # by the Free Software Foundation, version 3.0 only. 11 | # 12 | # This program is distributed in the hope that it will be useful, 13 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | # GNU General Public License for more details. 16 | # 17 | # You should have received a copy of the GNU Lesser General Public License 18 | # along with this program. If not, see . 19 | # 20 | 21 | # suppress inspection "UnusedProperty" for whole file 22 | coreVersion = 0.0.1 23 | -------------------------------------------------------------------------------- /obfuscation-explorer/src/main/kotlin/formats/csrg/lang/CSrgLanguage.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * Minecraft Development for IntelliJ 3 | * 4 | * https://mcdev.io/ 5 | * 6 | * Copyright (C) 2025 minecraft-dev 7 | * 8 | * This program is free software: you can redistribute it and/or modify 9 | * it under the terms of the GNU Lesser General Public License as published 10 | * by the Free Software Foundation, version 3.0 only. 11 | * 12 | * This program is distributed in the hope that it will be useful, 13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | * GNU General Public License for more details. 16 | * 17 | * You should have received a copy of the GNU Lesser General Public License 18 | * along with this program. If not, see . 19 | */ 20 | 21 | package io.mcdev.obfex.formats.csrg.lang 22 | 23 | import com.intellij.lang.Language 24 | 25 | object CSrgLanguage : Language("CSRG") 26 | -------------------------------------------------------------------------------- /obfuscation-explorer/src/main/kotlin/formats/enigma/lang/EnigmaLanguage.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * Minecraft Development for IntelliJ 3 | * 4 | * https://mcdev.io/ 5 | * 6 | * Copyright (C) 2025 minecraft-dev 7 | * 8 | * This program is free software: you can redistribute it and/or modify 9 | * it under the terms of the GNU Lesser General Public License as published 10 | * by the Free Software Foundation, version 3.0 only. 11 | * 12 | * This program is distributed in the hope that it will be useful, 13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | * GNU General Public License for more details. 16 | * 17 | * You should have received a copy of the GNU Lesser General Public License 18 | * along with this program. If not, see . 19 | */ 20 | 21 | package io.mcdev.obfex.formats.enigma.lang 22 | 23 | import com.intellij.lang.Language 24 | 25 | object EnigmaLanguage : Language("Enigma") 26 | -------------------------------------------------------------------------------- /obfuscation-explorer/src/main/kotlin/formats/jam/lang/JamLanguage.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * Minecraft Development for IntelliJ 3 | * 4 | * https://mcdev.io/ 5 | * 6 | * Copyright (C) 2025 minecraft-dev 7 | * 8 | * This program is free software: you can redistribute it and/or modify 9 | * it under the terms of the GNU Lesser General Public License as published 10 | * by the Free Software Foundation, version 3.0 only. 11 | * 12 | * This program is distributed in the hope that it will be useful, 13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | * GNU General Public License for more details. 16 | * 17 | * You should have received a copy of the GNU Lesser General Public License 18 | * along with this program. If not, see . 19 | */ 20 | 21 | package io.mcdev.obfex.formats.jam.lang 22 | 23 | import com.intellij.lang.Language 24 | 25 | object JamLanguage : Language("JAM") 26 | -------------------------------------------------------------------------------- /obfuscation-explorer/src/main/kotlin/formats/proguard/lang/ProGuardLanguage.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * Minecraft Development for IntelliJ 3 | * 4 | * https://mcdev.io/ 5 | * 6 | * Copyright (C) 2025 minecraft-dev 7 | * 8 | * This program is free software: you can redistribute it and/or modify 9 | * it under the terms of the GNU Lesser General Public License as published 10 | * by the Free Software Foundation, version 3.0 only. 11 | * 12 | * This program is distributed in the hope that it will be useful, 13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | * GNU General Public License for more details. 16 | * 17 | * You should have received a copy of the GNU Lesser General Public License 18 | * along with this program. If not, see . 19 | */ 20 | 21 | package io.mcdev.obfex.formats.proguard.lang 22 | 23 | import com.intellij.lang.Language 24 | 25 | object ProGuardLanguage : Language("ProGuard") 26 | -------------------------------------------------------------------------------- /obfuscation-explorer/src/main/kotlin/formats/srg/lang/SrgLanguage.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * Minecraft Development for IntelliJ 3 | * 4 | * https://mcdev.io/ 5 | * 6 | * Copyright (C) 2025 minecraft-dev 7 | * 8 | * This program is free software: you can redistribute it and/or modify 9 | * it under the terms of the GNU Lesser General Public License as published 10 | * by the Free Software Foundation, version 3.0 only. 11 | * 12 | * This program is distributed in the hope that it will be useful, 13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | * GNU General Public License for more details. 16 | * 17 | * You should have received a copy of the GNU Lesser General Public License 18 | * along with this program. If not, see . 19 | */ 20 | 21 | package io.mcdev.obfex.formats.srg.lang 22 | 23 | import com.intellij.lang.Language 24 | 25 | object SrgLanguage : Language("SRG") 26 | -------------------------------------------------------------------------------- /obfuscation-explorer/src/main/kotlin/formats/tinyv1/lang/TinyV1Language.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * Minecraft Development for IntelliJ 3 | * 4 | * https://mcdev.io/ 5 | * 6 | * Copyright (C) 2025 minecraft-dev 7 | * 8 | * This program is free software: you can redistribute it and/or modify 9 | * it under the terms of the GNU Lesser General Public License as published 10 | * by the Free Software Foundation, version 3.0 only. 11 | * 12 | * This program is distributed in the hope that it will be useful, 13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | * GNU General Public License for more details. 16 | * 17 | * You should have received a copy of the GNU Lesser General Public License 18 | * along with this program. If not, see . 19 | */ 20 | 21 | package io.mcdev.obfex.formats.tinyv1.lang 22 | 23 | import com.intellij.lang.Language 24 | 25 | object TinyV1Language : Language("TinyV1") 26 | -------------------------------------------------------------------------------- /obfuscation-explorer/src/main/kotlin/formats/tinyv2/lang/TinyV2Language.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * Minecraft Development for IntelliJ 3 | * 4 | * https://mcdev.io/ 5 | * 6 | * Copyright (C) 2025 minecraft-dev 7 | * 8 | * This program is free software: you can redistribute it and/or modify 9 | * it under the terms of the GNU Lesser General Public License as published 10 | * by the Free Software Foundation, version 3.0 only. 11 | * 12 | * This program is distributed in the hope that it will be useful, 13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | * GNU General Public License for more details. 16 | * 17 | * You should have received a copy of the GNU Lesser General Public License 18 | * along with this program. If not, see . 19 | */ 20 | 21 | package io.mcdev.obfex.formats.tinyv2.lang 22 | 23 | import com.intellij.lang.Language 24 | 25 | object TinyV2Language : Language("TinyV2") 26 | -------------------------------------------------------------------------------- /obfuscation-explorer/src/main/kotlin/formats/tsrg/lang/TSrgLanguage.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * Minecraft Development for IntelliJ 3 | * 4 | * https://mcdev.io/ 5 | * 6 | * Copyright (C) 2025 minecraft-dev 7 | * 8 | * This program is free software: you can redistribute it and/or modify 9 | * it under the terms of the GNU Lesser General Public License as published 10 | * by the Free Software Foundation, version 3.0 only. 11 | * 12 | * This program is distributed in the hope that it will be useful, 13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | * GNU General Public License for more details. 16 | * 17 | * You should have received a copy of the GNU Lesser General Public License 18 | * along with this program. If not, see . 19 | */ 20 | 21 | package io.mcdev.obfex.formats.tsrg.lang 22 | 23 | import com.intellij.lang.Language 24 | 25 | object TSrgLanguage : Language("TSRG") 26 | -------------------------------------------------------------------------------- /obfuscation-explorer/src/main/kotlin/formats/tsrg2/lang/TSrg2Language.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * Minecraft Development for IntelliJ 3 | * 4 | * https://mcdev.io/ 5 | * 6 | * Copyright (C) 2025 minecraft-dev 7 | * 8 | * This program is free software: you can redistribute it and/or modify 9 | * it under the terms of the GNU Lesser General Public License as published 10 | * by the Free Software Foundation, version 3.0 only. 11 | * 12 | * This program is distributed in the hope that it will be useful, 13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | * GNU General Public License for more details. 16 | * 17 | * You should have received a copy of the GNU Lesser General Public License 18 | * along with this program. If not, see . 19 | */ 20 | 21 | package io.mcdev.obfex.formats.tsrg2.lang 22 | 23 | import com.intellij.lang.Language 24 | 25 | object TSrg2Language : Language("TSRGv2") 26 | -------------------------------------------------------------------------------- /obfuscation-explorer/src/main/kotlin/formats/xsrg/lang/XSrgLanguage.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * Minecraft Development for IntelliJ 3 | * 4 | * https://mcdev.io/ 5 | * 6 | * Copyright (C) 2025 minecraft-dev 7 | * 8 | * This program is free software: you can redistribute it and/or modify 9 | * it under the terms of the GNU Lesser General Public License as published 10 | * by the Free Software Foundation, version 3.0 only. 11 | * 12 | * This program is distributed in the hope that it will be useful, 13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | * GNU General Public License for more details. 16 | * 17 | * You should have received a copy of the GNU Lesser General Public License 18 | * along with this program. If not, see . 19 | */ 20 | 21 | package io.mcdev.obfex.formats.xsrg.lang 22 | 23 | import com.intellij.lang.Language 24 | 25 | object XSrgLanguage : Language("XSRG") 26 | -------------------------------------------------------------------------------- /obfuscation-explorer/src/main/resources/fileTypes/enigma.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /obfuscation-explorer/src/main/resources/fileTypes/jam.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /obfuscation-explorer/src/main/resources/fileTypes/tinyv1.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /obfuscation-explorer/src/main/resources/fileTypes/tinyv2.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /obfuscation-explorer/src/test/kotlin/test-util.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * Minecraft Development for IntelliJ 3 | * 4 | * https://mcdev.io/ 5 | * 6 | * Copyright (C) 2025 minecraft-dev 7 | * 8 | * This program is free software: you can redistribute it and/or modify 9 | * it under the terms of the GNU Lesser General Public License as published 10 | * by the Free Software Foundation, version 3.0 only. 11 | * 12 | * This program is distributed in the hope that it will be useful, 13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | * GNU General Public License for more details. 16 | * 17 | * You should have received a copy of the GNU Lesser General Public License 18 | * along with this program. If not, see . 19 | */ 20 | 21 | package io.mcdev.obfex 22 | 23 | fun String.filterCrlf() = this.filter { it != '\r' } 24 | -------------------------------------------------------------------------------- /obfuscation-explorer/src/test/resources/io/mcdev/obfex/formats/srg/lexer/fixtures/test.srg: -------------------------------------------------------------------------------- 1 | # CL: yu net/minecraft/Comment 2 | PK: ./ net/minecraft/server 3 | CL: uih net/minecraft/CommentTest # CL: op uk/jr/Operator 4 | CL: ght net/minecraft/Test 5 | CL: ght$ds net/minecraft/Test$Example 6 | CL: ght$ds$bg net/minecraft/Test$Example$Inner 7 | FD: ght/rft net/minecraft/Test/log 8 | FD: ght$ds/juh net/minecraft/Test$Example/server 9 | MD: ght/hyuip (I)Z net/minecraft/Test/isEven (I)Z 10 | MD: ght$ds/hyuip (I)Z net/minecraft/Test$Example/isOdd (I)Z 11 | -------------------------------------------------------------------------------- /obfuscation-explorer/src/test/resources/io/mcdev/obfex/formats/tinyv2/lexer/fixtures/test.tiny: -------------------------------------------------------------------------------- 1 | tiny 2 0 official intermediary named 2 | someProperty someValue 3 | anotherProperty 4 | c a class_123 pkg/SomeClass 5 | c Class comment 6 | m (III)V a method_456 someMethod 7 | p 1 param_0 x 8 | c Param comment 9 | p 2 param_1 y 10 | p 3 param_2 z 11 | c Method comment 12 | f [I a field_789 someField 13 | c Field comment 14 | c b class_234 pkg/xy/AnotherClass 15 | m (Ljava/lang/String;)I a method_567 anotherMethod 16 | -------------------------------------------------------------------------------- /obfuscation-explorer/src/test/resources/io/mcdev/obfex/formats/tsrg2/lexer/fixtures/test.tsrg2: -------------------------------------------------------------------------------- 1 | tsrg2 left right 2 | com/mojang/blaze3d/Blaze3D com/mojang/blaze3d/Blaze3D 3 | ()V 4 | getTime ()D m_83640_ 5 | static 6 | process (Lcom/mojang/blaze3d/pipeline/RenderPipeline;F)V m_166118_ 7 | static 8 | 0 p_166119_ p_166119_ 9 | 1 p_166120_ p_166120_ 10 | com/mojang/blaze3d/audio/Channel com/mojang/blaze3d/audio/ChannelTest 11 | BUFFER_DURATION_SECONDS f_166124_ 12 | LOGGER f_83641_ 13 | QUEUED_BUFFER_COUNT f_166125_ 14 | ()V 15 | static 16 | (I)V 17 | 0 p_83648_ p_83648_ 18 | attachBufferStream (Lnet/minecraft/client/sounds/AudioStream;)V m_83658_ 19 | 0 p_83659_ p_83659_ 20 | initialized f_83643_ 21 | attachStaticBuffer (Lcom/mojang/blaze3d/audio/SoundBuffer;)V m_83656_ 22 | 0 p_83657_ TEST 23 | calculateBufferSize (Ljavax/sound/sampled/AudioFormat;I)I m_83660_ 24 | static 25 | 0 p_83661_ p_83661_test 26 | 1 p_83662_ p_83662_test 27 | -------------------------------------------------------------------------------- /src/gradle-tooling-extension/java/com/demonwav/mcdev/platform/mcp/gradle/tooling/McpModel.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Minecraft Development for IntelliJ 3 | * 4 | * https://mcdev.io/ 5 | * 6 | * Copyright (C) 2025 minecraft-dev 7 | * 8 | * This program is free software: you can redistribute it and/or modify 9 | * it under the terms of the GNU Lesser General Public License as published 10 | * by the Free Software Foundation, version 3.0 only. 11 | * 12 | * This program is distributed in the hope that it will be useful, 13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | * GNU General Public License for more details. 16 | * 17 | * You should have received a copy of the GNU Lesser General Public License 18 | * along with this program. If not, see . 19 | */ 20 | 21 | package com.demonwav.mcdev.platform.mcp.gradle.tooling; 22 | 23 | public interface McpModel { 24 | String getMcpVersion(); 25 | } 26 | -------------------------------------------------------------------------------- /src/gradle-tooling-extension/resources/META-INF/services/org.jetbrains.plugins.gradle.tooling.ModelBuilderService: -------------------------------------------------------------------------------- 1 | com.demonwav.mcdev.platform.mcp.gradle.tooling.archloom.ArchitecturyModelBuilderImpl 2 | com.demonwav.mcdev.platform.mcp.gradle.tooling.fabricloom.FabricLoomModelBuilderImpl 3 | com.demonwav.mcdev.platform.mcp.gradle.tooling.neogradle.NeoGradle7ModelBuilderImpl 4 | com.demonwav.mcdev.platform.mcp.gradle.tooling.neomoddev.NeoModDevGradleModelBuilderImpl 5 | com.demonwav.mcdev.platform.mcp.gradle.tooling.vanillagradle.VanillaGradleModelBuilderImpl 6 | com.demonwav.mcdev.platform.mcp.gradle.tooling.McpModelFG2BuilderImpl 7 | com.demonwav.mcdev.platform.mcp.gradle.tooling.McpModelFG3BuilderImpl 8 | com.demonwav.mcdev.platform.mcp.gradle.tooling.McpModelRFGBuilderImpl 9 | -------------------------------------------------------------------------------- /src/main/kotlin/errorreporter/package-info.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * Minecraft Development for IntelliJ 3 | * 4 | * https://mcdev.io/ 5 | * 6 | * Copyright (C) 2025 minecraft-dev 7 | * 8 | * This program is free software: you can redistribute it and/or modify 9 | * it under the terms of the GNU Lesser General Public License as published 10 | * by the Free Software Foundation, version 3.0 only. 11 | * 12 | * This program is distributed in the hope that it will be useful, 13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | * GNU General Public License for more details. 16 | * 17 | * You should have received a copy of the GNU Lesser General Public License 18 | * along with this program. If not, see . 19 | */ 20 | 21 | /** 22 | * This package was taken from https://github.com/go-lang-plugin-org/go-lang-idea-plugin/pull/909 23 | */ 24 | package com.demonwav.mcdev.errorreporter 25 | -------------------------------------------------------------------------------- /src/main/kotlin/insight/generation/GenerationData.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * Minecraft Development for IntelliJ 3 | * 4 | * https://mcdev.io/ 5 | * 6 | * Copyright (C) 2025 minecraft-dev 7 | * 8 | * This program is free software: you can redistribute it and/or modify 9 | * it under the terms of the GNU Lesser General Public License as published 10 | * by the Free Software Foundation, version 3.0 only. 11 | * 12 | * This program is distributed in the hope that it will be useful, 13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | * GNU General Public License for more details. 16 | * 17 | * You should have received a copy of the GNU Lesser General Public License 18 | * along with this program. If not, see . 19 | */ 20 | 21 | package com.demonwav.mcdev.insight.generation 22 | 23 | interface GenerationData 24 | -------------------------------------------------------------------------------- /src/main/kotlin/nbt/lang/NbttLanguage.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * Minecraft Development for IntelliJ 3 | * 4 | * https://mcdev.io/ 5 | * 6 | * Copyright (C) 2025 minecraft-dev 7 | * 8 | * This program is free software: you can redistribute it and/or modify 9 | * it under the terms of the GNU Lesser General Public License as published 10 | * by the Free Software Foundation, version 3.0 only. 11 | * 12 | * This program is distributed in the hope that it will be useful, 13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | * GNU General Public License for more details. 16 | * 17 | * You should have received a copy of the GNU Lesser General Public License 18 | * along with this program. If not, see . 19 | */ 20 | 21 | package com.demonwav.mcdev.nbt.lang 22 | 23 | import com.intellij.lang.Language 24 | 25 | object NbttLanguage : Language("NBTT") 26 | -------------------------------------------------------------------------------- /src/main/kotlin/nbt/lang/psi/NbttElement.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * Minecraft Development for IntelliJ 3 | * 4 | * https://mcdev.io/ 5 | * 6 | * Copyright (C) 2025 minecraft-dev 7 | * 8 | * This program is free software: you can redistribute it and/or modify 9 | * it under the terms of the GNU Lesser General Public License as published 10 | * by the Free Software Foundation, version 3.0 only. 11 | * 12 | * This program is distributed in the hope that it will be useful, 13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | * GNU General Public License for more details. 16 | * 17 | * You should have received a copy of the GNU Lesser General Public License 18 | * along with this program. If not, see . 19 | */ 20 | 21 | package com.demonwav.mcdev.nbt.lang.psi 22 | 23 | import com.intellij.psi.PsiElement 24 | 25 | interface NbttElement : PsiElement 26 | -------------------------------------------------------------------------------- /src/main/kotlin/platform/mcp/at/AtLanguage.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * Minecraft Development for IntelliJ 3 | * 4 | * https://mcdev.io/ 5 | * 6 | * Copyright (C) 2025 minecraft-dev 7 | * 8 | * This program is free software: you can redistribute it and/or modify 9 | * it under the terms of the GNU Lesser General Public License as published 10 | * by the Free Software Foundation, version 3.0 only. 11 | * 12 | * This program is distributed in the hope that it will be useful, 13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | * GNU General Public License for more details. 16 | * 17 | * You should have received a copy of the GNU Lesser General Public License 18 | * along with this program. If not, see . 19 | */ 20 | 21 | package com.demonwav.mcdev.platform.mcp.at 22 | 23 | import com.intellij.lang.Language 24 | 25 | object AtLanguage : Language("Access Transformers") 26 | -------------------------------------------------------------------------------- /src/main/kotlin/platform/mcp/at/psi/AtElement.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * Minecraft Development for IntelliJ 3 | * 4 | * https://mcdev.io/ 5 | * 6 | * Copyright (C) 2025 minecraft-dev 7 | * 8 | * This program is free software: you can redistribute it and/or modify 9 | * it under the terms of the GNU Lesser General Public License as published 10 | * by the Free Software Foundation, version 3.0 only. 11 | * 12 | * This program is distributed in the hope that it will be useful, 13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | * GNU General Public License for more details. 16 | * 17 | * You should have received a copy of the GNU Lesser General Public License 18 | * along with this program. If not, see . 19 | */ 20 | 21 | package com.demonwav.mcdev.platform.mcp.at.psi 22 | 23 | import com.intellij.psi.PsiElement 24 | 25 | interface AtElement : PsiElement 26 | -------------------------------------------------------------------------------- /src/main/kotlin/platform/mcp/aw/AwLanguage.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * Minecraft Development for IntelliJ 3 | * 4 | * https://mcdev.io/ 5 | * 6 | * Copyright (C) 2025 minecraft-dev 7 | * 8 | * This program is free software: you can redistribute it and/or modify 9 | * it under the terms of the GNU Lesser General Public License as published 10 | * by the Free Software Foundation, version 3.0 only. 11 | * 12 | * This program is distributed in the hope that it will be useful, 13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | * GNU General Public License for more details. 16 | * 17 | * You should have received a copy of the GNU Lesser General Public License 18 | * along with this program. If not, see . 19 | */ 20 | 21 | package com.demonwav.mcdev.platform.mcp.aw 22 | 23 | import com.intellij.lang.Language 24 | 25 | object AwLanguage : Language("Access Widener") 26 | -------------------------------------------------------------------------------- /src/main/kotlin/platform/mcp/aw/psi/AwElement.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * Minecraft Development for IntelliJ 3 | * 4 | * https://mcdev.io/ 5 | * 6 | * Copyright (C) 2025 minecraft-dev 7 | * 8 | * This program is free software: you can redistribute it and/or modify 9 | * it under the terms of the GNU Lesser General Public License as published 10 | * by the Free Software Foundation, version 3.0 only. 11 | * 12 | * This program is distributed in the hope that it will be useful, 13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | * GNU General Public License for more details. 16 | * 17 | * You should have received a copy of the GNU Lesser General Public License 18 | * along with this program. If not, see . 19 | */ 20 | 21 | package com.demonwav.mcdev.platform.mcp.aw.psi 22 | 23 | import com.intellij.psi.PsiElement 24 | 25 | interface AwElement : PsiElement 26 | -------------------------------------------------------------------------------- /src/main/kotlin/platform/mcp/aw/psi/mixins/AwClassEntryMixin.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * Minecraft Development for IntelliJ 3 | * 4 | * https://mcdev.io/ 5 | * 6 | * Copyright (C) 2025 minecraft-dev 7 | * 8 | * This program is free software: you can redistribute it and/or modify 9 | * it under the terms of the GNU Lesser General Public License as published 10 | * by the Free Software Foundation, version 3.0 only. 11 | * 12 | * This program is distributed in the hope that it will be useful, 13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | * GNU General Public License for more details. 16 | * 17 | * You should have received a copy of the GNU Lesser General Public License 18 | * along with this program. If not, see . 19 | */ 20 | 21 | package com.demonwav.mcdev.platform.mcp.aw.psi.mixins 22 | 23 | interface AwClassEntryMixin : AwEntryMixin 24 | -------------------------------------------------------------------------------- /src/main/kotlin/platform/mcp/mappings/HasCustomNamedMappings.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * Minecraft Development for IntelliJ 3 | * 4 | * https://mcdev.io/ 5 | * 6 | * Copyright (C) 2025 minecraft-dev 7 | * 8 | * This program is free software: you can redistribute it and/or modify 9 | * it under the terms of the GNU Lesser General Public License as published 10 | * by the Free Software Foundation, version 3.0 only. 11 | * 12 | * This program is distributed in the hope that it will be useful, 13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | * GNU General Public License for more details. 16 | * 17 | * You should have received a copy of the GNU Lesser General Public License 18 | * along with this program. If not, see . 19 | */ 20 | 21 | package com.demonwav.mcdev.platform.mcp.mappings 22 | 23 | interface HasCustomNamedMappings { 24 | val namedToMojangManager: MappingsManager? 25 | } 26 | -------------------------------------------------------------------------------- /src/main/kotlin/platform/mcp/srg/SrgType.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * Minecraft Development for IntelliJ 3 | * 4 | * https://mcdev.io/ 5 | * 6 | * Copyright (C) 2025 minecraft-dev 7 | * 8 | * This program is free software: you can redistribute it and/or modify 9 | * it under the terms of the GNU Lesser General Public License as published 10 | * by the Free Software Foundation, version 3.0 only. 11 | * 12 | * This program is distributed in the hope that it will be useful, 13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | * GNU General Public License for more details. 16 | * 17 | * You should have received a copy of the GNU Lesser General Public License 18 | * along with this program. If not, see . 19 | */ 20 | 21 | package com.demonwav.mcdev.platform.mcp.srg 22 | 23 | enum class SrgType(val srgParser: SrgParser) { 24 | SRG(StandardSrgParser), 25 | TSRG(TinySrgParser), 26 | ; 27 | } 28 | -------------------------------------------------------------------------------- /src/main/kotlin/platform/mixin/expression/MEExpressionLanguage.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * Minecraft Development for IntelliJ 3 | * 4 | * https://mcdev.io/ 5 | * 6 | * Copyright (C) 2025 minecraft-dev 7 | * 8 | * This program is free software: you can redistribute it and/or modify 9 | * it under the terms of the GNU Lesser General Public License as published 10 | * by the Free Software Foundation, version 3.0 only. 11 | * 12 | * This program is distributed in the hope that it will be useful, 13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | * GNU General Public License for more details. 16 | * 17 | * You should have received a copy of the GNU Lesser General Public License 18 | * along with this program. If not, see . 19 | */ 20 | 21 | package com.demonwav.mcdev.platform.mixin.expression 22 | 23 | import com.intellij.lang.Language 24 | 25 | object MEExpressionLanguage : Language("MEExpression") 26 | -------------------------------------------------------------------------------- /src/main/kotlin/translations/Translation.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * Minecraft Development for IntelliJ 3 | * 4 | * https://mcdev.io/ 5 | * 6 | * Copyright (C) 2025 minecraft-dev 7 | * 8 | * This program is free software: you can redistribute it and/or modify 9 | * it under the terms of the GNU Lesser General Public License as published 10 | * by the Free Software Foundation, version 3.0 only. 11 | * 12 | * This program is distributed in the hope that it will be useful, 13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | * GNU General Public License for more details. 16 | * 17 | * You should have received a copy of the GNU Lesser General Public License 18 | * along with this program. If not, see . 19 | */ 20 | 21 | package com.demonwav.mcdev.translations 22 | 23 | data class Translation(val key: String, val text: String) { 24 | val trimmedKey = key.trim() 25 | } 26 | -------------------------------------------------------------------------------- /src/main/kotlin/translations/lang/MCLangLanguage.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * Minecraft Development for IntelliJ 3 | * 4 | * https://mcdev.io/ 5 | * 6 | * Copyright (C) 2025 minecraft-dev 7 | * 8 | * This program is free software: you can redistribute it and/or modify 9 | * it under the terms of the GNU Lesser General Public License as published 10 | * by the Free Software Foundation, version 3.0 only. 11 | * 12 | * This program is distributed in the hope that it will be useful, 13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | * GNU General Public License for more details. 16 | * 17 | * You should have received a copy of the GNU Lesser General Public License 18 | * along with this program. If not, see . 19 | */ 20 | 21 | package com.demonwav.mcdev.translations.lang 22 | 23 | import com.intellij.lang.Language 24 | 25 | object MCLangLanguage : Language("MCLang") 26 | -------------------------------------------------------------------------------- /src/main/kotlin/util/Constants.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * Minecraft Development for IntelliJ 3 | * 4 | * https://mcdev.io/ 5 | * 6 | * Copyright (C) 2025 minecraft-dev 7 | * 8 | * This program is free software: you can redistribute it and/or modify 9 | * it under the terms of the GNU Lesser General Public License as published 10 | * by the Free Software Foundation, version 3.0 only. 11 | * 12 | * This program is distributed in the hope that it will be useful, 13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | * GNU General Public License for more details. 16 | * 17 | * You should have received a copy of the GNU Lesser General Public License 18 | * along with this program. If not, see . 19 | */ 20 | 21 | package com.demonwav.mcdev.util 22 | 23 | object Constants { 24 | 25 | const val JAVA_UTIL_LOGGER = "java.util.logging.Logger" 26 | const val SLF4J_LOGGER = "org.slf4j.Logger" 27 | } 28 | -------------------------------------------------------------------------------- /src/main/kotlin/util/SourceType.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * Minecraft Development for IntelliJ 3 | * 4 | * https://mcdev.io/ 5 | * 6 | * Copyright (C) 2025 minecraft-dev 7 | * 8 | * This program is free software: you can redistribute it and/or modify 9 | * it under the terms of the GNU Lesser General Public License as published 10 | * by the Free Software Foundation, version 3.0 only. 11 | * 12 | * This program is distributed in the hope that it will be useful, 13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | * GNU General Public License for more details. 16 | * 17 | * You should have received a copy of the GNU Lesser General Public License 18 | * along with this program. If not, see . 19 | */ 20 | 21 | package com.demonwav.mcdev.util 22 | 23 | enum class SourceType { 24 | SOURCE, 25 | RESOURCE, 26 | TEST_SOURCE, 27 | TEST_RESOURCE, 28 | } 29 | -------------------------------------------------------------------------------- /src/main/kotlin/util/reference/InspectionReference.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * Minecraft Development for IntelliJ 3 | * 4 | * https://mcdev.io/ 5 | * 6 | * Copyright (C) 2025 minecraft-dev 7 | * 8 | * This program is free software: you can redistribute it and/or modify 9 | * it under the terms of the GNU Lesser General Public License as published 10 | * by the Free Software Foundation, version 3.0 only. 11 | * 12 | * This program is distributed in the hope that it will be useful, 13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | * GNU General Public License for more details. 16 | * 17 | * You should have received a copy of the GNU Lesser General Public License 18 | * along with this program. If not, see . 19 | */ 20 | 21 | package com.demonwav.mcdev.util.reference 22 | 23 | interface InspectionReference { 24 | val description: String 25 | val unresolved: Boolean 26 | } 27 | -------------------------------------------------------------------------------- /src/main/resources/assets/icons/general/EventListener_dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eigenraven/MinecraftDev/12d5577e37df3bc18b03e111750b31c87d96c666/src/main/resources/assets/icons/general/EventListener_dark.png -------------------------------------------------------------------------------- /src/main/resources/assets/icons/general/MinecraftTemplate.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eigenraven/MinecraftDev/12d5577e37df3bc18b03e111750b31c87d96c666/src/main/resources/assets/icons/general/MinecraftTemplate.png -------------------------------------------------------------------------------- /src/main/resources/assets/icons/general/MinecraftTemplate@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eigenraven/MinecraftDev/12d5577e37df3bc18b03e111750b31c87d96c666/src/main/resources/assets/icons/general/MinecraftTemplate@2x.png -------------------------------------------------------------------------------- /src/main/resources/assets/icons/general/plugin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eigenraven/MinecraftDev/12d5577e37df3bc18b03e111750b31c87d96c666/src/main/resources/assets/icons/general/plugin.png -------------------------------------------------------------------------------- /src/main/resources/assets/icons/platform/Adventure.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eigenraven/MinecraftDev/12d5577e37df3bc18b03e111750b31c87d96c666/src/main/resources/assets/icons/platform/Adventure.png -------------------------------------------------------------------------------- /src/main/resources/assets/icons/platform/Adventure@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eigenraven/MinecraftDev/12d5577e37df3bc18b03e111750b31c87d96c666/src/main/resources/assets/icons/platform/Adventure@2x.png -------------------------------------------------------------------------------- /src/main/resources/assets/icons/platform/Architectury.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eigenraven/MinecraftDev/12d5577e37df3bc18b03e111750b31c87d96c666/src/main/resources/assets/icons/platform/Architectury.png -------------------------------------------------------------------------------- /src/main/resources/assets/icons/platform/Architectury@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eigenraven/MinecraftDev/12d5577e37df3bc18b03e111750b31c87d96c666/src/main/resources/assets/icons/platform/Architectury@2x.png -------------------------------------------------------------------------------- /src/main/resources/assets/icons/platform/Bukkit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eigenraven/MinecraftDev/12d5577e37df3bc18b03e111750b31c87d96c666/src/main/resources/assets/icons/platform/Bukkit.png -------------------------------------------------------------------------------- /src/main/resources/assets/icons/platform/Bukkit@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eigenraven/MinecraftDev/12d5577e37df3bc18b03e111750b31c87d96c666/src/main/resources/assets/icons/platform/Bukkit@2x.png -------------------------------------------------------------------------------- /src/main/resources/assets/icons/platform/BungeeCord.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eigenraven/MinecraftDev/12d5577e37df3bc18b03e111750b31c87d96c666/src/main/resources/assets/icons/platform/BungeeCord.png -------------------------------------------------------------------------------- /src/main/resources/assets/icons/platform/BungeeCord@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eigenraven/MinecraftDev/12d5577e37df3bc18b03e111750b31c87d96c666/src/main/resources/assets/icons/platform/BungeeCord@2x.png -------------------------------------------------------------------------------- /src/main/resources/assets/icons/platform/Fabric.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eigenraven/MinecraftDev/12d5577e37df3bc18b03e111750b31c87d96c666/src/main/resources/assets/icons/platform/Fabric.png -------------------------------------------------------------------------------- /src/main/resources/assets/icons/platform/Fabric@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eigenraven/MinecraftDev/12d5577e37df3bc18b03e111750b31c87d96c666/src/main/resources/assets/icons/platform/Fabric@2x.png -------------------------------------------------------------------------------- /src/main/resources/assets/icons/platform/Forge.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eigenraven/MinecraftDev/12d5577e37df3bc18b03e111750b31c87d96c666/src/main/resources/assets/icons/platform/Forge.png -------------------------------------------------------------------------------- /src/main/resources/assets/icons/platform/Forge@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eigenraven/MinecraftDev/12d5577e37df3bc18b03e111750b31c87d96c666/src/main/resources/assets/icons/platform/Forge@2x.png -------------------------------------------------------------------------------- /src/main/resources/assets/icons/platform/MCP.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eigenraven/MinecraftDev/12d5577e37df3bc18b03e111750b31c87d96c666/src/main/resources/assets/icons/platform/MCP.png -------------------------------------------------------------------------------- /src/main/resources/assets/icons/platform/MCP@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eigenraven/MinecraftDev/12d5577e37df3bc18b03e111750b31c87d96c666/src/main/resources/assets/icons/platform/MCP@2x.png -------------------------------------------------------------------------------- /src/main/resources/assets/icons/platform/MCP@2x_dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eigenraven/MinecraftDev/12d5577e37df3bc18b03e111750b31c87d96c666/src/main/resources/assets/icons/platform/MCP@2x_dark.png -------------------------------------------------------------------------------- /src/main/resources/assets/icons/platform/MCP_dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eigenraven/MinecraftDev/12d5577e37df3bc18b03e111750b31c87d96c666/src/main/resources/assets/icons/platform/MCP_dark.png -------------------------------------------------------------------------------- /src/main/resources/assets/icons/platform/Minecraft.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eigenraven/MinecraftDev/12d5577e37df3bc18b03e111750b31c87d96c666/src/main/resources/assets/icons/platform/Minecraft.png -------------------------------------------------------------------------------- /src/main/resources/assets/icons/platform/Minecraft@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eigenraven/MinecraftDev/12d5577e37df3bc18b03e111750b31c87d96c666/src/main/resources/assets/icons/platform/Minecraft@2x.png -------------------------------------------------------------------------------- /src/main/resources/assets/icons/platform/Mixins.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eigenraven/MinecraftDev/12d5577e37df3bc18b03e111750b31c87d96c666/src/main/resources/assets/icons/platform/Mixins.png -------------------------------------------------------------------------------- /src/main/resources/assets/icons/platform/Mixins@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eigenraven/MinecraftDev/12d5577e37df3bc18b03e111750b31c87d96c666/src/main/resources/assets/icons/platform/Mixins@2x.png -------------------------------------------------------------------------------- /src/main/resources/assets/icons/platform/Mixins@2x_dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eigenraven/MinecraftDev/12d5577e37df3bc18b03e111750b31c87d96c666/src/main/resources/assets/icons/platform/Mixins@2x_dark.png -------------------------------------------------------------------------------- /src/main/resources/assets/icons/platform/Mixins_dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eigenraven/MinecraftDev/12d5577e37df3bc18b03e111750b31c87d96c666/src/main/resources/assets/icons/platform/Mixins_dark.png -------------------------------------------------------------------------------- /src/main/resources/assets/icons/platform/NeoForge.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eigenraven/MinecraftDev/12d5577e37df3bc18b03e111750b31c87d96c666/src/main/resources/assets/icons/platform/NeoForge.png -------------------------------------------------------------------------------- /src/main/resources/assets/icons/platform/Paper.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eigenraven/MinecraftDev/12d5577e37df3bc18b03e111750b31c87d96c666/src/main/resources/assets/icons/platform/Paper.png -------------------------------------------------------------------------------- /src/main/resources/assets/icons/platform/Paper@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eigenraven/MinecraftDev/12d5577e37df3bc18b03e111750b31c87d96c666/src/main/resources/assets/icons/platform/Paper@2x.png -------------------------------------------------------------------------------- /src/main/resources/assets/icons/platform/Spigot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eigenraven/MinecraftDev/12d5577e37df3bc18b03e111750b31c87d96c666/src/main/resources/assets/icons/platform/Spigot.png -------------------------------------------------------------------------------- /src/main/resources/assets/icons/platform/Spigot@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eigenraven/MinecraftDev/12d5577e37df3bc18b03e111750b31c87d96c666/src/main/resources/assets/icons/platform/Spigot@2x.png -------------------------------------------------------------------------------- /src/main/resources/assets/icons/platform/Sponge.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eigenraven/MinecraftDev/12d5577e37df3bc18b03e111750b31c87d96c666/src/main/resources/assets/icons/platform/Sponge.png -------------------------------------------------------------------------------- /src/main/resources/assets/icons/platform/Sponge@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eigenraven/MinecraftDev/12d5577e37df3bc18b03e111750b31c87d96c666/src/main/resources/assets/icons/platform/Sponge@2x.png -------------------------------------------------------------------------------- /src/main/resources/assets/icons/platform/Sponge@2x_dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eigenraven/MinecraftDev/12d5577e37df3bc18b03e111750b31c87d96c666/src/main/resources/assets/icons/platform/Sponge@2x_dark.png -------------------------------------------------------------------------------- /src/main/resources/assets/icons/platform/Sponge_dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eigenraven/MinecraftDev/12d5577e37df3bc18b03e111750b31c87d96c666/src/main/resources/assets/icons/platform/Sponge_dark.png -------------------------------------------------------------------------------- /src/main/resources/assets/icons/platform/Velocity.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eigenraven/MinecraftDev/12d5577e37df3bc18b03e111750b31c87d96c666/src/main/resources/assets/icons/platform/Velocity.png -------------------------------------------------------------------------------- /src/main/resources/assets/icons/platform/Velocity@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eigenraven/MinecraftDev/12d5577e37df3bc18b03e111750b31c87d96c666/src/main/resources/assets/icons/platform/Velocity@2x.png -------------------------------------------------------------------------------- /src/main/resources/assets/icons/platform/Waterfall.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eigenraven/MinecraftDev/12d5577e37df3bc18b03e111750b31c87d96c666/src/main/resources/assets/icons/platform/Waterfall.png -------------------------------------------------------------------------------- /src/main/resources/assets/icons/platform/Waterfall@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eigenraven/MinecraftDev/12d5577e37df3bc18b03e111750b31c87d96c666/src/main/resources/assets/icons/platform/Waterfall@2x.png -------------------------------------------------------------------------------- /src/main/resources/fileTemplates/code/Mixin Overwrite Fallback.java.ft: -------------------------------------------------------------------------------- 1 | // Source of original method is not available#if ( $RETURN_TYPE != "void" ) 2 | 3 | return $DEFAULT_RETURN_VALUE;#end 4 | -------------------------------------------------------------------------------- /src/main/resources/fileTemplates/j2ee/architectury/architectury_build.gradle.html: -------------------------------------------------------------------------------- 1 | 20 | 21 | 22 | 23 |

This is a built-in file template used to create a new build.gradle file for Architectury projects.

24 | 25 | 26 | -------------------------------------------------------------------------------- /src/main/resources/fileTemplates/j2ee/architectury/architectury_common_main_class.java.ft: -------------------------------------------------------------------------------- 1 | package ${PACKAGE_NAME}; 2 | 3 | public class ${CLASS_NAME} 4 | { 5 | public static final String MOD_ID = "${MOD_ID}"; 6 | 7 | public static void init() { 8 | 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/main/resources/fileTemplates/j2ee/architectury/architectury_common_mixins.json.ft: -------------------------------------------------------------------------------- 1 | { 2 | "required": true, 3 | "minVersion": "0.8", 4 | "package": "${PACKAGE_NAME}.mixin", 5 | "compatibilityLevel": "JAVA_${JAVA_VERSION}", 6 | "mixins": [ 7 | ], 8 | "client": [ 9 | ], 10 | "injectors": { 11 | "defaultRequire": 1 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/main/resources/fileTemplates/j2ee/architectury/architectury_fabric_main_class.java.ft: -------------------------------------------------------------------------------- 1 | package ${PACKAGE_NAME}.fabric; 2 | 3 | import ${PACKAGE_NAME}.${CLASS_NAME}; 4 | import net.fabricmc.api.ModInitializer; 5 | 6 | public class ${CLASS_NAME}Fabric implements ModInitializer { 7 | @Override 8 | public void onInitialize() { 9 | ${CLASS_NAME}.init(); 10 | } 11 | } -------------------------------------------------------------------------------- /src/main/resources/fileTemplates/j2ee/architectury/architectury_fabric_mixins.json.ft: -------------------------------------------------------------------------------- 1 | { 2 | "required": true, 3 | "minVersion": "0.8", 4 | "package": "${PACKAGE_NAME}.fabric.mixin", 5 | "compatibilityLevel": "JAVA_${JAVA_VERSION}", 6 | "mixins": [ 7 | ], 8 | "client": [ 9 | ], 10 | "injectors": { 11 | "defaultRequire": 1 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/main/resources/fileTemplates/j2ee/architectury/architectury_fabric_mod.json.ft: -------------------------------------------------------------------------------- 1 | #set ( $d = "$" ) 2 | { 3 | "schemaVersion": 1, 4 | "id": "${MOD_ID}", 5 | "version": "${d}{version}", 6 | 7 | "name": "${MOD_NAME}", 8 | "description": "${MOD_DESCRIPTION}", 9 | "authors": [], 10 | "contact": {}, 11 | 12 | "license": "${LICENSE}", 13 | "icon": "icon.png", 14 | 15 | "environment": "${MOD_ENVIRONMENT}", 16 | "entrypoints": { 17 | "main": [ 18 | "${FABRIC_CLASS_NAME_FQN}" 19 | ] 20 | }, 21 | #if (${MIXINS}) 22 | "mixins": [ 23 | "${MOD_ID}.mixins.json", 24 | "${MOD_ID}-common.mixins.json" 25 | ], 26 | #end 27 | "depends": { 28 | "fabricloader": ">=${FABRIC_LOADER_VERSION}", 29 | #if (${FABRIC_API}) 30 | "fabric": ">=${FABRIC_API_VERSION}", 31 | #end 32 | #if (${ARCHITECTURY_API}) 33 | "architectury": ">=${ARCHITECTURY_API_VERSION}", 34 | #end 35 | "minecraft": ">=${MC_VERSION}" 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /src/main/resources/fileTemplates/j2ee/architectury/architectury_forge_gradle.properties.ft: -------------------------------------------------------------------------------- 1 | loom.platform=forge -------------------------------------------------------------------------------- /src/main/resources/fileTemplates/j2ee/architectury/architectury_forge_main_class.java.ft: -------------------------------------------------------------------------------- 1 | package ${PACKAGE_NAME}.forge; 2 | 3 | #if (${ARCHITECTURY_API}) 4 | import ${ARCHITECTURY_PACKAGE}.platform.forge.EventBuses; 5 | #end 6 | import ${PACKAGE_NAME}.${CLASS_NAME}; 7 | import net.minecraftforge.fml.common.Mod; 8 | import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext; 9 | 10 | @Mod(${CLASS_NAME}.MOD_ID) 11 | public class ${CLASS_NAME}Forge { 12 | public ${CLASS_NAME}Forge() { 13 | #if (${ARCHITECTURY_API}) 14 | // Submit our event bus to let architectury register our content on the right time 15 | EventBuses.registerModEventBus(${CLASS_NAME}.MOD_ID, FMLJavaModLoadingContext.get().getModEventBus()); 16 | #end 17 | ${CLASS_NAME}.init(); 18 | } 19 | } -------------------------------------------------------------------------------- /src/main/resources/fileTemplates/j2ee/architectury/architectury_forge_mixins.json.ft: -------------------------------------------------------------------------------- 1 | { 2 | "required": true, 3 | "minVersion": "0.8", 4 | "package": "${PACKAGE_NAME}.forge.mixin", 5 | "compatibilityLevel": "JAVA_${JAVA_VERSION}", 6 | "mixins": [ 7 | ], 8 | "client": [ 9 | ], 10 | "injectors": { 11 | "defaultRequire": 1 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/main/resources/fileTemplates/j2ee/architectury/architectury_forge_pack.mcmeta.ft: -------------------------------------------------------------------------------- 1 | { 2 | "pack": { 3 | "description": "${ARTIFACT_ID} resources", 4 | #if (${PACK_COMMENT} != "") 5 | "pack_format": ${PACK_FORMAT}, 6 | "_comment": "${PACK_COMMENT}" 7 | #else 8 | "pack_format": ${PACK_FORMAT} 9 | #end 10 | #if (${FORGE_DATA}) 11 | #if (${FORGE_DATA.resourcePackFormat}) 12 | ,"forge:resource_pack_format": ${FORGE_DATA.resourcePackFormat} 13 | #end 14 | #if (${FORGE_DATA.dataPackFormat}) 15 | ,"forge:data_pack_format": ${FORGE_DATA.dataPackFormat} 16 | #end 17 | #if (${FORGE_DATA.serverDataPackFormat}) 18 | ,"forge:server_data_pack_format": ${FORGE_DATA.serverDataPackFormat} 19 | #end 20 | #end 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /src/main/resources/fileTemplates/j2ee/architectury/architectury_gradle.properties.ft: -------------------------------------------------------------------------------- 1 | org.gradle.jvmargs=-Xmx2048M 2 | 3 | minecraft_version=${MC_VERSION} 4 | enabled_platforms=fabric,forge 5 | 6 | archives_base_name=${ARTIFACT_ID} 7 | mod_version=${VERSION} 8 | maven_group=${GROUP_ID} 9 | 10 | architectury_version=${ARCHITECTURY_API_VERSION} 11 | 12 | fabric_loader_version=${FABRIC_LOADER_VERSION} 13 | fabric_api_version=${FABRIC_API_VERSION} 14 | 15 | forge_version=${FORGE_VERSION} 16 | -------------------------------------------------------------------------------- /src/main/resources/fileTemplates/j2ee/architectury/architectury_settings.gradle.ft: -------------------------------------------------------------------------------- 1 | pluginManagement { 2 | repositories { 3 | maven { url "https://maven.fabricmc.net/" } 4 | maven { url "https://maven.architectury.dev/" } 5 | maven { url "https://maven.minecraftforge.net/" } 6 | gradlePluginPortal() 7 | } 8 | } 9 | 10 | include("common") 11 | include("fabric") 12 | include("forge") -------------------------------------------------------------------------------- /src/main/resources/fileTemplates/j2ee/bukkit/Bukkit Main Class.java.ft: -------------------------------------------------------------------------------- 1 | package ${PACKAGE}; 2 | 3 | import org.bukkit.plugin.java.JavaPlugin; 4 | 5 | public final class ${CLASS_NAME} extends JavaPlugin { 6 | 7 | @Override 8 | public void onEnable() { 9 | // Plugin startup logic 10 | 11 | } 12 | 13 | @Override 14 | public void onDisable() { 15 | // Plugin shutdown logic 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /src/main/resources/fileTemplates/j2ee/bukkit/Bukkit Main Class.java.html: -------------------------------------------------------------------------------- 1 | 20 | 21 | 22 | 23 |

This is a built-in file template used to create a new main class for Bukkit.

24 | 25 | 26 | -------------------------------------------------------------------------------- /src/main/resources/fileTemplates/j2ee/bukkit/Bukkit build.gradle.html: -------------------------------------------------------------------------------- 1 | 20 | 21 | 22 | 23 |

This is a built-in file template used to create a new build.gradle for Bukkit projects.

24 | 25 | 26 | -------------------------------------------------------------------------------- /src/main/resources/fileTemplates/j2ee/bukkit/Bukkit gradle.properties.ft: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eigenraven/MinecraftDev/12d5577e37df3bc18b03e111750b31c87d96c666/src/main/resources/fileTemplates/j2ee/bukkit/Bukkit gradle.properties.ft -------------------------------------------------------------------------------- /src/main/resources/fileTemplates/j2ee/bukkit/Bukkit gradle.properties.html: -------------------------------------------------------------------------------- 1 | 20 | 21 | 22 | 23 |

This is a built-in file template used to create a new gradle.properties file for Bukkit projects.

24 | 25 | 26 | -------------------------------------------------------------------------------- /src/main/resources/fileTemplates/j2ee/bukkit/Bukkit plugin.yml.ft: -------------------------------------------------------------------------------- 1 | name: ${NAME} 2 | version: '${VERSION}' 3 | main: ${MAIN} 4 | #if (${API_VERSION}) 5 | api-version: '${API_VERSION}' 6 | #end 7 | #if (${PREFIX}) 8 | prefix: ${PREFIX} 9 | #end 10 | #if (${LOAD}) 11 | load: ${LOAD} 12 | #end 13 | #if (${LOAD_BEFORE}) 14 | loadbefore: ${LOAD_BEFORE} 15 | #end 16 | #if (${DEPEND}) 17 | depend: ${DEPEND} 18 | #end 19 | #if (${SOFT_DEPEND}) 20 | softdepend: ${SOFT_DEPEND} 21 | #end 22 | #if (${AUTHOR_LIST}) 23 | authors: ${AUTHOR_LIST} 24 | #end 25 | #if (${DESCRIPTION}) 26 | description: ${DESCRIPTION} 27 | #end 28 | #if (${WEBSITE}) 29 | website: ${WEBSITE} 30 | #end 31 | -------------------------------------------------------------------------------- /src/main/resources/fileTemplates/j2ee/bukkit/Bukkit plugin.yml.html: -------------------------------------------------------------------------------- 1 | 20 | 21 | 22 | 23 |

This is a built-in file template used to create a new plugin.yml for Bukkit.

24 | 25 | 26 | -------------------------------------------------------------------------------- /src/main/resources/fileTemplates/j2ee/bukkit/Bukkit pom.xml.html: -------------------------------------------------------------------------------- 1 | 20 | 21 | 22 | 23 |

This is a built-in file template used to create a new pom.xml for Bukkit.

24 | 25 | 26 | -------------------------------------------------------------------------------- /src/main/resources/fileTemplates/j2ee/bukkit/Bukkit settings.gradle.ft: -------------------------------------------------------------------------------- 1 | rootProject.name = '${ARTIFACT_ID}' 2 | -------------------------------------------------------------------------------- /src/main/resources/fileTemplates/j2ee/bukkit/Bukkit settings.gradle.html: -------------------------------------------------------------------------------- 1 | 20 | 21 | 22 | 23 |

This is a built-in file template used to create a new settings.gradle for Bukkit projects.

24 | 25 | 26 | -------------------------------------------------------------------------------- /src/main/resources/fileTemplates/j2ee/bukkit/Paper paper-plugin.yml.ft: -------------------------------------------------------------------------------- 1 | name: ${NAME} 2 | version: '${VERSION}' 3 | main: ${MAIN} 4 | #if (${API_VERSION}) 5 | api-version: '${API_VERSION}' 6 | #end 7 | #if (${PREFIX}) 8 | prefix: ${PREFIX} 9 | #end 10 | #if (${LOAD}) 11 | load: ${LOAD} 12 | #end 13 | #if (${LOAD_BEFORE}) 14 | load-before: 15 | #foreach (${DEP_NAME} in ${LOAD_BEFORE}) 16 | - name: ${DEP_NAME} 17 | #end 18 | #end 19 | #if (${DEPEND} || ${SOFT_DEPEND}) 20 | dependencies: 21 | #foreach (${DEP_NAME} in ${DEPEND}) 22 | - name: ${DEP_NAME} 23 | required: true 24 | #end 25 | #foreach (${DEP_NAME} in ${SOFT_DEPEND}) 26 | - name: ${DEP_NAME} 27 | required: false 28 | #end 29 | #end 30 | #if (${AUTHOR_LIST}) 31 | authors: ${AUTHOR_LIST} 32 | #end 33 | #if (${DESCRIPTION}) 34 | description: ${DESCRIPTION} 35 | #end 36 | #if (${WEBSITE}) 37 | website: ${WEBSITE} 38 | #end 39 | -------------------------------------------------------------------------------- /src/main/resources/fileTemplates/j2ee/bukkit/Paper paper-plugin.yml.html: -------------------------------------------------------------------------------- 1 | 20 | 21 | 22 | 23 |

This is a built-in file template used to create a new paper-plugin.yml for Paper.

24 | 25 | 26 | -------------------------------------------------------------------------------- /src/main/resources/fileTemplates/j2ee/bungeecord/BungeeCord Main Class.java.ft: -------------------------------------------------------------------------------- 1 | package ${PACKAGE}; 2 | 3 | import net.md_5.bungee.api.plugin.Plugin; 4 | 5 | public final class ${CLASS_NAME} extends Plugin { 6 | 7 | @Override 8 | public void onEnable() { 9 | // Plugin startup logic 10 | } 11 | 12 | @Override 13 | public void onDisable() { 14 | // Plugin shutdown logic 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /src/main/resources/fileTemplates/j2ee/bungeecord/BungeeCord Main Class.java.html: -------------------------------------------------------------------------------- 1 | 20 | 21 | 22 | 23 |

This is a built-in file template used to create a new main class for BungeeCord.

24 | 25 | 26 | -------------------------------------------------------------------------------- /src/main/resources/fileTemplates/j2ee/bungeecord/BungeeCord build.gradle.html: -------------------------------------------------------------------------------- 1 | 20 | 21 | 22 | 23 |

This is a built-in file template used to create a new build.gradle for BungeeCord projects.

24 | 25 | 26 | -------------------------------------------------------------------------------- /src/main/resources/fileTemplates/j2ee/bungeecord/BungeeCord bungee.yml.ft: -------------------------------------------------------------------------------- 1 | name: ${NAME} 2 | version: '${VERSION}' 3 | main: ${MAIN} 4 | #if (${DEPEND}) 5 | depend: ${DEPEND} 6 | #end 7 | #if (${SOFT_DEPEND}) 8 | softdepend: ${SOFT_DEPEND} 9 | #end 10 | #if (${AUTHOR}) 11 | author: ${AUTHOR} 12 | #end 13 | #if (${DESCRIPTION}) 14 | description: ${DESCRIPTION} 15 | #end 16 | -------------------------------------------------------------------------------- /src/main/resources/fileTemplates/j2ee/bungeecord/BungeeCord bungee.yml.html: -------------------------------------------------------------------------------- 1 | 20 | 21 | 22 | 23 |

This is a built-in file template used to create a new bungee.yml for BungeeCord.

24 | 25 | 26 | -------------------------------------------------------------------------------- /src/main/resources/fileTemplates/j2ee/bungeecord/BungeeCord gradle.properties.ft: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eigenraven/MinecraftDev/12d5577e37df3bc18b03e111750b31c87d96c666/src/main/resources/fileTemplates/j2ee/bungeecord/BungeeCord gradle.properties.ft -------------------------------------------------------------------------------- /src/main/resources/fileTemplates/j2ee/bungeecord/BungeeCord pom.xml.html: -------------------------------------------------------------------------------- 1 | 20 | 21 | 22 | 23 |

This is a built-in file template used to create a new pom.xml for BungeeCord.

24 | 25 | 26 | -------------------------------------------------------------------------------- /src/main/resources/fileTemplates/j2ee/bungeecord/BungeeCord settings.gradle.ft: -------------------------------------------------------------------------------- 1 | rootProject.name = '${PROJECT_NAME}' 2 | -------------------------------------------------------------------------------- /src/main/resources/fileTemplates/j2ee/bungeecord/BungeeCord settings.gradle.html: -------------------------------------------------------------------------------- 1 | 20 | 21 | 22 | 23 |

This is a built-in file template used to create a new settings.gradle for BungeeCord projects.

24 | 25 | 26 | -------------------------------------------------------------------------------- /src/main/resources/fileTemplates/j2ee/common/Gradle.gitignore.html: -------------------------------------------------------------------------------- 1 | 20 | 21 | 22 | 23 |

This is a built-in file template used to create a new .gitignore for Gradle projects.

24 | 25 | 26 | -------------------------------------------------------------------------------- /src/main/resources/fileTemplates/j2ee/common/Maven.gitignore.html: -------------------------------------------------------------------------------- 1 | 20 | 21 | 22 | 23 |

This is a built-in file template used to create a new .gitignore for Maven projects.

24 | 25 | 26 | -------------------------------------------------------------------------------- /src/main/resources/fileTemplates/j2ee/common/MinecraftDev gradle-wrapper.properties.ft: -------------------------------------------------------------------------------- 1 | distributionUrl=https\://services.gradle.org/distributions/gradle-${GRADLE_WRAPPER_VERSION}-bin.zip 2 | -------------------------------------------------------------------------------- /src/main/resources/fileTemplates/j2ee/fabric/fabric_build.gradle.html: -------------------------------------------------------------------------------- 1 | 20 | 21 | 22 | 23 |

This is a built-in file template used to create a new build.gradle file for Fabric projects.

24 | 25 | 26 | -------------------------------------------------------------------------------- /src/main/resources/fileTemplates/j2ee/fabric/fabric_gradle.properties.ft: -------------------------------------------------------------------------------- 1 | # Done to increase the memory available to gradle. 2 | org.gradle.jvmargs=-Xmx1G 3 | 4 | # Fabric Properties 5 | # check these on https://modmuss50.me/fabric.html 6 | minecraft_version=${MC_VERSION} 7 | #if (!${OFFICIAL_MAPPINGS}) 8 | yarn_mappings=${YARN_MAPPINGS} 9 | #end 10 | loader_version=${LOADER_VERSION} 11 | 12 | # Mod Properties 13 | mod_version = ${VERSION} 14 | maven_group = ${GROUP_ID} 15 | archives_base_name = ${ARTIFACT_ID} 16 | 17 | #if (${API_VERSION}) 18 | # Dependencies 19 | # check this on https://modmuss50.me/fabric.html 20 | fabric_version=${API_VERSION} 21 | #end 22 | -------------------------------------------------------------------------------- /src/main/resources/fileTemplates/j2ee/fabric/fabric_gradle.properties.html: -------------------------------------------------------------------------------- 1 | 20 | 21 | 22 | 23 |

This is a built-in file template used to create a new gradle.properties file for Fabric projects.

24 | 25 | 26 | -------------------------------------------------------------------------------- /src/main/resources/fileTemplates/j2ee/fabric/fabric_mixins.json.ft: -------------------------------------------------------------------------------- 1 | { 2 | "required": true, 3 | "minVersion": "0.8", 4 | "package": "${MIXIN_PACKAGE_NAME}", 5 | "compatibilityLevel": "JAVA_${JAVA_VERSION}", 6 | "mixins": [ 7 | ], 8 | "client": [ 9 | ], 10 | "injectors": { 11 | "defaultRequire": 1 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/main/resources/fileTemplates/j2ee/fabric/fabric_mixins.json.html: -------------------------------------------------------------------------------- 1 | 20 | 21 | 22 | 23 |

This is a built-in file template used to create a new modid.mixins.json file for Fabric projects.

24 | 25 | 26 | -------------------------------------------------------------------------------- /src/main/resources/fileTemplates/j2ee/fabric/fabric_mod.json.ft: -------------------------------------------------------------------------------- 1 | #set ( $d = "$" ) 2 | { 3 | "schemaVersion": 1, 4 | "id": "${MOD_ID}", 5 | "version": "${d}{version}", 6 | 7 | "name": "${MOD_NAME}", 8 | "description": "${MOD_DESCRIPTION}", 9 | "authors": [], 10 | "contact": {}, 11 | 12 | "license": "${LICENSE}", 13 | "icon": "assets/${MOD_ID}/icon.png", 14 | 15 | "environment": "${MOD_ENVIRONMENT}", 16 | "entrypoints": {}, 17 | 18 | #if (${MIXINS}) 19 | "mixins": [ 20 | "${MOD_ID}.mixins.json" 21 | ], 22 | #end 23 | 24 | "depends": { 25 | "fabricloader": ">=${d}{loader_version}", 26 | #if (${API_VERSION}) 27 | "fabric": "*", 28 | #end 29 | "minecraft": "${d}{minecraft_version}" 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /src/main/resources/fileTemplates/j2ee/fabric/fabric_mod.json.html: -------------------------------------------------------------------------------- 1 | 20 | 21 | 22 | 23 |

This is a built-in file template used to create a new fabric.mod.json for Fabric projects.

24 | 25 | 26 | -------------------------------------------------------------------------------- /src/main/resources/fileTemplates/j2ee/fabric/fabric_settings.gradle.ft: -------------------------------------------------------------------------------- 1 | pluginManagement { 2 | repositories { 3 | maven { 4 | name = 'Fabric' 5 | url = 'https://maven.fabricmc.net/' 6 | } 7 | gradlePluginPortal() 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/main/resources/fileTemplates/j2ee/fabric/fabric_settings.gradle.html: -------------------------------------------------------------------------------- 1 | 20 | 21 | 22 | 23 |

This is a built-in file template used to create a new settings.gradle file for Fabric projects.

24 | 25 | 26 | -------------------------------------------------------------------------------- /src/main/resources/fileTemplates/j2ee/forge/Forge (1.13+) build.gradle.html: -------------------------------------------------------------------------------- 1 | 20 | 21 | 22 | 23 |

This is a built-in file template used to create a new build.gradle for Forge projects 1.13 and above.

24 | 25 | 26 | -------------------------------------------------------------------------------- /src/main/resources/fileTemplates/j2ee/forge/Forge (1.13+) settings.gradle.ft: -------------------------------------------------------------------------------- 1 | pluginManagement { 2 | repositories { 3 | gradlePluginPortal() 4 | maven { 5 | name = 'MinecraftForge' 6 | url = 'https://maven.minecraftforge.net/' 7 | } 8 | } 9 | } 10 | 11 | plugins { 12 | id 'org.gradle.toolchains.foojay-resolver-convention' version '0.7.0' 13 | } 14 | 15 | rootProject.name = '${ARTIFACT_ID}' 16 | -------------------------------------------------------------------------------- /src/main/resources/fileTemplates/j2ee/forge/Forge (1.16+) Main Class.java.html: -------------------------------------------------------------------------------- 1 | 20 | 21 | 22 | 23 |

This is a built-in file template used to create a new main class for Forge projects 1.16 and above

24 | 25 | 26 | -------------------------------------------------------------------------------- /src/main/resources/fileTemplates/j2ee/forge/Forge (1.17+) Main Class.java.html: -------------------------------------------------------------------------------- 1 | 20 | 21 | 22 | 23 |

This is a built-in file template used to create a new main class for Forge projects 1.17 and above

24 | 25 | 26 | -------------------------------------------------------------------------------- /src/main/resources/fileTemplates/j2ee/forge/Forge (1.18+) Main Class.java.html: -------------------------------------------------------------------------------- 1 | 20 | 21 | 22 | 23 |

This is a built-in file template used to create a new main class for Forge projects 1.18 and above

24 | 25 | 26 | -------------------------------------------------------------------------------- /src/main/resources/fileTemplates/j2ee/forge/Forge (1.19+) Main Class.java.html: -------------------------------------------------------------------------------- 1 | 20 | 21 | 22 | 23 |

This is a built-in file template used to create a new main class for Forge projects 1.19 and above

24 | 25 | 26 | -------------------------------------------------------------------------------- /src/main/resources/fileTemplates/j2ee/forge/Forge (1.20+) Config.java.html: -------------------------------------------------------------------------------- 1 | 20 | 21 | 22 | 23 |

This is a built-in file template used to create a new config class for Forge projects 1.20 and above

24 | 25 | 26 | -------------------------------------------------------------------------------- /src/main/resources/fileTemplates/j2ee/forge/Forge (1.20+) Main Class.java.html: -------------------------------------------------------------------------------- 1 | 20 | 21 | 22 | 23 |

This is a built-in file template used to create a new main class for Forge projects 1.20 and above

24 | 25 | 26 | -------------------------------------------------------------------------------- /src/main/resources/fileTemplates/j2ee/forge/Forge (1.21+) Config.java.html: -------------------------------------------------------------------------------- 1 | 20 | 21 | 22 | 23 |

This is a built-in file template used to create a new config class for Forge projects 1.21 and above

24 | 25 | 26 | -------------------------------------------------------------------------------- /src/main/resources/fileTemplates/j2ee/forge/Forge Mixins Config.json.ft: -------------------------------------------------------------------------------- 1 | { 2 | "required": true, 3 | "minVersion": "0.8", 4 | "package": "${PACKAGE_NAME}", 5 | "compatibilityLevel": "JAVA_8", 6 | "refmap": "${MOD_ID}.refmap.json", 7 | "mixins": [ 8 | ], 9 | "client": [ 10 | ], 11 | "injectors": { 12 | "defaultRequire": 1 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/main/resources/fileTemplates/j2ee/forge/Forge Mixins Config.json.html: -------------------------------------------------------------------------------- 1 | 20 | 21 | 22 | 23 |

This is a built-in file template used to create a new modid.mixins.json file for Forge projects.

24 | 25 | 26 | -------------------------------------------------------------------------------- /src/main/resources/fileTemplates/j2ee/forge/mods.toml.html: -------------------------------------------------------------------------------- 1 | 20 | 21 | 22 | 23 |

This is a built-in file template used to create a new mods.toml for Forge projects 1.13 and above.

24 | 25 | 26 | -------------------------------------------------------------------------------- /src/main/resources/fileTemplates/j2ee/forge/pack.mcmeta.ft: -------------------------------------------------------------------------------- 1 | { 2 | "pack": { 3 | "description": "${MOD_ID} resources", 4 | #if (${PACK_COMMENT} != "") 5 | "pack_format": ${PACK_FORMAT}, 6 | "_comment": "${PACK_COMMENT}" 7 | #else 8 | "pack_format": ${PACK_FORMAT} 9 | #end 10 | #if (${FORGE_DATA}) 11 | #if (${FORGE_DATA.resourcePackFormat}) 12 | ,"forge:resource_pack_format": ${FORGE_DATA.resourcePackFormat} 13 | #end 14 | #if (${FORGE_DATA.dataPackFormat}) 15 | ,"forge:data_pack_format": ${FORGE_DATA.dataPackFormat} 16 | #end 17 | #if (${FORGE_DATA.serverDataPackFormat}) 18 | ,"forge:server_data_pack_format": ${FORGE_DATA.serverDataPackFormat} 19 | #end 20 | #end 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /src/main/resources/fileTemplates/j2ee/forge/pack.mcmeta.html: -------------------------------------------------------------------------------- 1 | 20 | 21 | 22 | 23 |

This is a built-in file template used to create a new pack.mcmeta for Forge projects 1.13 and above.

24 | 25 | 26 | -------------------------------------------------------------------------------- /src/main/resources/fileTemplates/j2ee/licenses/AGPL-3.0.txt.html: -------------------------------------------------------------------------------- 1 | 20 | 21 | 22 | 23 |

GNU AGPL 3.0 license template

24 | 25 | 26 | -------------------------------------------------------------------------------- /src/main/resources/fileTemplates/j2ee/licenses/All-Rights-Reserved.txt.ft: -------------------------------------------------------------------------------- 1 | Copyright (c) $YEAR $AUTHOR 2 | All rights reserved. 3 | -------------------------------------------------------------------------------- /src/main/resources/fileTemplates/j2ee/licenses/All-Rights-Reserved.txt.html: -------------------------------------------------------------------------------- 1 | 20 | 21 | 22 | 23 |

All Rights Reserved license template

24 | 25 | 26 | -------------------------------------------------------------------------------- /src/main/resources/fileTemplates/j2ee/licenses/Apache-2.0.txt.ft: -------------------------------------------------------------------------------- 1 | Copyright $YEAR $AUTHOR 2 | 3 | Licensed under the Apache License, Version 2.0 (the "License"); 4 | you may not use this file except in compliance with the License. 5 | You may obtain a copy of the License at 6 | 7 | http://www.apache.org/licenses/LICENSE-2.0 8 | 9 | Unless required by applicable law or agreed to in writing, software 10 | distributed under the License is distributed on an "AS IS" BASIS, 11 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | See the License for the specific language governing permissions and 13 | limitations under the License. 14 | -------------------------------------------------------------------------------- /src/main/resources/fileTemplates/j2ee/licenses/Apache-2.0.txt.html: -------------------------------------------------------------------------------- 1 | 20 | 21 | 22 | 23 |

Apache 2.0 license template

24 | 25 | 26 | -------------------------------------------------------------------------------- /src/main/resources/fileTemplates/j2ee/licenses/BSD-2-Clause-FreeBSD.txt.html: -------------------------------------------------------------------------------- 1 | 20 | 21 | 22 | 23 |

BSD 2-Clause (FreeBSD) License template

24 | 25 | 26 | -------------------------------------------------------------------------------- /src/main/resources/fileTemplates/j2ee/licenses/BSD-3-Clause.txt.html: -------------------------------------------------------------------------------- 1 | 20 | 21 | 22 | 23 |

BSD 3-Clause (NewBSD) License template

24 | 25 | 26 | -------------------------------------------------------------------------------- /src/main/resources/fileTemplates/j2ee/licenses/GPL-3.0.txt.html: -------------------------------------------------------------------------------- 1 | 20 | 21 | 22 | 23 |

GNU GPL 3.0 license template

24 | 25 | 26 | -------------------------------------------------------------------------------- /src/main/resources/fileTemplates/j2ee/licenses/ISC.txt.ft: -------------------------------------------------------------------------------- 1 | Copyright (c) $YEAR $AUTHOR 2 | 3 | Permission to use, copy, modify, and/or distribute this software for 4 | any purpose with or without fee is hereby granted, provided that the 5 | above copyright notice and this permission notice appear in all 6 | copies. 7 | 8 | THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL 9 | WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED 10 | WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE 11 | AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL 12 | DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR 13 | PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER 14 | TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR 15 | PERFORMANCE OF THIS SOFTWARE. 16 | -------------------------------------------------------------------------------- /src/main/resources/fileTemplates/j2ee/licenses/ISC.txt.html: -------------------------------------------------------------------------------- 1 | 20 | 21 | 22 | 23 |

Internet Systems Consortium (ISC) License template

24 | 25 | 26 | -------------------------------------------------------------------------------- /src/main/resources/fileTemplates/j2ee/licenses/LGPL-3.0.txt.html: -------------------------------------------------------------------------------- 1 | 20 | 21 | 22 | 23 |

GNU LGPL 3.0 license template

24 | 25 | 26 | -------------------------------------------------------------------------------- /src/main/resources/fileTemplates/j2ee/licenses/MIT.txt.html: -------------------------------------------------------------------------------- 1 | 20 | 21 | 22 | 23 |

MIT license template

24 | 25 | 26 | -------------------------------------------------------------------------------- /src/main/resources/fileTemplates/j2ee/licenses/MPL-2.0.txt.html: -------------------------------------------------------------------------------- 1 | 20 | 21 | 22 | 23 |

Mozilla Public License 2.0 license template

24 | 25 | 26 | -------------------------------------------------------------------------------- /src/main/resources/fileTemplates/j2ee/licenses/unlicense.txt.html: -------------------------------------------------------------------------------- 1 | 20 | 21 | 22 | 23 |

Unlicense license template

24 | 25 | 26 | -------------------------------------------------------------------------------- /src/main/resources/fileTemplates/j2ee/neoforge/NeoForge (1.20.5) Config.java.html: -------------------------------------------------------------------------------- 1 | 20 | 21 | 22 | 23 |

This is a built-in file template used to create a new config class for NeoForge 1.20.5 projects.

24 | 25 | 26 | -------------------------------------------------------------------------------- /src/main/resources/fileTemplates/j2ee/neoforge/NeoForge (1.20.5) Main Class.java.html: -------------------------------------------------------------------------------- 1 | 20 | 21 | 22 | 23 |

This is a built-in file template used to create a new main class for NeoForge 1.20.5 projects.

24 | 25 | 26 | -------------------------------------------------------------------------------- /src/main/resources/fileTemplates/j2ee/neoforge/NeoForge (1.21) Config.java.html: -------------------------------------------------------------------------------- 1 | 20 | 21 | 22 | 23 |

This is a built-in file template used to create a new config class for NeoForge 1.21 projects.

24 | 25 | 26 | -------------------------------------------------------------------------------- /src/main/resources/fileTemplates/j2ee/neoforge/NeoForge Config.java.html: -------------------------------------------------------------------------------- 1 | 20 | 21 | 22 | 23 |

This is a built-in file template used to create a new config class for NeoForge projects.

24 | 25 | 26 | -------------------------------------------------------------------------------- /src/main/resources/fileTemplates/j2ee/neoforge/NeoForge Main Class.java.html: -------------------------------------------------------------------------------- 1 | 20 | 21 | 22 | 23 |

This is a built-in file template used to create a new main class for NeoForge projects.

24 | 25 | 26 | -------------------------------------------------------------------------------- /src/main/resources/fileTemplates/j2ee/neoforge/NeoForge Mixins Config.json.ft: -------------------------------------------------------------------------------- 1 | { 2 | "required": true, 3 | "minVersion": "0.8", 4 | "package": "${PACKAGE_NAME}", 5 | "compatibilityLevel": "JAVA_8", 6 | "refmap": "${MOD_ID}.refmap.json", 7 | "mixins": [ 8 | ], 9 | "client": [ 10 | ], 11 | "injectors": { 12 | "defaultRequire": 1 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/main/resources/fileTemplates/j2ee/neoforge/NeoForge Mixins Config.json.html: -------------------------------------------------------------------------------- 1 | 20 | 21 | 22 | 23 |

This is a built-in file template used to create a new modid.mixins.json file for NeoForge projects.

24 | 25 | 26 | -------------------------------------------------------------------------------- /src/main/resources/fileTemplates/j2ee/neoforge/NeoForge build.gradle.html: -------------------------------------------------------------------------------- 1 | 20 | 21 | 22 | 23 |

This is a built-in file template used to create a new build.gradle for NeoForge projects.

24 | 25 | 26 | -------------------------------------------------------------------------------- /src/main/resources/fileTemplates/j2ee/neoforge/NeoForge gradle.properties.html: -------------------------------------------------------------------------------- 1 | 20 | 21 | 22 | 23 |

This is a built-in file template used to create a new gradle.properties file for NeoForge projects.

24 | 25 | 26 | -------------------------------------------------------------------------------- /src/main/resources/fileTemplates/j2ee/neoforge/NeoForge mods.toml.html: -------------------------------------------------------------------------------- 1 | 20 | 21 | 22 | 23 |

This is a built-in file template used to create a new mods.toml for NeoForge projects.

24 | 25 | 26 | -------------------------------------------------------------------------------- /src/main/resources/fileTemplates/j2ee/neoforge/NeoForge neoforge.mods.toml.html: -------------------------------------------------------------------------------- 1 | 20 | 21 | 22 | 23 |

This is a built-in file template used to create a new mods.toml for NeoForge 1.20.5 projects.

24 | 25 | 26 | -------------------------------------------------------------------------------- /src/main/resources/fileTemplates/j2ee/neoforge/NeoForge pack.mcmeta.ft: -------------------------------------------------------------------------------- 1 | { 2 | "pack": { 3 | "description": "${MOD_ID} resources", 4 | #if (${PACK_COMMENT} != "") 5 | "pack_format": ${PACK_FORMAT}, 6 | "_comment": "${PACK_COMMENT}" 7 | #else 8 | "pack_format": ${PACK_FORMAT} 9 | #end 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/main/resources/fileTemplates/j2ee/neoforge/NeoForge pack.mcmeta.html: -------------------------------------------------------------------------------- 1 | 20 | 21 | 22 | 23 |

This is a built-in file template used to create a new pack.mcmeta for NeoForge projects.

24 | 25 | 26 | -------------------------------------------------------------------------------- /src/main/resources/fileTemplates/j2ee/neoforge/NeoForge settings.gradle.ft: -------------------------------------------------------------------------------- 1 | pluginManagement { 2 | repositories { 3 | mavenLocal() 4 | gradlePluginPortal() 5 | maven { url = 'https://maven.neoforged.net/releases' } 6 | } 7 | } 8 | 9 | plugins { 10 | id 'org.gradle.toolchains.foojay-resolver-convention' version '0.8.0' 11 | } 12 | -------------------------------------------------------------------------------- /src/main/resources/fileTemplates/j2ee/neoforge/NeoForge settings.gradle.html: -------------------------------------------------------------------------------- 1 | 20 | 21 | 22 | 23 |

This is a built-in file template used to create a new settings.gradle for NeoForge projects.

24 | 25 | 26 | -------------------------------------------------------------------------------- /src/main/resources/fileTemplates/j2ee/skeleton/fabric/FabricBlock.java.ft: -------------------------------------------------------------------------------- 1 | #if (${PACKAGE_NAME} && ${PACKAGE_NAME} != "")package ${PACKAGE_NAME};#end 2 | #parse("File Header.java") 3 | 4 | import net.minecraft.block.Block; 5 | 6 | public class ${NAME} extends Block { 7 | public ${NAME}(Settings settings) { 8 | super(settings); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/main/resources/fileTemplates/j2ee/skeleton/fabric/FabricBlock.java.html: -------------------------------------------------------------------------------- 1 | 20 | 21 | 22 | 23 | A basic block class for fabric. 24 | 25 | 26 | -------------------------------------------------------------------------------- /src/main/resources/fileTemplates/j2ee/skeleton/fabric/FabricEnchantment.java.ft: -------------------------------------------------------------------------------- 1 | #if (${PACKAGE_NAME} && ${PACKAGE_NAME} != "")package ${PACKAGE_NAME};#end 2 | #parse("File Header.java") 3 | 4 | import net.minecraft.enchantment.Enchantment; 5 | import net.minecraft.enchantment.EnchantmentTarget; 6 | import net.minecraft.entity.EquipmentSlot; 7 | 8 | public class ${NAME} extends Enchantment { 9 | public ${NAME}(Rarity weight, EnchantmentTarget type, EquipmentSlot[] slotTypes) { 10 | super(weight, type, slotTypes); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/main/resources/fileTemplates/j2ee/skeleton/fabric/FabricEnchantment.java.html: -------------------------------------------------------------------------------- 1 | 20 | 21 | 22 | 23 | A basic enchantment class for fabric. 24 | 25 | 26 | -------------------------------------------------------------------------------- /src/main/resources/fileTemplates/j2ee/skeleton/fabric/FabricItem.java.ft: -------------------------------------------------------------------------------- 1 | #if (${PACKAGE_NAME} && ${PACKAGE_NAME} != "")package ${PACKAGE_NAME};#end 2 | #parse("File Header.java") 3 | 4 | import net.minecraft.item.Item; 5 | 6 | public class ${NAME} extends Item { 7 | public ${NAME}(Settings settings) { 8 | super(settings); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/main/resources/fileTemplates/j2ee/skeleton/fabric/FabricItem.java.html: -------------------------------------------------------------------------------- 1 | 20 | 21 | 22 | 23 | An empty Fabric item class. 24 | 25 | 26 | -------------------------------------------------------------------------------- /src/main/resources/fileTemplates/j2ee/skeleton/fabric/FabricStatusEffect.java.ft: -------------------------------------------------------------------------------- 1 | #if (${PACKAGE_NAME} && ${PACKAGE_NAME} != "")package ${PACKAGE_NAME};#end 2 | #parse("File Header.java") 3 | 4 | import net.minecraft.entity.effect.StatusEffect; 5 | import net.minecraft.entity.effect.StatusEffectCategory; 6 | 7 | public class ${NAME} extends StatusEffect { 8 | public ${NAME}(StatusEffectCategory statusEffectCategory, int color) { 9 | super(statusEffectCategory, color); 10 | } 11 | } -------------------------------------------------------------------------------- /src/main/resources/fileTemplates/j2ee/skeleton/fabric/FabricStatusEffect.java.html: -------------------------------------------------------------------------------- 1 | 20 | 21 | 22 | 23 | An empty Fabric status effect class. 24 | 25 | 26 | -------------------------------------------------------------------------------- /src/main/resources/fileTemplates/j2ee/skeleton/forge/ForgeBlock (1.17+).java.ft: -------------------------------------------------------------------------------- 1 | #if (${PACKAGE_NAME} && ${PACKAGE_NAME} != "")package ${PACKAGE_NAME};#end 2 | #parse("File Header.java") 3 | 4 | import net.minecraft.world.level.block.Block; 5 | 6 | public class ${NAME} extends Block { 7 | public ${NAME}(Properties properties) { 8 | super(properties); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/main/resources/fileTemplates/j2ee/skeleton/forge/ForgeBlock (1.17+).java.html: -------------------------------------------------------------------------------- 1 | 20 | 21 | 22 | 23 | A basic block class for forge 1.17+. 24 | 25 | 26 | -------------------------------------------------------------------------------- /src/main/resources/fileTemplates/j2ee/skeleton/forge/ForgeBlock.java.ft: -------------------------------------------------------------------------------- 1 | #if (${PACKAGE_NAME} && ${PACKAGE_NAME} != "")package ${PACKAGE_NAME};#end 2 | #parse("File Header.java") 3 | 4 | import net.minecraft.block.Block; 5 | 6 | public class ${NAME} extends Block { 7 | public ${NAME}(Properties properties) { 8 | super(properties); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/main/resources/fileTemplates/j2ee/skeleton/forge/ForgeBlock.java.html: -------------------------------------------------------------------------------- 1 | 20 | 21 | 22 | 23 | A basic block class for forge. 24 | 25 | 26 | -------------------------------------------------------------------------------- /src/main/resources/fileTemplates/j2ee/skeleton/forge/ForgeEnchantment (1.17+).java.ft: -------------------------------------------------------------------------------- 1 | #if (${PACKAGE_NAME} && ${PACKAGE_NAME} != "")package ${PACKAGE_NAME};#end 2 | #parse("File Header.java") 3 | 4 | import net.minecraft.world.entity.EquipmentSlot; 5 | import net.minecraft.world.item.enchantment.Enchantment; 6 | import net.minecraft.world.item.enchantment.EnchantmentCategory; 7 | 8 | public class ${NAME} extends Enchantment { 9 | public ${NAME}(Rarity rarity, EnchantmentCategory category, EquipmentSlot[] slots) { 10 | super(rarity, category, slots); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/main/resources/fileTemplates/j2ee/skeleton/forge/ForgeEnchantment (1.17+).java.html: -------------------------------------------------------------------------------- 1 | 20 | 21 | 22 | 23 | Forge 1.17+ style enchantment class 24 | 25 | 26 | -------------------------------------------------------------------------------- /src/main/resources/fileTemplates/j2ee/skeleton/forge/ForgeEnchantment.java.ft: -------------------------------------------------------------------------------- 1 | #if (${PACKAGE_NAME} && ${PACKAGE_NAME} != "")package ${PACKAGE_NAME};#end 2 | #parse("File Header.java") 3 | 4 | import net.minecraft.enchantment.Enchantment; 5 | import net.minecraft.enchantment.EnchantmentType; 6 | import net.minecraft.inventory.EquipmentSlotType; 7 | 8 | public class ${NAME} extends Enchantment { 9 | public ${NAME}(Rarity rarityIn, EnchantmentType typeIn, EquipmentSlotType[] slots) { 10 | super(rarityIn, typeIn, slots); 11 | } 12 | } 13 | 14 | -------------------------------------------------------------------------------- /src/main/resources/fileTemplates/j2ee/skeleton/forge/ForgeEnchantment.java.html: -------------------------------------------------------------------------------- 1 | 20 | 21 | 22 | 23 | Forge style enchantment class 24 | 25 | 26 | -------------------------------------------------------------------------------- /src/main/resources/fileTemplates/j2ee/skeleton/forge/ForgeItem (1.17+).java.ft: -------------------------------------------------------------------------------- 1 | #if (${PACKAGE_NAME} && ${PACKAGE_NAME} != "")package ${PACKAGE_NAME};#end 2 | #parse("File Header.java") 3 | 4 | import net.minecraft.world.item.Item; 5 | 6 | public class ${NAME} extends Item { 7 | public ${NAME}(Properties properties) { 8 | super(properties); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/main/resources/fileTemplates/j2ee/skeleton/forge/ForgeItem (1.17+).java.html: -------------------------------------------------------------------------------- 1 | 20 | 21 | 22 | 23 | An empty Forge 1.17+ item class. 24 | 25 | 26 | -------------------------------------------------------------------------------- /src/main/resources/fileTemplates/j2ee/skeleton/forge/ForgeItem.java.ft: -------------------------------------------------------------------------------- 1 | #if (${PACKAGE_NAME} && ${PACKAGE_NAME} != "")package ${PACKAGE_NAME};#end 2 | #parse("File Header.java") 3 | 4 | import net.minecraft.item.Item; 5 | 6 | public class ${NAME} extends Item { 7 | public ${NAME}(Properties properties) { 8 | super(properties); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/main/resources/fileTemplates/j2ee/skeleton/forge/ForgeItem.java.html: -------------------------------------------------------------------------------- 1 | 20 | 21 | 22 | 23 | An empty Forge item class. 24 | 25 | 26 | -------------------------------------------------------------------------------- /src/main/resources/fileTemplates/j2ee/skeleton/forge/ForgeMobEffect (1.17+).java.ft: -------------------------------------------------------------------------------- 1 | #if (${PACKAGE_NAME} && ${PACKAGE_NAME} != "")package ${PACKAGE_NAME};#end 2 | #parse("File Header.java") 3 | 4 | import net.minecraft.world.effect.MobEffect; 5 | import net.minecraft.world.effect.MobEffectCategory; 6 | 7 | public class ${NAME} extends MobEffect { 8 | public ${NAME}(MobEffectCategory category, int color) { 9 | super(category, color); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/main/resources/fileTemplates/j2ee/skeleton/forge/ForgeModEffect (1.17+).java.html: -------------------------------------------------------------------------------- 1 | 20 | 21 | 22 | 23 | Forge 1.17+ style mob effect class 24 | 25 | 26 | -------------------------------------------------------------------------------- /src/main/resources/fileTemplates/j2ee/skeleton/forge/ForgePacket (1.17+).java.ft: -------------------------------------------------------------------------------- 1 | #if (${PACKAGE_NAME} && ${PACKAGE_NAME} != "")package ${PACKAGE_NAME};#end 2 | #parse("File Header.java") 3 | 4 | import net.minecraft.network.FriendlyByteBuf; 5 | import net.minecraftforge.fmllegacy.network.NetworkEvent; 6 | import java.util.function.Supplier; 7 | 8 | public class ${NAME} { 9 | 10 | public ${NAME}() { 11 | 12 | } 13 | 14 | public ${NAME}(FriendlyByteBuf buf) { 15 | 16 | } 17 | 18 | public void toBytes(FriendlyByteBuf buf) { 19 | 20 | } 21 | 22 | public void handle(Supplier ctx) { 23 | ctx.get().enqueueWork(() -> { 24 | 25 | }); 26 | ctx.get().setPacketHandled(true); 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /src/main/resources/fileTemplates/j2ee/skeleton/forge/ForgePacket (1.17+).java.html: -------------------------------------------------------------------------------- 1 | 20 | 21 | 22 | 23 | Forge 1.17+ style packet class 24 | 25 | 26 | -------------------------------------------------------------------------------- /src/main/resources/fileTemplates/j2ee/skeleton/forge/ForgePacket (1.18+).java.ft: -------------------------------------------------------------------------------- 1 | #if (${PACKAGE_NAME} && ${PACKAGE_NAME} != "")package ${PACKAGE_NAME};#end 2 | #parse("File Header.java") 3 | 4 | import net.minecraft.network.FriendlyByteBuf; 5 | import net.minecraftforge.network.NetworkEvent; 6 | import java.util.function.Supplier; 7 | 8 | public class ${NAME} { 9 | 10 | public ${NAME}() { 11 | 12 | } 13 | 14 | public ${NAME}(FriendlyByteBuf buf) { 15 | 16 | } 17 | 18 | public void toBytes(FriendlyByteBuf buf) { 19 | 20 | } 21 | 22 | public void handle(Supplier ctx) { 23 | ctx.get().enqueueWork(() -> { 24 | 25 | }); 26 | ctx.get().setPacketHandled(true); 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /src/main/resources/fileTemplates/j2ee/skeleton/forge/ForgePacket (1.18+).java.html: -------------------------------------------------------------------------------- 1 | 20 | 21 | 22 | 23 | Forge 1.18+ style packet class 24 | 25 | 26 | -------------------------------------------------------------------------------- /src/main/resources/fileTemplates/j2ee/skeleton/forge/ForgePacket.java.ft: -------------------------------------------------------------------------------- 1 | #if (${PACKAGE_NAME} && ${PACKAGE_NAME} != "")package ${PACKAGE_NAME};#end 2 | #parse("File Header.java") 3 | 4 | import net.minecraft.network.PacketBuffer; 5 | import net.minecraftforge.fml.network.NetworkEvent; 6 | import java.util.function.Supplier; 7 | 8 | public class ${NAME} { 9 | 10 | public ${NAME}() { 11 | 12 | } 13 | 14 | public ${NAME}(PacketBuffer buf) { 15 | 16 | } 17 | 18 | public void toBytes(PacketBuffer buf) { 19 | 20 | } 21 | 22 | public void handle(Supplier ctx) { 23 | ctx.get().enqueueWork(() -> { 24 | 25 | }); 26 | ctx.get().setPacketHandled(true); 27 | } 28 | } -------------------------------------------------------------------------------- /src/main/resources/fileTemplates/j2ee/skeleton/forge/ForgePacket.java.html: -------------------------------------------------------------------------------- 1 | 20 | 21 | 22 | 23 | Forge style packet class 24 | 25 | 26 | -------------------------------------------------------------------------------- /src/main/resources/fileTemplates/j2ee/skeleton/neoforge/NeoForgeBlock.java.ft: -------------------------------------------------------------------------------- 1 | #if (${PACKAGE_NAME} && ${PACKAGE_NAME} != "")package ${PACKAGE_NAME};#end 2 | #parse("File Header.java") 3 | 4 | import net.minecraft.world.level.block.Block; 5 | 6 | public class ${NAME} extends Block { 7 | public ${NAME}(Properties properties) { 8 | super(properties); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/main/resources/fileTemplates/j2ee/skeleton/neoforge/NeoForgeBlock.java.html: -------------------------------------------------------------------------------- 1 | 20 | 21 | A basic block class for NeoForge. 22 | -------------------------------------------------------------------------------- /src/main/resources/fileTemplates/j2ee/skeleton/neoforge/NeoForgeEnchantment.java.ft: -------------------------------------------------------------------------------- 1 | #if (${PACKAGE_NAME} && ${PACKAGE_NAME} != "")package ${PACKAGE_NAME};#end 2 | #parse("File Header.java") 3 | 4 | import net.minecraft.world.entity.EquipmentSlot; 5 | import net.minecraft.world.item.enchantment.Enchantment; 6 | import net.minecraft.world.item.enchantment.EnchantmentCategory; 7 | 8 | public class ${NAME} extends Enchantment { 9 | public ${NAME}(Rarity rarity, EnchantmentCategory category, EquipmentSlot[] slots) { 10 | super(rarity, category, slots); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/main/resources/fileTemplates/j2ee/skeleton/neoforge/NeoForgeEnchantment.java.html: -------------------------------------------------------------------------------- 1 | 20 | 21 | NeoForge style enchantment class 22 | -------------------------------------------------------------------------------- /src/main/resources/fileTemplates/j2ee/skeleton/neoforge/NeoForgeItem.java.ft: -------------------------------------------------------------------------------- 1 | #if (${PACKAGE_NAME} && ${PACKAGE_NAME} != "")package ${PACKAGE_NAME};#end 2 | #parse("File Header.java") 3 | 4 | import net.minecraft.world.item.Item; 5 | 6 | public class ${NAME} extends Item { 7 | public ${NAME}(Properties properties) { 8 | super(properties); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/main/resources/fileTemplates/j2ee/skeleton/neoforge/NeoForgeItem.java.html: -------------------------------------------------------------------------------- 1 | 20 | 21 | An empty NeoForge item class. 22 | -------------------------------------------------------------------------------- /src/main/resources/fileTemplates/j2ee/skeleton/neoforge/NeoForgeMobEffect.java.ft: -------------------------------------------------------------------------------- 1 | #if (${PACKAGE_NAME} && ${PACKAGE_NAME} != "")package ${PACKAGE_NAME};#end 2 | #parse("File Header.java") 3 | 4 | import net.minecraft.world.effect.MobEffect; 5 | import net.minecraft.world.effect.MobEffectCategory; 6 | 7 | public class ${NAME} extends MobEffect { 8 | public ${NAME}(MobEffectCategory category, int color) { 9 | super(category, color); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/main/resources/fileTemplates/j2ee/skeleton/neoforge/NeoForgeModEffect.java.html: -------------------------------------------------------------------------------- 1 | 20 | 21 | NeoForge style mob effect class 22 | -------------------------------------------------------------------------------- /src/main/resources/fileTemplates/j2ee/skeleton/neoforge/NeoForgePacket.java.ft: -------------------------------------------------------------------------------- 1 | #if (${PACKAGE_NAME} && ${PACKAGE_NAME} != "")package ${PACKAGE_NAME};#end 2 | #parse("File Header.java") 3 | 4 | import net.minecraft.network.FriendlyByteBuf; 5 | import net.neoforged.neoforge.network.NetworkEvent; 6 | import java.util.function.Supplier; 7 | 8 | public class ${NAME} { 9 | 10 | public ${NAME}() { 11 | 12 | } 13 | 14 | public ${NAME}(FriendlyByteBuf buf) { 15 | 16 | } 17 | 18 | public void toBytes(FriendlyByteBuf buf) { 19 | 20 | } 21 | 22 | public void handle(Supplier ctx) { 23 | ctx.get().enqueueWork(() -> { 24 | 25 | }); 26 | ctx.get().setPacketHandled(true); 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /src/main/resources/fileTemplates/j2ee/skeleton/neoforge/NeoForgePacket.java.html: -------------------------------------------------------------------------------- 1 | 20 | 21 | NeoForge style packet class 22 | -------------------------------------------------------------------------------- /src/main/resources/fileTemplates/j2ee/sponge/Sponge 8+ Main Class.java.html: -------------------------------------------------------------------------------- 1 | 20 | 21 | 22 | 23 |

This is a built-in file template used to create a new main class for SpongeAPI 8.

24 | 25 | 26 | -------------------------------------------------------------------------------- /src/main/resources/fileTemplates/j2ee/sponge/Sponge 8+ build.gradle.kts.html: -------------------------------------------------------------------------------- 1 | 20 | 21 | 22 | 23 |

This is a built-in file template used to create a new build.gradle for SpongeAPI 8 projects.

24 | 25 | 26 | -------------------------------------------------------------------------------- /src/main/resources/fileTemplates/j2ee/sponge/Sponge 8+ gradle.properties.ft: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eigenraven/MinecraftDev/12d5577e37df3bc18b03e111750b31c87d96c666/src/main/resources/fileTemplates/j2ee/sponge/Sponge 8+ gradle.properties.ft -------------------------------------------------------------------------------- /src/main/resources/fileTemplates/j2ee/sponge/Sponge 8+ gradle.properties.html: -------------------------------------------------------------------------------- 1 | 20 | 21 | 22 | 23 |

This is a built-in file template used to create a new gradle.properties file for SpongeAPI 8 projects.

24 | 25 | 26 | -------------------------------------------------------------------------------- /src/main/resources/fileTemplates/j2ee/sponge/Sponge 8+ settings.gradle.kts.ft: -------------------------------------------------------------------------------- 1 | rootProject.name = "${PROJECT_NAME}" 2 | -------------------------------------------------------------------------------- /src/main/resources/fileTemplates/j2ee/sponge/Sponge 8+ settings.gradle.kts.html: -------------------------------------------------------------------------------- 1 | 20 | 21 | 22 | 23 |

This is a built-in file template used to create a new settings.gradle for SpongeAPI 8 projects.

24 | 25 | 26 | -------------------------------------------------------------------------------- /src/main/resources/fileTemplates/j2ee/sponge/Sponge pom.xml.html: -------------------------------------------------------------------------------- 1 | 20 | 21 | 22 | 23 |

This is a built-in file template used to create a new pom.xml for Sponge.

24 | 25 | 26 | -------------------------------------------------------------------------------- /src/main/resources/fileTemplates/j2ee/velocity/Velocity Build Constants.java.ft: -------------------------------------------------------------------------------- 1 | package ${PACKAGE}; 2 | 3 | // The constants are replaced before compilation 4 | public class BuildConstants { 5 | 6 | public static final String VERSION = "${version}"; 7 | } 8 | -------------------------------------------------------------------------------- /src/main/resources/fileTemplates/j2ee/velocity/Velocity Main Class V2.java.ft: -------------------------------------------------------------------------------- 1 | package ${PACKAGE}; 2 | 3 | import com.google.inject.Inject; 4 | import com.velocitypowered.api.event.lifecycle.ProxyInitializeEvent; 5 | import com.velocitypowered.api.event.Subscribe; 6 | #if(${HAS_DEPENDENCIES}) 7 | import com.velocitypowered.api.plugin.Dependency; 8 | #end 9 | import com.velocitypowered.api.plugin.Plugin; 10 | import org.slf4j.Logger; 11 | 12 | public class ${CLASS_NAME} { 13 | 14 | @Inject private Logger logger; 15 | 16 | @Subscribe 17 | public void onProxyInitialization(ProxyInitializeEvent event) { 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /src/main/resources/fileTemplates/j2ee/velocity/Velocity Main Class V2.java.html: -------------------------------------------------------------------------------- 1 | 20 | 21 | 22 | 23 |

This is a built-in file template used to create a new main class for Velocity 2.+.

24 | 25 | 26 | -------------------------------------------------------------------------------- /src/main/resources/fileTemplates/j2ee/velocity/Velocity Main Class.java.ft: -------------------------------------------------------------------------------- 1 | package ${PACKAGE}; 2 | 3 | import com.google.inject.Inject; 4 | import com.velocitypowered.api.event.proxy.ProxyInitializeEvent; 5 | import com.velocitypowered.api.event.Subscribe; 6 | #if(${HAS_DEPENDENCIES}) 7 | import com.velocitypowered.api.plugin.Dependency; 8 | #end 9 | import com.velocitypowered.api.plugin.Plugin; 10 | import org.slf4j.Logger; 11 | 12 | public class ${CLASS_NAME} { 13 | 14 | @Inject private Logger logger; 15 | 16 | @Subscribe 17 | public void onProxyInitialization(ProxyInitializeEvent event) { 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /src/main/resources/fileTemplates/j2ee/velocity/Velocity Main Class.java.html: -------------------------------------------------------------------------------- 1 | 20 | 21 | 22 | 23 |

This is a built-in file template used to create a new main class for Velocity.

24 | 25 | 26 | -------------------------------------------------------------------------------- /src/main/resources/fileTemplates/j2ee/velocity/Velocity build.gradle.html: -------------------------------------------------------------------------------- 1 | 20 | 21 | 22 | 23 |

This is a built-in file template used to create a new build.gradle for Velocity projects.

24 | 25 | 26 | -------------------------------------------------------------------------------- /src/main/resources/fileTemplates/j2ee/velocity/Velocity gradle.properties.ft: -------------------------------------------------------------------------------- 1 | #if (${JAVA_VERSION}) 2 | javaVersion=${JAVA_VERSION} 3 | #end 4 | -------------------------------------------------------------------------------- /src/main/resources/fileTemplates/j2ee/velocity/Velocity gradle.properties.html: -------------------------------------------------------------------------------- 1 | 20 | 21 | 22 | 23 |

This is a built-in file template used to create a new gradle.properties file for Velocity projects.

24 | 25 | 26 | -------------------------------------------------------------------------------- /src/main/resources/fileTemplates/j2ee/velocity/Velocity pom.xml.html: -------------------------------------------------------------------------------- 1 | 20 | 21 | 22 | 23 |

This is a built-in file template used to create a new pom.xml for Velocity.

24 | 25 | 26 | -------------------------------------------------------------------------------- /src/main/resources/fileTemplates/j2ee/velocity/Velocity settings.gradle.ft: -------------------------------------------------------------------------------- 1 | rootProject.name = '${PROJECT_NAME}' 2 | -------------------------------------------------------------------------------- /src/main/resources/fileTemplates/j2ee/velocity/Velocity settings.gradle.html: -------------------------------------------------------------------------------- 1 | 20 | 21 | 22 | 23 |

This is a built-in file template used to create a new settings.gradle for Velocity projects.

24 | 25 | 26 | -------------------------------------------------------------------------------- /src/main/resources/intentionDescriptions/convertToTranslation/after.java.template: -------------------------------------------------------------------------------- 1 | System.out.println(I18n.format("translation.key")); 2 | -------------------------------------------------------------------------------- /src/main/resources/intentionDescriptions/convertToTranslation/before.java.template: -------------------------------------------------------------------------------- 1 | System.out.println("Some text"); 2 | -------------------------------------------------------------------------------- /src/main/resources/intentionDescriptions/convertToTranslation/description.html: -------------------------------------------------------------------------------- 1 | 20 | 21 | 22 | 23 | Converts a string literal to a translation and adds it to all language files. 24 | 25 | 26 | -------------------------------------------------------------------------------- /src/main/resources/messages/MinecraftDevelopment_fr.properties: -------------------------------------------------------------------------------- 1 | # 2 | # Minecraft Development for IntelliJ 3 | # 4 | # https://mcdev.io/ 5 | # 6 | # Copyright (C) 2025 minecraft-dev 7 | # 8 | # This program is free software: you can redistribute it and/or modify 9 | # it under the terms of the GNU Lesser General Public License as published 10 | # by the Free Software Foundation, version 3.0 only. 11 | # 12 | # This program is distributed in the hope that it will be useful, 13 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | # GNU General Public License for more details. 16 | # 17 | # You should have received a copy of the GNU Lesser General Public License 18 | # along with this program. If not, see . 19 | # 20 | 21 | generate.event_listener.title=Event Listener 22 | generate.event_listener.settings=Configuration du Listener 23 | -------------------------------------------------------------------------------- /src/test/kotlin/framework/NoEdt.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * Minecraft Development for IntelliJ 3 | * 4 | * https://mcdev.io/ 5 | * 6 | * Copyright (C) 2025 minecraft-dev 7 | * 8 | * This program is free software: you can redistribute it and/or modify 9 | * it under the terms of the GNU Lesser General Public License as published 10 | * by the Free Software Foundation, version 3.0 only. 11 | * 12 | * This program is distributed in the hope that it will be useful, 13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | * GNU General Public License for more details. 16 | * 17 | * You should have received a copy of the GNU Lesser General Public License 18 | * along with this program. If not, see . 19 | */ 20 | 21 | package com.demonwav.mcdev.framework 22 | 23 | @Retention(AnnotationRetention.RUNTIME) 24 | @Target(AnnotationTarget.FUNCTION) 25 | annotation class NoEdt 26 | -------------------------------------------------------------------------------- /src/test/kotlin/package-info.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * Minecraft Development for IntelliJ 3 | * 4 | * https://mcdev.io/ 5 | * 6 | * Copyright (C) 2025 minecraft-dev 7 | * 8 | * This program is free software: you can redistribute it and/or modify 9 | * it under the terms of the GNU Lesser General Public License as published 10 | * by the Free Software Foundation, version 3.0 only. 11 | * 12 | * This program is distributed in the hope that it will be useful, 13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | * GNU General Public License for more details. 16 | * 17 | * You should have received a copy of the GNU Lesser General Public License 18 | * along with this program. If not, see . 19 | */ 20 | 21 | // IntelliJ doesn't seem to know what the base package is in the other files without this 22 | // (since there aren't any other files at this root level) 23 | package com.demonwav.mcdev 24 | -------------------------------------------------------------------------------- /src/test/resources/com/demonwav/mcdev/platform/bukkit/pluginYmlInspection/SimplePlugin.java: -------------------------------------------------------------------------------- 1 | package test; 2 | 3 | import org.bukkit.plugin.java.JavaPlugin; 4 | 5 | public class SimplePlugin extends JavaPlugin {} 6 | -------------------------------------------------------------------------------- /src/test/resources/com/demonwav/mcdev/platform/bukkit/pluginYmlReferenceContributor/SimplePlugin.java: -------------------------------------------------------------------------------- 1 | package simple.plugin; 2 | 3 | import org.bukkit.plugin.java.JavaPlugin; 4 | 5 | public class SimplePlugin extends JavaPlugin {} 6 | -------------------------------------------------------------------------------- /src/test/resources/com/demonwav/mcdev/platform/bukkit/pluginYmlReferenceContributor/afterMove/plugin.yml: -------------------------------------------------------------------------------- 1 | main: pack.SimplePlugin 2 | -------------------------------------------------------------------------------- /src/test/resources/com/demonwav/mcdev/platform/bukkit/pluginYmlReferenceContributor/afterRename/RenamedPlugin.java: -------------------------------------------------------------------------------- 1 | package simple.plugin; 2 | 3 | import org.bukkit.plugin.java.JavaPlugin; 4 | 5 | public class RenamedPlugin extends JavaPlugin {} 6 | -------------------------------------------------------------------------------- /src/test/resources/com/demonwav/mcdev/platform/bukkit/pluginYmlReferenceContributor/afterRename/plugin.yml: -------------------------------------------------------------------------------- 1 | main: simple.plugin.RenamedPlugin 2 | -------------------------------------------------------------------------------- /src/test/resources/com/demonwav/mcdev/platform/bukkit/pluginYmlReferenceContributor/plugin.yml: -------------------------------------------------------------------------------- 1 | main: simple.plugin.SimplePlugin 2 | -------------------------------------------------------------------------------- /src/test/resources/com/demonwav/mcdev/platform/bungeecord/pluginYmlInspection/SimplePlugin.java: -------------------------------------------------------------------------------- 1 | package test; 2 | 3 | import net.md_5.bungee.api.plugin.Plugin; 4 | 5 | public class SimplePlugin extends Plugin {} 6 | -------------------------------------------------------------------------------- /src/test/resources/com/demonwav/mcdev/platform/forge/modsTomlCompletion/boolean/mods.toml: -------------------------------------------------------------------------------- 1 | showAsResourcePack= 2 | -------------------------------------------------------------------------------- /src/test/resources/com/demonwav/mcdev/platform/forge/modsTomlCompletion/dependenciesKeys/mods.toml: -------------------------------------------------------------------------------- 1 | [[dependencies.mod]] 2 | 3 | -------------------------------------------------------------------------------- /src/test/resources/com/demonwav/mcdev/platform/forge/modsTomlCompletion/dependencyOrderingValue/mods.toml: -------------------------------------------------------------------------------- 1 | [[dependencies.mod]] 2 | ordering= 3 | -------------------------------------------------------------------------------- /src/test/resources/com/demonwav/mcdev/platform/forge/modsTomlCompletion/dependencySideValue/mods.toml: -------------------------------------------------------------------------------- 1 | [[dependencies.mod]] 2 | side= 3 | -------------------------------------------------------------------------------- /src/test/resources/com/demonwav/mcdev/platform/forge/modsTomlCompletion/displayTestValue/mods.toml: -------------------------------------------------------------------------------- 1 | [[mods]] 2 | displayTest= 3 | -------------------------------------------------------------------------------- /src/test/resources/com/demonwav/mcdev/platform/forge/modsTomlCompletion/modDependencyKey/mods.toml: -------------------------------------------------------------------------------- 1 | [[mods]] 2 | modId="declared_mod_1" 3 | 4 | [[mods]] 5 | modId="declared_mod_2" 6 | 7 | [[dependencies.]] 8 | -------------------------------------------------------------------------------- /src/test/resources/com/demonwav/mcdev/platform/forge/modsTomlCompletion/modsKeys/mods.toml: -------------------------------------------------------------------------------- 1 | [[mods]] 2 | 3 | -------------------------------------------------------------------------------- /src/test/resources/com/demonwav/mcdev/platform/forge/modsTomlCompletion/rootKeys/mods.toml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/test/resources/com/demonwav/mcdev/platform/forge/modsTomlCompletion/stringCompletion/mods.toml: -------------------------------------------------------------------------------- 1 | [[dependencies.mod]] 2 | side="BOT" 3 | -------------------------------------------------------------------------------- /src/test/resources/com/demonwav/mcdev/platform/forge/modsTomlCompletion/stringCompletion/mods.toml.after: -------------------------------------------------------------------------------- 1 | [[dependencies.mod]] 2 | side="BOTH" 3 | -------------------------------------------------------------------------------- /src/test/resources/com/demonwav/mcdev/platform/forge/modsTomlCompletion/stringCompletionFromNothing/mods.toml: -------------------------------------------------------------------------------- 1 | [[dependencies.mod]] 2 | side=BOT 3 | -------------------------------------------------------------------------------- /src/test/resources/com/demonwav/mcdev/platform/forge/modsTomlCompletion/stringCompletionFromNothing/mods.toml.after: -------------------------------------------------------------------------------- 1 | [[dependencies.mod]] 2 | side="BOTH" 3 | -------------------------------------------------------------------------------- /src/test/resources/com/demonwav/mcdev/platform/mcp/at/parser/fixtures/asterisks_at.cfg: -------------------------------------------------------------------------------- 1 | public net.minecraft.network.play.client.CPacketPlayer * 2 | public net.minecraft.network.play.client.CPacketResourcePackStatus *() 3 | -------------------------------------------------------------------------------- /src/test/resources/com/demonwav/mcdev/platform/mcp/at/parser/fixtures/asterisks_at.txt: -------------------------------------------------------------------------------- 1 | Access Transformers(0,127) 2 | AtEntryImpl(ENTRY)(0,56) 3 | AtKeywordImpl(KEYWORD)(0,6) 4 | PsiElement(KEYWORD_ELEMENT)('public')(0,6) 5 | PsiWhiteSpace(' ')(6,7) 6 | AtClassNameImpl(CLASS_NAME)(7,54) 7 | PsiElement(CLASS_NAME_ELEMENT)('net.minecraft.network.play.client.CPacketPlayer')(7,54) 8 | PsiWhiteSpace(' ')(54,55) 9 | AtAsteriskImpl(ASTERISK)(55,56) 10 | PsiElement(ASTERISK_ELEMENT)('*')(55,56) 11 | PsiElement(CRLF)('\n')(56,57) 12 | AtEntryImpl(ENTRY)(57,127) 13 | AtKeywordImpl(KEYWORD)(57,63) 14 | PsiElement(KEYWORD_ELEMENT)('public')(57,63) 15 | PsiWhiteSpace(' ')(63,64) 16 | AtClassNameImpl(CLASS_NAME)(64,123) 17 | PsiElement(CLASS_NAME_ELEMENT)('net.minecraft.network.play.client.CPacketResourcePackStatus')(64,123) 18 | PsiWhiteSpace(' ')(123,124) 19 | AtAsteriskImpl(ASTERISK)(124,127) 20 | PsiElement(ASTERISK_ELEMENT)('*()')(124,127) 21 | -------------------------------------------------------------------------------- /src/test/resources/com/demonwav/mcdev/platform/mcp/at/parser/fixtures/comments_at.cfg: -------------------------------------------------------------------------------- 1 | # Comment one 2 | # Comment two 3 | private-f net.minecraft.network.ServerStatusResponse$PlayerCountData field_151334_b # Comment after method 4 | public-f net.minecraft.item.ItemStack # Comment after no value 5 | public net.minecraft.network.play.client.CPacketPlayer * # Comment after asterisk 6 | public net.minecraft.item.ItemTool field_77864_a # Comment after field 7 | -------------------------------------------------------------------------------- /src/test/resources/com/demonwav/mcdev/platform/mcp/at/parser/fixtures/fields_at.cfg: -------------------------------------------------------------------------------- 1 | public net.minecraft.entity.player.EntityPlayer field_184827_bp # PLAYER_MODEL_FLAG 2 | public net.minecraft.entity.player.EntityPlayer field_184828_bq # MAIN_HAND 3 | public net.minecraft.entity.player.EntityPlayer field_184829_a # field_184829_a 4 | public net.minecraft.entity.player.EntityPlayer field_184830_b # PLAYER_SCORE 5 | public net.minecraft.entity.player.EntityPlayer field_71078_a # theInventoryEnderChest 6 | public net.minecraft.entity.player.EntityPlayerMP field_71144_ck # lastExperience 7 | public net.minecraft.entity.player.InventoryPlayer field_184440_g # main_inventory 8 | public net.minecraft.entity.player.PlayerCapabilities field_75096_f # flySpeed 9 | public net.minecraft.entity.player.PlayerCapabilities field_75097_g # walkSpeed 10 | -------------------------------------------------------------------------------- /src/test/resources/com/demonwav/mcdev/platform/mcp/at/parser/fixtures/keywords_at.cfg: -------------------------------------------------------------------------------- 1 | public package.class field 2 | public-f package.class field 3 | public+f package.class field 4 | private package.class field 5 | private-f package.class field 6 | private+f package.class field 7 | protected package.class field 8 | protected-f package.class field 9 | protected+f package.class field 10 | default package.class field 11 | default-f package.class field 12 | default+f package.class field 13 | -------------------------------------------------------------------------------- /src/test/resources/com/demonwav/mcdev/platform/mcp/at/parser/fixtures/no_value_at.cfg: -------------------------------------------------------------------------------- 1 | public-f net.minecraft.item.ItemStack 2 | public net.minecraft.block.state.BlockStateContainer$StateImplementation 3 | public net.minecraft.entity.ai.EntityAITasks$EntityAITaskEntry 4 | -------------------------------------------------------------------------------- /src/test/resources/com/demonwav/mcdev/platform/mixin/invalidInjectorMethodSignature/genericCase.java: -------------------------------------------------------------------------------- 1 | package test; 2 | 3 | import com.demonwav.mcdev.mixintestdata.invalidInjectorMethodSignatureFix.MixedInGeneric; 4 | import org.spongepowered.asm.mixin.Mixin; 5 | import org.spongepowered.asm.mixin.injection.At; 6 | import org.spongepowered.asm.mixin.injection.Inject; 7 | 8 | @Mixin(MixedInGeneric.class) 9 | public class TestMixin { 10 | 11 | @Inject(method = "genericMethod", at = @At("RETURN")) 12 | private void injectGeneric() { 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/test/resources/com/demonwav/mcdev/platform/mixin/invalidInjectorMethodSignature/genericCaseComplexReturnType.after.java: -------------------------------------------------------------------------------- 1 | package test; 2 | 3 | import com.demonwav.mcdev.mixintestdata.invalidInjectorMethodSignatureFix.MixedInGeneric; 4 | import org.spongepowered.asm.mixin.Mixin; 5 | import org.spongepowered.asm.mixin.injection.At; 6 | import org.spongepowered.asm.mixin.injection.Inject; 7 | import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; 8 | 9 | import java.util.List; 10 | import java.util.Map; 11 | 12 | @Mixin(MixedInGeneric.class) 13 | public class TestMixin { 14 | 15 | @Inject(method = "returnComplex", at = @At("RETURN")) 16 | private void injectGeneric(CallbackInfoReturnable>>[]>> cir) { 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /src/test/resources/com/demonwav/mcdev/platform/mixin/invalidInjectorMethodSignature/genericCaseComplexReturnType.java: -------------------------------------------------------------------------------- 1 | package test; 2 | 3 | import com.demonwav.mcdev.mixintestdata.invalidInjectorMethodSignatureFix.MixedInGeneric; 4 | import org.spongepowered.asm.mixin.Mixin; 5 | import org.spongepowered.asm.mixin.injection.At; 6 | import org.spongepowered.asm.mixin.injection.Inject; 7 | 8 | @Mixin(MixedInGeneric.class) 9 | public class TestMixin { 10 | 11 | @Inject(method = "returnComplex", at = @At("RETURN")) 12 | private void injectGeneric() { 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/test/resources/com/demonwav/mcdev/platform/mixin/invalidInjectorMethodSignature/injectWithoutCI.after.java: -------------------------------------------------------------------------------- 1 | package test; 2 | 3 | import com.demonwav.mcdev.mixintestdata.invalidInjectorMethodSignatureFix.MixedInSimple; 4 | import org.spongepowered.asm.mixin.Mixin; 5 | import org.spongepowered.asm.mixin.injection.At; 6 | import org.spongepowered.asm.mixin.injection.Inject; 7 | import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; 8 | 9 | @Mixin(MixedInSimple.class) 10 | public class TestMixin { 11 | 12 | @Inject(method = "simpleMethod", at = @At("RETURN")) 13 | private void injectCtor(String string, int i, CallbackInfo ci) { 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /src/test/resources/com/demonwav/mcdev/platform/mixin/invalidInjectorMethodSignature/injectWithoutCI.java: -------------------------------------------------------------------------------- 1 | package test; 2 | 3 | import com.demonwav.mcdev.mixintestdata.invalidInjectorMethodSignatureFix.MixedInSimple; 4 | import org.spongepowered.asm.mixin.Mixin; 5 | import org.spongepowered.asm.mixin.injection.At; 6 | import org.spongepowered.asm.mixin.injection.Inject; 7 | import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; 8 | 9 | @Mixin(MixedInSimple.class) 10 | public class TestMixin { 11 | 12 | @Inject(method = "simpleMethod", at = @At("RETURN")) 13 | private void injectCtor(String string, String invalidLocal) { 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /src/test/resources/com/demonwav/mcdev/platform/mixin/invalidInjectorMethodSignature/innerCtorWithLocals.after.java: -------------------------------------------------------------------------------- 1 | package test; 2 | 3 | import com.demonwav.mcdev.mixintestdata.invalidInjectorMethodSignatureFix.MixedInOuter; 4 | import org.spongepowered.asm.mixin.Mixin; 5 | import org.spongepowered.asm.mixin.injection.At; 6 | import org.spongepowered.asm.mixin.injection.Inject; 7 | import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; 8 | 9 | @Mixin(MixedInOuter.MixedInInner.class) 10 | public class TestMixin { 11 | 12 | @Inject(method = "(Lcom/demonwav/mcdev/mixintestdata/invalidInjectorMethodSignatureFix/MixedInOuter;Ljava/lang/String;)V", at = @At("RETURN")) 13 | private void injectCtor(MixedInOuter this$0, String string, CallbackInfo ci, String local1, float local2, int local3) { 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /src/test/resources/com/demonwav/mcdev/platform/mixin/invalidInjectorMethodSignature/innerCtorWithLocals.java: -------------------------------------------------------------------------------- 1 | package test; 2 | 3 | import com.demonwav.mcdev.mixintestdata.invalidInjectorMethodSignatureFix.MixedInOuter; 4 | import org.spongepowered.asm.mixin.Mixin; 5 | import org.spongepowered.asm.mixin.injection.At; 6 | import org.spongepowered.asm.mixin.injection.Inject; 7 | import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; 8 | 9 | @Mixin(MixedInOuter.MixedInInner.class) 10 | public class TestMixin { 11 | 12 | @Inject(method = "(Lcom/demonwav/mcdev/mixintestdata/invalidInjectorMethodSignatureFix/MixedInOuter;Ljava/lang/String;)V", at = @At("RETURN")) 13 | private void injectCtor(String string, CallbackInfo ci, String local1, float local2, int local3) { 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /src/test/resources/com/demonwav/mcdev/platform/mixin/invalidInjectorMethodSignature/modifyArgs.after.java: -------------------------------------------------------------------------------- 1 | package test; 2 | 3 | import com.demonwav.mcdev.mixintestdata.invalidInjectorMethodSignatureFix.MixedInSimple; 4 | import org.spongepowered.asm.mixin.Mixin; 5 | import org.spongepowered.asm.mixin.injection.At; 6 | import org.spongepowered.asm.mixin.injection.ModifyArgs; 7 | import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; 8 | import org.spongepowered.asm.mixin.injection.invoke.arg.Args; 9 | 10 | @Mixin(MixedInSimple.class) 11 | public class TestMixin { 12 | 13 | @ModifyArgs(method = "simpleMethod", at = @At(value = "INVOKE", target = "Ljava/lang/Integer;parseInt(Ljava/lang/String;I)I")) 14 | private void inject(Args args) { 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /src/test/resources/com/demonwav/mcdev/platform/mixin/invalidInjectorMethodSignature/modifyArgs.java: -------------------------------------------------------------------------------- 1 | package test; 2 | 3 | import com.demonwav.mcdev.mixintestdata.invalidInjectorMethodSignatureFix.MixedInSimple; 4 | import org.spongepowered.asm.mixin.Mixin; 5 | import org.spongepowered.asm.mixin.injection.At; 6 | import org.spongepowered.asm.mixin.injection.ModifyArgs; 7 | import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; 8 | import org.spongepowered.asm.mixin.injection.invoke.arg.Args; 9 | 10 | @Mixin(MixedInSimple.class) 11 | public class TestMixin { 12 | 13 | @ModifyArgs(method = "simpleMethod", at = @At(value = "INVOKE", target = "Ljava/lang/Integer;parseInt(Ljava/lang/String;I)I")) 14 | private void inject(String stringToParse, int base) { 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /src/test/resources/com/demonwav/mcdev/platform/mixin/invalidInjectorMethodSignature/simpleCase.after.java: -------------------------------------------------------------------------------- 1 | package test; 2 | 3 | import com.demonwav.mcdev.mixintestdata.invalidInjectorMethodSignatureFix.MixedInSimple; 4 | import org.spongepowered.asm.mixin.Mixin; 5 | import org.spongepowered.asm.mixin.injection.At; 6 | import org.spongepowered.asm.mixin.injection.Inject; 7 | import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; 8 | 9 | @Mixin(MixedInSimple.class) 10 | public class TestMixin { 11 | 12 | @Inject(method = "simpleMethod", at = @At("RETURN")) 13 | private void injectCtor(String string, int i, CallbackInfo ci) { 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /src/test/resources/com/demonwav/mcdev/platform/mixin/invalidInjectorMethodSignature/simpleCase.java: -------------------------------------------------------------------------------- 1 | package test; 2 | 3 | import com.demonwav.mcdev.mixintestdata.invalidInjectorMethodSignatureFix.MixedInSimple; 4 | import org.spongepowered.asm.mixin.Mixin; 5 | import org.spongepowered.asm.mixin.injection.At; 6 | import org.spongepowered.asm.mixin.injection.Inject; 7 | import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; 8 | 9 | @Mixin(MixedInSimple.class) 10 | public class TestMixin { 11 | 12 | @Inject(method = "simpleMethod", at = @At("RETURN")) 13 | private void injectCtor(String string, CallbackInfo ci) { 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /src/test/resources/com/demonwav/mcdev/platform/mixin/invalidInjectorMethodSignature/simpleCaseWithMixinExtrasSugar.after.java: -------------------------------------------------------------------------------- 1 | package test; 2 | 3 | import com.demonwav.mcdev.mixintestdata.invalidInjectorMethodSignatureFix.MixedInSimple; 4 | import com.llamalad7.mixinextras.sugar.Local; 5 | import org.spongepowered.asm.mixin.Mixin; 6 | import org.spongepowered.asm.mixin.injection.At; 7 | import org.spongepowered.asm.mixin.injection.Inject; 8 | import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; 9 | 10 | @Mixin(MixedInSimple.class) 11 | public class TestMixin { 12 | 13 | @Inject(method = "simpleMethod", at = @At("RETURN")) 14 | private void injectCtor(String string, int i, CallbackInfo ci, @Local String str) { 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /src/test/resources/com/demonwav/mcdev/platform/mixin/invalidInjectorMethodSignature/simpleCaseWithMixinExtrasSugar.java: -------------------------------------------------------------------------------- 1 | package test; 2 | 3 | import com.demonwav.mcdev.mixintestdata.invalidInjectorMethodSignatureFix.MixedInSimple; 4 | import com.llamalad7.mixinextras.sugar.Local; 5 | import org.spongepowered.asm.mixin.Mixin; 6 | import org.spongepowered.asm.mixin.injection.At; 7 | import org.spongepowered.asm.mixin.injection.Inject; 8 | import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; 9 | 10 | @Mixin(MixedInSimple.class) 11 | public class TestMixin { 12 | 13 | @Inject(method = "simpleMethod", at = @At("RETURN")) 14 | private void injectCtor(String string, CallbackInfo ci, @Local String str) { 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /src/test/resources/com/demonwav/mcdev/platform/mixin/invalidInjectorMethodSignature/simpleInnerCtor.after.java: -------------------------------------------------------------------------------- 1 | package test; 2 | 3 | import com.demonwav.mcdev.mixintestdata.invalidInjectorMethodSignatureFix.MixedInOuter; 4 | import org.spongepowered.asm.mixin.Mixin; 5 | import org.spongepowered.asm.mixin.injection.At; 6 | import org.spongepowered.asm.mixin.injection.Inject; 7 | import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; 8 | 9 | @Mixin(MixedInOuter.MixedInInner.class) 10 | public class TestMixin { 11 | 12 | @Inject(method = "(Lcom/demonwav/mcdev/mixintestdata/invalidInjectorMethodSignatureFix/MixedInOuter;Ljava/lang/String;)V", at = @At("RETURN")) 13 | private void injectCtor(MixedInOuter this$0, String string, CallbackInfo ci) { 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /src/test/resources/com/demonwav/mcdev/platform/mixin/invalidInjectorMethodSignature/simpleInnerCtor.java: -------------------------------------------------------------------------------- 1 | package test; 2 | 3 | import com.demonwav.mcdev.mixintestdata.invalidInjectorMethodSignatureFix.MixedInOuter; 4 | import org.spongepowered.asm.mixin.Mixin; 5 | import org.spongepowered.asm.mixin.injection.At; 6 | import org.spongepowered.asm.mixin.injection.Inject; 7 | import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; 8 | 9 | @Mixin(MixedInOuter.MixedInInner.class) 10 | public class TestMixin { 11 | 12 | @Inject(method = "(Lcom/demonwav/mcdev/mixintestdata/invalidInjectorMethodSignatureFix/MixedInOuter;Ljava/lang/String;)V", at = @At("RETURN")) 13 | private void injectCtor(String string, CallbackInfo ci) { 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /src/test/resources/com/demonwav/mcdev/platform/mixin/invalidInjectorMethodSignature/simpleMethodWithInnerType.after.java: -------------------------------------------------------------------------------- 1 | package test; 2 | 3 | import com.demonwav.mcdev.mixintestdata.invalidInjectorMethodSignatureFix.MixedInOuter; 4 | import org.spongepowered.asm.mixin.Mixin; 5 | import org.spongepowered.asm.mixin.injection.At; 6 | import org.spongepowered.asm.mixin.injection.Inject; 7 | import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; 8 | import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; 9 | 10 | @Mixin(MixedInOuter.class) 11 | public class TestMixin { 12 | 13 | @Inject(method = "methodWithInnerType", at = @At("RETURN")) 14 | private void injectCtor(MixedInOuter.MixedInInner param, CallbackInfoReturnable cir) { 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /src/test/resources/com/demonwav/mcdev/platform/mixin/invalidInjectorMethodSignature/simpleMethodWithInnerType.java: -------------------------------------------------------------------------------- 1 | package test; 2 | 3 | import com.demonwav.mcdev.mixintestdata.invalidInjectorMethodSignatureFix.MixedInOuter; 4 | import org.spongepowered.asm.mixin.Mixin; 5 | import org.spongepowered.asm.mixin.injection.At; 6 | import org.spongepowered.asm.mixin.injection.Inject; 7 | import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; 8 | 9 | @Mixin(MixedInOuter.class) 10 | public class TestMixin { 11 | 12 | @Inject(method = "methodWithInnerType", at = @At("RETURN")) 13 | private void injectCtor() { 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /src/test/resources/com/demonwav/mcdev/platform/mixin/invalidInjectorMethodSignature/withCapturedLocals.after.java: -------------------------------------------------------------------------------- 1 | package test; 2 | 3 | import com.demonwav.mcdev.mixintestdata.invalidInjectorMethodSignatureFix.MixedInSimple; 4 | import org.spongepowered.asm.mixin.Mixin; 5 | import org.spongepowered.asm.mixin.injection.At; 6 | import org.spongepowered.asm.mixin.injection.Inject; 7 | import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; 8 | 9 | @Mixin(MixedInSimple.class) 10 | public class TestMixin { 11 | 12 | @Inject(method = "simpleMethod", at = @At("RETURN")) 13 | private void injectCtor(String string, int i, CallbackInfo ci, String local1, float local2, int local3) { 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /src/test/resources/com/demonwav/mcdev/platform/mixin/invalidInjectorMethodSignature/withCapturedLocals.java: -------------------------------------------------------------------------------- 1 | package test; 2 | 3 | import com.demonwav.mcdev.mixintestdata.invalidInjectorMethodSignatureFix.MixedInSimple; 4 | import org.spongepowered.asm.mixin.Mixin; 5 | import org.spongepowered.asm.mixin.injection.At; 6 | import org.spongepowered.asm.mixin.injection.Inject; 7 | import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; 8 | 9 | @Mixin(MixedInSimple.class) 10 | public class TestMixin { 11 | 12 | @Inject(method = "simpleMethod", at = @At("RETURN")) 13 | private void injectCtor(String string, CallbackInfo ci, String local1, float local2, int local3) { 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /src/test/resources/com/demonwav/mcdev/translations/lexer/fixtures/comments.lang: -------------------------------------------------------------------------------- 1 | # Comment 1 2 | # Comment 2 3 | # Comment 3 4 | #commented.property=Commented Property 5 | -------------------------------------------------------------------------------- /src/test/resources/com/demonwav/mcdev/translations/lexer/fixtures/comments.txt: -------------------------------------------------------------------------------- 1 | COMMENT ('# Comment 1') 2 | LINE_ENDING ('\n') 3 | COMMENT ('# Comment 2') 4 | LINE_ENDING ('\n') 5 | COMMENT ('# Comment 3') 6 | LINE_ENDING ('\n') 7 | COMMENT ('#commented.property=Commented Property') 8 | -------------------------------------------------------------------------------- /src/test/resources/com/demonwav/mcdev/translations/lexer/fixtures/properties.lang: -------------------------------------------------------------------------------- 1 | path.to.key=value of key 2 | path.to.key2=value of key 2 3 | path.to.key3=value of key 3 4 | -------------------------------------------------------------------------------- /src/test/resources/com/demonwav/mcdev/translations/lexer/fixtures/properties.txt: -------------------------------------------------------------------------------- 1 | KEY ('path.to.key') 2 | EQUALS ('=') 3 | VALUE ('value of key') 4 | LINE_ENDING ('\n') 5 | KEY ('path.to.key2') 6 | EQUALS ('=') 7 | VALUE ('value of key 2') 8 | LINE_ENDING ('\n') 9 | KEY ('path.to.key3') 10 | EQUALS ('=') 11 | VALUE ('value of key 3') 12 | -------------------------------------------------------------------------------- /src/test/resources/com/demonwav/mcdev/translations/parser/fixtures/comments.lang: -------------------------------------------------------------------------------- 1 | # Comment 1 2 | # Comment 2 3 | # Comment 3 4 | -------------------------------------------------------------------------------- /src/test/resources/com/demonwav/mcdev/translations/parser/fixtures/comments.txt: -------------------------------------------------------------------------------- 1 | FILE(0,35) 2 | PsiElement(COMMENT)('# Comment 1')(0,11) 3 | PsiElement(LINE_ENDING)('\n')(11,12) 4 | PsiElement(COMMENT)('# Comment 2')(12,23) 5 | PsiElement(LINE_ENDING)('\n')(23,24) 6 | PsiElement(COMMENT)('# Comment 3')(24,35) 7 | -------------------------------------------------------------------------------- /src/test/resources/com/demonwav/mcdev/translations/parser/fixtures/mixed.lang: -------------------------------------------------------------------------------- 1 | # Comment 1 2 | path.to.key=value of key 3 | path.to.key2=value of key 2 4 | # Comment 2 5 | path.to.key3=value of key 3 6 | #path.to.commented.key=value 7 | -------------------------------------------------------------------------------- /src/test/resources/com/demonwav/mcdev/translations/parser/fixtures/mixed.txt: -------------------------------------------------------------------------------- 1 | FILE(0,133) 2 | PsiElement(COMMENT)('# Comment 1')(0,11) 3 | PsiElement(LINE_ENDING)('\n')(11,12) 4 | LangEntry(path.to.key=value of key)(12,36) 5 | PsiElement(KEY)('path.to.key')(12,23) 6 | PsiElement(EQUALS)('=')(23,24) 7 | PsiElement(VALUE)('value of key')(24,36) 8 | PsiElement(LINE_ENDING)('\n')(36,37) 9 | LangEntry(path.to.key2=value of key 2)(37,64) 10 | PsiElement(KEY)('path.to.key2')(37,49) 11 | PsiElement(EQUALS)('=')(49,50) 12 | PsiElement(VALUE)('value of key 2')(50,64) 13 | PsiElement(LINE_ENDING)('\n')(64,65) 14 | PsiElement(COMMENT)('# Comment 2')(65,76) 15 | PsiElement(LINE_ENDING)('\n')(76,77) 16 | LangEntry(path.to.key3=value of key 3)(77,104) 17 | PsiElement(KEY)('path.to.key3')(77,89) 18 | PsiElement(EQUALS)('=')(89,90) 19 | PsiElement(VALUE)('value of key 3')(90,104) 20 | PsiElement(LINE_ENDING)('\n')(104,105) 21 | PsiElement(COMMENT)('#path.to.commented.key=value')(105,133) 22 | -------------------------------------------------------------------------------- /src/test/resources/com/demonwav/mcdev/translations/parser/fixtures/properties.lang: -------------------------------------------------------------------------------- 1 | path.to.key=value of key 2 | path.to.key2=value of key 2 3 | path.to.key3=value of key 3 4 | -------------------------------------------------------------------------------- /src/test/resources/com/demonwav/mcdev/translations/parser/fixtures/properties.txt: -------------------------------------------------------------------------------- 1 | FILE(0,80) 2 | LangEntry(path.to.key=value of key)(0,24) 3 | PsiElement(KEY)('path.to.key')(0,11) 4 | PsiElement(EQUALS)('=')(11,12) 5 | PsiElement(VALUE)('value of key')(12,24) 6 | PsiElement(LINE_ENDING)('\n')(24,25) 7 | LangEntry(path.to.key2=value of key 2)(25,52) 8 | PsiElement(KEY)('path.to.key2')(25,37) 9 | PsiElement(EQUALS)('=')(37,38) 10 | PsiElement(VALUE)('value of key 2')(38,52) 11 | PsiElement(LINE_ENDING)('\n')(52,53) 12 | LangEntry(path.to.key3=value of key 3)(53,80) 13 | PsiElement(KEY)('path.to.key3')(53,65) 14 | PsiElement(EQUALS)('=')(65,66) 15 | PsiElement(VALUE)('value of key 3')(66,80) 16 | --------------------------------------------------------------------------------