mirror of
https://github.com/eliasstepanik/ark-ac-server-tools.git
synced 2026-01-25 07:48:28 +00:00
Add arkModCollections to add mod collections
This commit is contained in:
parent
5cda461841
commit
86b22b4dea
@ -774,6 +774,9 @@ the global config.
|
|||||||
Uses the `-MapModID=<modid>?...` option to specify the server map
|
Uses the `-MapModID=<modid>?...` option to specify the server map
|
||||||
mod ID
|
mod ID
|
||||||
|
|
||||||
|
`arkModCollections="<collection1>,<collection2>,..."`::
|
||||||
|
Specifies collections to include in mod list
|
||||||
|
|
||||||
`ark_<optname>="<optval>"`::
|
`ark_<optname>="<optval>"`::
|
||||||
Specifies the options to use in the `Map?Option=Val?...` option
|
Specifies the options to use in the `Map?Option=Val?...` option
|
||||||
string passed to the server
|
string passed to the server
|
||||||
|
|||||||
@ -1122,6 +1122,14 @@ doRun() {
|
|||||||
usedoptions[${varname}]="${val}"
|
usedoptions[${varname}]="${val}"
|
||||||
done < <(sed -n 's/^\(arkmod_[^= ]*\)=.*/\1/p' <"$configfile")
|
done < <(sed -n 's/^\(arkmod_[^= ]*\)=.*/\1/p' <"$configfile")
|
||||||
|
|
||||||
|
if [ -n "$arkModCollections" ]; then
|
||||||
|
while read -r modid; do
|
||||||
|
if [[ ",${ark_GameModIds}," != *",$modid,"* ]]; then
|
||||||
|
ark_GameModIds="${ark_GameModIds}${ark_GameModIds:+,}${modid}"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
|
||||||
if [[ ( -z "$serverMap" || "$serverMap" == "TheIsland" ) && -n "$serverMapModId" ]]; then
|
if [[ ( -z "$serverMap" || "$serverMap" == "TheIsland" ) && -n "$serverMapModId" ]]; then
|
||||||
serverMap="$(perl -e '
|
serverMap="$(perl -e '
|
||||||
my $data;
|
my $data;
|
||||||
@ -2357,9 +2365,37 @@ getModIds(){
|
|||||||
if [ -z "$ignoreInstalledMods" ]; then
|
if [ -z "$ignoreInstalledMods" ]; then
|
||||||
find "${arkserverroot}/${arkserverdir}/Content/Mods" -maxdepth 1 -type d -printf "%P\n"
|
find "${arkserverroot}/${arkserverdir}/Content/Mods" -maxdepth 1 -type d -printf "%P\n"
|
||||||
fi
|
fi
|
||||||
|
getCollectionMods
|
||||||
) | sort | uniq | grep '^[1-9][0-9]*$' | grep -v '^111111111$'
|
) | sort | uniq | grep '^[1-9][0-9]*$' | grep -v '^111111111$'
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#
|
||||||
|
# Get Mod IDs included in collections in rkModCollections
|
||||||
|
#
|
||||||
|
getCollectionMods(){
|
||||||
|
(
|
||||||
|
for m in ${arkModCollections//,/\ }; do
|
||||||
|
curl \
|
||||||
|
-s \
|
||||||
|
-d \
|
||||||
|
"collectioncount=1&publishedfileids[0]=${m}" \
|
||||||
|
"http://api.steampowered.com/ISteamRemoteStorage/GetCollectionDetails/v1" |
|
||||||
|
perl -e '
|
||||||
|
use JSON;
|
||||||
|
my $js = decode_json <>;
|
||||||
|
my $coll = ${$js}{response}{collectiondetails}[0];
|
||||||
|
if (exists ${$coll}{children}) {
|
||||||
|
foreach my $mod (@{${$coll}{children}}) {
|
||||||
|
print "${$mod}{publishedfileid}\n";
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
print "${$coll}{publishedfileid}\n";
|
||||||
|
}
|
||||||
|
' 2>/dev/null
|
||||||
|
done
|
||||||
|
) | sort | uniq | grep '^[1-9][0-9]*$'
|
||||||
|
}
|
||||||
|
|
||||||
#
|
#
|
||||||
# Get the Mod details of the installed mods and the requested mods
|
# Get the Mod details of the installed mods and the requested mods
|
||||||
#
|
#
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user