mirror of
https://github.com/ammaraskar/pyCraft.git
synced 2025-04-15 08:25:40 +02:00
Oh god stuff that works
This commit is contained in:
parent
d5e726f98b
commit
1ecdf8e82f
@ -1,6 +1,6 @@
|
||||
import socket
|
||||
import wx
|
||||
import PacketManager
|
||||
import PacketListenerManager
|
||||
import urllib2
|
||||
import traceback
|
||||
import threading
|
||||
@ -24,14 +24,17 @@ class ServerConnection(threading.Thread):
|
||||
self.NoGUI = True
|
||||
self.window = window
|
||||
|
||||
def grabSocket(self):
|
||||
return self.socket
|
||||
|
||||
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()
|
||||
PacketManager.sendHandshake(self.socket, self.username, self.server, self.port)
|
||||
PacketListenerManager.sendHandshake(self.socket, self.username, self.server, self.port)
|
||||
if(self.socket.recv(1) == "\x02"):
|
||||
response = PacketManager.handle02(self.FileObject)
|
||||
response = PacketListenerManager.handle02(self.FileObject)
|
||||
else:
|
||||
print "Server responded with a malformed packet"
|
||||
pass
|
||||
@ -45,11 +48,11 @@ class ServerConnection(threading.Thread):
|
||||
else:
|
||||
print "Response from sessions.minecraft.net wasn't OK, it was " + response
|
||||
return False
|
||||
PacketManager.sendLoginRequest(self.socket, self.username)
|
||||
PacketListener(self.window, self.socket, self.FileObject).start()
|
||||
PacketListenerManager.sendLoginRequest(self.socket, self.username)
|
||||
PacketListener(self, self.window, self.socket, self.FileObject).start()
|
||||
else:
|
||||
print "Server is in offline mode"
|
||||
PacketManager.sendLoginRequest(self.socket, self.username)
|
||||
PacketListenerManager.sendLoginRequest(self.socket, self.username)
|
||||
except Exception, e:
|
||||
if(self.NoGUI == False):
|
||||
self.window.connectStatus.SetForegroundColour(wx.RED)
|
||||
@ -58,14 +61,15 @@ class ServerConnection(threading.Thread):
|
||||
print "Connection to server failed"
|
||||
traceback.print_exc()
|
||||
return False
|
||||
|
||||
|
||||
class PacketListener(threading.Thread):
|
||||
|
||||
def __init__(self, window, socket, FileObject):
|
||||
def __init__(self, connection, window, socket, FileObject):
|
||||
threading.Thread.__init__(self)
|
||||
self.socket = socket
|
||||
self.window = window
|
||||
self.FileObject = FileObject
|
||||
self.connection = connection
|
||||
|
||||
def run(self):
|
||||
self.socket.setblocking(1)
|
||||
@ -78,121 +82,120 @@ class PacketListener(threading.Thread):
|
||||
else:
|
||||
print "Ping timeout"
|
||||
break
|
||||
print hex(ord(response[0]))
|
||||
if(response[0] == "\x00"):
|
||||
print PacketManager.handle00(self.FileObject, self.socket)
|
||||
PacketListenerManager.handle00(self.FileObject, self.socket)
|
||||
if(response[0] == "\x01"):
|
||||
print PacketManager.handle01(self.FileObject)
|
||||
PacketListenerManager.handle01(self.FileObject)
|
||||
if(response[0] == "\x03"):
|
||||
print PacketManager.handle03(self.FileObject)
|
||||
print PacketListenerManager.handle03(self.FileObject)
|
||||
if(response[0] == "\x04"):
|
||||
print PacketManager.handle04(self.FileObject)
|
||||
PacketListenerManager.handle04(self.FileObject)
|
||||
if(response[0] == "\x05"):
|
||||
print PacketManager.handle05(self.FileObject)
|
||||
PacketListenerManager.handle05(self.FileObject)
|
||||
if(response[0] == "\x06"):
|
||||
print PacketManager.handle06(self.FileObject)
|
||||
PacketListenerManager.handle06(self.FileObject)
|
||||
if(response[0] == "\x07"):
|
||||
print PacketManager.handle07(self.FileObject)
|
||||
PacketListenerManager.handle07(self.FileObject)
|
||||
if(response[0] == "\x08"):
|
||||
print PacketManager.handle08(self.FileObject)
|
||||
PacketListenerManager.handle08(self.FileObject)
|
||||
if(response[0] == "\x09"):
|
||||
print PacketManager.handle09(self.FileObject)
|
||||
PacketListenerManager.handle09(self.FileObject)
|
||||
if(response[0] == "\x0D"):
|
||||
print PacketManager.handle0D(self.FileObject)
|
||||
PacketListenerManager.handle0D(self.FileObject)
|
||||
if(response[0] == "\x11"):
|
||||
print PacketManager.handle11(self.FileObject)
|
||||
PacketListenerManager.handle11(self.FileObject)
|
||||
if(response[0] == "\x12"):
|
||||
print PacketManager.handle12(self.FileObject)
|
||||
PacketListenerManager.handle12(self.FileObject)
|
||||
if(response[0] == "\x14"):
|
||||
print PacketManager.handle14(self.FileObject)
|
||||
PacketListenerManager.handle14(self.FileObject)
|
||||
if(response[0] == "\x15"):
|
||||
print PacketManager.handle15(self.FileObject)
|
||||
PacketListenerManager.handle15(self.FileObject)
|
||||
if(response[0] == "\x16"):
|
||||
print PacketManager.handle16(self.FileObject)
|
||||
PacketListenerManager.handle16(self.FileObject)
|
||||
if(response[0] == "\x17"):
|
||||
print PacketManager.handle17(self.FileObject)
|
||||
PacketListenerManager.handle17(self.FileObject)
|
||||
if(response[0] == "\x18"):
|
||||
print PacketManager.handle18(self.FileObject)
|
||||
PacketListenerManager.handle18(self.FileObject)
|
||||
if(response[0] == "\x19"):
|
||||
print PacketManager.handle19(self.FileObject)
|
||||
PacketListenerManager.handle19(self.FileObject)
|
||||
if(response[0] == "\x1A"):
|
||||
print PacketManager.handle1A(self.FileObject)
|
||||
PacketListenerManager.handle1A(self.FileObject)
|
||||
if(response[0] == "\x1C"):
|
||||
print PacketManager.handle1C(self.FileObject)
|
||||
PacketListenerManager.handle1C(self.FileObject)
|
||||
if(response[0] == "\x1D"):
|
||||
print PacketManager.handle1D(self.FileObject)
|
||||
PacketListenerManager.handle1D(self.FileObject)
|
||||
if(response[0] == "\x1E"):
|
||||
print PacketManager.handle1E(self.FileObject)
|
||||
PacketListenerManager.handle1E(self.FileObject)
|
||||
if(response[0] == "\x1F"):
|
||||
print PacketManager.handle1F(self.FileObject)
|
||||
PacketListenerManager.handle1F(self.FileObject)
|
||||
if(response[0] == "\x20"):
|
||||
print PacketManager.handle20(self.FileObject)
|
||||
PacketListenerManager.handle20(self.FileObject)
|
||||
if(response[0] == "\x21"):
|
||||
print PacketManager.handle21(self.FileObject)
|
||||
PacketListenerManager.handle21(self.FileObject)
|
||||
if(response[0] == "\x22"):
|
||||
print PacketManager.handle22(self.FileObject)
|
||||
PacketListenerManager.handle22(self.FileObject)
|
||||
if(response[0] == "\x23"):
|
||||
print PacketManager.handle23(self.FileObject)
|
||||
PacketListenerManager.handle23(self.FileObject)
|
||||
if(response[0] == "\x26"):
|
||||
print PacketManager.handle26(self.FileObject)
|
||||
PacketListenerManager.handle26(self.FileObject)
|
||||
if(response[0] == "\x27"):
|
||||
print PacketManager.handle27(self.FileObject)
|
||||
PacketListenerManager.handle27(self.FileObject)
|
||||
if(response[0] == "\x28"):
|
||||
print PacketManager.handle28(self.FileObject)
|
||||
PacketListenerManager.handle28(self.FileObject)
|
||||
if(response[0] == "\x29"):
|
||||
print PacketManager.handle29(self.FileObject)
|
||||
PacketListenerManager.handle29(self.FileObject)
|
||||
if(response[0] == "\x2A"):
|
||||
print PacketManager.handle2A(self.FileObject)
|
||||
PacketListenerManager.handle2A(self.FileObject)
|
||||
if(response[0] == "\x2B"):
|
||||
print PacketManager.handle2B(self.FileObject)
|
||||
PacketListenerManager.handle2B(self.FileObject)
|
||||
if(response[0] == "\x32"):
|
||||
print PacketManager.handle32(self.FileObject)
|
||||
PacketListenerManager.handle32(self.FileObject)
|
||||
if(response[0] == "\x33"):
|
||||
print PacketManager.handle33(self.FileObject)
|
||||
PacketListenerManager.handle33(self.FileObject)
|
||||
if(response[0] == "\x34"):
|
||||
print PacketManager.handle34(self.FileObject)
|
||||
PacketListenerManager.handle34(self.FileObject)
|
||||
if(response[0] == "\x35"):
|
||||
print PacketManager.handle35(self.FileObject)
|
||||
PacketListenerManager.handle35(self.FileObject)
|
||||
if(response[0] == "\x36"):
|
||||
print PacketManager.handle36(self.FileObject)
|
||||
PacketListenerManager.handle36(self.FileObject)
|
||||
if(response[0] == "\x3C"):
|
||||
print PacketManager.handle3C(self.FileObject)
|
||||
PacketListenerManager.handle3C(self.FileObject)
|
||||
if(response[0] == "\x3D"):
|
||||
print PacketManager.handle3D(self.FileObject)
|
||||
PacketListenerManager.handle3D(self.FileObject)
|
||||
if(response[0] == "\x46"):
|
||||
print PacketManager.handle46(self.FileObject)
|
||||
PacketListenerManager.handle46(self.FileObject)
|
||||
if(response[0] == "\x47"):
|
||||
print PacketManager.handle47(self.FileObject)
|
||||
PacketListenerManager.handle47(self.FileObject)
|
||||
if(response[0] == "\x64"):
|
||||
print PacketManager.handle64(self.FileObject)
|
||||
PacketListenerManager.handle64(self.FileObject)
|
||||
if(response[0] == "\x65"):
|
||||
print PacketManager.handle65(self.FileObject)
|
||||
PacketListenerManager.handle65(self.FileObject)
|
||||
if(response[0] == "\x67"):
|
||||
print PacketManager.handle67(self.FileObject)
|
||||
PacketListenerManager.handle67(self.FileObject)
|
||||
if(response[0] == "\x68"):
|
||||
print PacketManager.handle68(self.FileObject)
|
||||
PacketListenerManager.handle68(self.FileObject)
|
||||
if(response[0] == "\x69"):
|
||||
print PacketManager.handle69(self.FileObject)
|
||||
PacketListenerManager.handle69(self.FileObject)
|
||||
if(response[0] == "\x6A"):
|
||||
print PacketManager.handle6A(self.FileObject)
|
||||
PacketListenerManager.handle6A(self.FileObject)
|
||||
if(response[0] == "\x6B"):
|
||||
print PacketManager.handle6B(self.FileObject)
|
||||
PacketListenerManager.handle6B(self.FileObject)
|
||||
if(response[0] == "\x82"):
|
||||
print PacketManager.handle82(self.FileObject)
|
||||
PacketListenerManager.handle82(self.FileObject)
|
||||
if(response[0] == "\x83"):
|
||||
print PacketManager.handle83(self.FileObject)
|
||||
PacketListenerManager.handle83(self.FileObject)
|
||||
if(response[0] == "\x84"):
|
||||
print PacketManager.handle84(self.FileObject)
|
||||
PacketListenerManager.handle84(self.FileObject)
|
||||
if(response[0] == "\xC8"):
|
||||
print PacketManager.handleC8(self.FileObject)
|
||||
PacketListenerManager.handleC8(self.FileObject)
|
||||
if(response[0] == "\xC9"):
|
||||
print PacketManager.handleC9(self.FileObject)
|
||||
PacketListenerManager.handleC9(self.FileObject)
|
||||
if(response[0] == "\xCA"):
|
||||
print PacketManager.handleCA(self.FileObject)
|
||||
PacketListenerManager.handleCA(self.FileObject)
|
||||
if(response[0] == "\xFA"):
|
||||
print PacketManager.handleFA(self.FileObject)
|
||||
PacketListenerManager.handleFA(self.FileObject)
|
||||
if(response[0] == "\xFF"):
|
||||
DisconMessage = PacketManager.handleFF(self.FileObject)
|
||||
DisconMessage = PacketListenerManager.handleFF(self.FileObject)
|
||||
if(self.window == None):
|
||||
print "Disconnected: " + DisconMessage
|
||||
else:
|
||||
|
@ -23,7 +23,6 @@ def sendLoginRequest(FileObject, username):
|
||||
|
||||
def handle00(FileObject, socket):
|
||||
KAid = struct.unpack('!i', FileObject.read(4))[0]
|
||||
print "Sending keep alive response " + str(KAid)
|
||||
socket.send("\x00" + struct.pack('!i', KAid))
|
||||
|
||||
def handle01(FileObject):
|
||||
@ -279,7 +278,6 @@ def handle19(FileObject):
|
||||
length = struct.unpack('!h', FileObject.read(2))[0] * 2
|
||||
Title = FileObject.read(length).decode('utf-16be')
|
||||
raw = FileObject.read(4)
|
||||
print raw.__len__()
|
||||
x = struct.unpack('!i', raw)[0]
|
||||
y = struct.unpack('!i', FileObject.read(4))[0]
|
||||
z = struct.unpack('!i', FileObject.read(4))[0]
|
||||
@ -454,7 +452,6 @@ def handle2B(FileObject):
|
||||
def handle32(FileObject):
|
||||
X = struct.unpack('!i', FileObject.read(4))[0]
|
||||
raw = FileObject.read(4)
|
||||
print raw.__len__()
|
||||
Z = struct.unpack('!i', raw)[0]
|
||||
Mode = struct.unpack('?', FileObject.read(1))[0]
|
||||
return {'x' : X,
|
||||
@ -736,10 +733,6 @@ def decodeSlotData(FileObject):
|
||||
if(IncomingDataLength != -1):
|
||||
raw = FileObject.read(IncomingDataLength)
|
||||
ByteArray = struct.unpack(str(IncomingDataLength) + "s", raw)[0]
|
||||
print "We've got an array worth " + str(IncomingDataLength)
|
||||
print "Raw size: " + str(raw.__len__())
|
||||
print "Actual size: " + str(ByteArray.__len__())
|
||||
print "Byte Array: " + ByteArray
|
||||
Data = zlib.decompress(ByteArray, 15+32)
|
||||
return {'BlockID' : BlockID,
|
||||
'ItemCount' : ItemCount,
|
7
PacketSenderManager.py
Normal file
7
PacketSenderManager.py
Normal file
@ -0,0 +1,7 @@
|
||||
import socket
|
||||
import struct
|
||||
|
||||
def send03(socket, message):
|
||||
socket.send("\x03")
|
||||
socket.send(struct.pack('!h', message.__len__()))
|
||||
socket.send(message.encode("utf-16be"))
|
5
start.py
5
start.py
@ -3,7 +3,8 @@ import urllib2
|
||||
import getpass
|
||||
import socket
|
||||
import sys
|
||||
import PacketManager
|
||||
import PacketListenerManager
|
||||
import PacketSenderManager
|
||||
import NetworkManager
|
||||
import NoGUIstuff
|
||||
import time
|
||||
@ -225,6 +226,8 @@ if __name__ == "__main__":
|
||||
port = 25565
|
||||
connection = NetworkManager.ServerConnection(None, derp['Username'], passwd, sessionid, host, port)
|
||||
connection.start()
|
||||
raw_input()
|
||||
PacketSenderManager.send03(connection.grabSocket(), "/report Test report from pyCraft, hope this works :3")
|
||||
else:
|
||||
app = wx.App(0)
|
||||
Window(None, title='pyCraft')
|
||||
|
Loading…
Reference in New Issue
Block a user