Make Metaserver changable in settings
Co-authored-by: Sefa Eyeoglu <contact@scrumplex.net> Co-authored-by: flow <flowlnlnln@gmail.com>
This commit is contained in:
		| @@ -699,6 +699,8 @@ Application::Application(int &argc, char **argv) : QApplication(argc, argv) | ||||
|                 m_settings->reset("PastebinCustomAPIBase"); | ||||
|             } | ||||
|         } | ||||
|         // meta URL | ||||
|         m_settings->registerSetting("MetaURLOverride", ""); | ||||
|  | ||||
|         m_settings->registerSetting("CloseAfterLaunch", false); | ||||
|         m_settings->registerSetting("QuitAfterGameStop", false); | ||||
|   | ||||
| @@ -75,7 +75,16 @@ Meta::BaseEntity::~BaseEntity() | ||||
|  | ||||
| QUrl Meta::BaseEntity::url() const | ||||
| { | ||||
|     return QUrl(BuildConfig.META_URL).resolved(localFilename()); | ||||
|     auto s = APPLICATION->settings(); | ||||
|     QString metaOverride = s->get("MetaURLOverride").toString(); | ||||
|     if(metaOverride.isEmpty()) | ||||
|     { | ||||
|         return QUrl(BuildConfig.META_URL).resolved(localFilename()); | ||||
|     } | ||||
|     else | ||||
|     { | ||||
|         return QUrl(metaOverride).resolved(localFilename()); | ||||
|     } | ||||
| } | ||||
|  | ||||
| bool Meta::BaseEntity::loadLocalFile() | ||||
|   | ||||
| @@ -132,6 +132,8 @@ void APIPage::loadSettings() | ||||
|  | ||||
|     QString msaClientID = s->get("MSAClientIDOverride").toString(); | ||||
|     ui->msaClientID->setText(msaClientID); | ||||
|     QString metaURL = s->get("MetaURLOverride").toString(); | ||||
|     ui->metaURL->setText(metaURL); | ||||
|     QString curseKey = s->get("CFKeyOverride").toString(); | ||||
|     ui->curseKey->setText(curseKey); | ||||
| } | ||||
| @@ -145,6 +147,14 @@ void APIPage::applySettings() | ||||
|  | ||||
|     QString msaClientID = ui->msaClientID->text(); | ||||
|     s->set("MSAClientIDOverride", msaClientID); | ||||
|     QUrl metaURL = ui->metaURL->text(); | ||||
|     // Don't allow HTTP, since meta is basically RCE with all the jar files. | ||||
|     if(!metaURL.isEmpty() && metaURL.scheme() == "http") | ||||
|     { | ||||
|         metaURL.setScheme("https"); | ||||
|     } | ||||
|  | ||||
|     s->set("MetaURLOverride", metaURL); | ||||
|     QString curseKey = ui->curseKey->text(); | ||||
|     s->set("CFKeyOverride", curseKey); | ||||
| } | ||||
|   | ||||
| @@ -6,8 +6,8 @@ | ||||
|    <rect> | ||||
|     <x>0</x> | ||||
|     <y>0</y> | ||||
|     <width>512</width> | ||||
|     <height>538</height> | ||||
|     <width>800</width> | ||||
|     <height>600</height> | ||||
|    </rect> | ||||
|   </property> | ||||
|   <layout class="QVBoxLayout" name="verticalLayout"> | ||||
| @@ -85,6 +85,13 @@ | ||||
|           <string>&Microsoft Authentication</string> | ||||
|          </property> | ||||
|          <layout class="QVBoxLayout" name="verticalLayout_4"> | ||||
|           <item> | ||||
|            <widget class="Line" name="line_2"> | ||||
|             <property name="orientation"> | ||||
|              <enum>Qt::Horizontal</enum> | ||||
|             </property> | ||||
|            </widget> | ||||
|           </item> | ||||
|           <item> | ||||
|            <widget class="QLabel" name="label_3"> | ||||
|             <property name="text"> | ||||
| @@ -125,12 +132,9 @@ | ||||
|         </widget> | ||||
|        </item> | ||||
|        <item> | ||||
|         <widget class="QGroupBox" name="groupBox_curse"> | ||||
|          <property name="enabled"> | ||||
|           <bool>true</bool> | ||||
|          </property> | ||||
|         <widget class="QGroupBox" name="groupBox_meta"> | ||||
|          <property name="title"> | ||||
|           <string>&CurseForge Core API</string> | ||||
|           <string>Meta&data Server</string> | ||||
|          </property> | ||||
|          <layout class="QVBoxLayout" name="verticalLayout_5"> | ||||
|           <item> | ||||
| @@ -140,8 +144,63 @@ | ||||
|             </property> | ||||
|            </widget> | ||||
|           </item> | ||||
|           <item> | ||||
|            <widget class="QLabel" name="label_5"> | ||||
|             <property name="text"> | ||||
|              <string>You can set this to a third-party metadata server to use patched libraries or other hacks.</string> | ||||
|             </property> | ||||
|             <property name="textFormat"> | ||||
|              <enum>Qt::RichText</enum> | ||||
|             </property> | ||||
|             <property name="wordWrap"> | ||||
|              <bool>true</bool> | ||||
|             </property> | ||||
|            </widget> | ||||
|           </item> | ||||
|           <item> | ||||
|            <widget class="QLineEdit" name="metaURL"> | ||||
|             <property name="placeholderText"> | ||||
|              <string>(Default)</string> | ||||
|             </property> | ||||
|            </widget> | ||||
|           </item> | ||||
|           <item> | ||||
|            <widget class="QLabel" name="label_6"> | ||||
|             <property name="text"> | ||||
|              <string>Enter a custom URL for meta here.</string> | ||||
|             </property> | ||||
|             <property name="textFormat"> | ||||
|              <enum>Qt::RichText</enum> | ||||
|             </property> | ||||
|             <property name="wordWrap"> | ||||
|              <bool>true</bool> | ||||
|             </property> | ||||
|             <property name="openExternalLinks"> | ||||
|              <bool>true</bool> | ||||
|             </property> | ||||
|            </widget> | ||||
|           </item> | ||||
|          </layout> | ||||
|         </widget> | ||||
|        </item> | ||||
|        <item> | ||||
|         <widget class="QGroupBox" name="groupBox_curse"> | ||||
|          <property name="enabled"> | ||||
|           <bool>true</bool> | ||||
|          </property> | ||||
|          <property name="title"> | ||||
|           <string>&CurseForge Core API</string> | ||||
|          </property> | ||||
|          <layout class="QVBoxLayout" name="verticalLayout_6"> | ||||
|           <item> | ||||
|            <widget class="Line" name="line_4"> | ||||
|             <property name="orientation"> | ||||
|              <enum>Qt::Horizontal</enum> | ||||
|             </property> | ||||
|            </widget> | ||||
|           </item> | ||||
|           <item> | ||||
|            <widget class="QLabel" name="label_8"> | ||||
|             <property name="text"> | ||||
|              <string>Note: you probably don't need to set this if CurseForge already works.</string> | ||||
|             </property> | ||||
| @@ -158,7 +217,7 @@ | ||||
|            </widget> | ||||
|           </item> | ||||
|           <item> | ||||
|            <widget class="QLabel" name="label_5"> | ||||
|            <widget class="QLabel" name="label_7"> | ||||
|             <property name="text"> | ||||
|              <string>Enter a custom API Key for CurseForge here. </string> | ||||
|             </property> | ||||
|   | ||||
		Reference in New Issue
	
	Block a user