Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #coding: utf-8
- import time, re, random, json, os, glob, sys, urllib2, urllib, logging, struct, platform, subprocess, binascii, base64, hashlib
- from datetime import datetime
- from datetime import timedelta
- from twisted.internet import reactor
- class ParseCommands:
- def __init__(self, c):
- self.c = c
- self.parseByte = c.parseByte
- self.Database = c.Database
- self.admins = c.server.ParseBase.admins
- self.currentArgsCount = 0
- def requireLevel(self, level, InList = False, IsMC = False):
- if not InList:
- if not IsMC:
- if self.c.privilegeLevel < level:
- raise UserWarning
- else:
- return True
- elif self.c.privilegeLevel < level:
- raise UserWarning
- else:
- return True
- elif self.c.username in self.admins:
- if not IsMC:
- if self.c.privilegeLevel < level:
- raise UserWarning
- else:
- return True
- elif self.c.privilegeLevel < level:
- raise UserWarning
- else:
- return True
- def lenEvent(self, n, InType = False):
- if not InType:
- return self.eventCount is n
- for x in n:
- return self.eventCount is x
- def getMessage(self, ID):
- return open('./files/text_tools/commands/#%s.lua' % ID).read()
- def requireNoSouris(self, playerName):
- if playerName.startswith("*"):
- raise UserWarning
- else:
- return True
- def requireArgs(self, argsCount):
- if self.currentArgsCount < argsCount:
- raise UserWarning
- else:
- return True
- def parseCommand(self, event, event_raw, EVENTRAWSPLIT, EVENTCOUNT):
- if self.c.cheesecount >= 5:
- values = event.split(" ")
- event = values[0].lower()
- args = values[1:]
- argsCount = len(args)
- argsNotSplited = " ".join(args)
- self.currentArgsCount = argsCount
- self.eventCount = len(values)
- if argsCount == 0:
- if event in ('vanilla', 'bootcamp', 'racing', 'defilante', 'tutorial', 'survivor', 'editeur', 'totem', 'modemusique', 'village'):
- if event == 'tutorial':
- message = '{p}[Tutorial] {n}'.format(p=chr(3), n=self.c.username)
- self.c.enterRoom(message)
- elif event == 'editeur' or event == 'editor':
- self.requireLevel(1)
- message = '{p}[Editeur] {n}'.format(p=chr(3), n=self.c.username)
- self.c.enterRoom(message)
- self.c.sendData('\x0e\x0e', [])
- elif event == 'totem':
- self.requireLevel(1)
- if self.c.micesaves >= 1:
- message = '{p}[Totem] {n}'.format(p=chr(3), n=self.c.username)
- self.c.enterRoom(message)
- elif event == 'modemusique':
- self.c.enterRoom(self.c.server.recommendRoomPrefixed(self.c.Langue, 'music'))
- else:
- self.c.enterRoom(self.c.server.recommendRoomPrefixed(self.c.Langue, event))
- elif event == 'pw':
- roomname, username = str(self.c.room.namewithout).lower(), str(self.c.username).lower()
- if not roomname.startswith('*'):
- if roomname.startswith(username):
- self.c.room.isPasswordRoom = False
- self.c.sendMessage('Password disabled.')
- elif roomname.startswith('*' + username):
- self.c.room.isPasswordRoom = False
- self.c.sendMessage('Password disabled.')
- elif event in ('mulodrome', 'teamversus', 'muldrome'):
- can = False
- roomname, username = str(self.c.room.namewithout).lower(), str(self.c.username).lower()
- if not roomname.startswith('*'):
- if roomname.startswith(username):
- can = True
- elif roomname.startswith('*' + username):
- can = True
- if can:
- if self.c.room.LeaderDrome is None:
- self.c.sendData('\x1e\x0e', chr(1), True)
- self.c.room.LeaderDrome = self.c.username
- for playerCode, client in self.c.room.clients.items():
- if client.username != self.c.username:
- client.sendData('\x1e\x0e', chr(0), True)
- else:
- self.c.sendMessage('<J>•<N> A sala precisa iniciar com o seu nome para iniciar um mulodrome.\nExemplo: <ROSE>/sala '+username+'\n<N>Depois basta digitar /mulodrome novamente.\n\n<J>Caso tenha dúvidas, digite: /ajudamulodrome.')
- elif event in ('np', 'map', 'nexmap', 'killall'):
- if not self.c.room.votingMode:
- if self.c.privilegeLevel >= 4:
- self.c.room.killAll()
- elif self.c.room.isTribehouseMap:
- if self.c.isInTribe:
- if self.c.TribeInfo[9] in '1' or self.c.TribeInfo[8] in '1':
- self.c.room.killAll()
- else:
- self.c.sendTribePermisson()
- elif event in ('vamp', 'zumbi'):
- if self.c.privilegeLevel >= 2:
- packet = self.parseByte.ByteArray()
- packet.writeInt(self.c.playerCode)
- self.c.room.sendAllBin('\x08B', packet.toString())
- self.c.sendMessage('<J>•<N> Agora você é um vampiro.')
- elif event in ('modehide', 'modeunhide'):
- self.requireLevel(5)
- if event == 'modeunhide':
- if self.c.privilegeLevel in (8, 6, 5, 4):
- if self.c.Langue in self.c.server.ModList:
- if self.c.username in self.c.server.ModList[self.c.Langue]:
- pass
- else:
- self.c.server.ModList[self.c.Langue].append(self.c.username)
- else:
- self.c.server.ModList[self.c.Langue] = [self.c.username]
- message = '<T>%s <PS>unhide the account in moderator list.' % self.c.username
- self.c.sendAllModMessageChannel('Servidor', message)
- else:
- try:
- if self.c.Langue in self.c.server.ModList:
- self.c.server.ModList[self.c.Langue].remove(self.c.username)
- self.c.server.checkIfModOnlines()
- except:
- self.c.server.checkIfModOnlines()
- message = '<T>%s <PS>hide the account in moderator list.' % self.c.username
- self.c.sendAllModMessageChannel('Servidor', message)
- elif event == 'blacklist':
- if self.c.privilegeLevel >= 5:
- message = ''
- message += '<p align = \'center\'><font size = \'15\'><N>Blacklist - TopMice </font></p><p align=\'left\'><font size = \"12"><br>'
- message += '<J> '+ str(self.c.server.textToolsSiteList['server']['blacklist']) + ' '
- self.c.sendLogMessage(message)
- elif event == 'whitelist':
- if self.c.privilegeLevel >= 5:
- message = ''
- message += '<p align = \'center\'><font size = \'15\'><N>Whitelist - TopMice </font></p><p align=\'left\'><font size = \"12"><br><br>'
- message += '<J> '+ str(self.c.server.textToolsSiteList['server']['whitelist']) + ' '
- self.c.sendLogMessage(message)
- elif event == 'suspectwords':
- if self.c.privilegeLevel >= 5:
- message = ''
- message += '<p align = \'center\'><font size = \'15\'><N>Palavras Suspeitas - TopMice </font></p><p align=\'left\'><font size = \"12"><br><br>'
- message += '<J> '+ str(self.c.server.textToolsSiteList['server']['suspectwords']) + ' '
- self.c.sendLogMessage(message)
- elif event == 'ipbans':
- if self.c.privilegeLevel >= 5:
- message = ''
- message += '<p align = \'center\'><font size = \'15\'><N>IPs Proibidos - TopMice </font></p><p align=\'left\'><font size = \"12"><br><br>'
- message += '<J> '+ str(self.c.server.textToolsSiteList['server']['ipbans']) + ' '
- self.c.sendLogMessage(message)
- elif event == 'allowdomain':
- if self.c.privilegeLevel >= 5:
- message = ''
- message += '<p align = \'center\'><font size = \'15\'><N>Domínios liberados - TopMice </font></p><p align=\'left\'><font size = \"12"><br><br>'
- message += '<J> '+ str(self.c.server.textToolsSiteList['server']['allowdomain']) + ' '
- self.c.sendLogMessage(message)
- elif event == 'hide':
- if self.c.privilegeLevel >= 5:
- self.c.isHidden = True
- self.c.sendPlayerDisconnect(self.c.playerCode)
- self.c.sendData("\x06\x14", ["1", 'Agora você está invisível, digite /unhide para voltar a ser visível.'])
- elif event == 'unhide':
- if self.c.privilegeLevel >= 5:
- self.c.isHidden = False
- self.c.enterRoom(self.c.roomname)
- self.c.sendData("\x06\x14", ["1", 'Você está visível novamente.'])
- elif event == "vsha":
- if self.c.privilegeLevel >= 5:
- self.c.sendShamanCode(self.c.playerCode)
- self.c.isShaman = True
- self.c.sendData("\x06" + "\x14", ["1", "<CH>^_^!"])
- elif event in ('refshop', 'refshp'):
- if self.c.privilegeLevel >= 10:
- self.c.server.parseShopFile()
- self.c.server.parseShamanShopFile()
- self.c.server.sendRefreshShop()
- self.c.sendMessage('<J>•<N> Shop atualizado.')
- elif event == "ls":
- if self.c.privilegeLevel >= 4:
- data = {}
- count = [0, 0]
- for room in self.c.server.rooms.values():
- for sent in room.clients.values():
- count[0] += 1
- if room.name.startswith("*") and not room.name.startswith("*\x03"):
- rooms = [["ALL", room.name], room.getPlayerCount()]
- elif room.name.startswith("\x03") or room.name.startswith("*\x03"):
- if room.name.startswith("*\x03"):
- rooms = [["TRIBEHOUSE", room.name[1:]], room.getPlayerCount()]
- else:
- rooms = [["PRIVATE", room.name[1:]], room.getPlayerCount()]
- else:
- rooms = [room.name.split("-"), room.getPlayerCount()]
- data[rooms[0][1]] = "%s : %s" %(rooms[0][0], rooms[1])
- count[1] += 1
- new = ""
- for roomname, info in data.items():
- info = info.split(" : ")
- language = info[0]
- thecount = info[1]
- new += "[<J>%s<BL>] <b>%s</b> : %s\n" %(language, roomname, thecount)
- new = new + "<font color='#00C0FF'>Total de onlines/salas : </font><J><b>%i</b><font color='#00C0FF'>/</font><J><b>%i</b>" % (count[0], count[1])
- self.c.sendMessage(new)
- else:
- self.c.sendMessage("<ROSE>[OPS] <N>Comando apenas para Equipe")
- elif event in ('musique', 'music', 'stop'):
- if self.c.privilegeLevel >= 4:
- self.c.sendStopMusic()
- elif self.c.room.isTribehouseMap:
- if self.c.isInTribe:
- if self.c.TribeInfo[7] in '1':
- self.c.sendStopMusic()
- elif event == 'meep':
- if self.c.privilegeLevel >= 2:
- if self.c.isShaman:
- self.c.sendData("\x08'", binary=True)
- self.c.canMeep = True
- self.c.sendMessage('<J>•<N> Meep foi ativado!')
- else:
- self.c.sendMessage('<J>•<N> Você não é shaman para ativar este comando.')
- elif event == 'lojinha' or event == 'loja':
- if self.c.privilegeLevel >= 1:
- self.c.sendLoja(0)
- elif event == 'ajuda' or event == 'help':
- if self.c.privilegeLevel >= 1:
- self.c.sendNovidades(0)
- elif event == 'novidades':
- if self.c.privilegeLevel >= 1:
- self.c.sendMessage('<J>•<N> <ROSE>Novidades do servidor:\n<N>Lojinha editada.\nMapEditor Desbugado.\nPrêmio por hora online diminuido.\nComando /novidades adicionado.\n\n')
- elif event == 'equipe' or event == 'staff':
- if self.c.privilegeLevel >= 1:
- self.c.sendEquipe(0)
- elif event == 'roleta' or event == 'sorteio':
- if self.c.privilegeLevel >= 1:
- self.c.sendRoleta(0)
- elif event == 'ranking':
- self.c.sendRanking(0)
- elif event == 'selfie':
- if self.c.privilegeLevel >= 1:
- self.c.room.sendAllBin('\x1f\x03', struct.pack('!ih', int(self.c.playerCode), 21))
- elif event == 'vips':
- if self.c.privilegeLevel >= 1:
- msg = "<VP>VIPS TOPMICE\n\n"
- self.Database.execute('select * from users where privLevel == 2')
- rrfRows = self.Database.fetchall()
- if rrfRows is None:
- Message='Empty'
- else:
- for rrf in rrfRows:
- name=rrf[0]
- privlevel=rrf[3]
- if privlevel==2:
- if self.c.server.checkAlreadyConnectedAccount(name):
- status= "<N>[<VP>Online<N>]<N>"
- else:
- status= "<N>[<R>Offline<N>]<N>"
- inf= '\n<V>'+str(name)+' - <N><CH>VIP<V> - '+str(status)+' \n'
- msg+=inf
- self.c.sendLogMessage(msg)
- elif event == 'bcstats':
- if self.c.privilegeLevel != 0:
- count = self.c.server.getBootcampCount(self.c.username)
- if self.c.Langue.lower() == 'br':
- self.c.sendMessage('Bootcamps Completados: <J>' + str(count))
- else:
- self.c.sendMessage('Completed Bootcamps: <J>' + str(count))
- elif event == 'cat':
- if self.c.privilegeLevel >= 10:
- self.c.room.sendAllBin('\x05\x2b' + struct.pack('!ib', self.c.playerCode,1))
- elif event == 'sauvertotem':
- if self.c.room.isTotemEditeur:
- self.c.server.setTotemData(self.c.username, self.c.Totem[0], self.c.Totem[1])
- self.c.STotem[0] = self.c.Totem[0]
- self.c.STotem[1] = self.c.Totem[1]
- self.c.sendPlayerDied(self.c.playerCode, self.c.score)
- self.c.enterRoom(self.c.server.recommendRoom(self.c.Langue))
- elif event == 'resettotem':
- if self.c.room.isTotemEditeur:
- self.c.Totem = [0, '']
- self.c.RTotem = True
- self.c.isDead = True
- self.c.sendPlayerDied(self.c.playerCode, self.c.score)
- self.c.room.checkShouldChangeWorld()
- elif event == 'avl':
- if self.c.privilegeLevel >= 4:
- self.c.enterRoom('\x03'+'[MAPCREW]')
- self.c.sendMessage('<J>•<N> Bem vindo a sala de avaliação de mapas. (Somente mapcrews)')
- else:
- self.c.sendMessage('<J>•<N> Desculpe, apenas MapCrews podem entrar aqui.')
- elif event == "mod" or event == "mods" or event == "modsonline":
- if self.c.privilegeLevel != 1:
- name = "There isn't any mod online."
- for room in self.c.server.rooms.values():
- for playerCode, client in room.clients.items():
- if not client.username.startswith("Cfmbot"):
- if client.privilegeLevel in [5,5]:
- if client.username == ", , ":
- if name == "There isn't any mod online.":
- name = "<CH>"+client.username
- else:
- name = name+"<ROSE>, <CH>"+client.username
- else:
- if name == "There isn't any mod online.":
- name = "<BV>"+client.username
- else:
- name = name+"<ROSE>, <R>"+client.username
- elif client.privilegeLevel in [5,5]:
- if name == "There isn't any mod online.":
- name = "<VP>"+client.username
- else:
- name = name+"<ROSE>, <VP>"+client.username
- msg = name
- self.c.sendMessage("Moderadores conectados:\n<ROSE>"+msg)
- elif event in ('kill', 'suicide', 'bubbles', 'die', 'mort'):
- if not self.c.isDead:
- self.c.isDead = True
- self.c.score -= 1
- if self.c.score < 0:
- self.c.score = 0
- self.c.sendPlayerDied(self.c.playerCode, self.c.score)
- self.c.room.checkShouldChangeWorld()
- elif event in ('re', 'respawn'):
- if self.c.privilegeLevel >= 2:
- if self.c.room.isNorm or self.c.room.isRacing or self.c.room.isVanilla or self.c.room.isDefilante:
- if self.c.isDead:
- self.c.room.respawnSpecific(self.c.username)
- self.c.sendMessage("<V>Você reviveu ^_^")
- if self.c.room.isSurvivor:
- self.c.sendMessage("<V>Comando desabilitado para <b>Modo Survivor</b>!")
- else:
- self.c.sendMessage("<V>Comando disponível apenas para <b>VIPs</b>.")
- elif event == 'shutdown':
- if self.c.privilegeLevel >= 10:
- self.c.updateSelfSQL()
- self.c.sendServerMessage('Servidor reiniciará em 40 segundos.')
- self.c.sendMessage('Você executou o comando /shutdown, o servidor será reiniciado.')
- self.c.rebootTimer = reactor.callLater(20, self.c.server.stopServer)
- elif event in ('title', 'titre', 'titulo'):
- cdata, tlist = '', ''
- count1, count2 = 0, 0
- for i in self.c.titleList:
- if ',' in str(i):
- t, c = str(i).split(',')
- cdata += struct.pack("!hb", int(t), int(c))
- count2 += 1
- else:
- tlist += struct.pack("!h", int(i))
- count1 += 1
- data = struct.pack("!h", count1) + tlist
- data += struct.pack("!h", count2) + cdata
- self.c.sendData("\x08\x0E", data, True)
- elif event == 'meusmapas' or event == 'mymaps' or event == 'mismapas':
- if self.c.privilegeLevel >= 1:
- found = False
- result = ''
- self.Database.execute('select * from mapeditor where name = ?', [self.c.username])
- rrfRows = self.Database.fetchall()
- if rrfRows is None:
- if self.c.Langue == 'br':
- result = 'Voc\xc3\xaa Ainda N\xc3\xa3o Tem Nenhum Mapa.'
- elif self.c.Langue == 'en':
- result = "You don't have maps."
- elif self.c.Langue == 'es':
- result = 'Usted no tiene mapas.'
- else:
- for rrf in rrfRows:
- if not found:
- result = 'Mapas:'
- found = True
- result += '<br>@' + str(rrf[1]) + ' - P' + str(rrf[5])
- self.c.sendLogMessage(result)
- elif event == 'pp':
- if self.c.privilegeLevel >= 3:
- self.c.sendMessage('<ROSE>Comandos de MapCrew:')
- self.c.sendMessage('Comandos para avaliar mapas:')
- self.c.sendMessage('<J>• /p0 <N>- Mapa em rota\xc3\xa7\xc3\xa3o')
- self.c.sendMessage('<J>• /p1 <N>- Permanenete')
- self.c.sendMessage('<J>• /p2 <N>- Mapas exclusivos (Eventos)')
- self.c.sendMessage('<J>• /p3 <N>- BootCamp')
- self.c.sendMessage('<J>• /p4 <N>- Mapa de Shaman')
- self.c.sendMessage('<J>• /p5 <N>- Arte')
- self.c.sendMessage('<J>• /p6 <N>- Mecanismo')
- self.c.sendMessage('<J>• /p7 <N>- Mapa sem Shaman (Racing, Normal)')
- self.c.sendMessage('<J>• /p8 <N>- Mapa de cooperação (Dois Shamans)')
- self.c.sendMessage('<J>• /p9 <N>- Mapa diverso (Que não se encaixa em nenhuma categoria)')
- self.c.sendMessage('<J>• /p10 <N>- Survivor')
- self.c.sendMessage('<J>• /p11 <N>- Vampire')
- self.c.sendMessage('<J>• /p17 <N>- Racing')
- self.c.sendMessage('<J>• /p18 <N>- Defilante')
- self.c.sendMessage('<J>• /p22 <N>- Cafofo de Tribo')
- self.c.sendMessage('<J>• /p43 <N>- Deletado (Ofensivo)')
- self.c.sendMessage('<J>• /p44 <N>- Deletado\n')
- self.c.sendMessage('<J>Comandos para deletar mapas:')
- self.c.sendMessage('<J>• /del <N>- Deletar Mapa')
- self.c.sendMessage('<J>• /harddel <N>- Deletar mapa da DB (Somente para administradores)')
- elif event == 'limparchat' or event == 'clear':
- if self.c.privilegeLevel >= 5:
- self.c.sendAllMessage('\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n<N>Chat limpo pelo jogador <V>'+username+'.')
- elif event == 'mapranking':
- UserList = []
- self.Database.execute('select code, yesvotes from mapeditor')
- rrfRows = self.Database.fetchall()
- if rrfRows is None:
- pass
- else:
- for rrf in rrfRows:
- UserList.append(rrf)
- MapList = {}
- mapListDisp = []
- for user in UserList:
- MapList[user[0]] = user[1]
- mSL = max(MapList.iterkeys(), key=lambda k: MapList[k])
- mapListDisp.append([1, mSL, MapList[mSL]])
- del MapList[mSL]
- mSL = max(MapList.iterkeys(), key=lambda k: MapList[k])
- mapListDisp.append([2, mSL, MapList[mSL]])
- del MapList[mSL]
- mSL = max(MapList.iterkeys(), key=lambda k: MapList[k])
- mapListDisp.append([3, mSL, MapList[mSL]])
- del MapList[mSL]
- mSL = max(MapList.iterkeys(), key=lambda k: MapList[k])
- mapListDisp.append([4, mSL, MapList[mSL]])
- del MapList[mSL]
- mSL = max(MapList.iterkeys(), key=lambda k: MapList[k])
- mapListDisp.append([5, mSL, MapList[mSL]])
- del MapList[mSL]
- mSL = max(MapList.iterkeys(), key=lambda k: MapList[k])
- mapListDisp.append([6, mSL, MapList[mSL]])
- del MapList[mSL]
- mSL = max(MapList.iterkeys(), key=lambda k: MapList[k])
- mapListDisp.append([7, mSL, MapList[mSL]])
- del MapList[mSL]
- mSL = max(MapList.iterkeys(), key=lambda k: MapList[k])
- mapListDisp.append([8, mSL, MapList[mSL]])
- del MapList[mSL]
- mSL = max(MapList.iterkeys(), key=lambda k: MapList[k])
- mapListDisp.append([9, mSL, MapList[mSL]])
- del MapList[mSL]
- mSL = max(MapList.iterkeys(), key=lambda k: MapList[k])
- mapListDisp.append([10, mSL, MapList[mSL]])
- del MapList[mSL]
- self.c.sendData('\x1a' + '\x1a', ["<TI>Ranking De Mapas</TI><br><br><font color='#FFFFFF'>1 - " + str(mapListDisp[0][1]) + ' - ' + str(mapListDisp[0][2]) + '<br><br><J>2 - ' + str(mapListDisp[1][1]) + ' - ' + str(mapListDisp[1][2]) + '<br><br><J>3 - ' + str(mapListDisp[2][1]) + ' - ' + str(mapListDisp[2][2]) + '<br><br><J>4 - ' + str(mapListDisp[3][1]) + ' - ' + str(mapListDisp[3][2]) + '<br><br><J>5 - ' + str(mapListDisp[4][1]) + ' - ' + str(mapListDisp[4][2]) + '<br><br><J>6 - ' + str(mapListDisp[5][1]) + ' - ' + str(mapListDisp[5][2]) + '<br><br><J>7 - ' + str(mapListDisp[6][1]) + ' - ' + str(mapListDisp[6][2]) + '<br><br><J>8 - ' + str(mapListDisp[7][1]) + ' - ' + str(mapListDisp[7][2]) + '<br><br><J>9 - ' + str(mapListDisp[8][1]) + ' - ' + str(mapListDisp[8][2]) + '<br><br><J>10 - ' + str(mapListDisp[9][1]) + ' - ' + str(mapListDisp[9][2]) + '</font>'])
- elif event == 'bcranking':
- UserList = []
- self.Database.execute('select name, bootcamp from users')
- rrfRows = self.Database.fetchall()
- if rrfRows is None:
- pass
- else:
- for rrf in rrfRows:
- UserList.append(rrf)
- bcList = {}
- bcListDisp = []
- for user in UserList:
- bcList[user[0]] = user[1]
- mSL = max(bcList.iterkeys(), key=lambda k: bcList[k])
- bcListDisp.append([1, mSL, bcList[mSL]])
- del bcList[mSL]
- mSL = max(bcList.iterkeys(), key=lambda k: bcList[k])
- bcListDisp.append([2, mSL, bcList[mSL]])
- del bcList[mSL]
- mSL = max(bcList.iterkeys(), key=lambda k: bcList[k])
- bcListDisp.append([3, mSL, bcList[mSL]])
- del bcList[mSL]
- mSL = max(bcList.iterkeys(), key=lambda k: bcList[k])
- bcListDisp.append([4, mSL, bcList[mSL]])
- del bcList[mSL]
- mSL = max(bcList.iterkeys(), key=lambda k: bcList[k])
- bcListDisp.append([5, mSL, bcList[mSL]])
- del bcList[mSL]
- mSL = max(bcList.iterkeys(), key=lambda k: bcList[k])
- bcListDisp.append([6, mSL, bcList[mSL]])
- del bcList[mSL]
- mSL = max(bcList.iterkeys(), key=lambda k: bcList[k])
- bcListDisp.append([7, mSL, bcList[mSL]])
- del bcList[mSL]
- mSL = max(bcList.iterkeys(), key=lambda k: bcList[k])
- bcListDisp.append([8, mSL, bcList[mSL]])
- del bcList[mSL]
- mSL = max(bcList.iterkeys(), key=lambda k: bcList[k])
- bcListDisp.append([9, mSL, bcList[mSL]])
- del bcList[mSL]
- mSL = max(bcList.iterkeys(), key=lambda k: bcList[k])
- bcListDisp.append([10, mSL, bcList[mSL]])
- del bcList[mSL]
- self.c.sendData('\x1a' + '\x1a', ["<TI>Ranking De Bootcamp</TI><br><br><font color='#FFFFFF'>1 - " + str(bcListDisp[0][1]) + ' - ' + str(bcListDisp[0][2]) + '<br><br><J>2 - ' + str(bcListDisp[1][1]) + ' - ' + str(bcListDisp[1][2]) + '<br><br><J>3 - ' + str(bcListDisp[2][1]) + ' - ' + str(bcListDisp[2][2]) + '<br><br><J>4 - ' + str(bcListDisp[3][1]) + ' - ' + str(bcListDisp[3][2]) + '<br><br><J>5 - ' + str(bcListDisp[4][1]) + ' - ' + str(bcListDisp[4][2]) + '<br><br><J>6 - ' + str(bcListDisp[5][1]) + ' - ' + str(bcListDisp[5][2]) + '<br><br><J>7 - ' + str(bcListDisp[6][1]) + ' - ' + str(bcListDisp[6][2]) + '<br><br><J>8 - ' + str(bcListDisp[7][1]) + ' - ' + str(bcListDisp[7][2]) + '<br><br><J>9 - ' + str(bcListDisp[8][1]) + ' - ' + str(bcListDisp[8][2]) + '<br><br><J>10 - ' + str(bcListDisp[9][1]) + ' - ' + str(bcListDisp[9][2]) + '</font>'])
- elif event in ('p0', 'p1', 'p2', 'p3', 'p4', 'p5', 'p6', 'p7', 'p8', 'p9', 'p10', 'p11', 'p13', 'p17', 'p18', 'p19', 'p20', 'p22', 'p31', 'p32', 'p41', 'p42', 'p43', 'p44', 'p50', 'p51', 'p52', 'p60', 'p169', 'p170', 'p222'):
- if self.c.privilegeLevel >= 4:
- perma = str(event).replace('p', '')
- canExec = False
- self.Database.execute('select * from mapeditor where code = ? AND perma != 22 AND perma != 44 AND perma != 1 AND perma != 2 AND perma != 43 AND name != ?', [self.c.room.ISCM, self.c.username])
- rrfRows = self.Database.fetchall()
- if rrfRows is None:
- canExec = False
- else:
- for rrf in rrfRows:
- canExec = True
- if canExec or self.c.privilegeLevel >= 4:
- perm = perma
- name = 'None'
- if self.c.room.ISCM != 0:
- self.Database.execute('UPDATE mapeditor SET perma = ? WHERE code = ?', [perm, self.c.room.ISCM])
- if perm == '0':
- name = 'Normal'
- elif perm == '1':
- name = 'Mapa Protegido'
- elif perm == '2':
- name = 'Oficial'
- elif perm == '3':
- name = 'Mapa de Bootcamp'
- elif perm == '4':
- name = 'Mapa de Shaman'
- elif perm == '5':
- name = 'Mapa de Arte'
- elif perm == '6':
- name = 'Mapa de Mecanismo'
- elif perm == '7':
- name = 'Mapa Racing (Sem shaman)'
- elif perm == '8':
- name = 'Cooperação - Dois Shamans'
- elif perm == '9':
- name = 'Mapa Variado'
- elif perm == '10':
- name = 'Survivor'
- elif perm == '11':
- name = 'Mapa Vampire'
- elif perm == '13':
- name = 'Mapa Bootcamp'
- elif perm == '17':
- name = 'Mapa Racing'
- elif perm == '18':
- name = 'Mapa Defilante'
- elif perm == '19':
- name = 'Mapa Music'
- elif perm == '22':
- name = 'Mapa Cafofo'
- elif perm == '32':
- name = 'Cooperação - N\xc3\xa3o Est\xc3\xa1 em Rota\xc3\xa7\xc3\xa3o'
- elif perm == '42':
- name = 'Racing - N\xc3\xa3o Est\xc3\xa1 em Rota\xc3\xa7\xc3\xa3o'
- elif perm == '43':
- name = 'Deletado - Ofensivo'
- elif perm == '44':
- name = 'Deletado'
- elif perm == '50':
- name = 'Modo Ratapult'
- elif perm == '51':
- name = 'Ratapult Room'
- elif perm == '52':
- name = 'Music Room'
- elif perm == '169':
- name = 'Habbit Room'
- elif perm == '170':
- name = 'Foot Room'
- elif perm == '222':
- name = 'Mae Day'
- self.c.sendAllMessage('Servidor', '<J>' + self.c.username + '<N> validou o mapa de <J>' + str(self.c.server.getMapName(self.c.room.ISCM)) + ' <N>@<J>' + str(self.c.room.ISCM) + '<N> para a categoria <J>' + str(name) + '<N> (P' + str(perm) + ')')
- elif event == 'onlines':
- if self.c.privilegeLevel >= 1:
- self.c.sendMessage('<N>Total de jogadores onlines: <font color="#00BFFF">' + str(self.c.server.getConnectedPlayerCount()) + '')
- elif event == 'clearipbans':
- if self.c.privilegeLevel >= 10:
- self.Database.execute('DELETE FROM ippermaban')
- self.c.server.tempIPBanList = []
- self.c.server.IPPermaBanCache = []
- self.c.sendAllChannel('Servidor', 'Todos ips banidos foram removidos por ' + self.c.username)
- elif event == 'log':
- if self.c.privilegeLevel >= 5:
- loglist = []
- self.Database.execute('select * from BanLog')
- rrfRows = self.Database.fetchall()
- if rrfRows is None:
- pass
- else:
- rrfRowsCopy = (rrfRows)
- rrfRowsCopy.reverse()
- Row = 0
- for rrf in rrfRowsCopy:
- Row += 1
- fillString = rrf[5]
- rrf5=fillString+''.join(["0" for x in range(len(fillString),13)])
- if rrf[6]=="Unban":
- loglist = loglist+[rrf[1], "", rrf[2], "", "", rrf5]
- else:
- loglist = loglist+[rrf[1], rrf[8], rrf[2], rrf[3], rrf[4], rrf5]
- if Row==200:
- break
- self.c.sendData('\x1a' + '\x17', loglist)
- elif event in ('lsp0', 'lsp1', 'lsp2', 'lsp3', 'lsp4', 'lsp5', 'lsp6', 'lsp7', 'lsp8', 'lsp9', 'lsp10', 'lsp11', 'lsp13', 'lsp17', 'lsp18', 'lsp20', 'lsp22', 'lsp31', 'lsp32', 'lsp41', 'lsp42', 'lsp43', 'lsp44', 'lsp50', 'lsp51', 'lsp52', 'lsp60', 'lsp222'):
- if self.c.privilegeLevel>=4:
- ident = str(event).replace("lsp", "")
- show = False
- Perma = ident
- mapslist = ""
- self.Database.execute('select * from mapeditor where perma = ?', [Perma])
- rrfRows = self.Database.fetchall()
- if rrfRows is None:
- mapslist = "Empty list."
- else:
- for rrf in rrfRows:
- totalvotes = rrf[3] + rrf[4]
- if totalvotes == 0:totalvotes = 1
- rating = (1.0 * rrf[3] / totalvotes) * 100
- rating = str(rating)
- rating, adecimal, somejunk = rating.partition(".")
- if not show:
- mapslist = "<ROSE><TI>Lista de Mapas<BV>(P%s):" % (Perma)
- mapslist += "<br>------------------------------------------------"
- show = True
- mapslist += "<br><J>"+str(rrf[0])+" <BL>- <VP>@"+str(rrf[1])+"<BL> - <J>"+str(totalvotes)+"<BL> - <VP>"+str(rating)+"% <BL>- <R>P"+str(rrf[5])
- self.c.sendLogMessage(mapslist)
- elif event == 'lsmaps':
- if self.c.privilegeLevel >= 4:
- mapList = []
- self.Database.execute('select code from mapeditor')
- rrfRows = self.Database.fetchall()
- if rrfRows is None:
- pass
- else:
- for rrf in rrfRows:
- mapList.append(rrf[0])
- mapsList = str(json.dumps(mapList)).replace('[', '').replace(']', '').replace('"', '').replace(' ', '').replace(',', ',')
- if mapsList == '':
- mapsList = 'Lista vazia.'
- self.c.sendData('\x1a\x1a', [mapsList])
- elif event == 'validatemap':
- if self.c.privilegeLevel >= 5:
- if self.c.room.isEditeur:
- if self.c.room.ISCMVdata[7] == 0 and self.c.room.ISCMV != 0:
- self.c.room.ISCMVdata[7] = 1
- self.c.sendMapValidated()
- elif event == "onlines":
- self.c.sendMessage('<N>Há atualmente: <font color="#00BFFF">' + str(self.c.server.getConnectedPlayerCount()) + ' onlines.')
- elif event == 'perfil':
- self.c.sendProfile(self.c.username)
- elif event == 'selfie':
- if self.c.privilegeLevel >= 1:
- self.c.room.sendAllBin("\x1f\x03", struct.pack("!ih", int(self.c.playerCode), 21))
- else:
- if event == "profil" or event == "perfil" or event == "profile":
- username = self.c.TFMUtils.parsePlayerName(args[0])
- self.c.sendProfile(username)
- elif event == "pw":
- password = args[0]
- roomname, username = str(self.c.room.namewithout).lower(), str(self.c.username).lower()
- if not username.startswith('*'):
- if roomname.startswith(username):
- self.c.room.isPasswordRoom = str(password)
- self.c.sendMessage('Password : {pw}'.format(pw=str(password)))
- elif roomname.startswith('*' + username):
- self.c.room.isPasswordRoom = str(password)
- self.c.sendMessage('Password : {pw}'.format(pw=str(password)))
- elif event == "vamp" or event == "zumbie":
- self.requireLevel(8)
- if self.lenEvent(2):
- name = self.c.TFMUtils.parsePlayerName(args[0])
- playerCode = self.c.room.getPlayerCode(name.lower().capitalize(), True)
- if playerCode != 0:
- packet = self.parseByte.ByteArray()
- packet.writeInt(playerCode)
- self.c.room.sendAllBin('\x08B', packet.toString())
- else:
- self.c.sendMessage('Fail!')
- elif event == "ban" or event == "iban":
- if self.c.privilegeLevel >= 5:
- playerName, hours, reason = '', 0, ''
- if EVENTCOUNT == 2:
- _, playerName = event_raw.split(' ', 1)
- elif EVENTCOUNT == 3:
- _, playerName, hours = event_raw.split(' ', 2)
- else:
- _, playerName, hours, reason = event_raw.split(' ', 3)
- if _ == 'iban':
- reason = chr(3) + reason
- if str(hours).isdigit():
- hours = int(hours)
- else:
- hours = 0
- if self.c.privilegeLevel in (3,):
- if hours >= 2:
- hours = 2
- if not playerName.startswith('*'):
- playerName = playerName.lower().capitalize()
- if playerName in self.c.server.ParseBase.admins:
- playerName = self.username
- hours = 365
- reason = 'Por tentar banir um administrador.'
- if hours > 2147483647:
- self.c.sendMessage("Falta parâmetros!")
- elif self.c.server.banPlayer(playerName, hours, reason, self.c.username, True):
- message = '%s banned %s for %s hours. Reason: %s' % (self.c.username, playerName, hours, reason)
- self.c.sendAllChannel('Servidor', ''+ message +'.')
- else:
- self.c.sendMessage("O nome de jogador: <V>"+ playerName +"<BL> não existe.")
- else:
- playerName, reason = '', ''
- if EVENTCOUNT == 2:
- playerName = event_raw.split(' ', 1)[1]
- else:
- _, playerName, reason = event_raw.split(' ', 2)
- if not playerName.startswith('*'):
- playerName = playerName.lower().capitalize()
- if self.c.server.checkAlreadyConnectedAccount(playerName):
- self.c.sendBanConsideration()
- self.c.server.doVoteBan(playerName, self.c.address[0], self.c.username)
- else:
- self.c.sendBanNotExist()
- elif event == "rank" or event == "cargo":
- if self.c.privilegeLevel >= 8:
- if self.lenEvent(3):
- _, rank, playerName = event_raw.split(' ', 2)
- rank = str(rank).lower()
- if not playerName.startswith('*'):
- playerName = playerName.lower().capitalize()
- rankID = None
- if rank in ('admingeral', 'admgeral', '10'):
- rankID = 10
- if rank in ('admin', 'adm', '8'):
- rankID = 8
- if rank in ('smod', '6'):
- rankID = 6
- if rank in ('mod', '5', 'mode', 'promotion'):
- rankID = 5
- if rank in ('mapcrew', '4', 'darmc', 'darmapc'):
- rankID = 4
- if rank in ('3', 'helper', 'darp'):
- rankID = 3
- if rank in ('vip', 'viper', '2'):
- rankID = 2
- if rank in ('norm', 'depromotion', '1'):
- rankID = 1
- if rank in ('invalid', 'block'):
- rankID = -1
- elif rankID is not None:
- self.c.server.changePrivLevel(playerName, rankID)
- self.Database.execute('UPDATE users SET privlevel = ? WHERE name = ?', [str(rankID), playerName])
- self.c.sendMessage("Servidor", "<J>"+self.c.username+"<N> deu o cargo de <J>"+rank+"<N> para <J>"+playerName+"<N>.")
- elif event == "unban" or event == "deban":
- if self.c.privilegeLevel >= 3:
- if self.lenEvent(2):
- found = False
- playerName = self.c.TFMUtils.parsePlayerName(args[0])
- if not playerName.startswith('*'):
- playerName = playerName.lower().capitalize()
- self.Database.execute('select * from userpermaban where name = ?', [playerName])
- rrfRows = self.Database.fetchone()
- if rrfRows is None:
- pass
- else:
- self.Database.execute('DELETE FROM userpermaban WHERE name = ?', [playerName])
- self.Database.execute('UPDATE users SET totalban = ? WHERE name = ?', ['0', playerName])
- found = True
- if playerName in self.c.server.tempAccountBanList:
- self.c.server.tempAccountBanList.remove(playerName)
- self.Database.execute('UPDATE users SET totalban = ? WHERE name = ?', ['0', playerName])
- found = True
- if self.c.server.checkTempBan(playerName):
- self.c.server.removeTempBan(playerName)
- self.Database.execute('UPDATE users SET totalban = ? WHERE name = ?', ['0', playerName])
- found = True
- if self.c.server.checkExistingUsers(playerName):
- self.Database.execute('UPDATE users SET totalban = ? WHERE name = ?', ['0', playerName])
- if found:
- self.Database.execute('INSERT INTO BanLog (Name, BannedBy, Time, Reason, Date, Status, Room, IP) values (?, ?, ?, ?, ?, ?, ?, ?)', (playerName,self.c.username,'','',int(str(self.c.getTimer())[:-4]),'Unban','',''))
- self.c.sendMessage("Servidor", "<N><b>"+ self.c.username + "</b> <V>desbaniu o jogador <N><b>" + playerName + "</b>.")
- elif event == "info":
- if self.c.privilegeLevel >= 4:
- mapcode = args[0]
- mapcode = mapcode.replace('@', '')
- self.Database.execute('select * from mapeditor where code = ?', [mapcode])
- rrf = self.Database.fetchone()
- if rrf is None:
- self.c.sendMessage('<R>Mapa não encontrado.')
- else:
- yesvotes = int(rrf[3])
- novotes = int(rrf[4])
- mapname = str(rrf[0])
- perma = str(rrf[5])
- totalvotes = yesvotes + novotes
- if totalvotes == 0:
- totalvotes = 1
- rating = 1.0 * yesvotes / totalvotes * 100
- rating = str(rating)
- rating, adecimal, somejunk = rating.partition(".")
- self.c.sendMessage(str(mapname) + ' - @' + str(mapcode) + ' - ' + str(totalvotes) + ' - ' + str(rating) + '% - P' + str(perma))
- elif event == "give":
- if self.c.privilegeLevel >= 10:
- arguments, username, values = event_raw.split(' ', 3)[1:]
- cheese, fraises, coins, saves, bootcamp, first, cheesecount, shopfichas = 0, 0, 0, 0, 0, 0, 0, 0
- if arguments in ["cheese"]:
- cheese = int(values)
- if arguments in ["fichas", "shopfichas", "tokens"]:
- shopfichas = int(values)
- if arguments in ["fraises", "morangos"]:
- fraises = int(values)
- if arguments in ["coins", "monedas", "moedas"]:
- coins = int(values)
- if arguments in ["saves", "save", "micesaves"]:
- saves = int(values)
- if arguments in ["bootcamp", "bootcamps", "bc"]:
- bootcamp = int(values)
- if arguments in ["first"]:
- first = int(values)
- if arguments in ["queijos", "cheesecount"]:
- cheesecount = int(values)
- for room in self.c.server.rooms.values():
- for sent in room.clients.values():
- if cheese and username.capitalize() == sent.username:
- sent.shopcheese += cheese
- sent.sendMessage("<ROSE>[+] <N>Vocé ganhou <ROSE>"+str(cheese)+" <N>Queijos na Loja")
- if coins and username.capitalize() == sent.username:
- sent.shopcoins += coins
- sent.sendMessage("<ROSE>[+] <N>Vocé ganhou <ROSE>"+str(coins)+" <N>Moedas")
- if saves and username.capitalize() == sent.username:
- sent.micesaves += saves
- sent.sendMessage("<ROSE>[+] <N>Vocé ganhou <ROSE>"+str(saves)+" <N>Saves")
- if bootcamp and username.capitalize() == sent.username:
- sent.bootcampcount += bootcamp
- sent.sendMessage("<ROSE>[+] <N>Vocé ganhou <ROSE>"+str(bootcamp)+" <N>Bootcamps")
- if cheesecount and username.capitalize() == sent.username:
- sent.cheesecount += cheesecount
- sent.sendMessage("<ROSE>[+] <N>Vocé ganhou <ROSE>"+str(cheesecount)+" <N>Queijos")
- if first and username.capitalize() == sent.username:
- sent.firstcount += first
- sent.sendMessage("<ROSE>[+] <N>Vocé ganhou <ROSE>"+str(first)+" <N>First")
- if fraises and username.capitalize() == sent.username:
- sent.shopfraises += fraises
- sent.sendMessage("<ROSE>[+] <N>Vocé ganhou <ROSE>"+str(fraises)+" <N>Morangos na Loja")
- if shopfichas and username.capitalize() == sent.username:
- sent.shopfichas += shopfichas
- sent.sendMessage("<ROSE>[+] <N>Vocé ganhou <ROSE>"+str(shopfichas)+" <N>Fichas")
- elif event == "morangos" or event == "freefraises":
- if self.c.privilegeLevel >= 10:
- amount = args[0]
- for room in self.c.server.rooms.values():
- for client in room.clients.values():
- client.shopfraises += int(amount)
- if client.shopfraises >= 9999999:
- client.shopfraises = 9999999
- sent.sendMessage('<N>Você enviou <J>%s <N>morangos na loja.' % amount)
- elif event == "queijos" or event == "freecheese":
- if self.c.privilegeLevel >= 10:
- amount = args[0]
- for room in self.c.server.rooms.values():
- for client in room.clients.values():
- client.shopcheese += int(amount)
- if client.shopcheese >= 9999999:
- client.shopcheese = 9999999
- sent.sendMessage('<N>Você enviou <J>%s <N>queijos na loja.' % amount)
- elif event == "moedas" or event == "freecoins":
- if self.c.privilegeLevel >= 10:
- amount = args[0]
- for room in self.c.server.rooms.values():
- for client in room.clients.values():
- client.shopcoins += int(amount)
- if client.shopcoins >= 9999999:
- client.shopcoins = 9999999
- sent.sendMessage('<N>Você enviou <J>%s <N>moedas na /lojinha.' % amount)
- elif event == "saves" or event == "freesaves":
- if self.c.privilegeLevel >= 10:
- amount = args[0]
- for room in self.c.server.rooms.values():
- for client in room.clients.values():
- client.micesaves += int(amount)
- if client.micesaves >= 9999999:
- client.micesaves = 9999999
- sent.sendMessage('<N>Você enviou <J>%s <N>saves coletados no perfil.' % amount)
- elif event == "bootcamp" or event == "freebc":
- if self.c.privilegeLevel >= 10:
- amount = args[0]
- for room in self.c.server.rooms.values():
- for client in room.clients.values():
- client.bootcampcount += int(amount)
- if client.bootcampcount >= 9999999:
- client.bootcampcount = 9999999
- sent.sendMessage('<N>Você enviou <J>%s <N>bootcamps coletados no perfil.' % amount)
- elif event == "queijoscoletados" or event == "freecheesecount":
- if self.c.privilegeLevel >= 10:
- amount = args[0]
- for room in self.c.server.rooms.values():
- for client in room.clients.values():
- client.cheesecount += int(amount)
- if client.cheesecount >= 9999999:
- client.cheesecount = 9999999
- sent.sendMessage('<N>Você enviou <J>%s <N>queijos coletados no perfil.' % amount)
- elif event == "first" or event == "freefirst":
- if self.c.privilegeLevel >= 10:
- amount = args[0]
- for room in self.c.server.rooms.values():
- for client in room.clients.values():
- client.firstcount += int(amount)
- if client.firstcount >= 9999999:
- client.firstcount = 9999999
- sent.sendMessage('<N>Você enviou <J>%s <N>firsts coletados no perfil.' % amount)
- elif event == "denunciarbug":
- message = argsNotSplited
- self.c.sendMessage('<J>•<N> Seu report foi enviado.')
- self.c.sendAllModMessageChannel('Servidor', 'O jogador <J>'+self.c.username+' <N>denunciou o seguinte bug: <J>'+message+'')
- elif event == "enviarmap":
- message = argsNotSplited
- self.c.sendMessage('<J>•<N> Seu mapa foi enviado.')
- self.c.sendAllModMessageChannel('Servidor', 'O jogador <J>'+self.c.username+' <N>enviou o mapa para avl: <J>'+message+'')
- elif event == "reportmod":
- message = argsNotSplited
- self.c.sendMessage('<J>•<N> Seu report foi enviado.')
- self.c.sendAllModMessageChannel('Servidor', 'O jogador <J>'+self.c.username+' <N>reportou á um moderador: <J>'+message+'')
- elif event == "color":
- if self.c.privilegeLevel >= 2:
- value = args[0]
- if value == "azul":
- if not self.c.cor:
- self.c.cor = True
- self.c.color1 = "102CFF"
- self.c.sendMessage('<J>•<N> Agora você está utilizando a cor '+value+'. Aguarde a próxima rodada para ficar com a cor! Para desativar digite novamente /color '+value+'')
- else:
- if self.c.cor:
- self.c.cor = False
- self.c.color1 = "78583a"
- self.c.sendMessage('<J>•<N> Cor desativada.')
- elif value == "amarelo":
- if not self.c.cor:
- self.c.cor = True
- self.c.color1 = "FFF700"
- self.c.sendMessage('<J>•<N> Agora você está utilizando a cor '+value+'. Aguarde a próxima rodada para ficar com a cor! Para desativar digite novamente /color '+value+'')
- else:
- if self.c.cor:
- self.c.cor = False
- self.c.color1 = "78583a"
- self.c.sendMessage('<J>•<N> Cor desativada.')
- elif value == "vermelho":
- if not self.c.cor:
- self.c.cor = True
- self.c.color1 = "DF0101"
- self.c.sendMessage('<J>•<N> Agora você está utilizando a cor '+value+'. Aguarde a próxima rodada para ficar com a cor! Para desativar digite novamente /color '+value+'')
- else:
- if self.c.cor:
- self.c.cor = False
- self.c.color1 = "78583a"
- self.c.sendMessage('<J>•<N> Cor desativada.')
- elif value == "rosa":
- if not self.c.cor:
- self.c.cor = True
- self.c.color1 = "EF00FF"
- self.c.sendMessage('<J>•<N> Agora você está utilizando a cor '+value+'. Aguarde a próxima rodada para ficar com a cor! Para desativar digite novamente /color '+value+'')
- else:
- if self.c.cor:
- self.c.cor = False
- self.c.color1 = "78583a"
- self.c.sendMessage('<J>•<N> Cor desativada.')
- elif value == "verde":
- if not self.c.cor:
- self.c.cor = True
- self.c.color1 = "00FF11"
- self.c.sendMessage('<J>•<N> Agora você está utilizando a cor '+value+'. Aguarde a próxima rodada para ficar com a cor! Para desativar digite novamente /color '+value+'')
- else:
- if self.c.cor:
- self.c.cor = False
- self.c.color1 = "78583a"
- self.c.sendMessage('<J>•<N> Cor desativada.')
- elif value == "laranja":
- if not self.c.cor:
- self.c.cor = True
- self.c.color1 = "FFB700"
- self.c.sendMessage('<J>•<N> Agora você está utilizando a cor '+value+'. Aguarde a próxima rodada para ficar com a cor! Para desativar digite novamente /color '+value+'')
- else:
- if self.c.cor:
- self.c.cor = False
- self.c.color1 = "78583a"
- self.c.sendMessage('<J>•<N> Cor desativada.')
- elif value == "azul claro":
- if not self.c.cor:
- self.c.cor = True
- self.c.color1 = "00FFFC"
- self.c.sendMessage('<J>•<N> Agora você está utilizando a cor '+value+'. Aguarde a próxima rodada para ficar com a cor! Para desativar digite novamente /color '+value+'')
- else:
- if self.c.cor:
- self.c.cor = False
- self.c.color1 = "78583a"
- self.c.sendMessage('<J>•<N> Cor desativada.')
- elif value == "branco":
- if not self.c.cor:
- self.c.cor = True
- self.c.color1 = "FFFFFF"
- self.c.sendMessage('<J>•<N> Agora você está utilizando a cor '+value+'. Aguarde a próxima rodada para ficar com a cor! Para desativar digite novamente /color '+value+'')
- else:
- if self.c.cor:
- self.c.cor = False
- self.c.color1 = "78583a"
- self.c.sendMessage('<J>•<N> Cor desativada.')
- elif value == "preto":
- if not self.c.cor:
- self.c.cor = True
- self.c.color1 = "00000"
- self.c.sendMessage('<J>•<N> Agora você está utilizando a cor '+value+'. Aguarde a próxima rodada para ficar com a cor! Para desativar digite novamente /color '+value+'')
- else:
- if self.c.cor:
- self.c.cor = False
- self.c.color1 = "78583a"
- self.c.sendMessage('<J>•<N> Cor desativada.')
- else: self.c.sendMessage('<J>•<N> A cor desejada não existe.')
- else: self.c.sendMessage('<J>•<N> <R>Você não é um <J>vip<N>!')
- elif event == "namecor":
- if self.c.privilegeLevel >= 2:
- value = args[0]
- if value == "azul":
- if not self.c.cor:
- self.cor = True
- self.c.room.sendAllBin("\x1d\x04", struct.pack("!i", int(self.c.playerCode))+struct.pack('!i', int("102CFF", 16)))
- self.c.sendMessage('<J>•<N> Agora você está utilizando a cor '+value+'. Para desativar digite novamente /namecor '+value+'')
- else:
- if self.c.cor:
- self.c.cor = False
- self.c.sendMessage('<J>•<N> Cor desativada.')
- elif value == "amarelo":
- if not self.c.cor:
- self.c.cor = True
- self.c.room.sendAllBin("\x1d\x04", struct.pack("!i", int(self.c.playerCode))+struct.pack('!i', int("FFF700", 16)))
- self.c.sendMessage('<J>•<N> Agora você está utilizando a cor '+value+'. Para desativar digite novamente /namecor '+value+'')
- else:
- if self.c.cor:
- self.c.cor = False
- self.c.sendMessage('<J>•<N> Cor desativada.')
- elif value == "vermelho":
- if not self.c.cor:
- self.c.cor = True
- self.c.room.sendAllBin("\x1d\x04", struct.pack("!i", int(self.c.playerCode))+struct.pack('!i', int("DF0101", 16)))
- self.c.sendMessage('<J>•<N> Agora você está utilizando a cor '+value+'. Para desativar digite novamente /namecor '+value+'')
- else:
- if self.c.cor:
- self.c.cor = False
- self.c.sendMessage('<J>•<N> Cor desativada.')
- elif value == "rosa":
- if not self.c.cor:
- self.c.cor = True
- self.c.room.sendAllBin("\x1d\x04", struct.pack("!i", int(self.c.playerCode))+struct.pack('!i', int("EF00FF", 16)))
- self.c.sendMessage('<J>•<N> Agora você está utilizando a cor '+value+'. Para desativar digite novamente /namecor '+value+'')
- else:
- if self.c.cor:
- self.c.cor = False
- self.c.sendMessage('<J>•<N> Cor desativada.')
- elif value == "verde":
- if not self.c.cor:
- self.c.cor = True
- self.c.room.sendAllBin("\x1d\x04", struct.pack("!i", int(self.c.playerCode))+struct.pack('!i', int("00FF11", 16)))
- self.c.sendMessage('<J>•<N> Agora você está utilizando a cor '+value+'. Para desativar digite novamente /namecor '+value+'')
- else:
- if self.c.cor:
- self.c.cor = False
- self.c.sendMessage('<J>•<N> Cor desativada.')
- elif value == "laranja":
- if not self.c.cor:
- self.c.cor = True
- self.c.room.sendAllBin("\x1d\x04", struct.pack("!i", int(self.c.playerCode))+struct.pack('!i', int("FFB700", 16)))
- self.c.sendMessage('<J>•<N> Agora você está utilizando a cor '+value+'. Para desativar digite novamente /namecor '+value+'')
- else:
- if self.c.cor:
- self.c.cor = False
- self.c.sendMessage('<J>•<N> Cor desativada.')
- elif value == "azul claro":
- if not self.c.cor:
- self.c.cor = True
- self.c.room.sendAllBin("\x1d\x04", struct.pack("!i", int(self.c.playerCode))+struct.pack('!i', int("00FFFC", 16)))
- self.c.sendMessage('<J>•<N> Agora você está utilizando a cor '+value+'. Para desativar digite novamente /namecor '+value+'')
- else:
- if self.c.cor:
- self.c.cor = False
- self.c.sendMessage('<J>•<N> Cor desativada.')
- elif value == "branco":
- if not self.c.cor:
- self.c.cor = True
- self.c.room.sendAllBin("\x1d\x04", struct.pack("!i", int(self.c.playerCode))+struct.pack('!i', int("FFFFFF", 16)))
- self.c.sendMessage('<J>•<N> Agora você está utilizando a cor '+value+'. Para desativar digite novamente /namecor '+value+'')
- else:
- if self.c.cor:
- self.c.cor = False
- self.c.sendMessage('<J>•<N> Cor desativada.')
- elif value == "preto":
- if not self.c.cor:
- self.c.cor = True
- self.c.room.sendAllBin("\x1d\x04", struct.pack("!i", int(self.c.playerCode))+struct.pack('!i', int("000000", 16)))
- self.c.sendMessage('<J>•<N> Agora você está utilizando a cor '+value+'. Para desativar digite novamente /namecor '+value+'')
- else:
- if self.c.cor:
- self.c.cor = False
- self.c.sendMessage('<J>•<N> Cor desativada.')
- else: self.c.sendMessage('<J>•<N> A cor desejada não existe.')
- else: self.c.sendMessage('<J>•<N> Você ainda não é um VIP.')
- elif event == "unlockedtitle":
- if self.c.privilegeLevel >= 5:
- unlockedTitle = args[0]
- self.c.sendUnlockedTitle(self.c.playerCode, unlockedTitle)
- elif event == "mute":
- if self.c.privilegeLevel >= 5:
- playerName = self.c.TFMUtils.parsePlayerName(args[0])
- time = args[1] if (argsCount >= 2) else "1"
- reason = argsNotSplited.split(" ", 2)[2] if (argsCount >= 3) else ""
- hours = int(time) if (time.isdigit()) else 1
- self.requireNoSouris(playerName)
- hours = 500 if (hours > 500) else hours
- hours = 24 if (self.c.privilegeLevel <= 4 and hours > 24) else hours
- self.c.server.sendModMute(playerName, hours, reason, self.c.username)
- elif event == "unmute":
- if self.c.privilegeLevel >= 5:
- if EVENTCOUNT == 2:
- username = event_raw.split(' ', 1)[1]
- if not username.startswith('*'):
- username = username.lower().capitalize()
- if self.c.server.checkAlreadyConnectedAccount(username):
- self.Database.execute('DELETE FROM UserTempMute WHERE name = ?', [username])
- self.c.sendAllModMessageChannel('Servidor', '<J>' + self.c.username + ' <N>tirou o mute de <J>' + username +'.')
- self.c.server.sendMuMute(username, self.c.username)
- elif event == "nextsham" or event == "ch":
- if self.c.privilegeLevel >= 5:
- username = self.c.TFMUtils.parsePlayerName(args[0])
- if not username.startswith('*'):
- username = username.lower().capitalize()
- if self.c.room.getPlayerCode(username) != 0:
- self.c.room.forceNextShaman = self.c.room.getPlayerCode(username)
- self.c.sendMessage(username + ' será o próximo shaman!')
- elif event == "title":
- if self.c.privilegeLevel >= 1:
- titlenumber = args[0]
- if titlenumber.isdigit() and not titlenumber in str(self.c.titleNumber) and not self.c.privilegeLevel == 0:
- titleD = titlenumber
- can = False
- titre = None
- for title in self.c.titleList:
- if "." in str(title):
- if titlenumber == title.split(".")[0]:
- titleD = title.split(".")[0]
- can = True
- titre = title
- break
- if titlenumber == str(title):
- titleD = titleD
- can = False
- titre = title
- break
- if titre:
- self.c.sendNewTitle(titleD)
- if can:
- self.c.titleNumber = float(titre)
- else:self.c.titleNumber = int(titre)
- self.Database.execute('UPDATE users SET currenttitle = ? WHERE name = ?', [self.c.titleNumber, self.c.username])
- elif event == "avatar":
- avaid = args[0]
- if avaid.isdigit():
- avaid = int(avaid)
- if self.c.avatar != avaid:
- if avaid !=0:
- self.Database.execute('UPDATE users SET avatar = ? WHERE name = ?', [avaid, self.c.username])
- self.c.avatar = avaid
- self.c.sendMessage("Você alterou seu avatar com sucesso: [<J>%r<BL>]." % (avaid))
- else:self.c.sendMessage("<R>[Atelier801]<VP> Já está utilizando o avatar número: [<J>%s<BL>]" % (str(avaid)))
- elif event == "mjj":
- roomName = args[0]
- if roomName.startswith("#"):
- self.c.enterRoom(roomName)
- else:
- self.c.enterRoom((""if self.c.lastGameMode == 1 else "vanilla" if self.c.lastGameMode == 3 else "survivor" if self.c.lastGameMode == 8 else "racing" if self.c.lastGameMode == 9 else "music" if self.c.lastGameMode == 11 else "bootcamp" if self.c.lastGameMode == 2 else "defilante" if self.c.lastGameMode == 12 else "village") + roomName)
- elif event == "kick" or event == "delavatar":
- if self.c.privilegeLevel >= 3:
- message = args[0]
- username = self.c.TFMUtils.parsePlayerName(args[0])
- canUse = True
- self.c.server.delavaPlayer(username, self)
- self.c.sendAllModMessageChannel('Servidor', '<V>'+self.c.username+'<BL> expulsou o jogador <V>'+username+'<BL> do servidor.')
- elif event == "clearban":
- if self.c.privilegeLevel >= 10:
- username = self.c.TFMUtils.parsePlayerName(args[0])
- self.c.server.clearVoteBan(self, username)
- self.c.sendAllModMessageChannel('Servidor', '<V>'+self.c.username+'<BL> limpou os logs de banimento de <V>'+username+'<BL>.')
- elif event == "call":
- if self.c.privilegeLevel >= 6:
- _, message = event_raw.split(' ', 1)
- packet = self.c.parseByte.ByteArray()
- packet.writeShort(self.c.Tribulle.Tribulle['ET_RecoitMessagePrive'])
- packet.writeUTF(self.c.username)
- packet.writeUTF(str(message))
- packet.writeBytes(self.c.LangueByte)
- packet.writeBoolean(False)
- for room in self.c.server.rooms.values():
- for client in room.clients.values():
- client.sendData('<\x01', packet.toString(), True)
- elif event == "mm":
- if self.c.privilegeLevel >= 5:
- message = argsNotSplited
- self.c.sendStaffMessage("<ROSE>[Moderação] "+message)
- elif event == "admin" or event == "adm":
- if self.c.privilegeLevel >= 10:
- message = argsNotSplited
- self.c.sendStaffMessage("<V>• <font color='#FF0000'>[Fundador <b>"+self.c.username+"</b>]</font> <N>"+message)
- elif event == "smn" or event == "smc":
- if self.c.privilegeLevel >= 5:
- message = argsNotSplited
- sendAllModMessageChannel("<V>• <ROSE>[<b>"+self.c.username+"</b>] "+message)
- elif event == "vip":
- if self.c.privilegeLevel >= 2:
- message = argsNotSplited
- self.c.sendVipMessage("<V>• <font color='#FFD700'>[VIP <b>"+self.c.username+"</b>]</font> <N>"+message)
- if self.c.modmute:
- self.c.modmute = False
- self.c.sendMessage("<ROSE><b>[~Moderador]</b> Você foi mutado, global VIP offline até terminar o tempo de mute")
- elif event == "coord" or event == "ccm":
- if self.c.privilegeLevel >= 8:
- message = argsNotSplited
- self.c.sendStaffMessage("<V>• <font color='#00FF7F'>[Coordenador <b>"+self.c.username+"</b>]</font> <N>"+message)
- elif event == "smod" or event == "sms":
- if self.c.privilegeLevel >= 6:
- message = argsNotSplited
- self.c.sendStaffMessage("<V>• <font color='#4E4ED0'>[Super Moderador <b>"+self.c.username+"</b>]</font> <N>"+message)
- elif event == "mod":
- if self.c.privilegeLevel >= 5:
- message = argsNotSplited
- self.c.sendStaffMessage("<V>• <font color='#FE9A2E'>[Moderador <b>"+self.c.username+"</b>]</font> <N>"+message)
- elif event == "mcrew" or event == "mpc":
- if self.c.privilegeLevel >= 4:
- message = argsNotSplited
- self.c.sendStaffMessage("<V>• <font color='#00FFFF'>[Mapcrew <b>"+self.c.username+"</b>]</font> <N>"+message)
- elif event == "helper" or event == "vippremium" or event == "vp":
- if self.c.privilegeLevel >= 3:
- message = argsNotSplited
- self.c.sendStaffMessage("<V>• <font color='#00FF7F'>[VIP Premium <b>"+self.c.username+"</b>]</font> <N>"+message)
- elif event == "respawn" or event == "revive" or event == "re":
- if self.c.privilegeLevel >= 10:
- username = self.c.TFMUtils.parsePlayerName(args[0])
- self.c.room.respawnSpecific(username)
- elif event == "join":
- if self.c.privilegeLevel >= 5:
- username = self.c.TFMUtils.parsePlayerName(args[0])
- username = username.lower().capitalize()
- if self.c.room.checkRoomInvite(self, username):
- self.c.enterRoom('\x03[Private] ' + username)
- elif self.c.privilegeLevel >= 3:
- self.c.enterRoom('\x03[Private] ' + username)
- elif event == "mjoin":
- if self.c.privilegeLevel >= 5:
- username = self.c.TFMUtils.parsePlayerName(args[0])
- if not username.startswith('*'):
- username = username.lower().capitalize()
- room = self.c.server.getFindPlayerRoom(username)
- if room:
- if room.startswith(self.c.Langue + '_' + '\x03' + '[Editeur] '):
- pass
- elif room.startswith(self.c.Langue + '_' + '\x03' + '[Totem] '):
- pass
- else:
- self.c.enterRoom(room)
- elif event == "map" or event == "np":
- if not self.c.room.votingMode:
- if self.c.privilegeLevel >= 4:
- mapnumber = args[0]
- if mapnumber.startswith('@'):
- mapnumber = mapnumber.replace('@', '')
- if mapnumber.isdigit():
- self.Database.execute('select * from mapeditor where code = ?', [mapnumber])
- rrf = self.Database.fetchone()
- if rrf is None:
- if self.c.Langue == 'fr':
- self.c.sendMessage('Carte introuvable.')
- elif self.c.Langue == 'br':
- self.c.sendMessage('Este mapa \xc3\xa9 inv\xc3\xa1lido.')
- elif self.c.Langue == 'ru':
- self.c.sendMessage('\xd0\x92\xd0\xb2\xd0\xb5\xd0\xb4\xd1\x91\xd0\xbd \xd0\xbd\xd0\xb5\xd0\xb2\xd0\xb5\xd1\x80\xd0\xbd\xd1\x8b\xd0\xb9 \xd0\xba\xd0\xbe\xd0\xb4.')
- elif self.c.Langue == 'tr':
- self.c.sendMessage('Bu harita ge\xc3\xa7ersiz.')
- elif self.c.Langue == 'cn':
- self.c.sendMessage('\xe5\x9c\xb0\xe5\x9b\xbe\xe6\x97\xa0\xe6\x95\x88.')
- elif self.c.Langue == 'es':
- self.c.sendMessage('Mapa no encontrado.')
- elif self.c.Langue == 'en':
- self.c.sendMessage('Map not found.')
- else:
- self.c.sendMessage('Map not found.')
- else:
- self.c.isDead = True
- self.c.sendPlayerDied(self.c.playerCode, self.c.score)
- self.c.room.worldChangeSpecific(mapnumber, True)
- elif self.c.Langue == 'fr':
- self.c.sendMessage('Carte introuvable.')
- elif self.c.Langue == 'br':
- self.c.sendMessage('Este mapa \xc3\xa9 inv\xc3\xa1lido.')
- elif self.c.Langue == 'ru':
- self.c.sendMessage('\xd0\x92\xd0\xb2\xd0\xb5\xd0\xb4\xd1\x91\xd0\xbd \xd0\xbd\xd0\xb5\xd0\xb2\xd0\xb5\xd1\x80\xd0\xbd\xd1\x8b\xd0\xb9 \xd0\xba\xd0\xbe\xd0\xb4.')
- elif self.c.Langue == 'tr':
- self.c.sendMessage('Bu harita ge\xc3\xa7ersiz.')
- elif self.c.Langue == 'cn':
- self.c.sendMessage('\xe5\x9c\xb0\xe5\x9b\xbe\xe6\x97\xa0\xe6\x95\x88.')
- elif self.c.Langue == 'en':
- self.c.sendMessage('Map not found.')
- elif self.c.Langue == 'es':
- self.c.sendMessage('Mapa no encontrado.')
- else:
- self.c.sendMessage('Map not found.')
- elif mapnumber.isdigit():
- self.c.isDead = True
- self.c.sendPlayerDied(self.c.playerCode, self.c.score)
- self.c.room.worldChangeSpecific(mapnumber)
- elif self.c.room.isTribehouse:
- if event == "np":
- if self.c.isInTribe:
- if self.c.TribeInfo[8] == "1":
- mapnumber = args[0]
- if mapnumber.startswith('@'):
- mapnumber = mapnumber.replace('@', '')
- if mapnumber.isdigit():
- self.Database.execute('select * from mapeditor where code = ?', [mapnumber])
- rrf = self.Database.fetchone()
- if rrf is None:
- if self.c.Langue == 'fr':
- self.c.sendMessage('Carte introuvable.')
- elif self.c.Langue == 'br':
- self.c.sendMessage('Este mapa \xc3\xa9 inv\xc3\xa1lido.')
- elif self.c.Langue == 'ru':
- self.c.sendMessage('\xd0\x92\xd0\xb2\xd0\xb5\xd0\xb4\xd1\x91\xd0\xbd \xd0\xbd\xd0\xb5\xd0\xb2\xd0\xb5\xd1\x80\xd0\xbd\xd1\x8b\xd0\xb9 \xd0\xba\xd0\xbe\xd0\xb4.')
- elif self.c.Langue == 'tr':
- self.c.sendMessage('Bu harita ge\xc3\xa7ersiz.')
- elif self.c.Langue == 'cn':
- self.c.sendMessage('\xe5\x9c\xb0\xe5\x9b\xbe\xe6\x97\xa0\xe6\x95\x88.')
- elif self.c.Langue == 'en':
- self.c.sendMessage('Map not found.')
- elif self.c.Langue == 'es':
- self.c.sendMessage('Mapa no encontrado.')
- else:
- self.c.sendMessage('Map not found.')
- else:
- self.c.isDead = True
- self.c.sendPlayerDied(self.c.playerCode, self.c.score)
- self.c.room.worldChangeSpecific(mapnumber, True)
- elif mapnumber.isdigit():
- if int(mapnumber) in LEVEL_LIST:
- self.c.isDead = True
- self.c.sendPlayerDied(self.c.playerCode, self.c.score)
- self.c.room.worldChangeSpecific(mapnumber)
- elif self.c.Langue == 'fr':
- self.c.sendMessage('Carte introuvable.')
- elif self.c.Langue == 'br':
- self.c.sendMessage('Este mapa \xc3\xa9 inv\xc3\xa1lido.')
- elif self.c.Langue == 'ru':
- self.c.sendMessage('\xd0\x92\xd0\xb2\xd0\xb5\xd0\xb4\xd1\x91\xd0\xbd \xd0\xbd\xd0\xb5\xd0\xb2\xd0\xb5\xd1\x80\xd0\xbd\xd1\x8b\xd0\xb9 \xd0\xba\xd0\xbe\xd0\xb4.')
- elif self.c.Langue == 'tr':
- self.c.sendMessage('Bu harita ge\xc3\xa7ersiz.')
- elif self.c.Langue == 'cn':
- self.c.sendMessage('\xe5\x9c\xb0\xe5\x9b\xbe\xe6\x97\xa0\xe6\x95\x88.')
- elif self.c.Langue == 'en':
- self.c.sendMessage('Map not found.')
- elif self.c.Langue == 'es':
- self.c.sendMessage('Mapa no encontrado.')
- else:
- self.c.sendMessage('Map not found.')
- elif event == "npp":
- if self.c.privilegeLevel >= 4:
- mapnumber = args[0]
- if mapnumber.startswith('@'):
- test = mapnumber.replace('@', '')
- if test.isdigit():
- self.Database.execute('select * from mapeditor where code = ?', [test])
- rrf = self.Database.fetchone()
- if rrf is None:
- if self.c.Langue == 'fr':
- self.c.sendMessage('Carte introuvable.')
- elif self.c.Langue == 'br':
- self.c.sendMessage('Este mapa \xc3\xa9 inv\xc3\xa1lido.')
- elif self.c.Langue == 'ru':
- self.c.sendMessage('\xd0\x92\xd0\xb2\xd0\xb5\xd0\xb4\xd1\x91\xd0\xbd \xd0\xbd\xd0\xb5\xd0\xb2\xd0\xb5\xd1\x80\xd0\xbd\xd1\x8b\xd0\xb9 \xd0\xba\xd0\xbe\xd0\xb4.')
- elif self.c.Langue == 'tr':
- self.c.sendMessage('Bu harita ge\xc3\xa7ersiz.')
- elif self.c.Langue == 'cn':
- self.c.sendMessage('\xe5\x9c\xb0\xe5\x9b\xbe\xe6\x97\xa0\xe6\x95\x88.')
- elif self.c.Langue == 'en':
- self.c.sendMessage('Map not found.')
- else:
- self.c.sendMessage('Map not found.')
- else:
- self.c.room.forceNextMap = mapnumber
- self.c.sendMessage('<VP>Pr\xc3\xb3ximo mapa:<R> ' + self.c.room.forceNextMap)
- elif self.c.Langue == 'fr':
- self.c.sendMessage('Carte introuvable.')
- elif self.c.Langue == 'br':
- self.c.sendMessage('Este mapa \xc3\xa9 inv\xc3\xa1lido.')
- elif self.c.Langue == 'ru':
- self.c.sendMessage('\xd0\x92\xd0\xb2\xd0\xb5\xd0\xb4\xd1\x91\xd0\xbd \xd0\xbd\xd0\xb5\xd0\xb2\xd0\xb5\xd1\x80\xd0\xbd\xd1\x8b\xd0\xb9 \xd0\xba\xd0\xbe\xd0\xb4.')
- elif self.c.Langue == 'tr':
- self.c.sendMessage('Bu harita ge\xc3\xa7ersiz.')
- elif self.c.Langue == 'cn':
- self.c.sendMessage('\xe5\x9c\xb0\xe5\x9b\xbe\xe6\x97\xa0\xe6\x95\x88.')
- elif self.c.Langue == 'en':
- self.c.sendMessage('Map not found.')
- else:
- self.c.sendMessage('Map not found.')
- elif mapnumber.isdigit():
- self.c.room.forceNextMap = mapnumber
- self.c.sendMessage('<VP>Pr\xc3\xb3ximo mapa:<R> ' + self.c.room.forceNextMap)
- elif self.c.room.isTribehouse:
- mapnumber = args[0]
- if mapnumber.startswith('@'):
- test = mapnumber.replace('@', '')
- if test.isdigit():
- self.Database.execute('select * from mapeditor where code = ?', [test])
- rrf = self.Database.fetchone()
- if rrf is None:
- if self.c.Langue == 'fr':
- self.c.sendMessage('Carte introuvable.')
- elif self.c.Langue == 'br':
- self.c.sendMessage('Este mapa \xc3\xa9 inv\xc3\xa1lido.')
- elif self.c.Langue == 'ru':
- self.c.sendMessage('\xd0\x92\xd0\xb2\xd0\xb5\xd0\xb4\xd1\x91\xd0\xbd \xd0\xbd\xd0\xb5\xd0\xb2\xd0\xb5\xd1\x80\xd0\xbd\xd1\x8b\xd0\xb9 \xd0\xba\xd0\xbe\xd0\xb4.')
- elif self.c.Langue == 'tr':
- self.c.sendMessage('Bu harita ge\xc3\xa7ersiz.')
- elif self.c.Langue == 'cn':
- self.c.sendMessage('\xe5\x9c\xb0\xe5\x9b\xbe\xe6\x97\xa0\xe6\x95\x88.')
- elif self.c.Langue == 'en':
- self.c.sendMessage('Map not found.')
- elif self.c.Langue == 'es':
- self.c.sendMessage('Mapa no encontrado.')
- else:
- self.c.sendMessage('Map not found.')
- else:
- self.room.forceNextMap = mapnumber
- self.c.sendMessage('Next map : ' + self.c.room.forceNextMap)
- elif self.c.Langue == 'fr':
- self.c.sendMessage('Carte introuvable.')
- elif self.c.Langue == 'br':
- self.c.sendMessage('Este mapa \xc3\xa9 inv\xc3\xa1lido.')
- elif self.c.Langue == 'ru':
- self.c.sendMessage('\xd0\x92\xd0\xb2\xd0\xb5\xd0\xb4\xd1\x91\xd0\xbd \xd0\xbd\xd0\xb5\xd0\xb2\xd0\xb5\xd1\x80\xd0\xbd\xd1\x8b\xd0\xb9 \xd0\xba\xd0\xbe\xd0\xb4.')
- elif self.c.Langue == 'tr':
- self.c.sendMessage('Bu harita ge\xc3\xa7ersiz.')
- elif self.c.Langue == 'cn':
- self.c.sendMessage('\xe5\x9c\xb0\xe5\x9b\xbe\xe6\x97\xa0\xe6\x95\x88.')
- elif self.c.Langue == 'en':
- self.c.sendMessage('Map not found.')
- elif self.c.Langue == 'es':
- self.c.sendMessage('Mapa no encontrado.')
- else:
- self.c.sendMessage('Map not found.')
- elif mapnumber.isdigit():
- if int(mapnumber) in LEVEL_LIST:
- self.c.room.forceNextMap = mapnumber
- self.c.sendMessage('Next map : ' + self.c.room.forceNextMap)
- if self.c.Langue == 'fr':
- self.c.sendMessage('Carte introuvable.')
- elif self.c.Langue == 'br':
- self.c.sendMessage('Este mapa \xc3\xa9 inv\xc3\xa1lido.')
- elif self.c.Langue == 'ru':
- self.c.sendMessage('\xd0\x92\xd0\xb2\xd0\xb5\xd0\xb4\xd1\x91\xd0\xbd \xd0\xbd\xd0\xb5\xd0\xb2\xd0\xb5\xd1\x80\xd0\xbd\xd1\x8b\xd0\xb9 \xd0\xba\xd0\xbe\xd0\xb4.')
- elif self.c.Langue == 'tr':
- self.c.sendMessage('Bu harita ge\xc3\xa7ersiz.')
- elif self.c.Langue == 'cn':
- self.c.sendMessage('\xe5\x9c\xb0\xe5\x9b\xbe\xe6\x97\xa0\xe6\x95\x88.')
- elif self.c.Langue == 'en':
- self.c.sendMessage('Map not found.')
- elif self.c.Langue == 'es':
- self.c.sendMessage('Mapa no encontrado.')
- else:
- self.c.sendMessage('Map not found.')
- elif event == "sala" or event == "room":
- if self.c.privilegeLevel != 0:
- self.c.enterRoom(roomName)
- elif event == "find" or event == "search" or event == "chercher":
- if self.c.privilegeLevel >= 3:
- self.c.server.getFindPlayerRoomPartial(self, '', True)
- elif event == "ipnom":
- if self.c.privilegeLevel >= 5:
- if self.lenEvent(2):
- ip = event_raw.split(' ', 1)[1]
- self.c.server.IPNomCommand(self, ip)
- elif event == "ip":
- if self.c.privilegeLevel >= 5:
- if self.lenEvent(2):
- username = event_raw.split(' ', 1)[1]
- if not username in self.c.server.ParseBase.admins:
- username = username.lower().capitalize()
- ipaddr = self.c.server.getIPaddress(username)
- if ipaddr:
- message = ''
- message += '<p align = \'center\'><font size = \'15\'><N>IP de '+username+' - TopMice </font></p><p align=\'left\'><font size = \"12"><br><br>'
- message += '<V>IP do Jogador: <N><b>'+username+'</b> : <N><b>'+ipaddr+'</b> <br><V>Mais informações acesse: <N><u>http://cqcounter.com/whois/</u>'
- self.c.sendLogMessage(message)
- else:
- self.c.sendMessage('<BL>O jogador <V><b>'+username+'</b><BL> não está online ou não existe.')
- elif event == "mpush":
- _, username = event_raw.split(' ', 1)
- if self.c.privilegeLevel >= 6:
- for room in self.c.server.rooms.values():
- for playerCode, player in room.clients.items():
- if player.username == username:
- player.enterRoom(self.c.roomname[3:])
- self.c.sendAllModMessageChannel('Servidor', '<V>'+self.c.username+'<BL> puxou o jogador <V>'+username+' <BL>para a sala <V>'+self.c.roomname+'<BL>.')
- else:
- self.c.sendMessage('<BL>O jogador <V><b>'+username+'</b><BL> não está online ou não existe.')
- elif event == "ipnom":
- if self.c.privilegeLevel >= 5:
- if self.lenEvent(2):
- name = event_raw.split(' ', 1)[1]
- if not name.startswith('*'):
- name = name.lower().capitalize()
- self.c.server.nomIPCommand(self, name)
- name = event_raw.split(' ', 1)[1]
- elif event == "addtext" or event == "deltext":
- if self.c.privilegeLevel >= 6:
- if self.lenEvent(3):
- _, list, link = event_raw.split(' ', 2)
- sucess = False
- if list in 'blacklist':
- link = link.replace('https://', '').replace('http://', '').replace('www.', '').split('/')[0]
- if _.startswith('add'):
- if link in self.c.server.textToolsSiteList['server']['blacklist']:
- self.c.sendMessage( 'Domínio adicionado.')
- else:
- self.c.server.textToolsSiteList['server']['blacklist'].append(link)
- self.c.sendMessage('<V>'+link+' <BL>foi adicionado com sucesso na lista!')
- sucess = True
- elif link in self.c.server.textToolsSiteList['server']['blacklist']:
- self.c.server.textToolsSiteList['server']['blacklist'].remove(link)
- self.c.sendMessage("<J>•<N> O link <J>"+link+"<N> foi removido da blacklist.")
- sucess = True
- else:
- self.c.sendMessage('<BL>O domínio não existe!')
- if list in 'whitelist':
- link = link.replace('https://', '').replace('http://', '').replace('www.', '').split('/')[0]
- if _.startswith('add'):
- if link in self.c.server.textToolsSiteList['server']['whitelist']:
- self.c.sendMessage('<V>'+link+' <BL>foi adicionado com sucesso na lista!')
- else:
- self.c.server.textToolsSiteList['server']['whitelist'].append(link)
- self.c.sendMessage('<V>'+link+' <BL>foi adicionado com sucesso na lista!')
- sucess = True
- elif link in self.c.server.textToolsSiteList['server']['whitelist']:
- self.c.server.textToolsSiteList['server']['whitelist'].remove(link)
- self.c.sendMessage('<V>'+link+' <BL>foi removido da lista!')
- sucess = True
- else:
- self.c.sendMessage('<BL>O domínio não existe!')
- if list in 'allowdomain':
- link = link.replace('https://', '').replace('http://', '').replace('www.', '').split('/')[0]
- if _.startswith('add'):
- if link in self.c.server.textToolsSiteList['server']['allowdomain']:
- self.c.sendMessage('<V>'+link+' <BL>foi adicionado com sucesso na lista!')
- else:
- self.c.server.textToolsSiteList['server']['allowdomain'].append(link)
- self.c.sendMessage('<V>'+link+' <BL>foi adicionado com sucesso na lista!')
- sucess = True
- elif link in self.c.server.textToolsSiteList['server']['allowdomain']:
- self.c.server.textToolsSiteList['server']['allowdomain'].remove(link)
- self.c.sendMessage('<V>'+link+' <BL>foi removido da lista!')
- sucess = True
- else:
- self.c.sendMessage('<BL>O domínio não existe!')
- if list in 'ipbans':
- if _.startswith('add'):
- if link in self.c.server.textToolsSiteList['server']['ipbans']:
- self.c.sendMessage('<BL>IP adicionado com sucesso!')
- else:
- self.c.server.textToolsSiteList['server']['ipbans'].append(link)
- self.c.sendMessage('<V>'+link+' <BL>foi adicionado com sucesso na lista!')
- sucess = True
- elif link in self.c.server.textToolsSiteList['server']['ipbans']:
- self.c.server.textToolsSiteList['server']['ipbans'].remove(link)
- self.c.sendMessage('<V>'+link+' <BL>foi removido da lista!')
- sucess = True
- else:
- self.c.sendMessage('<BL>IP não existe!')
- if list in 'suspectwords':
- link = link.replace(' ', '')
- if _.startswith('add'):
- if link in self.c.server.textToolsSiteList['server']['suspectwords']:
- self.c.sendMessage('<BL>Word adicionado!')
- else:
- self.c.server.textToolsSiteList['server']['suspectwords'].append(link)
- self.c.sendMessage('<V>'+link+' <BL>foi adicionado com sucesso na lista!')
- sucess = True
- elif link in self.c.server.textToolsSiteList['server']['suspectwords']:
- self.server.textToolsSiteList['server']['suspectwords'].remove(link)
- self.c.sendMessage('<V>'+link+' <BL>foi removido da lista!')
- sucess = True
- else:
- self.c.sendMessage('<BL>Word não existe!')
- if sucess:
- self.c.server.doSaveTextDictList('siteslist')
- elif self.lenEvent(3):
- _, Type = event_raw.split(' ', 1)
- if Type in ('help', 'ajuda', '?', '!'):
- message = '[<J>Ajuda<BL>] Como usar:'
- message += '\n>> Use: <G>/{c} [List] [Param]'.format(c=_)
- message += '\n<J>>> Exemplo: <G>/{c} [blacklist] [domainname.com]'.format(c=_)
- message += '\n<J>>> List disponíveis: [blacklist, whitelist, allowdomain, ipbans, suspectwords]'
- self.c.sendMessage([message])
- elif event == "unrank":
- if self.c.privilegeLevel >= 10:
- username = self.c.TFMUtils.parsePlayerName(args[0])
- if not self.c.server.checkExistingUsers(username):
- self.c.sendMessage("Não foi possível encontrar o usuário: <V>"+username+"<BL>.")
- else:
- player = self.c.server.players.get(username)
- if player != None:
- player.room.removeClient(player)
- player.transport.loseConnection()
- self.Database.execute("update users set first = 0, cheese = 0, saves = 0, HardModeSaves = 0, DivineModeSaves = 0, bootcamp = 0, shamcheese = 0 where name = ?", [username])
- self.c.sendAllModMessageChannel("Servidor", "<V>"+username+"<BL> foi retirado do ranking por <V>"+self.c.username+"<BL>.")
- elif event == "move":
- if self.c.privilegeLevel >= 5:
- username = self.c.TFMUtils.parsePlayerName(args[0])
- self.c.room.moveAllRoomClients(username, False)
- else:
- self.c.sendMessage('<ROSE>[+] <J>Colete <ROSE><b>5 queijos</b><J> para liberar os comandos. \nVocê possui <b><font color="#66CDAA">'+str(self.c.cheesecount)+'</font></b> <J>queijos coletados.')
- class UserWarning(Exception):
- pass
Add Comment
Please, Sign In to add comment