⁠
rednesto: Repo-based creator templates (#2304 )
* Initial custom template system
* Add remember, editable and property derivation
* Add hidden properties
* Implement property derivation for all types
* Actual types implementation
Also fix template condition evaluation
* Some more stuff
* Some more refactoring to get things working nicely
* Move CreatorProperties to an EP
* Add property UI order
* Move custom template to a separate module builder
* Add default values to template descriptor
* Add option to output null value if default
* Add group/collapsibleGroup support
* Dropdown labels
* Use segmented buttons for options by default
* Support comma separated string lists
* Add TemplateProviders
* WIP Sponge creator
* Support built-in templates
* Support multiple templates per provider
* Remove commented code
* Remember used templates
* Move CustomPlatformStep to the appropriate package
* Fix recent template provider being saved in the recent list
Also always show the templates list in recent templates
* Switch BuiltInTemplateProvider to flat dir
* Add NeoForge specific stuff
* Add TemplateApi marker annotation for template models
* Move RecentProjectTemplates out of the models package
* Remove old commented code
* Replace usage of kotlin plugin function by stdlib one
* Always refresh template files
* Add fabric_versions
* Add license property
* Handle template descriptor deserialization errors
* Basic template inheritance and template labels
* Add basic versioning
* Display all yarn/fabric api versions if none match the selected game version
* Add property validation support
* Don't even call buildUi if property is hidden
* Add "select" derivation
* Fix templates not getting access to builtin properties
* Include license displayname in LicenseData
* Add 1.16 & 1.20.6 to MinecraftVersions
* Remove unused class
* Some ClassFqn doc & withCl...
* Initial custom template system
* Add remember, editable and property derivation
* Add hidden properties
* Implement property derivation for all types
* Actual types implementation
Also fix template condition evaluation
* Some more stuff
* Some more refactoring to get things working nicely
* Move CreatorProperties to an EP
* Add property UI order
* Move custom template to a separate module builder
* Add default values to template descriptor
* Add option to output null value if default
* Add group/collapsibleGroup support
* Dropdown labels
* Use segmented buttons for options by default
* Support comma separated string lists
* Add TemplateProviders
* WIP Sponge creator
* Support built-in templates
* Support multiple templates per provider
* Remove commented code
* Remember used templates
* Move CustomPlatformStep to the appropriate package
* Fix recent template provider being saved in the recent list
Also always show the templates list in recent templates
* Switch BuiltInTemplateProvider to flat dir
* Add NeoForge specific stuff
* Add TemplateApi marker annotation for template models
* Move RecentProjectTemplates out of the models package
* Remove old commented code
* Replace usage of kotlin plugin function by stdlib one
* Always refresh template files
* Add fabric_versions
* Add license property
* Handle template descriptor deserialization errors
* Basic template inheritance and template labels
* Add basic versioning
* Display all yarn/fabric api versions if none match the selected game version
* Add property validation support
* Don't even call buildUi if property is hidden
* Add "select" derivation
* Fix templates not getting access to builtin properties
* Include license displayname in LicenseData
* Add 1.16 & 1.20.6 to MinecraftVersions
* Remove unused class
* Some ClassFqn doc & withCl...
- name: Publish Plugin
- on:
- push:
- tags:
- - '*'
- jobs:
- publish:
- name: Publish
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@v3
- - uses: actions/setup-java@v3
- with:
- distribution: 'zulu'
- java-version: |
- 11
- 17
- - uses: actions/cache@v3
- with:
- path: |
- ~/.gradle/caches
- ~/.gradle/jdks
- ~/.gradle/native
- ~/.gradle/wrapper
- key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', 'gradle/**', 'gradle.properties') }}
- restore-keys: |
- ${{ runner.os }}-gradle-
- - name: Setup publish token
- env:
- JETBRAINS_TOKEN: ${{ secrets.JETBRAINS_TOKEN }}
- shell: bash
- run: |
- mkdir -p ~/.gradle/
- echo "GRADLE_USER_HOME=$HOME/.gradle" >> "$GITHUB_ENV"
- echo "mcdev.deploy.token=${JETBRAINS_TOKEN}" > ~/.gradle/gradle.properties
- - name: Publish plugin
- run: ./gradlew clean publishPlugin --no-daemon --stacktrace
- - name: Get tag name
- id: get_tag
- shell: bash
- # Tag name is reversed from release name due to how IntelliJ parses plugin version numbers
- run: |
- tag_name="$(echo $GITHUB_REF | cut -d / -f 3)"
- echo ::set-output name=tag::$tag_name
- version_array=(${tag_name//-/ })
- echo ::set-output name=release::${version_array[1]}-${version_array[0]}
- - name: Create GitHub Release
- uses: softprops/action-gh-release@v1
- env:
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- with:
- tag_name: ${{ steps.get_tag.outputs.tag }}
- name: 'Release ${{ steps.get_tag.outputs.release }}'
- body: '## [View all plugin releases here.](https://plugins.jetbrains.com/plugin/8327-minecraft-development/versions/stable/)'
- prerelease: false
- draft: false
- files: build/distributions/*.zip
- name: Publish Plugin
- on:
- push:
- tags:
- - '*'
- jobs:
- publish:
- name: Publish
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@v3
- with:
- submodules: true
- - name: Fetch latest submodule updates
- run: git submodule update --remote
- - uses: actions/setup-java@v3
- with:
- distribution: 'zulu'
- java-version: |
- 11
- 17
- - uses: actions/cache@v3
- with:
- path: |
- ~/.gradle/caches
- ~/.gradle/jdks
- ~/.gradle/native
- ~/.gradle/wrapper
- key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', 'gradle/**', 'gradle.properties') }}
- restore-keys: |
- ${{ runner.os }}-gradle-
- - name: Setup publish token
- env:
- JETBRAINS_TOKEN: ${{ secrets.JETBRAINS_TOKEN }}
- shell: bash
- run: |
- mkdir -p ~/.gradle/
- echo "GRADLE_USER_HOME=$HOME/.gradle" >> "$GITHUB_ENV"
- echo "mcdev.deploy.token=${JETBRAINS_TOKEN}" > ~/.gradle/gradle.properties
- - name: Publish plugin
- run: ./gradlew clean publishPlugin --no-daemon --stacktrace
- - name: Get tag name
- id: get_tag
- shell: bash
- # Tag name is reversed from release name due to how IntelliJ parses plugin version numbers
- run: |
- tag_name="$(echo $GITHUB_REF | cut -d / -f 3)"
- echo ::set-output name=tag::$tag_name
- version_array=(${tag_name//-/ })
- echo ::set-output name=release::${version_array[1]}-${version_array[0]}
- - name: Create GitHub Release
- uses: softprops/action-gh-release@v1
- env:
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- with:
- tag_name: ${{ steps.get_tag.outputs.tag }}
- name: 'Release ${{ steps.get_tag.outputs.release }}'
- body: '## [View all plugin releases here.](https://plugins.jetbrains.com/plugin/8327-minecraft-development/versions/stable/)'
- prerelease: false
- draft: false
- files: build/distributions/*.zip