mirror of
https://github.com/Merith-TK/modpack-template.git
synced 2024-11-22 22:29:30 +00:00
This commit is contained in:
commit
fbd1f63b3b
17 changed files with 390 additions and 0 deletions
39
.github/workflows/build.yml
vendored
Normal file
39
.github/workflows/build.yml
vendored
Normal file
|
@ -0,0 +1,39 @@
|
|||
name: Build Modpack
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
push:
|
||||
branches:
|
||||
- main # Change this to your preferred branch
|
||||
tags-ignore:
|
||||
- 'v*'
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v2
|
||||
|
||||
- name: Set up JDK
|
||||
uses: actions/setup-java@v2
|
||||
with:
|
||||
distribution: 'temurin'
|
||||
java-version: '16' # Change to '8' for Java 8
|
||||
|
||||
- name: Install 7z
|
||||
run: |
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y p7zip-full
|
||||
|
||||
- name: Install Go
|
||||
uses: actions/setup-go@v2
|
||||
with:
|
||||
go-version: '1.23'
|
||||
|
||||
- name: Update Packwiz
|
||||
run: make update-packwiz
|
||||
|
||||
- name: Make Modpack
|
||||
run: make preClean multimc curseforge modrinth postClean
|
46
.github/workflows/release.yml
vendored
Normal file
46
.github/workflows/release.yml
vendored
Normal file
|
@ -0,0 +1,46 @@
|
|||
name: Release Modpack
|
||||
|
||||
on:
|
||||
push:
|
||||
tags:
|
||||
- 'v*'
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v2
|
||||
|
||||
- name: Set up JDK
|
||||
uses: actions/setup-java@v2
|
||||
with:
|
||||
distribution: 'temurin'
|
||||
java-version: '16' # Change to '8' for Java 8
|
||||
|
||||
- name: Install 7z
|
||||
run: |
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y p7zip-full
|
||||
|
||||
- name: Install Go
|
||||
uses: actions/setup-go@v2
|
||||
with:
|
||||
go-version: '1.23'
|
||||
|
||||
- name: Update Packwiz
|
||||
run: make update-packwiz
|
||||
|
||||
- name: Make Modpack
|
||||
run: make preClean multimc curseforge modrinth postClean
|
||||
|
||||
- name: Make Modlist
|
||||
run: make release-file
|
||||
|
||||
- name: Create Release
|
||||
uses: ncipollo/release-action@v1
|
||||
with:
|
||||
artifacts: ".build/*"
|
||||
allowUpdates: true
|
||||
bodyFile: ".build/CHANGELOG.md"
|
22
.gitignore
vendored
Normal file
22
.gitignore
vendored
Normal file
|
@ -0,0 +1,22 @@
|
|||
## Prevent Vanillia Minecraft folders from being tracked
|
||||
.minecraft/coremods
|
||||
.minecraft/logs
|
||||
.minecraft/resourcepacks
|
||||
.minecraft/saves
|
||||
.minecraft/screenshots
|
||||
.minecraft/server-resource-packs
|
||||
.minecraft/texturepacks
|
||||
.minecraft/realms_persistence.json
|
||||
|
||||
## Ignore Modpack Updater Script loose files
|
||||
.build
|
||||
.run
|
||||
.server
|
||||
.technic
|
||||
|
||||
*.zip
|
||||
*.mrpack
|
||||
|
||||
## Add your modded folders/files to ignore here
|
||||
.minecraft/packwiz-installer.jar
|
||||
.minecraft/packwiz.json
|
7
.gitpod.Dockerfile
vendored
Normal file
7
.gitpod.Dockerfile
vendored
Normal file
|
@ -0,0 +1,7 @@
|
|||
FROM gitpod/workspace-go
|
||||
|
||||
RUN sudo apt-get -q update && \
|
||||
sudo apt install p7zip-full make && \
|
||||
sudo apt install -yq openjdk-17-jdk
|
||||
|
||||
RUN sudo update-java-alternatives --set java-1.17.0-openjdk-amd64
|
5
.gitpod.yml
Normal file
5
.gitpod.yml
Normal file
|
@ -0,0 +1,5 @@
|
|||
image:
|
||||
file: .gitpod.Dockerfile
|
||||
|
||||
tasks:
|
||||
- command: make update-packwiz
|
BIN
.minecraft/icon.png
Normal file
BIN
.minecraft/icon.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 32 KiB |
19
.minecraft/index.toml
Normal file
19
.minecraft/index.toml
Normal file
|
@ -0,0 +1,19 @@
|
|||
hash-format = "sha256"
|
||||
|
||||
[[files]]
|
||||
file = "icon.png"
|
||||
hash = "50f74a7debb4a852e1384434500515f2478b8dcf0d71b75eba148ca34d89715c"
|
||||
|
||||
[[files]]
|
||||
file = "mods/lithium.pw.toml"
|
||||
hash = "b3b33c53f8356928f86223f26eaebd7a266d610f8628e5077cda196192b0b7e4"
|
||||
metafile = true
|
||||
|
||||
[[files]]
|
||||
file = "mods/sodium.pw.toml"
|
||||
hash = "d24ad43869dfe068c041cc7da0a7ed5926f742d1676eb765ad66515e1e9568a6"
|
||||
metafile = true
|
||||
|
||||
[[files]]
|
||||
file = "packwiz-installer-bootstrap.jar"
|
||||
hash = "a8fbb24dc604278e97f4688e82d3d91a318b98efc08d5dbfcbcbcab6443d116c"
|
13
.minecraft/mods/lithium.pw.toml
Normal file
13
.minecraft/mods/lithium.pw.toml
Normal file
|
@ -0,0 +1,13 @@
|
|||
name = "Lithium"
|
||||
filename = "lithium-fabric-mc1.21.1-0.13.0.jar"
|
||||
side = "both"
|
||||
|
||||
[download]
|
||||
url = "https://cdn.modrinth.com/data/gvQqBUqZ/versions/5szYtenV/lithium-fabric-mc1.21.1-0.13.0.jar"
|
||||
hash-format = "sha1"
|
||||
hash = "25ab173627db3ed587380ddf635844d7a97ec6c4"
|
||||
|
||||
[update]
|
||||
[update.modrinth]
|
||||
mod-id = "gvQqBUqZ"
|
||||
version = "5szYtenV"
|
13
.minecraft/mods/sodium.pw.toml
Normal file
13
.minecraft/mods/sodium.pw.toml
Normal file
|
@ -0,0 +1,13 @@
|
|||
name = "Sodium"
|
||||
filename = "sodium-fabric-0.6.0-beta.1+mc1.21.jar"
|
||||
side = "client"
|
||||
|
||||
[download]
|
||||
url = "https://cdn.modrinth.com/data/AANobbMI/versions/oZOSEhyy/sodium-fabric-0.6.0-beta.1%2Bmc1.21.jar"
|
||||
hash-format = "sha1"
|
||||
hash = "1f3eae51029d9fad59a3c448010eb6b6b45e3035"
|
||||
|
||||
[update]
|
||||
[update.modrinth]
|
||||
mod-id = "AANobbMI"
|
||||
version = "oZOSEhyy"
|
13
.minecraft/pack.toml
Normal file
13
.minecraft/pack.toml
Normal file
|
@ -0,0 +1,13 @@
|
|||
name = "Modpack Template"
|
||||
author = "Merith.TK"
|
||||
version = "1.0.0"
|
||||
pack-format = "packwiz:1.1.0"
|
||||
|
||||
[index]
|
||||
file = "index.toml"
|
||||
hash-format = "sha256"
|
||||
hash = "c108bf23bd93b176bf893a8863c8eb3d1c3fb2abb7a4bb9651135daeca814e82"
|
||||
|
||||
[versions]
|
||||
fabric = "0.16.4"
|
||||
minecraft = "1.21.1"
|
BIN
.minecraft/packwiz-installer-bootstrap.jar
Normal file
BIN
.minecraft/packwiz-installer-bootstrap.jar
Normal file
Binary file not shown.
24
LICENSE
Normal file
24
LICENSE
Normal file
|
@ -0,0 +1,24 @@
|
|||
This is free and unencumbered software released into the public domain.
|
||||
|
||||
Anyone is free to copy, modify, publish, use, compile, sell, or
|
||||
distribute this software, either in source code form or as a compiled
|
||||
binary, for any purpose, commercial or non-commercial, and by any
|
||||
means.
|
||||
|
||||
In jurisdictions that recognize copyright laws, the author or authors
|
||||
of this software dedicate any and all copyright interest in the
|
||||
software to the public domain. We make this dedication for the benefit
|
||||
of the public at large and to the detriment of our heirs and
|
||||
successors. We intend this dedication to be an overt act of
|
||||
relinquishment in perpetuity of all present and future rights to this
|
||||
software under copyright law.
|
||||
|
||||
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 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.
|
||||
|
||||
For more information, please refer to <https://unlicense.org>
|
109
Makefile
Normal file
109
Makefile
Normal file
|
@ -0,0 +1,109 @@
|
|||
default:
|
||||
@echo "No Default make command configured"
|
||||
@echo "Please use either"
|
||||
@echo " - make multimc"
|
||||
@echo " - make local multimc"
|
||||
@echo " - make curseforge"
|
||||
@echo " - make modrinth"
|
||||
@echo " - make local technic"
|
||||
@echo " - make technic"
|
||||
@echo " - make server"
|
||||
@echo " - make all"
|
||||
@echo ""
|
||||
|
||||
PACKNAME := $(notdir $(shell pwd))
|
||||
ICONNAME := $(shell echo $(PACKNAME) | sed 's/[^a-zA-Z0-9]/_/g')
|
||||
|
||||
build: refresh
|
||||
@mkdir -p .build
|
||||
@echo "PACKNAME: ${PACKNAME}"
|
||||
@echo "ICONNAME: ${ICONNAME}"
|
||||
@echo "PACKURL: $(shell pw detect)"
|
||||
|
||||
curseforge: build
|
||||
@echo "Making Curseforge pack"
|
||||
packwiz curseforge export --pack-file .minecraft/pack.toml
|
||||
mv ./*.zip ./.build/${PACKNAME}-curseforge.zip
|
||||
|
||||
modrinth: build
|
||||
@echo "Making Modrinth pack"
|
||||
packwiz modrinth export --pack-file .minecraft/pack.toml
|
||||
mv ./*.mrpack ./.build/${PACKNAME}-modrinth.mrpack
|
||||
|
||||
multimc: build
|
||||
@echo "Making MultiMC pack"
|
||||
cp .minecraft/icon.png ./${ICONNAME}_icon.png
|
||||
7z d .build/${PACKNAME}-multimc.zip ./* -r
|
||||
7z d .build/${PACKNAME}-multimc.zip ./.minecraft -r
|
||||
@sed -i 's#{PACKURL}#$(shell pw detect)#g' instance.cfg
|
||||
@sed -i 's#{ICONNAME}#${ICONNAME}#g' instance.cfg
|
||||
7z a .build/${PACKNAME}-multimc.zip ./* -r
|
||||
7z a .build/${PACKNAME}-multimc.zip ./.minecraft -r
|
||||
7z d .build/${PACKNAME}-multimc.zip ./.build ./.minecraft/mods ./.minecraft/pack.toml ./.minecraft/index.toml -r
|
||||
rm ./${ICONNAME}_icon.png
|
||||
@sed -i 's#$(shell pw detect)#{PACKURL}#g' instance.cfg
|
||||
@sed -i 's#${ICONNAME}#{ICONNAME}#g' instance.cfg
|
||||
|
||||
technic: build
|
||||
@echo "Making Technic pack"
|
||||
@mkdir -p .technic
|
||||
-rm -rf .technic
|
||||
cp -r .minecraft .technic
|
||||
cp .minecraft/icon.png .technic/icon.png
|
||||
cd .technic && java -jar ../.minecraft/packwiz-installer-bootstrap.jar ../.minecraft/pack.toml && cd ..
|
||||
-rm -rf .technic/packwiz* .technic/index.toml .technic/pack.toml .technic/mods/*.toml
|
||||
7z d .build/${PACKNAME}-technic.zip ./* ./.* -r
|
||||
7z a .build/${PACKNAME}-technic.zip ./.technic/* -r
|
||||
|
||||
server: build
|
||||
@echo "Making Server pack"
|
||||
-rm -rf .server
|
||||
@mkdir -p .server
|
||||
mc-server-icon --icon .minecraft/icon.png --output .server/server-icon.png
|
||||
cd .server && java -jar ../.minecraft/packwiz-installer-bootstrap.jar -s server ../.minecraft/pack.toml && cd ..
|
||||
7z d .build/${PACKNAME}-server.zip ./* ./.* -r
|
||||
7z a .build/${PACKNAME}-server.zip ./.server/* -r
|
||||
|
||||
preClean:
|
||||
-rm -rf .build .server .technic
|
||||
-rm -f ./instance.cfga*
|
||||
|
||||
postClean:
|
||||
-git gc --aggressive --prune
|
||||
-rm -f ./*_icon.png
|
||||
|
||||
clean: preClean postClean
|
||||
|
||||
all: preClean curseforge modrinth multimc technic server postClean
|
||||
|
||||
refresh:
|
||||
cd .minecraft && packwiz refresh
|
||||
|
||||
update-packwiz:
|
||||
go install github.com/packwiz/packwiz@latest
|
||||
go install github.com/Merith-TK/packwiz-wrapper/cmd/pw@main
|
||||
go install github.com/Merith-TK/utils/cmd/mc-server-icon@main
|
||||
-clear
|
||||
@echo "Packwiz has been Updated"
|
||||
|
||||
release-file: build
|
||||
@echo "Generating changelog"
|
||||
@pw modlist versions
|
||||
@git log --pretty=format:"%h - %s (%ci)" --abbrev-commit > .build/CHANGELOG.md
|
||||
@echo "" >> .build/CHANGELOG.md
|
||||
@echo "<details><summary>Mod List</summary>" >> .build/CHANGELOG.md
|
||||
@echo "" >> .build/CHANGELOG.md
|
||||
@cat modlist.md >> .build/CHANGELOG.md
|
||||
@echo "</details>" >> .build/CHANGELOG.md
|
||||
|
||||
run-server:
|
||||
@cd .minecraft && pw refresh
|
||||
@mkdir -p .run
|
||||
@echo "eula=true" > .run/eula.txt
|
||||
@mc-server-icon --icon .minecraft/icon.png --output .run/server-icon.png
|
||||
@cd .run && java -jar ../.minecraft/packwiz-installer-bootstrap.jar ../.minecraft/pack.toml -s server
|
||||
@if [ ! -f .run/server.jar ]; then \
|
||||
echo "Downloading Fabric server jar..."; \
|
||||
curl -o .run/server.jar https://meta.fabricmc.net/v2/versions/loader/1.21.1/0.16.5/1.0.1/server/jar; \
|
||||
fi
|
||||
@cd .run && java -Xmx2G -Xms2G -jar server.jar nogui
|
42
README.md
Normal file
42
README.md
Normal file
|
@ -0,0 +1,42 @@
|
|||
## Update Pack Template
|
||||
This is a template modpack makers can use to easily release their modpack onto multiple platforms.
|
||||
currently this template only supports
|
||||
- Curseforge
|
||||
- Please note recent API changes to curseforge have broken support for most mods from curseforge in the other three formats
|
||||
- Multi/PolyMC requires users to download mods manually
|
||||
- Technc requires modpack makers to download mods manually
|
||||
- Modrinth just doesnt support it at all
|
||||
- [Multi/PolyMC](https://polymc.org)
|
||||
- Technic
|
||||
- Modrinth
|
||||
|
||||
|
||||
### How to use this?
|
||||
[![Gitpod ready-to-code](https://img.shields.io/badge/Gitpod-ready--to--code-908a85?logo=gitpod)](https://gitpod.io/from-referrer/)
|
||||
- Modpack Makers
|
||||
- Well first your going to need to install `busybox`, `git`, `go` `7zip`, and `make` on your computer,
|
||||
- On Windows I personally reccomend getting all of these through [Scoop](https://scoop.sh/)
|
||||
- After installing scoop, just run
|
||||
- `scoop install busybox git go make 7zip`
|
||||
- On Linux,
|
||||
- Ubuntu/Debian
|
||||
- `sudo apt install git p7zip make`
|
||||
- golang needs the latest release, which is unfortunately not in the repos, please manually install it, there are plenty of guides online for this
|
||||
- Arch
|
||||
- please use an AUR helper such as `yay`
|
||||
- `yay -Syu git go p7zip make`
|
||||
|
||||
- after you install go, run this command to install packwiz
|
||||
- `go install github.com/packwiz/packwiz@latest`
|
||||
|
||||
- I reccomend using VSCode to manage your modpack as you have a full visual editor and git manager built in.
|
||||
- to add mods, run `packwiz <curseforge or modrinth> install <modid>`
|
||||
- for sodium from curseforge, `packwiz cf install sodium`
|
||||
- to make a release, run `make multimc` or `make technic`
|
||||
|
||||
- Dont forget to make a git repo for your modpack, I reccomend using [GitLab](https://gitlab.com) due to its free Large File Support.
|
||||
- or a place to host the packwiz-data folder!
|
||||
|
||||
- Modpack Users
|
||||
- MultiMC
|
||||
- Use Java 17, MC 1.16.5 runs just fine on forge AND fabric on java 17
|
6
instance.cfg
Normal file
6
instance.cfg
Normal file
|
@ -0,0 +1,6 @@
|
|||
[General]
|
||||
InstanceType=OneSix
|
||||
iconKey={ICONNAME}_icon
|
||||
name=Modpack Template
|
||||
OverrideCommands=true
|
||||
PreLaunchCommand="$INST_JAVA" -jar packwiz-installer-bootstrap.jar {PACKURL}
|
21
mmc-pack.json
Normal file
21
mmc-pack.json
Normal file
|
@ -0,0 +1,21 @@
|
|||
{
|
||||
"components": [
|
||||
{
|
||||
"uid": "net.minecraft",
|
||||
"version": "1.21.1"
|
||||
},
|
||||
{
|
||||
"cachedName": "LWJGL 3",
|
||||
"cachedVersion": "3.2.2",
|
||||
"cachedVolatile": true,
|
||||
"dependencyOnly": true,
|
||||
"uid": "org.lwjgl3",
|
||||
"version": "3.2.2"
|
||||
},
|
||||
{
|
||||
"uid": "net.fabricmc.fabric-loader",
|
||||
"version": "0.16.4"
|
||||
}
|
||||
],
|
||||
"formatVersion": 1
|
||||
}
|
11
modlist.md
Normal file
11
modlist.md
Normal file
|
@ -0,0 +1,11 @@
|
|||
# Modlist
|
||||
|
||||
## Client Mods
|
||||
|
||||
- [Sodium](https://modrinth.com/mod/AANobbMI/version/oZOSEhyy)
|
||||
|
||||
## Shared Mods
|
||||
|
||||
- [Lithium](https://modrinth.com/mod/gvQqBUqZ/version/5szYtenV)
|
||||
|
||||
|
Loading…
Reference in a new issue