Example #1
0
 def run(self):
     self.socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
     try:
         self.socket.connect((self.server, self.port))
         self.FileObject = self.socket.makefile()
         PacketListenerManager.sendHandshake(self.socket, self.username, self.server, self.port)
         if self.socket.recv(1) == "\x02":
             response = PacketListenerManager.handle02(self.FileObject)
         else:
             print "Server responded with a malformed packet"
             return False
         serverid = response
         if serverid != "-":
             try:
                 url = (
                     "http://session.minecraft.net/game/joinserver.jsp?user="******"&sessionId="
                     + self.sessionID
                     + "&serverId="
                     + serverid
                 )
                 response = urllib2.urlopen(url).read()
                 if response != "OK":
                     if self.NoGUI == False:
                         self.window.ConnectPanel.Status.SetFont(
                             wx.Font(15, wx.MODERN, wx.NORMAL, wx.NORMAL, 0, "Minecraft")
                         )
                         self.window.ConnectPanel.Status.SetLabel("Response from sessions.minecraft.net wasn't OK")
                     else:
                         print "Response from sessions.minecraft.net wasn't OK, it was " + response
                         return False
                 PacketListenerManager.sendLoginRequest(self.socket, self.username)
                 if self.NoGUI == False:
                     self.window.ConnectPanel.callbackAfterConnect()
                     while not hasattr(self.window, "text"):
                         continue
                 PacketListener(self, self.window, self.socket, self.FileObject).start()
             except Exception, e:
                 if self.NoGUI == False and hasattr(self.window, "ConnectPanel"):
                     self.window.ConnectPanel.Status.SetForegroundColour(wx.RED)
                     self.window.ConnectPanel.Status.SetLabel("Conection to sessions.mc.net failed")
                     self.window.ConnectPanel.RotationThread.Kill = True
         else:
Example #2
0
                            return False
                    PacketListenerManager.sendLoginRequest(self.socket, self.username)
                    if self.NoGUI == False:
                        self.window.ConnectPanel.callbackAfterConnect()
                        while not hasattr(self.window, "text"):
                            continue
                    PacketListener(self, self.window, self.socket, self.FileObject).start()
                except Exception, e:
                    if self.NoGUI == False and hasattr(self.window, "ConnectPanel"):
                        self.window.ConnectPanel.Status.SetForegroundColour(wx.RED)
                        self.window.ConnectPanel.Status.SetLabel("Conection to sessions.mc.net failed")
                        self.window.ConnectPanel.RotationThread.Kill = True
            else:
                if self.NoGUI:
                    print "Server is in offline mode"
                PacketListenerManager.sendLoginRequest(self.socket, self.username)
        except Exception, e:
            if self.NoGUI == False and self.window:
                self.window.ConnectPanel.Status.SetForegroundColour(wx.RED)
                self.window.ConnectPanel.Status.SetLabel("Connection to server failed")
                self.window.ConnectPanel.RotationThread.Kill = True
            else:
                print "Connection to server failed"
            traceback.print_exc()
            return False
        # self.window.Status.SetLabel("Connected to " + self.server + "!")


class PacketListener(threading.Thread):
    def __init__(self, connection, window, socket, FileObject):
        threading.Thread.__init__(self)