59 lines
2.9 KiB
Bash
Executable File
59 lines
2.9 KiB
Bash
Executable File
#!/bin/bash
|
|
# SurviePote — resynchronise les mods binaires (non versionnés, voir .gitignore)
|
|
# depuis Prism + Modrinth, vers server/mods/ et atlas/.../fabricmods/required/.
|
|
# Usage : ./sync-mods.sh (dans nix-shell de préférence)
|
|
set -e
|
|
cd "$(dirname "$0")"
|
|
|
|
PRISM_MODS="$HOME/.local/share/PrismLauncher/instances/26.3/minecraft/mods"
|
|
SRV_MODS="server/mods"
|
|
ATLAS_MODS="atlas/root/servers/SurviePote-26.3/fabricmods/required"
|
|
|
|
# Mods à exclure du SERVEUR (client-only vérifiés + mods cassés, voir server/mods/SOURCE.md)
|
|
SERVER_EXCLUDE=(
|
|
sodium-fabric iris-fabric continuity- dynamic-fps- fast-ip-ping modmenu- morechathistory-
|
|
capes- chat_heads- skinlayers3d waveycapes xaerominimap xaeroworldmap
|
|
appleskin- vanillarice- ImmersiveOres-26.3 simplebackpacks-
|
|
)
|
|
# Mods à exclure de l'ATLAS (= clients) : client-only purs + simplebackpacks (cassé partout).
|
|
# ImmersiveOres RESTE dans l'atlas (contenu blocs/items, crash serveur uniquement).
|
|
ATLAS_EXCLUDE=(
|
|
sodium-fabric iris-fabric continuity- dynamic-fps- fast-ip-ping modmenu- morechathistory-
|
|
capes- chat_heads- skinlayers3d waveycapes xaerominimap xaeroworldmap
|
|
appleskin- vanillarice- simplebackpacks-
|
|
)
|
|
|
|
excluded() { local f="$1"; shift; for p in "$@"; do [[ "$f" == "$p"* ]] && return 0; done; return 1; }
|
|
|
|
mkdir -p "$SRV_MODS" "$ATLAS_MODS" server/mods-client-only quarantine
|
|
|
|
echo "== server/mods (depuis Prism) =="
|
|
for jar in "$PRISM_MODS"/*.jar; do
|
|
f="$(basename "$jar")"
|
|
if excluded "$f" "${SERVER_EXCLUDE[@]}"; then echo " skip $f"; else cp -u "$jar" "$SRV_MODS/"; echo " cp $f"; fi
|
|
done
|
|
|
|
echo "== terrablender (Modrinth, absent de Prism, requis par BOP) =="
|
|
TB="TerraBlender-fabric-26.3-26.3.0.0.9.jar"
|
|
TB_URL="https://cdn.modrinth.com/data/kkmrDlKT/versions/xirJYe1V/$TB"
|
|
[ -f "$SRV_MODS/$TB" ] || curl -sL -o "$SRV_MODS/$TB" "$TB_URL"
|
|
file "$SRV_MODS/$TB" | grep -q "Java archive" || { echo "ERREUR: $TB invalide"; exit 1; }
|
|
|
|
echo "== atlas required (depuis Prism + terrablender) =="
|
|
for jar in "$PRISM_MODS"/*.jar "$SRV_MODS/$TB"; do
|
|
f="$(basename "$jar")"
|
|
if excluded "$f" "${ATLAS_EXCLUDE[@]}"; then echo " skip $f"; else cp -u "$jar" "$ATLAS_MODS/"; echo " cp $f"; fi
|
|
done
|
|
# Nettoyage : simplebackpacks ne doit être ni serveur ni atlas
|
|
rm -f "$SRV_MODS"/simplebackpacks-*.jar "$ATLAS_MODS"/simplebackpacks-*.jar
|
|
rm -f "$SRV_MODS"/ImmersiveOres-*.jar
|
|
[ -f quarantine/simplebackpacks-fabric-26.3-5.2.1.jar ] || echo "NOTE: simplebackpacks en quarantaine (voir quarantine/README.md)"
|
|
|
|
echo "== resourcepack/shader (Prism -> atlas files/) =="
|
|
cp -u "$HOME/.local/share/PrismLauncher/instances/26.3/minecraft/resourcepacks/FallPack_26.3_v3.1.zip" "atlas/root/servers/SurviePote-26.3/files/resourcepacks/" 2>/dev/null || true
|
|
cp -u "$HOME/.local/share/PrismLauncher/instances/26.3/minecraft/shaderpacks/Revelation-dev.zip" "atlas/root/servers/SurviePote-26.3/files/shaderpacks/" 2>/dev/null || true
|
|
|
|
echo "== regen distribution.json =="
|
|
(cd atlas && npm run faststart -- generate distro) 2>&1 | tail -n 2
|
|
echo OK.
|