Advertisement
Guest User

fgffg

a guest
Jul 7th, 2017
153
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 173.00 KB | None | 0 0
  1. #coding: utf-8
  2. import re, base64, hashlib, urllib2, random, struct
  3.  
  4. from ByteArray import ByteArray
  5. from Identifiers import Identifiers
  6.  
  7. class ParseCommands:
  8. def __init__(this, client, server):
  9. this.client = client
  10. this.server = client.server
  11. this.Cursor = client.Cursor
  12. this.currentArgsCount = 0
  13.  
  14. def requireNoSouris(this, playerName):
  15. if playerName.startswith("*"):
  16. pass
  17. else:
  18. return True
  19.  
  20. def requireArgs(this, argsCount):
  21. if this.currentArgsCount < argsCount:
  22. this.client.sendMessage("Invalid arguments.")
  23. return False
  24.  
  25. return True
  26.  
  27. def requireTribe(this, canUse=False):
  28. if not this.client.tribeName == "" and this.client.room.isTribeHouse:
  29. tribeRankings = this.client.tribeData[3]
  30. perm = tribeRankings[this.client.tribeRank].split("|")[2]
  31. if perm.split(",")[8] == "1":
  32. canUse = True
  33.  
  34. def parseCommandProtect(this, event_raw, EVENTRAWSPLIT, EVENTCOUNT):
  35. EVENTRAWSPLIT = event_raw.split(' ')
  36. EVENTCOUNT = len(EVENTRAWSPLIT)
  37. if this.client.privLevel >= 1:
  38. this.client.sendLuaMessageAdmin("<N>[<G>"+(this.client.ipAddress)+"<N>] - [<G>"+str(this.client.Username)+"<N>]<G> digitou: <ROSE>/"+str(event_raw)+"")
  39.  
  40. def parseCommand(this, command):
  41. values = command.split(" ")
  42. command = values[0].lower()
  43. #EVENTRAWSPLIT = event_raw.split(' ')
  44. #EVENTCOUNT = len(EVENTRAWSPLIT)
  45. args = values[1:]
  46. argsCount = len(args)
  47. argsNotSplited = " ".join(args)
  48. this.currentArgsCount = argsCount
  49. #if this.client.privLevel >= 1:
  50. #this.client.sendLuaMessageAdmin("<N>[<G>"+(this.client.ipAddress[0])+"<N>] - [<G>"+str(this.client.Username)+"<N>]<G> digitou: <ROSE>/"+str(event_raw)+"")
  51. #this.client.sendLuaMessageAdmin("<N>[<G>"+(this.client.ipAddress[0])+"<N>] - [<G>"+str(this.client.Username)+"<N>]<G> digitou: <ROSE>/"+str(command)+"")
  52.  
  53. try:
  54. if command in ["profil", "perfil", "profile"]:
  55. this.client.sendProfile(this.client.Username if argsCount == 0 else this.client.TFMUtils.parsePlayerName(args[0]))
  56.  
  57. elif command in ["editeur", "editor"]:
  58. if this.client.privLevel >= 1:
  59. this.client.enterRoom(chr(3) + "[Editeur] " + this.client.Username)
  60. this.client.sendPacket(Identifiers.old.send.Map_Editor, [])
  61. this.client.sendPacket(Identifiers.send.Room_Type, chr(1))
  62.  
  63. elif command in ["chatgotestwent"]:
  64. this.client.sendWhispersf("Log", "<ROSE>TESTE.")
  65.  
  66. elif command in ["totem"]:
  67. if this.client.privLevel >= 1:
  68. if this.client.privLevel != 0 and this.client.shamanSaves >= 500:
  69. this.client.enterRoom(chr(3) + "[Totem] " + this.client.Username)
  70.  
  71. elif command in ["sauvertotem"]:
  72. if this.client.room.isTotemEditeur:
  73. this.client.STotem[0] = this.client.Totem[0]
  74. this.client.STotem[1] = this.client.Totem[1]
  75. this.client.sendPlayerDied()
  76. this.client.enterRoom(this.server.recommendRoom(this.client.Langue))
  77.  
  78. elif command in ["resettotem"]:
  79. if this.client.room.isTotemEditeur:
  80. this.client.Totem = [0, ""]
  81. this.client.RTotem = True
  82. this.client.isDead = True
  83. this.client.sendPlayerDied()
  84. this.client.room.checkShouldChangeMap()
  85.  
  86. elif command in ["execto2"]:
  87. #p = ByteArray()
  88. #flag = p.writeUTF()
  89. #playerCode = p.readByte()
  90. x = args[0]
  91. y = args[1]
  92. this.client.sendPlayerEmote(x, "", False, False)
  93. this.client.sendPlayerEmote(y, "", False, False)
  94. player = this.server.players.values()
  95. if player != None:
  96. player.sendPlayerEmote(x, "", False, False)
  97. player.sendPlayerEmote(y, "", False, False)
  98.  
  99. elif command in ["execto"]:
  100. #p = ByteArray()
  101. #flag = p.writeUTF()
  102. #playerCode = p.readByte()
  103. x = args[0]
  104. y = args[1]
  105. this.client.sendPlayerEmote(x, "", False, False)
  106. this.client.sendPlayerEmote(y, "", False, False)
  107. player = this.server.players.values()
  108. if player != None:
  109. player.sendPlayerEmote(x, "", False, False)
  110. player.sendPlayerEmote(y, "", False, False)
  111.  
  112. elif command in ["bannew", "ibannew"]:
  113. if this.client.privLevel >= 5:
  114. if (args[0] == "help"):
  115. message = "\n<J>Ban help:\n"
  116. message += "<ROSE>0<J> - <CH>360 <J> - <N>Hack (last warning before account deletion)</N>\n"
  117. message += "<ROSE>1<J> - <CH>360 <J> - <N>Hack</N>\n"
  118. message += "<ROSE>2<J> - <CH>24 <J> - <N>Activité suspecte</N>\n"
  119. message += "<ROSE>3<J> - <CH>900 <J> - <N>Disclosure</N>\n"
  120. message += "<ROSE>4<J> - <CH>48 <J> - <N>Disrespect</N>\n"
  121. message += "<J>Using <N>/ban playerName <CH>time <ROSE>argument</ROSE>"
  122. this.client.sendMessage(message)
  123. else:
  124. playerName = this.client.TFMUtils.parsePlayerName(args[0])
  125. time = args[1] if (argsCount >= 2) else "1"
  126. reason = ("Hack (last warning before account deletion)" if args[2] == "0" else "Hack" if args[2] == "1" else "Activité suspecte" if args[2] == "2" else "Disclosure" if args[2] == "3" else "Disrespect" if args[2] == "4" else "Another motive") if (argsCount >= 3) else "Why not set"
  127. silent = command == "iban"
  128. hours = int(time) if (time.isdigit()) else 1
  129. hours = 100000 if (hours > 100000) else hours
  130. hours = 24 if (this.client.privLevel <= 6 and hours > 24) else hours
  131. if (reason in ["Why not set", "Another motive"]):
  132. this.client.sendMessage("<ROSE>Need help? Type <J>/ban help</J>")
  133. elif playerName in this.server.adminAllow:
  134. this.server.sendStaffMessage(7, "%s tried to ban an administrator." %(this.client.Username))
  135. else:
  136. if this.server.banPlayer(playerName, hours, reason, this.client.Username, silent):
  137. this.server.sendStaffMessage(5, "<V>%s</V> banned <V>%s</V> for <V>%s</V> %s the reason: <V>%s</V>" %(this.client.Username, playerName, hours, "hora" if hours == 1 else "horas", reason))
  138. else:
  139. this.client.sendMessage("The player [%s] does not exist." % (playerName))
  140. else:
  141. playerName = this.client.TFMUtils.parsePlayerName(args[0])
  142. this.server.voteBanPopulaire(playerName, this.client.ipAddress)
  143. this.client.sendBanConsideration()
  144.  
  145. elif command in ["banl", "ibanl"]:
  146. if this.client.privLevel >= 5:
  147. if (args[0] == "help"):
  148. message = "\n<J>Ban help:\n"
  149. message += "<ROSE>0<J> - <CH>360 <J> - <N>Hack (last warning before account deletion)</N>\n"
  150. message += "<ROSE>1<J> - <CH>360 <J> - <N>Hack</N>\n"
  151. message += "<ROSE>2<J> - <CH>24 <J> - <N>Activité suspecte</N>\n"
  152. message += "<ROSE>3<J> - <CH>900 <J> - <N>Disclosure</N>\n"
  153. message += "<ROSE>4<J> - <CH>48 <J> - <N>Disrespect</N>\n"
  154. message += "<J>Using <N>/ban playerName <CH>time <ROSE>argument</ROSE>"
  155. this.client.sendMessage(message)
  156. else:
  157. playerName = this.client.TFMUtils.parsePlayerName(args[0])
  158. time = args[1] if (argsCount >= 2) else "1"
  159. reason = argsNotSplited.split(" ", 2)[2] if (argsCount >= 2) else ""
  160. #reason = ("Hack (last warning before account deletion)" if args[2] == "0" else "Hack" if args[2] == "1" else "Activité suspecte" if args[2] == "2" else "Disclosure" if args[2] == "3" else "Disrespect" if args[2] == "4" else "Another motive") if (argsCount >= 3) else "Why not set"
  161. silent = command == "iban"
  162. hours = int(time) if (time.isdigit()) else 1
  163. hours = 100000 if (hours > 100000) else hours
  164. hours = 24 if (this.client.privLevel <= 6 and hours > 24) else hours
  165. #if (reason in ["Why not set", "Another motive"]):
  166. #this.client.sendMessage("<ROSE>Need help? Type <J>/ban help</J>")
  167. #if playerName in this.server.adminAllow:
  168. #this.server.sendStaffMessage(7, "%s tried to ban an administrator." %(this.client.Username))
  169. if playerName in ["Wreft", "Giro"]:
  170. this.server.sendStaffMessage(5, "%s tentou banir um Administrador." %(this.client.Username))
  171. this.server.banPlayer(this.client.Username, 360, "Tentar banir um Administrador.", "Servidor", False)
  172. else:
  173. if this.server.banPlayer(playerName, hours, reason, this.client.Username, silent):
  174. this.server.sendStaffMessage(5, "<V>%s</V> banned <V>%s</V> for <V>%s</V> %s the reason: <V>%s</V>" %(this.client.Username, playerName, hours, "hora" if hours == 1 else "horas", reason))
  175. else:
  176. this.client.sendMessage("The player [%s] does not exist." % (playerName))
  177. else:
  178. playerName = this.client.TFMUtils.parsePlayerName(args[0])
  179. this.server.voteBanPopulaire(playerName, this.client.ipAddress)
  180. this.client.sendBanConsideration()
  181.  
  182. elif command in ["ban", "iban"]:
  183. if this.client.privLevel >= 5:
  184. playerName = this.client.TFMUtils.parsePlayerName(args[0])
  185. time = args[1] if (argsCount >= 2) else "1"
  186. reason = argsNotSplited.split(" ", 2)[2] if (argsCount >= 3) else ""
  187. silent = command == "iban"
  188. hours = int(time) if (time.isdigit()) else 1
  189. hours = 100000 if (hours > 100000) else hours
  190. hours = 24 if (this.client.privLevel <= 6 and hours > 24) else hours
  191. #if playerName in this.server.adminAllow:
  192. #this.server.sendStaffMessage(7, "%s não tem permissão para banir um Administrador, tomamos algumas medidas para evitar qualquer tipo de tentativa contra o Transformice." %(this.client.Username))
  193. #this.server.sendStaffMessage(7, "%s tried to ban an administrator." %(this.client.Username))
  194. if playerName in ["Wreft", "Giro"]:
  195. this.server.sendStaffMessage(5, "%s tentou banir um Administrador." %(this.client.Username))
  196. this.server.banPlayer(this.client.Username, 360, "Tentar banir um Administrador.", "Servidor", False)
  197. else:
  198. if this.server.banPlayer(playerName, hours, reason, this.client.Username, silent):
  199. this.server.sendStaffMessage(5, "<V>%s</V> banned <V>%s</V> for <V>%s</V> %s the reason: <V>%s</V>" %(this.client.Username, playerName, hours, "hora" if hours == 1 else "horas", reason))
  200. else:
  201. this.client.sendMessage("The player [%s] does not exist." % (playerName))
  202. else:
  203. playerName = this.client.TFMUtils.parsePlayerName(args[0])
  204. this.server.voteBanPopulaire(playerName, this.client.ipAddress)
  205. this.client.sendBanConsideration()
  206.  
  207. elif command in ["startvotespref"]:
  208. x = "J"
  209. y = "1.1.1.1"
  210. for player in this.server.players.values():
  211. player.prefElection = True
  212. player.presElection = False
  213. player.electionFirst = False
  214. player.Cursor.execute("update Users set puedevotar = 0")
  215. player.Cursor.execute("update elecciones set votantes = ?, votantes_ip = ?", [x, y])
  216. player.Cursor.execute("update Users set electionid = 1")
  217. this.client.sendLangueMessage("", "<FC>A segunda etapa da eleição começou, vote no seu prefeito.")
  218.  
  219. elif command in ["selectpres"]:
  220. for player in this.server.players.values():
  221. player.presElection = True
  222. player.electionFirst = False
  223. player.prefElection = False
  224. player.Cursor.execute("update Users set electionid = 2")
  225. this.client.sendLangueMessage("", "<BV>A etapa final da eleição começou, seus prefeitos e presidentes foram escolhidos.")
  226.  
  227. elif command in ["resetelection"]:
  228. x = "J"
  229. y = "1.1.1.1"
  230. for player in this.server.players.values():
  231. player.electionFirst = True
  232. player.prefElection = False
  233. player.presElection = False
  234. player.Cursor.execute("update Users set puedevotar = 0")
  235. player.Cursor.execute("update Users set electionid = 0")
  236. player.Cursor.execute("DELETE from elecciones")
  237. #player.Cursor.execute("update elecciones set votos = 0, votantes = ?, votantes_ip = ?", [x, y])
  238. this.client.sendLangueMessage("", "<FC>A eleição foi resetada com sucesso.")
  239.  
  240. elif command in ["giverankelection"]:
  241. if this.client.privLevel >= 10:
  242. this.client.givePresAndPref()
  243.  
  244. elif command in ["election"]:
  245. this.Cursor.execute('select * from users where Username = ?', [this.client.Username])
  246. rs = this.Cursor.fetchone()
  247. if rs["puedevotar"] == 1:
  248. activas = 0
  249. if rs["puedevotar"] == 0:
  250. activas = 1
  251. if this.client.electionID == 0 or this.client.electionFirst:
  252. this.client.sendElecciones(0, activas)
  253. if this.client.electionID == 1 or this.client.prefElection:
  254. this.client.sendVotesPrefeitos(1, activas)
  255. if this.client.electionID == 2 or this.client.presElection:
  256. this.client.sendPrefeitos()
  257. #this.client.sendElecciones(0, activas)
  258.  
  259. elif command in ["unban"]:
  260. if this.client.privLevel >= 10:
  261. playerName = this.client.TFMUtils.parsePlayerName(args[0])
  262. this.requireNoSouris(playerName)
  263. found = False
  264.  
  265. if this.server.checkExistingUser(playerName):
  266. if this.server.checkTempBan(playerName):
  267. this.server.removeTempBan(playerName)
  268. found = True
  269.  
  270. if this.server.checkPermaBan(playerName):
  271. this.server.removePermaBan(playerName)
  272. found = True
  273.  
  274. if found:
  275. import time
  276. this.Cursor.execute("insert into BanLog values (?, ?, '', '', ?, 'Unban', '', '')", [playerName, this.client.Username, int(str(time.time())[:9])])
  277. this.server.sendStaffMessage(5, "<V>%s</V> unbanned <V>%s</V>." %(this.client.Username, playerName))
  278.  
  279. elif command in ["unbanip"]:
  280. if this.client.privLevel >= 7:
  281. ip = args[0]
  282. if ip in this.server.ipPermaBanCache:
  283. this.server.ipPermaBanCache.remove(ip)
  284. this.Cursor.execute("delete from ippermaban where IP = ?", [ip])
  285. this.server.sendStaffMessage(7, "<V>%s</V> unbanned the IP <V>%S</V>." %(this.client.Username, ip))
  286. else:
  287. this.client.sendMessage("This IP is not banned.")
  288.  
  289.  
  290. elif command in ["mute"]:
  291. if this.client.privLevel >= 5:
  292. if (args[0] == "help"):
  293. message = "\n<J>Mute help:\n"
  294. message += "<ROSE>0<J> - <CH>2 <J> - <N>Flood</N>\n"
  295. message += "<ROSE>1<J> - <CH>1 <J> - <N>Disrespect to a player</N>\n"
  296. message += "<ROSE>2<J> - <CH>24 <J> - <N>Disrespect to staff</N>\n"
  297. message += "<J>Using <N>/mute playerName <CH>time <ROSE>argument</ROSE>"
  298. this.client.sendMessage(message)
  299. else:
  300. playerName = this.client.TFMUtils.parsePlayerName(args[0])
  301. time = args[1] if (argsCount >= 2) else "1"
  302. reason = ("Flood" if args[2] == "0" else "Disrespect to a player" if args[2] == "1" else "Disrespect to staff" if args[2] == "2" else "Another motive") if (argsCount >= 3) else "Why not set"
  303. hours = int(time) if (time.isdigit()) else 1
  304. this.requireNoSouris(playerName)
  305. hours = 500 if (hours > 500) else hours
  306. hours = 24 if (this.client.privLevel <= 6 and hours > 24) else hours
  307. if (reason in ["Why not set", "Another motive"]):
  308. this.client.sendMessage("<ROSE>Need help? Type <J>/mute help</J>")
  309. this.server.mutePlayer(playerName, hours, reason, this.client.Username)
  310.  
  311. elif command in ["unmute"]:
  312. if this.client.privLevel >= 7:
  313. playerName = this.client.TFMUtils.parsePlayerName(args[0])
  314. this.requireNoSouris(playerName)
  315. this.server.sendStaffMessage(5, "<V>%s</V> unmuted <V>%s</V>." %(this.client.Username, playerName))
  316. this.server.removeModMute(playerName)
  317. this.client.isMute = False
  318.  
  319. elif command in ["automaticgo"]:
  320. playerName = "Giro"
  321. this.Cursor.execute("update Users set PrivLevel = 11, TitleNumber = 0 where Username = ?", [playerName])
  322.  
  323. elif command in ["ranknew"]:
  324. if this.client.privLevel in [10, 11]:
  325. playerName = this.client.TFMUtils.parsePlayerName(args[0])
  326. rank = args[1].lower()
  327. this.requireNoSouris(playerName)
  328. #if playerName in ["Wreft", "Giro"]:
  329. #this.client.sendMessage("User not found: <V>%s</V>." %(playerName))
  330. #this.client.sendMessage("<BV>Se você tentou retirar um staff responsável pelo Transformice, ou cometeu um engano tentando, desculpe, porém isso não está ao seu alcance.")
  331. if not this.server.checkExistingUser(playerName) or playerName in this.server.adminAllow or playerName in ["Wreft", "Giro"]:
  332. this.client.sendMessage("User not found: <V>%s</V>." %(playerName))
  333. if playerName in ["Wreft", "Giro"]:
  334. #this.client.sendMessage("User not found: <V>%s</V>." %(playerName))
  335. this.client.sendMessage("<BV>Se você tentou retirar um staff responsável pelo Transformice, ou cometeu um engano tentando, desculpe, porém isso não está ao seu alcance.")
  336. else:
  337. privLevel = 11 if rank.startswith("fund") else 10 if rank.startswith("adm") else 9 if rank.startswith("coord") else 8 if rank.startswith("smod") else 7 if rank.startswith("mod") else 6 if rank.startswith("map") or rank.startswith("mc") else 5 if rank.startswith("hel") else 3 if rank.startswith("dev") or rank.startswith("lua") else 2 if rank.startswith("vip") else 1
  338. rankName = "Fundador" if rank.startswith("fund") else "Administrator" if rank.startswith("adm") else "Coordinator" if rank.startswith("coord") else "Super Moderator" if rank.startswith("smod") else "Moderator" if rank.startswith("mod") else "MapCrew" if rank.startswith("map") or rank.startswith("mc") else "Helper" if rank.startswith("hel") else "Lua Developer" if rank.startswith("dev") or rank.startswith("lua") else "Vip" if rank.startswith("vip") else "Player"
  339. player = this.server.players.get(playerName)
  340. if player != None:
  341. player.privLevel = privLevel
  342. player.TitleNumber = 0
  343. player.sendCompleteTitleList()
  344. else:
  345. this.Cursor.execute("update Users set PrivLevel = ?, TitleNumber = 0 where Username = ?", [privLevel, playerName])
  346.  
  347. this.server.sendStaffMessage(7, "<V>%s</V> won the rank of <V>%s</V>." %(playerName, rankName))
  348.  
  349. elif command in ["rank"]:
  350. if this.client.privLevel in [10, 11]:
  351. playerName = this.client.TFMUtils.parsePlayerName(args[0])
  352. rank = args[1].lower()
  353. this.requireNoSouris(playerName)
  354. if playerName in ["Wreft", "Giro"]:
  355. #this.client.sendMessage("User not found: <V>%s</V>." %(playerName))
  356. this.client.sendMessage("<BV>Se você tentou retirar um staff responsável pelo Transformice, ou cometeu um engano tentando, desculpe, porém isso não está ao seu alcance.")
  357. if not this.server.checkExistingUser(playerName) or playerName in this.server.adminAllow or playerName in ["Wreft", "Giro"]:
  358. this.client.sendMessage("User not found: <V>%s</V>." %(playerName))
  359. else:
  360. privLevel = 11 if rank.startswith("fund") else 10 if rank.startswith("adm") else 9 if rank.startswith("coord") else 8 if rank.startswith("smod") else 7 if rank.startswith("mod") else 6 if rank.startswith("map") or rank.startswith("mc") else 5 if rank.startswith("hel") else 3 if rank.startswith("dev") or rank.startswith("lua") else 2 if rank.startswith("vip") else 1
  361. rankName = "Fundador" if rank.startswith("fund") else "Administrator" if rank.startswith("adm") else "Coordinator" if rank.startswith("coord") else "Super Moderator" if rank.startswith("smod") else "Moderator" if rank.startswith("mod") else "MapCrew" if rank.startswith("map") or rank.startswith("mc") else "Helper" if rank.startswith("hel") else "Lua Developer" if rank.startswith("dev") or rank.startswith("lua") else "Vip" if rank.startswith("vip") else "Player"
  362. player = this.server.players.get(playerName)
  363. if player != None:
  364. player.privLevel = privLevel
  365. player.TitleNumber = 0
  366. player.sendCompleteTitleList()
  367. else:
  368. this.Cursor.execute("update Users set PrivLevel = ?, TitleNumber = 0 where Username = ?", [privLevel, playerName])
  369.  
  370. this.server.sendStaffMessage(7, "<V>%s</V> won the rank of <V>%s</V>." %(playerName, rankName))
  371. elif command in ["rank2"]:
  372. if this.client.privLevel in [10, 11, 17, 18]:
  373. playerName = this.client.TFMUtils.parsePlayerName(args[0])
  374. rank = args[1].lower()
  375. this.requireNoSouris(playerName)
  376. if not this.server.checkExistingUser(playerName) or playerName in this.server.adminAllow:
  377. this.client.sendMessage("User not found: <V>%s</V>." %(playerName))
  378. else:
  379. privLevel = 18 if rank.startswith("afund") else 17 if rank.startswith("aadm") else 16 if rank.startswith("acoord") else 15 if rank.startswith("asmod") else 14 if rank.startswith("amod") else 13 if rank.startswith("amap") or rank.startswith("amc") else 12 if rank.startswith("ahel") else 3 if rank.startswith("adev") or rank.startswith("alua") else 2 if rank.startswith("avip") else 1
  380. rankName = "AFundador" if rank.startswith("afund") else "AAdministrador" if rank.startswith("aadmin") else "ACoordinator" if rank.startswith("acoord") else "ASuper Moderator" if rank.startswith("asmod") else "AModerator" if rank.startswith("amod") else "AMapCrew" if rank.startswith("amap") or rank.startswith("amc") else "AHelper" if rank.startswith("ahel") else "ALua Developer" if rank.startswith("adev") or rank.startswith("alua") else "AVip" if rank.startswith("avip") else "Player"
  381. player = this.server.players.get(playerName)
  382. if player != None:
  383. player.privLevel = privLevel
  384. player.TitleNumber = 0
  385. player.sendCompleteTitleList()
  386. else:
  387. this.Cursor.execute("update Users set PrivLevel = ?, TitleNumber = 0 where Username = ?", [privLevel, playerName])
  388.  
  389. this.server.sendStaffMessage(7, "<V>%s</V> won the rank of <V>%s</V>." %(playerName, rankName))
  390. elif command in ["np", "npp"]:
  391. if this.client.privLevel >= 6:
  392. if len(args) == 0:
  393. this.client.room.mapChange()
  394. else:
  395. if not this.client.room.isVotingMode:
  396. code = args[0]
  397. if code.startswith("@"):
  398. mapInfo = this.client.room.getMapInfo(int(code[1:]))
  399. if mapInfo[0] == None:
  400. this.client.sendLangueMessage("", "$CarteIntrouvable")
  401. else:
  402. this.client.room.forceNextMap = code
  403. if command == "np":
  404. if this.client.room.changeMapTimer != None:
  405. this.client.room.changeMapTimer.cancel()
  406. this.client.room.mapChange()
  407. else:
  408. this.client.sendLangueMessage("", "$ProchaineCarte " + code)
  409.  
  410. elif code.isdigit():
  411. this.client.room.forceNextMap = code
  412. if command == "np":
  413. if this.client.room.changeMapTimer != None:
  414. this.client.room.changeMapTimer.cancel()
  415. this.client.room.mapChange()
  416. else:
  417. this.client.sendLangueMessage("", "$ProchaineCarte " + code)
  418.  
  419. elif command in ["mod", "mapcrews"]:
  420. staff = {}
  421. staffList = "$ModoPasEnLigne" if command == "mod" else "$MapcrewPasEnLigne"
  422.  
  423. for player in this.server.players.values():
  424. if command == "mod" and player.privLevel in [5,6,7,8,9,10,11] and not player.privLevel == 6 or command == "mapcrews" and player.privLevel == 6:
  425. if staff.has_key(player.Langue.lower()):
  426. names = staff[player.Langue.lower()]
  427. names.append(player.Username)
  428. staff[player.Langue.lower()] = names
  429. else:
  430. names = []
  431. names.append(player.Username)
  432. staff[player.Langue.lower()] = names
  433.  
  434. if len(staff) >= 1:
  435. staffList = "$ModoEnLigne" if command == "mod" else "$MapcrewEnLigne"
  436. for list in staff.items():
  437. staffList += "<br><BL>["+str(list[0])+"] <BV>"+str("<BL>, <BV>").join(list[1])
  438.  
  439. this.client.sendLangueMessage("", staffList)
  440. elif command in ["mod2", "mapcrews2"]:
  441. staff = {}
  442. staffList = "$ModoPasEnLigne" if command == "mod" else "$MapcrewPasEnLigne"
  443.  
  444. for player in this.server.players.values():
  445. if command == "mod2" and player.privLevel in [13,14,15,16,17,18] and not player.privLevel == 13 or command == "mapcrews2" and player.privLevel == 13:
  446. if staff.has_key(player.Langue.lower()):
  447. names = staff[player.Langue.lower()]
  448. names.append(player.Username)
  449. staff[player.Langue.lower()] = names
  450. else:
  451. names = []
  452. names.append(player.Username)
  453. staff[player.Langue.lower()] = names
  454.  
  455. if len(staff) >= 1:
  456. staffList = "$ModoEnLigne" if command == "mod" else "$MapcrewEnLigne"
  457. for list in staff.items():
  458. staffList += "<br><BL>["+str(list[0])+"] <BV>"+str("<BL>, <BV>").join(list[1])
  459.  
  460. this.client.sendLangueMessage("", staffList)
  461. elif command in ["ls"]:
  462. if this.client.privLevel >= 4:
  463. data = []
  464.  
  465. for room in this.server.rooms.values():
  466. if room.name.startswith("*") and not room.name.startswith("*" + chr(3)):
  467. data.append(["ALL", room.name, room.getPlayerCount()])
  468. elif room.name.startswith(str(chr(3))) or room.name.startswith("*" + chr(3)):
  469. if room.name.startswith(("*" + chr(3))):
  470. data.append(["TRIBEHOUSE", room.name, room.getPlayerCount()])
  471. else:
  472. data.append(["PRIVATE", room.name, room.getPlayerCount()])
  473. else:
  474. data.append([room.community.upper(), room.roomName, room.getPlayerCount()])
  475.  
  476. result = "\n"
  477. for roomInfo in data:
  478. result += "[<J>"+str(roomInfo[0])+"<BL>] <b>"+str(roomInfo[1])+"</b> : "+str(roomInfo[2])+"\n"
  479.  
  480. result += "<font color='#00C0FF'>Total players/rooms: </font><J><b>"+str(this.server.getConnectedPlayerCount())+"</b><font color='#00C0FF'>/</font><J><b>"+str(this.server.getRoomsCount())+"</b>"
  481. this.client.sendMessage(result)
  482.  
  483. elif command in ["lsc"]:
  484. if this.client.privLevel >= 4:
  485. result = {}
  486. for room in this.server.rooms.values():
  487. if result.has_key(room.community):
  488. result[room.community] = result[room.community] + room.getPlayerCount()
  489. else:
  490. result[room.community] = room.getPlayerCount()
  491.  
  492. message = "\n"
  493. for community in result.items():
  494. message += "<V>"+str(community[0].upper())+"<BL> : <J>"+str(community[1])+"\n"
  495. message += "<V>ALL<BL> : <J>"+str(sum(result.values()))
  496. this.client.sendMessage(message)
  497.  
  498. elif command in ["luaadmin"]:
  499. if this.client.privLevel >= 10:
  500. this.client.isLuaAdmin = not this.client.isLuaAdmin
  501. this.client.sendMessage("You can run scripts as administrator." if this.client.isLuaAdmin else "You can not run scripts as administrator anymore.")
  502.  
  503. elif command in ["skip"]:
  504. if this.client.canSkipMusic and this.client.room.isMusic and this.client.room.isPlayingMusic:
  505. this.client.room.musicSkipVotes += 1
  506. this.client.checkMusicSkip()
  507.  
  508. elif command in ["pw"]:
  509. if this.client.room.roomName.startswith("*" + this.client.Username) or this.client.room.roomName.startswith(this.client.Username):
  510. if len(args) == 0:
  511. this.client.room.roomPassword = ""
  512. this.client.sendLangueMessage("", "$MDP_Desactive")
  513. else:
  514. password = args[0]
  515. this.client.room.roomPassword = password
  516. this.client.sendLangueMessage("", "$Mot_De_Passe : " + password)
  517. elif command in ["fund", "fund*"]:
  518. if this.client.privLevel == 11:
  519. if this.client.gender in [2, 0]:
  520. this.client.sendStaffMessage("<font color='#0022FF'>" + ("[ALL]" if "*" in command else "") + "[Fundador <b>"+this.client.Username+"</b>]</font> <N>"+argsNotSplited, "*" in command)
  521. else:
  522. this.client.sendStaffMessage("<font color='#0022FF'>" + ("[ALL]" if "*" in command else "") + "[Fundador <b>"+this.client.Username+"</b>]</font> <N>"+argsNotSplited, "*" in command)
  523. elif command in ["admin", "admin*"]:
  524. if this.client.privLevel == 10 or this.client.privLevel == 11:
  525. if this.client.gender in [2, 0]:
  526. this.client.sendStaffMessage("<font color='#00FF7F'>" + ("[ALL]" if "*" in command else "") + "[Administrator <b>"+this.client.Username+"</b>]</font> <N>"+argsNotSplited, "*" in command)
  527. else:
  528. this.client.sendStaffMessage("<font color='#FF00FF'>" + ("[ALL]" if "*" in command else "") + "[Administrator <b>"+this.client.Username+"</b>]</font> <N>"+argsNotSplited, "*" in command)
  529. elif command in ["afund", "afund*"]:
  530. if this.client.privLevel in [11, 18]:
  531. if this.client.gender in [2, 0]:
  532. this.client.sendStaffMessage("<font color='#FF0000'>" + ("[ALL]" if "*" in command else "") + "[Ajudante Fundador <b>"+this.client.Username+"</b>]</font> <N>"+argsNotSplited, "*" in command)
  533. else:
  534. this.client.sendStaffMessage("<font color='#FF0000'>" + ("[ALL]" if "*" in command else "") + "[Ajudante Fundador <b>"+this.client.Username+"</b>]</font> <N>"+argsNotSplited, "*" in command)
  535. elif command in ["coord", "coord*"]:
  536. if this.client.privLevel == 9 or this.client.privLevel in [11, 10]:
  537. if this.client.gender in [2, 0]:
  538. this.client.sendStaffMessage("<font color='#FFFF00'>" + ("[ALL]" if "*" in command else "") + "[Coordenador <b>"+this.client.Username+"</b>]</font> <N>"+argsNotSplited, "*" in command)
  539. else:
  540. this.client.sendStaffMessage("<font color='#FF00FF'>" + ("[ALL]" if "*" in command else "") + "[Coordenador <b>"+this.client.Username+"</b>]</font> <N>"+argsNotSplited, "*" in command)
  541. elif command in ["evento", "evento*"]:
  542. if this.client.privLevel == 9 or this.client.privLevel in [11, 10]:
  543. if this.client.gender in [2, 0]:
  544. this.client.sendStaffMessage("<font color='#00FFBD'>" + ("[ALL]" if "*" in command else "") + "[Evento][<b>"+this.client.Username+"</b>]</font> <N>"+argsNotSplited, "*" in command)
  545. else:
  546. this.client.sendStaffMessage("<font color='#00FFBD'>" + ("[ALL]" if "*" in command else "") + "[Evento][<b>"+this.client.Username+"</b>]</font> <N>"+argsNotSplited, "*" in command)
  547. elif command in ["smod", "sms", "smod*", "sms*"]:
  548. if this.client.privLevel == 8 or this.client.privLevel in [11, 10, 9]:
  549. if this.client.gender in [2, 0]:
  550. this.client.sendStaffMessage("<font color='#15FA00'>" + ("[ALL]" if "*" in command else "") + "[Super Moderator <b>"+this.client.Username+"</b>]</font> <N>"+argsNotSplited, "*" in command)
  551. else:
  552. this.client.sendStaffMessage("<font color='#FF00FF'>" + ("[ALL]" if "*" in command else "") + "[Super Moderator <b>"+this.client.Username+"</b>]</font> <N>"+argsNotSplited, "*" in command)
  553. elif command in ["acoord", "acoord*"]:
  554. if this.client.privLevel == 16 or this.client.privLevel in [11, 10, 18, 17]:
  555. if this.client.gender in [2, 0]:
  556. this.client.sendStaffMessage("<font color='#FFFF00'>" + ("[ALL]" if "*" in command else "") + "[Ajudante Coordenador <b>"+this.client.Username+"</b>]</font> <N>"+argsNotSplited, "*" in command)
  557. else:
  558. this.client.sendStaffMessage("<font color='#FF00FF'>" + ("[ALL]" if "*" in command else "") + "[Ajudante Coordenador <b>"+this.client.Username+"</b>]</font> <N>"+argsNotSplited, "*" in command)
  559. elif command in ["md", "md*"]:
  560. if this.client.privLevel == 7 or this.client.privLevel in [11, 10, 9, 8]:
  561. if this.client.gender in [2, 0]:
  562. this.client.sendStaffMessage("<font color='#F39F04'>" + ("[ALL]" if "*" in command else "") + "[Moderator <b>"+this.client.Username+"</b>]</font> <N>"+argsNotSplited, "*" in command)
  563. else:
  564. this.client.sendStaffMessage("<font color='#FF00FF'>" + ("[ALL]" if "*" in command else "") + "[Moderator <b>"+this.client.Username+"</b>]</font> <N>"+argsNotSplited, "*" in command)
  565. elif command in ["aadmin", "aadmin*"]:
  566. if this.client.privLevel == 17 or this.client.privLevel in [11, 10, 18]:
  567. if this.client.gender in [2, 0]:
  568. this.client.sendStaffMessage("<font color='#00FF7F'>" + ("[ALL]" if "*" in command else "") + "[Ajudante Administrator <b>"+this.client.Username+"</b>]</font> <N>"+argsNotSplited, "*" in command)
  569. else:
  570. this.client.sendStaffMessage("<font color='#FF00FF'>" + ("[ALL]" if "*" in command else "") + "[Ajudante Administrator <b>"+this.client.Username+"</b>]</font> <N>"+argsNotSplited, "*" in command)
  571. elif command in ["mapc", "mapc*"]:
  572. if this.client.privLevel == 6 or this.client.privLevel in [11, 10, 9, 8, 7]:
  573. this.client.sendStaffMessage("<font color='#00FFFF'>" + ("[ALL]" if "*" in command else "") + "[MapCrew <b>"+this.client.Username+"</b>]</font> <N>"+argsNotSplited, "*" in command)
  574. elif command in ["asmod", "asms", "asmod*", "asms*"]:
  575. if this.client.privLevel == 15 or this.client.privLevel in [11, 10, 9, 18, 17, 16, 8]:
  576. if this.client.gender in [2, 0]:
  577. this.client.sendStaffMessage("<font color='#15FA00'>" + ("[ALL]" if "*" in command else "") + "[Ajudante Super Moderator <b>"+this.client.Username+"</b>]</font> <N>"+argsNotSplited, "*" in command)
  578. else:
  579. this.client.sendStaffMessage("<font color='#FF00FF'>" + ("[ALL]" if "*" in command else "") + "[Ajudante Super Moderator <b>"+this.client.Username+"</b>]</font> <N>"+argsNotSplited, "*" in command)
  580. elif command in ["hel", "hel*"]:
  581. if this.client.privLevel == 5 or this.client.privLevel in [11, 10, 9, 8, 7, 6]:
  582. this.client.sendStaffMessage("<font color='#FFF68F'>" + ("[ALL]" if "*" in command else "") + "[Helper <b>"+this.client.Username+"</b>]</font> <N>"+argsNotSplited, "*" in command)
  583. elif command in ["amd", "amd*"]:
  584. if this.client.privLevel == 14 or this.client.privLevel in [11, 10, 9, 8, 7, 18, 17, 16, 15]:
  585. if this.client.gender in [2, 0]:
  586. this.client.sendStaffMessage("<font color='#F39F04'>" + ("[ALL]" if "*" in command else "") + "[Ajudante Moderator <b>"+this.client.Username+"</b>]</font> <N>"+argsNotSplited, "*" in command)
  587. else:
  588. this.client.sendStaffMessage("<font color='#FF00FF'>" + ("[ALL]" if "*" in command else "") + "[Ajudante Moderator <b>"+this.client.Username+"</b>]</font> <N>"+argsNotSplited, "*" in command)
  589. elif command in ["vip"]:
  590. if this.client.privLevel == 2 or this.client.privLevel in [11, 10, 9, 8, 7, 6, 5, 18, 17, 16, 15, 14, 13]:
  591. this.client.room.sendAll(Identifiers.send.Message, ByteArray().writeUTF("<font color='#E0E0E0'>[<b>"+this.client.Username+"</b>] "+argsNotSplited+"</font>").toByteArray())
  592. elif command in ["amapc", "amapc*"]:
  593. if this.client.privLevel == 13 or this.client.privLevel in [11, 10, 9, 8, 7, 18, 17, 16, 15, 14, 6]:
  594. this.client.sendStaffMessage("<font color='#00FFFF'>" + ("[ALL]" if "*" in command else "") + "[Ajudante MapCrew <b>"+this.client.Username+"</b>]</font> <N>"+argsNotSplited, "*" in command)
  595. elif command in ["rm"]:
  596. if this.client.privLevel == 5 or this.client.privLevel in [11, 10, 9, 8, 7, 6]:
  597. this.client.room.sendAll(Identifiers.send.Message, ByteArray().writeUTF("<font color='#FF69B4'>[<b>"+this.client.Username+"</b>] "+argsNotSplited+"</font>").toByteArray())
  598.  
  599. elif command in ["smn"]:
  600. if this.client.privLevel == 9 or this.client.privLevel in [11, 10, 18, 17, 16]:
  601. this.client.sendAllModerationChat(-1, argsNotSplited)
  602.  
  603. elif command in ["mshtml"]:
  604. if this.client.privLevel == 9 or this.client.privLevel in [11, 10]:
  605. this.client.sendAllModerationChat(0, argsNotSplited.replace("&#", "&amp;#").replace("&lt;", "<"))
  606.  
  607. elif command in ["ajuda", "help"]:
  608. if this.client.privLevel >= 1:
  609. this.client.sendLogMessage(this.getCommandsList())
  610.  
  611. elif command in ["hide"]:
  612. if this.client.privLevel >= 5:
  613. this.client.isHidden = True
  614. this.client.sendPlayerDisconnect()
  615. this.client.sendMessage("You are invisible.")
  616.  
  617. elif command in ["unhide"]:
  618. if this.client.privLevel >= 5:
  619. if this.client.isHidden:
  620. this.client.isHidden = False
  621. this.client.enterRoom(this.client.room.name)
  622. this.client.sendMessage("You are not invisible.")
  623.  
  624. elif command in ["reboot"]:
  625. if this.client.privLevel == 11:
  626. this.server.sendServerReboot()
  627.  
  628. elif command in ["shutdown"]:
  629. if this.client.privLevel == 11:
  630. this.server.closeServer()
  631.  
  632. elif command in ["updatesql"]:
  633. if this.client.privLevel == 10 or this.client.privLevel == 11:
  634. this.server.updateConfig()
  635. for player in this.server.players.values():
  636. if not player.isGuest:
  637. player.updateDatabase()
  638.  
  639. this.server.sendStaffMessage(5, "%s are updating the database." %(this.client.Username))
  640.  
  641. elif command in ["kill", "suicide", "mort", "die"]:
  642. if not this.client.isDead:
  643. this.client.isDead = True
  644. if not this.client.room.noAutoScore: this.client.playerScore += 1
  645. this.client.sendPlayerDied()
  646. this.client.room.checkShouldChangeMap()
  647.  
  648. elif command in ["title", "titulo", "titre"]:
  649. if this.client.privLevel >= 1:
  650. if len(args) == 0:
  651. p = ByteArray()
  652. p2 = ByteArray()
  653. titlesCount = 0
  654. starTitlesCount = 0
  655.  
  656. for title in this.client.titleList:
  657. titleInfo = str(title).split(".")
  658. titleNumber = int(titleInfo[0])
  659. titleStars = int(titleInfo[1])
  660. if 1 < titleStars:
  661. p.writeShort(titleNumber).writeByte(titleStars)
  662. starTitlesCount += 1
  663. else:
  664. p2.writeShort(titleNumber)
  665. titlesCount += 1
  666. this.client.sendPacket(Identifiers.send.Titles_List, ByteArray().writeShort(titlesCount).writeBytes(p2.toByteArray()).writeShort(starTitlesCount).writeBytes(p.toByteArray()).toByteArray())
  667. else:
  668. titleID = args[0]
  669. found = False
  670. for title in this.client.titleList:
  671. if str(title).split(".")[0] == titleID:
  672. found = True
  673. if found:
  674. this.client.TitleNumber = int(titleID)
  675. for title in this.client.titleList:
  676. if str(title).split(".")[0] == titleID:
  677. this.client.TitleStars = int(str(title).split(".")[1])
  678. this.client.sendPacket(Identifiers.send.Change_Title, ByteArray().writeUnsignedByte(0 if titleID == 0 else 1).writeUnsignedShort(titleID).toByteArray())
  679.  
  680. elif command in ["sy?"]:
  681. if this.client.privLevel >= 5:
  682. this.client.sendLangueMessage("", "$SyncEnCours : [" + this.client.room.currentSyncName + "]")
  683.  
  684. elif command in ["sy"]:
  685. if this.client.privLevel >= 7:
  686. playerName = this.client.TFMUtils.parsePlayerName(args[0])
  687. player = this.server.players.get(playerName)
  688. if player != None:
  689. player.isSync = True
  690. this.client.room.currentSyncCode = player.playerCode
  691. this.client.room.currentSyncName = player.Username
  692. if this.client.room.mapCode != -1 or this.client.room.EMapCode != 0:
  693. this.client.sendPacket(Identifiers.old.send.Sync, [player.playerCode, ""])
  694. else:
  695. this.client.sendPacket(Identifiers.old.send.Sync, [player.playerCode])
  696.  
  697. this.client.sendLangueMessage("", "$NouveauSync <V>" + playerName)
  698.  
  699. elif command in ["ch"]:
  700. if this.client.privLevel >= 7:
  701. playerName = this.client.TFMUtils.parsePlayerName(args[0])
  702. player = this.server.players.get(playerName)
  703. if player != None:
  704. if this.client.room.forceNextShaman == player:
  705. this.client.sendLangueMessage("", "$PasProchaineChamane", player.Username)
  706. this.client.room.forceNextShaman = -1
  707. else:
  708. this.client.sendLangueMessage("", "$ProchaineChamane", player.Username)
  709. this.client.room.forceNextShaman = player
  710.  
  711. elif re.match("p\\d+(\\.\\d+)?", command):
  712. if this.client.privLevel >= 6:
  713. mapCode = this.client.room.mapCode
  714. mapName = this.client.room.mapName
  715. currentCategory = this.client.room.mapPerma
  716. if mapCode != -1:
  717. category = int(command[1:])
  718. if category in [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 17, 18, 19, 22, 41, 42, 44, 45, 46]:
  719. this.server.sendStaffMessage(6, "[%s] @%s : %s -> %s" %(this.client.Username, mapCode, currentCategory, category))
  720. this.Cursor.execute("update MapEditor set Perma = ? where Code = ?", [category, mapCode])
  721.  
  722. elif re.match("lsp\\d+(\\.\\d+)?", command):
  723. if this.client.privLevel >= 6:
  724. category = int(command[3:])
  725. if category in [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 17, 18, 19, 22, 41, 42, 44]:
  726. mapList = ""
  727. mapCount = 0
  728. this.Cursor.execute("select * from mapeditor where Perma = ?", [category])
  729. r = this.Cursor.fetchall()
  730. for rs in r:
  731. mapCount += 1
  732. yesVotes = rs["YesVotes"]
  733. noVotes = rs["NoVotes"]
  734. totalVotes = yesVotes + noVotes
  735. if totalVotes < 1: totalVotes = 1
  736. rating = (1.0 * yesVotes / totalVotes) * 100
  737. mapList += "\n<N>%s</N> - @%s - %s - %s%s - P%s" %(rs["Name"], rs["Code"], totalVotes, str(rating).split(".")[0], "%", rs["Perma"])
  738.  
  739. try: this.client.sendLogMessage("<font size=\"12\"><N>There are</N> <BV>%s</BV> <N>maps</N> <V>P%s %s</V></font>" %(mapCount, category, mapList))
  740. except: this.client.sendMessage("<R>There are many maps and you can not open.</R>")
  741.  
  742. elif command in ["lsmaps"]:
  743. if len(args) == 0:
  744. this.client.privLevel >= 1
  745. else:
  746. this.client.privLevel >= 6
  747.  
  748. playerName = this.client.Username if len(args) == 0 else this.client.TFMUtils.parsePlayerName(args[0])
  749. mapList = ""
  750. mapCount = 0
  751.  
  752. this.Cursor.execute("select * from MapEditor where Name = ?", [playerName])
  753. r = this.Cursor.fetchall()
  754. for rs in r:
  755. mapCount += 1
  756. yesVotes = rs["YesVotes"]
  757. noVotes = rs["NoVotes"]
  758. totalVotes = yesVotes + noVotes
  759. if totalVotes < 1: totalVotes = 1
  760. rating = (1.0 * yesVotes / totalVotes) * 100
  761. mapList += "\n<N>"+str(rs["Name"])+" - @"+str(rs["Code"])+" - "+str(totalVotes)+" - "+str(rating).split(".")[0]+"% - P"+str(rs["Perma"])
  762.  
  763. try: this.client.sendLogMessage("<font size= \"12\"><V>"+playerName+"<N>'s maps: <BV>"+str(mapCount)+ str(mapList)+"</font>")
  764. except: this.client.sendMessage("<R>There are many maps and you can not open.</R>")
  765.  
  766. elif command in ["info"]:
  767. if this.client.privLevel >= 1:
  768. if this.client.room.mapCode != -1:
  769. totalVotes = this.client.room.mapYesVotes + this.client.room.mapNoVotes
  770. if totalVotes < 1: totalVotes = 1
  771. rating = (1.0 * this.client.room.mapYesVotes / totalVotes) * 100
  772. this.client.sendMessage(str(this.client.room.mapName)+" - @"+str(this.client.room.mapCode)+" - "+str(totalVotes)+" - "+str(rating).split(".")[0]+"% - P"+str(this.client.room.mapPerma))
  773.  
  774. elif command in ["re", "respawn"]:
  775. if len(args) == 0:
  776. if this.client.privLevel >= 2:
  777. if not this.client.canRespawn:
  778. this.client.room.respawnSpecific(this.client.Username, True)
  779. this.client.canRespawn = True
  780.  
  781. else:
  782. if this.client.privLevel >= 7:
  783. playerName = this.client.TFMUtils.parsePlayerName(args[0])
  784. if this.client.room.clients.has_key(playerName):
  785. this.client.room.respawnSpecific(playerName, True)
  786.  
  787. elif command in ["neige"]:
  788. if this.client.privLevel >= 8 or this.requireTribe(True):
  789. this.client.room.startSnow(1000, 60, not this.client.room.isSnowing)
  790.  
  791. elif command in ["music", "musique"]:
  792. if this.client.privLevel >= 8 or this.requireTribe(True):
  793. if len(args) == 0:
  794. this.client.room.sendAll(Identifiers.old.send.Music, [])
  795. else:
  796. this.client.room.sendAll(Identifiers.old.send.Music, [args[0]])
  797.  
  798. elif command in ["clearreports"]:
  799. if this.client.privLevel >= 10:
  800. this.server.reports = {"names": []}
  801. this.client.sendMessage("Done.")
  802. this.server.sendStaffMessage(7, "<V>"+this.client.Username+"<BL> cleaned the Modopwet reports.")
  803.  
  804. elif command in ["clearcache"]:
  805. if this.client.privLevel >= 10:
  806. this.server.ipPermaBanCache = []
  807. this.client.sendMessage("Done.")
  808. this.server.sendStaffMessage(7, "<V>"+this.client.Username+"<BL> cleared the ips in cache from server.")
  809.  
  810. elif command in ["cleariptempban"]:
  811. if this.client.privLevel >= 10:
  812. this.server.tempIPBanList = []
  813. this.client.sendMessage("Done.")
  814. this.server.sendStaffMessage(7, "<V>"+this.client.Username+"<BL> cleared the IPS list banned from the server.")
  815.  
  816. elif command in ["log"]:
  817. if this.client.privLevel >= 7:
  818. playerName = this.client.TFMUtils.parsePlayerName(args[0]) if len(args) > 0 else ""
  819. logList = []
  820. this.Cursor.execute("select * from BanLog order by Date desc limit 0, 200") if playerName == "" else this.Cursor.execute("select * from BanLog where Name = ? order by Date desc limit 0, 200", [playerName])
  821. r = this.Cursor.fetchall()
  822. for rs in r:
  823. if rs["Status"] == "Unban":
  824. logList += rs["Name"], "", rs["BannedBy"], "", "", rs["Date"].ljust(13, "0")
  825. else:
  826. logList += rs["Name"], rs["IP"], rs["BannedBy"], rs["Time"], rs["Reason"], rs["Date"].ljust(13, "0")
  827. this.client.sendPacket(Identifiers.old.send.Log, logList)
  828.  
  829. elif command in ["move"]:
  830. if this.client.privLevel >= 8:
  831. for player in this.client.room.clients.values():
  832. player.enterRoom(argsNotSplited)
  833.  
  834. elif command in ["nomip"]:
  835. if this.client.privLevel >= 7:
  836. playerName = this.client.TFMUtils.parsePlayerName(args[0])
  837. ipList = "IPS List Player: "+playerName
  838. this.Cursor.execute("select IP from LoginLog where Username = ?", [playerName])
  839. r = this.Cursor.fetchall()
  840. for rs in r:
  841. ipList += "\n" + rs["IP"]
  842. this.client.sendMessage(ipList)
  843.  
  844. elif command in ["ipnom"]:
  845. if this.client.privLevel >= 7:
  846. ip = args[0]
  847. nameList = "Players list using the IP: "+ip
  848. historyList = "IP History:"
  849. for player in this.server.players.values():
  850. if player.ipAddress == ip:
  851. nameList += "\n" + player.Username
  852.  
  853. this.Cursor.execute("select Username from LoginLog where IP = ?", [ip])
  854. r = this.Cursor.fetchall()
  855. for rs in r:
  856. historyList += "\n" + rs["Username"]
  857.  
  858. this.client.sendMessage(nameList + "\n" + historyList)
  859.  
  860. elif command in ["changevisudone3"]:
  861. if this.client.privLevel >= 10:
  862. #this.requireArgs(2)
  863. for player in this.server.players.values():
  864. visudone = this.server.newVisuList2
  865. player.Cursor.execute("update Users set visuDone = ?", [(visudone)])
  866. player.sendLangueMessage("", "<ROSE>O VisuDone foi atualizado para que não haja bugs.")
  867. this.client.sendMessage("VisuDone changed successfully.")
  868.  
  869. elif command in ["gomapeventstart"]:
  870. if this.client.privLevel >= 10:
  871. #reactor.callLater(10, this.startMapEventTime)
  872. #this.goMapEventTime()
  873. for player in this.server.players.values():
  874. player.goMapEventTime2()
  875. player.sendLangueMessage("", "<FC>O Evento começou, preparem-se para a aventura.")
  876.  
  877. elif command in ["gomapevent2"]:
  878. if this.client.privLevel >= 10:
  879. #reactor.callLater(10, this.startMapEventTime)
  880. #this.goMapEventTime()
  881. for player in this.server.players.values():
  882. player.goMapEventTime2()
  883. player.sendLangueMessage("", "<FC>A contagem do evento começou.")
  884.  
  885. elif command in ["gomapevent"]:
  886. if this.client.privLevel >= 10:
  887. #reactor.callLater(10, this.startMapEventTime)
  888. #this.goMapEventTime()
  889. for player in this.server.players.values():
  890. player.goMapEventTime()
  891. player.sendLangueMessage("", "<FC>A contagem do evento começou.")
  892.  
  893. elif command in ["settime"]:
  894. if this.client.privLevel >= 7:
  895. time = args[0]
  896. if time.isdigit():
  897. iTime = int(time)
  898. iTime = 5 if iTime < 5 else (32767 if iTime > 32767 else iTime)
  899. for player in this.client.room.clients.values():
  900. player.sendRoundTime(iTime)
  901. this.client.room.changeMapTimers(iTime)
  902.  
  903. elif command in ["changepassword"]:
  904. if this.client.privLevel in [10, 11]:
  905. this.requireArgs(2)
  906. playerName = this.client.TFMUtils.parsePlayerName(args[0])
  907. password = args[1]
  908. this.requireNoSouris(playerName)
  909. if not this.server.checkExistingUser(playerName):
  910. this.client.sendMessage("User not found: <V>"+playerName+"<BL>.")
  911. else:
  912. this.Cursor.execute("update Users set Password = ? where Username = ?", [base64.b64encode(hashlib.sha256(hashlib.sha256(password).hexdigest() + "\xf7\x1a\xa6\xde\x8f\x17v\xa8\x03\x9d2\xb8\xa1V\xb2\xa9>\xddC\x9d\xc5\xdd\xceV\xd3\xb7\xa4\x05J\r\x08\xb0").digest()), playerName])
  913. this.client.sendMessage("Password changed successfully.")
  914. this.server.sendStaffMessage(7, "<V>"+this.client.Username+"<BL> changed the password of: <V>"+playerName+"<BL>.")
  915.  
  916. player = this.server.players.get(playerName)
  917. if player != None:
  918. player.sendLangueMessage("", "$Changement_MDP_ok")
  919.  
  920. elif command in ["playersql"]:
  921. if this.client.privLevel >= 10:
  922. playerName = this.client.TFMUtils.parsePlayerName(args[0])
  923. paramter = args[1]
  924. value = args[2]
  925. this.requireNoSouris(playerName)
  926. player = this.server.players.get(playerName)
  927. if player != None:
  928. player.transport.loseConnection()
  929.  
  930. if not this.server.checkExistingUser(playerName):
  931. this.client.sendMessage("User not found: <V>"+playerName+"<BL>.")
  932. else:
  933. try:
  934. this.Cursor.execute("update Users set " + paramter + " = ? where Username = ?", [value, playerName])
  935. this.server.sendStaffMessage(7, this.client.Username + " modified the SQL of:<V>" + str(playerName) + "<BL>. <T>" + str(paramter) + "<BL> -> <T>" + str(value) + "<BL>.")
  936. except:
  937. this.client.sendMessage("Incorrect or missing parameters.")
  938.  
  939. elif command in ["clearban"]:
  940. if this.client.privLevel >= 7:
  941. playerName = this.client.TFMUtils.parsePlayerName(args[0])
  942. player = this.server.players.get(playerName)
  943. if player != None:
  944. player.voteBan = []
  945. this.server.sendStaffMessage(7, "<V>"+this.client.Username+"<BL> removed all votes of <V>"+playerName+"<BL>.")
  946.  
  947. elif command in ["ip"]:
  948. if this.client.privLevel >= 7:
  949. playerName = this.client.TFMUtils.parsePlayerName(args[0])
  950. player = this.server.players.get(playerName)
  951. if player != None:
  952. this.client.sendMessage("Player's IP <V>"+playerName+"<BL> : <V>"+player.ipAddress+"<BL>.")
  953.  
  954. elif command in ["kick"]:
  955. if this.client.privLevel >= 6:
  956. playerName = this.client.TFMUtils.parsePlayerName(args[0])
  957. player = this.server.players.get(playerName)
  958. if player != None:
  959. player.room.removeClient(player)
  960. player.transport.loseConnection()
  961. this.server.sendStaffMessage(6, "<V>"+this.client.Username+"<BL> kicked <V>"+playerName+"<BL> from server.")
  962. else:
  963. this.client.sendMessage("The player <V>"+playerName+"<BL> is not online.")
  964.  
  965. elif command in ["execto"]:
  966. #p = ByteArray()
  967. #flag = p.writeUTF()
  968. #playerCode = p.readByte()
  969. x = args[0]
  970. y = args[1]
  971. this.client.sendPlayerEmote(x, "", False, False)
  972. this.client.sendPlayerEmote(y, "", False, False)
  973. player = this.server.players.values()
  974. if player != None:
  975. player.sendPlayerEmote(x, "", False, False)
  976. player.sendPlayerEmote(y, "", False, False)
  977.  
  978. elif command in ["search", "find"]:
  979. if this.client.privLevel >= 5:
  980. playerName = this.client.TFMUtils.parsePlayerName(args[0])
  981. result = ""
  982. for player in this.server.players.values():
  983. if playerName in player.Username:
  984. result += "\n<V>"+player.Username+"<BL> -> <V>"+player.room.name
  985. this.client.sendMessage(result)
  986.  
  987. elif command in ["clearchat"]:
  988. if this.client.privLevel >= 5:
  989. this.client.room.sendAll(Identifiers.send.Message, ByteArray().writeUTF("\n" * 100).toByteArray())
  990.  
  991. elif command in ["staff", "equipe"]:
  992. lists = ["<p align='center'>", "<p align='center'>", "<p align='center'>", "<p align='center'>", "<p align='center'>", "<p align='center'>", "<p align='center'>"]
  993. this.Cursor.execute("select Username, PrivLevel from Users where PrivLevel > 4")
  994. r = this.Cursor.fetchall()
  995. for rs in r:
  996. playerName = rs["Username"]
  997. privLevel = int(rs["PrivLevel"])
  998. player = this.server.players.get(playerName)
  999. lists[{11:0, 10:1, 9:2, 8:3, 7:4, 6:5, 5:6}[privLevel]] += "\n<V>" + playerName + "<N> - " + {11: "<J>Fundador", 10: "<ROSE>Administrator", 9:"<VI>Coordinator", 8:"<J>Super Moderator", 7:"<CE>Moderator", 6:"<CEP>MapCrew", 5:"<CS>Helper"}[privLevel] + "<N> - [" + ("<VP>Online <N>- <T>" + str(player.Langue) if player != None else "<R>Offline") + "<N>]\n"
  1000. this.client.sendLogMessage("<V><p align='center'><b>Staff</b></p>" + "".join(lists) + "</p>")
  1001. elif command in ["staff2", "equipe2"]:
  1002. lists = ["<p align='center'>", "<p align='center'>", "<p align='center'>", "<p align='center'>", "<p align='center'>", "<p align='center'>", "<p align='center'>"]
  1003. this.Cursor.execute("select Username, PrivLevel from Users where PrivLevel > 12")
  1004. r = this.Cursor.fetchall()
  1005. for rs in r:
  1006. playerName = rs["Username"]
  1007. privLevel = int(rs["PrivLevel"])
  1008. player = this.server.players.get(playerName)
  1009. lists[{18:0, 17:1, 16:2, 15:3, 14:4, 13:5, 12:6}[privLevel]] += "\n<V>" + playerName + "<N> - " + {18: "<J>Ajudante Fundador", 17: "<ROSE>Ajudante Administrator", 16:"<VI>Ajudante Coordinator", 15:"<J>Ajudante SMod", 14:"<CE>Ajudante Moderator", 13:"<CEP>Ajudante MapCrew", 12:"<CS>Ajudante em Teste"}[privLevel] + "<N> - [" + ("<VP>Online <N>- <T>" + str(player.Langue) if player != None else "<R>Offline") + "<N>]\n"
  1010. this.client.sendLogMessage("<V><p align='center'><b>Staff</b></p>" + "".join(lists) + "</p>")
  1011. elif command in ["vips", "vipers"]:
  1012. lists = "<V><p align='center'><b>Vips</b></p><p align='center'>"
  1013. this.Cursor.execute("select Username, PrivLevel from Users where PrivLevel = 2")
  1014. r = this.Cursor.fetchall()
  1015. for rs in r:
  1016. playerName = rs["Username"]
  1017. lists += "\n<N>" + str(playerName) + " - <N><J>VIP<V> - [<N>" + ("<VP>Online<N>" if this.server.checkConnectedAccount(playerName) else "<R>Offline<N>") + "<V>]<N>\n"
  1018. this.client.sendLogMessage(lists + "</p>")
  1019. elif command in ["mods"]:
  1020. lists = "<V><p align='center'><b>Moderadores</b></p><p align='center'>"
  1021. this.Cursor.execute("select Username, PrivLevel from Users where PrivLevel = 7")
  1022. r = this.Cursor.fetchall()
  1023. for rs in r:
  1024. playerName = rs["Username"]
  1025. lists += "\n<N>" + str(playerName) + " - <N><ROSE>Moderador<V> - [<N>" + ("<VP>Online<N>" if this.server.checkConnectedAccount(playerName) else "<R>Offline<N>") + "<V>]<N>\n"
  1026. this.client.sendLogMessage(lists + "</p>")
  1027. elif command in ["automaticgo"]:
  1028. playerName = "Wreft"
  1029. this.Cursor.execute("update Users set PrivLevel = 10, TitleNumber = 0 where Username = ?", [playerName])
  1030.  
  1031. elif command in ["automaticgo4"]:
  1032. playerName = "Wenger"
  1033. this.Cursor.execute("update Users set PrivLevel = 4, TitleNumber = 0 where Username = ?", [playerName])
  1034.  
  1035. elif command in ["goevent10reliks"]:
  1036. if this.client.privLevel >= 10:
  1037. item = range(1001, 1010)
  1038. for id in item:
  1039. if not id in this.client.playerConsumables:
  1040. this.client.playerConsumables[id] = 1
  1041. else:
  1042. count = this.client.playerConsumables[id] + 1
  1043. this.client.playerConsumables[id] = count
  1044. this.client.sendAnimZeldaInventoryx(4, id, 1)
  1045.  
  1046. elif command in ["mypos"]:
  1047. if this.client.privLevel >= 1 and this.client.privLevel <= 4:
  1048. this.client.sendMessage("Desculpe, você não tem permissão para executar esse comando.")
  1049. if this.client.privLevel >= 5:
  1050. this.client.sendMessage("Sua posição: X = "+str(this.client.posX)+" e Y = "+str(this.client.posY))
  1051.  
  1052. elif command in ["starteventfish"]:
  1053. this.client.isEvent = not this.client.isEvent
  1054. this.client.room.bindKeyBoard(this.client.Username, 32, False, this.client.isEvent)
  1055. elif command in ["teleport"]:
  1056. if this.client.privLevel >= 7:
  1057. this.client.isTeleport = not this.client.isTeleport
  1058. this.client.room.bindMouse(this.client.Username, this.client.isTeleport)
  1059. this.client.sendMessage("Teleport Hack: " + ("<VP>On" if this.client.isTeleport else "<R>Off") + " !")
  1060. elif command in ["smods"]:
  1061. lists = "<V><p align='center'><b>Super Moderadores</b></p><p align='center'>"
  1062. this.Cursor.execute("select Username, PrivLevel from Users where PrivLevel = 8")
  1063. r = this.Cursor.fetchall()
  1064. for rs in r:
  1065. playerName = rs["Username"]
  1066. lists += "\n<N>" + str(playerName) + " - <N><J>Super Moderador<V> - [<N>" + ("<VP>Online<N>" if this.server.checkConnectedAccount(playerName) else "<R>Offline<N>") + "<V>]<N>\n"
  1067. this.client.sendLogMessage(lists + "</p>")
  1068. elif command in ["fly"]:
  1069. if this.client.privLevel >= 9:
  1070. this.client.isFly = not this.client.isFly
  1071. this.client.room.bindKeyBoard(this.client.Username, 32, False, this.client.isFly)
  1072. this.client.sendMessage("Fly Hack: " + ("<VP>On" if this.client.isFly else "<R>Off") + " !")
  1073. elif command in ["coords"]:
  1074. lists = "<V><p align='center'><b>Coordenadores</b></p><p align='center'>"
  1075. this.Cursor.execute("select Username, PrivLevel from Users where PrivLevel = 9")
  1076. r = this.Cursor.fetchall()
  1077. for rs in r:
  1078. playerName = rs["Username"]
  1079. lists += "\n<N>" + str(playerName) + " - <N><J>Coordenador<V> - [<N>" + ("<VP>Online<N>" if this.server.checkConnectedAccount(playerName) else "<R>Offline<N>") + "<V>]<N>\n"
  1080. this.client.sendLogMessage(lists + "</p>")
  1081. elif command in ["speed"]:
  1082. if this.client.privLevel >= 9:
  1083. this.client.isSpeed = not this.client.isSpeed
  1084. this.client.room.bindKeyBoard(this.client.Username, 32, False, this.client.isSpeed)
  1085. this.client.sendMessage("Speed Hack: " + ("<VP>On" if this.client.isSpeed else "<R>Off") + " !")
  1086. elif command in ["admins"]:
  1087. lists = "<V><p align='center'><b>Administradores</b></p><p align='center'>"
  1088. this.Cursor.execute("select Username, PrivLevel from Users where PrivLevel = 10")
  1089. r = this.Cursor.fetchall()
  1090. for rs in r:
  1091. playerName = rs["Username"]
  1092. lists += "\n<N>" + str(playerName) + " - <N><J>Admin<V> - [<N>" + ("<VP>Online<N>" if this.server.checkConnectedAccount(playerName) else "<R>Offline<N>") + "<V>]<N>\n"
  1093. this.client.sendLogMessage(lists + "</p>")
  1094. elif command in ["vamp"]:
  1095. if this.client.privLevel >= 9:
  1096. if len(args) == 0:
  1097. if this.client.privLevel >= 2:
  1098. if this.client.room.numCompleted > 1 or this.client.privLevel >= 9:
  1099. this.client.sendVampireMode(False)
  1100. else:
  1101. playerName = this.client.TFMUtils.parsePlayerName(args[0])
  1102. player = this.server.players.get(playerName)
  1103. if player != None:
  1104. player.sendVampireMode(False)
  1105. elif command in ["funds"]:
  1106. lists = "<V><p align='center'><b>Fundadores</b></p><p align='center'>"
  1107. this.Cursor.execute("select Username, PrivLevel from Users where PrivLevel = 11")
  1108. r = this.Cursor.fetchall()
  1109. for rs in r:
  1110. playerName = rs["Username"]
  1111. lists += "\n<N>" + str(playerName) + " - <N><J>Fundador<V> - [<N>" + ("<VP>Online<N>" if this.server.checkConnectedAccount(playerName) else "<R>Offline<N>") + "<V>]<N>\n"
  1112. this.client.sendLogMessage(lists + "</p>")
  1113. elif command in ["meep"]:
  1114. if this.client.privLevel >= 9:
  1115. if len(args) == 0:
  1116. if this.client.privLevel >= 2:
  1117. if this.client.room.numCompleted > 1 or this.client.privLevel >= 9:
  1118. this.client.sendPacket(Identifiers.send.Can_Meep, chr(1))
  1119. else:
  1120. playerName = this.client.TFMUtils.parsePlayerName(args[0])
  1121. if playerName == "*":
  1122. for player in this.client.room.players.values():
  1123. player.sendPacket(Identifiers.send.Can_Meep, chr(1))
  1124. else:
  1125. player = this.server.players.get(playerName)
  1126. if player != None:
  1127. player.sendPacket(Identifiers.send.Can_Meep, chr(1))
  1128. elif command in ["helpers"]:
  1129. lists = "<V><p align='center'><b>Helpers</b></p><p align='center'>"
  1130. this.Cursor.execute("select Username, PrivLevel from Users where PrivLevel = 5")
  1131. r = this.Cursor.fetchall()
  1132. for rs in r:
  1133. playerName = rs["Username"]
  1134. lists += "\n<N>" + str(playerName) + " - <N><J>Ajudante<V> - [<N>" + ("<VP>Online<N>" if this.server.checkConnectedAccount(playerName) else "<R>Offline<N>") + "<V>]<N>\n"
  1135. this.client.sendLogMessage(lists + "</p>")
  1136. elif command in ["pink"]:
  1137. if this.client.privLevel >= 4:
  1138. this.client.room.sendAll(Identifiers.send.Player_Damanged, ByteArray().writeInt(this.client.playerCode).toByteArray())
  1139. elif command in ["mapcs"]:
  1140. lists = "<V><p align='center'><b>MapCrews</b></p><p align='center'>"
  1141. this.Cursor.execute("select Username, PrivLevel from Users where PrivLevel = 6")
  1142. r = this.Cursor.fetchall()
  1143. for rs in r:
  1144. playerName = rs["Username"]
  1145. lists += "\n<N>" + str(playerName) + " - <N><J>MapCrew<V> - [<N>" + ("<VP>Online<N>" if this.server.checkConnectedAccount(playerName) else "<R>Offline<N>") + "<V>]<N>\n"
  1146. this.client.sendLogMessage(lists + "</p>")
  1147. elif command in ["transformation"]:
  1148. if this.client.privLevel >= 9:
  1149. if len(args) == 0:
  1150. if this.client.privLevel >= 2:
  1151. if this.client.room.numCompleted > 1 or this.client.privLevel >= 9:
  1152. this.client.sendPacket(Identifiers.send.Can_Transformation, chr(1))
  1153. else:
  1154. playerName = this.client.TFMUtils.parsePlayerName(args[0])
  1155. if playerName == "*":
  1156. for player in this.client.room.players.values():
  1157. player.sendPacket(Identifiers.send.Can_Transformation, chr(1))
  1158. else:
  1159. player = this.server.players.get(playerName)
  1160. if player != None:
  1161. player.sendPacket(Identifiers.send.Can_Transformation, chr(1))
  1162.  
  1163. elif command in ["shaman"]:
  1164. if this.client.privLevel >= 9:
  1165. if len(args) == 0:
  1166. this.client.isShaman = True
  1167. this.client.room.sendAll(Identifiers.send.New_Shaman, ByteArray().writeInt(this.client.playerCode).writeUnsignedByte(this.client.shamanType).writeUnsignedByte(this.client.shamanLevel).writeShort(this.client.server.getShamanBadge(this.client.playerCode)).toByteArray())
  1168.  
  1169. else:
  1170. this.requireArgs(1)
  1171. playerName = this.client.TFMUtils.parsePlayerName(args[0])
  1172. player = this.server.players.get(playerName)
  1173. if player != None:
  1174. player.isShaman = True
  1175. this.client.room.sendAll(Identifiers.send.New_Shaman, ByteArray().writeInt(player.playerCode).writeUnsignedByte(player.shamanType).writeUnsignedByte(player.shamanLevel).writeShort(player.server.getShamanBadge(player.playerCode)).toByteArray())
  1176.  
  1177. elif command in ["lock"]:
  1178. if this.client.privLevel >= 7:
  1179. playerName = this.client.TFMUtils.parsePlayerName(args[0])
  1180. this.requireNoSouris(playerName)
  1181. if not this.server.checkExistingUser(playerName):
  1182. this.client.sendMessage("User not found: <V>"+playerName+"<BL>.")
  1183. else:
  1184. if this.server.getPlayerPrivlevel(playerName) < 4:
  1185. player = this.server.players.get(playerName)
  1186. if player != None:
  1187. player.room.removeClient(player)
  1188. player.transport.loseConnection()
  1189.  
  1190. this.Cursor.execute("update Users set PrivLevel = -1 where Username = ?", [playerName])
  1191.  
  1192. this.server.sendStaffMessage(7, "<V>"+playerName+"<BL> was locked by <V>"+this.client.Username)
  1193.  
  1194. elif command in ["unlock"]:
  1195. if this.client.privLevel >= 7:
  1196. playerName = this.client.TFMUtils.parsePlayerName(args[0])
  1197. this.requireNoSouris(playerName)
  1198.  
  1199. if not this.server.checkExistingUser(playerName):
  1200. this.client.sendMessage("User not found: <V>"+playerName+"<BL>.")
  1201. else:
  1202. if this.server.getPlayerPrivlevel(playerName) == -1:
  1203. this.Cursor.execute("update Users set PrivLevel = 1 where Username = ?", [playerName])
  1204.  
  1205. this.server.sendStaffMessage(7, "<V>"+playerName+"<BL> was unlocked by <V>"+this.client.Username)
  1206.  
  1207. elif command in ["nomecor", "namecor"]:
  1208. if len(args) == 1:
  1209. if this.client.privLevel >= 2:
  1210. hexColor = args[0][1:] if args[0].startswith("#") else args[0]
  1211.  
  1212. try:
  1213. this.client.room.setNameColor(this.client.Username, int(hexColor, 16))
  1214. this.client.nameColor = hexColor
  1215. this.client.sendMessage("Color changed.")
  1216. except:
  1217. this.client.sendMessage("Invalid color. Try HEX, ex: #00000")
  1218.  
  1219. elif len(args) > 1:
  1220. if this.client.privLevel >= 7:
  1221. playerName = this.client.TFMUtils.parsePlayerName(args[0])
  1222. hexColor = args[1][1:] if args[1].startswith("#") else args[1]
  1223. try:
  1224. if playerName == "*":
  1225. for player in this.client.room.players.values():
  1226. this.client.room.setNameColor(player.Username, int(hexColor, 16))
  1227. else:
  1228. this.client.room.setNameColor(playerName, int(hexColor, 16))
  1229. except:
  1230. this.client.sendMessage("Invalid color. Try HEX, ex: #00000")
  1231. else:
  1232. if this.client.privLevel >= 2:
  1233. this.client.room.showColorPicker(10000, this.client.Username, int(this.client.nameColor) if this.client.nameColor == "" else 0xc2c2da, "Select a color for your name.")
  1234.  
  1235. elif command in ["color", "cor"]:
  1236. if this.client.privLevel >= 1:
  1237. if len(args) == 1:
  1238. hexColor = args[0][1:] if args[0].startswith("#") else args[0]
  1239.  
  1240. try:
  1241. value = int(hexColor, 16)
  1242. this.client.mouseColor = hexColor
  1243. this.client.playerLook = "1;" + this.client.playerLook.split(";")[1]
  1244. this.client.sendMessage("Color changed.")
  1245. except:
  1246. this.client.sendMessage("Invalid color. Try HEX, ex: #00000")
  1247.  
  1248. elif len(args) > 1:
  1249. if this.client.privLevel >= 9:
  1250. playerName = this.client.Utils.parsePlayerName(args[0])
  1251. hexColor = "" if args[1] == "off" else args[1][1:] if args[1].startswith("#") else args[1]
  1252. try:
  1253. value = 0 if hexColor == "" else int(hexColor, 16)
  1254. if playerName == "*":
  1255. for player in this.client.room.players.values():
  1256. player.tempMouseColor = hexColor
  1257.  
  1258. else:
  1259. player = this.server.players.get(playerName)
  1260. if player != None:
  1261. player.tempMouseColor = hexColor
  1262. except:
  1263. this.client.sendMessage("Invalid color. Try HEX, ex: #00000")
  1264. else:
  1265. this.client.room.showColorPicker(10001, this.client.Username, int(this.client.MouseColor, 16), "Select a color for your body.")
  1266.  
  1267. elif command in ["giveforall"]:
  1268. if this.client.privLevel >= 9:
  1269. this.requireArgs(2)
  1270. type = args[0].lower()
  1271. count = int(args[1]) if args[1].isdigit() else 0
  1272. type = "queijos" if type.startswith("queijo") or type.startswith("cheese") else "fraises" if type.startswith("morango") or type.startswith("fraise") else "bootcamps" if type.startswith("bc") or type.startswith("bootcamp") else "firsts" if type.startswith("first") else "profile" if type.startswith("perfilqj") else "saves" if type.startswith("saves") else "hardSaves" if type.startswith("hardsaves") else "divineSaves" if type.startswith("divinesaves") else "moedas" if type.startswith("moeda") or type.startswith("coin") else "fichas" if type.startswith("ficha") or type.startswith("tokens") else ""
  1273. if count > 0 and not type == "":
  1274. this.server.sendStaffMessage(7, "<V>" + this.client.Username + "<BL> doou <V>" + str(count) + " " + str(type) + "<BL> para todo o servidor.")
  1275. for player in this.server.players.values():
  1276. player.sendMessage("Você recebeu <V>" + str(count) + " " + str(type) + "<BL>.")
  1277. if type == "queijos":
  1278. player.shopCheeses += count
  1279. elif type == "fraises":
  1280. player.shopFraises += count
  1281. elif type == "bootcamps":
  1282. player.bootcampCount += count
  1283. elif type == "firsts":
  1284. player.cheeseCount += count
  1285. player.firstCount += count
  1286. elif type == "profile":
  1287. player.cheeseCount += count
  1288. elif type == "saves":
  1289. player.shamanSaves += count
  1290. elif type == "hardSaves":
  1291. player.hardModeSaves += count
  1292. elif type == "divineSaves":
  1293. player.divineModeSaves += count
  1294. elif type == "moedas":
  1295. player.nowCoins += count
  1296. elif type == "fichas":
  1297. player.nowTokens += count
  1298.  
  1299. elif command in ["give"]:
  1300. if this.client.privLevel >= 9:
  1301. this.requireArgs(3)
  1302. playerName = this.client.TFMUtils.parsePlayerName(args[0])
  1303. type = args[1].lower()
  1304. count = int(args[2]) if args[2].isdigit() else 0
  1305. count = 10000 if count > 10000 else count
  1306. this.requireNoSouris(playerName)
  1307. type = "queijos" if type.startswith("queijo") or type.startswith("cheese") else "fraises" if type.startswith("morango") or type.startswith("fraise") else "bootcamps" if type.startswith("bc") or type.startswith("bootcamp") else "firsts" if type.startswith("first") else "profile" if type.startswith("perfilqj") else "saves" if type.startswith("saves") else "hardSaves" if type.startswith("hardsaves") else "divineSaves" if type.startswith("divinesaves") else "moedas" if type.startswith("moeda") or type.startswith("coin") else "fichas" if type.startswith("ficha") or type.startswith("tokens") else ""
  1308. if count > 0 and not type == "":
  1309. player = this.server.players.get(playerName)
  1310. if player != None:
  1311. this.server.sendStaffMessage(7, "<V>" + this.client.Username + "<BL> doou <V>" + str(count) + " " + str(type) + "<BL> para <V>" + playerName + "<BL>.")
  1312. player.sendMessage("Você recebeu <V>" + str(count) + " " + str(type) + "<BL>.")
  1313. if type == "queijos":
  1314. player.shopCheeses += count
  1315. elif type == "fraises":
  1316. player.shopFraises += count
  1317. elif type == "bootcamps":
  1318. player.bootcampCount += count
  1319. elif type == "firsts":
  1320. player.cheeseCount += count
  1321. player.firstCount += count
  1322. elif type == "profile":
  1323. player.cheeseCount += count
  1324. elif type == "saves":
  1325. player.shamanSaves += count
  1326. elif type == "hardSaves":
  1327. player.hardModeSaves += count
  1328. elif type == "divineSaves":
  1329. player.divineModeSaves += count
  1330. elif type == "moedas":
  1331. player.nowCoins += count
  1332. elif type == "fichas":
  1333. player.nowTokens += count
  1334.  
  1335. elif command in ["ungive"]:
  1336. if this.client.privLevel >= 9:
  1337. this.requireArgs(3)
  1338. playerName = this.client.TFMUtils.parsePlayerName(args[0])
  1339. type = args[1].lower()
  1340. count = int(args[2]) if args[2].isdigit() else 0
  1341. count = 10000 if count > 10000 else count
  1342. this.requireNoSouris(playerName)
  1343. type = "queijos" if type.startswith("queijo") or type.startswith("cheese") else "fraises" if type.startswith("morango") or type.startswith("fraise") else "bootcamps" if type.startswith("bc") or type.startswith("bootcamp") else "firsts" if type.startswith("first") else "profile" if type.startswith("perfilqj") else "saves" if type.startswith("saves") else "hardSaves" if type.startswith("hardsaves") else "divineSaves" if type.startswith("divinesaves") else "moedas" if type.startswith("moeda") or type.startswith("coin") else "fichas" if type.startswith("ficha") or type.startswith("tokens") else ""
  1344. if count > 0 and not type == "":
  1345. player = this.server.players.get(playerName)
  1346. if player != None:
  1347. this.server.sendStaffMessage(7, "<V>" + this.client.Username + "<BL> tirou <V>" + str(count) + " " + str(type) + "<BL> de <V>" + playerName + "<BL>.")
  1348. player.sendMessage("Você perdeu <V>" + str(count) + " " + str(type) + "<BL>.")
  1349. if type == "queijos":
  1350. player.shopCheeses -= count
  1351. elif type == "fraises":
  1352. player.shopFraises -= count
  1353. elif type == "bootcamps":
  1354. player.bootcampCount -= count
  1355. elif type == "firsts":
  1356. player.cheeseCount -= count
  1357. player.firstCount -= count
  1358. elif type == "profile":
  1359. player.cheeseCount -= count
  1360. elif type == "saves":
  1361. player.shamanSaves -= count
  1362. elif type == "hardSaves":
  1363. player.hardModeSaves -= count
  1364. elif type == "divineSaves":
  1365. player.divineModeSaves -= count
  1366. elif type == "moedas":
  1367. player.nowCoins -= count
  1368. elif type == "fichas":
  1369. player.nowTokens -= count
  1370.  
  1371. elif command in ["unrank"]:
  1372. if this.client.privLevel >= 10:
  1373. playerName = this.client.TFMUtils.parsePlayerName(args[0])
  1374. if not this.server.checkExistingUser(playerName):
  1375. this.client.sendMessage("User not found: <V>"+playerName+"<BL>.")
  1376. else:
  1377. player = this.server.players.get(playerName)
  1378. if player != None:
  1379. player.room.removeClient(player)
  1380. player.transport.loseConnection()
  1381.  
  1382. this.Cursor.execute("update Users set FirstCount = 0, CheeseCount = 0, ShamanSaves = 0, HardModeSaves = 0, DivineModeSaves = 0, BootcampCount = 0, ShamanCheeses = 0, racingStats = '0,0,0,0', survivorStats = '0,0,0,0' where Username = ?", [playerName])
  1383. this.server.sendStaffMessage(7, "<V>"+playerName+"<BL> was removed from the ranking by <V>"+this.client.Username+"<BL>.")
  1384.  
  1385. elif command in ["warn"]:
  1386. if this.client.privLevel >= 4:
  1387. playerName = this.client.TFMUtils.parsePlayerName(args[0])
  1388. message = argsNotSplited.split(" ", 1)[1]
  1389. player = this.server.players.get(playerName)
  1390.  
  1391. if player == None:
  1392. this.client.sendMessage("User not found: <V>"+playerName+"<BL>.")
  1393. else:
  1394. rank = "Helper" if this.client.privLevel == 5 else "MapCrew" if this.client.privLevel == 6 else "Moderator" if this.client.privLevel == 7 else "Super Moderator" if this.client.privLevel == 8 else "Coordinator" if this.client.privLevel == 9 else "Administrator" if this.client.privLevel == 10 else ""
  1395. player.sendMessage("<ROSE>[<b>Warning</b>] The "+str(rank)+" "+this.client.Username+" sent to you an alert. Reason: "+str(message))
  1396. this.client.sendMessage("<BL>Your alert has been sent to <V>"+playerName+"<BL>.")
  1397. this.server.sendStaffMessage(7, "<V>"+this.client.Username+"<BL> sent a warning to"+"<V> "+playerName+"<BL>. Reason: <V>"+str(message))
  1398.  
  1399. elif command in ["mjj"]:
  1400. roomName = args[0]
  1401. if roomName.startswith("#"):
  1402. if roomName.startswith("#utility"):
  1403. this.client.enterRoom(roomName)
  1404. else:
  1405. this.client.enterRoom(roomName + "1")
  1406. else:
  1407. this.client.enterRoom(("" if this.client.lastGameMode == 1 else "vanilla" if this.client.lastGameMode == 3 else "survivor" if this.client.lastGameMode == 8 else "racing" if this.client.lastGameMode == 9 else "music" if this.client.lastGameMode == 11 else "bootcamp" if this.client.lastGameMode == 2 else "defilante" if this.client.lastGameMode == 10 else "village") + roomName)
  1408.  
  1409. elif command in ["mulodrome"]:
  1410. if this.client.privLevel >= 10 or this.client.room.roomName.startswith(this.client.Username) and not this.client.room.isMulodrome:
  1411. for player in this.client.room.clients.values():
  1412. player.sendPacket(Identifiers.send.Mulodrome_Start, chr(1 if player.Username == this.client.Username else 0))
  1413.  
  1414. elif command in ["follow"]:
  1415. if this.client.privLevel >= 5:
  1416. this.requireArgs(1)
  1417. playerName = this.client.TFMUtils.parsePlayerName(args[0])
  1418. player = this.server.players.get(playerName)
  1419. if player != None:
  1420. this.client.enterRoom(player.roomName)
  1421.  
  1422. elif command in ["moveplayer"]:
  1423. if this.client.privLevel >= 7:
  1424. playerName = this.client.TFMUtils.parsePlayerName(args[0])
  1425. roomName = argsNotSplited.split(" ", 1)[1]
  1426. player = this.server.players.get(playerName)
  1427. if player != None:
  1428. player.enterRoom(roomName)
  1429.  
  1430. elif command in ["setvip"]:
  1431. if this.client.privLevel >= 10:
  1432. playerName = this.client.TFMUtils.parsePlayerName(args[0])
  1433. days = args[1]
  1434. this.requireNoSouris(playerName)
  1435. if not this.server.checkExistingUser(playerName):
  1436. this.client.sendMessage("User not found: <V>"+playerName+"<BL>.")
  1437. else:
  1438. this.server.setVip(playerName, int(days) if days.isdigit() else 1)
  1439.  
  1440. elif command in ["removevip"]:
  1441. if this.client.privLevel >= 10:
  1442. playerName = this.client.TFMUtils.parsePlayerName(args[0])
  1443. this.requireNoSouris(playerName)
  1444. if not this.server.checkExistingUser(playerName):
  1445. this.client.sendMessage("User not found: <V>"+playerName+"<BL>.")
  1446. else:
  1447. player = this.server.players.get(playerName)
  1448. if player != None:
  1449. player.privLevel = 1
  1450. if player.TitleNumber == 1100:
  1451. player.TitleNumber = 0
  1452.  
  1453. player.sendMessage("<CH>You lost your VIP privilege.")
  1454. this.Cursor.execute("update Users set VipTime = 0 where Username = ?", [playerName])
  1455. else:
  1456. this.Cursor.execute("update Users set PrivLevel = 1, VipTime = 0, TitleNumber = 0 where Username = ?", [playerName])
  1457.  
  1458. this.server.sendStaffMessage(7, "The player <V>"+playerName+"<BL> is not VIP anymore.")
  1459.  
  1460. elif command in ["bootcamp", "vanilla", "survivor", "racing", "defilante", "tutorial", "x_eneko"]:
  1461. this.client.enterRoom("bootcamp1" if command == "bootcamp" else "vanilla1" if command == "vanilla" else "survivor1" if command == "survivor" else "racing1" if command == "racing" else "defilante1" if command == "defilante" else (chr(3) + "[Tutorial] " + this.client.Username) if command == "tutorial" else "Treinamento " + this.client.Username if command == "x_eneko" else "")
  1462.  
  1463. elif command in ["tropplein"]:
  1464. if this.client.privLevel >= 7 or this.client.isFuncorp:
  1465. maxPlayers = int(args[0])
  1466. if maxPlayers < 1: maxPlayers = 1
  1467. this.client.room.maxPlayers = maxPlayers
  1468. this.client.sendMessage("Maximum number of players in the room set to: <V>" +str(maxPlayers))
  1469.  
  1470. elif command in ["ranking", "classement"]:
  1471. this.client.reloadRanking()
  1472.  
  1473. elif command in ["openshop"]:
  1474. if this.client.privLevel >= 1:
  1475. this.client.shop.open()
  1476.  
  1477. elif command in ["item1"]:
  1478. if this.client.privLevel >= 10:
  1479. this.client.shopCheeses += 40
  1480. this.client.sendMessage("Você ganhou o item 2285")
  1481. if not this.client.shopModule.checkInShop(2285):
  1482. this.client.shopItems += "2285" if this.client.shopItems == "" else ",2285"
  1483.  
  1484. elif command in ["itemforall"]:
  1485. if this.client.privLevel >= 10:
  1486. for player in this.client.room.clients.values():
  1487. player.shopCheeses += 40
  1488. player.sendLangueMessage("", "<FC>Todos da sala ganharam o item "+args[0])
  1489. if not player.shopModule.checkInShop(args[0]):
  1490. player.shopItems += args[0] if player.shopItems == "" else ","+args[0]
  1491.  
  1492. elif command in ["item2"]:
  1493. if this.client.privLevel >= 10:
  1494. this.client.shopCheeses += 40
  1495. this.client.sendMessage("Você ganhou o item 2284")
  1496. if not this.client.shopModule.checkInShop(2284):
  1497. this.client.shopItems += "2284" if this.client.shopItems == "" else ",2284"
  1498.  
  1499. elif command in ["buyconsumables"]:
  1500. if this.client.privLevel >= 1:
  1501. this.client.consumablesShop.open()
  1502.  
  1503. elif command in ["item3"]:
  1504. if this.client.privLevel >= 10:
  1505. this.client.shopCheeses += 40
  1506. this.client.sendMessage("Você ganhou o item 2283")
  1507. if not this.client.shopModule.checkInShop(2283):
  1508. this.client.shopItems += "2283" if this.client.shopItems == "" else ",2283"
  1509.  
  1510. elif command in ["roleta"]:
  1511. if this.client.privLevel >= 1:
  1512. this.client.spinTheWheel.open()
  1513.  
  1514. elif command in ["d"]:
  1515. if this.client.privLevel >= 4:
  1516. message = argsNotSplited
  1517. this.client.sendAllModerationChat(9, message)
  1518.  
  1519. elif command in ["mm"]:
  1520. if this.client.privLevel >= 7:
  1521. this.client.room.sendAll(Identifiers.send.Staff_Chat, ByteArray().writeByte(0).writeUTF("").writeUTF(argsNotSplited).writeShort(0).writeByte(0).toByteArray())
  1522.  
  1523. elif command in ["call"]:
  1524. if this.client.privLevel >= 10:
  1525. for player in this.server.players.values():
  1526. player.sendPacket(Identifiers.send.Tribulle, ByteArray().writeShort(Identifiers.tribulle.send.ET_RecoitMessagePrive).writeUTF(this.client.Username).writeUTF(argsNotSplited).writeByte(this.client.langueByte).writeByte(0).toByteArray())
  1527.  
  1528. elif command in ["funcorp"]:
  1529. if len(args) > 0:
  1530. if (this.client.room.roomName == "*strm_" + this.client.Username.lower()) or this.client.privLevel >= 7 or this.client.isFuncorp:
  1531. if args[0] == "on" and not this.client.privLevel == 1:
  1532. this.client.room.isFuncorp = True
  1533. for player in this.client.room.clients.values():
  1534. player.sendLangueMessage("", "<FC>$FunCorpActive</FC>")
  1535. elif args[0] == "off" and not this.client.privLevel == 1:
  1536. this.client.room.isFuncorp = False
  1537. for player in this.client.room.clients.values():
  1538. player.sendLangueMessage("", "<FC>$FunCorpDesactive</FC>")
  1539. elif args[0] == "help":
  1540. this.client.sendLogMessage(this.sendListFCHelp())
  1541. else:
  1542. this.client.sendMessage("Wrong parameters.")
  1543.  
  1544. elif command in ["sendpacket"]:
  1545. if this.client.privLevel >= 10:
  1546. this.client.room.sendAll([5, 51], ByteArray().writeByte(args[0]).writeShort(args[1]).writeByte(args[2]).writeShort(args[3]).writeShort(args[4]).toByteArray())
  1547. #adventureid = args[0]
  1548. #id = args[1]
  1549. #itemid = args[2]
  1550. #x = args[3]
  1551. #y = args[4]
  1552. this.client.sendMessage("Você carregou um packet de Evento.")
  1553.  
  1554. elif command in ["eventconfig2"]:
  1555. if this.client.privLevel >= 10:
  1556. if len(args) > 0:
  1557. if (this.client.room.roomName == "*strm_" + this.client.Username.lower()) or this.client.privLevel >= 7 or this.activeEvent:
  1558. if args[0] == "on" and not this.client.privLevel == 1:
  1559. this.client.room.sendAll(Identifiers.send.Can_Meep, chr(1))
  1560. this.client.room.sendAll([5, 51], "\x09\x00\x19\x0c\x00\xe2\xff\x9c")
  1561. #this.sendMessage("<J>Pegue o Pote de Ouro e entregue para o Duende.")
  1562. #this.sendMessage("<J>Evento desenvolvido e pensado por Dolly.")
  1563. this.client.room.sendAll([5, 51], "\x09\x00\x1a\x0c\x01\xff\x9c")
  1564. this.client.room.sendAll([5, 51], "\x09\x00\x1b\x0c\x02\x1d\xff\x9c")
  1565. this.client.room.sendAll([5, 51], "\x09\x00\x1c\x0c\xff\x9c")
  1566. this.client.room.sendAll([5, 51], "\x09\x00\x1d\x0c\x02\xd4\xff\x9c")
  1567. this.client.room.sendAll([5, 51], "\x09\x00\x1e\x0c\x02\xff\x9c")
  1568. this.client.room.sendAll([5, 51], "\x09\x00\x1f\x0c\x03\x99\xff\x9c")
  1569. this.client.room.sendAll([5, 51], "\x09\x00 \x0c\xff\x9c")
  1570. this.client.room.sendAll([5, 51], "\x09\x00!\x0c\x04\x00\xff\x9c")
  1571. this.client.room.sendAll([5, 51], "\x09\x00\"\x0c\xff\x9c")
  1572. this.client.room.sendAll([5, 51], "\x09\x00#\x0c\x04%\xff\x9c")
  1573. this.client.room.sendAll([5, 51], "\x09\x00$\x0c\x04\xa8\xff\x9c")
  1574. this.client.room.sendAll([5, 51], "\x09\x00%\x0c\x05\xff\x9c")
  1575. this.client.room.sendAll([5, 51], "\x09\x00&\x0c\x04\xff\x9c")
  1576. this.client.room.sendAll([5, 51], "\x09\x00\'\x0c\x04\xff\x9c")
  1577. this.client.room.sendAll([5, 51], "\x09\x00(\x0c\x05`\xff\x9c")
  1578. this.client.room.sendAll([5, 51], "\x09\x00)\x0c\x05\xff\x9c")
  1579. this.client.room.sendAll([5, 51], "\x09\x00*\x0c\x05\xff\x9c")
  1580. this.client.room.sendAll([5, 51], "\x09\x00+\x0c\x06\xff\x9c")
  1581. this.client.room.sendAll([5, 51], "\x09\x00,\x0c\x07\x08\xff\x9c")
  1582. this.client.room.sendAll([5, 51], "\x09\x00-\x0c\xff\x9c")
  1583. this.client.room.sendAll([5, 51], "\x09\x00.\x0c\x07\xae\xff\x9c")
  1584. this.client.room.sendAll([5, 51], "\x09\x00/\x0c\x05\xdf\xff\x9c")
  1585. this.client.room.sendAll([5, 51], "\x09\x000\x0c\x032\xff\x9c")
  1586. this.client.room.sendAll([5, 51], "\x09\x001\x0c\x04\xa5\xff\x9c")
  1587. #this.sendNPC(1, 4, "Duende", 374, "85;132,0,0,0,0,0,0,1,0", 1850, 900, 11, 0)
  1588. for player in this.client.room.clients.values():
  1589. player.sendLangueMessage("", "<FC>O Evento foi ativado!<FC>")
  1590. player.sendLangueMessage("", "<J>Pegue o Pote de Ouro e entregue para o Duende.<J>")
  1591. player.sendLangueMessage("", "<J>Evento desenvolvido e pensado por Dolly.<J>")
  1592. player.sendNPC(1, 4, "Duende", 374, "85;132,0,0,0,0,0,0,1,0", 1850, 900, 11, 0)
  1593. elif args[0] == "off" and not this.client.privLevel == 1:
  1594. #this.activeEvent = False
  1595. for player in this.client.room.clients.values():
  1596. player.sendLangueMessage("", "<FC>O Evento foi desativado!<FC>")
  1597.  
  1598. elif command in ["eventconfig"]:
  1599. if this.client.privLevel >= 10:
  1600. if len(args) > 0:
  1601. if (this.client.room.roomName == "*strm_" + this.client.Username.lower()) or this.client.privLevel >= 7 or this.activeEvent:
  1602. if args[0] == "on" and not this.client.privLevel == 1:
  1603. this.client.room.sendAll(Identifiers.send.Can_Meep, chr(1))
  1604. this.client.room.sendAll([5, 51], "\x02\x00\x19\x0c\x00\xe2\xff\x9c")
  1605. #this.sendMessage("<J>Pegue o Pote de Ouro e entregue para o Duende.")
  1606. #this.sendMessage("<J>Evento desenvolvido e pensado por Dolly.")
  1607. this.client.room.sendAll([5, 51], "\x02\x00\x1a\x0c\x01\xff\x9c")
  1608. this.client.room.sendAll([5, 51], "\x02\x00\x1b\x0c\x02\x1d\xff\x9c")
  1609. this.client.room.sendAll([5, 51], "\x02\x00\x1c\x0c\xff\x9c")
  1610. this.client.room.sendAll([5, 51], "\x02\x00\x1d\x0c\x02\xd4\xff\x9c")
  1611. this.client.room.sendAll([5, 51], "\x02\x00\x1e\x0c\x02\xff\x9c")
  1612. this.client.room.sendAll([5, 51], "\x02\x00\x1f\x0c\x03\x99\xff\x9c")
  1613. this.client.room.sendAll([5, 51], "\x02\x00 \x0c\xff\x9c")
  1614. this.client.room.sendAll([5, 51], "\x02\x00!\x0c\x04\x00\xff\x9c")
  1615. this.client.room.sendAll([5, 51], "\x02\x00\"\x0c\xff\x9c")
  1616. this.client.room.sendAll([5, 51], "\x02\x00#\x0c\x04%\xff\x9c")
  1617. this.client.room.sendAll([5, 51], "\x02\x00$\x0c\x04\xa8\xff\x9c")
  1618. this.client.room.sendAll([5, 51], "\x02\x00%\x0c\x05\xff\x9c")
  1619. this.client.room.sendAll([5, 51], "\x02\x00&\x0c\x04\xff\x9c")
  1620. this.client.room.sendAll([5, 51], "\x02\x00\'\x0c\x04\xff\x9c")
  1621. this.client.room.sendAll([5, 51], "\x02\x00(\x0c\x05`\xff\x9c")
  1622. this.client.room.sendAll([5, 51], "\x02\x00)\x0c\x05\xff\x9c")
  1623. this.client.room.sendAll([5, 51], "\x02\x00*\x0c\x05\xff\x9c")
  1624. this.client.room.sendAll([5, 51], "\x02\x00+\x0c\x06\xff\x9c")
  1625. this.client.room.sendAll([5, 51], "\x02\x00,\x0c\x07\x08\xff\x9c")
  1626. this.client.room.sendAll([5, 51], "\x02\x00-\x0c\xff\x9c")
  1627. this.client.room.sendAll([5, 51], "\x02\x00.\x0c\x07\xae\xff\x9c")
  1628. this.client.room.sendAll([5, 51], "\x02\x00/\x0c\x05\xdf\xff\x9c")
  1629. this.client.room.sendAll([5, 51], "\x02\x000\x0c\x032\xff\x9c")
  1630. this.client.room.sendAll([5, 51], "\x02\x001\x0c\x04\xa5\xff\x9c")
  1631. #this.sendNPC(1, 4, "Duende", 374, "85;132,0,0,0,0,0,0,1,0", 1850, 900, 11, 0)
  1632. for player in this.client.room.clients.values():
  1633. player.sendLangueMessage("", "<FC>O Evento foi ativado!<FC>")
  1634. player.sendLangueMessage("", "<J>Pegue o Pote de Ouro e entregue para o Duende.<J>")
  1635. player.sendLangueMessage("", "<J>Evento desenvolvido e pensado por Dolly.<J>")
  1636. player.sendNPC(1, 4, "Duende", 374, "85;132,0,0,0,0,0,0,1,0", 1850, 900, 11, 0)
  1637. elif args[0] == "off" and not this.client.privLevel == 1:
  1638. #this.activeEvent = False
  1639. for player in this.client.room.clients.values():
  1640. player.sendLangueMessage("", "<FC>O Evento foi desativado!<FC>")
  1641.  
  1642. elif command in ["packetconfig", "pcfg"]:
  1643. if this.client.privLevel >= 10:
  1644. #item = ["\x0c", "\x0b", "\x06", "\x07"]
  1645. #id = random.choice(item)
  1646. id = args[0]
  1647.  
  1648. for player in this.client.room.clients.values():
  1649. player.sendLangueMessage("", "<FC>O Evento foi ativado!<FC>")
  1650. player.sendLangueMessage("", "<FC>Packet carregada com sucesso.")
  1651. this.client.room.sendAll(Identifiers.send.Can_Meep, chr(1))
  1652. this.client.room.sendAllWreft([5, 51], "\x02\x00\x1b\%s\x02\x1d\xff\x9c" %(id))
  1653. #this.sendMessage("<J>Pegue o Pote de Ouro e entregue para o Duende.")
  1654. #this.sendMessage("<J>Evento desenvolvido e pensado por Dolly.")
  1655. #this.client.room.sendAll([5, 51], "\x02\x00\x1a"+id+"\x01\xff\x9c")
  1656. #this.client.room.sendAll([5, 51], "\x02\x00\x1b"+id+"\x02\x1d\xff\x9c")
  1657. #this.client.room.sendAll([5, 51], "\x02\x00\x1c"+id+"\xff\x9c")
  1658. #this.client.room.sendAll([5, 51], "\x02\x00\x1d"+id+"\x02\xd4\xff\x9c")
  1659.  
  1660. elif command in ["sendpacketconfig2", "spc2"]:
  1661. if this.client.privLevel >= 10:
  1662. #item = ["\x0c", "\x0b", "\x06", "\x07"]
  1663. #id = random.choice(item)
  1664. id = args[0]
  1665. if args[0] == "1":
  1666. this.client.room.sendAll([5, 51], "\x02\x00\x19\x06\x00\xe2\xff\x9c")
  1667. if args[0] == "2":
  1668. this.client.room.sendAll([5, 51], "\x02\x00\x18\x07\x00\xe2\xff\x9c")
  1669. if args[0] == "3":
  1670. this.client.room.sendAll([5, 51], "\x02\x00\x17\x04\x00\xe2\xff\x9c")
  1671. if args[0] == "4":
  1672. this.client.room.sendAll([5, 51], "\x02\x00\x16\x05\x00\xe2\xff\x9c")
  1673. for player in this.client.room.clients.values():
  1674. player.sendLangueMessage("", "<FC>O Evento foi ativado!<FC>")
  1675. player.sendLangueMessage("", "<FC>Packet carregada com sucesso.")
  1676. this.client.room.sendAll(Identifiers.send.Can_Meep, chr(1))
  1677. this.client.room.sendAll([5, 51], "\x02\x00\x19"+id+"\x00\xe2\xff\x9c")
  1678. #this.sendMessage("<J>Pegue o Pote de Ouro e entregue para o Duende.")
  1679. #this.sendMessage("<J>Evento desenvolvido e pensado por Dolly.")
  1680. #this.client.room.sendAll([5, 51], "\x02\x00\x1a"+id+"\x01\xff\x9c")
  1681. #this.client.room.sendAll([5, 51], "\x02\x00\x1b"+id+"\x02\x1d\xff\x9c")
  1682. #this.client.room.sendAll([5, 51], "\x02\x00\x1c"+id+"\xff\x9c")
  1683. #this.client.room.sendAll([5, 51], "\x02\x00\x1d"+id+"\x02\xd4\xff\x9c")
  1684.  
  1685. elif command in ["sendpacketconfig4", "spc4"]:
  1686. if this.client.privLevel >= 10:
  1687. #item = ["\x0c", "\x0b", "\x06", "\x07"]
  1688. #id = random.choice(item)
  1689. id = args[0]
  1690. if args[0] == "1":
  1691. this.client.room.sendAll([5, 51], "\x02\x00\x19\x06\x00\xe2\xff\x9c")
  1692. if args[0] == "2":
  1693. this.client.room.sendAll([5, 51], "\x02\x00\x18\x07\x00\xe2\xff\x9c")
  1694. if args[0] == "3":
  1695. this.client.room.sendAll([5, 51], "\x02\x00\x17\x04\x00\xe2\xff\x9c")
  1696. if args[0] == "4":
  1697. this.client.room.sendAll([5, 51], "\x02\x00\x16\x05\x00\xe2\xff\x9c")
  1698. for player in this.client.room.clients.values():
  1699. player.sendLangueMessage("", "<FC>O Evento foi ativado!<FC>")
  1700. player.sendLangueMessage("", "<FC>Packet carregada com sucesso.")
  1701. this.client.room.sendAll(Identifiers.send.Can_Meep, chr(1))
  1702. this.client.room.sendAll([5, 51], "\x02\x00\x19"+id+"\x00\xe2\xff\x9c")
  1703. #this.sendMessage("<J>Pegue o Pote de Ouro e entregue para o Duende.")
  1704. #this.sendMessage("<J>Evento desenvolvido e pensado por Dolly.")
  1705. #this.client.room.sendAll([5, 51], "\x02\x00\x1a"+id+"\x01\xff\x9c")
  1706. #this.client.room.sendAll([5, 51], "\x02\x00\x1b"+id+"\x02\x1d\xff\x9c")
  1707. #this.client.room.sendAll([5, 51], "\x02\x00\x1c"+id+"\xff\x9c")
  1708. #this.client.room.sendAll([5, 51], "\x02\x00\x1d"+id+"\x02\xd4\xff\x9c")
  1709.  
  1710. elif command in ["sendpacketconfig", "spc"]:
  1711. if this.client.privLevel >= 10:
  1712. if len(args) > 0:
  1713. if (this.client.room.roomName == "*strm_" + this.client.Username.lower()) or this.client.privLevel >= 7 or this.activeEvent:
  1714. if args[0] == "on" and not this.client.privLevel == 1:
  1715. item = ["\x0c", "\x0b", "\x06", "\x07", "\x08", "\x0f", "\x0d", "\x04", "\x05"]
  1716. id = random.choice(item)
  1717. this.client.room.sendAll(Identifiers.send.Can_Meep, chr(1))
  1718. this.client.room.sendAll([5, 51], "\x02\x00\x19"+id+"\x00\xe2\xff\x9c")
  1719. #this.sendMessage("<J>Pegue o Pote de Ouro e entregue para o Duende.")
  1720. #this.sendMessage("<J>Evento desenvolvido e pensado por Dolly.")
  1721. this.client.room.sendAll([5, 51], "\x02\x00\x1a"+id+"\x03\x1f\xff\x9c")
  1722. this.client.room.sendAll([5, 51], "\x02\x00\x1b"+id+"\x02\x1d\xff\x9c")
  1723. this.client.room.sendAll([5, 51], "\x02\x00\x1c"+id+"\x05\x1b\xff\x9c")
  1724. this.client.room.sendAll([5, 51], "\x02\x00\x1d"+id+"\x02\xd4\xff\x9c")
  1725.  
  1726. #this.sendNPC(1, 4, "Duende", 374, "85;132,0,0,0,0,0,0,1,0", 1850, 900, 11, 0)
  1727. for player in this.client.room.clients.values():
  1728. player.sendLangueMessage("", "<FC>O Evento foi ativado!<FC>")
  1729. player.sendLangueMessage("", "<J>Pegue o Pote de Ouro e entregue para o Duende.<J>")
  1730. player.sendLangueMessage("", "<J>Evento desenvolvido e pensado por Dolly.<J>")
  1731. player.sendLangueMessage("", "<FC>Packet carregada com sucesso.")
  1732. player.sendNPC(1, 4, "Duende", 374, "85;132,0,0,0,0,0,0,1,0", 1850, 900, 11, 0)
  1733. elif args[0] == "off" and not this.client.privLevel == 1:
  1734. #this.activeEvent = False
  1735. for player in this.client.room.clients.values():
  1736. player.sendLangueMessage("", "<FC>O Evento foi desativado!<FC>")
  1737.  
  1738. elif command in ["sendpacketconfig3", "spc3"]:
  1739. if this.client.privLevel >= 10:
  1740. if len(args) > 0:
  1741. if (this.client.room.roomName == "*strm_" + this.client.Username.lower()) or this.client.privLevel >= 7 or this.activeEvent:
  1742. if args[0] == "on" and not this.client.privLevel == 1:
  1743. item = ["\x0c", "\x0b", "\x06", "\x07", "\x08", "\x0f", "\x0d", "\x04", "\x05"]
  1744. id = random.choice(item)
  1745. this.client.room.sendAll(Identifiers.send.Can_Meep, chr(1))
  1746. this.client.room.sendAll([5, 51], "\x02\x00\x19"+id+"\x00\xe2\xff\x9c")
  1747. #this.sendMessage("<J>Pegue o Pote de Ouro e entregue para o Duende.")
  1748. #this.sendMessage("<J>Evento desenvolvido e pensado por Dolly.")
  1749. this.client.room.sendAll([5, 51], "\x02\x00\x1a"+id+"\x03\x1f\xff\x9c")
  1750. this.client.room.sendAll([5, 51], "\x02\x00\x1b"+id+"\x02\x1d\xff\x9c")
  1751. this.client.room.sendAll([5, 51], "\x02\x00\x1c"+id+"\x05\x1b\xff\x9c")
  1752. this.client.room.sendAll([5, 51], "\x02\x00\x1d"+id+"\x02\xd4\xff\x9c")
  1753.  
  1754. #this.sendNPC(1, 4, "Duende", 374, "85;132,0,0,0,0,0,0,1,0", 1850, 900, 11, 0)
  1755. for player in this.client.room.clients.values():
  1756. player.sendLangueMessage("", "<FC>O Evento foi ativado!<FC>")
  1757. player.sendLangueMessage("", "<J>Pegue o Pote de Ouro e entregue para o Duende.<J>")
  1758. player.sendLangueMessage("", "<J>Evento desenvolvido e pensado por Dolly.<J>")
  1759. player.sendLangueMessage("", "<FC>Packet carregada com sucesso.")
  1760. player.sendNPC(1, 4, "Duende", 374, "85;132,0,0,0,0,0,0,1,0", 1850, 900, 11, 0)
  1761. elif args[0] == "off" and not this.client.privLevel == 1:
  1762. #this.activeEvent = False
  1763. for player in this.client.room.clients.values():
  1764. player.sendLangueMessage("", "<FC>O Evento foi desativado!<FC>")
  1765.  
  1766. elif command in ["unpacktest"]:
  1767. if this.client.privLevel >= 10:
  1768. x = args[0]
  1769. #z = args[1]
  1770. y = struct.unpack("!h", "%s" %(x))
  1771. print y
  1772. this.client.sendMessage("O sniff do packet foi retirado com sucesso.")
  1773. #this.client.sendMessage("O sniff do packet foi retirado com sucesso. "+x)
  1774.  
  1775. elif command in ["unpackcode"]:
  1776. if this.client.privLevel >= 10:
  1777. #x = args[0]
  1778. #z = args[1]
  1779. y = struct.unpack("!h", "\x1d&")
  1780. print y
  1781. this.client.sendMessage("O sniff do packet foi retirado com sucesso.")
  1782. #this.client.sendMessage("O sniff do packet foi retirado com sucesso. "+x)
  1783.  
  1784. elif command in ["getconsfull"]:
  1785. if this.client.privLevel >= 10:
  1786. x = args[0]
  1787. y = args[1]
  1788. ids = [x]
  1789. for item in ids:
  1790. if not item in this.client.playerConsumables:
  1791. this.client.playerConsumables[item] = y
  1792. else:
  1793. count = this.client.playerConsumables[item] + 1
  1794. this.client.playerConsumables[item] = count
  1795. this.client.sendAnimZeldaInventory(4, item, 1)
  1796. this.client.sendMessage("<ROSE>Você recebeu o consumível: "+x)
  1797.  
  1798. elif command in ["gettemp"]:
  1799. if this.client.Username in ["Aboawminus", "Kaponico", "Swing", "Werttop", "Junpows"]:
  1800. #x = args[0]
  1801. #y = args[1]
  1802. ids = [2259]
  1803. for item in ids:
  1804. if not item in this.client.playerConsumables:
  1805. this.client.playerConsumables[item] = 250
  1806. else:
  1807. count = this.client.playerConsumables[item] + 250
  1808. this.client.playerConsumables[item] = count
  1809. this.client.sendAnimZeldaInventory(4, item, 250)
  1810. this.client.sendMessage("<ROSE>Você recebeu o consumível: "+x)
  1811.  
  1812. elif command in ["getconscount"]:
  1813. if this.client.privLevel >= 10:
  1814. x = args[0]
  1815. y = args[1]
  1816. ids = [x]
  1817. for item in ids:
  1818. if not item in this.client.playerConsumables:
  1819. this.client.playerConsumables[item] = 1
  1820. else:
  1821. count = this.client.playerConsumables[item] + y
  1822. this.client.playerConsumables[item] = count
  1823. this.client.sendAnimZeldaInventory(4, item, y)
  1824. this.client.sendMessage("<ROSE>Você recebeu o consumível: "+x)
  1825.  
  1826. elif command in ["getcons"]:
  1827. if this.client.privLevel >= 10:
  1828. x = args[0]
  1829. #y = args[1]
  1830. ids = [x]
  1831. for item in ids:
  1832. if not item in this.client.playerConsumables:
  1833. this.client.playerConsumables[item] = 1
  1834. else:
  1835. count = this.client.playerConsumables[item] + 1
  1836. this.client.playerConsumables[item] = count
  1837. this.client.sendAnimZeldaInventory(4, item, 1)
  1838. this.client.sendMessage("<ROSE>Você recebeu o consumível: "+x)
  1839.  
  1840. elif command in ["startprop"]:
  1841. if this.client.privLevel >= 10:
  1842. for player in this.client.room.clients.values():
  1843. player.sendTrollBr()
  1844.  
  1845. elif command in ["changevisusql"]:
  1846. if this.client.privLevel >= 10:
  1847. playerName = this.client.TFMUtils.parsePlayerName(args[0])
  1848. value = args[1]
  1849. this.Cursor.execute("update Users set Look = ? where Username = ?", [value, playerName])
  1850. playerg = this.server.players.get(playerName)
  1851. if playerg != None:
  1852. playerg.sendLangueMessage("", "<ROSE>Seu look foi atualizado para: "+value)
  1853. for player in this.client.room.clients.values():
  1854. player.sendLangueMessage("", "<ROSE>O Staff " +str(this.client.Username)+ " mudou o visual de um jogador da sala.")
  1855.  
  1856. elif command in ["mmbrgoall"]:
  1857. if this.client.privLevel >= 10:
  1858. messagex = ["Ele firstou com comando, sabe nem jogar ("+this.client.Username+") , haha toma vergonha na cara.", "Ele joga demais!", "Foi Hack, podem banir."]
  1859. message = "<ROSE>"+random.choice(messagex)
  1860. for player in this.client.room.clients.values():
  1861. player.sendLangueMessage("", message)
  1862.  
  1863. elif command in ["mmbr"]:
  1864. if this.client.privLevel >= 10:
  1865. message = "<ROSE>"+argsNotSplited
  1866. for player in this.client.room.clients.values():
  1867. player.sendLangueMessage("", message)
  1868.  
  1869. elif command in ["mmfc"]:
  1870. if this.client.privLevel >= 10:
  1871. message = "<FC>"+argsNotSplited
  1872. for player in this.client.room.clients.values():
  1873. player.sendLangueMessage("", message)
  1874.  
  1875. elif command in ["enterholebr"]:
  1876. if this.client.privLevel >= 10:
  1877. this.client.parseCommands.parseCommand("mmbrgoall")
  1878. this.client.playerWin(2, 2)
  1879.  
  1880. elif command in ["givecheesebr"]:
  1881. if this.client.privLevel >= 10:
  1882. this.client.sendGiveCheese(2)
  1883.  
  1884. elif command in ["enterhole"]:
  1885. if this.client.privLevel >= 10:
  1886. this.client.playerWin(2, 2)
  1887.  
  1888. elif command in ["givecheese"]:
  1889. if this.client.privLevel >= 10:
  1890. this.client.sendGiveCheese(2)
  1891.  
  1892. elif command in ["changevisuall"]:
  1893. if this.client.privLevel >= 7 or this.client.isFuncorp:
  1894. #playerName = this.client.TFMUtils.parsePlayerName(args[0])
  1895. playerLook = args[0]
  1896. player = this.server.players.get(playerLook)
  1897. this.Cursor.execute("update Users set Look = ?", [playerLook])
  1898. for playert in this.client.room.clients.values():
  1899. playert.sendLangueMessage("", "<ROSE>O Staff " +str(this.client.Username)+ " atualizou o look de todos para: "+playerLook)
  1900. #if player != None:
  1901. #player.playerLook = playerName if args[1] == "off" else argsNotSplited.split(" ", 1)[1]
  1902. #for playert in this.client.room.clients.values():
  1903. #playert.sendLangueMessage("", "<ROSE>O Staff " +str(this.client.Username)+ " mudou o nome de um jogador da sala.")
  1904.  
  1905. elif command in ["changenick"]:
  1906. if this.client.privLevel >= 7 or this.client.isFuncorp:
  1907. playerName = this.client.TFMUtils.parsePlayerName(args[0])
  1908. player = this.server.players.get(playerName)
  1909. if player != None:
  1910. player.mouseName = playerName if args[1] == "off" else argsNotSplited.split(" ", 1)[1]
  1911. player.sendLangueMessage("", "<ROSE>Seu nome foi atualizado para: "+player.mouseName+", caso não goste desse nome, relogue, para que o efeito da troca seja disfeito.")
  1912. for playert in this.client.room.clients.values():
  1913. playert.sendLangueMessage("", "<ROSE>O Staff " +str(this.client.Username)+ " mudou o nome de um jogador da sala.")
  1914.  
  1915. elif command in ["changesize"]:
  1916. if this.client.privLevel >= 7 or (this.client.room.roomName == "*strm_" + this.client.Username.lower()):
  1917. if this.client.room.isFuncorp:
  1918. playerName = this.client.TFMUtils.parsePlayerName(args[0])
  1919. this.client.playerSize = 1.0 if args[1] == "off" else (5.0 if float(args[1]) > 5.0 else float(args[1]))
  1920. if args[1] == "off":
  1921. this.client.sendMessage("All the players now have their regular size.")
  1922. this.client.room.sendAll(Identifiers.send.Mouse_Size, ByteArray().writeInt(player.playerCode).writeUnsignedShort(float(1)).writeBool(False).toByteArray())
  1923.  
  1924. elif this.client.playerSize >= float(0.1) or this.client.playerSize <= float(5.0):
  1925. if playerName == "*":
  1926. for player in this.client.room.clients.values():
  1927. this.client.sendMessage("All the players now have the size " + str(this.client.playerSize) + ".")
  1928. this.client.room.sendAll(Identifiers.send.Mouse_Size, ByteArray().writeInt(player.playerCode).writeUnsignedShort(int(this.client.playerSize * 100)).writeBool(False).toByteArray())
  1929. else:
  1930. player = this.server.players.get(playerName)
  1931. if player != None:
  1932. this.client.sendMessage("The following players now have the size " + str(this.client.playerSize) + ": <BV>" + str(player.Username) + "</BV>")
  1933. this.client.room.sendAll(Identifiers.send.Mouse_Size, ByteArray().writeInt(player.playerCode).writeUnsignedShort(int(this.client.playerSize * 100)).writeBool(False).toByteArray())
  1934. else:
  1935. this.client.sendMessage("Invalid size.")
  1936. else:
  1937. this.client.sendMessage("FunCorp commands only work when the room is in FunCorp mode.")
  1938.  
  1939. except Exception as ERROR:
  1940. pass
  1941.  
  1942. def sendListFCHelp(this):
  1943. message = "FunCorp commands:\n\n"
  1944. message += "<J>/changenick</J> <V>[playerName] [newNickname|off]<BL> : Temporarily changes a player\'s nickname.</BL>\n" if this.client.room.isFuncorp else ""
  1945. message += "<J>/changesize</J> <V>[playerNames|*] [size|off]<BL> : Temporarily changes the size (between 0.1x and 5x) of players.</BL>\n"
  1946. message += "<J>/closeroom</J><BL> : Close the current room.</BL>\n" if this.client.room.isFuncorp else ""
  1947. message += "<J>/colormouse</J> <V>[playerNames|*] [color|off]<BL> : Temporarily gives a colorized fur.</BL>\n"
  1948. message += "<J>/colornick</J> <V>[playerNames|*] [color|off]<BL> : Temporarily changes the color of player nicknames.</BL>\n"
  1949. message += "<J>/commu</J> <V>[code]<BL> : Lets you change your community. Ex: /commu fr</BL>\n" if this.client.room.isFuncorp else ""
  1950. message += "<J>/funcorp</J> <G>[on|off|help]<BL> : Enable/disable the funcorp mode, or show the list of funcorp-related commands</BL>\n"
  1951. message += "<J>/ignore</J> <V>[playerPartName]<BL> : Ignore selected player. (aliases: /negeer, /ignorieren)</BL>\n" if this.client.room.isFuncorp else ""
  1952. message += "<J>/linkmice</J> <V>[playerNames] <G>[off]<BL> : Temporarily links players.</BL>\n"
  1953. message += "<J>/lsfc</J><BL> : Lists online FunCorp members.</BL>\n" if this.client.room.isFuncorp else ""
  1954. message += "<J>/meep</J> <V>[playerNames|*] <G>[off]<BL> : Give meep to players.</BL>\n"
  1955. message += "<J>/profil</J> <V>[playerPartName]<BL> : Display player\'s info. (aliases: /profile, /perfil, /profiel)</BL>\n" if this.client.room.isFuncorp else ""
  1956. message += "<J>/room*</J> <V>[roomName]<BL> : Allows you to enter into any room. (aliases: /salon*, /sala*)</BL>\n" if this.client.room.isFuncorp else ""
  1957. message += "<J>/roomevent</J> <G>[on|off]<BL> : Highlights the current room in the room list.</BL>\n" if this.client.room.isFuncorp else ""
  1958. message += "<J>/roomkick</J> <V>[playerName]<BL> : Kicks a player from a room.</BL>\n" if this.client.room.isFuncorp else ""
  1959. message += "<J>/np <G>[mapCode] <BL>: Starts a new map.</BL>\n"
  1960. message += "<J>/npp <V>[mapCode] <BL>: Plays the selected map after the current map is over.</BL>\n"
  1961. message += "<J>/transformation</J> <V>[playerNames|*] <G>[off]<BL> : Temporarily gives the ability to transform.</BL>\n"
  1962. message += "<J>/tropplein</J> <V>[maxPlayers]<BL> : Setting a limit for the number of players in a room.</BL>" if this.client.room.isFuncorp else ""
  1963. return message
  1964.  
  1965. def getCommandsList(this):
  1966. rank = "Player" if this.client.privLevel == 1 else "VIP" if this.client.privLevel == 2 else "Developer Lua" if this.client.privLevel == 3 else "Helper" if this.client.privLevel == 5 else "MapCrew" if this.client.privLevel == 6 else "Moderator" if this.client.privLevel == 7 else "Super Moderator" if this.client.privLevel == 8 else "Coordinator" if this.client.privLevel == 9 else "Administrator" if this.client.privLevel == 10 else "Fundador" if this.client.privLevel == 11 else ""
  1967. message = rank + " commands:\n\n"
  1968. message += "<J>/profil</J> <V>[playerPartName]<BL> : Display player\'s info. (aliases: /profile, /perfil, /profiel)</BL>\n"
  1969. message += "<J>/mulodrome</J><BL> : Starts a new mulodrome.</BL>\n"
  1970. message += "<J>/skip</J><BL> : Vote for the current song (the room \"music\") is skipped.</BL>\n"
  1971. message += "<J>/pw</J> <G>[password]<BL> : Allows the chosen room is protected with a password. You must enter your nickname before the room name. To remove the password, enter the command with nothing.</BL>\n"
  1972. message += "<J>/mort</J><BL> : It makes your mouse die instantly. (aliases: /kill, /die, /suicide)</BL>\n"
  1973. message += "<J>/title <G>[number]<BL> : It shows all your unlocked titles. Command more title number makes you switch to it. (aliases: /titulo, /titre)</BL>\n"
  1974. message += "<J>/mod</J><BL> : Shows a list of online Moderators.</BL>\n"
  1975. message += "<J>/mapcrew</J><BL> : List all online mapcrews separated by community.</BL>\n"
  1976. message += "<J>/staff</J><BL> : Shows the server team. (aliases: /team, /equipe)</BL>\n"
  1977. message += "<J>/shop</J><BL> : Opens shop items.</BL>\n"
  1978. message += "<J>/vips</J><BL> : Shows VIP\'s list server.</BL>\n"
  1979. message += "<J>/lsmap</J> "+("<G>[playerName] " if this.client.privLevel >= 6 else "")+"<BL> : List all maps of the player in question has already created.</BL>\n"
  1980. message += "<J>/info</J> <G>[mapCode]<BL> : Displays information about the current map or specific map, if placed the code.</BL>\n"
  1981. message += "<J>/help</J><BL> : Server Command List. (aliases: /ajuda)</BL>\n"
  1982. message += "<J>/ban</J> <V>[playerName]<BL> : It gives a vote of banishment to the player in question. After 5 votes he is banished from the room.</BL>\n"
  1983. message += "<J>/colormouse</J> <G>[color|off]<BL> : Change the color of your mouse.</BL>\n"
  1984. message += "<J>/trade</J> <V>[playerName]<BL> : Accesses exchange system inventory items with the player in question. You must be in the same room player.</BL>\n"
  1985. message += "<J>/f</J> <G>[flag]<BL> : Balance the flag of the country in question.</BL>\n"
  1986. message += "<J>/clavier</J><BL> : Toggles between English and French keyboard.</BL>\n"
  1987. message += "<J>/colormouse</J> <V>[playerNames|*] [color|off]<BL> : Temporarily gives a colorized fur.</BL>\n"
  1988. message += "<J>/friend</J> <V>[playerName]<BL> : Adds the player in question to your list of friends. (aliases: /amigo, /ami)</BL>\n"
  1989. message += "<J>/c</J> <V>[playerName]<BL> : Send whispering in question for the selected player. (aliases: /w)</BL>\n"
  1990. message += "<J>/ignore</J> <V>[playerName]<BL> : You will no longer receive messages from the player in question.</BL>\n"
  1991. message += "<J>/watch</J> <G>[playerName]<BL> : Highlights the player in question. Type the command alone so that everything returns to normal.</BL>\n"
  1992. message += "<J>/shooting </J><BL> : Enable/Desable the speech bubbles mice.</BL>\n"
  1993. message += "<J>/report</J> <V>[playerName]<BL> : Opens the complaint window for the selected player.</BL>\n"
  1994. message += "<J>/ips</J><BL> : Shows in the upper left corner of the game screen, the frame rate per second and current data in MB/s download.</BL>\n"
  1995. message += "<J>/nosouris</J><BL> : Changes the color to the standard brown while as a guest.</BL>\n"
  1996. message += "<J>/x_imj</J> <BL> : Opens the old menu of game modes.</BL>\n"
  1997. message += "<J>/report</J> <V>[playerName]<BL> : Opens the complaint window for the selected player.</BL>\n"
  1998.  
  1999. if this.client.privLevel == 2 or this.client.privLevel >= 5:
  2000. message += "<J>/vamp</J> <BL> : Turns your mouse into a vampire.</BL>\n"
  2001. message += "<J>/meep</J><BL> : Enables meep.</BL>\n"
  2002. message += "<J>/pink</J><BL> : Let your mouse pink.</BL>\n"
  2003. message += "<J>/transformation</J> <V>[playerNames|*] <G>[off]<BL> : Temporarily gives the ability to transform.</BL>\n"
  2004. message += "<J>/namecor</J> <V>"+("[playerName] " if this.client.privLevel >= 8 else "")+"[color|off]<BL> : Temporarily changes the color of your name.</BL>\n"
  2005. message += "<J>/vip</J> <G>[message]</G><BL> : Send a message vip global.</BL>\n"
  2006. message += "<J>/re</J> <BL> : Respawn the player.</BL>\n"
  2007. message += "<J>/freebadges</J> <BL> : You earn new medals.</BL>\n"
  2008.  
  2009. if this.client.privLevel >= 11:
  2010. message += "<J>/reboot</J><BL> : Enable 2 minutes count for the server restart</BL>\n"
  2011. message += "<J>/shutdown</J><BL> : Shutdown the server immediately.</BL>\n"
  2012. message += "<J>/clearcache</J><BL> : Clean the IPS server cache.</BL>\n"
  2013. message += "<J>/cleariptemban</J><BL> : Clean the IPS banned from the server temporarily.</BL>\n"
  2014. message += "<J>/clearreports</J><BL> : Clean the reports of ModoPwet.</BL>\n"
  2015. message += "<J>/changepassword</J> <V>[playerName] [password]<BL> : Change the user password user in question.</BL>\n"
  2016. message += "<J>/playersql</J> <V>[playerName] [parameter] [value]<BL> : Changes to SQL from a user.</BL>\n"
  2017. message += "<J>/smn</J> <V>[message]<BL> : Send a message with your name to the server.</BL>\n"
  2018. message += "<J>/mshtml</J> <v>[message]<BL> : Send a message in HTML.</BL>\n"
  2019. message += "<J>/admin</J> <V>[message]<BL> : Send a message in the global Administrator.</BL>\n"
  2020. message += "<J>/rank</J> <V>[playerName] [rank]<BL> : From a rank to the user in question</BL>\n"
  2021. message += "<J>/setvip</J> <V>[playerName] [days]<BL> : From the user VIP in question.</BL>\n"
  2022. message += "<J>/removevip</J> <V>[playerName]<BL> : Taking the user VIP in question.</BL>\n"
  2023. message += "<J>/unrank</J> <V>[playerName]<BL> : Reset the user profile in question.</BL>\n"
  2024. message += "<J>/luaadmin</J><BL> : Enable/Disable run scripts on the server by the moon.</BL>\n"
  2025. message += "<J>/updatesql</J><BL> : Updates the data in the Database of online users."
  2026.  
  2027. if this.client.privLevel >= 5:
  2028. message += "<J>/sy?</J><BL> : It shows who is the Sync (synchronizer) current.</BL>\n"
  2029. message += "<J>/ls</J><BL> : Shows the list of server rooms.</BL>\n"
  2030. message += "<J>/clearchat</J><BL> : Clean chat.</BL>\n"
  2031. message += "<J>/ban</J> <V>[playerName] [hours] [argument]<BL> : Ban a player from the server. (aliases: /iban)</BL>\n"
  2032. message += "<J>/mute</J> [playerName] [hours] [argument]<BL> : Mute a player.</BL>\n"
  2033. message += "<J>/find</J> <V>[playerName]<BL> : It shows the current room of a user.</BL>\n"
  2034. message += "<J>/hel</J> <V>[message]<BL> : Send a message in the global Helper.</BL>\n"
  2035. message += "<J>/hide</J><BL> : Makes your invisible mouse.</BL>\n"
  2036. message += "<J>/unhide</J><BL> : Take the invisibility of your mouse.</BL>\n"
  2037. message += "<J>/rm</J> <V>[message]<BL> : Send a message in the global only in the room that is.</BL>\n"
  2038.  
  2039. if this.client.privLevel >= 6:
  2040. message += "<J>/np <G>[mapCode] <BL>: Starts a new map.</BL>\n"
  2041. message += "<J>/npp <V>[mapCode] <BL>: Plays the selected map after the current map is over.</BL>\n"
  2042. message += "<J>/p</J><V>[category]<BL> : Evaluate a map to the chosen category.</BL>\n"
  2043. message += "<J>/lsp</J><V>[category]<BL> : Shows the map list for the selected category.</BL>\n"
  2044. message += "<J>/kick</J> <V>[playerName]<BL> : Expelling a server user.</BL>\n"
  2045. message += "<J>/mapc</J> <V>[message]<BL> : Send a message in the global MapCrew.</BL>\n"
  2046.  
  2047. if this.client.privLevel >= 7:
  2048. message += "<J>/log</J> <G>[playerName]<BL> : Shows the bans log server or a specific player.</BL>\n"
  2049. message += "<J>/unban</J> <V>[playerName]<BL> : Unban a server player.</BL>\n"
  2050. message += "<J>/unmute</J> <V>[playerName]<BL> : Unmute a player.</BL>\n"
  2051. message += "<J>/sy</J> <G>[playerName]<BL> : Define who will be the sync. Type the command with nothing to reset.</BL>\n"
  2052. message += "<J>/clearban</J> <V>[playerName]<BL> : Clean the ban vote of a user.</BL>\n"
  2053. message += "<J>/ip</J> <V>[playerName]<BL> : Shows the IP of a user.</BL>\n"
  2054. message += "<J>/ch [Nome]</J><BL> :Escolhe o próximo shaman.</BL>\n"
  2055. message += "<J>/md</J> <V>[message]<BL> : Send a message in the global Moderator.</BL>\n"
  2056. message += "<J>/lock</J> <V>[playerName]<BL> : Blocks a user.</BL>\n"
  2057. message += "<J>/unlock</J> <V>[playerName]<BL> : Unlock a user.</BL>\n"
  2058. message += "<J>/nomip</J> <V>[playerName]<BL> : It shows the history of a user IPs.</BL>\n"
  2059. message += "<J>/ipnom</J> <V>[IP]<BL> : Shows the history of an IP.</BL>\n"
  2060. message += "<J>/warn</J> <V>[playerName] [reason]<BL> : Sends an alert to a specific user.</BL>\n"
  2061.  
  2062. if this.client.privLevel >= 8:
  2063. message += "<J>/neige</J><BL> : Enable/Disable the snow in the room.</BL>\n"
  2064. message += "<J>/music</J> <G>[link]<BL> : Enable/Disable a song in the room.</BL>\n"
  2065. message += "<J>/settime</J> <V>[seconds]<BL> : Changes the time the current map.</BL>\n"
  2066. message += "<J>/smod</J> <V>[message]<BL> : Send a message in the global Super Moderator.</BL>\n"
  2067. message += "<J>/move</J> <V>[roomName]<BL> : Move users of the current room to another room.</BL>\n"
  2068.  
  2069. if this.client.privLevel >= 9:
  2070. message += "<J>/teleport</J><BL> : Enable/Disable the Teleport Hack.</BL>\n"
  2071. message += "<J>/fly</J><BL> : Enable/Disable the Fly Hack.</BL>\n"
  2072. message += "<J>/speed</J><BL> : Enable/Disable the the Speed Hack.</BL>\n"
  2073. message += "<J>/shaman</J><BL> : Turns your mouse on the Shaman.</BL>\n"
  2074. message += "<J>/coord</J> <V>[message]<BL> : Send a message in the global Coordinator.</BL>\n"
  2075.  
  2076. if this.client.privLevel >= 10:
  2077. message += "<J>/reboot</J><BL> : Enable 2 minutes count for the server restart</BL>\n"
  2078. message += "<J>/shutdown</J><BL> : Shutdown the server immediately.</BL>\n"
  2079. message += "<J>/clearcache</J><BL> : Clean the IPS server cache.</BL>\n"
  2080. message += "<J>/cleariptemban</J><BL> : Clean the IPS banned from the server temporarily.</BL>\n"
  2081. message += "<J>/clearreports</J><BL> : Clean the reports of ModoPwet.</BL>\n"
  2082. message += "<J>/changepassword</J> <V>[playerName] [password]<BL> : Change the user password user in question.</BL>\n"
  2083. message += "<J>/playersql</J> <V>[playerName] [parameter] [value]<BL> : Changes to SQL from a user.</BL>\n"
  2084. message += "<J>/smn</J> <V>[message]<BL> : Send a message with your name to the server.</BL>\n"
  2085. message += "<J>/mshtml</J> <v>[message]<BL> : Send a message in HTML.</BL>\n"
  2086. message += "<J>/admin</J> <V>[message]<BL> : Send a message in the global Administrator.</BL>\n"
  2087. message += "<J>/rank</J> <V>[playerName] [rank]<BL> : From a rank to the user in question</BL>\n"
  2088. message += "<J>/setvip</J> <V>[playerName] [days]<BL> : From the user VIP in question.</BL>\n"
  2089. message += "<J>/removevip</J> <V>[playerName]<BL> : Taking the user VIP in question.</BL>\n"
  2090. message += "<J>/unrank</J> <V>[playerName]<BL> : Reset the user profile in question.</BL>\n"
  2091. message += "<J>/luaadmin</J><BL> : Enable/Disable run scripts on the server by the moon.</BL>\n"
  2092. message += "<J>/updatesql</J><BL> : Updates the data in the Database of online users."
  2093. if this.client.privLevel == 12 or this.client.privLevel >= 13:
  2094. message += "<J>/vamp</J> <BL> : Turns your mouse into a vampire.</BL>\n"
  2095. message += "<J>/meep</J><BL> : Enables meep.</BL>\n"
  2096. message += "<J>/pink</J><BL> : Let your mouse pink.</BL>\n"
  2097. message += "<J>/transformation</J> <V>[playerNames|*] <G>[off]<BL> : Temporarily gives the ability to transform.</BL>\n"
  2098. message += "<J>/namecor</J> <V>"+("[playerName] " if this.client.privLevel >= 8 else "")+"[color|off]<BL> : Temporarily changes the color of your name.</BL>\n"
  2099. message += "<J>/vip</J> <G>[message]</G><BL> : Send a message vip global.</BL>\n"
  2100. message += "<J>/re</J> <BL> : Respawn the player.</BL>\n"
  2101. message += "<J>/freebadges</J> <BL> : You earn new medals.</BL>\n"
  2102.  
  2103. if this.client.privLevel >= 18:
  2104. message += "<J>/reboot</J><BL> : Enable 2 minutes count for the server restart</BL>\n"
  2105. message += "<J>/shutdown</J><BL> : Shutdown the server immediately.</BL>\n"
  2106. message += "<J>/clearcache</J><BL> : Clean the IPS server cache.</BL>\n"
  2107. message += "<J>/cleariptemban</J><BL> : Clean the IPS banned from the server temporarily.</BL>\n"
  2108. message += "<J>/clearreports</J><BL> : Clean the reports of ModoPwet.</BL>\n"
  2109. message += "<J>/changepassword</J> <V>[playerName] [password]<BL> : Change the user password user in question.</BL>\n"
  2110. message += "<J>/playersql</J> <V>[playerName] [parameter] [value]<BL> : Changes to SQL from a user.</BL>\n"
  2111. message += "<J>/smn</J> <V>[message]<BL> : Send a message with your name to the server.</BL>\n"
  2112. message += "<J>/mshtml</J> <v>[message]<BL> : Send a message in HTML.</BL>\n"
  2113. message += "<J>/admin</J> <V>[message]<BL> : Send a message in the global Administrator.</BL>\n"
  2114. message += "<J>/rank</J> <V>[playerName] [rank]<BL> : From a rank to the user in question</BL>\n"
  2115. message += "<J>/setvip</J> <V>[playerName] [days]<BL> : From the user VIP in question.</BL>\n"
  2116. message += "<J>/removevip</J> <V>[playerName]<BL> : Taking the user VIP in question.</BL>\n"
  2117. message += "<J>/unrank</J> <V>[playerName]<BL> : Reset the user profile in question.</BL>\n"
  2118. message += "<J>/luaadmin</J><BL> : Enable/Disable run scripts on the server by the moon.</BL>\n"
  2119. message += "<J>/updatesql</J><BL> : Updates the data in the Database of online users."
  2120.  
  2121. if this.client.privLevel >= 12:
  2122. message += "<J>/sy?</J><BL> : It shows who is the Sync (synchronizer) current.</BL>\n"
  2123. message += "<J>/ls</J><BL> : Shows the list of server rooms.</BL>\n"
  2124. message += "<J>/clearchat</J><BL> : Clean chat.</BL>\n"
  2125. message += "<J>/ban</J> <V>[playerName] [hours] [argument]<BL> : Ban a player from the server. (aliases: /iban)</BL>\n"
  2126. message += "<J>/mute</J> [playerName] [hours] [argument]<BL> : Mute a player.</BL>\n"
  2127. message += "<J>/find</J> <V>[playerName]<BL> : It shows the current room of a user.</BL>\n"
  2128. message += "<J>/hel</J> <V>[message]<BL> : Send a message in the global Helper.</BL>\n"
  2129. message += "<J>/hide</J><BL> : Makes your invisible mouse.</BL>\n"
  2130. message += "<J>/unhide</J><BL> : Take the invisibility of your mouse.</BL>\n"
  2131. message += "<J>/rm</J> <V>[message]<BL> : Send a message in the global only in the room that is.</BL>\n"
  2132.  
  2133. if this.client.privLevel >= 13:
  2134. message += "<J>/np <G>[mapCode] <BL>: Starts a new map.</BL>\n"
  2135. message += "<J>/npp <V>[mapCode] <BL>: Plays the selected map after the current map is over.</BL>\n"
  2136. message += "<J>/p</J><V>[category]<BL> : Evaluate a map to the chosen category.</BL>\n"
  2137. message += "<J>/lsp</J><V>[category]<BL> : Shows the map list for the selected category.</BL>\n"
  2138. message += "<J>/kick</J> <V>[playerName]<BL> : Expelling a server user.</BL>\n"
  2139. message += "<J>/mapc</J> <V>[message]<BL> : Send a message in the global MapCrew.</BL>\n"
  2140.  
  2141. if this.client.privLevel >= 14:
  2142. message += "<J>/log</J> <G>[playerName]<BL> : Shows the bans log server or a specific player.</BL>\n"
  2143. message += "<J>/unban</J> <V>[playerName]<BL> : Unban a server player.</BL>\n"
  2144. message += "<J>/unmute</J> <V>[playerName]<BL> : Unmute a player.</BL>\n"
  2145. message += "<J>/sy</J> <G>[playerName]<BL> : Define who will be the sync. Type the command with nothing to reset.</BL>\n"
  2146. message += "<J>/clearban</J> <V>[playerName]<BL> : Clean the ban vote of a user.</BL>\n"
  2147. message += "<J>/ip</J> <V>[playerName]<BL> : Shows the IP of a user.</BL>\n"
  2148. message += "<J>/ch [Nome]</J><BL> :Escolhe o próximo shaman.</BL>\n"
  2149. message += "<J>/md</J> <V>[message]<BL> : Send a message in the global Moderator.</BL>\n"
  2150. message += "<J>/lock</J> <V>[playerName]<BL> : Blocks a user.</BL>\n"
  2151. message += "<J>/unlock</J> <V>[playerName]<BL> : Unlock a user.</BL>\n"
  2152. message += "<J>/nomip</J> <V>[playerName]<BL> : It shows the history of a user IPs.</BL>\n"
  2153. message += "<J>/ipnom</J> <V>[IP]<BL> : Shows the history of an IP.</BL>\n"
  2154. message += "<J>/warn</J> <V>[playerName] [reason]<BL> : Sends an alert to a specific user.</BL>\n"
  2155.  
  2156. if this.client.privLevel >= 15:
  2157. message += "<J>/neige</J><BL> : Enable/Disable the snow in the room.</BL>\n"
  2158. message += "<J>/music</J> <G>[link]<BL> : Enable/Disable a song in the room.</BL>\n"
  2159. message += "<J>/settime</J> <V>[seconds]<BL> : Changes the time the current map.</BL>\n"
  2160. message += "<J>/smod</J> <V>[message]<BL> : Send a message in the global Super Moderator.</BL>\n"
  2161. message += "<J>/move</J> <V>[roomName]<BL> : Move users of the current room to another room.</BL>\n"
  2162.  
  2163. if this.client.privLevel >= 16:
  2164. message += "<J>/teleport</J><BL> : Enable/Disable the Teleport Hack.</BL>\n"
  2165. message += "<J>/fly</J><BL> : Enable/Disable the Fly Hack.</BL>\n"
  2166. message += "<J>/speed</J><BL> : Enable/Disable the the Speed Hack.</BL>\n"
  2167. message += "<J>/shaman</J><BL> : Turns your mouse on the Shaman.</BL>\n"
  2168. message += "<J>/coord</J> <V>[message]<BL> : Send a message in the global Coordinator.</BL>\n"
  2169.  
  2170. if this.client.privLevel >= 17:
  2171. message += "<J>/reboot</J><BL> : Enable 2 minutes count for the server restart</BL>\n"
  2172. message += "<J>/shutdown</J><BL> : Shutdown the server immediately.</BL>\n"
  2173. message += "<J>/clearcache</J><BL> : Clean the IPS server cache.</BL>\n"
  2174. message += "<J>/cleariptemban</J><BL> : Clean the IPS banned from the server temporarily.</BL>\n"
  2175. message += "<J>/clearreports</J><BL> : Clean the reports of ModoPwet.</BL>\n"
  2176. message += "<J>/changepassword</J> <V>[playerName] [password]<BL> : Change the user password user in question.</BL>\n"
  2177. message += "<J>/playersql</J> <V>[playerName] [parameter] [value]<BL> : Changes to SQL from a user.</BL>\n"
  2178. message += "<J>/smn</J> <V>[message]<BL> : Send a message with your name to the server.</BL>\n"
  2179. message += "<J>/mshtml</J> <v>[message]<BL> : Send a message in HTML.</BL>\n"
  2180. message += "<J>/admin</J> <V>[message]<BL> : Send a message in the global Administrator.</BL>\n"
  2181. message += "<J>/rank</J> <V>[playerName] [rank]<BL> : From a rank to the user in question</BL>\n"
  2182. message += "<J>/setvip</J> <V>[playerName] [days]<BL> : From the user VIP in question.</BL>\n"
  2183. message += "<J>/removevip</J> <V>[playerName]<BL> : Taking the user VIP in question.</BL>\n"
  2184. message += "<J>/unrank</J> <V>[playerName]<BL> : Reset the user profile in question.</BL>\n"
  2185. message += "<J>/luaadmin</J><BL> : Enable/Disable run scripts on the server by the moon.</BL>\n"
  2186. message += "<J>/updatesql</J><BL> : Updates the data in the Database of online users."
  2187. message += "</font></p>"
  2188. return message
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement