Skip to content
This repository was archived by the owner on Feb 15, 2026. It is now read-only.
Merged

V5 #22

Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
93 commits
Select commit Hold shift + click to select a range
1ad04bb
Send logs to admins in chat
OffsetMonkey538 Jan 25, 2025
f90eaa1
Restructure config
OffsetMonkey538 Jun 14, 2025
ef8a163
Restructure folders
OffsetMonkey538 Jun 14, 2025
da9ab1b
Add method for getting diff between a commit hash and the head.
OffsetMonkey538 Jun 14, 2025
e450e66
Refactor resourcepack handling
OffsetMonkey538 Jun 14, 2025
239eef8
Fix crash when there's no previous commit.
OffsetMonkey538 Jun 15, 2025
1d0ea71
Use resource pack root dir as 'packs' folder
OffsetMonkey538 Jun 15, 2025
95640aa
Exclude hidden files from pack generation
OffsetMonkey538 Jun 15, 2025
ddd7619
Update gh workflows
OffsetMonkey538 Jun 15, 2025
deb6542
Cleanup
OffsetMonkey538 Jun 15, 2025
02af56a
They.... they actually work?
OffsetMonkey538 Jun 16, 2025
e2715f2
Cleanup
OffsetMonkey538 Jun 16, 2025
3b4772b
Automatically reload datapack list after datapack update
OffsetMonkey538 Jun 16, 2025
389bf9d
Only request-pack command needs to be executed by player. Update trig…
OffsetMonkey538 Jun 19, 2025
004d441
Fix webhooks always sending using resource pack success url
OffsetMonkey538 Jun 19, 2025
205c2bf
Fix crash on older minecraft versions
OffsetMonkey538 Jul 4, 2025
1b40c65
Allow specifying protocol for public ip
OffsetMonkey538 Jul 9, 2025
8f5b3a1
Merge pull request #16 from OffsetMods538/10-report-errors-to-admins-…
OffsetMonkey538 Jul 22, 2025
84d1416
Merge remote-tracking branch 'origin/v5' into 19-add-support-for-mana…
OffsetMonkey538 Jul 22, 2025
e69ce9c
Cleanup
OffsetMonkey538 Jul 22, 2025
eabf6d3
Merge pull request #20 from OffsetMods538/19-add-support-for-managing…
OffsetMonkey538 Jul 22, 2025
c469dde
Really? I just... delete a bunch of code and all of a sudden the mod …
OffsetMonkey538 Jul 22, 2025
26141e1
Fix crash introduced with #16
OffsetMonkey538 Jul 22, 2025
fd18edd
Update to monkeylib538 v3
OffsetMonkey538 Jul 26, 2025
40ba893
Update monke to 992e97c
OffsetMonkey538 Aug 3, 2025
588c8fe
Update monke to eb3e2e1
OffsetMonkey538 Aug 4, 2025
c640319
Update monke to 30682cc
OffsetMonkey538 Aug 6, 2025
71c06a4
Unused import
OffsetMonkey538 Aug 6, 2025
a07de90
Use gray text for info logging in chat from trigger update command
OffsetMonkey538 Aug 6, 2025
a3071e5
Update monke to 7adde5c
OffsetMonkey538 Aug 6, 2025
0852c88
Update monki to 6345c7b
OffsetMonkey538 Aug 10, 2025
df5ef9e
fix config fixing
OffsetMonkey538 Aug 30, 2025
62fff02
fix update message test command only sending resource pack test, even…
OffsetMonkey538 Sep 4, 2025
f5b888d
fix fixing again
OffsetMonkey538 Sep 4, 2025
6bb77b1
correct handling of admin message queue
OffsetMonkey538 Sep 4, 2025
aa88371
typo
OffsetMonkey538 Sep 4, 2025
15e6fb5
cleanup
OffsetMonkey538 Sep 4, 2025
57d723a
remove unused logLevel parameter for createLogToAdminListener
OffsetMonkey538 Sep 6, 2025
a7934be
neo? :3
OffsetMonkey538 Oct 7, 2025
6aecd24
depend on newer monkeylib and meshlib
OffsetMonkey538 Oct 7, 2025
d5f38be
depend on newer monkeylib and meshlib
OffsetMonkey538 Oct 7, 2025
be184b1
depend on newer monkeylib and meshlib
OffsetMonkey538 Oct 11, 2025
41f5ac0
redo versioning
OffsetMonkey538 Oct 11, 2025
4ee4908
Add command for clearing admin message queue
OffsetMonkey538 Oct 12, 2025
9534d5d
Async pack updating
OffsetMonkey538 Oct 12, 2025
3a93c23
build against 1.21.10
OffsetMonkey538 Oct 12, 2025
ba62165
replace \n with newlines in update message
OffsetMonkey538 Oct 18, 2025
de2cf35
update gradle to v9.1.0
OffsetMonkey538 Oct 20, 2025
eb22355
Update monkeylib to v3.0.0-alpha.0.1761237113556+d3f347d and remove r…
OffsetMonkey538 Oct 23, 2025
a4743ff
update github actions, please tell me this fixes cache not working 🙏
OffsetMonkey538 Oct 23, 2025
e552cfe
Add files via upload
OffsetMonkey538 Oct 23, 2025
635942d
update meshlib to 2.0.0-alpha.0.1761252973683+89c3c64
OffsetMonkey538 Oct 23, 2025
b2d6c89
Merge remote-tracking branch 'origin/v5' into v5
OffsetMonkey538 Oct 23, 2025
0349247
Update monkeylib to v3.0.0-alpha.0.1761395863791+bd100da
OffsetMonkey538 Oct 25, 2025
b265d13
Update Gradle to v9.2.0
OffsetMonkey538 Dec 17, 2025
a64c69d
Update monkeylib
OffsetMonkey538 Dec 26, 2025
c88cf47
Update Gradle to v9.3.0
OffsetMonkey538 Jan 27, 2026
3d9e80e
fix build errors
OffsetMonkey538 Jan 27, 2026
84d44c6
Migrate to new buildSrc
OffsetMonkey538 Jan 27, 2026
3acbfcf
fix compile errors (nothing probably works though)
OffsetMonkey538 Jan 27, 2026
5c880ab
fix config location
OffsetMonkey538 Jan 27, 2026
11567d7
Fix todos
OffsetMonkey538 Jan 27, 2026
3ebe33c
code cleanup
OffsetMonkey538 Jan 27, 2026
0b4daf7
optimize imports
OffsetMonkey538 Jan 27, 2026
f8814c0
use mesh lib routing rule in config
OffsetMonkey538 Jan 29, 2026
8e3a986
Replace String.format and formatted usages with ArgReplaced from Offs…
OffsetMonkey538 Jan 29, 2026
c8ba23b
Rename GithubResourcepackManagerException to GitPackManagerException
OffsetMonkey538 Jan 29, 2026
85fb33d
Make GitPackManagerException use ArgReplacer, add constructor overloa…
OffsetMonkey538 Jan 29, 2026
e8edec7
Rename (hopefully) all usages of github resourcepack manager to git p…
OffsetMonkey538 Jan 29, 2026
d5bfff5
fix github actions
OffsetMonkey538 Jan 29, 2026
17ca54a
possibly better icon?
OffsetMonkey538 Jan 29, 2026
56bba19
use indexed color
OffsetMonkey538 Jan 29, 2026
0d4d544
fix icon
OffsetMonkey538 Jan 29, 2026
f5864e0
Update Loom to v1.15
OffsetMonkey538 Jan 31, 2026
8b5e596
Update dependency of monkeylib and meshlib, depend on adventure api
OffsetMonkey538 Jan 31, 2026
7acd283
Replace usages of monkeylib text wrapper with adventure api
OffsetMonkey538 Jan 31, 2026
0332085
Use minimessage for formatting update message, add datafixer for upda…
OffsetMonkey538 Jan 31, 2026
6c6102d
Fix update message only sent to console
OffsetMonkey538 Jan 31, 2026
c861745
Fix commands not registered early enough, use correct name for commands
OffsetMonkey538 Jan 31, 2026
5927fa3
fix paper initializer
OffsetMonkey538 Jan 31, 2026
3e3ff61
update monkeylib
OffsetMonkey538 Jan 31, 2026
2b6b8f9
Update buildSrc
OffsetMonkey538 Jan 31, 2026
268d31b
Update monkeylib, meshlib
OffsetMonkey538 Jan 31, 2026
1021752
Move common code into common package
OffsetMonkey538 Jan 31, 2026
587cdef
Update jgit
OffsetMonkey538 Jan 31, 2026
f096a0d
Update ModConfig.java
OffsetMonkey538 Feb 2, 2026
de5064b
Automatically reload datapacks after update
OffsetMonkey538 Feb 4, 2026
f589d67
Update comment in config
OffsetMonkey538 Feb 7, 2026
613ff8a
fix crash
OffsetMonkey538 Feb 7, 2026
d3ba640
Update monkeylib, meshlib
OffsetMonkey538 Feb 8, 2026
e5d93dd
Update monkeylib, nmesghlib
OffsetMonkey538 Feb 8, 2026
3bc1911
Update buildSrc, fix modrtinth bublishing
OffsetMonkey538 Feb 8, 2026
99b7413
README.md
OffsetMonkey538 Feb 8, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 10 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
# Set update schedule for GitHub Actions

version: 2
updates:

- package-ecosystem: "github-actions"
directory: "/"
schedule:
# Check for updates to GitHub Actions every week
interval: "daily"
20 changes: 13 additions & 7 deletions .github/workflows/build_artifacts.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,26 +12,32 @@ jobs:

steps:
- uses: actions/checkout@v4
with:
submodules: true

- name: Set up JDK 21
uses: actions/setup-java@v4
uses: actions/setup-java@v5
with:
java-version: '21'
distribution: 'temurin'

- name: Setup Gradle
uses: gradle/actions/setup-gradle@v3
uses: gradle/actions/setup-gradle@v5
with:
cache-read-only: false

- name: Store short commit hash
run: echo "short_commit_hash=$(git rev-parse --short "$GITHUB_SHA")" >> "$GITHUB_ENV"

- name: Build with Gradle
run: ./gradlew build
env:
PRESERVE_PRERELEASE_VERSION: true
DISABLE_PROPERTIES_UPDATE: true

- name: Delete common libs
run: rm -r ./common/build/libs
VERSION_SUFFIX: ${{ env.short_commit_hash }}

- name: Upload build artifacts
uses: actions/upload-artifact@v4
with:
name: Artifacts
path: ./*/build/libs/
name: Build Artifacts
path: ./loader/*/*/build/libs/
16 changes: 10 additions & 6 deletions .github/workflows/publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,35 +14,39 @@ jobs:

steps:
- uses: actions/checkout@v4
with:
submodules: true

- name: Set up JDK 21
uses: actions/setup-java@v4
uses: actions/setup-java@v5
with:
java-version: '21'
distribution: 'temurin'

- name: Setup Gradle
uses: gradle/actions/setup-gradle@v3
uses: gradle/actions/setup-gradle@v5
with:
cache-read-only: false

- name: Build with Gradle
run: ./gradlew build
env:
IS_RELEASE: true
DISABLE_PROPERTIES_UPDATE: true
VERSION_SUFFIX: ""

- name: Upload to Modrinth
run: ./gradlew modrinth
env:
IS_RELEASE: true
DISABLE_PROPERTIES_UPDATE: true
VERSION_SUFFIX: ""
MODRINTH_TOKEN: ${{ secrets.MODRINTH_TOKEN }}
VERSION_NAME: ${{ github.event.release.name }}
VERSION_IS_PRERELEASE: ${{ github.event.release.prerelease }}
VERSION_CHANGELOG: ${{ github.event.release.body }}

- name: Delete common libs
run: rm -r ./common/build/libs

- name: Upload to GitHub
uses: softprops/action-gh-release@v2
with:
files: ./*/build/libs/*.jar
files: ./loader/*/*/build/libs/*.jar
3 changes: 3 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
[submodule "buildSrc"]
path = buildSrc
url = https://github.com/OffsetMods538/multiversion-buildscripts
2 changes: 1 addition & 1 deletion LICENSE
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
MIT License

Copyright (c) 2023,2024,2025 OffsetMonkey538
Copyright (c) 2023-2026 OffsetMonkey538

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
Expand Down
24 changes: 18 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,19 @@
# GitHub Resourcepack Manager
[![discord-singular](https://cdn.jsdelivr.net/npm/@intergrav/devins-badges@3/assets/cozy/social/discord-singular_vector.svg)](https://discord.offsetmonkey538.top/)
[![modrinth](https://cdn.jsdelivr.net/npm/@intergrav/devins-badges@3/assets/cozy/available/modrinth_vector.svg)](https://modrinth.com/mod/github-resourcepack-manager)
[![requires-monkeylib538](https://raw.githubusercontent.com/OffsetMods538/MonkeyLib538/master/images/requires_monkeylib538.png)](https://modrinth.com/mod/monkeylib538)
[![Requires Fabric API](https://cdn.jsdelivr.net/npm/@intergrav/devins-badges@3/assets/cozy/requires/fabric-api_vector.svg)](https://modrinth.com/mod/fabric-api)
# Git Pack Manager
[![Chat with me on Discord](https://cdn.jsdelivr.net/npm/@intergrav/devins-badges@3/assets/cozy/social/discord-singular_vector.svg)](https://discord.offsetmonkey538.top/)
[![Available on Modrinth](https://cdn.jsdelivr.net/npm/@intergrav/devins-badges@3/assets/cozy/available/modrinth_vector.svg)](https://modrinth.com/mod/git-pack-manager)
[![Available on GitHub](https://cdn.jsdelivr.net/npm/@intergrav/devins-badges@3/assets/cozy/available/github_vector.svg)](https://github.com/OffsetMods538/Git-Pack-Manager)
[![Requires MonkeyLib538](https://raw.githubusercontent.com/OffsetMods538/MonkeyLib538/master/images/requires_badge.svg)](https://modrinth.com/mod/monkeylib538)
[![Requires MESH Lib](https://raw.githubusercontent.com/OffsetMods538/MESH-Lib/refs/heads/master/images/requires_badge.svg)](https://modrinth.com/mod/mesh-lib)
[![Read the Documentation](https://cdn.jsdelivr.net/npm/@intergrav/devins-badges@3/assets/cozy/documentation/ghpages_vector.svg)](https://git-pack-manager.docs.offsetmonkey538.top/)

Please read the documentation located [here](https://github-resourcepack-manager.docs.offsetmonkey538.top) and if you have any questions, feel free to contact me on [discord](https://discord.offsetmonkey538.top/)
## What's this?
Git Pack Manager is a mod/plugin for dedicated servers that allows for handling resource and data packs with git.
Using git allows for easier management and collaboration.
The mod also supports automatically updating the packs as soon as modifications are made with git.
Resource packs are automatically combined based on their priorities.

See the [boring showcase for Git Pack Manager](https://www.youtube.com/watch?v=S-ei-7u6yCI) video for an example of what it can do.
This allows for easier management of the packs and makes collaboration easier.

## Using
Please read the documentation located [here](https://git-pack-manager.docs.offsetmonkey538.top) and if you have any questions, feel free to contact me on [Discord](https://discord.offsetmonkey538.top/)
85 changes: 32 additions & 53 deletions build.gradle
Original file line number Diff line number Diff line change
@@ -1,64 +1,43 @@
import dex.plugins.outlet.v2.util.ReleaseType

plugins {
id 'fabric-loom' version '1.10-SNAPSHOT' apply false
id 'io.github.dexman545.outlet' version '1.6.1' apply false
id 'com.modrinth.minotaur' version '2.+' apply false
id 'multiloader-root'
id 'java'
id 'net.neoforged.moddev' version "${neoforged_moddev}" apply false
id 'fabric-loom' version "${fabric_loom}" apply false
id 'io.papermc.paperweight.userdev' version "${papermc_paperweight_userdev}" apply false
id 'xyz.jpenilla.run-paper' version "${jpenilla_run_task}" apply false
id 'com.gradleup.shadow' version "${gradleup_shadow}" apply false
id 'xyz.jpenilla.resource-factory' version "${jpenilla_resource_factory}" apply false
id 'io.github.dexman545.outlet' version "${dexman_outlet}" apply false
id 'com.modrinth.minotaur' version "${modrinth_minotaur}" apply false
id 'hamburg.janove.elevator-music' version "0.1"
}

allprojects {
group = "top.offsetmonkey538.githubresourcepackmanager"

repositories {
mavenLocal()
}
}
//elevatorMusic {
// if (Boolean.parseBoolean(System.getenv("DISABLE_MUSIC"))) return
// waitMusic = file("${rootProject.projectDir}/veryImportant/music.wav")
// successSound = file("${rootProject.projectDir}/veryImportant/done.wav")
//}

subprojects {
apply plugin: "java"

archivesBaseName = "github-resourcepack-manager-${project.nameSuffix}"
version = "${project.mod_version}+${project.minecraft_version}"

java {
withSourcesJar()
}
apply plugin: "java-library"

jar {
from("${rootProject.projectDir}/LICENSE") {
rename { "${it}" }
repositories {
mavenCentral()
mavenLocal()
exclusiveContent {
forRepository {
maven {
name = "OffsetMods538"
url = "https://maven.offsetmonkey538.top/releases"
}
}
filter {
includeGroupAndSubgroups "top.offsetmonkey538"
}
}
}
}

configure(subprojects.findAll { it.name != "common" }) {
apply plugin: 'com.modrinth.minotaur'
apply plugin: 'io.github.dexman545.outlet'

outlet {
mcVersionRange = rootProject.supported_minecraft_versions
allowedReleaseTypes = Set.of(ReleaseType.RELEASE)
dependencies {
compileOnlyApi "org.jspecify:jspecify:${rootProject.jspecify_version}"
}

modrinth {
token = System.getenv("MODRINTH_TOKEN")
projectId = "github-resourcepack-manager"
def customVersionName = System.getenv("VERSION_NAME")
if (customVersionName != null) versionName = customVersionName
versionNumber = "${project.version}"
versionType = "alpha"
def isPreRelease = System.getenv("VERSION_IS_PRERELEASE")
versionType = !"false".equals(isPreRelease) ? "beta" : "release"
additionalFiles = [sourcesJar.archiveFile]
gameVersions = outlet.mcVersions()
syncBodyFrom = rootProject.file("README.md").text
def changelogEnv = System.getenv("VERSION_CHANGELOG")
if (changelogEnv != null) changelog = changelogEnv

dependencies {
embedded.version "mesh-lib", "${project.meshlib_version}"
}
}
tasks.modrinth.dependsOn(tasks.modrinthSyncBody)

}
1 change: 1 addition & 0 deletions buildSrc
Submodule buildSrc added at c0d7dd
36 changes: 21 additions & 15 deletions common/build.gradle
Original file line number Diff line number Diff line change
@@ -1,30 +1,36 @@
plugins {
id 'com.gradleup.shadow' version '9.0.0-beta4'
id 'multiloader-base'
}

repositories {
mavenCentral()
maven {
name = "OffsetMods538"
url = "https://maven.offsetmonkey538.top/releases"
name = "Mojang Libraries"
url = "https://libraries.minecraft.net"
content {
includeGroup "top.offsetmonkey538.meshlib"
includeGroup "com.mojang"
}
}
}

dependencies {
implementation "org.eclipse.jgit:org.eclipse.jgit:${project.jgit_version}"
implementation "blue.endless:jankson:${project.jankson_version}"
compileOnlyApi("top.offsetmonkey538.monkeylib538:monkeylib538-common:${rootProject.monkeylib538_version}+common") {
exclude(group: "net.kyori")
}
compileOnlyApi("top.offsetmonkey538.meshlib:mesh-lib-common:${rootProject.meshlib_version}+common") {
exclude(group: "net.kyori")
}

shadow compileOnly("top.offsetmonkey538.meshlib:mesh-lib-api:${project.meshlib_version}")
compileOnlyApi "net.kyori:adventure-api:${project.adventure_api_version}"
compileOnlyApi "net.kyori:adventure-text-minimessage:${project.adventure_api_version}"

// should be bundeled with minecraft
shadow compileOnly("com.google.guava:guava:${project.guava_version}")
shadow compileOnly("commons-io:commons-io:${project.commons_version}")
shadow compileOnly("com.google.code.gson:gson:${project.gson_version}")
api("org.eclipse.jgit:org.eclipse.jgit:${rootProject.jgit_version}") {
transitive = false
}

// Jetbrains annotations for gud code
shadow compileOnly("org.jetbrains:annotations:24.0.0")
// should be bundled with minecraft
compileOnly "com.mojang:brigadier:${rootProject.brigadier_version}"
compileOnly "com.google.guava:guava:${rootProject.guava_version}"
compileOnly "commons-io:commons-io:${rootProject.commonsio_version}"
compileOnly "org.apache.commons:commons-lang3:${rootProject.commonslang_version}"
compileOnly "com.google.code.gson:gson:${rootProject.gson_version}"
}
tasks.build.dependsOn(shadowJar)
11 changes: 4 additions & 7 deletions common/gradle.properties
Original file line number Diff line number Diff line change
@@ -1,8 +1,5 @@
jgit_version = 6.9.0.202403050737-r
guava_version = 33.4.0-jre
commons_version = 2.18.0
gson_version = 2.11.0
# Jankson, check at https://github.com/falkreon/Jankson
jankson_version = 1.2.3
project_name = common

nameSuffix = api
# Dependencies
## Adventure
adventure_api_version = 4.26.1
Loading