def trackExperienceToNetString(tracks):
    dg = PyDatagram()

    for track, exp in tracks.iteritems():
        dg.addUint8(TrackNameById.values().index(track))
        dg.addInt16(exp)
    dgi = PyDatagramIterator(dg)
    return dgi.getRemainingBytes()
    def toNetString(self, avDoId):
        dg = PyDatagram()
        dg.addUint32(avDoId)
        dg.addUint8(base.air.attackMgr.getAttackIDByName(self.favoriteGag))

        for trackName in self.tracks.keys():
            track = self.getTrackByName(trackName)
            dg.addUint8(GagGlobals.TrackNameById.keys()[
                GagGlobals.TrackNameById.values().index(trackName)])
            dg.addInt16(track.exp)
            dg.addInt16(track.maxExp)
            dg.addUint16(track.increment)
        dgi = PyDatagramIterator(dg)
        return dgi.getRemainingBytes()
Ejemplo n.º 3
0
 def _crDatagram(self, msg):
     # create Datagram from message
     myPyDatagram = PyDatagram()
     myPyDatagram.addInt32(msg[SEQN])
     myPyDatagram.addInt32(msg[AKN])
     myPyDatagram.addInt16(msg[MSG_TYPE])
     myPyDatagram.addInt8(msg[OOL])
     if not msg[ENCODED]:
         myPyDatagram.addString(self.encode(msg[OAKN]))
         myPyDatagram.addString(self.encode(msg[DATA]))
     else:
         myPyDatagram.addString(msg[OAKN])
         myPyDatagram.addString(msg[DATA])
     return myPyDatagram
Ejemplo n.º 4
0
 def tower_train(self,tower_id,build_object):
     order = PyDatagram()
     if base.client == True:
         order.addUint16(REQUEST_TOWER_TRAIN)
     else:
         order.addUint16(TOWER_TRAIN)
     order.addInt16(army_id)
     order.addFloat64(tx)
     order.addFloat64(ty)
     if base.client == True:
         self.cWriter.send(order,base.server_connection)
     else:
         self.send_package(order)
         base.towers[tower_id].train_counter()
Ejemplo n.º 5
0
 def army_move(self,army_id,tx,ty):
     order = PyDatagram()
     if base.client == True:
         order.addUint16(ARMY_MOVE_REQUEST)
     else:
         order.addUint16(ARMY_MOVE)
     ax = base.armies[army_id].node_path.getX()
     ay = base.armies[army_id].node_path.getY()
     order.addInt16(army_id)
     order.addFloat64(ax)
     order.addFloat64(ay)
     order.addFloat64(tx)
     order.addFloat64(ty)
     if base.client == True:
         self.cWriter.send(order,base.server_connection)
     else:
         self.send_package(order)
         base.armies[army_id].move_to_point(tx,ty)
Ejemplo n.º 6
0
    def handle_set_avatar(self, connection, di):
        ## Send the client HIS character's info.
        ## TODO: NOT SEND STATIC INFO

        datagram = PyDatagram()
        #datagram.addUint16(0) #dummy

        datagram.addUint32(CLIENT_GET_AVATAR_DETAILS_RESP)  #msgType

        datagram.addUint32(1)  #avatarId (uint32)
        datagram.addUint8(0)  #returnCode (uint8)

        ## NOW, HERE COMES THE GOOD PART
        datagram.addString(
            "t\x00\x02\x02\x01\x00\x00\x00\x00\x00\x01\22\x00\22\22"
        )  #setDNAString
        datagram.addInt16(1000)  #setMaxBankMoney
        datagram.addInt16(0)  #setMoney
        datagram.addInt16(40)  #setMaxMoney
        datagram.addInt16(15)  #setMaxHP
        datagram.addInt16(15)  #setHP

        self.cw.send(datagram, connection)
Ejemplo n.º 7
0
def sendScore(s1, s2):
    move = PyDatagram()
    move.addUint16(PACKET_SCORE)
    move.addInt16(s1)
    move.addInt16(s2)
    toAll(move, activeConnections)
Ejemplo n.º 8
0
 def checkNamePattern(self):
     self.notify.debug('checkNamePattern')
     datagram = PyDatagram()
     datagram.addUint16(CLIENT_SET_NAME_PATTERN)
     datagram.addUint32(self.avId)
     datagram.addInt16(self.nameIndices[0])
     datagram.addInt16(self.nameFlags[0])
     datagram.addInt16(self.nameIndices[1])
     datagram.addInt16(self.nameFlags[1])
     datagram.addInt16(self.nameIndices[2])
     datagram.addInt16(self.nameFlags[2])
     datagram.addInt16(self.nameIndices[3])
     datagram.addInt16(self.nameFlags[3])
     messenger.send('nameShopPost', [datagram])
     self.waitForServer()
Ejemplo n.º 9
0
 def checkNamePattern(self):
     self.notify.debug('checkNamePattern')
     datagram = PyDatagram()
     datagram.addUint16(CLIENT_SET_NAME_PATTERN)
     datagram.addUint32(self.avId)
     datagram.addInt16(self.nameIndices[0])
     datagram.addInt16(self.nameFlags[0])
     datagram.addInt16(self.nameIndices[1])
     datagram.addInt16(self.nameFlags[1])
     datagram.addInt16(self.nameIndices[2])
     datagram.addInt16(self.nameFlags[2])
     datagram.addInt16(self.nameIndices[3])
     datagram.addInt16(self.nameFlags[3])
     messenger.send('nameShopPost', [datagram])
     self.waitForServer()
Ejemplo n.º 10
0
def sendScore(s1,s2):
  move = PyDatagram()
  move.addUint16(PACKET_SCORE)
  move.addInt16(s1)
  move.addInt16(s2)
  toAll(move, activeConnections)
Ejemplo n.º 11
0
    def handleDatagram(self, dg):
        if not dg.getLength() > 0:
            return None
        dgi = PyDatagramIterator(dg)
        connection = dg.getConnection()
        msgType = dgi.getUint16()
        if msgType == CLIENT_HEARTBEAT:
            self.notify.debug('Recieved heartbeat.')
        elif msgType == CLIENT_DISCONNECT:
            if connection in self.connectionList:
                self.connectionList.remove(connection)
        elif msgType == CLIENT_SET_ZONE:
            self.handleSetZone(dgi, connection)
        elif msgType == CLIENT_REMOVE_ZONE:
            self.handleRemoveZone(dgi, connection)
        elif msgType == CLIENT_CREATE_OBJECT_REQUIRED:
            self.handleClientCreateObjectRequired(dg, dgi)
        elif msgType == CLIENT_OBJECT_UPDATE_FIELD:
            doId = dgi.getUint32()
            fieldId = dgi.getUint16()
            print "DEBUG: Got Toontown field update for Toontown doId = %d and Toontown fieldId = %d" % (doId, fieldId)
        elif msgType == CLIENT_OBJECT_DELETE:
            self.handleClientDeleteObject(dg, dgi.getUint32())
        elif msgType == CLIENT_OBJECT_DISABLE:
            self.handleClientDisable(dg, dgi.getUint32())
        elif msgType == CLIENT_ADD_INTEREST:
            #self.handleClientAddInterest(self, Client, dgi)
           
            handle = dgi.getUint16()
            contextId = dgi.getUint32()
            parentId = dgi.getUint32()
            zoneList = [dgi.getUint32()]  
            print 'DEBUG: Network :: Interest -> (%d, %d, %d)' % (handle, contextId, parentId)
            while True:
                remainingData = (dg.getLength() - dgi.getCurrentIndex())
                if remainingData == 0:
                    break
                zoneList.append(dgi.getUint32())
            if handle == 2: #Aww yeah we found the tewtow shard list interest!
                datagram = PyDatagram()
                datagram.addUint16(CLIENT_CREATE_OBJECT_REQUIRED_OTHER_RESP)
                datagram.addUint32(4618) #parentId
                datagram.addUint32(3) #zoneId
                datagram.addUint16(58) #ToontownDistrict DClass Field
                datagram.addUint32(316000000) #Shard ID (doId)
                datagram.addString('Astron is for n00bs') #District name
                datagram.addUint8(1) # 1 - Enabled 0 - Disabled
                datagram.addBool(0)
                self.cw.send(datagram, connection)
            if handle == 4:
                datagram = PyDatagram()
                datagram.addUint16(CLIENT_CREATE_OBJECT_REQUIRED_OTHER_RESP)
                datagram.addUint32(4618) #parentId
                datagram.addUint32(3) #zoneId
                datagram.addUint16(387) #ToontownDistrict DClass Field
                datagram.addUint32(900000000) #Shard ID (doId)
                datagram.addString("2013-08-22 23:49:46")
                self.cw.send(datagram, connection)
               
                datagran2 = PyDatagram()
                datagran2.addUint16(CLIENT_CREATE_OBJECT_REQUIRED_OTHER_RESP)
                datagran2.addUint32(0)
                datagran2.addUint32(0)
                datagran2.addUint16(172)
                datagran2.addUint32(637100008)
                arg = []
                datagran2.addUint16(len(arg) << 1)
                for i in arg:
                    datagran2.addInt16(int(i))
                datagran2.addUint16(len(arg) << 1)
                for i in arg:
                    datagran2.addInt16(int(i))
                datagran2.addUint16(len(arg) << 1)
                for i in arg:
                    datagran2.addInt16(int(i))
                datagran2.addUint16(len(arg) << 1)
                for i in arg:
                    datagran2.addInt16(int(i))
                #arg = [64, 65, 66, 10, 15]
                datagran2.addUint16(len(arg))
                for i in arg:
                    datagran2.addUint16(int(i))
                self.cw.send(datagran2, connection)
           
            if handle == 5:
                datagram = PyDatagram()
                datagram.addUint16(CLIENT_OBJECT_UPDATE_FIELD)
                datagram.addUint32(1) #doId
                datagram.addUint16(112) #fieldId
                datagram.addUint32(316000000)
                self.cw.send(datagram, connection)
            datagram = PyDatagram()
            datagram.addUint16(CLIENT_DONE_INTEREST_RESP)
            datagram.addUint16(handle)
            datagram.addUint32(contextId)
            datagram.addUint32(parentId)
            for zoneId in zoneList:
                datagram.addUint32(zoneId)
            self.cw.send(datagram, connection)
            datagram = PyDatagram()
            datagram.addUint16(CLIENT_DONE_INTEREST_RESP)
            datagram.addUint16(handle)
            datagram.addUint32(contextId)
            datagram.addUint32(parentId)
            for zoneId in zoneList:
                datagram.addUint32(zoneId)
            self.cw.send(datagram, connection)
        elif msgType == CLIENT_REMOVE_INTEREST:
            return None
        #Lets start with the tewtow specific msgtypes.
        elif msgType == CLIENT_LOGIN_TOONTOWN:
            self.handleClientLoginToontown(dgi, connection)
        elif msgType == CLIENT_GET_AVATARS:
            self.handleGetAvatars(dgi, connection)			

        elif msgType == CLIENT_GET_AVATARS:
            self.handleGetAvatars(dgi, connection)

        elif msgType == CLIENT_CREATE_AVATAR:
            #return None
            datagram = PyDatagram()
            datagram.addUint16(CLIENT_CREATE_AVATAR_RESP)
            datagram.addUint16(0) #echoContext
            datagram.addUint8(0) #returnCode
            datagram.addUint32(1)
            self.cw.send(datagram, connection)
        elif msgType == CLIENT_SET_NAME_PATTERN:
            datagram = PyDatagram()
            datagram.addUint16(CLIENT_SET_NAME_PATTERN_ANSWER)
            datagram.addUint32(1)
            datagram.addUint8(0)
            self.cw.send(datagram, connection)
        elif msgType == CLIENT_SET_AVATAR:
                packer = DCPacker()
                dclass = self.dclassesByName['DistributedToon']
                datagram = PyDatagram()
                datagram.addUint16(15) #CLIENT_GET_AVATAR_DETAILS_RESP Msgtype
                datagram.addUint32(1)
                datagram.addUint8(0)
                datagram.addString('Infinity') #Toon name
                datagram.addString('Unknown')
                datagram.addUint32(0)
                datagram.addBool(1)
                datagram.addString('t\x05\x01\x00\x01\x39\x1b\x33\x1b\31\x1b\x14\x00\x14\x14') #DNA (blob)
                datagram.addUint8(1) #GM
                datagram.addUint16(2500) #Max Bank
                datagram.addUint16(0) #Current Bank
                datagram.addUint16(40) #Max Jellybeans
                datagram.addUint16(0) #Current Jellybeans
                datagram.addUint16(15) #Max Laff
                datagram.addUint16(15) #Current Laff
                datagram.addUint32(0) #Battle ID
                datagram.addString('Unknown') #Experience (blob)
                datagram.addUint8(10) #Max Gag Carry
 
                #setTrackAccess
 
                field = dclass.getField(13)
                print field
                arg = [0, 0, 0, 0, 1, 1, 0]
                datagram.addUint16(len(arg) << 1)
                for i in arg:
                    datagram.addInt16(int(i))

                datagram.addInt8(3) #Track Progress 1
                datagram.addUint32(9) #Track Progress 2
 
               
 
                #setTrackBonusLevel
 
                field = dclass.getField(15)
                print field
 
                arg = [0, 0, 0, 0, 1, 1, 0]
                datagram.addUint16(len(arg))
                for i in arg:
                    datagram.addInt8(int(i))

                datagram.addString('') #setInventory
 
                #setMaxNPCFriends (Uint16)
 
                datagram.addUint16(16)
               
 
                arg = []
                datagram.addUint16(len(arg) * 5)
                for i in arg:
                    datagram.addUint32(int(i))
 
                datagram.addUint32(316000000) #setDefaultShard
 
                datagram.addUint32(2000) #setDefaultZone
 
                datagram.addString('')
 
 
                field = dclass.getField(22)
                print field
 
                arg = [1000, 2000 , 3000, 4000, 5000, 6000, 8000, 9000, 10000, 11000, 12000, 13000]
                datagram.addUint16(len(arg) << 2)
                for i in arg:
                    datagram.addUint32(int(i))
 

                field = dclass.getField(23)
                print field
 
                arg = [1000, 2000 , 3000, 4000, 5000, 6000, 8000, 9000, 10000, 11000, 12000, 13000]
                datagram.addUint16(len(arg) << 2)
                for i in arg:
                    datagram.addUint32(int(i))
 
                datagram.addString('') #setInterface
 
                datagram.addUint32(2000) #setLastHood
 
                datagram.addUint8(1) #setTutorialAck
 
                datagram.addUint32(25) #setMaxClothes
 
                #setClothesTopsList(uint8array)
 
                arg = []
                datagram.addUint16(len(arg))
                for i in arg:
                    datagram.addUint8(int(i))
 
 
                #setClothesBottomsList(uint8array)
 
                arg = []
                datagram.addUint16(len(arg))
                for i in arg:
                    datagram.addUint8(int(i))
 
                datagram.addUint32(0) #setMaxAccessories
 
                #setHatList(uint8array)
 
                arg = []
                datagram.addUint16(len(arg))
                for i in arg:
                    datagram.addUint8(int(i))
 
                #setGlassessList(uint8array)
 
                arg = []
                datagram.addUint16(len(arg))
                for i in arg:
                    datagram.addUint8(int(i))
 
                #setBackpackList(uint8array)
 
                arg = []
                datagram.addUint16(len(arg))
                for i in arg:
                    datagram.addUint8(int(i))
 
                #setShoesList(uint8array)
 
                arg = []
                datagram.addUint16(len(arg))
                for i in arg:
                    datagram.addUint8(int(i))
 
                datagram.addUint8(0) #setHat 1
                datagram.addUint8(0) #setHat 2
                datagram.addUint8(0) #setHat 3
 
                datagram.addUint8(0) #setGlasses 1
                datagram.addUint8(0) #setGlasses 2
                datagram.addUint8(0) #setGlasses 3
 
                datagram.addUint8(0) #setBackpack 1
                datagram.addUint8(0) #setBackpack 2
                datagram.addUint8(0) #setBackpack 3
 
                datagram.addUint8(0) #setShoes 1
                datagram.addUint8(0) #setShoes 2
                datagram.addUint8(0) #setShoes 3
 
                datagram.addString('')
 
                #setEmoteAccess(uint8array)
 
                arg = []
                datagram.addUint16(len(arg))
                for i in arg:
                    datagram.addUint8(int(i))
 
                #setCustomMeeages(uint16array)
 
                arg = []
                datagram.addUint16(len(arg) << 1)
                for i in arg:
                    datagram.addUint16(int(i))
 
                datagram.addString('') #setResistanceMessages
 
                #setPetTrickPhrases(uint8array)
 
                arg = []
                datagram.addUint16(len(arg))
                for i in arg:
                    datagram.addUint8(int(i))
 
                datagram.addUint16(0) #setCatalogSchedule 1
                datagram.addUint32(0) #setVatalogSchedule 2
 
                datagram.addString('') #setCatalog 1
                datagram.addString('') #setCatalog 2
                datagram.addString('') #setCatalog 3
 
                datagram.addString('') #setMailBoxContents
 
                datagram.addString('') #SetDeliverySchedule
 
                datagram.addString('') #setGiftSchedule
 
                datagram.addString('') #setAwardMailboxContents
 
                datagram.addString('') #setAwardSchedule
 
                datagram.addUint8(0) #setAwardNotify
 
                datagram.addUint8(0) #setCatalogNotify 1
 
                datagram.addUint8(0) #setCatalogNotify 2
 
                datagram.addUint8(0) #setSpeedChatStyleIndex
 
                #setTeleportAccess (uint32array)
 
                arg = [1000, 2000 , 3000, 4000, 5000, 6000, 8000, 9000, 10000, 11000, 12000, 13000]
                datagram.addUint16(len(arg) << 2)
                for i in arg:
                    datagram.addUint32(int(i))
 
                #setCogStatus (uint32array)
                arg = []
                datagram.addUint16(len(arg) << 2)
                for i in arg:
                    datagram.addUint32(int(i))
 
                #setCogCount (uint32array)
                arg = []
                datagram.addUint16(len(arg) << 2)
                for i in arg:
                    datagram.addUint32(int(i))
 
                #setCogRadar(uint8array)
 
                arg = []
                datagram.addUint16(len(arg))
                for i in arg:
                    datagram.addUint8(int(i))
 
                #setBuildingRadar(uint8array)
 
                arg = []
                datagram.addUint16(len(arg))
                for i in arg:
                    datagram.addUint8(int(i))
 
                #setCogLevels(uint8array)
 
                arg = [0, 0, 0, 0]
                datagram.addUint16(len(arg))
                for i in arg:
                    datagram.addUint8(int(i))
 
                #setCogTypes(uint8array)
 
                arg = [0, 0, 0, 0]
                datagram.addUint16(len(arg))
                for i in arg:
                    datagram.addUint8(int(i))
 
                #setCogParts (uint32array)
                arg = [0, 0, 0, 0]
                datagram.addUint16(len(arg) << 2)
                for i in arg:
                    datagram.addUint32(int(i))
 
                #setCogMerits(uint16array)
 
                arg = [0, 0, 0, 0]
                datagram.addUint16(len(arg) << 1)
                for i in arg:
                    datagram.addUint16(int(i))
 
                datagram.addUint32(0) #setHouseId
 
                #setQuests (uint32array)
                arg = []
                datagram.addUint16(len(arg) << 2)
                for i in arg:
                    datagram.addUint32(int(i))
 
                #setQuestHistory(uint16array)
 
                arg = []
                datagram.addUint16(len(arg) << 1)
                for i in arg:
                    datagram.addUint16(int(i))
 
                datagram.addUint8(0) #setRewardHistory 1
 
                #setRewardHistory 2(uint16array)
 
                arg = []
                datagram.addUint16(len(arg) << 1)
                for i in arg:
                    datagram.addUint16(int(i))
 
 
                datagram.addUint8(1) #setQuestCarryLimit
 
                datagram.addInt16(0) #setCheesyEffect 1
                datagram.addUint32(0) #setCheesyEffect 2
                datagram.addUint32(0) #setCheesyEffect 3
 
                datagram.addUint8(0) #setPosIndex
 
                #setFishCollection 1(uint8array)
 
                arg = []
                datagram.addUint16(len(arg))
                for i in arg:
                    datagram.addUint8(int(i))
 
                #setFishCollection 2(uint8array)
 
                arg = []
                datagram.addUint16(len(arg))
                for i in arg:
                    datagram.addUint8(int(i))
 
                #setFishCollection 3(uint16array)
 
                arg = []
                datagram.addUint16(len(arg) << 1)
                for i in arg:
                    datagram.addUint16(int(i))
 
                datagram.addUint8(20) #setMaxFishTank
 
                #setFishTank 1(uint8array)
 
                arg = []
                datagram.addUint16(len(arg))
                for i in arg:
                    datagram.addUint8(int(i))
 
                #setFishTank 2(uint8array)
 
                arg = []
                datagram.addUint16(len(arg))
                for i in arg:
                    datagram.addUint8(int(i))
 
                #setFishTank 3(uint16array)
 
                arg = []
                datagram.addUint16(len(arg) << 1)
                for i in arg:
                    datagram.addUint16(int(i))
 
                datagram.addUint8(1) #setFishingRod
 
                #setFishingTrophies(uint8array)
 
                arg = []
                datagram.addUint16(len(arg))
                for i in arg:
                    datagram.addUint8(int(i))
 
                #setFlowerCollection 1(uint8array)
 
                arg = []
                datagram.addUint16(len(arg))
                for i in arg:
                    datagram.addUint8(int(i))
 
                #setFlowerCollection 2(uint8array)
 
                arg = []
                datagram.addUint16(len(arg))
                for i in arg:
                    datagram.addUint8(int(i))
 
                #setFlowerBasket 1(uint8array)
 
                arg = []
                datagram.addUint16(len(arg))
                for i in arg:
                    datagram.addUint8(int(i))
 
                #setFlowerBasket 2(uint8array)
 
                arg = []
                datagram.addUint16(len(arg))
                for i in arg:
                    datagram.addUint8(int(i))
 
                datagram.addUint8(25) #setMaxFlowerBasket
 
                #setGardenTrophies(uint8array)
 
                arg = []
                datagram.addUint16(len(arg))
                for i in arg:
                    datagram.addUint8(int(i))
 
                datagram.addUint8(1) #setShovel
 
                datagram.addUint32(0) #setShovelSkill
 
                datagram.addUint8(1) #setWateringCan
 
                datagram.addUint32(0) #setWateringCanSkill
 
                datagram.addUint32(0) #setPetID
 
                datagram.addUint8(0) #setPetTutorialDone
 
                datagram.addUint8(0) #setFishBingoTutorialDone
 
                datagram.addUint8(0) #setFishBingoMarkTutorialDone
 
                datagram.addInt8(0) #setKartBodyType
 
                datagram.addInt8(0) #setKartBodyColor
 
                datagram.addInt8(0) #setKartAccessoryColor
 
                datagram.addInt8(0) #setKartEngineBlockType
 
                datagram.addInt8(0) #setKartSpoilerType
 
                datagram.addInt8(0) #setKartFrontWheelWellType
 
                datagram.addInt8(0) #setKartBackWheelWellType
 
                datagram.addInt8(0) #setKartRimType
 
                datagram.addInt8(0) #setKartDecalType
 
                datagram.addUint32(100) #setTickets
 
                datagram.addUint8(0) #setKartingHistory 1
                datagram.addUint8(0) #setKartingHistory 2
                datagram.addUint8(0) #setKartingHistory 3
                datagram.addUint8(0) #setKartingHistory 4
                datagram.addUint8(0) #setKartingHistory 5
                datagram.addUint8(0) #setKartingHistory 6
                datagram.addUint8(0) #setKartingHistory 7
                datagram.addUint8(0) #setKartingHistory 8
                datagram.addUint8(0) #setKartingHistory 9
                datagram.addUint8(0) #setKartingHistory 10
                datagram.addUint8(0) #setKartingHistory 11
                datagram.addUint8(0) #setKartingHistory 12
                datagram.addUint8(0) #setKartingHistory 13
                datagram.addUint8(0) #setKartingHistory 14
                datagram.addUint8(0) #setKartingHistory 15
                datagram.addUint8(0) #setKartingHistory 16
 
               
                datagram.addUint8(0) #setKartingTrophies 1
                datagram.addUint8(0) #setKartingTrophies 2
                datagram.addUint8(0) #setKartingTrophies 3
                datagram.addUint8(0) #setKartingTrophies 4
                datagram.addUint8(0) #setKartingTrophies 5
                datagram.addUint8(0) #setKartingTrophies 6
                datagram.addUint8(0) #setKartingTrophies 7
                datagram.addUint8(0) #setKartingTrophies 8
                datagram.addUint8(0) #setKartingTrophies 9
                datagram.addUint8(0) #setKartingTrophies 11
                datagram.addUint8(0) #setKartingTrophies 11
                datagram.addUint8(0) #setKartingTrophies 12
                datagram.addUint8(0) #setKartingTrophies 13
                datagram.addUint8(0) #setKartingTrophies 14
                datagram.addUint8(0) #setKartingTrophies 15
                datagram.addUint8(0) #setKartingTrophies 16
                datagram.addUint8(0) #setKartingTrophies 17
                datagram.addUint8(0) #setKartingTrophies 18
                datagram.addUint8(0) #setKartingTrophies 19
                datagram.addUint8(0) #setKartingTrophies 20
                datagram.addUint8(0) #setKartingTrophies 21
                datagram.addUint8(0) #setKartingTrophies 22
                datagram.addUint8(0) #setKartingTrophies 23
                datagram.addUint8(0) #setKartingTrophies 24
                datagram.addUint8(0) #setKartingTrophies 25
                datagram.addUint8(0) #setKartingTrophies 26
                datagram.addUint8(0) #setKartingTrophies 27
                datagram.addUint8(0) #setKartingTrophies 28
                datagram.addUint8(0) #setKartingTrophies 29
                datagram.addUint8(0) #setKartingTrophies 30
                datagram.addUint8(0) #setKartingTrophies 31
                datagram.addUint8(0) #setKartingTrophies 32
                datagram.addUint8(0) #setKartingTrophies 33
 
                datagram.addUint32(0) #setKartingPersonalBest 1
                datagram.addUint32(0) #setKartingPersonalBest 2
                datagram.addUint32(0) #setKartingPersonalBest 3
                datagram.addUint32(0) #setKartingPersonalBest 4
                datagram.addUint32(0) #setKartingPersonalBest 5
                datagram.addUint32(0) #setKartingPersonalBest 6
 
                datagram.addUint32(0) #setKartingPersonalBest2 1
                datagram.addUint32(0) #setKartingPersonalBest2 2
                datagram.addUint32(0) #setKartingPersonalBest2 3
                datagram.addUint32(0) #setKartingPersonalBest2 4
                datagram.addUint32(0) #setKartingPersonalBest2 5
                datagram.addUint32(0) #setKartingPersonalBest2 6
                datagram.addUint32(0) #setKartingPersonalBest2 7
                datagram.addUint32(0) #setKartingPersonalBest2 8
                datagram.addUint32(0) #setKartingPersonalBest2 9
                datagram.addUint32(0) #setKartingPersonalBest2 10
                datagram.addUint32(0) #setKartingPersonalBest2 11
                datagram.addUint32(0) #setKartingPersonalBest2 12
 
                #setKartAccessoriesOwned [16]
                datagram.addInt8(0)
                datagram.addInt8(0)
                datagram.addInt8(0)
                datagram.addInt8(0)
                datagram.addInt8(0)
                datagram.addInt8(0)
                datagram.addInt8(0)
                datagram.addInt8(0)
                datagram.addInt8(0)
                datagram.addInt8(0)
                datagram.addInt8(0)
                datagram.addInt8(0)
                datagram.addInt8(0)
                datagram.addInt8(0)
                datagram.addInt8(0)
                datagram.addInt8(0)
 
                #setCogSummonsEarned
                arg = []
                datagram.addUint16(len(arg))
                for i in arg:
                    datagram.addUint8(int(i))
 
                datagram.addUint8(0) #setGardenStart
 
                #setGolfHistory [18]
                datagram.addUint16(0)
                datagram.addUint16(0)
                datagram.addUint16(0)
                datagram.addUint16(0)
                datagram.addUint16(0)
                datagram.addUint16(0)
                datagram.addUint16(0)
                datagram.addUint16(0)
                datagram.addUint16(0)
                datagram.addUint16(0)
                datagram.addUint16(0)
                datagram.addUint16(0)
                datagram.addUint16(0)
                datagram.addUint16(0)
                datagram.addUint16(0)
                datagram.addUint16(0)
                datagram.addUint16(0)
                datagram.addUint16(0)
 
                #setPackedGolfHoleBest [18]
                datagram.addUint8(0)
                datagram.addUint8(0)
                datagram.addUint8(0)
                datagram.addUint8(0)
                datagram.addUint8(0)
                datagram.addUint8(0)
                datagram.addUint8(0)
                datagram.addUint8(0)
                datagram.addUint8(0)
                datagram.addUint8(0)
                datagram.addUint8(0)
                datagram.addUint8(0)
                datagram.addUint8(0)
                datagram.addUint8(0)
                datagram.addUint8(0)
                datagram.addUint8(0)
                datagram.addUint8(0)
                datagram.addUint8(0)
 
                #setGolfCourseBest
                datagram.addUint8(0)
                datagram.addUint8(0)
                datagram.addUint8(0)
 
                datagram.addUint8(0) #setPinkSlips
 
                datagram.addUint8(0) #setNametagStyle

                self.cw.send(datagram, connection)

               
        elif msgType == CLIENT_SET_WISHNAME:
            #print dgi
            avId = dgi.getUint16()
            unknown = dgi.getString()
            pendingName = dgi.getString()
            print pendingName
            divide = pendingName.split(' ')
            lenStr = len(divide)
            s = 0
            while s != lenStr:
                nameCheck = divide[s]
                s += 1
            with open ("TewtowBlacklist.txt", "r") as badWordFile:
                data=badWordFile.readlines()
                for word in data:
                    chrList = list(word)
                    if chrList.count('\n') == 1:
                        chrList.remove('\n')
                    badWord = ''.join(chrList)
                    if nameCheck == badWord:
                        print 'Bad name detected, are you trying to get banned?'
                        datagram = PyDatagram()
                        datagram.addUint16(CLIENT_SET_WISHNAME_RESP)
                        datagram.addUint32(avId)
                        datagram.addUint16(0)
                        datagram.addString('NO')
                        datagram.addString('NO')
                        datagram.addString('')
                        message = PyDatagram()
                        message.addUint16(CLIENT_SYSTEM_MESSAGE)
                        message.addString('Sorry, That name is not allowed.')
                        self.cw.send(message, connection)
                    else:
                        datagram = PyDatagram()
                        datagram.addUint16(CLIENT_SET_WISHNAME_RESP)
                        datagram.addUint32(avId)
                        datagram.addUint16(0)
                        datagram.addString('NO')
                        datagram.addString('')
                        datagram.addString('NO')
                        self.cw.send(datagram, connection)
 
        elif msgType == CLIENT_OBJECT_LOCATION:
            doId = dgi.getUint32()
            parentId = dgi.getUint32()
            zoneId = dgi.getUint32()
            print 'Network :: Location -> (%d, %d, %d)' % (doId, parentId, zoneId)
            if zoneId == 2000:
               
                #DistributedMickey
                datagram = PyDatagram()
                datagram.addUint16(CLIENT_CREATE_OBJECT_REQUIRED_OTHER_RESP)
                datagram.addUint32(316000000) #parentId
                datagram.addUint32(2) #zoneId
                #datagram.addUint16(83)
                datagram.addUint16(65)
                datagram.addUint32(433103088)
                datagram.addString("a")
                datagram.addString("a")
                datagram.addInt16(0)
                self.cw.send(datagram, connection)
           
            if zoneId == 1000:
                datagram = PyDatagram()
                datagram.addUint16(CLIENT_CREATE_OBJECT_REQUIRED_OTHER_RESP)
                datagram.addUint32(316000000) #parentId
                datagram.addUint32(2) #zoneId
                #datagram.addUint16(83)
                datagram.addUint16(108)
                datagram.addUint32(433103088)
                datagram.addString("DockedEast")
                datagram.addInt16(100)
                self.cw.send(datagram, connection)
            if zoneId == 5000:
                '''
                datagram = PyDatagram()
                datagram.addUint16(CLIENT_CREATE_OBJECT_REQUIRED_OTHER_RESP)
                datagram.addUint32(316000000) #parentId
                datagram.addUint32(2) #zoneId
                datagram.addUint16(68)
                datagram.addUint32(433103088)
                datagram.addString("a")
                datagram.addString("a")
                datagram.addInt16(0)
                self.cw.send(datagram, connection)
                '''
               
        #self.cw.send(datagram, connection)
            if zoneId == 2000:
                pass
                '''#message = PyDatagram()
                #message.addUint16(CLIENT_SYSTEM_MESSAGE)
                #message.addString('Surprised? I thought so. :P')
                #self.cw.send(message, connection)
                datagram = PyDatagram()
                datagram.addUint16(CLIENT_CREATE_OBJECT_REQUIRED_OTHER_RESP)
                datagram.addUint32(316000000) #parentId
                datagram.addUint32(2) #zoneId
                #datagram.addUint16(83)
                datagram.addUint16(65)
                datagram.addUint32(433103088)
                datagram.addString("b")
                datagram.addString("a")
                datagram.addInt16(0)
                self.cw.send(datagram, connection)'''
               
            if zoneId == 3000:
                datagram = PyDatagram()
                datagram.addUint16(CLIENT_CREATE_OBJECT_REQUIRED_OTHER_RESP)
                datagram.addUint32(316000000) #parentId
                datagram.addUint32(2) #zoneId
                #datagram.addUint16(83)
                datagram.addUint16(79)
                datagram.addUint32(433103089)
                datagram.addString("a")
                datagram.addString("a")
                datagram.addInt16(0)
                self.cw.send(datagram, connection)
               
                datagram = PyDatagram()
                datagram.addUint16(CLIENT_GET_STATE_RESP)
                self.cw.send(datagram, connection)

			
        else:
            self.notify.warning('Got a datagram %d; but could not handle it.' % msgType)