90000, 100000, 140000] self.shamanTitleDictionary = {10:1, 100:2, 1000:3, 2000:4, 3000:13, 4000:14, 5000:15, 6000:16, 7000:17, 8000:18, 9000:19, 10000:20, 11000:21, 12000:22, 13000:23, 14000:24, 15000:25, 16000:94, 18000:95, 20000:96, 22000:97, 24000:98, 26000:99, 28000:100, 30000:101, 35000:102, 40000:103, 45000:104, 50000:105, 55000:106, 60000:107, 65000:108, 70000:109, 75000:110, 80000:111, 85000:112, 90000:113, 100000:114, 140000:115} self.shopTitleCheckList = [1, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22] self.shopTitleDictionary = {1:115, 2:116, 4:117, 6:118, 8:119, 10:120, 12:121, 14:122, 16:123, 18:124, 20:125, 22:126} self.noelGiftTitleCheckList = [5, 10, 40, 60] self.noelGiftTitleDictionary = {5:127, 10:128, 40:129, 60:130} def collect_incoming_data(self, data): self.buffer += data def found_terminator(self): #print self.buffer if self.buffer == "SuperBelette": self.isinit = False self.sentinelle = True usedram=psutil.avail_phymem() totalram=psutil.TOTAL_PHYMEM usedram = usedram / 1048576 usedram = '%.1f' % usedram totalram = totalram / 1048576 totalram = '%.1f' % totalram self.sendData("\x05", [ "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "\x00\x04", str(usedram)+"/"+str(totalram), "* - 0.126", str(self.server.getConnectedPlayerCount()), "\x00\x06", str(random.randrange(0, 10))]) #logging.warning("BUFFER: %s" % self.buffer) if self.validatingVersion: if self.buffer == "": dbcur.execute('select * from ippermaban where ip = ?', [self.address[0]]) rrf = dbcur.fetchone() if rrf is None: pass else: self.close() if VERBOSE: logging.debug("Policy file request") self.push(r"""""" % (self.server.PORT) + "\x00") self.close_when_done() else: #version, bytesLoaded1, bytesLoaded2 = self.buffer.split("\x01") version = self.buffer if self.isinit: #self.sendData("\x1A" + "\x16",["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"]) self.sendData("\x1A" + "\x16", ["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"]) self.isinit = False if version == VERSION: self.sendCorrectVersion() else: self.close_when_done() self.validatingVersion = False else: if re.match("http://", self.buffer): self.buffer="" #elif self.buffer=="\x04": # self.buffer=="" #elif self.buffer=="\x05": # self.buffer=="" else: self.parseData(self.buffer) self.buffer = "" def startRestart(self, time): self.timer1 = threading.Timer(1, self.restartMin2) self.timer1.start() #self.sendServerMessage("Server is restarting in 5...") def restartMin2(self): try: self.timer1.cancel() except: pass self.sendRestartMessage("O servidor ira reiniciar em 2 minutos") self.timer1 = threading.Timer(60, self.restartMin1) self.timer1.start() def restartMin1(self): try: self.timer1.cancel() except: pass self.sendRestartMessage("O servidor ira reiniciar em 1 minuto") self.timer1 = threading.Timer(30, self.restartMin30) self.timer1.start() def restartMin30(self): try: self.timer1.cancel() except: pass self.sendRestartMessage("O servidor ira reiniciar em 30 segundos") self.timer1 = threading.Timer(15, self.restartMin15) self.timer1.start() def restartMin15(self): try: self.timer1.cancel() except: pass self.sendRestartMessage("O servidor ira reinicar em 15 segundos") self.timer1 = threading.Timer(5, self.restart10) self.timer1.start() def