Skip to content

Instantly share code, notes, and snippets.

@TkTech
Created September 14, 2010 20:30
Show Gist options
  • Save TkTech/579716 to your computer and use it in GitHub Desktop.
Save TkTech/579716 to your computer and use it in GitHub Desktop.
class Auth(object):
"""Provides an interface to services provided by minecraft.net"""
def __init__(self, username, password):
self.username = username
self.password = password
self.launcher_ver = 999999999
def _get_version(self):
from urllib import urlopen
page = urlopen("http://www.minecraft.net/game/getversion.jsp?user={0}&password={1}&version={2}".format(self.username, self.password, self.launcher_ver))
return page.read().split(":")
def get_latest_version(self):
"""Returns the latest available client version"""
return self._get_version()[0]
def get_download_ticket(self):
"""Returns a download ticket used for getting updated copies of minecraft.jar"""
return self._get_version()[1]
def get_case_correct_username(self):
"""Returns a case-corrected username of a valid Alpha account"""
return self._get_version()[2]
def get_session_id(self):
"""Returns a session ID used for authenticating with Alpha servers"""
return self._get_version()[3]
def get_minecraft_jar(self):
"""Gets the latest minecraft.jar game file and returns a temporary filename where it's stored"""
from urllib import urlretrieve
fname, headers = urlretrieve("http://minecraft.net/game/minecraft.jar?user={0}&ticket={1}".format(self.username, self.get_download_ticket()))
return fname
def do_join_server(server_hash):
from urllib import urlopen
page = urlopen("http://www.minecraft.net/game/joinserver.jsp?user={0}&sessionId={1}&serverId={2}".format(self.username, self.get_session_id(), server_hash))
if page.read().strip() == "ok":
return True
return False
def do_name_check(username, server_hash):
from urllib import urlopen
page = urlopen("http://www.minecraft.net/game/checkserver.jsp?user={0}&serverId={1}".format(username, server_hash))
if page.read().strip() == "YES":
return True
return False
def do_skin_change(skin_url):
from urllib import urlopen
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment