69 lines
2.6 KiB
Python
69 lines
2.6 KiB
Python
import os, psutil
|
||
|
||
# java -Xmx$RAM$ -XX:+UseConcMarkSweepGC -XX:+CMSIncrementalMode -XX:-UseAdaptiveSizePolicy -Xmn128M -Djava.library.path=$NATIVES$ -cp $LIBRARIES$ net.minecraft.launchwrapper.Launch --username $USERNAME$ --version 1.7.10-Forge10.13.4.1614-1.7.10 --gameDir $GAMEDIR$ --assetsDir $ASSETS$ --assetIndex 1.7.10 --uuid $UUID$ --accessToken $ACCESSTOKEN$ --userProperties {} --userType mojang --width $WINDOWWIDTH$ --height $WINDOWHEIGHT$ --tweakClass cpw.mods.fml.common.launcher.FMLTweaker
|
||
# $RAM$ the amount of RAM with postfix (k, M, G ...)
|
||
# $WINDOWWIDTH$, $WINDOWHEIGHT$ window width and height in pixels without the WM’s decoration
|
||
# $USERNAME$ the username as shown in-game
|
||
# $UUID$ the player’s uuid
|
||
# $ACCESSTOKEN$ a valid accessToken
|
||
# $NATIVES$ the directory containing the natives
|
||
# $LIBRARIES$ a colon-separated (semicolon-separated on Windowze) list of library jars
|
||
# $GAMEDIR$ the game directory IMPORTANT! Change the cwd to that directory before launch. Some mods are coded to find the standard paths by using the cwd.
|
||
# $ASSETS$ the directory containing the assets
|
||
game_properties = {
|
||
"window width": "1366",
|
||
"window height": "768",
|
||
"ram": "4G",
|
||
"username": None,
|
||
"uuid": None,
|
||
"access token": None,
|
||
"native directory": "lib/natives",
|
||
"library directory": "lib/jar", # will be transformed by the launch function
|
||
"asset directory": "res",
|
||
"game directory": "run",
|
||
"java executable": "java",
|
||
"additional arguments": ""}
|
||
|
||
command = None
|
||
|
||
full_command = None
|
||
|
||
def autoram(minram, maxram, balance):
|
||
ram_available = psutil.virtual_memory().available
|
||
# not enough memory
|
||
if ram_available < minram:
|
||
# TODO: raise an exception
|
||
return -1
|
||
# plenty of memory
|
||
elif ram_available > maxram+balance:
|
||
return maxram
|
||
# enough memory but we do not want to occupy all
|
||
elif float(ram_available)*float(maxram)/float(maxram+balance) > minram:
|
||
return int(float(ram_available)*float(maxram)/float(maxram+balance))
|
||
# barely enough memory
|
||
elif ram_available > minram or ram_available == minram:
|
||
return ram_available
|
||
|
||
def launch():
|
||
global command
|
||
if command is None:
|
||
return 1
|
||
# TODO: Raise an exception
|
||
return os.system(command)
|
||
|
||
def set_parameter(parameter, value):
|
||
global game_propertoies
|
||
game_properties[parameter] = value
|
||
build_full_command()
|
||
|
||
def build_full_command():
|
||
global game_properties
|
||
global command
|
||
global full_command
|
||
# TODO: implement
|
||
|
||
def set_command(minecraft_command):
|
||
global command
|
||
command = minecraft_command
|
||
build_full_command()
|