diff --git a/.github/labeler.yml b/.github/labeler.yml deleted file mode 100644 index 0de407b5..00000000 --- a/.github/labeler.yml +++ /dev/null @@ -1,2 +0,0 @@ -prerelease: - - '*' diff --git a/.github/workflows/call.github_release.yml b/.github/workflows/call.github_release.yml new file mode 100644 index 00000000..334cb70e --- /dev/null +++ b/.github/workflows/call.github_release.yml @@ -0,0 +1,34 @@ +name: 'Call: GitHub Release' + +on: + workflow_call: + inputs: + release_mode: + description: 'Release mode' + required: true + type: string + version_bump: + description: 'Version bump' + required: false + type: string + promote_from: + description: 'Promote from' + required: false + type: string + outputs: + release_created: + description: 'Release created' + value: ${{ jobs.github_release.outputs.release_created }} + tag_name: + description: 'Tag name' + value: ${{ jobs.github_release.outputs.tag_name }} + +jobs: + github_release: + uses: ./.github/workflows/generic.github_release.yml + secrets: inherit + with: + plugin_name: multiverse-core + release_mode: ${{ inputs.release_mode }} + version_bump: ${{ inputs.version_bump }} + promote_from: ${{ inputs.promote_from }} diff --git a/.github/workflows/call.platform_uploads.yml b/.github/workflows/call.platform_uploads.yml new file mode 100644 index 00000000..9ab04ef2 --- /dev/null +++ b/.github/workflows/call.platform_uploads.yml @@ -0,0 +1,83 @@ +name: 'Call: Platform Uploads' + +on: + workflow_call: + inputs: + target_tag: + description: 'Version to upload' + required: true + type: string + upload_modrinth: + description: 'Upload to modrinth.com' + required: true + type: string + upload_dbo: + description: 'Upload to dev.bukkit.org' + required: true + type: string + upload_hangar: + description: 'Upload to hangar.papermc.io' + required: true + type: string + secrets: + MODRINTH_TOKEN: + required: true + DBO_UPLOAD_API_TOKEN: + required: true + HANGAR_UPLOAD_TOKEN: + required: true + +jobs: + platform_uploads: + uses: ./.github/workflows/generic.platform_uploads.yml + secrets: inherit + with: + plugin_name: multiverse-core + modrinth_project_id: 3wmN97b8 + modrinth_dependencies: > + [ + {"project_id": "qvdtDX3s", "dependency_type": "optional"}, + {"project_id": "8VMk6P0I", "dependency_type": "optional"}, + {"project_id": "vtawPsTo", "dependency_type": "optional"}, + {"project_id": "WuErDeI1", "dependency_type": "optional"} + ] + + dbo_project_id: 30765 + dbo_project_relations: > + [ + {"slug": "multiverse-inventories", "type": "optionalDependency"}, + {"slug": "multiverse-portals", "type": "optionalDependency"}, + {"slug": "multiverse-netherportals", "type": "optionalDependency"}, + {"slug": "multiverse-signportals", "type": "optionalDependency"}, + {"slug": "vault", "type": "optionalDependency"} + ] + + hangar_slug: Multiverse-Core + hangar_plugin_dependencies: > + { "PAPER": [ + { + "name": "Multiverse-Inventories", + "required": false, + "platforms": ["PAPER"] + }, + { + "name": "Multiverse-Portals", + "required": false, + "platforms": ["PAPER"] + }, + { + "name": "Multiverse-NetherPortals", + "required": false, + "platforms": ["PAPER"] + }, + { + "name": "Multiverse-SignPortals", + "required": false, + "platforms": ["PAPER"] + } + ]} + + target_tag: ${{ inputs.target_tag }} + upload_modrinth: ${{ inputs.upload_modrinth }} + upload_dbo: ${{ inputs.upload_dbo }} + upload_hangar: ${{ inputs.upload_hangar }} diff --git a/.github/workflows/dispatch.platform_uploads.yml b/.github/workflows/dispatch.platform_uploads.yml new file mode 100644 index 00000000..2eb99cb5 --- /dev/null +++ b/.github/workflows/dispatch.platform_uploads.yml @@ -0,0 +1,31 @@ +name: 'Dispatch: Platform Uploads' + +on: + workflow_dispatch: + inputs: + target_tag: + description: 'Version to upload' + required: true + type: string + upload_modrinth: + description: 'Upload to modrinth.com' + required: true + type: boolean + upload_dbo: + description: 'Upload to dev.bukkit.org' + required: true + type: boolean + upload_hangar: + description: 'Upload to hangar.papermc.io' + required: true + type: boolean + +jobs: + dispatch_platform_uploads: + uses: ./.github/workflows/call.platform_uploads.yml + secrets: inherit + with: + target_tag: ${{ github.event.inputs.target_tag }} + upload_modrinth: ${{ github.event.inputs.upload_modrinth }} + upload_dbo: ${{ github.event.inputs.upload_dbo }} + upload_hangar: ${{ github.event.inputs.upload_hangar }} diff --git a/.github/workflows/dispatch.promote_release.yml b/.github/workflows/dispatch.promote_release.yml new file mode 100644 index 00000000..0a59ca46 --- /dev/null +++ b/.github/workflows/dispatch.promote_release.yml @@ -0,0 +1,38 @@ +name: 'Dispatch: Promote Release' + +on: + workflow_dispatch: + inputs: + target_tag: + description: 'Version to promote' + required: true + +jobs: + check_version: + runs-on: ubuntu-latest + steps: + - name: Verify input version is prerelease + run: | + if [[ "${{ github.event.inputs.target_tag }}" != *"pre"* ]]; then + echo "Version must be a prerelease" + exit 1 + fi + + github_release: + needs: check_version + uses: ./.github/workflows/call.github_release.yml + secrets: inherit + with: + release_mode: promote + promote_from: ${{ github.event.inputs.target_tag }} + + platform_uploads: + needs: github_release + if: needs.github_release.outputs.release_created == 'true' + uses: ./.github/workflows/call.platform_uploads.yml + secrets: inherit + with: + target_tag: ${{ needs.github_release.outputs.tag_name }} + upload_modrinth: 'true' + upload_dbo: 'true' + upload_hangar: 'true' diff --git a/.github/workflows/generic.github_release.yml b/.github/workflows/generic.github_release.yml new file mode 100644 index 00000000..6210d1ed --- /dev/null +++ b/.github/workflows/generic.github_release.yml @@ -0,0 +1,91 @@ +name: 'Generic: GitHub Release' + +on: + workflow_call: + inputs: + # Plugin specific + plugin_name: + description: 'Plugin name' + required: true + type: string + + # Common params + release_mode: + description: 'Release mode' + required: true + type: string + version_bump: + description: 'Version bump' + required: false + type: string + promote_from: + description: 'Promote from' + required: false + type: string + outputs: + release_created: + description: 'Release created' + value: ${{ jobs.github_release.outputs.release_created }} + tag_name: + description: 'Tag name' + value: ${{ jobs.github_release.outputs.tag_name }} + +jobs: + github_release: + runs-on: ubuntu-latest + outputs: + release_created: ${{ steps.release.outputs.release_created }} + tag_name: ${{ steps.release.outputs.tag_name }} + steps: + - name: Echo inputs + run: | + echo "release_mode: ${{ inputs.release_mode }}" + echo "version_bump: ${{ inputs.version_bump }}" + echo "promote_from: ${{ inputs.promote_from }}" + + - uses: actions/checkout@v3 + with: + ref: ${{ inputs.promote_from }} + + - uses: actions/setup-java@v3 + with: + java-version: '11' + distribution: 'adopt' + cache: gradle + + - name: Validate Gradle wrapper + uses: gradle/wrapper-validation-action@v1 + + - name: Build and test + uses: gradle/gradle-build-action@v2 + with: + arguments: clean build -x assemble -x shadowJar -x checkStyleMain -x checkStyleTest + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + + - name: Create release + id: release + uses: benwoo1110/semantic-release-action@v1 + with: + github_token: ${{ secrets.GITHUB_TOKEN }} + release_mode: ${{ inputs.release_mode }} + version_bump: ${{ inputs.version_bump }} + promote_from: ${{ inputs.promote_from }} + + - name: Publish package + if: steps.release.outputs.release_created == 'true' + uses: gradle/gradle-build-action@v2 + with: + arguments: publish -x checkStyleMain -x checkStyleTest -x test + env: + GITHUB_VERSION: ${{ steps.release.outputs.publish_version }} + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + + - name: Upload release artifact + if: steps.release.outputs.release_created == 'true' + uses: svenstaro/upload-release-action@v2 + with: + repo_token: ${{ secrets.GITHUB_TOKEN }} + file: build/libs/${{ inputs.plugin_name }}-${{ steps.release.outputs.publish_version }}.jar + asset_name: ${{ inputs.plugin_name }}-${{ steps.release.outputs.tag_name }}.jar + tag: ${{ steps.release.outputs.tag_name }} diff --git a/.github/workflows/generic.platform_uploads.yml b/.github/workflows/generic.platform_uploads.yml new file mode 100644 index 00000000..ccd31a40 --- /dev/null +++ b/.github/workflows/generic.platform_uploads.yml @@ -0,0 +1,140 @@ +name: 'Generic: Platform Uploads' + +on: + workflow_call: + inputs: + # Plugin specific params + plugin_name: + description: 'Plugin name' + required: true + type: string + + modrinth_project_id: + description: 'modrinth.com project ID' + required: true + type: string + modrinth_dependencies: + description: 'modrinth.com project dependencies' + required: false + type: string + default: '[]' + + dbo_project_id: + description: 'dev.bukkit.org project ID' + required: true + type: string + dbo_project_relations: + description: 'dev.bukkit.org project relations' + required: false + type: string + default: '[]' + + hangar_slug: + description: 'hangar.papermc.io project slug' + required: true + type: string + hangar_plugin_dependencies: + description: 'hangar.papermc.io project dependencies' + required: false + type: string + default: '{}' + + # Common params + target_tag: + description: 'Version to upload' + required: true + type: string + + upload_modrinth: + description: 'Upload to modrinth.com' + required: true + type: string + upload_dbo: + description: 'Upload to dev.bukkit.org' + required: true + type: string + upload_hangar: + description: 'Upload to hangar.papermc.io' + required: true + type: string + + secrets: + MODRINTH_TOKEN: + required: true + DBO_UPLOAD_API_TOKEN: + required: true + HANGAR_UPLOAD_TOKEN: + required: true + +jobs: + platform_uploads: + runs-on: ubuntu-latest + steps: + - name: Get release info + id: release-info + uses: cardinalby/git-get-release-action@1.2.4 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + tag: ${{ inputs.target_tag }} + + - name: Download release artifact + id: release-artifact + uses: dsaltares/fetch-gh-release-asset@1.1.1 + with: + token: ${{ secrets.GITHUB_TOKEN }} + version: tags/${{ steps.release-info.outputs.tag_name }} + file: ${{ inputs.plugin_name }}-${{ steps.release-info.outputs.tag_name }}.jar + + - name: Parse release type + id: parse-release-type + run: | + if [[ "${{ steps.release-info.outputs.prerelease }}" == "true" ]]; then + echo Setting release_type to Beta + echo "release_type=Beta" >> $GITHUB_OUTPUT + else + echo Setting release_type to Release + echo "release_type=Release" >> $GITHUB_OUTPUT + fi + + - name: Upload to Modrinth + if: ${{ !cancelled() && inputs.upload_modrinth == 'true' }} + uses: benwoo1110/modrinth-upload-action@v1 + with: + api_token: ${{ secrets.MODRINTH_TOKEN }} + project_id: ${{ inputs.modrinth_project_id }} + version_number: ${{ steps.release-info.outputs.tag_name }} + files: '["${{ github.workspace }}/${{ inputs.plugin_name }}-${{ steps.release-info.outputs.tag_name }}.jar"]' + name: ${{ steps.release-info.outputs.tag_name }} + changelog: ${{ steps.release-artifact.outputs.body }} + game_versions: 1.20.1, 1.20, 1.19.4, 1.19.3, 1.19.2, 1.19.1, 1.19, 1.18.2, 1.18.1, 1.18, 1.17.1, 1.17, 1.16.5, 1.16.4, 1.16.3, 1.16.2, 1.16.1, 1.16, 1.15.2, 1.15.1, 1.15, 1.14.4, 1.14.3, 1.14.2, 1.14.1, 1.14, 1.13.2, 1.13.1, 1.13 + version_type: ${{ steps.parse-release-type.outputs.release_type }} + loaders: bukkit, spigot, paper + dependencies: ${{ inputs.modrinth_dependencies }} + + - name: Upload to DBO + if: ${{ !cancelled() && inputs.upload_dbo == 'true' }} + uses: benwoo1110/dbo-upload-action@v1 + with: + api_token: ${{ secrets.DBO_UPLOAD_API_TOKEN }} + project_id: ${{ inputs.dbo_project_id }} + changelog: ${{ steps.release-artifact.outputs.body }} + changelog_type: markdown + display_name: ${{ steps.release-info.outputs.tag_name }} + game_versions: 1.20.1, 1.20, 1.19.4, 1.19.3, 1.19.2, 1.19.1, 1.19, 1.18.2, 1.18.1, 1.18, 1.17, 1.16, 1.15, 1.14, 1.13 + release_type: ${{ steps.parse-release-type.outputs.release_type }} + project_relations: ${{ inputs.dbo_project_relations }} + file_path: ${{ github.workspace }}/${{ inputs.plugin_name }}-${{ steps.release-info.outputs.tag_name }}.jar + + - name: Upload to Hangar + if: ${{ !cancelled() && inputs.upload_hangar == 'true' }} + uses: benwoo1110/hangar-upload-action@v1 + with: + api_token: ${{ secrets.HANGAR_UPLOAD_TOKEN }} + slug: ${{ inputs.hangar_slug }} + version: ${{ steps.release-info.outputs.tag_name }} + channel: ${{ steps.parse-release-type.outputs.release_type }} + files: '[{"path": "${{ github.workspace }}/${{ inputs.plugin_name }}-${{ steps.release-info.outputs.tag_name }}.jar", "platforms": ["PAPER"]}]' + description: ${{ steps.release-artifact.outputs.body }} + platform_dependencies: '{"PAPER": ["1.13-1.20.1"]}' + plugin_dependencies: ${{ inputs.hangar_plugin_dependencies }} diff --git a/.github/workflows/test.yml b/.github/workflows/generic.test.yml similarity index 68% rename from .github/workflows/test.yml rename to .github/workflows/generic.test.yml index a2e31a29..b6871d66 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/generic.test.yml @@ -1,8 +1,12 @@ -name: Run unit tests against all PRs +name: 'Generic: Test' on: - pull_request: - types: [opened, synchronize] + workflow_call: + inputs: + plugin_name: + description: 'Plugin name' + required: true + type: string jobs: test: @@ -32,5 +36,5 @@ jobs: - name: Artifact output uses: actions/upload-artifact@v3 with: - name: multiverse-core-pr${{ github.event.pull_request.number }} - path: build/libs/multiverse-core-pr${{ github.event.pull_request.number }}.jar + name: ${{ inputs.plugin_name }}-pr${{ github.event.pull_request.number }} + path: build/libs/${{ inputs.plugin_name }}-pr${{ github.event.pull_request.number }}.jar diff --git a/.github/workflows/main.prerelease.yml b/.github/workflows/main.prerelease.yml new file mode 100644 index 00000000..a3b474b6 --- /dev/null +++ b/.github/workflows/main.prerelease.yml @@ -0,0 +1,24 @@ +name: 'Main: Prerelease' + +on: + push: + branches: [main] + +jobs: + github_release_on_push: + uses: ./.github/workflows/call.github_release.yml + secrets: inherit + with: + release_mode: prerelease + version_bump: prlabel + + platform_uploads_on_push: + needs: github_release_on_push + if: needs.github_release_on_push.outputs.release_created == 'true' + uses: ./.github/workflows/call.platform_uploads.yml + secrets: inherit + with: + target_tag: ${{ needs.github_release_on_push.outputs.tag_name }} + upload_modrinth: 'true' + upload_dbo: 'false' + upload_hangar: 'false' diff --git a/.github/workflows/require_label.yml b/.github/workflows/pr.require_label.yml similarity index 90% rename from .github/workflows/require_label.yml rename to .github/workflows/pr.require_label.yml index 13922340..b7315848 100644 --- a/.github/workflows/require_label.yml +++ b/.github/workflows/pr.require_label.yml @@ -1,4 +1,4 @@ -name: Require PR Labels +name: 'PR: Require Label' on: pull_request: @@ -15,4 +15,4 @@ jobs: with: mode: exactly count: 1 - labels: "release:major, release:minor, release:patch, no version bump" + labels: "release:major, release:minor, release:patch, no release" diff --git a/.github/workflows/pr.test.yml b/.github/workflows/pr.test.yml new file mode 100644 index 00000000..721785b1 --- /dev/null +++ b/.github/workflows/pr.test.yml @@ -0,0 +1,11 @@ +name: 'PR: Test' + +on: + pull_request: + types: [opened, synchronize] + +jobs: + test: + uses: ./.github/workflows/generic.test.yml + with: + plugin_name: multiverse-core diff --git a/.github/workflows/pr_labeler.yml b/.github/workflows/pr_labeler.yml deleted file mode 100644 index 69387def..00000000 --- a/.github/workflows/pr_labeler.yml +++ /dev/null @@ -1,17 +0,0 @@ -name: "Pull Request Labeler" - -on: - pull_request_target: - types: [opened] - branches: [main] - -jobs: - prerelease_labeler: - permissions: - contents: read - pull-requests: write - runs-on: ubuntu-latest - steps: - - uses: actions/labeler@v4 - with: - repo-token: "${{ secrets.GITHUB_TOKEN }}" diff --git a/.github/workflows/promote_release.yml b/.github/workflows/promote_release.yml deleted file mode 100644 index f1c20c7e..00000000 --- a/.github/workflows/promote_release.yml +++ /dev/null @@ -1,90 +0,0 @@ -name: Manually promote last prerelease to release - -on: - workflow_dispatch: - inputs: - version: - description: 'Version to promote' - required: true - version-bump: - description: 'Version bump to apply - should usually match the version bump used for the prerelease since last release' - required: true - type: choice - options: - - 'patch' - - 'minor' - - 'major' - -jobs: - manually_promote_release: - runs-on: ubuntu-latest - steps: - - name: Verify input version is prerelease - run: | - if [[ "${{ github.event.inputs.version }}" != *"pre"* ]]; then - echo "Version must be a prerelease" - exit 1 - fi - - - name: Get release info - id: get-release - uses: cardinalby/git-get-release-action@v1 - env: - GITHUB_TOKEN: ${{ github.token }} - with: - tag: ${{ github.event.inputs.version }} - - - uses: actions/checkout@v3 - with: - ref: ${{ steps.get-release.outputs.tag_name }} - - - uses: actions/setup-java@v3 - with: - java-version: '17' - distribution: 'adopt' - cache: gradle - - - name: Validate Gradle wrapper - uses: gradle/wrapper-validation-action@v1 - - - name: Remove prerelease tag - run: | - echo "Removing prerelease tag from version" - echo "VERSION=$(echo ${{ steps.get-release.outputs.tag_name }} | sed -E 's/-pre.*//')" >> $GITHUB_ENV - - - name: Build - uses: gradle/gradle-build-action@v2 - with: - arguments: clean build -x test -x checkstyleMain -x checkstyleTest - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - GITHUB_VERSION: ${{ env.VERSION }} - - - name: Create release - id: release - uses: Multiverse/release-on-push-action@skip_prs - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - with: - bump_version_scheme: ${{ github.event.inputs.version-bump }} - tag_prefix: '' - release_name: "" - use_github_release_notes: true - ref: ${{ steps.get-release.outputs.target_commitish }} - skip_prs: true - - - name: Publish package - uses: gradle/gradle-build-action@v2 - with: - arguments: publish - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - GITHUB_VERSION: ${{ env.VERSION }} - - - name: Upload release artifact - uses: svenstaro/upload-release-action@v2 - with: - repo_token: ${{ secrets.GITHUB_TOKEN }} - file: build/libs/multiverse-core-${{ env.VERSION }}.jar - asset_name: multiverse-core-${{ steps.release.outputs.tag_name }}.jar - tag: ${{ steps.release.outputs.tag_name }} diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml deleted file mode 100644 index c023a1b6..00000000 --- a/.github/workflows/release.yml +++ /dev/null @@ -1,64 +0,0 @@ -name: Create Release Version & Publish Package - -on: - push: - branches: [main] - -jobs: - release_on_push: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - - - uses: actions/setup-java@v3 - with: - java-version: '17' - distribution: 'adopt' - cache: gradle - - - name: Validate Gradle wrapper - uses: gradle/wrapper-validation-action@v1 - - - name: Test & Build - uses: gradle/gradle-build-action@v2 - with: - arguments: clean build -x assemble -x shadowJar - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - - name: Create release - id: release - uses: Multiverse/release-on-push-action@support_prerelease - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - with: - bump_version_scheme: norelease - tag_prefix: '' - release_name: "" - use_github_release_notes: true - - - name: Modify version scheme - run: | - if [[ "${{ steps.release.outputs.tag_name }}" == *"pre"* ]]; then - echo "Replacing prerelease version scheme with SNAPSHOT" - echo "VERSION=$(echo ${{ steps.release.outputs.tag_name }} | sed -E 's/-pre.*/-SNAPSHOT/')" >> $GITHUB_ENV - else - echo "Using release version scheme" - echo "VERSION=${{ steps.release.outputs.tag_name }}" >> $GITHUB_ENV - fi - - - name: Publish package - uses: gradle/gradle-build-action@v2 - with: - arguments: publish - env: - GITHUB_VERSION: ${{ env.VERSION }} - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - - name: Upload release artifact - uses: svenstaro/upload-release-action@v2 - with: - repo_token: ${{ secrets.GITHUB_TOKEN }} - file: build/libs/multiverse-core-${{ env.VERSION }}.jar - asset_name: multiverse-core-${{ steps.release.outputs.tag_name }}.jar - tag: ${{ steps.release.outputs.tag_name }} diff --git a/README.md b/README.md index a884097a..4fb48bc2 100644 --- a/README.md +++ b/README.md @@ -1,26 +1,33 @@ -![Multiverse 2](config/multiverse2-long.png) +

+Multiverse Logo +

+ +[![Modrinth](https://cdn.jsdelivr.net/npm/@intergrav/devins-badges@3/assets/cozy/available/modrinth_vector.svg)](https://modrinth.com/plugin/multiverse-core) +[![hangar](https://cdn.jsdelivr.net/npm/@intergrav/devins-badges@3/assets/cozy/available/hangar_vector.svg)](https://hangar.papermc.io/Multiverse/Multiverse-Core) +[![bukkit](https://cdn.jsdelivr.net/npm/@intergrav/devins-badges@3/assets/cozy/supported/bukkit_vector.svg)](https://dev.bukkit.org/projects/multiverse-core) +[![Spigot](https://cdn.jsdelivr.net/npm/@intergrav/devins-badges@3/assets/cozy/supported/spigot_vector.svg)](https://www.spigotmc.org/resources/multiverse-core.390/) -[![Maven CI/CD](https://github.com/Multiverse/Multiverse-Core/actions/workflows/build.yml/badge.svg)](https://github.com/Multiverse/Multiverse-Core/actions/workflows/build.yml) [![Release](https://img.shields.io/nexus/r/com.onarandombox.multiversecore/Multiverse-Core?label=release&server=https%3A%2F%2Frepo.onarandombox.com%2F)](https://dev.bukkit.org/projects/multiverse-core) [![Dev builds](https://img.shields.io/nexus/s/com.onarandombox.multiversecore/Multiverse-Core?label=dev%20builds&server=http%3A%2F%2Frepo.onarandombox.com%2F)](https://ci.onarandombox.com/job/Multiverse-Core/) [![Discord](https://img.shields.io/discord/325459248047980545?label=discord&logo=discord)](https://discord.gg/NZtfKky) -[![Support me on Patreon](https://img.shields.io/endpoint.svg?url=https%3A%2F%2Fshieldsio-patreon.vercel.app%2Fapi%3Fusername%3Ddumptruckman%26type%3Dpatrons&style=flat)](https://patreon.com/dumptruckman) +[![Support us on Patreon](https://img.shields.io/endpoint.svg?url=https%3A%2F%2Fshieldsio-patreon.vercel.app%2Fapi%3Fusername%3Ddumptruckman%26type%3Dpatrons&style=flat)](https://patreon.com/dumptruckman) [![License](https://img.shields.io/github/license/Multiverse/Multiverse-Core)](LICENSE.md) -About -======== + +# About + [Multiverse](https://dev.bukkit.org/projects/multiverse-core) was created at the dawn of Bukkit multiworld support. It has since then grown into a **complete world management solution!** Multiverse provides the easiest to use world management solution for your Minecraft server, big or small, and with great addons like [Portals](https://dev.bukkit.org/projects/multiverse-portals) and [NetherPortals](https://dev.bukkit.org/projects/multiverse-netherportals/), what's not to love! -

+ Now it's time to create your very own Multiverse server, do check out our [Wiki](https://github.com/Multiverse/Multiverse-Core/wiki) and [Usage Guide](https://github.com/Multiverse/Multiverse-Core/wiki/Basics) to get started. Feel free to hop onto our [Discord](https://discord.gg/NZtfKky) if you have any question or just want to have a chat with us! -### Amazing sub-modules available: +## Amazing sub-modules available: + * [Multiverse-NetherPortals](https://github.com/Multiverse/Multiverse-NetherPortals) -> Have separate nether and end worlds for each of your overworlds! * [Multiverse-Portals](https://github.com/Multiverse/Multiverse-Portals) -> Make custom portals to go to any destination! * [Multiverse-Inventories](https://github.com/Multiverse/Multiverse-Inventories) -> Have separated players stats and inventories per world or per group of worlds. -* [Multiverse-SignPortals](https://github.com/Multiverse/Multiverse-SignPortals) -> Signs as teleprompters! +* [Multiverse-SignPortals](https://github.com/Multiverse/Multiverse-SignPortals) -> Signs as teleporters! -Building -======== +## Building Simply build the source with Gradle: ``` ./gradlew build @@ -28,17 +35,16 @@ Simply build the source with Gradle: More details are available on the [build instructions wiki page](https://github.com/Multiverse/Multiverse-Core/wiki/Building). -Contributing -======= +## Contributing + **Want to help improve Multiverse?** There are several ways you can support and contribute to the project. * Take a look at our "Bug: Unconfirmed" issues, where you can find issues that need extra testing and investigation. * Want others to love Multiverse too? You can join the [Multiverse Discord community](https://discord.gg/NZtfKky) and help others with issues and setup! * A Multiverse guru? You can update our [Wiki](https://github.com/Multiverse/Multiverse-Core/wiki) with your latest tip, tricks and guides! The wiki open for all to edit and improve. * Love coding? You could look at ["State: Open to PR"](https://github.com/Multiverse/Multiverse-Core/labels/State%3A%20Open%20to%20PR) and ["Resolution: Accepted"](https://github.com/Multiverse/Multiverse-Core/labels/Resolution%3A%20Accepted) issues. We're always happy to receive bug fixes and feature additions as [pull requests](https://www.freecodecamp.org/news/how-to-make-your-first-pull-request-on-github-3/). -* If you'd like to make a financial contribution to the project, do consider joining our [patreon](https://www.patreon.com/dumptruckman) or make a one-time donation [here](https://paypal.me/dumptruckman)! +* If you'd like to make a financial contribution to the project, do consider joining our [Patreon](https://www.patreon.com/dumptruckman) or make a one-time donation [here](https://paypal.me/dumptruckman)! Additionally, we would like to give a big thanks to everyone that has supported Multiverse over the years, as well as those in the years to come. Thank you! -License -======= +## License Multiverse-Core is licensed under BSD-3-Clause License. Please see [LICENSE.md](LICENSE.md) for more info. diff --git a/build.gradle b/build.gradle index 8f86f3b2..c8a4eacd 100644 --- a/build.gradle +++ b/build.gradle @@ -151,6 +151,13 @@ configurations { it.outgoing.artifacts.removeIf { it.buildDependencies.getDependencies(null).contains(jar) } it.outgoing.artifact(shadowJar) } + + testCompileOnly.extendsFrom compileOnly + testRuntimeOnly.extendsFrom testCompileOnly + + shadowed.extendsFrom compileOnly { + canBeResolved = true + } } @@ -170,6 +177,16 @@ publishing { publications { maven(MavenPublication) { from components.java + + pom.withXml { + asNode().dependencies.'*'.findAll() { + it.scope.text() == 'runtime' && project.configurations.implementation.allDependencies.find { dep -> + dep.name == it.artifactId.text() + } + }.each() { + it.scope*.value = 'provided' + } + } } } repositories { @@ -263,7 +280,7 @@ shadowJar { relocate 'org.jetbrains', 'com.onarandombox.jetbrains' relocate 'io.papermc.lib', 'com.onarandombox.paperlib' - configurations = [project.configurations.api, project.configurations.relocatedApi] + configurations = [project.configurations.shadowed] archiveFileName = "$baseName-$version.$extension" diff --git a/settings.gradle b/settings.gradle index 588b697b..70e6b153 100644 --- a/settings.gradle +++ b/settings.gradle @@ -2,4 +2,10 @@ * This file was generated by the Gradle 'init' task. */ +pluginManagement { + repositories { + gradlePluginPortal() + } +} + rootProject.name = 'multiverse-core' diff --git a/src/main/java/com/onarandombox/MultiverseCore/listeners/MVPlayerListener.java b/src/main/java/com/onarandombox/MultiverseCore/listeners/MVPlayerListener.java index e8f68dec..8c2883d4 100644 --- a/src/main/java/com/onarandombox/MultiverseCore/listeners/MVPlayerListener.java +++ b/src/main/java/com/onarandombox/MultiverseCore/listeners/MVPlayerListener.java @@ -189,7 +189,7 @@ public class MVPlayerListener implements InjectableListener { return; } Player teleportee = event.getPlayer(); - CommandSender teleporter = null; + CommandSender teleporter = teleportee; Optional teleporterName = teleportQueue.popFromQueue(teleportee.getName()); if (teleporterName.isPresent()) { if (teleporterName.equals("CONSOLE")) {