Skip to content
Open
Changes from all commits
Commits
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
32 changes: 27 additions & 5 deletions init/msm
Original file line number Diff line number Diff line change
Expand Up @@ -612,7 +612,6 @@ server_ensure_jar() {

error_exit FILE_NOT_FOUND "Could not find jar for server \"${SERVER_NAME[$1]}\": Expected \"${SERVER_JAR_PATH[$1]}\"."
}

# Read a value from the server configuration file
# $1: The id of the server
# $2: The setting name to read
Expand Down Expand Up @@ -718,6 +717,18 @@ server_ensure_links() {
fi
}

# Ensures the server permissions
# $1: The id of the server
server_ensure_permissions() {
echo "Checking file permissions... "
server_property "$1" USERNAME
chown ${SERVER_USERNAME[$1]} -c -R ${SERVER_PATH[$1]}
chmod a+r,u+w -R -c ${SERVER_PATH[$1]}
find ${SERVER_PATH[$1]} -type d -exec chmod 0777 -c {} \;
echo Done.
return 0
}

# Moves a servers worlds into RAM
# $1: The ID of the server
server_worlds_to_ram() {
Expand Down Expand Up @@ -1253,6 +1264,7 @@ server_create() {
manager_property SERVER_PROPERTIES
manager_property DEFAULT_WORLD_STORAGE_PATH
manager_property JAR_STORAGE_PATH
manager_property DEFAULT_JARGROUP

if [[ -d "$SETTINGS_SERVER_STORAGE_PATH/$1" ]]; then
error_exit DUPLICATE_NAME "A server with that name already exists."
Expand Down Expand Up @@ -1282,13 +1294,19 @@ server_create() {
SERVER_CONF[$NUM_SERVERS]="$SETTINGS_SERVER_STORAGE_PATH/$1/$SETTINGS_SERVER_PROPERTIES"
NUM_SERVERS=$(($NUM_SERVERS+1))

# TODO: Dirty all server varibales, or don't allow further in script access
# TODO: Dirty all server variables, or don't allow further in script access

# TODO: Handle server default setup stuff better than just using
# the "minecraft" jar group. And make it configurable.
if [ -d "$SETTINGS_JAR_STORAGE_PATH/minecraft" ]; then
if [ ! -z "$SETTINGS_DEFAULT_JARGROUP" ]; then
server_get_id "$1"
server_set_jar "$RETURN" "minecraft"
echo Creating server with default jar group $SETTINGS_DEFAULT_JARGROUP
server_set_jar "$RETURN" "$SETTINGS_DEFAULT_JARGROUP"
else
if [ -d "$SETTINGS_JAR_STORAGE_PATH/minecraft" ]; then
server_get_id "$1"
server_set_jar "$RETURN" "minecraft"
fi
fi
fi
fi
Expand Down Expand Up @@ -1374,6 +1392,7 @@ server_start() {
fi
server_ensure_jar "$1"
server_ensure_links "$1"
server_ensure_permissions "$1"
server_worlds_to_ram "$1"

local time_now="$(now)"
Expand Down Expand Up @@ -3119,7 +3138,9 @@ command_server_cmdlog() {
command_server_console() {
if server_is_running "$1"; then
server_property "$1" USERNAME
as_user "${SERVER_USERNAME[$1]}" "screen -r ${SERVER_SCREEN_NAME[$1]}"
#as_user "${SERVER_USERNAME[$1]}" "screen -r ${SERVER_SCREEN_NAME[$1]}"
#as_user "${SERVER_USERNAME[$1]}" "screen -d -r -m ${SERVER_SCREEN_NAME[$1]}"
ssh -t "${SERVER_USERNAME[$1]}"@localhost "screen -r ${SERVER_SCREEN_NAME[$1]}"
else
error_exit SERVER_STOPPED "Server \"${SERVER_NAME[$1]}\" is not running."
fi
Expand Down Expand Up @@ -3222,6 +3243,7 @@ register_settings() {
register_setting BACKUP_ARCHIVE_PATH "/opt/msm/archives/backups"

register_setting JARGROUP_TARGET "target.txt"
register_setting DEFAULT_JARGROUP "minecraft"
register_setting JARGROUP_DOWNLOAD_DIR "downloads"
register_setting SERVER_PROPERTIES "server.properties"

Expand Down