diff --git a/.gitignore b/.gitignore index ad317f6..8fab217 100644 --- a/.gitignore +++ b/.gitignore @@ -4,6 +4,4 @@ res/objects/ res/skins/ res/log_configs/ lib/* -earlyLauncher/offline.txt -earlyLauncher/logs/ **/*.pyc diff --git a/devtools/rmpyc b/devtools/rmpyc new file mode 100644 index 0000000..e189bd8 --- /dev/null +++ b/devtools/rmpyc @@ -0,0 +1,4 @@ +#!/bin/bash +shopt -s globstar +rm -v ./**/*.pyc + diff --git a/earlyLauncher/config.txt b/earlyLauncher/config.txt deleted file mode 100644 index 85589c7..0000000 --- a/earlyLauncher/config.txt +++ /dev/null @@ -1,9 +0,0 @@ -ram=8 -#The multipiler for RAM amount (nothing, k, M or G) -alignTo=G -#Files -assets=../res/ -gameDir=../run/ -libs=../lib/ -java_executable=/usr/lib/jvm/java-8-openjdk-amd64/bin/java - diff --git a/earlyLauncher/earlylauncher.py b/earlyLauncher/earlylauncher.py deleted file mode 100644 index eaf377f..0000000 --- a/earlyLauncher/earlylauncher.py +++ /dev/null @@ -1,140 +0,0 @@ -#!/usr/bin/python2 - -#why does the bang not work? -import urllib2, json, os, sys -print "LinuxMint4Ever's EarlyLauncher version BETA 2.6" - -#globally used variables -config = [] -offlineData = [] -main = (__name__ == "__main__") - -#When run directly, make sure that we are in the correct directory. -if main: - if os.path.isfile(os.path.join(os.getcwd(), "earlylauncher.py")): - pass - else: - print "Error: Not running from the EarlyLauncher Directory" - sys.exit(1) - -def readFile(fileName): - fileReader = open(fileName, "r") - fileContents = fileReader.read() - fileReader.close() - return fileContents - -def loadConfig(configFile = "config.txt"): - global config - #read the config file and if run directly, do error handling as well - if main: - try: - configRaw=readFile(configFile).split("\n") - except: - print "Error: Could not read config file." - sys.exit(1) - else: - configRaw=readFile(configFile).split("\n") - #TODO: Raise an exception in case of an error - #put config options and values in a two dimensional list - for i in range(len(configRaw)): - #ignore empty lines and comments - if configRaw[i] == "": - pass - elif configRaw[i][0] == '#': - pass - else: - config = config + [configRaw[i].split("=")] - -def loadOfflineData(offlineDataFile = "offline.txt"): - global offlineData - #read the config file and if run directly, do error handling as well - if main: - try: - dataRaw=readFile(offlineDataFile).split("\n") - except: - print "Error: Could not read offline data file." - sys.exit(1) - else: - #TODO: Raise an exception in case of an error - dataRaw=readFile(offlineDataFile).split("\n") - #put config options and values in a two dimensional list - for i in range(len(dataRaw)): - #ignore empty lines and comments - if dataRaw[i] == "": - pass - elif dataRaw[i][0] == '#': - pass - else: - offlineData = offlineData + [dataRaw[i].split("=")] - -def getDataOff2DArray(key, array): - for i in range(len(array)): - if array[i][0]==key: - return array[i][1] - -def getToken(username, password): - data = { - "agent": { - "name": "Minecraft", - "version": 1 - }, - "username": username, - "password": password - } - try: - request = urllib2.Request(url='https://authserver.mojang.com/authenticate', data=json.dumps(data).encode(), headers={"Content-Type": "application/json"}) - answer = json.loads(urllib2.urlopen(request).read().decode()) - except urllib2.HTTPError: - if main: - print "Invalid user information! (or something went wrong)" - sys.exit(1) - else: - #TODO: raise an exception - return False, False, False - except urllib2.URLError: - if main: - print "Authentication server not reachable. Re-launching last user session." - loadOfflineData() - return getDataOff2DArray("access_token", offlineData), getDataOff2DArray("profile_id", offlineData), getDataOff2DArray("username", offlineData) - else: - #TODO: raise an exception - return False, False, False - - username = answer['selectedProfile']['name'] - access_token = answer['accessToken'] - profile_id = answer['selectedProfile']['id'] - - - return access_token, profile_id, username - -def deRelative(cwd, path): - return os.path.join(cwd, path) - -def run(java_executable, ram, alignTo, libs, username, gameDir, assets, uuid, accessToken, width=1366, height=768): - cwd = os.getcwd() - os.chdir(gameDir) - exitCode = os.system(deRelative(cwd, java_executable)+" -Xmx"+ram+alignTo+" -XX:+UseConcMarkSweepGC -XX:+CMSIncrementalMode -XX:-UseAdaptiveSizePolicy -Xmn128M -Djava.library.path="+os.path.join(deRelative(cwd, libs), "natives")+" -cp "+os.path.join(deRelative(cwd, libs),"jar")+os.sep+(":"+os.path.join(deRelative(cwd,libs),"jar")+os.sep).join(os.listdir(os.path.join(deRelative(cwd, libs),"jar")))+" net.minecraft.launchwrapper.Launch --username "+username+" --version 1.7.10-Forge10.13.4.1614-1.7.10 --gameDir "+deRelative(cwd,gameDir)+" --assetsDir "+deRelative(cwd, assets)+" --assetIndex 1.7.10 --uuid "+str(uuid)+" --accessToken "+accessToken+" --userProperties {} --userType mojang --width "+str(width)+" --height "+str(height)+" --tweakClass cpw.mods.fml.common.launcher.FMLTweaker") - os.chdir(cwd) - return exitCode - -if main: - loadConfig() - ram = getDataOff2DArray("ram", config) - alignTo = getDataOff2DArray("alignTo", config) - assets = getDataOff2DArray("assets", config) - gameDir = getDataOff2DArray("gameDir", config) - libs = getDataOff2DArray("libs", config) - java_executable = getDataOff2DArray("java_executable", config) - #TODO: allow the use of sys.argv to override config - - login=raw_input("eMail or username: ") - pw=raw_input("Password: ") - accessToken, uuid, username = getToken(str(login), str(pw)) - try: - offlineDataFile = open("offline.txt", "w") - offlineDataFile.write("username="+username+"\naccess_token="+accessToken+"\nprofile_id="+uuid) - offlineDataFile.close() - except: - print "Error creating offline login data. Proceeding with launch anyways." - sys.exit(run(java_executable, ram, alignTo, libs, username, gameDir, assets, uuid, accessToken)) - diff --git a/main.ui b/main.ui deleted file mode 100644 index 5484145..0000000 --- a/main.ui +++ /dev/null @@ -1,444 +0,0 @@ - - - Launcher - - - - 0 - 0 - 401 - 302 - - - - - 0 - 0 - - - - - 401 - 302 - - - - - 401 - 302 - - - - Jan’s Minecraft Mod Pack Launcher - - - - - 0 - 0 - 401 - 251 - - - - QTabWidget::Rounded - - - 3 - - - - News && Updates - - - - - 0 - 0 - 401 - 221 - - - - - about:blank - - - - - - - Mod Infos && Credits - - - - - -1 - -1 - 401 - 221 - - - - - about:blank - - - - - - - Server Info - - - - - -1 - 0 - 401 - 221 - - - - - about:blank - - - - - - - Preferences - - - - - 10 - 0 - 381 - 101 - - - - Login Information - - - - - 0 - 20 - 381 - 29 - - - - <previously entered> - - - e-Mail or username - - - - - - 0 - 50 - 381 - 29 - - - - You fool! - - - QLineEdit::Password - - - false - - - Password - - - - - - 0 - 80 - 71 - 21 - - - - Save! - - - - - - 70 - 80 - 71 - 21 - - - - Logout :( - - - - - - - 10 - 110 - 381 - 71 - - - - Performance Settings - - - - - 0 - 20 - 111 - 25 - - - - - <Type of CPU> - - - - - Daddy's old laptop - - - - - Modern Laptop - - - - - Generic Single Core - - - - - Modern Single Core (Seriously!? Why?) - - - - - Generic Dual Core - - - - - Modern Dual Core or Threaded - - - - - Generic Multi Core - - - - - Modern Multi Core - - - - - Extremely too many cores - - - - - NO LIMITS! - - - - - - - 110 - 20 - 111 - 25 - - - - - <Type of GPU> - - - - - Daddy's old laptop - - - - - Generic laptop dedicated - - - - - Modern laptop integrated - - - - - Modern Laptop dedicated - - - - - Generic Integrated (or low-power office PC graphics card) - - - - - Modern Integrated (or modern office PC ... 1030? I am looking at you.) - - - - - Generic Dedicated - - - - - Modern Dedicated - - - - - GAMING!!! - - - - - When will RayTracing be available? - - - - - - - 220 - 20 - 111 - 25 - - - - - <Ram available> - - - - - - - 0 - 50 - 71 - 21 - - - - Save! - - - - - - 70 - 50 - 101 - 21 - - - - Try auto-detect - - - - - - - - - 310 - 260 - 81 - 16 - - - - Server: Offline - - - - - - 300 - 280 - 101 - 21 - - - - Request Startup - - - false - - - - - - 0 - 250 - 101 - 51 - - - - 24 - - - Updating... - - - - - - 100 - 250 - 201 - 51 - - - - PLAY! :) - - - - - - QWebView - QWidget -
QtWebKitWidgets/QWebView
-
-
- - -
diff --git a/ui.py b/ui.py deleted file mode 100644 index 45ec43c..0000000 --- a/ui.py +++ /dev/null @@ -1,172 +0,0 @@ -# -*- coding: utf-8 -*- - -# Form implementation generated from reading ui file 'main.ui' -# -# Created by: PyQt5 UI code generator 5.10.1 -# -# WARNING! All changes made in this file will be lost! - -from PyQt5 import QtCore, QtGui, QtWidgets - -class Ui_Launcher(object): - def setupUi(self, Launcher): - Launcher.setObjectName("Launcher") - Launcher.resize(401, 302) - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(Launcher.sizePolicy().hasHeightForWidth()) - Launcher.setSizePolicy(sizePolicy) - Launcher.setMinimumSize(QtCore.QSize(401, 302)) - Launcher.setMaximumSize(QtCore.QSize(401, 302)) - self.tabWidget = QtWidgets.QTabWidget(Launcher) - self.tabWidget.setGeometry(QtCore.QRect(0, 0, 401, 251)) - self.tabWidget.setTabShape(QtWidgets.QTabWidget.Rounded) - self.tabWidget.setObjectName("tabWidget") - self.tabUpdates = QtWidgets.QWidget() - self.tabUpdates.setObjectName("tabUpdates") - self.webUpdates = QtWebKitWidgets.QWebView(self.tabUpdates) - self.webUpdates.setGeometry(QtCore.QRect(0, 0, 401, 221)) - self.webUpdates.setUrl(QtCore.QUrl("about:blank")) - self.webUpdates.setObjectName("webUpdates") - self.tabWidget.addTab(self.tabUpdates, "") - self.tabMods = QtWidgets.QWidget() - self.tabMods.setObjectName("tabMods") - self.webMods = QtWebKitWidgets.QWebView(self.tabMods) - self.webMods.setGeometry(QtCore.QRect(-1, -1, 401, 221)) - self.webMods.setUrl(QtCore.QUrl("about:blank")) - self.webMods.setObjectName("webMods") - self.tabWidget.addTab(self.tabMods, "") - self.tabServer = QtWidgets.QWidget() - self.tabServer.setObjectName("tabServer") - self.webServerInfo = QtWebKitWidgets.QWebView(self.tabServer) - self.webServerInfo.setGeometry(QtCore.QRect(-1, 0, 401, 221)) - self.webServerInfo.setUrl(QtCore.QUrl("about:blank")) - self.webServerInfo.setObjectName("webServerInfo") - self.tabWidget.addTab(self.tabServer, "") - self.tabPreferences = QtWidgets.QWidget() - self.tabPreferences.setObjectName("tabPreferences") - self.groupLogin = QtWidgets.QGroupBox(self.tabPreferences) - self.groupLogin.setGeometry(QtCore.QRect(10, 0, 381, 101)) - self.groupLogin.setObjectName("groupLogin") - self.lineUsername = QtWidgets.QLineEdit(self.groupLogin) - self.lineUsername.setGeometry(QtCore.QRect(0, 20, 381, 29)) - self.lineUsername.setObjectName("lineUsername") - self.linePassword = QtWidgets.QLineEdit(self.groupLogin) - self.linePassword.setGeometry(QtCore.QRect(0, 50, 381, 29)) - self.linePassword.setEchoMode(QtWidgets.QLineEdit.Password) - self.linePassword.setReadOnly(False) - self.linePassword.setObjectName("linePassword") - self.buttonSaveUser = QtWidgets.QPushButton(self.groupLogin) - self.buttonSaveUser.setGeometry(QtCore.QRect(0, 80, 71, 21)) - self.buttonSaveUser.setObjectName("buttonSaveUser") - self.buttonLogout = QtWidgets.QPushButton(self.groupLogin) - self.buttonLogout.setGeometry(QtCore.QRect(70, 80, 71, 21)) - self.buttonLogout.setObjectName("buttonLogout") - self.groupPerformance = QtWidgets.QGroupBox(self.tabPreferences) - self.groupPerformance.setGeometry(QtCore.QRect(10, 110, 381, 71)) - self.groupPerformance.setObjectName("groupPerformance") - self.dropdownCPU = QtWidgets.QComboBox(self.groupPerformance) - self.dropdownCPU.setGeometry(QtCore.QRect(0, 20, 111, 25)) - self.dropdownCPU.setObjectName("dropdownCPU") - self.dropdownCPU.addItem("") - self.dropdownCPU.addItem("") - self.dropdownCPU.addItem("") - self.dropdownCPU.addItem("") - self.dropdownCPU.addItem("") - self.dropdownCPU.addItem("") - self.dropdownCPU.addItem("") - self.dropdownCPU.addItem("") - self.dropdownCPU.addItem("") - self.dropdownCPU.addItem("") - self.dropdownCPU.addItem("") - self.dropdownGPU = QtWidgets.QComboBox(self.groupPerformance) - self.dropdownGPU.setGeometry(QtCore.QRect(110, 20, 111, 25)) - self.dropdownGPU.setObjectName("dropdownGPU") - self.dropdownGPU.addItem("") - self.dropdownGPU.addItem("") - self.dropdownGPU.addItem("") - self.dropdownGPU.addItem("") - self.dropdownGPU.addItem("") - self.dropdownGPU.addItem("") - self.dropdownGPU.addItem("") - self.dropdownGPU.addItem("") - self.dropdownGPU.addItem("") - self.dropdownGPU.addItem("") - self.dropdownGPU.addItem("") - self.dropdownRAM = QtWidgets.QComboBox(self.groupPerformance) - self.dropdownRAM.setGeometry(QtCore.QRect(220, 20, 111, 25)) - self.dropdownRAM.setObjectName("dropdownRAM") - self.dropdownRAM.addItem("") - self.buttonSavePerformance = QtWidgets.QPushButton(self.groupPerformance) - self.buttonSavePerformance.setGeometry(QtCore.QRect(0, 50, 71, 21)) - self.buttonSavePerformance.setObjectName("buttonSavePerformance") - self.buttonAutoDetectPerformance = QtWidgets.QPushButton(self.groupPerformance) - self.buttonAutoDetectPerformance.setGeometry(QtCore.QRect(70, 50, 101, 21)) - self.buttonAutoDetectPerformance.setObjectName("buttonAutoDetectPerformance") - self.tabWidget.addTab(self.tabPreferences, "") - self.labelServerStatus = QtWidgets.QLabel(Launcher) - self.labelServerStatus.setGeometry(QtCore.QRect(310, 260, 81, 16)) - self.labelServerStatus.setObjectName("labelServerStatus") - self.buttonServerStartup = QtWidgets.QPushButton(Launcher) - self.buttonServerStartup.setGeometry(QtCore.QRect(300, 280, 101, 21)) - self.buttonServerStartup.setCheckable(False) - self.buttonServerStartup.setObjectName("buttonServerStartup") - self.progressUpdate = QtWidgets.QProgressBar(Launcher) - self.progressUpdate.setGeometry(QtCore.QRect(0, 250, 101, 51)) - self.progressUpdate.setProperty("value", 24) - self.progressUpdate.setObjectName("progressUpdate") - self.buttonPlay = QtWidgets.QPushButton(Launcher) - self.buttonPlay.setGeometry(QtCore.QRect(100, 250, 201, 51)) - self.buttonPlay.setObjectName("buttonPlay") - - self.retranslateUi(Launcher) - self.tabWidget.setCurrentIndex(3) - QtCore.QMetaObject.connectSlotsByName(Launcher) - - def retranslateUi(self, Launcher): - _translate = QtCore.QCoreApplication.translate - Launcher.setWindowTitle(_translate("Launcher", "Jan’s Minecraft Mod Pack Launcher")) - self.tabWidget.setTabText(self.tabWidget.indexOf(self.tabUpdates), _translate("Launcher", "News && Updates")) - self.tabWidget.setTabText(self.tabWidget.indexOf(self.tabMods), _translate("Launcher", "Mod Infos && Credits")) - self.tabWidget.setTabText(self.tabWidget.indexOf(self.tabServer), _translate("Launcher", "Server Info")) - self.groupLogin.setTitle(_translate("Launcher", "Login Information")) - self.lineUsername.setText(_translate("Launcher", "")) - self.lineUsername.setPlaceholderText(_translate("Launcher", "e-Mail or username")) - self.linePassword.setText(_translate("Launcher", "You fool!")) - self.linePassword.setPlaceholderText(_translate("Launcher", "Password")) - self.buttonSaveUser.setText(_translate("Launcher", "Save!")) - self.buttonLogout.setText(_translate("Launcher", "Logout :(")) - self.groupPerformance.setTitle(_translate("Launcher", "Performance Settings")) - self.dropdownCPU.setItemText(0, _translate("Launcher", "")) - self.dropdownCPU.setItemText(1, _translate("Launcher", "Daddy\'s old laptop")) - self.dropdownCPU.setItemText(2, _translate("Launcher", "Modern Laptop")) - self.dropdownCPU.setItemText(3, _translate("Launcher", "Generic Single Core")) - self.dropdownCPU.setItemText(4, _translate("Launcher", "Modern Single Core (Seriously!? Why?)")) - self.dropdownCPU.setItemText(5, _translate("Launcher", "Generic Dual Core")) - self.dropdownCPU.setItemText(6, _translate("Launcher", "Modern Dual Core or Threaded")) - self.dropdownCPU.setItemText(7, _translate("Launcher", "Generic Multi Core")) - self.dropdownCPU.setItemText(8, _translate("Launcher", "Modern Multi Core")) - self.dropdownCPU.setItemText(9, _translate("Launcher", "Extremely too many cores")) - self.dropdownCPU.setItemText(10, _translate("Launcher", "NO LIMITS!")) - self.dropdownGPU.setItemText(0, _translate("Launcher", "")) - self.dropdownGPU.setItemText(1, _translate("Launcher", "Daddy\'s old laptop")) - self.dropdownGPU.setItemText(2, _translate("Launcher", "Generic laptop dedicated")) - self.dropdownGPU.setItemText(3, _translate("Launcher", "Modern laptop integrated")) - self.dropdownGPU.setItemText(4, _translate("Launcher", "Modern Laptop dedicated")) - self.dropdownGPU.setItemText(5, _translate("Launcher", "Generic Integrated (or low-power office PC graphics card)")) - self.dropdownGPU.setItemText(6, _translate("Launcher", "Modern Integrated (or modern office PC ... 1030? I am looking at you.)")) - self.dropdownGPU.setItemText(7, _translate("Launcher", "Generic Dedicated")) - self.dropdownGPU.setItemText(8, _translate("Launcher", "Modern Dedicated")) - self.dropdownGPU.setItemText(9, _translate("Launcher", "GAMING!!!")) - self.dropdownGPU.setItemText(10, _translate("Launcher", "When will RayTracing be available?")) - self.dropdownRAM.setItemText(0, _translate("Launcher", "")) - self.buttonSavePerformance.setText(_translate("Launcher", "Save!")) - self.buttonAutoDetectPerformance.setText(_translate("Launcher", "Try auto-detect")) - self.tabWidget.setTabText(self.tabWidget.indexOf(self.tabPreferences), _translate("Launcher", "Preferences")) - self.labelServerStatus.setText(_translate("Launcher", "Server: Offline")) - self.buttonServerStartup.setText(_translate("Launcher", "Request Startup")) - self.progressUpdate.setFormat(_translate("Launcher", "Updating...")) - self.buttonPlay.setText(_translate("Launcher", "PLAY! :)")) - -from PyQt5 import QtWebKitWidgets