From 25b6540619375bb237d147f406f4f6087c3afa0c Mon Sep 17 00:00:00 2001 From: Thomas Boerger Date: Mon, 25 Mar 2024 15:02:14 +0100 Subject: [PATCH] feat: initial commit --- .dockerignore | 1 + .github/renovate.json | 19 + .github/scripts/bump-version | 22 ++ .github/semantic.yml | 23 ++ .github/settings.yml | 82 +++++ .github/workflows/client.yml | 69 ++++ .github/workflows/docker.yml | 222 ++++++++++++ .github/workflows/pages.yml | 37 ++ .github/workflows/releases.yml | 41 +++ .gitignore | 4 + .packwizignore | 18 + .releaserc | 121 +++++++ LICENSE | 19 + Makefile | 68 ++++ README.md | 60 ++++ deploy/kubernetes/kustomization.yml | 31 ++ deploy/kubernetes/service.yml | 30 ++ deploy/kubernetes/statefulset.yml | 74 ++++ docker/Dockerfile.amd64 | 22 ++ docker/Dockerfile.arm64 | 22 ++ docs/archetypes/default.md | 6 + docs/config.toml | 16 + docs/content/about.md | 6 + docs/content/getting-started.md | 10 + docs/content/license.md | 11 + docs/content/usage.md | 6 + docs/layouts/index.html | 57 +++ docs/layouts/partials/style.html | 328 ++++++++++++++++++ index.toml | 256 ++++++++++++++ mods/advanced-generators.pw.toml | 13 + mods/ae2-qol-recipes.pw.toml | 13 + mods/ae2.pw.toml | 13 + ...d-energistics-2-wireless-terminals.pw.toml | 13 + mods/architectury-api.pw.toml | 13 + mods/balm.pw.toml | 13 + mods/bdlib.pw.toml | 13 + mods/better-advancements.pw.toml | 13 + mods/cloth-config.pw.toml | 13 + mods/cobblefordays.pw.toml | 13 + mods/cofh-core.pw.toml | 13 + mods/collective.pw.toml | 13 + mods/crafting-station.pw.toml | 13 + mods/creativecore.pw.toml | 13 + mods/cucumber.pw.toml | 13 + mods/curios.pw.toml | 13 + mods/double-doors.pw.toml | 13 + mods/functional-storage.pw.toml | 13 + mods/immersiveengineering.pw.toml | 13 + mods/industrial-foregoing.pw.toml | 13 + mods/infinite-source-of-water.pw.toml | 13 + mods/inventory-essentials.pw.toml | 13 + mods/inventory-sorter.pw.toml | 13 + mods/iron-jetpacks.pw.toml | 13 + mods/jade.pw.toml | 13 + mods/jei.pw.toml | 13 + mods/journeymap.pw.toml | 13 + mods/just-enough-professions-jep.pw.toml | 13 + mods/just-enough-resources-jer.pw.toml | 13 + mods/laserio.pw.toml | 13 + mods/lava-sources.pw.toml | 13 + mods/littletiles.pw.toml | 13 + mods/merequester.pw.toml | 13 + mods/modular-routers.pw.toml | 13 + mods/mouse-tweaks.pw.toml | 13 + mods/patchouli.pw.toml | 13 + mods/pipez.pw.toml | 13 + mods/robs-floating-islands.pw.toml | 13 + mods/scalable-cats-force.pw.toml | 13 + mods/simple-backups.pw.toml | 13 + mods/simple-sky-resource-generators.pw.toml | 13 + mods/skyblock-advancements.pw.toml | 13 + mods/stack-refill.pw.toml | 13 + mods/standard-skyblock.pw.toml | 13 + mods/thermal-cultivation.pw.toml | 13 + mods/thermal-dynamics.pw.toml | 13 + mods/thermal-expansion.pw.toml | 13 + mods/thermal-foundation.pw.toml | 13 + mods/thermal-innovation.pw.toml | 13 + mods/thermal-locomotion.pw.toml | 13 + mods/titanium.pw.toml | 13 + overlay/etc/container.d/25-mods.sh | 6 + overlay/etc/container.d/30-pack.sh | 23 ++ overlay/etc/entrypoint.d/20-forge.sh | 6 + overlay/etc/entrypoint.d/30-pack.sh | 9 + overlay/usr/bin/container | 22 ++ pack.toml | 13 + packwiz.json | 1 + 87 files changed, 2424 insertions(+) create mode 100644 .dockerignore create mode 100644 .github/renovate.json create mode 100755 .github/scripts/bump-version create mode 100644 .github/semantic.yml create mode 100644 .github/settings.yml create mode 100644 .github/workflows/client.yml create mode 100644 .github/workflows/docker.yml create mode 100644 .github/workflows/pages.yml create mode 100644 .github/workflows/releases.yml create mode 100644 .gitignore create mode 100644 .packwizignore create mode 100644 .releaserc create mode 100644 LICENSE create mode 100644 Makefile create mode 100644 README.md create mode 100644 deploy/kubernetes/kustomization.yml create mode 100644 deploy/kubernetes/service.yml create mode 100644 deploy/kubernetes/statefulset.yml create mode 100644 docker/Dockerfile.amd64 create mode 100644 docker/Dockerfile.arm64 create mode 100644 docs/archetypes/default.md create mode 100644 docs/config.toml create mode 100644 docs/content/about.md create mode 100644 docs/content/getting-started.md create mode 100644 docs/content/license.md create mode 100644 docs/content/usage.md create mode 100644 docs/layouts/index.html create mode 100644 docs/layouts/partials/style.html create mode 100644 index.toml create mode 100644 mods/advanced-generators.pw.toml create mode 100644 mods/ae2-qol-recipes.pw.toml create mode 100644 mods/ae2.pw.toml create mode 100644 mods/applied-energistics-2-wireless-terminals.pw.toml create mode 100644 mods/architectury-api.pw.toml create mode 100644 mods/balm.pw.toml create mode 100644 mods/bdlib.pw.toml create mode 100644 mods/better-advancements.pw.toml create mode 100644 mods/cloth-config.pw.toml create mode 100644 mods/cobblefordays.pw.toml create mode 100644 mods/cofh-core.pw.toml create mode 100644 mods/collective.pw.toml create mode 100644 mods/crafting-station.pw.toml create mode 100644 mods/creativecore.pw.toml create mode 100644 mods/cucumber.pw.toml create mode 100644 mods/curios.pw.toml create mode 100644 mods/double-doors.pw.toml create mode 100644 mods/functional-storage.pw.toml create mode 100644 mods/immersiveengineering.pw.toml create mode 100644 mods/industrial-foregoing.pw.toml create mode 100644 mods/infinite-source-of-water.pw.toml create mode 100644 mods/inventory-essentials.pw.toml create mode 100644 mods/inventory-sorter.pw.toml create mode 100644 mods/iron-jetpacks.pw.toml create mode 100644 mods/jade.pw.toml create mode 100644 mods/jei.pw.toml create mode 100644 mods/journeymap.pw.toml create mode 100644 mods/just-enough-professions-jep.pw.toml create mode 100644 mods/just-enough-resources-jer.pw.toml create mode 100644 mods/laserio.pw.toml create mode 100644 mods/lava-sources.pw.toml create mode 100644 mods/littletiles.pw.toml create mode 100644 mods/merequester.pw.toml create mode 100644 mods/modular-routers.pw.toml create mode 100644 mods/mouse-tweaks.pw.toml create mode 100644 mods/patchouli.pw.toml create mode 100644 mods/pipez.pw.toml create mode 100644 mods/robs-floating-islands.pw.toml create mode 100644 mods/scalable-cats-force.pw.toml create mode 100644 mods/simple-backups.pw.toml create mode 100644 mods/simple-sky-resource-generators.pw.toml create mode 100644 mods/skyblock-advancements.pw.toml create mode 100644 mods/stack-refill.pw.toml create mode 100644 mods/standard-skyblock.pw.toml create mode 100644 mods/thermal-cultivation.pw.toml create mode 100644 mods/thermal-dynamics.pw.toml create mode 100644 mods/thermal-expansion.pw.toml create mode 100644 mods/thermal-foundation.pw.toml create mode 100644 mods/thermal-innovation.pw.toml create mode 100644 mods/thermal-locomotion.pw.toml create mode 100644 mods/titanium.pw.toml create mode 100755 overlay/etc/container.d/25-mods.sh create mode 100755 overlay/etc/container.d/30-pack.sh create mode 100755 overlay/etc/entrypoint.d/20-forge.sh create mode 100755 overlay/etc/entrypoint.d/30-pack.sh create mode 100755 overlay/usr/bin/container create mode 100644 pack.toml create mode 100644 packwiz.json diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..6b8710a --- /dev/null +++ b/.dockerignore @@ -0,0 +1 @@ +.git diff --git a/.github/renovate.json b/.github/renovate.json new file mode 100644 index 0000000..65ba01e --- /dev/null +++ b/.github/renovate.json @@ -0,0 +1,19 @@ +{ + "$schema": "https://docs.renovatebot.com/renovate-schema.json", + "extends": [ + "github>crafthippie/.github//renovate/preset" + ], + "packageRules": [ + { + "datasources": [ + "docker" + ], + "updateTypes": [ + "major", + "minor", + "patch" + ], + "enabled": false + } + ] +} diff --git a/.github/scripts/bump-version b/.github/scripts/bump-version new file mode 100755 index 0000000..2debed3 --- /dev/null +++ b/.github/scripts/bump-version @@ -0,0 +1,22 @@ +#!/usr/bin/env bash +set -eo pipefail + +if [ $# -ne 1 ]; then + echo "Usage: ${0} VERSION" + exit 1 +fi + +VERSION=${1} +shift + +ROOT=$(cd "$(dirname "$0")/../.."; pwd) + +sed \ + -i \ + 's|newTag:.*|newTag: '${VERSION}'|' \ + "${ROOT}/deploy/kubernetes/kustomization.yml" + +sed \ + -i \ + 's|version = ".*"|version = "'${VERSION}'"|' \ + "${ROOT}/pack.toml" diff --git a/.github/semantic.yml b/.github/semantic.yml new file mode 100644 index 0000000..0724847 --- /dev/null +++ b/.github/semantic.yml @@ -0,0 +1,23 @@ +--- +commitsOnly: true +anyCommit: true +allowMergeCommits: true +allowRevertCommits: true + +types: + - feat + - fix + - docs + - style + - refactor + - perf + - test + - build + - ci + - chore + - revert + - major + - minor + - patch + +... diff --git a/.github/settings.yml b/.github/settings.yml new file mode 100644 index 0000000..55f83f3 --- /dev/null +++ b/.github/settings.yml @@ -0,0 +1,82 @@ +--- +repository: + name: skyblock + description: Minecraft mod pack Skyblock + homepage: https://crafthippie.github.io/skyblock + topics: docker, image, container, minecraft, server, client + + private: false + has_issues: true + has_wiki: false + has_downloads: false + + default_branch: master + + allow_squash_merge: true + allow_merge_commit: true + allow_rebase_merge: true + + allow_update_branch: true + allow_auto_merge: true + delete_branch_on_merge: true + enable_automated_security_fixes: true + enable_vulnerability_alerts: true + +labels: + - name: bug + color: d73a4a + description: Something isn't working + - name: duplicate + color: cfd3d7 + description: This issue or pull request already exists + - name: enhancement + color: a2eeef + description: New feature or request + - name: good first issue + color: 7057ff + description: Good for newcomers + - name: help wanted + color: 008672 + description: Extra attention is needed + - name: invalid + color: e4e669 + description: This doesn't seem right + - name: question + color: d876e3 + description: Further information is requested + - name: renovate + color: e99695 + description: Automated action from Renovate + - name: wontfix + color: ffffff + description: This will not be worked on + - name: outdated + color: cccccc + description: This is out of scope and outdated + +teams: + - name: admins + permission: admin + - name: bots + permission: admin + - name: members + permission: maintain + +branches: + - name: master + protection: + required_pull_request_reviews: null + required_status_checks: + strict: true + contexts: [] + enforce_admins: false + restrictions: + apps: + - renovate + users: [] + teams: + - admins + - bots + - members + +... diff --git a/.github/workflows/client.yml b/.github/workflows/client.yml new file mode 100644 index 0000000..e45da7e --- /dev/null +++ b/.github/workflows/client.yml @@ -0,0 +1,69 @@ +--- +name: client + +"on": + push: + branches: + - master + tags: + - v* + workflow_dispatch: + +jobs: + client: + runs-on: ubuntu-latest + + steps: + - name: Checkout source + id: source + uses: actions/checkout@v4 + + - name: Configure aws + id: aws + uses: aws-actions/configure-aws-credentials@v4 + with: + aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} + aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} + aws-region: eu-central-1 + + - name: Install packwiz + id: packwiz + uses: actionhippie/install-packwiz@v1 + + - name: Build package + id: package + run: make build + + - name: Sign package + id: gpgsign + uses: actionhippie/gpgsign@v1 + with: + private_key: ${{ secrets.GNUPG_KEY }} + passphrase: ${{ secrets.GNUPG_PASSWORD }} + detach_sign: true + files: | + dist/*.mrpack + + - name: Upload release + id: upload + if: startsWith(github.ref, 'refs/tags/') + uses: ncipollo/release-action@v1 + with: + token: ${{ secrets.GITHUB_TOKEN }} + allowUpdates: true + omitBody: true + artifacts: dist/* + + - name: Upload version + id: version + if: startsWith(github.ref, 'refs/tags/') + run: | + aws s3 sync dist/ s3://dl.webhippie.de/minecraft/skyblock/${{ github.ref_name }}/ + + - name: Upload testing + id: testing + if: startsWith(github.ref, 'refs/heads/') + run: | + aws s3 sync dist/ s3://dl.webhippie.de/minecraft/skyblock/testing/ + +... diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml new file mode 100644 index 0000000..10fa4ca --- /dev/null +++ b/.github/workflows/docker.yml @@ -0,0 +1,222 @@ +--- +name: docker + +"on": + push: + branches: + - master + tags: + - v* + pull_request: + branches: + - master + workflow_dispatch: + +jobs: + docker: + runs-on: ubuntu-latest + + strategy: + matrix: + include: + - platform: linux/amd64 + arch: amd64 + - platform: linux/arm64 + arch: arm64 + + steps: + - name: Checkout source + id: source + uses: actions/checkout@v4 + + - name: Install java + id: java + uses: actions/setup-java@v4 + with: + distribution: temurin + java-version: 18 + + - name: Download mods + id: packwiz + run: make server + + - name: Docker meta + id: meta + uses: docker/metadata-action@v5 + with: + github-token: ${{ secrets.GITHUB_TOKEN }} + images: | + crafthippie/skyblock + quay.io/crafthippie/skyblock + ghcr.io/crafthippie/skyblock + labels: | + org.opencontainers.image.vendor=Crafthippie + maintainer=Thomas Boerger + tags: | + type=ref,event=pr + type=raw,value=latest,enable=${{ github.ref == 'refs/heads/master' }} + type=semver,pattern={{version}} + type=semver,pattern={{major}}.{{minor}} + type=semver,pattern={{major}} + flavor: | + suffix=-${{ matrix.arch }} + + - name: Setup qemu + id: qemu + uses: docker/setup-qemu-action@v3 + + - name: Setup buildx + id: buildx + uses: docker/setup-buildx-action@v3 + + - name: Hub login + id: login1 + uses: docker/login-action@v3 + if: github.event_name != 'pull_request' + with: + username: ${{ secrets.DOCKER_USERNAME }} + password: ${{ secrets.DOCKER_PASSWORD }} + + - name: Quay login + id: login2 + uses: docker/login-action@v3 + if: github.event_name != 'pull_request' + with: + registry: quay.io + username: ${{ secrets.QUAY_USERNAME }} + password: ${{ secrets.QUAY_PASSWORD }} + + - name: Ghcr login + id: login3 + uses: docker/login-action@v3 + if: github.event_name != 'pull_request' + with: + registry: ghcr.io + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: Build image + id: publish + uses: docker/build-push-action@v5 + with: + builder: ${{ steps.buildx.outputs.name }} + context: . + provenance: false + file: docker/Dockerfile.${{ matrix.arch }} + platforms: ${{ matrix.platform }} + push: ${{ github.event_name != 'pull_request' }} + labels: ${{ steps.meta.outputs.labels }} + tags: ${{ steps.meta.outputs.tags }} + + manifest: + runs-on: ubuntu-latest + needs: docker + + steps: + - name: Checkout source + id: source + uses: actions/checkout@v4 + + - name: Hub tags + id: hubTags + uses: docker/metadata-action@v5 + with: + github-token: ${{ secrets.GITHUB_TOKEN }} + images: crafthippie/skyblock + tags: | + type=raw,value=latest,enable=${{ github.ref == 'refs/heads/master' }} + type=semver,pattern={{version}} + type=semver,pattern={{major}}.{{minor}} + type=semver,pattern={{major}} + + - name: Hub manifest + id: hub + if: github.event_name != 'pull_request' + uses: actionhippie/manifest@v1 + with: + username: ${{ secrets.DOCKER_USERNAME }} + password: ${{ secrets.DOCKER_PASSWORD }} + platforms: linux/amd64,linux/arm64 + template: crafthippie/skyblock:VERSION-ARCH + target: ${{ steps.hubTags.outputs.tags }} + ignore_missing: true + + - name: Quay tags + id: quayTags + uses: docker/metadata-action@v5 + with: + github-token: ${{ secrets.GITHUB_TOKEN }} + images: quay.io/crafthippie/skyblock + tags: | + type=raw,value=latest,enable=${{ github.ref == 'refs/heads/master' }} + type=semver,pattern={{version}} + type=semver,pattern={{major}}.{{minor}} + type=semver,pattern={{major}} + + - name: Quay manifest + id: quay + if: github.event_name != 'pull_request' + uses: actionhippie/manifest@v1 + with: + username: ${{ secrets.QUAY_USERNAME }} + password: ${{ secrets.QUAY_PASSWORD }} + platforms: linux/amd64,linux/arm64 + template: quay.io/crafthippie/skyblock:VERSION-ARCH + target: ${{ steps.quayTags.outputs.tags }} + ignore_missing: true + + - name: Ghcr tags + id: ghcrTags + uses: docker/metadata-action@v5 + with: + github-token: ${{ secrets.GITHUB_TOKEN }} + images: ghcr.io/crafthippie/skyblock + tags: | + type=raw,value=latest,enable=${{ github.ref == 'refs/heads/master' }} + type=semver,pattern={{version}} + type=semver,pattern={{major}}.{{minor}} + type=semver,pattern={{major}} + + - name: Ghcr manifest + id: ghcr + if: github.event_name != 'pull_request' + uses: actionhippie/manifest@v1 + with: + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + platforms: linux/amd64,linux/arm64 + template: ghcr.io/crafthippie/skyblock:VERSION-ARCH + target: ${{ steps.ghcrTags.outputs.tags }} + ignore_missing: true + + readme: + runs-on: ubuntu-latest + needs: docker + + steps: + - name: Checkout source + uses: actions/checkout@v4 + + - name: Hub readme + id: hub + if: github.event_name != 'pull_request' + uses: actionhippie/pushrm@v1 + with: + provider: dockerhub + target: crafthippie/skyblock + username: ${{ secrets.DOCKER_USERNAME }} + password: ${{ secrets.DOCKER_PASSWORD }} + description: Skyblock + readme: README.md + + - name: Quay readme + id: quay + if: github.event_name != 'pull_request' + uses: actionhippie/pushrm@v1 + with: + provider: quay + target: quay.io/crafthippie/skyblock + apikey: ${{ secrets.QUAY_APIKEY }} + readme: README.md + +... diff --git a/.github/workflows/pages.yml b/.github/workflows/pages.yml new file mode 100644 index 0000000..4a17fe4 --- /dev/null +++ b/.github/workflows/pages.yml @@ -0,0 +1,37 @@ +--- +name: pages + +"on": + push: + branches: + - master + workflow_dispatch: + +jobs: + docs: + runs-on: ubuntu-latest + + steps: + - name: Checkout source + id: source + uses: actions/checkout@v4 + + - name: Setup hugo + id: hugo + uses: peaceiris/actions-hugo@v2 + with: + hugo-version: latest + extended: true + + - name: Build pages + id: docs + run: hugo -s docs/ + + - name: Deploy pages + id: deploy + uses: peaceiris/actions-gh-pages@v3 + with: + github_token: ${{ secrets.GITHUB_TOKEN }} + publish_dir: docs/public/ + +... diff --git a/.github/workflows/releases.yml b/.github/workflows/releases.yml new file mode 100644 index 0000000..a9619e4 --- /dev/null +++ b/.github/workflows/releases.yml @@ -0,0 +1,41 @@ +--- +name: releases + +"on": + schedule: + - cron: "0 8 * * 1" + workflow_dispatch: + +jobs: + release: + runs-on: ubuntu-latest + + steps: + - name: Checkout source + uses: actions/checkout@v4 + with: + token: ${{ secrets.BOT_ACCESS_TOKEN }} + + - name: Write buildtime + run: date >| .github/RELEASE + + - name: Semantic release + uses: cycjimmy/semantic-release-action@v3 + env: + GITHUB_TOKEN: ${{ secrets.BOT_ACCESS_TOKEN }} + with: + extra_plugins: | + @semantic-release/exec + conventional-changelog-conventionalcommits@6.1.0 + + - name: Commit changes + uses: EndBug/add-and-commit@v9 + with: + author_name: GitHub Actions + author_email: github@webhippie.de + add: .github/RELEASE + message: "docs: automated release update [skip ci]" + push: true + commit: --signoff + +... diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..58a2f03 --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +dist/ +docs/public/ + +*.jar diff --git a/.packwizignore b/.packwizignore new file mode 100644 index 0000000..16af4c5 --- /dev/null +++ b/.packwizignore @@ -0,0 +1,18 @@ +deploy/ +docker/ +docs/ +overlay/ +dist/ + +*.jar + +packwiz.json +Makefile +README.md +CHANGELOG.md +LICENSE + +.dockerignore +.envrc +.github +.releaserc diff --git a/.releaserc b/.releaserc new file mode 100644 index 0000000..f72fc1a --- /dev/null +++ b/.releaserc @@ -0,0 +1,121 @@ +{ + "branches": [ + "master" + ], + "plugins": [ + [ + "@semantic-release/commit-analyzer", + { + "preset": "conventionalcommits", + "releaseRules": [ + { + "type": "major", + "release": "major" + }, + { + "type": "deps", + "scope": "major", + "release": "major" + }, + { + "type": "minor", + "release": "minor" + }, + { + "type": "deps", + "scope": "minor", + "release": "minor" + }, + { + "type": "patch", + "release": "patch" + }, + { + "type": "deps", + "scope": "patch", + "release": "patch" + }, + { + "type": "refactor", + "release": "minor" + }, + { + "scope": "docs", + "release": false + } + ] + } + ], + [ + "@semantic-release/release-notes-generator", + { + "preset": "conventionalcommits", + "presetConfig": { + "types": [ + { + "type": "feat", + "section": "Features" + }, + { + "type": "major", + "section": "Features" + }, + { + "type": "minor", + "section": "Features" + }, + { + "type": "fix", + "section": "Bugfixes" + }, + { + "type": "patch", + "section": "Bugfixes" + }, + { + "type": "chore", + "hidden": true + }, + { + "type": "docs", + "hidden": true + }, + { + "type": "refactor", + "hidden": true + } + ] + } + } + ], + [ + "@semantic-release/changelog", + { + "changelogTitle": "# Changelog" + } + ], + [ + "@semantic-release/exec", + { + "prepareCmd": "./.github/scripts/bump-version ${nextRelease.version}" + } + ], + [ + "@semantic-release/git", + { + "message": "chore: release ${nextRelease.version}", + "assets": [ + "CHANGELOG.md", + "deploy/kubernetes/kustomization.yml", + "pack.toml" + ] + } + ], + [ + "@semantic-release/github", + { + "publish": true + } + ] + ] +} diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..efd897a --- /dev/null +++ b/LICENSE @@ -0,0 +1,19 @@ +Copyright (c) 2024 Thomas Boerger + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..4a4dc07 --- /dev/null +++ b/Makefile @@ -0,0 +1,68 @@ +SHELL := bash +NAME := skyblock +DIST := dist + +UNAME := $(shell uname -s) + +BOOTSTRAP_VERSION := 0.0.3 +BOOTSTRAP_URL := https://github.com/packwiz/packwiz-installer-bootstrap/releases/download/v$(BOOTSTRAP_VERSION)/packwiz-installer-bootstrap.jar + +ifeq ($(UNAME), Darwin) + SED ?= gsed + SHASUM ?= shasum -a 256 +else + SED ?= sed + SHASUM ?= sha256sum +endif + +ifndef OUTPUT + ifeq ($(GITHUB_REF_TYPE),tag) + OUTPUT ?= $(subst v,,$(GITHUB_REF_NAME)) + else + OUTPUT ?= testing + endif +endif + +ifndef VERSION + ifeq ($(GITHUB_REF_TYPE),tag) + VERSION ?= $(subst v,,$(GITHUB_REF_NAME)) + else + VERSION ?= $(shell git rev-parse --short HEAD) + endif +endif + +$(DIST): + mkdir -p $(DIST) + +.PHONY: clean +clean: + rm -rf $(DIST) + +.PHONY: docs +docs: + cd docs; hugo + +.PHONY: build +build: $(DIST)/$(NAME)-$(OUTPUT).mrpack $(DIST)/$(NAME)-$(OUTPUT).mrpack.sha256 + +$(DIST)/$(NAME)-$(OUTPUT).mrpack: $(DIST) + $(SED) -i 's|version = ".*"|version = "$(VERSION)"|' pack.toml + cd $(DIST) && packwiz modrinth export --meta-folder-base $(CURDIR)/ --pack-file $(CURDIR)/pack.toml --yes + git checkout $(CURDIR)/pack.toml +ifeq ($(OUTPUT), testing) + mv $(DIST)/$(NAME)-$(VERSION).mrpack $(DIST)/$(NAME)-$(OUTPUT).mrpack +endif + +$(DIST)/$(NAME)-$(OUTPUT).mrpack.sha256: $(DIST) + cd $(DIST) && $(SHASUM) $(NAME)-$(OUTPUT).mrpack >| $(NAME)-$(OUTPUT).mrpack.sha256 + +.PHONY: client +client: packwiz-installer-bootstrap.jar + java -jar packwiz-installer-bootstrap.jar --no-gui pack.toml --side client + +.PHONY: server +server: packwiz-installer-bootstrap.jar + java -jar packwiz-installer-bootstrap.jar --no-gui pack.toml --side server + +packwiz-installer-bootstrap.jar: + curl -sSLo packwiz-installer-bootstrap.jar $(BOOTSTRAP_URL) diff --git a/README.md b/README.md new file mode 100644 index 0000000..4a977c9 --- /dev/null +++ b/README.md @@ -0,0 +1,60 @@ +# Skyblock + +[![Docker Workflow](https://github.com/crafthippie/skyblock/actions/workflows/docker.yml/badge.svg)](https://github.com/crafthippie/skyblock/actions/workflows/docker.yml) [![GitHub Repo](https://img.shields.io/badge/github-repo-yellowgreen)](https://github.com/crafthippie/skyblock) + +This repository provides the whole configuration for the `Skyblock` Minecraft +mod pack. It's used to automatically build and publish the required files for +[Modrinth][modrinth], and to publish a Docker image for the server on +[DockerHub][dockerhub]. Some information and documentation about this pack can +be found on https://crafthippie.github.io/skyblock. + +## Versions + +To see the available Docker image versions it's best to look at +https://hub.docker.com/r/crafthippie/skyblock/tags while you can see the +available files for the client at https://dl.webhippie.de/#minecraft/skyblock/. + +## Volumes + +- /var/lib/minecraft +- /etc/minecraft/override + +## Ports + +- 25565 +- 25575 +- 8123 + +## Available environment variables + +```console +MINECRAFT_BACKUPS_DIR = ${MINECRAFT_DATA_DIR}/backups +``` + +## Inherited environment variables + +- [webhippie/minecraft-forge](https://github.com/dockhippie/minecraft-forge#available-environment-variables) +- [webhippie/minecraft-vanilla](https://github.com/dockhippie/minecraft-vanilla#available-environment-variables) +- [webhippie/temurin](https://github.com/dockhippie/temurin#available-environment-variables) +- [webhippie/ubuntu](https://github.com/dockhippie/ubuntu#available-environment-variables) + +## Contributing + +Fork -> Patch -> Push -> Pull Request + +## Authors + +- [Thomas Boerger](https://github.com/tboerger) + +## License + +MIT + +## Copyright + +```console +Copyright (c) 2024 Thomas Boerger +``` + +[modrinth]: https://modrinth.com/ +[dockerhub]: https://hub.docker.com/r/crafthippie/skyblock diff --git a/deploy/kubernetes/kustomization.yml b/deploy/kubernetes/kustomization.yml new file mode 100644 index 0000000..41854c2 --- /dev/null +++ b/deploy/kubernetes/kustomization.yml @@ -0,0 +1,31 @@ +--- +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization + +resources: + - service.yml + - statefulset.yml + +configMapGenerator: + - name: minecraft-server + options: + labels: + app.kubernetes.io/name: minecraft + app.kubernetes.io/component: server + literals: + - MINECRAFT_MOTD=Skyblock by Webhippie + +secretGenerator: + - name: minecraft-server + options: + labels: + app.kubernetes.io/name: minecraft + app.kubernetes.io/component: server + literals: [] + +images: + - name: minecraft-server + newName: quay.io/crafthippie/skyblock + newTag: 1.0.0 + +... diff --git a/deploy/kubernetes/service.yml b/deploy/kubernetes/service.yml new file mode 100644 index 0000000..f9d3399 --- /dev/null +++ b/deploy/kubernetes/service.yml @@ -0,0 +1,30 @@ +--- +apiVersion: v1 +kind: Service + +metadata: + name: minecraft-server + labels: + app.kubernetes.io/name: minecraft + app.kubernetes.io/component: server + app.kubernetes.io/instance: skyblock + annotations: + service.alpha.kubernetes.io/tolerate-unready-endpoints: "true" + +spec: + publishNotReadyAddresses: true + + selector: + app.kubernetes.io/name: minecraft + app.kubernetes.io/component: server + app.kubernetes.io/instance: skyblock + + ports: + - name: server + port: 25565 + - name: rcon + port: 25575 + - name: mapper + port: 8123 + +... diff --git a/deploy/kubernetes/statefulset.yml b/deploy/kubernetes/statefulset.yml new file mode 100644 index 0000000..3677238 --- /dev/null +++ b/deploy/kubernetes/statefulset.yml @@ -0,0 +1,74 @@ +--- +apiVersion: apps/v1 +kind: StatefulSet + +metadata: + name: minecraft-server + labels: + app.kubernetes.io/name: minecraft + app.kubernetes.io/component: server + app.kubernetes.io/instance: skyblock + +spec: + replicas: 1 + serviceName: minecraft-server + podManagementPolicy: Parallel + + updateStrategy: + type: RollingUpdate + + selector: + matchLabels: + app.kubernetes.io/name: minecraft + app.kubernetes.io/component: server + app.kubernetes.io/instance: skyblock + + template: + metadata: + labels: + app.kubernetes.io/name: minecraft + app.kubernetes.io/component: server + app.kubernetes.io/instance: skyblock + + spec: + enableServiceLinks: false + restartPolicy: Always + terminationGracePeriodSeconds: 60 + + containers: + - name: server + image: minecraft-server + imagePullPolicy: IfNotPresent + + envFrom: + - configMapRef: + name: minecraft-server + - secretRef: + name: minecraft-server + + ports: + - name: mapper + containerPort: 8123 + protocol: TCP + - name: server + containerPort: 25565 + protocol: TCP + - name: rcon + containerPort: 25575 + protocol: TCP + + volumeMounts: + - name: data + mountPath: /var/lib/minecraft + + volumeClaimTemplates: + - metadata: + name: data + spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 5Gi + +... diff --git a/docker/Dockerfile.amd64 b/docker/Dockerfile.amd64 new file mode 100644 index 0000000..fa2c963 --- /dev/null +++ b/docker/Dockerfile.amd64 @@ -0,0 +1,22 @@ +FROM ghcr.io/dockhippie/minecraft-vanilla:1.20.1-amd64 AS build + +EXPOSE 25565 25575 8123 + +ENV FORGE_VERSION 47.1.103 +ENV FORGE_URL https://maven.neoforged.net/releases/net/neoforged/forge/${MINECRAFT_VERSION}-${FORGE_VERSION}/forge-${MINECRAFT_VERSION}-${FORGE_VERSION}-installer.jar + +RUN apt-get update && \ + apt-get upgrade -y && \ + apt-get clean && \ + rm -rf /var/lib/apt/lists/* && \ + curl --create-dirs -sLo /usr/share/minecraft/forge-${MINECRAFT_VERSION}-${FORGE_VERSION}-installer.jar ${FORGE_URL} && \ + cd /usr/share/minecraft && \ + mkdir mods && \ + java -jar forge-${MINECRAFT_VERSION}-${FORGE_VERSION}-installer.jar --installServer && \ + rm -f forge-${MINECRAFT_VERSION}-${FORGE_VERSION}-installer.jar forge-${MINECRAFT_VERSION}-${FORGE_VERSION}-installer.jar.log run.bat run.sh + +ENV MINECRAFT_LEVEL_TYPE DEFAULT + +COPY ./overlay/ / +COPY ./mods /usr/share/minecraft/mods +COPY ./config /usr/share/minecraft/config diff --git a/docker/Dockerfile.arm64 b/docker/Dockerfile.arm64 new file mode 100644 index 0000000..ab39980 --- /dev/null +++ b/docker/Dockerfile.arm64 @@ -0,0 +1,22 @@ +FROM ghcr.io/dockhippie/minecraft-vanilla:1.20.1-arm64 AS build + +EXPOSE 25565 25575 8123 + +ENV FORGE_VERSION 47.1.103 +ENV FORGE_URL https://maven.neoforged.net/releases/net/neoforged/forge/${MINECRAFT_VERSION}-${FORGE_VERSION}/forge-${MINECRAFT_VERSION}-${FORGE_VERSION}-installer.jar + +RUN apt-get update && \ + apt-get upgrade -y && \ + apt-get clean && \ + rm -rf /var/lib/apt/lists/* && \ + curl --create-dirs -sLo /usr/share/minecraft/forge-${MINECRAFT_VERSION}-${FORGE_VERSION}-installer.jar ${FORGE_URL} && \ + cd /usr/share/minecraft && \ + mkdir mods && \ + java -jar forge-${MINECRAFT_VERSION}-${FORGE_VERSION}-installer.jar --installServer && \ + rm -f forge-${MINECRAFT_VERSION}-${FORGE_VERSION}-installer.jar forge-${MINECRAFT_VERSION}-${FORGE_VERSION}-installer.jar.log run.bat run.sh + +ENV MINECRAFT_LEVEL_TYPE DEFAULT + +COPY ./overlay/ / +COPY ./mods /usr/share/minecraft/mods +COPY ./config /usr/share/minecraft/config diff --git a/docs/archetypes/default.md b/docs/archetypes/default.md new file mode 100644 index 0000000..4e777be --- /dev/null +++ b/docs/archetypes/default.md @@ -0,0 +1,6 @@ +--- +title: "{{ replace .TranslationBaseName "-" " " | title }}" +date: {{ .Date }} +anchor: "{{ replace .TranslationBaseName "-" " " | title | urlize }}" +weight: +--- diff --git a/docs/config.toml b/docs/config.toml new file mode 100644 index 0000000..72ddd42 --- /dev/null +++ b/docs/config.toml @@ -0,0 +1,16 @@ +baseURL = "https://crafthippie.github.io/skyblock/" +languageCode = "en-us" +title = "Skyblock" +disableKinds = ["taxonomy", "taxonomyTerm", "RSS", "sitemap"] + +[blackfriday] + angledQuotes = true + fractions = false + plainIDAnchors = true + smartlists = true + extensions = ["hardLineBreak"] + +[params] + author = "Thomas Boerger" + description = "Documentation for Minecraft pack Skyblock" + keywords = "minecraft, mod, modpack, forge" diff --git a/docs/content/about.md b/docs/content/about.md new file mode 100644 index 0000000..6cb9775 --- /dev/null +++ b/docs/content/about.md @@ -0,0 +1,6 @@ +--- +title: "About" +date: 2020-01-01T00:00:00+00:00 +anchor: "about" +weight: 30 +--- diff --git a/docs/content/getting-started.md b/docs/content/getting-started.md new file mode 100644 index 0000000..5bd1724 --- /dev/null +++ b/docs/content/getting-started.md @@ -0,0 +1,10 @@ +--- +title: "Getting Started" +date: 2020-01-01T00:00:00+00:00 +anchor: "getting-started" +weight: 10 +--- + +## Installation + +## Configuration diff --git a/docs/content/license.md b/docs/content/license.md new file mode 100644 index 0000000..b90534a --- /dev/null +++ b/docs/content/license.md @@ -0,0 +1,11 @@ +--- +title: "License" +date: 2020-01-01T00:00:00+00:00 +anchor: "license" +weight: 40 +--- + +This project is licensed under the [MIT][license] license. For the license of +the used libraries you have to check the respective sources. + +[license]: https://github.com/crafthippie/skyblock/blob/master/LICENSE diff --git a/docs/content/usage.md b/docs/content/usage.md new file mode 100644 index 0000000..494cb62 --- /dev/null +++ b/docs/content/usage.md @@ -0,0 +1,6 @@ +--- +title: "Usage" +date: 2020-01-01T00:00:00+00:00 +anchor: "usage" +weight: 20 +--- diff --git a/docs/layouts/index.html b/docs/layouts/index.html new file mode 100644 index 0000000..f3dca91 --- /dev/null +++ b/docs/layouts/index.html @@ -0,0 +1,57 @@ + + + + + + + + + {{ .Site.Title }} + + + + + + {{ partial "style.html" . }} + + + + + + {{ range .Data.Pages.ByWeight }} +
+

+ + {{ .Title }} + + + + + Back to Top + + +

+ + {{ .Content | markdownify }} +
+ {{ end }} + + diff --git a/docs/layouts/partials/style.html b/docs/layouts/partials/style.html new file mode 100644 index 0000000..e884d91 --- /dev/null +++ b/docs/layouts/partials/style.html @@ -0,0 +1,328 @@ + diff --git a/index.toml b/index.toml new file mode 100644 index 0000000..1e244ab --- /dev/null +++ b/index.toml @@ -0,0 +1,256 @@ +hash-format = "sha256" + +[[files]] +file = "mods/advanced-generators.pw.toml" +hash = "3cc51a51acae9cdd9f0035431db7a203af8e6cc70b21136867796fefc13b74e4" +metafile = true + +[[files]] +file = "mods/ae2-qol-recipes.pw.toml" +hash = "1eb5e34d66c8fd484ca1a047454b0e9fad0f9e7d7c4f1486c9b870424c073d5c" +metafile = true + +[[files]] +file = "mods/ae2.pw.toml" +hash = "02c39db9f22b783337f78f45ba24fd738255ac19f9907d6cbc8042fb33ce9d9f" +metafile = true + +[[files]] +file = "mods/applied-energistics-2-wireless-terminals.pw.toml" +hash = "13cabf66a63def3178ece0c77dd31690b30198dd53a750de871af2e07003aa51" +metafile = true + +[[files]] +file = "mods/architectury-api.pw.toml" +hash = "fa34a3117af7f8ed553ec563a7c90c1d6462184c7df5b837c831cb482c6ae582" +metafile = true + +[[files]] +file = "mods/balm.pw.toml" +hash = "1447df8a4bd1fd2cce2ae71f900f3d1f1626baa2fe37c877cef19549a4101c36" +metafile = true + +[[files]] +file = "mods/bdlib.pw.toml" +hash = "5fd19cba1eeaf7a0ab1842cc6941035457c114ed4bec845c0a909601bd613eee" +metafile = true + +[[files]] +file = "mods/better-advancements.pw.toml" +hash = "2bef9c1f47174d832175c2a6c05eb6504e1d37c59ba1cb3287315590532eb574" +metafile = true + +[[files]] +file = "mods/cloth-config.pw.toml" +hash = "38cf4a76862812fefc9b1ae0b8fac02b3f706716f3228eb859b511950273e791" +metafile = true + +[[files]] +file = "mods/cobblefordays.pw.toml" +hash = "30f0c1dc08936db9002056ff41197e0fd9768e47c5b08d277bd5e547464c5118" +metafile = true + +[[files]] +file = "mods/cofh-core.pw.toml" +hash = "0c7c61055551d9e018a1f25716151a0e5778ce5964394ce30508282d696ac91c" +metafile = true + +[[files]] +file = "mods/collective.pw.toml" +hash = "5333619ce0f7e191d409fac6cd1c5981b15fd9baee160114e4a5010d9b44761d" +metafile = true + +[[files]] +file = "mods/crafting-station.pw.toml" +hash = "ac40f69fcbf5eef36d3e884a3ae0fa7620fc54a3596fe9ab1b2d5251e5fc136e" +metafile = true + +[[files]] +file = "mods/creativecore.pw.toml" +hash = "89b83a171841fbe236a853110653cba96017beb2b15318cc165909b226527a57" +metafile = true + +[[files]] +file = "mods/cucumber.pw.toml" +hash = "be21ddae677bf501dcb79ce4ac534e0ea16b21e0823223bd0a7b15d72b1c187e" +metafile = true + +[[files]] +file = "mods/curios.pw.toml" +hash = "18b1ca556e2221cedba762a96b55df57bb4cf0ad390ed70f2d704b6b286ef679" +metafile = true + +[[files]] +file = "mods/double-doors.pw.toml" +hash = "63577d4abd5be5c2b061bd3d5f6bdf0878b7ab0e8e2e0b7f98bdeb50e009134f" +metafile = true + +[[files]] +file = "mods/functional-storage.pw.toml" +hash = "0c6e147755de5791b1b421e603902307be55ac037ee016c4621486a7a45f1ed0" +metafile = true + +[[files]] +file = "mods/immersiveengineering.pw.toml" +hash = "c2269a9e657db40350aea860ad7b115abbc8aaad5a131d68b503841751ad182b" +metafile = true + +[[files]] +file = "mods/industrial-foregoing.pw.toml" +hash = "cd487952f1096d06d0507170caf1e49f5f2cebc97eb4323b1e697491990ac0ee" +metafile = true + +[[files]] +file = "mods/infinite-source-of-water.pw.toml" +hash = "3b91aff467aec219c571a3fa63a1d8510a0865e15bb52aa98fedd7a286603dc1" +metafile = true + +[[files]] +file = "mods/inventory-essentials.pw.toml" +hash = "c3d3f1e329d4a4e7a46edf38fb907e6324e5c60e098c5e66fb43dd083905a17e" +metafile = true + +[[files]] +file = "mods/inventory-sorter.pw.toml" +hash = "537f95eb95c08a7510b7151d2960904d2fae3ccd515a5f369063c11f707584fb" +metafile = true + +[[files]] +file = "mods/iron-jetpacks.pw.toml" +hash = "727011fc4720b16396e810fd3ca3119430e95def38e43923b21bb2d9253cd061" +metafile = true + +[[files]] +file = "mods/jade.pw.toml" +hash = "c0a0a1e85892a9546c1c69761db4d676e8ff63f67dd203b9d1ad1dc0b07d7b0f" +metafile = true + +[[files]] +file = "mods/jei.pw.toml" +hash = "e93f24623fe48bd7eee6e54e80c223ce71e639e210372124b8f22dd6b72924cc" +metafile = true + +[[files]] +file = "mods/journeymap.pw.toml" +hash = "290e39267f98ae5f3037b12d3a2cd04570f21710e38446188a75b6fc460ddb10" +metafile = true + +[[files]] +file = "mods/just-enough-professions-jep.pw.toml" +hash = "76ad5b491a38df4f6debfae8808cb455c9b7ecd6c039a814ce1639278ac1f86c" +metafile = true + +[[files]] +file = "mods/just-enough-resources-jer.pw.toml" +hash = "83219231c7af4677a2507e01ca0faf39acca69f05506148d1d6a3e47b4c94562" +metafile = true + +[[files]] +file = "mods/laserio.pw.toml" +hash = "9d85a210e77661032cfbcd930059096be6cfb6afd9abedde21bcdfa4e5b25e54" +metafile = true + +[[files]] +file = "mods/lava-sources.pw.toml" +hash = "2bc0d0897db0164683e80ffa31f5ab632c0192c0093294a7043d8a39f445496b" +metafile = true + +[[files]] +file = "mods/littletiles.pw.toml" +hash = "4ef06d17aa2c7e075044e3a53754f940bdacc04d99d8f7a0fd2a8b239a612434" +metafile = true + +[[files]] +file = "mods/merequester.pw.toml" +hash = "3f7bdeb890594497caa9fb7a05e340480d520b0a35c4ed47e044c041badeb5da" +metafile = true + +[[files]] +file = "mods/modular-routers.pw.toml" +hash = "ddb72b212c3bf6077beebbdc04c178748834030aea9b8b88c8f66fb5aa0da78a" +metafile = true + +[[files]] +file = "mods/mouse-tweaks.pw.toml" +hash = "d71fd32a56325b8fe378cfafe78f81d985436b2fd44638f5bab1f1386680b096" +metafile = true + +[[files]] +file = "mods/patchouli.pw.toml" +hash = "4d0b66ba4cb3c2965bf961d4bb991babb6a60f8a20709d1e295ed7fc8b6d8929" +metafile = true + +[[files]] +file = "mods/pipez.pw.toml" +hash = "8f206f9520244cdd99a9fb2714a72f383001d2c0278438bbd7dba04bdf8f601b" +metafile = true + +[[files]] +file = "mods/robs-floating-islands.pw.toml" +hash = "0d37a3fb5d8ce4746c98a5cb13cb4c4595ab4eb3abd6766220a91dbb2d5f6cd0" +metafile = true + +[[files]] +file = "mods/scalable-cats-force.pw.toml" +hash = "0efdfd042ff64bcbd20ea342d47214c362a124f63568ccf3f1516caf134dc596" +metafile = true + +[[files]] +file = "mods/simple-backups.pw.toml" +hash = "1f5873ba978d67743652798c8161188de2a5f9d813736e36a084ce3db99692ce" +metafile = true + +[[files]] +file = "mods/simple-sky-resource-generators.pw.toml" +hash = "54a8ead02e9cf26842ff586de70a5f137b38e99ac2f774c8d5ac12cc58ec0a36" +metafile = true + +[[files]] +file = "mods/skyblock-advancements.pw.toml" +hash = "1627f9befe8864dad8512123c82d7fb05f0432994a66460a0b013541dd9acd01" +metafile = true + +[[files]] +file = "mods/stack-refill.pw.toml" +hash = "60b06c8d72bd8930b32e2311f6ed9ef815f3822847281fa1e9a949fbe072bef5" +metafile = true + +[[files]] +file = "mods/standard-skyblock.pw.toml" +hash = "9898498a6597374b14cf5ee4ffde7bcfb2342e35742aa2cd8d5c2839b8da3e36" +metafile = true + +[[files]] +file = "mods/thermal-cultivation.pw.toml" +hash = "7b86c138ab74afff0648607d821603256d0625341a6829674bd5eace393abf6a" +metafile = true + +[[files]] +file = "mods/thermal-dynamics.pw.toml" +hash = "9e4ae142be277f08c4ac01aea83bb4edb90feb445890b2603fc7dc254f1e823d" +metafile = true + +[[files]] +file = "mods/thermal-expansion.pw.toml" +hash = "88c732d3804d749d8314bb9e8d0749b5711b47068e2582c559c9e093488d0519" +metafile = true + +[[files]] +file = "mods/thermal-foundation.pw.toml" +hash = "7ab7310d8e23e297e73fa93475c779c091ee1844738f233b20a5b05a4a2752a5" +metafile = true + +[[files]] +file = "mods/thermal-innovation.pw.toml" +hash = "e3dcd8211729e5fa570499ff2602c91f27d3be6db687c342f76735e8581a9f9d" +metafile = true + +[[files]] +file = "mods/thermal-locomotion.pw.toml" +hash = "1a5f6ac96bf75bf37c8e487beb1754dc2522884b2b8ab5ebacc3ee9477e0e0e1" +metafile = true + +[[files]] +file = "mods/titanium.pw.toml" +hash = "72541a390659918193165af5197af4ed7d23a1d762d39e045b4168488cd4d08a" +metafile = true diff --git a/mods/advanced-generators.pw.toml b/mods/advanced-generators.pw.toml new file mode 100644 index 0000000..d197017 --- /dev/null +++ b/mods/advanced-generators.pw.toml @@ -0,0 +1,13 @@ +name = "Advanced Generators" +filename = "advgenerators-1.6.0.6-mc1.20.1.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/qG2blzpo/versions/iPXq61FW/advgenerators-1.6.0.6-mc1.20.1.jar" +hash-format = "sha1" +hash = "d4aba356b0bc53757973146ec163b8d6410af852" + +[update] +[update.modrinth] +mod-id = "qG2blzpo" +version = "iPXq61FW" diff --git a/mods/ae2-qol-recipes.pw.toml b/mods/ae2-qol-recipes.pw.toml new file mode 100644 index 0000000..7bd6007 --- /dev/null +++ b/mods/ae2-qol-recipes.pw.toml @@ -0,0 +1,13 @@ +name = "AE2 QoL Recipes" +filename = "ae2qolrecipes-neoforge-1.20.1-1.1.1.jar" +side = "server" + +[download] +url = "https://cdn.modrinth.com/data/K7VSm2YY/versions/JQnbYqRh/ae2qolrecipes-neoforge-1.20.1-1.1.1.jar" +hash-format = "sha1" +hash = "2ac89ca62a9049674e4411b8de2825111023b104" + +[update] +[update.modrinth] +mod-id = "K7VSm2YY" +version = "JQnbYqRh" diff --git a/mods/ae2.pw.toml b/mods/ae2.pw.toml new file mode 100644 index 0000000..4085299 --- /dev/null +++ b/mods/ae2.pw.toml @@ -0,0 +1,13 @@ +name = "Applied Energistics 2" +filename = "appliedenergistics2-forge-15.0.23.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/XxWD5pD3/versions/pHuguX3Y/appliedenergistics2-forge-15.0.23.jar" +hash-format = "sha1" +hash = "ded5e9f4ed871af53016a24e9b2531dc6b2843b2" + +[update] +[update.modrinth] +mod-id = "XxWD5pD3" +version = "pHuguX3Y" diff --git a/mods/applied-energistics-2-wireless-terminals.pw.toml b/mods/applied-energistics-2-wireless-terminals.pw.toml new file mode 100644 index 0000000..9fe6da7 --- /dev/null +++ b/mods/applied-energistics-2-wireless-terminals.pw.toml @@ -0,0 +1,13 @@ +name = "Applied Energistics 2 Wireless Terminals" +filename = "ae2wtlib-15.2.2-forge.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/pNabrMMw/versions/7xD9lbep/ae2wtlib-15.2.2-forge.jar" +hash-format = "sha1" +hash = "13ec42170a85bdccae3a22bc4ea3fcc9ac53eea0" + +[update] +[update.modrinth] +mod-id = "pNabrMMw" +version = "7xD9lbep" diff --git a/mods/architectury-api.pw.toml b/mods/architectury-api.pw.toml new file mode 100644 index 0000000..e4122ce --- /dev/null +++ b/mods/architectury-api.pw.toml @@ -0,0 +1,13 @@ +name = "Architectury API" +filename = "architectury-9.2.14-forge.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/lhGA9TYQ/versions/1MKTLiiG/architectury-9.2.14-forge.jar" +hash-format = "sha1" +hash = "a52918a500ff421180a1cbd1a0cabee712134ec4" + +[update] +[update.modrinth] +mod-id = "lhGA9TYQ" +version = "1MKTLiiG" diff --git a/mods/balm.pw.toml b/mods/balm.pw.toml new file mode 100644 index 0000000..41a80a3 --- /dev/null +++ b/mods/balm.pw.toml @@ -0,0 +1,13 @@ +name = "Balm" +filename = "balm-forge-1.20.1-7.2.2.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/MBAkmtvl/versions/fzqus8s0/balm-forge-1.20.1-7.2.2.jar" +hash-format = "sha1" +hash = "c0bb062b52fa0a234d922e066d3e09c3df4297d9" + +[update] +[update.modrinth] +mod-id = "MBAkmtvl" +version = "fzqus8s0" diff --git a/mods/bdlib.pw.toml b/mods/bdlib.pw.toml new file mode 100644 index 0000000..c2f6bba --- /dev/null +++ b/mods/bdlib.pw.toml @@ -0,0 +1,13 @@ +name = "bdlib" +filename = "bdlib-1.27.0.8-mc1.20.1.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/80j65Nbw/versions/oChV3Jik/bdlib-1.27.0.8-mc1.20.1.jar" +hash-format = "sha1" +hash = "d29b7226d10005a649ec089e626efa534ee88598" + +[update] +[update.modrinth] +mod-id = "80j65Nbw" +version = "oChV3Jik" diff --git a/mods/better-advancements.pw.toml b/mods/better-advancements.pw.toml new file mode 100644 index 0000000..3d12fa9 --- /dev/null +++ b/mods/better-advancements.pw.toml @@ -0,0 +1,13 @@ +name = "Better Advancements" +filename = "BetterAdvancements-1.20.1-0.3.2.162.jar" +side = "client" + +[download] +url = "https://cdn.modrinth.com/data/Q2OqKxDG/versions/vhpXnjE2/BetterAdvancements-1.20.1-0.3.2.162.jar" +hash-format = "sha1" +hash = "84a6293b9b662c93aa30aa047436b6d8c19e5088" + +[update] +[update.modrinth] +mod-id = "Q2OqKxDG" +version = "vhpXnjE2" diff --git a/mods/cloth-config.pw.toml b/mods/cloth-config.pw.toml new file mode 100644 index 0000000..8d63340 --- /dev/null +++ b/mods/cloth-config.pw.toml @@ -0,0 +1,13 @@ +name = "Cloth Config API" +filename = "cloth-config-11.1.118-forge.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/9s6osm5g/versions/nr1znv5v/cloth-config-11.1.118-forge.jar" +hash-format = "sha1" +hash = "c46ca3fba95691873a765f4e79750c615f33e446" + +[update] +[update.modrinth] +mod-id = "9s6osm5g" +version = "nr1znv5v" diff --git a/mods/cobblefordays.pw.toml b/mods/cobblefordays.pw.toml new file mode 100644 index 0000000..1fb86ff --- /dev/null +++ b/mods/cobblefordays.pw.toml @@ -0,0 +1,13 @@ +name = "CobbleForDays" +filename = "CobbleForDays-1.8.0.jar" +side = "both" + +[download] +hash-format = "sha1" +hash = "8c683b5a8205544af762ed0c74371e1b76367341" +mode = "metadata:curseforge" + +[update] +[update.curseforge] +file-id = 4653625 +project-id = 349460 diff --git a/mods/cofh-core.pw.toml b/mods/cofh-core.pw.toml new file mode 100644 index 0000000..a061317 --- /dev/null +++ b/mods/cofh-core.pw.toml @@ -0,0 +1,13 @@ +name = "CoFH Core" +filename = "cofh_core-1.20.1-11.0.0.51.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/OWSRM4vD/versions/C1iOYlLu/cofh_core-1.20.1-11.0.0.51.jar" +hash-format = "sha1" +hash = "c2ccd722e4043fd5c8e5051dd7fce2ac312706bb" + +[update] +[update.modrinth] +mod-id = "OWSRM4vD" +version = "C1iOYlLu" diff --git a/mods/collective.pw.toml b/mods/collective.pw.toml new file mode 100644 index 0000000..de7dba4 --- /dev/null +++ b/mods/collective.pw.toml @@ -0,0 +1,13 @@ +name = "Collective" +filename = "collective-1.20.1-7.40.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/e0M1UDsY/versions/wipAhCa0/collective-1.20.1-7.40.jar" +hash-format = "sha1" +hash = "19e0c11ee46e360daf5e9b2f3c8ea11a046e3b73" + +[update] +[update.modrinth] +mod-id = "e0M1UDsY" +version = "wipAhCa0" diff --git a/mods/crafting-station.pw.toml b/mods/crafting-station.pw.toml new file mode 100644 index 0000000..513608c --- /dev/null +++ b/mods/crafting-station.pw.toml @@ -0,0 +1,13 @@ +name = "Crafting Station" +filename = "craftingstation-1.20.1-1.jar" +side = "both" + +[download] +hash-format = "sha1" +hash = "56b186b8037b307a7fd3b55dfde6ad4bb618231f" +mode = "metadata:curseforge" + +[update] +[update.curseforge] +file-id = 4770683 +project-id = 318551 diff --git a/mods/creativecore.pw.toml b/mods/creativecore.pw.toml new file mode 100644 index 0000000..603af2a --- /dev/null +++ b/mods/creativecore.pw.toml @@ -0,0 +1,13 @@ +name = "CreativeCore" +filename = "CreativeCore_FORGE_v2.11.25_mc1.20.1.jar" +side = "client" + +[download] +url = "https://cdn.modrinth.com/data/OsZiaDHq/versions/ERTYohOX/CreativeCore_FORGE_v2.11.25_mc1.20.1.jar" +hash-format = "sha1" +hash = "c6700d5b71cb9bd910079abb85f48d76bdafe6a9" + +[update] +[update.modrinth] +mod-id = "OsZiaDHq" +version = "ERTYohOX" diff --git a/mods/cucumber.pw.toml b/mods/cucumber.pw.toml new file mode 100644 index 0000000..b40cb31 --- /dev/null +++ b/mods/cucumber.pw.toml @@ -0,0 +1,13 @@ +name = "Cucumber Library" +filename = "Cucumber-1.20.1-7.0.7.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/Rw1NrDzF/versions/p1IgvIXf/Cucumber-1.20.1-7.0.7.jar" +hash-format = "sha1" +hash = "560c2ba6960508d6fb7ab7fdf3af7b4b6114689e" + +[update] +[update.modrinth] +mod-id = "Rw1NrDzF" +version = "p1IgvIXf" diff --git a/mods/curios.pw.toml b/mods/curios.pw.toml new file mode 100644 index 0000000..e3d06db --- /dev/null +++ b/mods/curios.pw.toml @@ -0,0 +1,13 @@ +name = "Curios API" +filename = "curios-forge-5.7.2+1.20.1.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/vvuO3ImH/versions/L0Tw2xgL/curios-forge-5.7.2%2B1.20.1.jar" +hash-format = "sha1" +hash = "8156335449154bef3cbfec538700173870f4e417" + +[update] +[update.modrinth] +mod-id = "vvuO3ImH" +version = "L0Tw2xgL" diff --git a/mods/double-doors.pw.toml b/mods/double-doors.pw.toml new file mode 100644 index 0000000..5c7b9a9 --- /dev/null +++ b/mods/double-doors.pw.toml @@ -0,0 +1,13 @@ +name = "Double Doors" +filename = "doubledoors-1.20.1-5.4.jar" +side = "server" + +[download] +url = "https://cdn.modrinth.com/data/JrvR9OHr/versions/jQ5ZvTEg/doubledoors-1.20.1-5.4.jar" +hash-format = "sha1" +hash = "49d231d85242fbd6a6e3ac212ed03837f157114e" + +[update] +[update.modrinth] +mod-id = "JrvR9OHr" +version = "jQ5ZvTEg" diff --git a/mods/functional-storage.pw.toml b/mods/functional-storage.pw.toml new file mode 100644 index 0000000..d8b889a --- /dev/null +++ b/mods/functional-storage.pw.toml @@ -0,0 +1,13 @@ +name = "Functional Storage" +filename = "functionalstorage-1.20.1-1.2.10.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/cO40ZIg3/versions/8hVtSJvY/functionalstorage-1.20.1-1.2.10.jar" +hash-format = "sha1" +hash = "0356c36144adccf2fb33fae12135ce65f9ba52ee" + +[update] +[update.modrinth] +mod-id = "cO40ZIg3" +version = "8hVtSJvY" diff --git a/mods/immersiveengineering.pw.toml b/mods/immersiveengineering.pw.toml new file mode 100644 index 0000000..e809245 --- /dev/null +++ b/mods/immersiveengineering.pw.toml @@ -0,0 +1,13 @@ +name = "Immersive Engineering" +filename = "ImmersiveEngineering-1.20.1-10.0.0-169.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/tIm2nV03/versions/uqGFpLXw/ImmersiveEngineering-1.20.1-10.0.0-169.jar" +hash-format = "sha1" +hash = "a9fbb70fee4ad68d0f860e711c4bae524117525f" + +[update] +[update.modrinth] +mod-id = "tIm2nV03" +version = "uqGFpLXw" diff --git a/mods/industrial-foregoing.pw.toml b/mods/industrial-foregoing.pw.toml new file mode 100644 index 0000000..5c12862 --- /dev/null +++ b/mods/industrial-foregoing.pw.toml @@ -0,0 +1,13 @@ +name = "Industrial Foregoing" +filename = "industrial-foregoing-1.20.1-3.5.15.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/lWxpUd04/versions/BsvFuXnX/industrial-foregoing-1.20.1-3.5.15.jar" +hash-format = "sha1" +hash = "596db00aaee9e54e4e571662c4e8a14a9dfe4a1c" + +[update] +[update.modrinth] +mod-id = "lWxpUd04" +version = "BsvFuXnX" diff --git a/mods/infinite-source-of-water.pw.toml b/mods/infinite-source-of-water.pw.toml new file mode 100644 index 0000000..ea3a4f6 --- /dev/null +++ b/mods/infinite-source-of-water.pw.toml @@ -0,0 +1,13 @@ +name = "Infinite source of water" +filename = "water_sources_1.20.1_1.0.0.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/W3Hx4qKO/versions/5JSUVD3L/water_sources_1.20.1_1.0.0.jar" +hash-format = "sha1" +hash = "242a707b11b94653a406743ad6e3d4d863997495" + +[update] +[update.modrinth] +mod-id = "W3Hx4qKO" +version = "5JSUVD3L" diff --git a/mods/inventory-essentials.pw.toml b/mods/inventory-essentials.pw.toml new file mode 100644 index 0000000..4b0500e --- /dev/null +++ b/mods/inventory-essentials.pw.toml @@ -0,0 +1,13 @@ +name = "Inventory Essentials" +filename = "inventoryessentials-forge-1.20.1-8.2.3.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/Boon8xwi/versions/4z2MZiJq/inventoryessentials-forge-1.20.1-8.2.3.jar" +hash-format = "sha1" +hash = "6c0a665339ccce532bc8372a1cc5f75ccc539a7b" + +[update] +[update.modrinth] +mod-id = "Boon8xwi" +version = "4z2MZiJq" diff --git a/mods/inventory-sorter.pw.toml b/mods/inventory-sorter.pw.toml new file mode 100644 index 0000000..0accdfe --- /dev/null +++ b/mods/inventory-sorter.pw.toml @@ -0,0 +1,13 @@ +name = "Inventory Sorter" +filename = "inventorysorter-1.20.1-23.0.1.jar" +side = "both" + +[download] +hash-format = "sha1" +hash = "32e30b71d7ef67b306a24191c655528509454cb5" +mode = "metadata:curseforge" + +[update] +[update.curseforge] +file-id = 4655091 +project-id = 240633 diff --git a/mods/iron-jetpacks.pw.toml b/mods/iron-jetpacks.pw.toml new file mode 100644 index 0000000..e4b7447 --- /dev/null +++ b/mods/iron-jetpacks.pw.toml @@ -0,0 +1,13 @@ +name = "Iron Jetpacks" +filename = "IronJetpacks-1.20.1-7.0.3.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/DWIEOniQ/versions/Xa4wuE4T/IronJetpacks-1.20.1-7.0.3.jar" +hash-format = "sha1" +hash = "10653d4ee21236cb5bd9a6f4d950dc0b3a48cb33" + +[update] +[update.modrinth] +mod-id = "DWIEOniQ" +version = "Xa4wuE4T" diff --git a/mods/jade.pw.toml b/mods/jade.pw.toml new file mode 100644 index 0000000..51894e3 --- /dev/null +++ b/mods/jade.pw.toml @@ -0,0 +1,13 @@ +name = "Jade 🔍" +filename = "Jade-1.20.1-forge-11.8.0.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/nvQzSEkH/versions/akD4smps/Jade-1.20.1-forge-11.8.0.jar" +hash-format = "sha1" +hash = "bc7eca506af9e754b6283af15ba5a35532a96683" + +[update] +[update.modrinth] +mod-id = "nvQzSEkH" +version = "akD4smps" diff --git a/mods/jei.pw.toml b/mods/jei.pw.toml new file mode 100644 index 0000000..8e332af --- /dev/null +++ b/mods/jei.pw.toml @@ -0,0 +1,13 @@ +name = "Just Enough Items" +filename = "jei-1.20.1-forge-15.3.0.4.jar" +side = "client" + +[download] +url = "https://cdn.modrinth.com/data/u6dRKJwZ/versions/PeYsGsQy/jei-1.20.1-forge-15.3.0.4.jar" +hash-format = "sha1" +hash = "1a431d34991d51998f9971c4291bac2d58eaa154" + +[update] +[update.modrinth] +mod-id = "u6dRKJwZ" +version = "PeYsGsQy" diff --git a/mods/journeymap.pw.toml b/mods/journeymap.pw.toml new file mode 100644 index 0000000..25e45c0 --- /dev/null +++ b/mods/journeymap.pw.toml @@ -0,0 +1,13 @@ +name = "JourneyMap" +filename = "journeymap-1.20.1-5.9.18-neoforge.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/lfHFW1mp/versions/gQvJhjQf/journeymap-1.20.1-5.9.18-neoforge.jar" +hash-format = "sha1" +hash = "cccc91a8ab88e145b6358419ae8e52c7ce302d36" + +[update] +[update.modrinth] +mod-id = "lfHFW1mp" +version = "gQvJhjQf" diff --git a/mods/just-enough-professions-jep.pw.toml b/mods/just-enough-professions-jep.pw.toml new file mode 100644 index 0000000..45dd710 --- /dev/null +++ b/mods/just-enough-professions-jep.pw.toml @@ -0,0 +1,13 @@ +name = "Just Enough Professions (JEP)" +filename = "JustEnoughProfessions-forge-1.20.1-3.0.1.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/kB56GtWA/versions/ANKVJC3T/JustEnoughProfessions-forge-1.20.1-3.0.1.jar" +hash-format = "sha1" +hash = "dd8b3252f980da6ff4bc39127a84d786cf0bd06f" + +[update] +[update.modrinth] +mod-id = "kB56GtWA" +version = "ANKVJC3T" diff --git a/mods/just-enough-resources-jer.pw.toml b/mods/just-enough-resources-jer.pw.toml new file mode 100644 index 0000000..229c60a --- /dev/null +++ b/mods/just-enough-resources-jer.pw.toml @@ -0,0 +1,13 @@ +name = "Just Enough Resources (JER)" +filename = "JustEnoughResources-1.20.1-1.4.0.247.jar" +side = "client" + +[download] +url = "https://cdn.modrinth.com/data/uEfK2CXF/versions/jW52tbTk/JustEnoughResources-1.20.1-1.4.0.247.jar" +hash-format = "sha1" +hash = "526e788a9b38afc5171fab49b64a5a54e1bb25d7" + +[update] +[update.modrinth] +mod-id = "uEfK2CXF" +version = "jW52tbTk" diff --git a/mods/laserio.pw.toml b/mods/laserio.pw.toml new file mode 100644 index 0000000..395aa32 --- /dev/null +++ b/mods/laserio.pw.toml @@ -0,0 +1,13 @@ +name = "LaserIO" +filename = "laserio-1.6.8.jar" +side = "both" + +[download] +hash-format = "sha1" +hash = "f9e8dc07506eaa058f64e875e1f46dcd44ab6003" +mode = "metadata:curseforge" + +[update] +[update.curseforge] +file-id = 5074767 +project-id = 626839 diff --git a/mods/lava-sources.pw.toml b/mods/lava-sources.pw.toml new file mode 100644 index 0000000..6acfcc7 --- /dev/null +++ b/mods/lava-sources.pw.toml @@ -0,0 +1,13 @@ +name = "Lava Sources" +filename = "lava_sources_1.20.1_1.0.0.jar" +side = "both" + +[download] +hash-format = "sha1" +hash = "6ab19f0fd2f4b78e666ab35697d47b2259310524" +mode = "metadata:curseforge" + +[update] +[update.curseforge] +file-id = 4911657 +project-id = 643463 diff --git a/mods/littletiles.pw.toml b/mods/littletiles.pw.toml new file mode 100644 index 0000000..0bebbe5 --- /dev/null +++ b/mods/littletiles.pw.toml @@ -0,0 +1,13 @@ +name = "LittleTiles" +filename = "LittleTiles_BETA_v1.6.0-pre100_mc1.20.1.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/RCRxC1tD/versions/plp9D2he/LittleTiles_BETA_v1.6.0-pre100_mc1.20.1.jar" +hash-format = "sha1" +hash = "0a3d117b08537c49d15ca887b7187f73381169b1" + +[update] +[update.modrinth] +mod-id = "RCRxC1tD" +version = "plp9D2he" diff --git a/mods/merequester.pw.toml b/mods/merequester.pw.toml new file mode 100644 index 0000000..2727b84 --- /dev/null +++ b/mods/merequester.pw.toml @@ -0,0 +1,13 @@ +name = "ME Requester" +filename = "merequester-forge-1.20.1-1.1.4.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/E6BFl96N/versions/ehPc0G14/merequester-forge-1.20.1-1.1.4.jar" +hash-format = "sha1" +hash = "d6633dee57b9ac6b19d530c7f801064c3726ce4f" + +[update] +[update.modrinth] +mod-id = "E6BFl96N" +version = "ehPc0G14" diff --git a/mods/modular-routers.pw.toml b/mods/modular-routers.pw.toml new file mode 100644 index 0000000..9208936 --- /dev/null +++ b/mods/modular-routers.pw.toml @@ -0,0 +1,13 @@ +name = "Modular Routers" +filename = "modular-routers-12.1.1+mc1.20.1.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/EuTS81Z3/versions/3QDNtJUd/modular-routers-12.1.1%2Bmc1.20.1.jar" +hash-format = "sha1" +hash = "037b801a55ca30952b98c427a77ac206cb1248c3" + +[update] +[update.modrinth] +mod-id = "EuTS81Z3" +version = "3QDNtJUd" diff --git a/mods/mouse-tweaks.pw.toml b/mods/mouse-tweaks.pw.toml new file mode 100644 index 0000000..de08fe8 --- /dev/null +++ b/mods/mouse-tweaks.pw.toml @@ -0,0 +1,13 @@ +name = "Mouse Tweaks" +filename = "MouseTweaks-forge-mc1.20-2.25.jar" +side = "client" + +[download] +url = "https://cdn.modrinth.com/data/aC3cM3Vq/versions/stb5nE30/MouseTweaks-forge-mc1.20-2.25.jar" +hash-format = "sha1" +hash = "f3e8805d706a36717306d92bd5c45cb2aef854b6" + +[update] +[update.modrinth] +mod-id = "aC3cM3Vq" +version = "stb5nE30" diff --git a/mods/patchouli.pw.toml b/mods/patchouli.pw.toml new file mode 100644 index 0000000..8f21ff6 --- /dev/null +++ b/mods/patchouli.pw.toml @@ -0,0 +1,13 @@ +name = "Patchouli" +filename = "Patchouli-1.20.1-84-FORGE.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/nU0bVIaL/versions/JMtc0mTS/Patchouli-1.20.1-84-FORGE.jar" +hash-format = "sha1" +hash = "b6b7267f3669c10c167d5d375d0274d40e3eb756" + +[update] +[update.modrinth] +mod-id = "nU0bVIaL" +version = "JMtc0mTS" diff --git a/mods/pipez.pw.toml b/mods/pipez.pw.toml new file mode 100644 index 0000000..e8d9674 --- /dev/null +++ b/mods/pipez.pw.toml @@ -0,0 +1,13 @@ +name = "Pipez" +filename = "pipez-forge-1.20.1-1.2.6.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/iRmWy6ga/versions/ffhUXzN9/pipez-forge-1.20.1-1.2.6.jar" +hash-format = "sha1" +hash = "89a597071f518781d1caff4ac3e669ce47316d07" + +[update] +[update.modrinth] +mod-id = "iRmWy6ga" +version = "ffhUXzN9" diff --git a/mods/robs-floating-islands.pw.toml b/mods/robs-floating-islands.pw.toml new file mode 100644 index 0000000..e06d6f4 --- /dev/null +++ b/mods/robs-floating-islands.pw.toml @@ -0,0 +1,13 @@ +name = "Rob's Floating Islands" +filename = "1.20.1-robs_floating_islands-v1.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/ZliMkJKA/versions/hfIXVLAb/1.20.1-robs_floating_islands-v1.jar" +hash-format = "sha1" +hash = "04e36ac5b8aaf96f502afcc88ec46b98d79c1f51" + +[update] +[update.modrinth] +mod-id = "ZliMkJKA" +version = "hfIXVLAb" diff --git a/mods/scalable-cats-force.pw.toml b/mods/scalable-cats-force.pw.toml new file mode 100644 index 0000000..6768f66 --- /dev/null +++ b/mods/scalable-cats-force.pw.toml @@ -0,0 +1,13 @@ +name = "Scalable Cat's Force" +filename = "ScalableCatsForce-3.3.1-build-0-with-library.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/zr0QMQMo/versions/1qV9Ew3X/ScalableCatsForce-3.3.1-build-0-with-library.jar" +hash-format = "sha1" +hash = "28154aba31d9165b801aa7800aa758263a23e48f" + +[update] +[update.modrinth] +mod-id = "zr0QMQMo" +version = "1qV9Ew3X" diff --git a/mods/simple-backups.pw.toml b/mods/simple-backups.pw.toml new file mode 100644 index 0000000..4608b1b --- /dev/null +++ b/mods/simple-backups.pw.toml @@ -0,0 +1,13 @@ +name = "Simple Backups" +filename = "SimpleBackups-1.20.1-3.1.4.jar" +side = "server" + +[download] +url = "https://cdn.modrinth.com/data/fzSKSXVK/versions/KEPO6Y5V/SimpleBackups-1.20.1-3.1.4.jar" +hash-format = "sha1" +hash = "1f3e63f1bb1777eb06f942770fa77b971a95b2be" + +[update] +[update.modrinth] +mod-id = "fzSKSXVK" +version = "KEPO6Y5V" diff --git a/mods/simple-sky-resource-generators.pw.toml b/mods/simple-sky-resource-generators.pw.toml new file mode 100644 index 0000000..6bbe205 --- /dev/null +++ b/mods/simple-sky-resource-generators.pw.toml @@ -0,0 +1,13 @@ +name = "Simple Sky Resource Generators" +filename = "SimpleResourceGeneratorsJAR1.12.jar" +side = "both" + +[download] +hash-format = "sha1" +hash = "25b9d1828f2ebca8ca41073b81f6e5e17fb7908b" +mode = "metadata:curseforge" + +[update] +[update.curseforge] +file-id = 5108586 +project-id = 948781 diff --git a/mods/skyblock-advancements.pw.toml b/mods/skyblock-advancements.pw.toml new file mode 100644 index 0000000..e0474da --- /dev/null +++ b/mods/skyblock-advancements.pw.toml @@ -0,0 +1,13 @@ +name = "SkyBlock Advancements" +filename = "skyblock-advancements-1.0.2+rp.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/xuhPkHjq/versions/mQKPsXRg/skyblock-advancements-1.0.2%2Brp.jar" +hash-format = "sha1" +hash = "53c3c8a8544629291992c773b2d0a3c88a0f48eb" + +[update] +[update.modrinth] +mod-id = "xuhPkHjq" +version = "mQKPsXRg" diff --git a/mods/stack-refill.pw.toml b/mods/stack-refill.pw.toml new file mode 100644 index 0000000..89f3105 --- /dev/null +++ b/mods/stack-refill.pw.toml @@ -0,0 +1,13 @@ +name = "Stack Refill" +filename = "stackrefill-1.20.1-4.2.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/mQWkB9ON/versions/PsJVmVzf/stackrefill-1.20.1-4.2.jar" +hash-format = "sha1" +hash = "b4853ad60c46a891f6d7859bf2dc06cdf9fbf801" + +[update] +[update.modrinth] +mod-id = "mQWkB9ON" +version = "PsJVmVzf" diff --git a/mods/standard-skyblock.pw.toml b/mods/standard-skyblock.pw.toml new file mode 100644 index 0000000..7b892fe --- /dev/null +++ b/mods/standard-skyblock.pw.toml @@ -0,0 +1,13 @@ +name = "SkyBlock - Standard" +filename = "standard-skyblock-1.0.4.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/bbtyQ1Po/versions/TmM7PeNC/standard-skyblock-1.0.4.jar" +hash-format = "sha1" +hash = "50383e0fb8d0a1000a07ab3c3835435f7b0c5ca1" + +[update] +[update.modrinth] +mod-id = "bbtyQ1Po" +version = "TmM7PeNC" diff --git a/mods/thermal-cultivation.pw.toml b/mods/thermal-cultivation.pw.toml new file mode 100644 index 0000000..08a0eba --- /dev/null +++ b/mods/thermal-cultivation.pw.toml @@ -0,0 +1,13 @@ +name = "Thermal Cultivation" +filename = "thermal_cultivation-1.20.1-11.0.0.22.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/5beJoehw/versions/68y2RhYV/thermal_cultivation-1.20.1-11.0.0.22.jar" +hash-format = "sha1" +hash = "2e48733ec79ec90e95d7c13e7d56aae8ba4bbf97" + +[update] +[update.modrinth] +mod-id = "5beJoehw" +version = "68y2RhYV" diff --git a/mods/thermal-dynamics.pw.toml b/mods/thermal-dynamics.pw.toml new file mode 100644 index 0000000..47eea01 --- /dev/null +++ b/mods/thermal-dynamics.pw.toml @@ -0,0 +1,13 @@ +name = "Thermal Dynamics" +filename = "thermal_dynamics-1.20.1-11.0.0.21.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/t8bmWGI2/versions/p9nikhT8/thermal_dynamics-1.20.1-11.0.0.21.jar" +hash-format = "sha1" +hash = "b3709affeeba600e9968d9caf53a8bf092597059" + +[update] +[update.modrinth] +mod-id = "t8bmWGI2" +version = "p9nikhT8" diff --git a/mods/thermal-expansion.pw.toml b/mods/thermal-expansion.pw.toml new file mode 100644 index 0000000..15ff44c --- /dev/null +++ b/mods/thermal-expansion.pw.toml @@ -0,0 +1,13 @@ +name = "Thermal Expansion" +filename = "thermal_expansion-1.20.1-11.0.0.27.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/hmD6rrUJ/versions/kg4h60cQ/thermal_expansion-1.20.1-11.0.0.27.jar" +hash-format = "sha1" +hash = "ed3b016296012a511642939224c9cae496c622f9" + +[update] +[update.modrinth] +mod-id = "hmD6rrUJ" +version = "kg4h60cQ" diff --git a/mods/thermal-foundation.pw.toml b/mods/thermal-foundation.pw.toml new file mode 100644 index 0000000..8b5ccc5 --- /dev/null +++ b/mods/thermal-foundation.pw.toml @@ -0,0 +1,13 @@ +name = "Thermal Foundation" +filename = "thermal_foundation-1.20.1-11.0.2.64.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/Xvg6q5Wp/versions/dUiPDb6I/thermal_foundation-1.20.1-11.0.2.64.jar" +hash-format = "sha1" +hash = "8dc55a88ac3a5f03bd95faadafb2ef379d36c4f7" + +[update] +[update.modrinth] +mod-id = "Xvg6q5Wp" +version = "dUiPDb6I" diff --git a/mods/thermal-innovation.pw.toml b/mods/thermal-innovation.pw.toml new file mode 100644 index 0000000..afab275 --- /dev/null +++ b/mods/thermal-innovation.pw.toml @@ -0,0 +1,13 @@ +name = "Thermal Innovation" +filename = "thermal_innovation-1.20.1-11.0.0.21.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/MNgLmnvM/versions/KY9kG3dq/thermal_innovation-1.20.1-11.0.0.21.jar" +hash-format = "sha1" +hash = "0f49396765456ae5100760b067776a505f7d7085" + +[update] +[update.modrinth] +mod-id = "MNgLmnvM" +version = "KY9kG3dq" diff --git a/mods/thermal-locomotion.pw.toml b/mods/thermal-locomotion.pw.toml new file mode 100644 index 0000000..2d1f74e --- /dev/null +++ b/mods/thermal-locomotion.pw.toml @@ -0,0 +1,13 @@ +name = "Thermal Locomotion" +filename = "thermal_locomotion-1.20.1-11.0.0.17.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/L3eFR8i3/versions/apiHU0aI/thermal_locomotion-1.20.1-11.0.0.17.jar" +hash-format = "sha1" +hash = "25de548306995c729581431b5cf076aef235f3cb" + +[update] +[update.modrinth] +mod-id = "L3eFR8i3" +version = "apiHU0aI" diff --git a/mods/titanium.pw.toml b/mods/titanium.pw.toml new file mode 100644 index 0000000..6a73584 --- /dev/null +++ b/mods/titanium.pw.toml @@ -0,0 +1,13 @@ +name = "Titanium" +filename = "titanium-1.20.1-3.8.27.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/1Ro7m06l/versions/P19ybyjg/titanium-1.20.1-3.8.27.jar" +hash-format = "sha1" +hash = "0ef5a3a3059819e64e76fd80c47e8d4501f46943" + +[update] +[update.modrinth] +mod-id = "1Ro7m06l" +version = "P19ybyjg" diff --git a/overlay/etc/container.d/25-mods.sh b/overlay/etc/container.d/25-mods.sh new file mode 100755 index 0000000..0ac1706 --- /dev/null +++ b/overlay/etc/container.d/25-mods.sh @@ -0,0 +1,6 @@ +#!/usr/bin/env bash + +if [ ! -d ${MINECRAFT_MODS_DIR} ]; then + echo "> creating mods dir" + mkdir -p ${MINECRAFT_MODS_DIR} +fi diff --git a/overlay/etc/container.d/30-pack.sh b/overlay/etc/container.d/30-pack.sh new file mode 100755 index 0000000..9da74b0 --- /dev/null +++ b/overlay/etc/container.d/30-pack.sh @@ -0,0 +1,23 @@ +#!/usr/bin/env bash + +if [ ! -d ${MINECRAFT_BACKUPS_DIR} ]; then + echo "> creating backups dir" + mkdir -p ${MINECRAFT_BACKUPS_DIR} +fi + +if [ ! -L ${MINECRAFT_GAME_DIR}/backups ]; then + echo "> creating backups symlink" + ln -sf ${MINECRAFT_BACKUPS_DIR} ${MINECRAFT_GAME_DIR}/backups +fi + +# if [ ! -d ${MINECRAFT_DYNMAP_DIR} ]; then +# echo "> creating dynmap dir" +# mkdir -p ${MINECRAFT_DYNMAP_DIR} +# fi + +# if [ ! -L ${MINECRAFT_GAME_DIR}/dynmap ]; then +# echo "> creating dynmap symlink" +# ln -sf ${MINECRAFT_DYNMAP_DIR} ${MINECRAFT_GAME_DIR}/dynmap +# fi + +true diff --git a/overlay/etc/entrypoint.d/20-forge.sh b/overlay/etc/entrypoint.d/20-forge.sh new file mode 100755 index 0000000..7c18ee9 --- /dev/null +++ b/overlay/etc/entrypoint.d/20-forge.sh @@ -0,0 +1,6 @@ +#!/usr/bin/env bash + +declare -x MINECRAFT_MODS_DIR +[[ -z "${MINECRAFT_MODS_DIR}" ]] && MINECRAFT_MODS_DIR="${MINECRAFT_GAME_DIR}/mods" + +true diff --git a/overlay/etc/entrypoint.d/30-pack.sh b/overlay/etc/entrypoint.d/30-pack.sh new file mode 100755 index 0000000..0157ce0 --- /dev/null +++ b/overlay/etc/entrypoint.d/30-pack.sh @@ -0,0 +1,9 @@ +#!/usr/bin/env bash + +declare -x MINECRAFT_BACKUPS_DIR +[[ -z "${MINECRAFT_BACKUPS_DIR}" ]] && MINECRAFT_BACKUPS_DIR="${MINECRAFT_DATA_DIR}/backups" + +# declare -x MINECRAFT_DYNMAP_DIR +# [[ -z "${MINECRAFT_DYNMAP_DIR}" ]] && MINECRAFT_DYNMAP_DIR="${MINECRAFT_DATA_DIR}/dynmap" + +true diff --git a/overlay/usr/bin/container b/overlay/usr/bin/container new file mode 100755 index 0000000..ffefa15 --- /dev/null +++ b/overlay/usr/bin/container @@ -0,0 +1,22 @@ +#!/usr/bin/env bash +set -eo pipefail +source /usr/bin/entrypoint + +for FILE in $(find /etc/container.d -type f -iname \*.sh | sort); do + source ${FILE} +done + +pushd ${MINECRAFT_GAME_DIR} >/dev/null + STARTCMD="su-exec minecraft java" + + if [ -n "${MINECRAFT_MAXHEAP}" ]; then + STARTCMD="${STARTCMD} -Xmx${MINECRAFT_MAXHEAP}" + fi + + if [ -n "${MINECRAFT_MINHEAP}" ]; then + STARTCMD="${STARTCMD} -Xms${MINECRAFT_MINHEAP}" + fi + + echo "> starting minecraft server" + exec ${STARTCMD} ${JAVA_OPTS} @libraries/net/neoforged/forge/${MINECRAFT_VERSION}-${FORGE_VERSION}/unix_args.txt ${MINECRAFT_OPTS} +popd >/dev/null diff --git a/pack.toml b/pack.toml new file mode 100644 index 0000000..5495b34 --- /dev/null +++ b/pack.toml @@ -0,0 +1,13 @@ +name = "skyblock" +author = "Thomas Boerger" +version = "1.0.0" +pack-format = "packwiz:1.1.0" + +[index] +file = "index.toml" +hash-format = "sha256" +hash = "d387056e7cfa720f25f20369144bf8cfa635fe584b834ec9ae3279c550c13688" + +[versions] +minecraft = "1.20.1" +neoforge = "47.1.103" diff --git a/packwiz.json b/packwiz.json new file mode 100644 index 0000000..6c5931e --- /dev/null +++ b/packwiz.json @@ -0,0 +1 @@ +{"packFileHash":{"type":"sha256","value":"a0051c5f79679b31c7409a1b833543b48152f7f13c0ebfbbc2f4d781ed6102b8"},"indexFileHash":{"type":"sha256","value":"d387056e7cfa720f25f20369144bf8cfa635fe584b834ec9ae3279c550c13688"},"cachedFiles":{"mods/double-doors.pw.toml":{"hash":{"type":"sha256","value":"63577d4abd5be5c2b061bd3d5f6bdf0878b7ab0e8e2e0b7f98bdeb50e009134f"},"linkedFileHash":{"type":"sha1","value":"49d231d85242fbd6a6e3ac212ed03837f157114e"},"optionValue":true,"onlyOtherSide":true},"mods/simple-backups.pw.toml":{"hash":{"type":"sha256","value":"1f5873ba978d67743652798c8161188de2a5f9d813736e36a084ce3db99692ce"},"linkedFileHash":{"type":"sha1","value":"1f3e63f1bb1777eb06f942770fa77b971a95b2be"},"optionValue":true,"onlyOtherSide":true},"mods/skyblock-advancements.pw.toml":{"hash":{"type":"sha256","value":"1627f9befe8864dad8512123c82d7fb05f0432994a66460a0b013541dd9acd01"},"linkedFileHash":{"type":"sha1","value":"53c3c8a8544629291992c773b2d0a3c88a0f48eb"},"cachedLocation":"mods/skyblock-advancements-1.0.2+rp.jar","optionValue":true},"mods/standard-skyblock.pw.toml":{"hash":{"type":"sha256","value":"9898498a6597374b14cf5ee4ffde7bcfb2342e35742aa2cd8d5c2839b8da3e36"},"linkedFileHash":{"type":"sha1","value":"50383e0fb8d0a1000a07ab3c3835435f7b0c5ca1"},"cachedLocation":"mods/standard-skyblock-1.0.4.jar","optionValue":true},"mods/stack-refill.pw.toml":{"hash":{"type":"sha256","value":"60b06c8d72bd8930b32e2311f6ed9ef815f3822847281fa1e9a949fbe072bef5"},"linkedFileHash":{"type":"sha1","value":"b4853ad60c46a891f6d7859bf2dc06cdf9fbf801"},"cachedLocation":"mods/stackrefill-1.20.1-4.2.jar","optionValue":true},"mods/mouse-tweaks.pw.toml":{"hash":{"type":"sha256","value":"d71fd32a56325b8fe378cfafe78f81d985436b2fd44638f5bab1f1386680b096"},"linkedFileHash":{"type":"sha1","value":"f3e8805d706a36717306d92bd5c45cb2aef854b6"},"cachedLocation":"mods/MouseTweaks-forge-mc1.20-2.25.jar","optionValue":true},"mods/titanium.pw.toml":{"hash":{"type":"sha256","value":"72541a390659918193165af5197af4ed7d23a1d762d39e045b4168488cd4d08a"},"linkedFileHash":{"type":"sha1","value":"0ef5a3a3059819e64e76fd80c47e8d4501f46943"},"cachedLocation":"mods/titanium-1.20.1-3.8.27.jar","optionValue":true},"mods/patchouli.pw.toml":{"hash":{"type":"sha256","value":"4d0b66ba4cb3c2965bf961d4bb991babb6a60f8a20709d1e295ed7fc8b6d8929"},"linkedFileHash":{"type":"sha1","value":"b6b7267f3669c10c167d5d375d0274d40e3eb756"},"cachedLocation":"mods/Patchouli-1.20.1-84-FORGE.jar","optionValue":true},"mods/jade.pw.toml":{"hash":{"type":"sha256","value":"c0a0a1e85892a9546c1c69761db4d676e8ff63f67dd203b9d1ad1dc0b07d7b0f"},"linkedFileHash":{"type":"sha1","value":"bc7eca506af9e754b6283af15ba5a35532a96683"},"cachedLocation":"mods/Jade-1.20.1-forge-11.8.0.jar","optionValue":true},"mods/collective.pw.toml":{"hash":{"type":"sha256","value":"5333619ce0f7e191d409fac6cd1c5981b15fd9baee160114e4a5010d9b44761d"},"linkedFileHash":{"type":"sha1","value":"19e0c11ee46e360daf5e9b2f3c8ea11a046e3b73"},"cachedLocation":"mods/collective-1.20.1-7.40.jar","optionValue":true},"mods/jei.pw.toml":{"hash":{"type":"sha256","value":"e93f24623fe48bd7eee6e54e80c223ce71e639e210372124b8f22dd6b72924cc"},"linkedFileHash":{"type":"sha1","value":"1a431d34991d51998f9971c4291bac2d58eaa154"},"cachedLocation":"mods/jei-1.20.1-forge-15.3.0.4.jar","optionValue":true},"mods/industrial-foregoing.pw.toml":{"hash":{"type":"sha256","value":"cd487952f1096d06d0507170caf1e49f5f2cebc97eb4323b1e697491990ac0ee"},"linkedFileHash":{"type":"sha1","value":"596db00aaee9e54e4e571662c4e8a14a9dfe4a1c"},"cachedLocation":"mods/industrial-foregoing-1.20.1-3.5.15.jar","optionValue":true},"mods/journeymap.pw.toml":{"hash":{"type":"sha256","value":"290e39267f98ae5f3037b12d3a2cd04570f21710e38446188a75b6fc460ddb10"},"linkedFileHash":{"type":"sha1","value":"cccc91a8ab88e145b6358419ae8e52c7ce302d36"},"cachedLocation":"mods/journeymap-1.20.1-5.9.18-neoforge.jar","optionValue":true},"mods/ae2-qol-recipes.pw.toml":{"hash":{"type":"sha256","value":"1eb5e34d66c8fd484ca1a047454b0e9fad0f9e7d7c4f1486c9b870424c073d5c"},"linkedFileHash":{"type":"sha1","value":"2ac89ca62a9049674e4411b8de2825111023b104"},"optionValue":true,"onlyOtherSide":true},"mods/better-advancements.pw.toml":{"hash":{"type":"sha256","value":"2bef9c1f47174d832175c2a6c05eb6504e1d37c59ba1cb3287315590532eb574"},"linkedFileHash":{"type":"sha1","value":"84a6293b9b662c93aa30aa047436b6d8c19e5088"},"cachedLocation":"mods/BetterAdvancements-1.20.1-0.3.2.162.jar","optionValue":true},"mods/applied-energistics-2-wireless-terminals.pw.toml":{"hash":{"type":"sha256","value":"13cabf66a63def3178ece0c77dd31690b30198dd53a750de871af2e07003aa51"},"linkedFileHash":{"type":"sha1","value":"13ec42170a85bdccae3a22bc4ea3fcc9ac53eea0"},"cachedLocation":"mods/ae2wtlib-15.2.2-forge.jar","optionValue":true},"mods/balm.pw.toml":{"hash":{"type":"sha256","value":"1447df8a4bd1fd2cce2ae71f900f3d1f1626baa2fe37c877cef19549a4101c36"},"linkedFileHash":{"type":"sha1","value":"c0bb062b52fa0a234d922e066d3e09c3df4297d9"},"cachedLocation":"mods/balm-forge-1.20.1-7.2.2.jar","optionValue":true},"mods/architectury-api.pw.toml":{"hash":{"type":"sha256","value":"fa34a3117af7f8ed553ec563a7c90c1d6462184c7df5b837c831cb482c6ae582"},"linkedFileHash":{"type":"sha1","value":"a52918a500ff421180a1cbd1a0cabee712134ec4"},"cachedLocation":"mods/architectury-9.2.14-forge.jar","optionValue":true},"mods/cloth-config.pw.toml":{"hash":{"type":"sha256","value":"38cf4a76862812fefc9b1ae0b8fac02b3f706716f3228eb859b511950273e791"},"linkedFileHash":{"type":"sha1","value":"c46ca3fba95691873a765f4e79750c615f33e446"},"cachedLocation":"mods/cloth-config-11.1.118-forge.jar","optionValue":true},"mods/crafting-station.pw.toml":{"hash":{"type":"sha256","value":"ac40f69fcbf5eef36d3e884a3ae0fa7620fc54a3596fe9ab1b2d5251e5fc136e"},"linkedFileHash":{"type":"sha1","value":"56b186b8037b307a7fd3b55dfde6ad4bb618231f"},"cachedLocation":"mods/craftingstation-1.20.1-1.jar","optionValue":true},"mods/cucumber.pw.toml":{"hash":{"type":"sha256","value":"be21ddae677bf501dcb79ce4ac534e0ea16b21e0823223bd0a7b15d72b1c187e"},"linkedFileHash":{"type":"sha1","value":"560c2ba6960508d6fb7ab7fdf3af7b4b6114689e"},"cachedLocation":"mods/Cucumber-1.20.1-7.0.7.jar","optionValue":true},"mods/cofh-core.pw.toml":{"hash":{"type":"sha256","value":"0c7c61055551d9e018a1f25716151a0e5778ce5964394ce30508282d696ac91c"},"linkedFileHash":{"type":"sha1","value":"c2ccd722e4043fd5c8e5051dd7fce2ac312706bb"},"cachedLocation":"mods/cofh_core-1.20.1-11.0.0.51.jar","optionValue":true},"mods/creativecore.pw.toml":{"hash":{"type":"sha256","value":"89b83a171841fbe236a853110653cba96017beb2b15318cc165909b226527a57"},"linkedFileHash":{"type":"sha1","value":"c6700d5b71cb9bd910079abb85f48d76bdafe6a9"},"cachedLocation":"mods/CreativeCore_FORGE_v2.11.25_mc1.20.1.jar","optionValue":true},"mods/functional-storage.pw.toml":{"hash":{"type":"sha256","value":"0c6e147755de5791b1b421e603902307be55ac037ee016c4621486a7a45f1ed0"},"linkedFileHash":{"type":"sha1","value":"0356c36144adccf2fb33fae12135ce65f9ba52ee"},"cachedLocation":"mods/functionalstorage-1.20.1-1.2.10.jar","optionValue":true},"mods/cobblefordays.pw.toml":{"hash":{"type":"sha256","value":"30f0c1dc08936db9002056ff41197e0fd9768e47c5b08d277bd5e547464c5118"},"linkedFileHash":{"type":"sha1","value":"8c683b5a8205544af762ed0c74371e1b76367341"},"cachedLocation":"mods/CobbleForDays-1.8.0.jar","optionValue":true},"mods/inventory-essentials.pw.toml":{"hash":{"type":"sha256","value":"c3d3f1e329d4a4e7a46edf38fb907e6324e5c60e098c5e66fb43dd083905a17e"},"linkedFileHash":{"type":"sha1","value":"6c0a665339ccce532bc8372a1cc5f75ccc539a7b"},"cachedLocation":"mods/inventoryessentials-forge-1.20.1-8.2.3.jar","optionValue":true},"mods/iron-jetpacks.pw.toml":{"hash":{"type":"sha256","value":"727011fc4720b16396e810fd3ca3119430e95def38e43923b21bb2d9253cd061"},"linkedFileHash":{"type":"sha1","value":"10653d4ee21236cb5bd9a6f4d950dc0b3a48cb33"},"cachedLocation":"mods/IronJetpacks-1.20.1-7.0.3.jar","optionValue":true},"mods/inventory-sorter.pw.toml":{"hash":{"type":"sha256","value":"537f95eb95c08a7510b7151d2960904d2fae3ccd515a5f369063c11f707584fb"},"linkedFileHash":{"type":"sha1","value":"32e30b71d7ef67b306a24191c655528509454cb5"},"cachedLocation":"mods/inventorysorter-1.20.1-23.0.1.jar","optionValue":true},"mods/just-enough-professions-jep.pw.toml":{"hash":{"type":"sha256","value":"76ad5b491a38df4f6debfae8808cb455c9b7ecd6c039a814ce1639278ac1f86c"},"linkedFileHash":{"type":"sha1","value":"dd8b3252f980da6ff4bc39127a84d786cf0bd06f"},"cachedLocation":"mods/JustEnoughProfessions-forge-1.20.1-3.0.1.jar","optionValue":true},"mods/infinite-source-of-water.pw.toml":{"hash":{"type":"sha256","value":"3b91aff467aec219c571a3fa63a1d8510a0865e15bb52aa98fedd7a286603dc1"},"linkedFileHash":{"type":"sha1","value":"242a707b11b94653a406743ad6e3d4d863997495"},"cachedLocation":"mods/water_sources_1.20.1_1.0.0.jar","optionValue":true},"mods/bdlib.pw.toml":{"hash":{"type":"sha256","value":"5fd19cba1eeaf7a0ab1842cc6941035457c114ed4bec845c0a909601bd613eee"},"linkedFileHash":{"type":"sha1","value":"d29b7226d10005a649ec089e626efa534ee88598"},"cachedLocation":"mods/bdlib-1.27.0.8-mc1.20.1.jar","optionValue":true},"mods/just-enough-resources-jer.pw.toml":{"hash":{"type":"sha256","value":"83219231c7af4677a2507e01ca0faf39acca69f05506148d1d6a3e47b4c94562"},"linkedFileHash":{"type":"sha1","value":"526e788a9b38afc5171fab49b64a5a54e1bb25d7"},"cachedLocation":"mods/JustEnoughResources-1.20.1-1.4.0.247.jar","optionValue":true},"mods/merequester.pw.toml":{"hash":{"type":"sha256","value":"3f7bdeb890594497caa9fb7a05e340480d520b0a35c4ed47e044c041badeb5da"},"linkedFileHash":{"type":"sha1","value":"d6633dee57b9ac6b19d530c7f801064c3726ce4f"},"cachedLocation":"mods/merequester-forge-1.20.1-1.1.4.jar","optionValue":true},"mods/advanced-generators.pw.toml":{"hash":{"type":"sha256","value":"3cc51a51acae9cdd9f0035431db7a203af8e6cc70b21136867796fefc13b74e4"},"linkedFileHash":{"type":"sha1","value":"d4aba356b0bc53757973146ec163b8d6410af852"},"cachedLocation":"mods/advgenerators-1.6.0.6-mc1.20.1.jar","optionValue":true},"mods/laserio.pw.toml":{"hash":{"type":"sha256","value":"9d85a210e77661032cfbcd930059096be6cfb6afd9abedde21bcdfa4e5b25e54"},"linkedFileHash":{"type":"sha1","value":"f9e8dc07506eaa058f64e875e1f46dcd44ab6003"},"cachedLocation":"mods/laserio-1.6.8.jar","optionValue":true},"mods/lava-sources.pw.toml":{"hash":{"type":"sha256","value":"2bc0d0897db0164683e80ffa31f5ab632c0192c0093294a7043d8a39f445496b"},"linkedFileHash":{"type":"sha1","value":"6ab19f0fd2f4b78e666ab35697d47b2259310524"},"cachedLocation":"mods/lava_sources_1.20.1_1.0.0.jar","optionValue":true},"mods/modular-routers.pw.toml":{"hash":{"type":"sha256","value":"ddb72b212c3bf6077beebbdc04c178748834030aea9b8b88c8f66fb5aa0da78a"},"linkedFileHash":{"type":"sha1","value":"037b801a55ca30952b98c427a77ac206cb1248c3"},"cachedLocation":"mods/modular-routers-12.1.1+mc1.20.1.jar","optionValue":true},"mods/robs-floating-islands.pw.toml":{"hash":{"type":"sha256","value":"0d37a3fb5d8ce4746c98a5cb13cb4c4595ab4eb3abd6766220a91dbb2d5f6cd0"},"linkedFileHash":{"type":"sha1","value":"04e36ac5b8aaf96f502afcc88ec46b98d79c1f51"},"cachedLocation":"mods/1.20.1-robs_floating_islands-v1.jar","optionValue":true},"mods/littletiles.pw.toml":{"hash":{"type":"sha256","value":"4ef06d17aa2c7e075044e3a53754f940bdacc04d99d8f7a0fd2a8b239a612434"},"linkedFileHash":{"type":"sha1","value":"0a3d117b08537c49d15ca887b7187f73381169b1"},"cachedLocation":"mods/LittleTiles_BETA_v1.6.0-pre100_mc1.20.1.jar","optionValue":true},"mods/ae2.pw.toml":{"hash":{"type":"sha256","value":"02c39db9f22b783337f78f45ba24fd738255ac19f9907d6cbc8042fb33ce9d9f"},"linkedFileHash":{"type":"sha1","value":"ded5e9f4ed871af53016a24e9b2531dc6b2843b2"},"cachedLocation":"mods/appliedenergistics2-forge-15.0.23.jar","optionValue":true},"mods/thermal-cultivation.pw.toml":{"hash":{"type":"sha256","value":"7b86c138ab74afff0648607d821603256d0625341a6829674bd5eace393abf6a"},"linkedFileHash":{"type":"sha1","value":"2e48733ec79ec90e95d7c13e7d56aae8ba4bbf97"},"cachedLocation":"mods/thermal_cultivation-1.20.1-11.0.0.22.jar","optionValue":true},"mods/simple-sky-resource-generators.pw.toml":{"hash":{"type":"sha256","value":"54a8ead02e9cf26842ff586de70a5f137b38e99ac2f774c8d5ac12cc58ec0a36"},"linkedFileHash":{"type":"sha1","value":"25b9d1828f2ebca8ca41073b81f6e5e17fb7908b"},"cachedLocation":"mods/SimpleResourceGeneratorsJAR1.12.jar","optionValue":true},"mods/thermal-dynamics.pw.toml":{"hash":{"type":"sha256","value":"9e4ae142be277f08c4ac01aea83bb4edb90feb445890b2603fc7dc254f1e823d"},"linkedFileHash":{"type":"sha1","value":"b3709affeeba600e9968d9caf53a8bf092597059"},"cachedLocation":"mods/thermal_dynamics-1.20.1-11.0.0.21.jar","optionValue":true},"mods/thermal-expansion.pw.toml":{"hash":{"type":"sha256","value":"88c732d3804d749d8314bb9e8d0749b5711b47068e2582c559c9e093488d0519"},"linkedFileHash":{"type":"sha1","value":"ed3b016296012a511642939224c9cae496c622f9"},"cachedLocation":"mods/thermal_expansion-1.20.1-11.0.0.27.jar","optionValue":true},"mods/thermal-innovation.pw.toml":{"hash":{"type":"sha256","value":"e3dcd8211729e5fa570499ff2602c91f27d3be6db687c342f76735e8581a9f9d"},"linkedFileHash":{"type":"sha1","value":"0f49396765456ae5100760b067776a505f7d7085"},"cachedLocation":"mods/thermal_innovation-1.20.1-11.0.0.21.jar","optionValue":true},"mods/thermal-locomotion.pw.toml":{"hash":{"type":"sha256","value":"1a5f6ac96bf75bf37c8e487beb1754dc2522884b2b8ab5ebacc3ee9477e0e0e1"},"linkedFileHash":{"type":"sha1","value":"25de548306995c729581431b5cf076aef235f3cb"},"cachedLocation":"mods/thermal_locomotion-1.20.1-11.0.0.17.jar","optionValue":true},"mods/immersiveengineering.pw.toml":{"hash":{"type":"sha256","value":"c2269a9e657db40350aea860ad7b115abbc8aaad5a131d68b503841751ad182b"},"linkedFileHash":{"type":"sha1","value":"a9fbb70fee4ad68d0f860e711c4bae524117525f"},"cachedLocation":"mods/ImmersiveEngineering-1.20.1-10.0.0-169.jar","optionValue":true},"mods/thermal-foundation.pw.toml":{"hash":{"type":"sha256","value":"7ab7310d8e23e297e73fa93475c779c091ee1844738f233b20a5b05a4a2752a5"},"linkedFileHash":{"type":"sha1","value":"8dc55a88ac3a5f03bd95faadafb2ef379d36c4f7"},"cachedLocation":"mods/thermal_foundation-1.20.1-11.0.2.64.jar","optionValue":true},"mods/scalable-cats-force.pw.toml":{"hash":{"type":"sha256","value":"0efdfd042ff64bcbd20ea342d47214c362a124f63568ccf3f1516caf134dc596"},"linkedFileHash":{"type":"sha1","value":"28154aba31d9165b801aa7800aa758263a23e48f"},"cachedLocation":"mods/ScalableCatsForce-3.3.1-build-0-with-library.jar","optionValue":true},"mods/curios.pw.toml":{"hash":{"type":"sha256","value":"18b1ca556e2221cedba762a96b55df57bb4cf0ad390ed70f2d704b6b286ef679"},"linkedFileHash":{"type":"sha1","value":"8156335449154bef3cbfec538700173870f4e417"},"cachedLocation":"mods/curios-forge-5.7.2+1.20.1.jar","optionValue":true},"mods/pipez.pw.toml":{"hash":{"type":"sha256","value":"8f206f9520244cdd99a9fb2714a72f383001d2c0278438bbd7dba04bdf8f601b"},"linkedFileHash":{"type":"sha1","value":"89a597071f518781d1caff4ac3e669ce47316d07"},"cachedLocation":"mods/pipez-forge-1.20.1-1.2.6.jar","optionValue":true}},"cachedSide":"client"} \ No newline at end of file