2022-03-19 17:16:56 +05:30
|
|
|
// SPDX-License-Identifier: GPL-3.0-only
|
|
|
|
/*
|
|
|
|
* PolyMC - Minecraft Launcher
|
2022-04-08 00:16:41 +05:30
|
|
|
* Copyright (c) 2022 Jamie Mansfield <jmansfield@cadixdev.org>
|
2022-03-19 17:16:56 +05:30
|
|
|
* Copyright (C) 2022 Sefa Eyeoglu <contact@scrumplex.net>
|
|
|
|
*
|
|
|
|
* 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-06 02:28:47 +05:30
|
|
|
#pragma once
|
|
|
|
#include <QString>
|
2023-04-06 23:48:36 +05:30
|
|
|
#include <QList>
|
2014-04-06 02:28:47 +05:30
|
|
|
|
|
|
|
/**
|
|
|
|
* \brief The Config class holds all the build-time information passed from the build system.
|
|
|
|
*/
|
2022-05-08 12:52:50 +05:30
|
|
|
class Config {
|
|
|
|
public:
|
2018-07-15 18:21:05 +05:30
|
|
|
Config();
|
2021-10-18 04:17:02 +05:30
|
|
|
QString LAUNCHER_NAME;
|
2022-10-22 06:59:28 +05:30
|
|
|
QString LAUNCHER_APP_BINARY_NAME;
|
2021-10-18 04:17:02 +05:30
|
|
|
QString LAUNCHER_DISPLAYNAME;
|
|
|
|
QString LAUNCHER_COPYRIGHT;
|
|
|
|
QString LAUNCHER_DOMAIN;
|
|
|
|
QString LAUNCHER_CONFIGFILE;
|
2021-10-21 02:36:21 +05:30
|
|
|
QString LAUNCHER_GIT;
|
2022-02-10 13:26:34 +05:30
|
|
|
QString LAUNCHER_DESKTOPFILENAME;
|
2022-10-29 20:40:18 +05:30
|
|
|
QString LAUNCHER_SVGFILENAME;
|
2021-10-18 04:17:02 +05:30
|
|
|
|
2018-07-15 18:21:05 +05:30
|
|
|
/// The major version number.
|
|
|
|
int VERSION_MAJOR;
|
|
|
|
/// The minor version number.
|
|
|
|
int VERSION_MINOR;
|
2014-04-06 02:28:47 +05:30
|
|
|
|
2018-07-15 18:21:05 +05:30
|
|
|
/**
|
|
|
|
* The version channel
|
|
|
|
* This is used by the updater to determine what channel the current version came from.
|
|
|
|
*/
|
|
|
|
QString VERSION_CHANNEL;
|
2014-04-06 02:28:47 +05:30
|
|
|
|
2018-07-15 18:21:05 +05:30
|
|
|
bool UPDATER_ENABLED = false;
|
2015-12-28 09:15:49 +05:30
|
|
|
|
2018-07-15 18:21:05 +05:30
|
|
|
/// A short string identifying this build's platform. For example, "lin64" or "win32".
|
|
|
|
QString BUILD_PLATFORM;
|
2014-04-06 02:28:47 +05:30
|
|
|
|
2022-07-23 17:50:52 +05:30
|
|
|
/// A string containing the build timestamp
|
|
|
|
QString BUILD_DATE;
|
|
|
|
|
2018-07-15 18:21:05 +05:30
|
|
|
/// URL for the updater's channel
|
2021-09-05 00:57:09 +05:30
|
|
|
QString UPDATER_BASE;
|
2014-04-06 02:28:47 +05:30
|
|
|
|
2022-04-19 11:39:16 +05:30
|
|
|
/// 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 23:54:29 +05:30
|
|
|
/// User-Agent to use.
|
2021-10-18 04:17:02 +05:30
|
|
|
QString USER_AGENT;
|
|
|
|
|
2021-07-01 23:54:29 +05:30
|
|
|
/// User-Agent to use for uncached requests.
|
2021-10-18 04:17:02 +05:30
|
|
|
QString USER_AGENT_UNCACHED;
|
|
|
|
|
2018-07-15 18:21:05 +05:30
|
|
|
/// The git commit hash of this build
|
|
|
|
QString GIT_COMMIT;
|
2014-04-06 02:28:47 +05:30
|
|
|
|
2022-06-18 01:25:55 +05:30
|
|
|
/// The git tag of this build
|
|
|
|
QString GIT_TAG;
|
|
|
|
|
2018-07-15 18:21:05 +05:30
|
|
|
/// The git refspec of this build
|
|
|
|
QString GIT_REFSPEC;
|
2015-12-28 09:15:49 +05:30
|
|
|
|
2018-07-15 18:21:05 +05:30
|
|
|
/**
|
|
|
|
* This is used to fetch the news RSS feed.
|
2018-11-02 17:34:08 +05:30
|
|
|
* It defaults in CMakeLists.txt to "https://multimc.org/rss.xml"
|
2018-07-15 18:21:05 +05:30
|
|
|
*/
|
|
|
|
QString NEWS_RSS_URL;
|
2014-04-06 02:28:47 +05:30
|
|
|
|
2022-02-10 17:44:25 +05:30
|
|
|
/**
|
|
|
|
* URL that gets opened when the user clicks "More News"
|
|
|
|
*/
|
|
|
|
QString NEWS_OPEN_URL;
|
|
|
|
|
2022-03-06 16:01:50 +05:30
|
|
|
/**
|
|
|
|
* URL (with arg %1 to be substituted with page-id) that gets opened when the user requests help
|
|
|
|
*/
|
|
|
|
QString HELP_URL;
|
|
|
|
|
2021-07-02 00:19:38 +05:30
|
|
|
/**
|
|
|
|
* Client ID you can get from Imgur when you register an application
|
|
|
|
*/
|
|
|
|
QString IMGUR_CLIENT_ID;
|
2021-12-29 21:07:09 +05:30
|
|
|
|
2021-12-20 08:11:08 +05:30
|
|
|
/**
|
|
|
|
* Client ID you can get from Microsoft Identity Platform when you register an application
|
|
|
|
*/
|
|
|
|
QString MSA_CLIENT_ID;
|
2021-07-02 00:19:38 +05:30
|
|
|
|
2022-05-08 12:52:50 +05:30
|
|
|
/**
|
|
|
|
* Client API key for CurseForge
|
|
|
|
*/
|
2022-05-30 00:59:07 +05:30
|
|
|
QString FLAME_API_KEY;
|
2022-05-08 12:52:50 +05:30
|
|
|
|
2020-07-18 19:48:02 +05:30
|
|
|
/**
|
2021-10-18 04:17:02 +05:30
|
|
|
* Metadata repository URL prefix
|
2020-07-18 19:48:02 +05:30
|
|
|
*/
|
|
|
|
QString META_URL;
|
|
|
|
|
2021-06-18 16:54:20 +05:30
|
|
|
QString BUG_TRACKER_URL;
|
2022-02-10 19:25:52 +05:30
|
|
|
QString TRANSLATIONS_URL;
|
2022-03-08 23:11:23 +05:30
|
|
|
QString MATRIX_URL;
|
2021-06-18 16:54:20 +05:30
|
|
|
QString DISCORD_URL;
|
|
|
|
QString SUBREDDIT_URL;
|
|
|
|
|
2020-07-18 19:48:02 +05:30
|
|
|
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 12:31:48 +05:30
|
|
|
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 19:48:02 +05:30
|
|
|
|
GH-3095 New FTB platform support
Models are based on the models from my go-modpacksch library.
License:
========
The MIT License (MIT)
Copyright (c) Jamie Mansfield <https://www.jamiemansfield.me/>
Copyright (c) contributors
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
2020-06-07 20:44:47 +05:30
|
|
|
QString MODPACKSCH_API_BASE_URL = "https://api.modpacks.ch/";
|
|
|
|
|
2020-07-18 19:48:02 +05:30
|
|
|
QString LEGACY_FTB_CDN_BASE_URL = "https://dist.creeper.host/FTB2/";
|
|
|
|
|
2020-08-25 03:43:43 +05:30
|
|
|
QString ATL_DOWNLOAD_SERVER_URL = "https://download.nodecdn.net/containers/atl/";
|
2022-04-08 00:16:41 +05:30
|
|
|
QString ATL_API_BASE_URL = "https://api.atlauncher.com/v1/";
|
2020-08-25 03:43:43 +05:30
|
|
|
|
2022-01-10 04:32:32 +05:30
|
|
|
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 16:13:02 +05:30
|
|
|
QString MODRINTH_STAGING_URL = "https://staging-api.modrinth.com/v2";
|
|
|
|
QString MODRINTH_PROD_URL = "https://api.modrinth.com/v2";
|
2023-04-06 23:48:36 +05:30
|
|
|
QStringList MODRINTH_MRPACK_HOSTS{"cdn.modrinth.com", "github.com", "raw.githubusercontent.com", "gitlab.com"};
|
2022-05-15 16:13:02 +05:30
|
|
|
|
2022-11-12 20:49:05 +05:30
|
|
|
QString FLAME_BASE_URL = "https://api.curseforge.com/v1";
|
|
|
|
|
2022-06-23 14:32:25 +05:30
|
|
|
QString versionString() const;
|
2018-07-15 18:21:05 +05:30
|
|
|
/**
|
|
|
|
* \brief Converts the Version to a string.
|
|
|
|
* \return The version number in string format (major.minor.revision.build).
|
|
|
|
*/
|
|
|
|
QString printableVersionString() const;
|
2014-04-06 02:28:47 +05:30
|
|
|
};
|
|
|
|
|
2020-07-18 19:48:02 +05:30
|
|
|
extern const Config BuildConfig;
|