summarylogtreecommitdiffstats
path: root/PKGBUILD
diff options
context:
space:
mode:
authorNitroretro2020-10-06 00:12:45 +0300
committerNitroretro2020-10-06 00:12:45 +0300
commit34c9aaf964e8e8e4bd20d33ceaedb20041cc73eb (patch)
treead2b7278d32dd77b7f4dafeb9a7131df44171f82 /PKGBUILD
downloadaur-34c9aaf964e8e8e4bd20d33ceaedb20041cc73eb.tar.gz
Upgrade: 1.15.2_31.2.0-1
Diffstat (limited to 'PKGBUILD')
-rw-r--r--PKGBUILD163
1 files changed, 163 insertions, 0 deletions
diff --git a/PKGBUILD b/PKGBUILD
new file mode 100644
index 000000000000..e69ddc3ef24f
--- /dev/null
+++ b/PKGBUILD
@@ -0,0 +1,163 @@
+# Maintainer: Nitroretro <nitroretro@protonmail.com>
+
+# Based on the `minecraft-server` AUR package by:
+## Maintainer: Gordian Edenhofer <gordian.edenhofer@gmail.com>
+## Contributor: Philip Abernethy <chais.z3r0@gmail.com>
+## Contributor: sowieso <sowieso@dukun.de>
+
+_ver="1.15.2_31.2.0-1"
+_minecraft_ver_latest="1.16.3"
+
+IFS="-" read -ra _ver_temp <<< "$_ver"
+IFS="_" read -ra _pkgver_temp <<< "${_ver_temp[0]}"
+IFS="." read -ra _minecraft_ver_temp <<< "${_pkgver_temp[0]}"
+
+_minecraft_ver=${_pkgver_temp[0]}
+_minecraft_ver_major=${_minecraft_ver_temp[0]:-0}
+_minecraft_ver_minor=${_minecraft_ver_temp[1]:-0}
+_minecraft_ver_patch=${_minecraft_ver_temp[2]:-0}
+_forge_ver=${_pkgver_temp[1]}
+
+_pkgver=${_ver_temp[0]//_/-}
+
+if [ "$_minecraft_ver" = "$_minecraft_ver_latest" ]; then
+ pkgname="forge-server"
+ _forge_name="forge"
+else
+ pkgname="forge-server-${_minecraft_ver}"
+ _forge_name="forge-${_minecraft_ver}"
+fi
+pkgver=${_ver_temp[0]}
+pkgrel=${_ver_temp[1]}
+pkgdesc="Minecraft Forge server unit files, script and jar"
+arch=("any")
+url="https://minecraftforge.net"
+license=("custom")
+depends=("java-runtime-headless=8" "screen" "sudo" "bash" "awk" "sed")
+optdepends=("tar: needed in order to create world backups"
+ "netcat: required in order to suspend an idle server")
+provides=("forge-server=${pkgver}")
+backup=("etc/conf.d/${_forge_name}")
+install="forge-server.install"
+source=("forged-backup.service"
+ "forged-backup.timer"
+ "forged.service"
+ "forged.conf"
+ "forged.sh")
+noextract=("forge-${_pkgver}.jar")
+sha512sums=('476394bcc812c87f81545fcfbc1f48c0e3698d476fea990d430afd31f365fe62cb3dad3a1346c61852639ea49644b747c720ef67a8d72a2b57d21fd50b9c1abe'
+ '946fde7457ccf4101d30b566bf030471368b3ad2b994faed89562a60ef22011642c949024be83c222b16c0428ec63da749b3264ca381eca72fceab41cd8c725b'
+ 'fc11abcef378c64e124336c04e0dde2f3ea70da67d6865115ec2d9ba6220f82cc05d4517b3dd4e5c8c30c69f6882f1361daa432dbfa7eed2bd59a44c38ec6c8b'
+ '26db2abfd5c59d9b9c8346e08bb3ddb505ad5ca8f9b4aa54e09799865f0503d31f708c46a24c44e3697c68d62bfcbf6d0cc43c3b6ce15dd5aec76d25df17270b'
+ '09b411dcf8aa7e090af907936aeb5aedf5f1ba891c2940470c9d4ebfe3a18b408296328f3181e2510f923650b36ad09716db87d442c8308cf902678ab5167316'
+ 'd9884c3b979969ca8c892a9d87b95c1404790a4f0e2c1c37189b87547c6ac8efd21a0e125cfa0fe6d34ba7463528ba6901945bbeeae522bf35af49098080df96'
+ '3da10d63a5edee4bc8bcd3d5c2730771062f7fa58626a8c51635fbe96bfbceca3ff6937cfaad3e17f16a94ef95137f7c78cc6dac1c846a6b9a8f18d3c6355973')
+
+# -- Forge Installer -- #
+if [ "$_minecraft_ver_minor" = 7 ]; then
+ source+=("forge-${_pkgver}-installer.jar"::"https://files.minecraftforge.net/maven/net/minecraftforge/forge/${_pkgver}-${_minecraft_ver}/forge-${_pkgver}-${_minecraft_ver}-installer.jar")
+else
+ source+=("forge-${_pkgver}-installer.jar"::"https://files.minecraftforge.net/maven/net/minecraftforge/forge/${_pkgver}/forge-${_pkgver}-installer.jar")
+fi
+
+[ "$_minecraft_ver_minor" = 5 ] && source+=("https://files.minecraftforge.net/fmllibs/fml_libs15.zip") && noextract+=("fml_libs15.zip")
+# -- /Forge Installer -- #
+
+# -- Licenses -- #
+_licenses=()
+_license_suffix="-${pkgname}-${_pkgver}.txt"
+
+if [ "$_minecraft_ver_minor" -ge 10 ]; then
+ _branch="${_minecraft_ver_major}.${_minecraft_ver_minor}.x"
+elif [ "$_minecraft_ver_minor" -ge 7 ]; then
+ _branch="$_minecraft_ver"
+elif [ "$_minecraft_ver_minor" = 6 ]; then
+ _branch="1.6"
+else
+ _branch="v7.9"
+fi
+
+_add_license() {
+ _path=$1
+ _repo=${2:-MinecraftForge}
+ _github_branch=${3:-"$_branch"}
+ _filename="$(basename "$_path")${_license_suffix}"
+
+ _licenses+=("$_filename")
+ source+=("$_filename"::"https://raw.githubusercontent.com/MinecraftForge/${_repo}/${_github_branch}/${_path}.txt")
+}
+
+if [ "$_minecraft_ver_minor" -ge 13 ]; then
+ _add_license "LICENSE"
+elif [ "$_minecraft_ver_minor" = 12 ]; then
+ _add_license "LICENSE-Paulscode%20IBXM%20Library"
+ _add_license "LICENSE-Paulscode%20SoundSystem%20CodecIBXM"
+ _add_license "LICENSE"
+elif [ "$_minecraft_ver_minor" -ge 7 ]; then
+ _add_license "MinecraftForge-License"
+ _add_license "Paulscode%20IBXM%20Library%20License"
+ _add_license "Paulscode%20SoundSystem%20CodecIBXM%20License"
+
+ case "$_minecraft_ver_minor" in
+ 8) _add_license "LICENSE-fml";;
+ 7) _add_license "fml/LICENSE-fml";;
+ *) _add_license "LICENSE-fml" && _add_license "LICENSE-new";;
+ esac
+elif [ "$_minecraft_ver_minor" = 6 ]; then
+ _add_license "install/MinecraftForge-License"
+ _add_license "install/Paulscode%20IBXM%20Library%20License"
+ _add_license "install/Paulscode%20SoundSystem%20CodecIBXM%20License"
+ _add_license "LICENSE-fml" "FML" "902772ed0cb6c22c4cd7ad9b0ec7a02961b5e016"
+else
+ _add_license "LICENSE-fml"
+fi
+# -- /Licenses -- #
+
+prepare() {
+ [ "$_minecraft_ver_minor" = 10 ] && mkdir mods
+ [ "$_minecraft_ver_minor" = 5 ] && unzip -o fml_libs15.zip -d lib
+ java -jar "forge-${_pkgver}-installer.jar" --installServer
+}
+
+package() {
+ _server_root="${pkgdir}/srv/${_forge_name}"
+
+ # Install forged
+ install -Dm644 "forged-backup.service" "${pkgdir}/usr/lib/systemd/system/${_forge_name}d-backup.service"
+ install -Dm644 "forged-backup.timer" "${pkgdir}/usr/lib/systemd/system/${_forge_name}d-backup.timer"
+ install -Dm644 "forged.service" "${pkgdir}/usr/lib/systemd/system/${_forge_name}d.service"
+ install -Dm644 "forged.conf" "${pkgdir}/etc/conf.d/${_forge_name}"
+ install -Dm755 "forged.sh" "${pkgdir}/usr/bin/${_forge_name}d"
+
+ # Install Forge
+ _forge_jar="forge-${_pkgver}.jar"
+ [ "$_minecraft_ver_minor" -le 11 ] && _forge_jar="forge-${_pkgver}-universal.jar"
+ [ "$_minecraft_ver_minor" = 7 ] && _forge_jar="forge-${_pkgver}-${_minecraft_ver}-universal.jar"
+ [ "$_minecraft_ver_minor" -le 6 ] && _forge_jar="minecraftforge-universal-${_pkgver}.jar"
+
+ install -Dm644 "$_forge_jar" "${_server_root}/$_forge_jar"
+ ln -s "$_forge_jar" "${_server_root}/forge.jar"
+ find libraries -type f -print0 | xargs -0 -i@ install -Dm644 "@" "${_server_root}/@"
+ [ "$_minecraft_ver_minor" = 5 ] && find lib -type f -print0 | xargs -0 -i@ install -Dm644 "@" "${_server_root}/@"
+
+ # Install Minecraft Server (for 1.12.2 or lower)
+ if [ "$_minecraft_ver_minor" = 5 ]; then
+ install -Dm644 "minecraft_server.${_minecraft_ver}.jar" "${_server_root}/minecraft_server.jar"
+ elif [ "$_minecraft_ver_minor" -le 12 ]; then
+ install -Dm644 "minecraft_server.${_minecraft_ver}.jar" "${_server_root}/minecraft_server.${_minecraft_ver}.jar"
+ fi
+
+ # Link log files
+ mkdir -p "${pkgdir}/var/log/"
+ install -dm2755 "${_server_root}/logs"
+ ln -s "/srv/${_forge_name}/logs" "${pkgdir}/var/log/${_forge_name}"
+
+ # Install licenses
+ for _license in "${_licenses[@]}"; do
+ _filename="$(basename "$_license" "$_license_suffix").txt"
+ _filename="${_filename//\%20/ }"
+ install -Dm644 "$_license" "${pkgdir}/usr/share/licenses/${pkgname}/$_filename"
+ done
+
+ chmod g+ws "${_server_root}"
+}