diff --git a/unmaintained/papermc/APKBUILD b/unmaintained/papermc/APKBUILD
deleted file mode 100644
index e400914..0000000
--- a/unmaintained/papermc/APKBUILD
+++ /dev/null
@@ -1,56 +0,0 @@
-# Maintainer: Antoine Martin (ayakael) <dev@ayakael.net>
-# Contributor: Antoine Martin (ayakael) <dev@ayakael.net>
-
-pkgname=papermc
-_pkgver=1.18.1
-_build=99
-_license_commit=4a7962c
-pkgver="$_pkgver.$_build"
-pkgrel=1
-pkgdesc="Next generation of Minecraft server, compatible with Spigot plugins and offering uncompromising performance"
-pkgusers="craftbukkit"
-pkggroups="craftbukkit"
-arch='noarch'
-url="https://papermc.io/"
-license='custom'
-depends='openjdk17-jre-headless screen sudo bash gawk sed netcat-openbsd tar'
-options="!check"
-provides="craftbukkit=$_pkgver"
-subpackages="$pkgname-openrc"
-source="papermc.$pkgver.jar::https://papermc.io/api/v2/projects/paper/versions/$_pkgver/builds/$_build/downloads/paper-$_pkgver-$_build.jar
-	papermc.initd
-	papermc.conf
-	papermc.sh
-	LICENSE_$pkgver.md::https://raw.githubusercontent.com/PaperMC/Paper/$_license_commit/LICENSE.md
-"
-
-_game="papermc"
-_server_root="/var/lib/papermc"
-
-package() {
-	install -Dm644 "$srcdir"/$_game.conf              "$pkgdir"/etc/conf.d/$_game
-	install -Dm755 "$srcdir"/$_game.sh                "$pkgdir"/usr/bin/$_game
-	install -Dm755 "$srcdir"/$_game.initd           "$pkgdir"/etc/init.d/$_game
-	install -Dm644 "$srcdir"/$_game.$pkgver.jar     "$pkgdir"/$_server_root/$_game/$pkgver.jar
-	ln -s "$_game"/$pkgver.jar "$pkgdir"/$_server_root/$_game/server.jar
-
-	# Link to craftbukkit plugins var
-	ln -s "/var/lib/craftbukkit/plugins" "$pkgdir"/$_server_root/plugins
-
-	# Link the log files
-	mkdir -p "$pkgdir"/var/log/
-	install -dm2755 "$pkgdir"/$_server_root/logs
-	ln -s "$_server_root"/logs "$pkgdir"/var/log/$_game
-
-	# Give the group write permissions and set user or group ID on execution
-	chmod g+ws "$pkgdir"/$_server_root
-
-	install -D "$srcdir"/LICENSE_$pkgver.md "$pkgdir"/usr/share/licenses/$pkgname/LICENSE
-}
-sha512sums="
-623d6423ee337671d546469e6bf1821005484192a1ae56d7b77f547f79102df50462e1d0144be13a0de9021c9d931bc974143b1e1526114627ba28688589d76a  papermc.1.18.1.99.jar
-c5d1bf85ceb74162aaaf2bcd2d06dc2e3dd2e37c39f0cee2be7c8dbff9970a6aff1e48a43e6d1e83e6a0ac610bd89f62b1279bf27b64afa88d9831a36aebbd3e  papermc.initd
-9b8e267428731ee9255f82a93f1e8674d7e917a0f154bd395cd2280a49aa248a4b8427520b08dbb4b3a74a5471dac0e439eedc8ab94bf2e53bb8d411d2d8a789  papermc.conf
-943ba0d4c10173246bdc6497dcedd54da0788f966841c8d3381398711d79f8d5eb07a24ce28f519b6f24f59d99fa9e74bc6bb882059f343df4eeda5de3660ac7  papermc.sh
-d4c645a58e1a17a0a1e42856a3cc43097711a05bf3d9f18c77c3bc9874417f223552859042ff00b7d3dda0003f49a9ee568540c2eb24e9f8fbb3c055f3b6e0a5  LICENSE_1.18.1.99.md
-"
diff --git a/unmaintained/papermc/APKBUILD.orig b/unmaintained/papermc/APKBUILD.orig
deleted file mode 100644
index fe78218..0000000
--- a/unmaintained/papermc/APKBUILD.orig
+++ /dev/null
@@ -1,56 +0,0 @@
-# Maintainer: Antoine Martin (ayakael) <dev@ayakael.net>
-# Contributor: Antoine Martin (ayakael) <dev@ayakael.net>
-
-pkgname=papermc
-_pkgver=1.18.1
-_build=99
-_license_commit=4a7962c
-pkgver="$_pkgver.$_build"
-pkgrel=1
-pkgdesc="Next generation of Minecraft server, compatible with Spigot plugins and offering uncompromising performance"
-pkgusers="craftbukkit"
-pkggroups="craftbukkit"
-arch='noarch'
-url="https://papermc.io/"
-license='custom'
-depends='openjdk17-jre-headless screen sudo bash gawk sed netcat-openbsd tar'
-options="!check"
-provides="craftbukkit=$_pkgver"
-subpackages="$pkgname.openrc"
-source="papermc.$pkgver.jar::https://papermc.io/api/v2/projects/paper/versions/$_pkgver/builds/$_build/downloads/paper-$_pkgver-$_build.jar
-	papermc.initd
-	papermc.conf
-	papermc.sh
-	LICENSE_$pkgver.md::https://raw.githubusercontent.com/PaperMC/Paper/$_license_commit/LICENSE.md
-"
-
-_game="papermc"
-_server_root="/var/lib/papermc"
-
-package() {
-	install -Dm644 $srcdir.$_game.conf              "$pkgdir.etc/conf.d/$_game"
-	install -Dm755 $srcdir.$_game.sh                "$pkgdir.usr/bin/$_game"
-	install -Dm755 $srcdir.$_game.initd           "$pkgdir.etc/init.d/$_game"
-	install -Dm644 $srcdir.$_game.$pkgver.jar     "$pkgdir.$_server_root.$_game.$pkgver.jar"
-	ln -s "$_game.$pkgver.jar" "$pkgdir._server_root.$_game.server.jar"
-
-	# Link to craftbukkit plugins var
-	ln -s "/var/lib/craftbukkit/plugins" "$pkgdir.$_server_root.plugins"
-
-	# Link the log files
-	mkdir -p "$pkgdir.var/log/"
-	install -dm2755 "$pkgdir.$_server_root.logs"
-	ln -s "$_server_root.logs" "$pkgdir.var/log/$_game"
-
-	# Give the group write permissions and set user or group ID on execution
-	chmod g+ws "$pkgdir._server_root"
-
-	install -D $srcdir../LICENSE_$pkgver.md "$pkgdir.usr/share/licenses/$pkgname.LICENSE"
-}
-sha512sums="
-623d6423ee337671d546469e6bf1821005484192a1ae56d7b77f547f79102df50462e1d0144be13a0de9021c9d931bc974143b1e1526114627ba28688589d76a  papermc.1.18.1.99.jar
-c5d1bf85ceb74162aaaf2bcd2d06dc2e3dd2e37c39f0cee2be7c8dbff9970a6aff1e48a43e6d1e83e6a0ac610bd89f62b1279bf27b64afa88d9831a36aebbd3e  papermc.initd
-9b8e267428731ee9255f82a93f1e8674d7e917a0f154bd395cd2280a49aa248a4b8427520b08dbb4b3a74a5471dac0e439eedc8ab94bf2e53bb8d411d2d8a789  papermc.conf
-943ba0d4c10173246bdc6497dcedd54da0788f966841c8d3381398711d79f8d5eb07a24ce28f519b6f24f59d99fa9e74bc6bb882059f343df4eeda5de3660ac7  papermc.sh
-d4c645a58e1a17a0a1e42856a3cc43097711a05bf3d9f18c77c3bc9874417f223552859042ff00b7d3dda0003f49a9ee568540c2eb24e9f8fbb3c055f3b6e0a5  LICENSE_1.18.1.99.md
-"
diff --git a/unmaintained/papermc/APKBUILD.rej b/unmaintained/papermc/APKBUILD.rej
deleted file mode 100644
index f8c4908..0000000
--- a/unmaintained/papermc/APKBUILD.rej
+++ /dev/null
@@ -1,38 +0,0 @@
---- user/papermc/APKBUILD
-+++ user/papermc/APKBUILD
-@@ -28,24 +28,24 @@ _game="papermc"
- _server_root="/var/lib/papermc"
- 
- package() {
--       install -Dm644 $srcdir.$_game.conf              "$pkgdir.etc/conf.d/$_game"
--       install -Dm755 $srcdir.$_game.sh                "$pkgdir.usr/bin/$_game"
--       install -Dm755 $srcdir.$_game.initd           "$pkgdir.etc/init.d/$_game"
--       install -Dm644 $srcdir.$_game.$pkgver.jar     "$pkgdir.$_server_root.$_game.$pkgver.jar"
--       ln -s "$_game.$pkgver.jar" "$pkgdir._server_root.$_game.server.jar"
-+       install -Dm644 "$srcdir"/$_game.conf              "$pkgdir"/etc/conf.d/$_game
-+       install -Dm755 "$srcdir"/$_game.sh                "$pkgdir"/usr/bin/$_game
-+       install -Dm755 "$srcdir"/$_game.initd           "$pkgdir"/etc/init.d/$_game
-+       install -Dm644 "$srcdir"/$_game.$pkgver.jar     "$pkgdir"/$_server_root/$_game/$pkgver.jar
-+       ln -s "$_game"/$pkgver.jar "$pkgdir"/$_server_root/$_game/server.jar
- 
-        # Link to craftbukkit plugins var
--       ln -s "/var/lib/craftbukkit/plugins" "$pkgdir.$_server_root.plugins"
-+       ln -s "/var/lib/craftbukkit/plugins" "$pkgdir"/$_server_root/plugins
- 
-        # Link the log files
--       mkdir -p "$pkgdir.var/log/"
--       install -dm2755 "$pkgdir.$_server_root.logs"
--       ln -s "$_server_root.logs" "$pkgdir.var/log/$_game"
-+       mkdir -p "$pkgdir"/var/log/
-+       install -dm2755 "$pkgdir"/$_server_root/logs
-+       ln -s "$_server_root"/logs "$pkgdir"/var/log/$_game
- 
-        # Give the group write permissions and set user or group ID on execution
--       chmod g+ws "$pkgdir._server_root"
-+       chmod g+ws "$pkgdir"/$_server_root
- 
--       install -D $srcdir../LICENSE_$pkgver.md "$pkgdir.usr/share/licenses/$pkgname.LICENSE"
-+       install -D "$srcdir"/LICENSE_$pkgver.md "$pkgdir"/usr/share/licenses/$pkgname/LICENSE
- }
- sha512sums="
- 623d6423ee337671d546469e6bf1821005484192a1ae56d7b77f547f79102df50462e1d0144be13a0de9021c9d931bc974143b1e1526114627ba28688589d76a  papermc.1.18.1.99.jar
diff --git a/user/papermc/APKBUILD b/user/papermc/APKBUILD
new file mode 100644
index 0000000..d98653d
--- /dev/null
+++ b/user/papermc/APKBUILD
@@ -0,0 +1,45 @@
+# Maintainer: Antoine Martin (ayakael) <dev@ayakael.net>
+# Contributor: Antoine Martin (ayakael) <dev@ayakael.net>
+pkgname=papermc
+pkgver=1.21.3
+_gittag=${pkgver/.0}
+pkgrel=0
+pkgdesc="Next generation of Minecraft server, compatible with Spigot plugins and offering uncompromising performance"
+arch='noarch'
+url="https://papermc.io/"
+license='custom'
+depends='openjdk21-jdk screen sudo bash gawk sed netcat-openbsd tar'
+makedepends="gradle"
+options="!check"
+subpackages="$pkgname-openrc"
+source="https://ayakael.net/api/packages/mirrors/generic/papermc/$_gittag/papermc-$_gittag.tar.zst
+	papermc.initd
+	papermc.conf
+	papermc.sh
+"
+
+build() {
+	./gradlew --parallel createMojmapBundlerJar
+}
+
+package() {
+	install -Dm644 "$srcdir"/$pkgname.conf              "$pkgdir"/etc/conf.d/$pkgname
+	install -Dm755 "$srcdir"/$pkgname.sh                "$pkgdir"/usr/bin/$pkgname
+	install -Dm755 "$srcdir"/$pkgname.initd           "$pkgdir"/etc/init.d/$pkgname
+	install -Dm644 "$builddir"/build/libs/paper*.jar     "$pkgdir"/var/lib/$pkgname/$pkgver.jar
+	ln -s $pkgver.jar "$pkgdir"/var/lib/$pkgname/server.jar
+
+	# Link the log files
+	mkdir -p "$pkgdir"/var/log/
+	install -dm2755 "$pkgdir"/var/lib/$pkgname/logs
+	ln -s "/var/lib/$pkgname"/logs "$pkgdir"/var/log/$pkgname
+
+	# Give the group write permissions and set user or group ID on execution
+	chmod g+ws "$pkgdir"/var/lib/$pkgname
+}
+sha512sums="
+630c0fafd53082bec3992234f7422c4714c30ad0fac240c6dc80091fc7d49b57bc2cb7365366ac015d2a9217c4fd561f0649f738cb0d90ea7a7b6355f9839ff6  papermc-1.21.3.tar.zst
+c5d1bf85ceb74162aaaf2bcd2d06dc2e3dd2e37c39f0cee2be7c8dbff9970a6aff1e48a43e6d1e83e6a0ac610bd89f62b1279bf27b64afa88d9831a36aebbd3e  papermc.initd
+9b8e267428731ee9255f82a93f1e8674d7e917a0f154bd395cd2280a49aa248a4b8427520b08dbb4b3a74a5471dac0e439eedc8ab94bf2e53bb8d411d2d8a789  papermc.conf
+943ba0d4c10173246bdc6497dcedd54da0788f966841c8d3381398711d79f8d5eb07a24ce28f519b6f24f59d99fa9e74bc6bb882059f343df4eeda5de3660ac7  papermc.sh
+"
diff --git a/unmaintained/papermc/papermc.conf b/user/papermc/papermc.conf
similarity index 100%
rename from unmaintained/papermc/papermc.conf
rename to user/papermc/papermc.conf
diff --git a/unmaintained/papermc/papermc.initd b/user/papermc/papermc.initd
similarity index 100%
rename from unmaintained/papermc/papermc.initd
rename to user/papermc/papermc.initd
diff --git a/unmaintained/papermc/papermc.post-install b/user/papermc/papermc.post-install
similarity index 100%
rename from unmaintained/papermc/papermc.post-install
rename to user/papermc/papermc.post-install
diff --git a/unmaintained/papermc/papermc.service b/user/papermc/papermc.service
similarity index 100%
rename from unmaintained/papermc/papermc.service
rename to user/papermc/papermc.service
diff --git a/unmaintained/papermc/papermc.sh b/user/papermc/papermc.sh
similarity index 100%
rename from unmaintained/papermc/papermc.sh
rename to user/papermc/papermc.sh