// SPDX-License-Identifier: GPL-3.0-only /* * Prism Launcher - Minecraft Launcher * Copyright (c) 2022 Jamie Mansfield * Copyright (C) 2022 Sefa Eyeoglu * Copyright (C) 2023 TheKodeToad * * 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 . * * 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. */ #pragma once #include #include /** * \brief The Config class holds all the build-time information passed from the build system. */ class Config { public: Config(); QString LAUNCHER_NAME; QString LAUNCHER_APP_BINARY_NAME; QString LAUNCHER_DISPLAYNAME; QString LAUNCHER_COPYRIGHT; QString LAUNCHER_DOMAIN; QString LAUNCHER_CONFIGFILE; QString LAUNCHER_GIT; QString LAUNCHER_DESKTOPFILENAME; QString LAUNCHER_SVGFILENAME; /// The major version number. int VERSION_MAJOR; /// The minor version number. int VERSION_MINOR; /** * The version channel * This is used by the updater to determine what channel the current version came from. */ QString VERSION_CHANNEL; bool UPDATER_ENABLED = false; /// A short string identifying this build's platform. For example, "lin64" or "win32". QString BUILD_PLATFORM; /// A string containing the build timestamp QString BUILD_DATE; /// URL for the updater's channel QString UPDATER_GITHUB_REPO; /// 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; /// User-Agent to use. QString USER_AGENT; /// User-Agent to use for uncached requests. QString USER_AGENT_UNCACHED; /// The git commit hash of this build QString GIT_COMMIT; /// The git tag of this build QString GIT_TAG; /// The git refspec of this build QString GIT_REFSPEC; /** * This is used to fetch the news RSS feed. * It defaults in CMakeLists.txt to "https://multimc.org/rss.xml" */ QString NEWS_RSS_URL; /** * URL that gets opened when the user clicks "More News" */ QString NEWS_OPEN_URL; /** * URL (with arg %1 to be substituted with page-id) that gets opened when the user requests help */ QString HELP_URL; /** * Client ID you can get from Imgur when you register an application */ QString IMGUR_CLIENT_ID; /** * Client ID you can get from Microsoft Identity Platform when you register an application */ QString MSA_CLIENT_ID; /** * Client API key for CurseForge */ QString FLAME_API_KEY; /** * Metadata repository URL prefix */ QString META_URL; QString BUG_TRACKER_URL; QString TRANSLATIONS_URL; QString MATRIX_URL; QString DISCORD_URL; QString SUBREDDIT_URL; 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/"; 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 QString MODPACKSCH_API_BASE_URL = "https://api.modpacks.ch/"; QString LEGACY_FTB_CDN_BASE_URL = "https://dist.creeper.host/FTB2/"; QString ATL_DOWNLOAD_SERVER_URL = "https://download.nodecdn.net/containers/atl/"; QString ATL_API_BASE_URL = "https://api.atlauncher.com/v1/"; QString TECHNIC_API_BASE_URL = "https://api.technicpack.net/"; /** * The build that is reported to the Technic API. */ QString TECHNIC_API_BUILD = "multimc"; QString MODRINTH_STAGING_URL = "https://staging-api.modrinth.com/v2"; QString MODRINTH_PROD_URL = "https://api.modrinth.com/v2"; QStringList MODRINTH_MRPACK_HOSTS{"cdn.modrinth.com", "github.com", "raw.githubusercontent.com", "gitlab.com"}; QString FLAME_BASE_URL = "https://api.curseforge.com/v1"; QString versionString() const; /** * \brief Converts the Version to a string. * \return The version number in string format (major.minor.revision.build). */ QString printableVersionString() const; }; extern const Config BuildConfig;