diff --git a/init/msm b/init/msm index c5354f4b..c2d4e53d 100755 --- a/init/msm +++ b/init/msm @@ -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 @@ -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() { @@ -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." @@ -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 @@ -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)" @@ -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 @@ -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"