2022-03-19 12:46:56 +01:00
|
|
|
// SPDX-License-Identifier: GPL-3.0-only
|
|
|
|
|
/*
|
2023-04-17 10:16:03 +01:00
|
|
|
* Prism Launcher - Minecraft Launcher
|
2022-04-07 19:46:41 +01:00
|
|
|
* Copyright (c) 2022 Jamie Mansfield <jmansfield@cadixdev.org>
|
2022-03-19 12:46:56 +01:00
|
|
|
* Copyright (C) 2022 Sefa Eyeoglu <contact@scrumplex.net>
|
2022-12-20 22:42:34 +00:00
|
|
|
* Copyright (C) 2022 Lenny McLennington <lenny@sneed.church>
|
2023-04-17 10:16:03 +01:00
|
|
|
* Copyright (C) 2023 TheKodeToad <TheKodeToad@proton.me>
|
2022-03-19 12:46:56 +01:00
|
|
|
*
|
|
|
|
|
* This program is free software: you can redistribute it and/or modify
|
|
|
|
|
* it under the terms of the GNU General Public License as published by
|
|
|
|
|
* the Free Software Foundation, version 3.
|
|
|
|
|
*
|
|
|
|
|
* This program is distributed in the hope that it will be useful,
|
|
|
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
|
|
|
* GNU General Public License for more details.
|
|
|
|
|
*
|
|
|
|
|
* You should have received a copy of the GNU General Public License
|
|
|
|
|
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
|
|
|
*
|
|
|
|
|
* This file incorporates work covered by the following copyright and
|
|
|
|
|
* permission notice:
|
|
|
|
|
*
|
|
|
|
|
* Copyright 2013-2021 MultiMC Contributors
|
|
|
|
|
*
|
|
|
|
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
|
|
|
* you may not use this file except in compliance with the License.
|
|
|
|
|
* You may obtain a copy of the License at
|
|
|
|
|
*
|
|
|
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
|
*
|
|
|
|
|
* Unless required by applicable law or agreed to in writing, software
|
|
|
|
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
|
|
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
|
|
|
* See the License for the specific language governing permissions and
|
|
|
|
|
* limitations under the License.
|
|
|
|
|
*/
|
|
|
|
|
|
2014-04-05 22:58:47 +02:00
|
|
|
#pragma once
|
|
|
|
|
#include <QString>
|
2023-04-06 19:18:36 +01:00
|
|
|
#include <QList>
|
2014-04-05 22:58:47 +02:00
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* \brief The Config class holds all the build-time information passed from the build system.
|
|
|
|
|
*/
|
2022-05-08 15:22:50 +08:00
|
|
|
class Config {
|
|
|
|
|
public:
|
2018-07-15 14:51:05 +02:00
|
|
|
Config();
|
2021-10-18 00:47:02 +02:00
|
|
|
QString LAUNCHER_NAME;
|
2022-10-21 21:29:28 -04:00
|
|
|
QString LAUNCHER_APP_BINARY_NAME;
|
2021-10-18 00:47:02 +02:00
|
|
|
QString LAUNCHER_DISPLAYNAME;
|
|
|
|
|
QString LAUNCHER_COPYRIGHT;
|
|
|
|
|
QString LAUNCHER_DOMAIN;
|
|
|
|
|
QString LAUNCHER_CONFIGFILE;
|
2021-10-20 23:06:21 +02:00
|
|
|
QString LAUNCHER_GIT;
|
2022-02-10 08:56:34 +01:00
|
|
|
QString LAUNCHER_DESKTOPFILENAME;
|
2022-10-29 16:10:18 +01:00
|
|
|
QString LAUNCHER_SVGFILENAME;
|
2021-10-18 00:47:02 +02:00
|
|
|
|
2018-07-15 14:51:05 +02:00
|
|
|
/// The major version number.
|
|
|
|
|
int VERSION_MAJOR;
|
|
|
|
|
/// The minor version number.
|
|
|
|
|
int VERSION_MINOR;
|
2014-04-05 22:58:47 +02:00
|
|
|
|
2018-07-15 14:51:05 +02:00
|
|
|
/**
|
|
|
|
|
* The version channel
|
|
|
|
|
* This is used by the updater to determine what channel the current version came from.
|
|
|
|
|
*/
|
|
|
|
|
QString VERSION_CHANNEL;
|
2014-04-05 22:58:47 +02:00
|
|
|
|
2018-07-15 14:51:05 +02:00
|
|
|
bool UPDATER_ENABLED = false;
|
2015-12-28 04:45:49 +01:00
|
|
|
|
2018-07-15 14:51:05 +02:00
|
|
|
/// A short string identifying this build's platform. For example, "lin64" or "win32".
|
|
|
|
|
QString BUILD_PLATFORM;
|
2014-04-05 22:58:47 +02:00
|
|
|
|
2022-07-23 14:20:52 +02:00
|
|
|
/// A string containing the build timestamp
|
|
|
|
|
QString BUILD_DATE;
|
|
|
|
|
|
2018-07-15 14:51:05 +02:00
|
|
|
/// URL for the updater's channel
|
2021-09-04 21:27:09 +02:00
|
|
|
QString UPDATER_BASE;
|
2014-04-05 22:58:47 +02:00
|
|
|
|
2022-04-19 02:09:16 -04:00
|
|
|
/// The public key used to sign releases for the Sparkle updater appcast
|
|
|
|
|
QString MAC_SPARKLE_PUB_KEY;
|
|
|
|
|
|
|
|
|
|
/// URL for the Sparkle updater's appcast
|
|
|
|
|
QString MAC_SPARKLE_APPCAST_URL;
|
|
|
|
|
|
2021-07-01 19:24:29 +01:00
|
|
|
/// User-Agent to use.
|
2021-10-18 00:47:02 +02:00
|
|
|
QString USER_AGENT;
|
|
|
|
|
|
2021-07-01 19:24:29 +01:00
|
|
|
/// User-Agent to use for uncached requests.
|
2021-10-18 00:47:02 +02:00
|
|
|
QString USER_AGENT_UNCACHED;
|
|
|
|
|
|
2018-07-15 14:51:05 +02:00
|
|
|
/// The git commit hash of this build
|
|
|
|
|
QString GIT_COMMIT;
|
2014-04-05 22:58:47 +02:00
|
|
|
|
2022-06-17 21:55:55 +02:00
|
|
|
/// The git tag of this build
|
|
|
|
|
QString GIT_TAG;
|
|
|
|
|
|
2018-07-15 14:51:05 +02:00
|
|
|
/// The git refspec of this build
|
|
|
|
|
QString GIT_REFSPEC;
|
2015-12-28 04:45:49 +01:00
|
|
|
|
2018-07-15 14:51:05 +02:00
|
|
|
/**
|
|
|
|
|
* This is used to fetch the news RSS feed.
|
2018-11-02 12:04:08 +00:00
|
|
|
* It defaults in CMakeLists.txt to "https://multimc.org/rss.xml"
|
2018-07-15 14:51:05 +02:00
|
|
|
*/
|
|
|
|
|
QString NEWS_RSS_URL;
|
2014-04-05 22:58:47 +02:00
|
|
|
|
2022-02-10 13:14:25 +01:00
|
|
|
/**
|
|
|
|
|
* URL that gets opened when the user clicks "More News"
|
|
|
|
|
*/
|
|
|
|
|
QString NEWS_OPEN_URL;
|
|
|
|
|
|
2022-03-06 11:31:50 +01:00
|
|
|
/**
|
|
|
|
|
* URL (with arg %1 to be substituted with page-id) that gets opened when the user requests help
|
|
|
|
|
*/
|
|
|
|
|
QString HELP_URL;
|
|
|
|
|
|
2021-07-01 19:49:38 +01:00
|
|
|
/**
|
|
|
|
|
* Client ID you can get from Imgur when you register an application
|
|
|
|
|
*/
|
|
|
|
|
QString IMGUR_CLIENT_ID;
|
2021-12-29 10:37:09 -05:00
|
|
|
|
2021-12-20 02:41:08 +00:00
|
|
|
/**
|
|
|
|
|
* Client ID you can get from Microsoft Identity Platform when you register an application
|
|
|
|
|
*/
|
|
|
|
|
QString MSA_CLIENT_ID;
|
2021-07-01 19:49:38 +01:00
|
|
|
|
2022-05-08 15:22:50 +08:00
|
|
|
/**
|
|
|
|
|
* Client API key for CurseForge
|
|
|
|
|
*/
|
2022-05-29 21:29:07 +02:00
|
|
|
QString FLAME_API_KEY;
|
2022-05-08 15:22:50 +08:00
|
|
|
|
2022-12-20 22:42:34 +00:00
|
|
|
/**
|
|
|
|
|
* URL to fetch the Client API key for CurseForge from
|
|
|
|
|
*/
|
|
|
|
|
QString FLAME_API_KEY_API_URL;
|
|
|
|
|
|
2020-07-18 16:18:02 +02:00
|
|
|
/**
|
2021-10-18 00:47:02 +02:00
|
|
|
* Metadata repository URL prefix
|
2020-07-18 16:18:02 +02:00
|
|
|
*/
|
|
|
|
|
QString META_URL;
|
|
|
|
|
|
2021-06-18 12:24:20 +01:00
|
|
|
QString BUG_TRACKER_URL;
|
2022-02-10 14:55:52 +01:00
|
|
|
QString TRANSLATIONS_URL;
|
2022-03-08 18:41:23 +01:00
|
|
|
QString MATRIX_URL;
|
2021-06-18 12:24:20 +01:00
|
|
|
QString DISCORD_URL;
|
|
|
|
|
QString SUBREDDIT_URL;
|
|
|
|
|
|
2020-07-18 16:18:02 +02:00
|
|
|
QString RESOURCE_BASE = "https://resources.download.minecraft.net/";
|
|
|
|
|
QString LIBRARY_BASE = "https://libraries.minecraft.net/";
|
|
|
|
|
QString AUTH_BASE = "https://authserver.mojang.com/";
|
|
|
|
|
QString IMGUR_BASE_URL = "https://api.imgur.com/3/";
|
2022-10-18 09:01:48 +02:00
|
|
|
QString FMLLIBS_BASE_URL = "https://files.prismlauncher.org/fmllibs/"; // FIXME: move into CMakeLists
|
|
|
|
|
QString TRANSLATIONS_BASE_URL = "https://i18n.prismlauncher.org/"; // FIXME: move into CMakeLists
|
2020-07-18 16:18:02 +02:00
|
|
|
|
2020-06-07 16:14:47 +01:00
|
|
|
QString MODPACKSCH_API_BASE_URL = "https://api.modpacks.ch/";
|
|
|
|
|
|
2020-07-18 16:18:02 +02:00
|
|
|
QString LEGACY_FTB_CDN_BASE_URL = "https://dist.creeper.host/FTB2/";
|
|
|
|
|
|
2020-08-24 23:13:43 +01:00
|
|
|
QString ATL_DOWNLOAD_SERVER_URL = "https://download.nodecdn.net/containers/atl/";
|
2022-04-07 19:46:41 +01:00
|
|
|
QString ATL_API_BASE_URL = "https://api.atlauncher.com/v1/";
|
2020-08-24 23:13:43 +01:00
|
|
|
|
2022-01-09 23:02:32 +00:00
|
|
|
QString TECHNIC_API_BASE_URL = "https://api.technicpack.net/";
|
|
|
|
|
/**
|
|
|
|
|
* The build that is reported to the Technic API.
|
|
|
|
|
*/
|
|
|
|
|
QString TECHNIC_API_BUILD = "multimc";
|
|
|
|
|
|
2022-05-15 07:43:02 -03:00
|
|
|
QString MODRINTH_STAGING_URL = "https://staging-api.modrinth.com/v2";
|
|
|
|
|
QString MODRINTH_PROD_URL = "https://api.modrinth.com/v2";
|
2023-04-06 19:18:36 +01:00
|
|
|
QStringList MODRINTH_MRPACK_HOSTS{"cdn.modrinth.com", "github.com", "raw.githubusercontent.com", "gitlab.com"};
|
2022-05-15 07:43:02 -03:00
|
|
|
|
2022-11-12 12:19:05 -03:00
|
|
|
QString FLAME_BASE_URL = "https://api.curseforge.com/v1";
|
|
|
|
|
|
2022-06-23 11:02:25 +02:00
|
|
|
QString versionString() const;
|
2018-07-15 14:51:05 +02:00
|
|
|
/**
|
|
|
|
|
* \brief Converts the Version to a string.
|
|
|
|
|
* \return The version number in string format (major.minor.revision.build).
|
|
|
|
|
*/
|
|
|
|
|
QString printableVersionString() const;
|
2014-04-05 22:58:47 +02:00
|
|
|
};
|
|
|
|
|
|
2020-07-18 16:18:02 +02:00
|
|
|
extern const Config BuildConfig;
|