diff --git a/README.md b/README.md
index 7550e49..511a50b 100644
--- a/README.md
+++ b/README.md
@@ -1,2 +1,19 @@
-# pmcl
-用python制作的我的世界1.8.9启动器
+# Pmcl:Python minecraft launcher
+-------------------------
+
+#### 介绍
+用python制作的我的世界1.8.9启动器
+可以把我的世界1.8.9forge版启动!
+支持vape一键注入!!
+
+
+
+#### 安装教程
+
+1. 从[https://gitee.com/dengrb1/pmcl/releases](http://)里下载最新版本 _**(注:文件开头是“Pmcl”全都要下载!!)**_
+2. 打开**pmcl_setup.7z.001** 文件并解压
+3. 打开安装包安装完成即可使用
+
+#### 更新日志
+
+1.0.0 没什么好说的,自己看
diff --git a/fix.bat b/fix.bat
new file mode 100644
index 0000000..39e52eb
--- /dev/null
+++ b/fix.bat
@@ -0,0 +1,2 @@
+set mypath=%cd%
+start /d "%mypath%\fix\" server.exe
\ No newline at end of file
diff --git a/kg.py b/kg.py
new file mode 100644
index 0000000..f57b064
--- /dev/null
+++ b/kg.py
@@ -0,0 +1,10 @@
+import os
+import sys
+
+
+DIR = os.getcwd()
+print(DIR)
+
+
+os.startfile('fix.bat')
+os.startfile('start.bat')
\ No newline at end of file
diff --git a/pmcl.py b/pmcl.py
new file mode 100644
index 0000000..45b22d8
--- /dev/null
+++ b/pmcl.py
@@ -0,0 +1,133 @@
+# -*- coding: utf-8 -*-
+
+# Form implementation generated from reading ui file 'pmcl_main.ui'
+#
+# Created by: PyQt5 UI code generator 5.15.9
+#
+# WARNING: Any manual changes made to this file will be lost when pyuic5 is
+# run again. Do not edit this file unless you know what you are doing.
+
+
+from PyQt5 import QtCore, QtGui, QtWidgets
+from PyQt5.QtWidgets import QMessageBox
+import sys
+import os
+
+class Ui_MainWindow(QtWidgets.QMainWindow):
+ def __init__(self):
+ super(Ui_MainWindow,self).__init__()
+ self.setupUi(self)
+
+ def setupUi(self, MainWindow):
+ MainWindow.setObjectName("MainWindow")
+ MainWindow.resize(475, 226)
+ self.centralwidget = QtWidgets.QWidget(MainWindow)
+ self.centralwidget.setObjectName("centralwidget")
+ self.gridLayout = QtWidgets.QGridLayout(self.centralwidget)
+ self.gridLayout.setObjectName("gridLayout")
+ self.horizontalLayout_3 = QtWidgets.QHBoxLayout()
+ self.horizontalLayout_3.setObjectName("horizontalLayout_3")
+ self.label_4 = QtWidgets.QLabel(self.centralwidget)
+ self.label_4.setObjectName("label_4")
+ self.horizontalLayout_3.addWidget(self.label_4)
+ self.maxmb_t = QtWidgets.QLineEdit(self.centralwidget)
+ self.maxmb_t.setObjectName("maxmb_t")
+ self.horizontalLayout_3.addWidget(self.maxmb_t)
+ self.gridLayout.addLayout(self.horizontalLayout_3, 2, 1, 1, 1)
+ self.pushButton = QtWidgets.QPushButton(self.centralwidget)
+ self.pushButton.setObjectName("pushButton")
+ self.gridLayout.addWidget(self.pushButton, 4, 4, 1, 1)
+ self.label = QtWidgets.QLabel(self.centralwidget)
+ self.label.setObjectName("label")
+ self.gridLayout.addWidget(self.label, 0, 1, 1, 4)
+ self.horizontalLayout_2 = QtWidgets.QHBoxLayout()
+ self.horizontalLayout_2.setObjectName("horizontalLayout_2")
+ self.label_3 = QtWidgets.QLabel(self.centralwidget)
+ self.label_3.setObjectName("label_3")
+ self.horizontalLayout_2.addWidget(self.label_3)
+ self.username = QtWidgets.QLineEdit(self.centralwidget)
+ self.username.setObjectName("username")
+ self.horizontalLayout_2.addWidget(self.username)
+ self.gridLayout.addLayout(self.horizontalLayout_2, 2, 2, 1, 3)
+ spacerItem = QtWidgets.QSpacerItem(454, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
+ self.gridLayout.addItem(spacerItem, 1, 1, 1, 4)
+ self.horizontalLayout = QtWidgets.QHBoxLayout()
+ self.horizontalLayout.setObjectName("horizontalLayout")
+ self.label_2 = QtWidgets.QLabel(self.centralwidget)
+ self.label_2.setObjectName("label_2")
+ self.horizontalLayout.addWidget(self.label_2)
+ self.game_c = QtWidgets.QComboBox(self.centralwidget)
+ self.game_c.setObjectName("game_c")
+ self.game_c.addItem("")
+ self.game_c.addItem("")
+ self.horizontalLayout.addWidget(self.game_c)
+ self.gridLayout.addLayout(self.horizontalLayout, 3, 1, 1, 2)
+ self.run_game = QtWidgets.QPushButton(self.centralwidget)
+ self.run_game.setObjectName("run_game")
+ self.gridLayout.addWidget(self.run_game, 4, 3, 1, 1)
+ MainWindow.setCentralWidget(self.centralwidget)
+ self.statusbar = QtWidgets.QStatusBar(MainWindow)
+ self.statusbar.setObjectName("statusbar")
+ MainWindow.setStatusBar(self.statusbar)
+ self.label_3.setBuddy(self.username)
+ self.label_2.setBuddy(self.game_c)
+
+ self.retranslateUi(MainWindow)
+ QtCore.QMetaObject.connectSlotsByName(MainWindow)
+
+ # def
+ def run(self):
+ maxmb = self.maxmb_t.text()
+ username_text = self.username.text()
+ with open("username.txt", "w") as file:
+ file.write(username_text)
+ pass
+ with open('maxmb.txt', 'w') as maxmb_f:
+ maxmb_f.write(maxmb)
+ version = self.game_c.currentText()
+ print(maxmb, username_text,version)
+ if version == '1.8.9 Forge':
+ if maxmb < '1024':
+ QMessageBox.critical(self, 'ERROR', '请输入大于1024的数!', QMessageBox.Ok)
+ else:
+ try:
+ os.startfile('start_1_8_9.bat')
+ except:
+ QMessageBox.critical(self, 'ERROR', '无法启动游戏,请尝试重新安装。')
+
+ else:
+ QMessageBox.critical(self, 'ERROR', '暂未做完......', QMessageBox.Close)
+ return 0
+ def kg(self):
+ QMessageBox.information(self, 'warning', '启动后请不要关闭server.exe这个程序!!!!', QMessageBox.Ok)
+ try:
+ os.startfile('kg.exe')
+ except:
+ QMessageBox.critical(self, 'ERROR', '无法启动', QMessageBox.Ok)
+
+
+
+
+ def retranslateUi(self, MainWindow):
+ _translate = QtCore.QCoreApplication.translate
+ MainWindow.setWindowTitle(_translate("MainWindow", "Pmcl 1.0.0"))
+ self.label_4.setText(_translate("MainWindow", "最大内存:"))
+ self.maxmb_t.setText(_translate("MainWindow", "1145"))
+ self.pushButton.setText(_translate("MainWindow", "开vape"))
+ self.label.setText(_translate("MainWindow", "
python minecraft launcher v1.0.0
"))
+ self.label_3.setText(_translate("MainWindow", "游戏姓名:"))
+ self.username.setText(_translate("MainWindow", "sb001"))
+ self.label_2.setText(_translate("MainWindow", "游戏版本:
"))
+ self.game_c.setItemText(0, _translate("MainWindow", "1.8.9 Forge"))
+ self.game_c.setItemText(1, _translate("MainWindow", "1.12.2 Forge"))
+ self.run_game.setText(_translate("MainWindow", "开始游戏"))
+ self.pushButton.clicked.connect(self.kg)
+ self.run_game.clicked.connect(self.run)
+
+if __name__ == '__main__':
+ app = QtWidgets.QApplication(sys.argv)
+ mainloop = QtWidgets.QMainWindow()
+ ui = Ui_MainWindow()
+ ui.setupUi(mainloop)
+ mainloop.show()
+ sys.exit(app.exec_())
\ No newline at end of file
diff --git a/pmcl_main.ui b/pmcl_main.ui
new file mode 100644
index 0000000..4d6d1a3
--- /dev/null
+++ b/pmcl_main.ui
@@ -0,0 +1,125 @@
+
+
+ MainWindow
+
+
+
+ 0
+ 0
+ 475
+ 226
+
+
+
+ MainWindow
+
+
+
+ -
+
+
-
+
+
+ 最大内存:
+
+
+
+ -
+
+
+ 1145
+
+
+
+
+
+ -
+
+
+ 开vape
+
+
+
+ -
+
+
+ <html><head/><body><p><span style=" font-size:18pt; font-weight:600; color:#1c33fe;">python minecraft launcher</span></p></body></html>
+
+
+
+ -
+
+
-
+
+
+ 游戏姓名:
+
+
+ username
+
+
+
+ -
+
+
+ sb001
+
+
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+
+ 454
+ 20
+
+
+
+
+ -
+
+
-
+
+
+ <html><head/><body><p><span style=" font-size:11pt;">游戏版本:</span></p></body></html>
+
+
+ game_c
+
+
+
+ -
+
+
-
+
+ 1.8.9 Forge
+
+
+ -
+
+ 1.12.2 Forge
+
+
+
+
+
+
+ -
+
+
+ 开始游戏
+
+
+
+
+
+
+
+
+
+
diff --git a/start.bat b/start.bat
new file mode 100644
index 0000000..f642998
--- /dev/null
+++ b/start.bat
@@ -0,0 +1,3 @@
+@echo off
+cd "%~dp0lite"
+"Kangaroo Patcher.exe" Vape_Lite.exe
diff --git a/start_1_8_9.bat b/start_1_8_9.bat
new file mode 100644
index 0000000..68c482e
--- /dev/null
+++ b/start_1_8_9.bat
@@ -0,0 +1,16 @@
+@echo off
+title Run-minecraft1.8.9
+echo ϷԺ
+echo %~dp0
+set APPDATA="%~dp0\.minecraft\"
+set path=%~dp0
+cd /D "%~dp0\.minecraft\"
+
+for /F "usebackq tokens=*" %%A in ("%~dp0username.txt") do set USERNAME=%%A
+for /F "usebackq tokens=*" %%A in ("%~dp0maxmb.txt") do set MAXMB=%%A
+
+echo %MAXMB%
+echo %USERNAME%
+
+"%~dp0jre-x64\bin\java.exe" -XX:+UseG1GC -XX:-UseAdaptiveSizePolicy -XX:-OmitStackTraceInFastThrow -Dfml.ignoreInvalidMinecraftCertificates=True -Dfml.ignorePatchDiscrepancies=True -Dlog4j2.formatMsgNoLookups=true -XX:HeapDumpPath=MojangTricksIntelDriversForPerformance_javaw.exe_minecraft.exe.heapdump -Xmx%MAXMB%m "-Djava.library.path=%~dp0\.minecraft\versions\vapeV4.04\vapeV4.04-natives" -cp "%~dp0\.minecraft\libraries\net\minecraftforge\forge\1.8.9-11.15.1.2318-1.8.9\forge-1.8.9-11.15.1.2318-1.8.9.jar;%~dp0\.minecraft\libraries\net\minecraft\launchwrapper\1.12\launchwrapper-1.12.jar;%~dp0\.minecraft\libraries\org\ow2\asm\asm-all\5.0.3\asm-all-5.0.3.jar;%~dp0\.minecraft\libraries\jline\jline\2.13\jline-2.13.jar;%~dp0\.minecraft\libraries\com\typesafe\akka\akka-actor_2.11\2.3.3\akka-actor_2.11-2.3.3.jar;%~dp0\.minecraft\libraries\com\typesafe\config\1.2.1\config-1.2.1.jar;%~dp0\.minecraft\libraries\org\scala-lang\scala-actors-migration_2.11\1.1.0\scala-actors-migration_2.11-1.1.0.jar;%~dp0\.minecraft\libraries\org\scala-lang\scala-compiler\2.11.1\scala-compiler-2.11.1.jar;%~dp0\.minecraft\libraries\org\scala-lang\plugins\scala-continuations-library_2.11\1.0.2\scala-continuations-library_2.11-1.0.2.jar;%~dp0\.minecraft\libraries\org\scala-lang\plugins\scala-continuations-plugin_2.11.1\1.0.2\scala-continuations-plugin_2.11.1-1.0.2.jar;%~dp0\.minecraft\libraries\org\scala-lang\scala-library\2.11.1\scala-library-2.11.1.jar;%~dp0\.minecraft\libraries\org\scala-lang\scala-parser-combinators_2.11\1.0.1\scala-parser-combinators_2.11-1.0.1.jar;%~dp0\.minecraft\libraries\org\scala-lang\scala-reflect\2.11.1\scala-reflect-2.11.1.jar;%~dp0\.minecraft\libraries\org\scala-lang\scala-swing_2.11\1.0.1\scala-swing_2.11-1.0.1.jar;%~dp0\.minecraft\libraries\org\scala-lang\scala-xml_2.11\1.0.2\scala-xml_2.11-1.0.2.jar;%~dp0\.minecraft\libraries\lzma\lzma\0.0.1\lzma-0.0.1.jar;%~dp0\.minecraft\libraries\net\sf\jopt-simple\jopt-simple\4.6\jopt-simple-4.6.jar;%~dp0\.minecraft\libraries\java3d\vecmath\1.5.2\vecmath-1.5.2.jar;%~dp0\.minecraft\libraries\net\sf\trove4j\trove4j\3.0.3\trove4j-3.0.3.jar;%~dp0\.minecraft\libraries\com\mojang\netty\1.8.8\netty-1.8.8.jar;%~dp0\.minecraft\libraries\oshi-project\oshi-core\1.1\oshi-core-1.1.jar;%~dp0\.minecraft\libraries\net\java\dev\jna\jna\3.4.0\jna-3.4.0.jar;%~dp0\.minecraft\libraries\net\java\dev\jna\platform\3.4.0\platform-3.4.0.jar;%~dp0\.minecraft\libraries\com\ibm\icu\icu4j-core-mojang\51.2\icu4j-core-mojang-51.2.jar;%~dp0\.minecraft\libraries\com\paulscode\codecjorbis\20101023\codecjorbis-20101023.jar;%~dp0\.minecraft\libraries\com\paulscode\codecwav\20101023\codecwav-20101023.jar;%~dp0\.minecraft\libraries\com\paulscode\libraryjavasound\20101123\libraryjavasound-20101123.jar;%~dp0\.minecraft\libraries\com\paulscode\librarylwjglopenal\20100824\librarylwjglopenal-20100824.jar;%~dp0\.minecraft\libraries\com\paulscode\soundsystem\20120107\soundsystem-20120107.jar;%~dp0\.minecraft\libraries\io\netty\netty-all\4.0.23.Final\netty-all-4.0.23.Final.jar;%~dp0\.minecraft\libraries\com\google\guava\guava\17.0\guava-17.0.jar;%~dp0\.minecraft\libraries\org\apache\commons\commons-lang3\3.3.2\commons-lang3-3.3.2.jar;%~dp0\.minecraft\libraries\commons-io\commons-io\2.4\commons-io-2.4.jar;%~dp0\.minecraft\libraries\commons-codec\commons-codec\1.9\commons-codec-1.9.jar;%~dp0\.minecraft\libraries\net\java\jinput\jinput\2.0.5\jinput-2.0.5.jar;%~dp0\.minecraft\libraries\net\java\jutils\jutils\1.0.0\jutils-1.0.0.jar;%~dp0\.minecraft\libraries\com\google\code\gson\gson\2.2.4\gson-2.2.4.jar;%~dp0\.minecraft\libraries\com\mojang\authlib\1.5.21\authlib-1.5.21.jar;%~dp0\.minecraft\libraries\com\mojang\realms\1.7.59\realms-1.7.59.jar;%~dp0\.minecraft\libraries\org\apache\commons\commons-compress\1.8.1\commons-compress-1.8.1.jar;%~dp0\.minecraft\libraries\org\apache\httpcomponents\httpclient\4.3.3\httpclient-4.3.3.jar;%~dp0\.minecraft\libraries\commons-logging\commons-logging\1.1.3\commons-logging-1.1.3.jar;%~dp0\.minecraft\libraries\org\apache\httpcomponents\httpcore\4.3.2\httpcore-4.3.2.jar;%~dp0\.minecraft\libraries\org\apache\logging\log4j\log4j-api\2.0-beta9\log4j-api-2.0-beta9.jar;%~dp0\.minecraft\libraries\org\apache\logging\log4j\log4j-core\2.0-beta9\log4j-core-2.0-beta9.jar;%~dp0\.minecraft\libraries\org\lwjgl\lwjgl\lwjgl\2.9.4-nightly-20150209\lwjgl-2.9.4-nightly-20150209.jar;%~dp0\.minecraft\libraries\org\lwjgl\lwjgl\lwjgl_util\2.9.4-nightly-20150209\lwjgl_util-2.9.4-nightly-20150209.jar;%~dp0\.minecraft\libraries\tv\twitch\twitch\6.5\twitch-6.5.jar;%~dp0\.minecraft\libraries\optifine\OptiFine\1.8.9_HD_U_M5\OptiFine-1.8.9_HD_U_M5.jar;%~dp0\.minecraft\versions\vapeV4.04\vapeV4.04.jar" -Doolloo.jlw.tmpdir="%~dp0PCL" -jar "%~dp0PCL\JavaWrapper.jar" net.minecraft.launchwrapper.Launch --tweakClass net.minecraftforge.fml.common.launcher.FMLTweaker --username %USERNAME% --version vapeV4.04 --gameDir "%~dp0\.minecraft\versions\vapeV4.04" --assetsDir "%~dp0\.minecraft\assets" --assetIndex 1.8 --uuid 00000XXXXXXXXXXXXXXXXXXXXXX00F72 --accessToken 00000XXXXXXXXXXXXXXXXXXXXXX00F72 --userProperties {} --userType msa --height 480 --width 854 --tweakClass optifine.OptiFineForgeTweaker
+echo Ϸ˳
\ No newline at end of file