# lib/launcher/python ## Directories: * __runtime__ will contain a python runtime ## Files * __gui.py__ will contain the GUI (Wow! Really?). The GUI will be accessed by `main.py` * __mchandler.py__ will be the launcher library. This time, it will not be a runnable hybrid library * __updater.py__ will be used for updating the mod pack and possibly the launcher as well * __cfghandler.py__ will deal with config files * __yggdrasil.py__ is a nearly feature-complete Minecraft authentication library # TODO list * __gui.py__ * [ ] add a function to open the GUI * [ ] add functions for reading values from the GUI * [ ] add functions for writing values to the GUI * [ ] put the port of the GUI here or in a new file? * __mchandler.py__ * [ ] add a launch function using the access token * ~~add a function to verify a given access token~~ _moved to `yggdrasil.py`_ * [x] add functtions to pass configuration data * ~~launch command (with escape sequences for non-static values (configuration and user data)~~ _moved_ * ~~RAM amount~~ * ~~Game Directory~~ * ~~Additional arguments~~ * _handled by a dictionary_ * [ ] add the launch command builder * [ ] add the launch command setter * [x] add RAM auto detection * [ ] add proper error handling * __updater.py__ * [ ] add a function to determine whether updates are available * [ ] add a function to download updates * [ ] add a function to update the launcher * [ ] add a function to update the mod pack * [ ] add different types of updates * [ ] required launcher updates * [ ] required mod pack updates * [ ] optional launcher updates * [ ] optional mod pack updates * [ ] setup change updates (used to install/uninstall components) * [ ] add initial mod pack install by applying a setup change update **→** main.py * __cfghandler.py__ * [x] provide read and write functions for config values * [x] add a function to set the config file path * [x] add functions to load and store the configuration to the file * [ ] implement functions for config updates * [ ] raise adequate exceptions where needed * __yggdrasil.py__ * [x] add a function to verify user credentials and get the access token * [x] add a function to verify a given acces token