1. Wenn man !rate eingibt soll das öffentlich erscheinen. Zur Zeit ist es ein "stiller" Befehl, den niemand anderes sieht.
2. Das Ergebnis der Bewertung (Thanks for rating *mapname....) sollte ebenfalls öffentlich sein.
Wenn das irgendwie ginge, wäre das Klasse.
# Name: RateMap v2.0R3
# Author: JoeyT2008
# Description: Allows players to rate their favourite maps.
# Commands: !ratemap - Brings up the rating menu, or the error message if you have already rated.
# !rate - Brings up the rating menu, or the error message if you have already rated.
# !rm - Brings up the rating menu, or the error message if you have already rated.
# !rating - Tells the user what the current map is rated.
# !rating [map] - Tells the user what the chosen map is rated.
# !ratings - Shows the users all maps in a list and their ratings.
# !rmhelp - Brings up the command help menu.
# Credits: Creator JoeyT2008
# Help NATO_Hunter
# R`SiN
# Errant
import es, popuplib, os, playerlib, threading, gamethread, urllib2, time, langlib, cPickle, keyvalues
rm_admins = ["", ""]
rm_commands = {"!rm": "ratemap/sendPopup","!rate": "ratemap/sendPopup","!ratemap": "ratemap/sendPopup","!rating": "ratemap/viewRating","!ratings": "ratemap/listPopup","!rmhelp": "ratemap/viewCommands"}
rm_helpcommands = {"1": "!ratemap", "2": "!ratings", "3": "!rating", "4": "!rmhelp"}
ratemap_ver = es.ServerVar("ratemap_ver", "Menu", "Version of RateMap that you are using.")
ratemap_ver.makepublic()
info = es.AddonInfo()
info.name = "aimroyale.de RateMap"
info.version = ratemap_ver
info.url = "http://addons.eventscripts.com/addons/view/ratemap"
info.basename = "ratemap"
info.author = "JoeyT2008"
def loadMaps():
try:
file = open(es.getAddonPath("ratemap") + "/maps.dat", "r")
maps = cPickle.load(file)
file.close()
except: maps = {}
return maps
def saveMaps():
file = open(es.getAddonPath("ratemap") + "/maps.dat", "w")
cPickle.dump(ratemaps, file)
file.close()
def loadConfig():
path = str(es.ServerVar("eventscripts_gamedir")) + "/cfg/ratemap.cfg"
if os.path.exists(path):
config = open(path, "r").read()
for line in config.split("\n"):
line = line.strip()
if not line.startswith("/") and not line.startswith("-") and not line == "":
es.ServerVar(line.split()[0], line.split()[1])
else:
es.dbgmsg(0, lang("cfg_missing"))
logFile(lang("cfg_missing"))
es.unload("ratemap")
rm_variables = loadConfig()
def logFile(text):
try:
logfile_text = open(es.getAddonPath("ratemap") + "/ratemap.log", "r").read()
logfile_text += "%s: %s\n" % (time.ctime(), text)
logfile = open(es.getAddonPath("ratemap") + "/ratemap.log", "w")
logfile.write(logfile_text)
logfile.close()
except: pass
def Var(var):
try: return str(es.ServerVar(var))
except: return None
ratemaps = loadMaps()
lang = langlib.Strings(es.getAddonPath("ratemap") + "/strings.ini")
class webSQL(threading.Thread):
def run(self):
if Var("rm_usemysql") == "1":
runsql = None
try: runsql = urllib2.urlopen("%s/deleted.php?username=%s&password=%s" % (Var("rm_sqlurl"), Var("rm_username"), Var("rm_password"))).read()
except: logFile("Could not check for deleted maps.")
if runsql:
for map in runsql.split("\n"):
ratemaps.remove(map)
logFile("Removed: %s" % map)
saveMaps()
for map in ratemaps:
try: runsql = urllib2.urlopen("%s/update.php?username=%s&password=%s&map=%s&fivestars=%s&fourstars=%s&threestars=%s&twostars=%s&onestars=%s&runs=%s" % (Var("rm_sqlurl"), Var("rm_username"), Var("rm_password"), map, ratemaps[map][5], ratemaps[map][4], ratemaps[map][3], ratemaps[map][2], ratemaps[map][1], ratemaps[map][6])).read()
except: logFile("Could not connect to server.")
if runsql == "FINISHED": logFile("SQL table updated for %s." % map)
def load():
if not str(es.ServerVar("eventscripts_currentmap")) in ratemaps: setupMap(str(es.ServerVar("eventscripts_currentmap")))
for rm_command in rm_commands: es.regsaycmd(rm_command, rm_commands[rm_command])
es.regclientcmd("RateMap", "ratemap/RateMapClientAdmin")
if not es.exists("command", "RateMap"): es.regcmd("RateMap", "ratemap/RateMapAdmin")
if not es.exists("command", "ratemap_maplist"): es.regcmd("ratemap_maplist", "ratemap/printMaplist")
gamethread.delayedname(int(Var("rm_updatetime"))*60, "UpdateSQL", UpdateSQL)
if Var("rm_popup_automatic") == 1: gamethread.delayedname(int(rm_popup_minutes) * 60, "popupRating", sendPopupToAll)
ConvertDATtoDICT()
def unload():
gamethread.cancelDelayed("popupRating")
gamethread.cancelDelayed("UpdateSQL")
for rm_command in rm_commands: es.unregsaycmd(rm_command)
es.unregclientcmd("ratemap")
saveMaps()
for popup in ["ratemenu", "easyratemenu"]:
try: popuplib.delete(popup)
except: pass
def gg_win(event_var):
if Var("rm_ggpopup") == "1":
sendPopupToAll()
def sendPopupToAll():
for userid in playerlib.getUseridList("#all"):
if not hasRated(userid):
popupRating(userid)
def es_map_start(event_var):
if not str(es.ServerVar("eventscripts_currentmap")) in ratemaps: setupMap(str(es.ServerVar("eventscripts_currentmap")))
ratemaps[str(es.ServerVar("eventscripts_currentmap"))][6] += 1
createMapList()
gamethread.cancelDelayed("popupRating")
if Var("rm_popup_automatic") == 1: gamethread.delayedname(int(rm_popup_minutes) * 60, "popupRating", sendPopupToAll)
webSQL().start()
def UpdateSQL():
webSQL().start()
gamethread.delayedname(int(Var("rm_updatetime"))*60, "UpdateSQL", UpdateSQL)
def popupRating():
for userid in playerlib.getUseridList('#all'):
if not es.getplayersteamid(userid) in ratemaps[str(es.ServerVar("eventscripts_currentmap"))][0]: sendPopupRating(userid)
def getRating(map):
try: return "%.2f" % (getMultipliedVotes(map) / float(getVotes(map)))
except: return "0.00"
def getPlayerRating(userid):
try: return ratemaps[str(es.ServerVar("eventscripts_currentmap"))][0][es.getplayersteamid(userid)]
except: return "No Rating"
def hasRated(userid):
try:
if es.getplayersteamid(userid) in ratemaps[str(es.ServerVar("eventscripts_currentmap"))][0]: return True
else: return False
except: return False
def getVotes(map):
if map in ratemaps: return int(ratemaps[map][1]) + int(ratemaps[map][2]) + int(ratemaps[map][3]) + int(ratemaps[map][4]) + int(ratemaps[map][5])
return 0
def getMultipliedVotes(map):
if map in ratemaps: return int(ratemaps[map][1])*1 + int(ratemaps[map][2])*2 + int(ratemaps[map][3])*3 + int(ratemaps[map][4])*4 + int(ratemaps[map][5])*5
return 0
def getRuns(map):
if map in ratemaps: return int(ratemaps[map][6])
return 0
def mapExists(map):
if map in ratemaps: return True
else: return False
def createMapList():
mapdict = {}
for map in ratemaps:
if float(getRating(map)) > 0:
if Var("rm_maplist_type") == "1": mapdict[map] = getMultipliedVotes(map)
elif Var("rm_maplist_type") == "2": mapdict[map] = getRating(map)
elif Var("rm_maplist_type") == "3": mapdict[map] = getVotes(map)
es.msg(mapdict)
mapdict = [(v, k) for k, v in mapdict.items()]
mapdict.sort()
mapdict.reverse()
mapdict = [(k, v) for v, k in mapdict]
if Var("rm_maplist") == "1":
maplist = open(str(es.ServerVar("eventscripts_gamedir")) + "/maplist.txt", "w")
try: votemaplist = open(str(es.ServerVar("eventscripts_gamedir")) + "/cfg/mani_admin_plugin/votemaplist.txt", "w")
except: pass
templist = open(es.getAddonPath("ratemap") + "/topmaps.txt", "w")
count = 0
for map in mapdict:
count += 1
if not count >= int(Var("rm_maplist_ammount")):
if Var("rm_maplist") == "1":
maplist.write("%s\n" % map[0])
try: votemaplist.write("%s\n" % map[0])
except: pass
templist.write("%s\n" % map[0])
if Var("rm_maplist") == "1":
maplist.close()
try: votemaplist.close()
except: pass
templist.close()
def round_start(event_var):
for userid in playerlib.getUseridList("#all"):
if Var("rm_announce") == "1":
if not es.getplayersteamid(userid) in ratemaps[str(es.ServerVar("eventscripts_currentmap"))][0]: es.tell(userid, "#multi", lang("round_start_msg1", {}, playerlib.getPlayer(userid).get("lang")))
if getVotes(str(es.ServerVar("eventscripts_currentmap"))) > 0: es.tell(userid, "#multi", lang("rating", {"map": str(es.ServerVar("eventscripts_currentmap")), "rating": getRating(str(es.ServerVar("eventscripts_currentmap"))), "votes": getVotes(str(es.ServerVar("eventscripts_currentmap")))}, playerlib.getPlayer(userid).get("lang")))
def teamplay_round_start(event_var):
for userid in playerlib.getUseridList("#all"):
if Var("rm_announce") == "1":
if not es.getplayersteamid(userid) in ratemaps[str(es.ServerVar("eventscripts_currentmap"))][0]: es.tell(userid, "#multi", lang("round_start_msg1", {}, playerlib.getPlayer(userid).get("lang")))
if getVotes(str(es.ServerVar("eventscripts_currentmap"))) > 0: es.tell(userid, "#multi", lang("rating", {"map": str(es.ServerVar("eventscripts_currentmap")), "rating": getRating(str(es.ServerVar("eventscripts_currentmap"))), "votes": getVotes(str(es.ServerVar("eventscripts_currentmap")))}, playerlib.getPlayer(userid).get("lang")))
def viewRating():
userid = es.getcmduserid()
if es.getargc() <= 2:
if es.getargc() == 2: map = es.getargv(1)
else: map = str(es.ServerVar("eventscripts_currentmap"))
if mapExists(map) > 0: es.tell(userid, "#multi", lang("rating", {"map": map, "rating": getRating(map), "votes": getVotes(map)}, playerlib.getPlayer(userid).get("lang")))
else: es.tell(userid, "#multi", lang("no_rating", {"map": map}, playerlib.getPlayer(userid).get("lang")))
else: es.tell(userid, "#multi", lang("viewrating", {}, playerlib.getPlayer(userid).get("lang")))
def sendPopup():
userid = es.getcmduserid()
popupRating(userid)
def popupRating(userid, ignore=0):
ratemenu = popuplib.create("ratemenu")
ratemenu.addline("aimroyale.de RateMap Menu")
ratemenu.addline("-------------------")
ratemenu.addline("%s: %s" % (lang("map", {}, playerlib.getPlayer(userid).get("lang")), str(es.ServerVar("eventscripts_currentmap"))))
if not hasRated(userid) or ignore == 1:
ratemenu.addline("-------------------")
ratemenu.addline("->1. %s" % lang("fivestars", {}, playerlib.getPlayer(userid).get("lang")))
ratemenu.addline("->2. %s" % lang("fourstars", {}, playerlib.getPlayer(userid).get("lang")))
ratemenu.addline("->3. %s" % lang("threestars", {}, playerlib.getPlayer(userid).get("lang")))
ratemenu.addline("->4. %s" % lang("twostars", {}, playerlib.getPlayer(userid).get("lang")))
ratemenu.addline("->5. %s" % lang("onestars", {}, playerlib.getPlayer(userid).get("lang")))
ratemenu.addline("-------------------")
else:
ratemenu.addline("%s: %s" % (lang("ratingtxt", {}, playerlib.getPlayer(userid).get("lang")), str(getRating(str(es.ServerVar("eventscripts_currentmap"))))))
ratemenu.addline("%s: %s" % (lang("prevrating", {}, playerlib.getPlayer(userid).get("lang")), str(getPlayerRating(userid))))
ratemenu.addline("-------------------")
perbar = {}
total = getVotes(str(es.ServerVar("eventscripts_currentmap")))
map = str(es.ServerVar("eventscripts_currentmap"))
for x in range(5):
if int(getStars(map, x+1)) > 0:
value = int(round(100/float(float(total)/float(getStars(map, x+1))) / 5.0))
else:
value = 0
testnum = 20
perbar[x+1] = "[" + "l" * value + " " * (testnum-value) + "]"
ratemenu.addline("%s (%s - %s %s)" % (perbar[5], lang("fivestars", {}, playerlib.getPlayer(userid).get("lang")), getStars(map, 5), lang("totalvotes", {}, playerlib.getPlayer(userid).get("lang"))))
ratemenu.addline("%s (%s - %s %s)" % (perbar[4], lang("fourstars", {}, playerlib.getPlayer(userid).get("lang")), getStars(map, 4), lang("totalvotes", {}, playerlib.getPlayer(userid).get("lang"))))
ratemenu.addline("%s (%s - %s %s)" % (perbar[3], lang("threestars", {}, playerlib.getPlayer(userid).get("lang")), getStars(map, 3), lang("totalvotes", {}, playerlib.getPlayer(userid).get("lang"))))
ratemenu.addline("%s (%s - %s %s)" % (perbar[2], lang("twostars", {}, playerlib.getPlayer(userid).get("lang")), getStars(map, 2), lang("totalvotes", {}, playerlib.getPlayer(userid).get("lang"))))
ratemenu.addline("%s (%s - %s %s)" % (perbar[1], lang("onestars", {}, playerlib.getPlayer(userid).get("lang")), getStars(map, 1), lang("totalvotes", {}, playerlib.getPlayer(userid).get("lang"))))
ratemenu.addline("-------------------")
if Var("rm_allowrerate") == "1":
ratemenu.addline("->1. %s" % lang("changerating", {}, playerlib.getPlayer(userid).get("lang")))
ratemenu.addline("0. %s" % lang("close", {}, playerlib.getPlayer(userid).get("lang")))
ratemenu.addline("-------------------")
if not hasRated(userid) or ignore == 1:
ratemenu.menuselect = giveRating
else:
ratemenu.menuselect = changeRating
ratemenu.send(userid)
def getStars(map, rating):
return ratemaps[map][int(rating)]
def changeRating(userid, choice, popup):
if choice == 1:
popupRating(userid, 1)
def giveRating(userid, choice, popup):
if int(choice) in range(1, 6):
choice = 6-int(choice)
if hasRated(userid):
try: ratemaps[str(es.ServerVar("eventscripts_currentmap"))][int(getPlayerRating(userid).split(".")[0])] -= 1
except: pass
es.tell(userid, "#multi", lang("thx_for_rerating", {"map": str(es.ServerVar("eventscripts_currentmap"))}, playerlib.getPlayer(userid).get("lang")))
else:
es.tell(userid, "#multi", lang("thx_for_rating", {"map": str(es.ServerVar("eventscripts_currentmap"))}, playerlib.getPlayer(userid).get("lang")))
ratemaps[str(es.ServerVar("eventscripts_currentmap"))][choice] += 1
ratemaps[str(es.ServerVar("eventscripts_currentmap"))][0][es.getplayersteamid(userid)] = "%d.00" % choice
es.tell(userid, "#multi", lang("rating", {"map": str(es.ServerVar("eventscripts_currentmap")), "rating": getRating(str(es.ServerVar("eventscripts_currentmap"))), "votes": getVotes(str(es.ServerVar("eventscripts_currentmap")))}, playerlib.getPlayer(userid).get("lang")))
saveMaps()
def setupMap(map):
ratemaps[map] = {}
ratemaps[map][0], ratemaps[map][1], ratemaps[map][2], ratemaps[map][3], ratemaps[map][4], ratemaps[map][5], ratemaps[map][6] = {}, 0, 0, 0, 0, 0, 0
def listPopup():
userid = es.getcmduserid()
ratemenu = popuplib.create("ratemenu")
ratemenu.addline('RateMap v%s' % str(ratemap_ver))
ratemenu.addline('-------------------')
ratemenu.addline('->1. %s' % lang("nameasc", {}, playerlib.getPlayer(userid).get("lang")))
ratemenu.addline('->2. %s' % lang("namedesc", {}, playerlib.getPlayer(userid).get("lang")))
ratemenu.addline('->3. %s' % lang("votesasc", {}, playerlib.getPlayer(userid).get("lang")))
ratemenu.addline('->4. %s' % lang("votesdesc", {}, playerlib.getPlayer(userid).get("lang")))
ratemenu.addline('->5. %s' % lang("ratingasc", {}, playerlib.getPlayer(userid).get("lang")))
ratemenu.addline('->6. %s' % lang("ratingdesc", {}, playerlib.getPlayer(userid).get("lang")))
ratemenu.addline('-------------------')
ratemenu.addline('0. %s' % lang("close", {}, playerlib.getPlayer(userid).get("lang")))
ratemenu.addline('-------------------')
ratemenu.menuselect = sortMaps
ratemenu.send(userid)
def sortMaps(userid, choice, popup):
if choice == 1: sortMapsBy(userid, 1, 1)
if choice == 2: sortMapsBy(userid, 1)
if choice == 3: sortMapsBy(userid, 2)
if choice == 4: sortMapsBy(userid, 2, 1)
if choice == 5: sortMapsBy(userid, 3)
if choice == 6: sortMapsBy(userid, 3, 1)
def sortMapsBy(userid, type, reverse=0):
ratemenu = popuplib.easymenu("easyratemenu", "_popup_choice", showMapInfo)
ratemenu.settitle("RateMap v%s\n%s" % (str(ratemap_ver), lang("mapratings", {}, playerlib.getPlayer(userid).get("lang"))))
maps = {}
for map in ratemaps:
if type == 1: maps[map] = map
if type == 2: maps[map] = getVotes(map)
if type == 3: maps[map] = getRating(map)
maps = [(v, k) for k, v in maps.items()]
maps.sort()
if reverse == 1 and not type == 1: maps.reverse()
if reverse == 0 and type == 1: maps.reverse()
maps = [(k, v) for v, k in maps]
for map in maps:
if type == 1: ratemenu.addoption(map[0], map[0])
elif type == 2: ratemenu.addoption(map[0], "%s - %s %s" % (map[0], map[1], lang("totalvotes", {}, playerlib.getPlayer(userid).get("lang"))))
elif type == 3: ratemenu.addoption(map[0], "%s - %s/5.00" % (map[0], map[1]))
ratemenu.send(userid)
def showMapInfo(userid, map, popupid):
ratemenu = popuplib.create('ratemenu:%s' % map)
ratemenu.addline('RateMap v%s' % str(ratemap_ver))
ratemenu.addline('-------------------')
ratemenu.addline('%s: %s' % (lang("mapname", {}, playerlib.getPlayer(userid).get("lang")), map))
ratemenu.addline('%s: %s' % (lang("ratingtxt", {}, playerlib.getPlayer(userid).get("lang")), str(getRating(map)) + "/5.00"))
if es.getplayersteamid(userid) in ratemaps[map][0]: ratemenu.addline('%s: %s' % (lang("yourrating", {}, playerlib.getPlayer(userid).get("lang")), ratemaps[map][0][es.getplayersteamid(userid)]))
ratemenu.addline('%s: %s' % (lang("totalvotes", {}, playerlib.getPlayer(userid).get("lang")), str(getVotes(map))))
ratemenu.addline('%s: %s' % (lang("mapruns", {}, playerlib.getPlayer(userid).get("lang")), str(getRuns(map))))
ratemenu.addline('-------------------')
perbar = {}
total = getVotes(map)
for x in range(5):
if int(getStars(map, x+1)) > 0:
value = int(round(100/float(float(total)/float(getStars(map, x+1))) / 5.0))
else:
value = 0
testnum = 20
perbar[x+1] = "[" + "l" * value + " " * (testnum-value) + "]"
ratemenu.addline("%s (%s - %s %s)" % (perbar[5], lang("fivestars", {}, playerlib.getPlayer(userid).get("lang")), getStars(map, 5), lang("totalvotes", {}, playerlib.getPlayer(userid).get("lang"))))
ratemenu.addline("%s (%s - %s %s)" % (perbar[4], lang("fourstars", {}, playerlib.getPlayer(userid).get("lang")), getStars(map, 4), lang("totalvotes", {}, playerlib.getPlayer(userid).get("lang"))))
ratemenu.addline("%s (%s - %s %s)" % (perbar[3], lang("threestars", {}, playerlib.getPlayer(userid).get("lang")), getStars(map, 3), lang("totalvotes", {}, playerlib.getPlayer(userid).get("lang"))))
ratemenu.addline("%s (%s - %s %s)" % (perbar[2], lang("twostars", {}, playerlib.getPlayer(userid).get("lang")), getStars(map, 2), lang("totalvotes", {}, playerlib.getPlayer(userid).get("lang"))))
ratemenu.addline("%s (%s - %s %s)" % (perbar[1], lang("onestars", {}, playerlib.getPlayer(userid).get("lang")), getStars(map, 1), lang("totalvotes", {}, playerlib.getPlayer(userid).get("lang"))))
ratemenu.addline('-------------------')
if es.getplayersteamid(userid) in rm_admins:
ratemenu.addline('->1. %s' % lang("clearrating", {}, playerlib.getPlayer(userid).get("lang")))
ratemenu.menuselect = clearRating
ratemenu.addline('0. %s' % lang("close", {}, playerlib.getPlayer(userid).get("lang")))
ratemenu.addline('-------------------')
ratemenu.send(userid)
def clearRating(userid, choice, popup):
if choice == 1:
clearDatabase(popup.split(":")[1], userid)
def viewCommands():
userid = es.getcmduserid()
ratemenu = popuplib.create('ratemenu')
ratemenu.addline('RateMap v%s' % str(ratemap_ver))
ratemenu.addline('-------------------')
ratemenu.addline(lang("help", {}, playerlib.getPlayer(userid).get("lang")))
ratemenu.addline('-------------------')
for x in rm_helpcommands:
ratemenu.addline('->%s. %s' % (x, rm_helpcommands[x]))
ratemenu.addline('-------------------')
ratemenu.addline('0. %s' % lang("close", {}, playerlib.getPlayer(userid).get("lang")))
ratemenu.addline('-------------------')
ratemenu.menuselect = viewCommandHelp
ratemenu.send(userid)
def viewCommandHelp(userid, choice, popup):
if choice in range(1,5):
ratemenu = popuplib.create('ratemenu')
ratemenu.addline('RateMap v%s' % str(ratemap_ver))
ratemenu.addline('-------------------')
ratemenu.addline(rm_helpcommands[str(choice)])
ratemenu.addline('-------------------')
for x in {"1": [1,2,3], "2": [4,5,6,7,8], "3": [9,10,11], "4": [12,13,14]}[str(choice)]: ratemenu.addline('%s' % lang("rmh%d" % x, {}, playerlib.getPlayer(userid).get("lang")))
ratemenu.addline('-------------------')
ratemenu.addline('0. %s' % lang("close", {}, playerlib.getPlayer(userid).get("lang")))
ratemenu.addline('-------------------')
ratemenu.send(userid)
def ConvertDATtoDICT():
path = es.getAddonPath("ratemap") + "/data/"
if os.path.exists(path):
for file in os.listdir(path):
map = file.split(".")[0]
filepath = path + file
if not map in ratemaps:
mapkey = keyvalues.KeyValues(name=map)
mapkey.load(filepath)
ratemaps[map] = {}
ratemaps[map][0] = {}
for steamid in mapkey:
if not str(steamid) in ["fivestars", "fourstars", "threestars", "twostars", "onestars", "runs"]: ratemaps[map][0][str(steamid)] = mapkey[str(steamid)]["Rated"]
try: ratemaps[map][6] = int(mapkey["runs"]["count"])
except: ratemaps[map][6] = 0
try: ratemaps[map][5] = int(mapkey["fivestars"]["count"])
except: ratemaps[map][5] = 0
try: ratemaps[map][4] = int(mapkey["fourstars"]["count"])
except: ratemaps[map][4] = 0
try: ratemaps[map][3] = int(mapkey["threestars"]["count"])
except: ratemaps[map][3] = 0
try: ratemaps[map][2] = int(mapkey["twostars"]["count"])
except: ratemaps[map][2] = 0
try: ratemaps[map][1] = int(mapkey["onestars"]["count"])
except: ratemaps[map][1] = 0
try: os.remove(filepath)
except: pass
def RateMapClientAdmin():
userid = es.getcmduserid()
if es.getplayersteamid(userid) in rm_admins:
if es.getargc() > 1:
subcommand = es.getargv(1)
if subcommand == "clear":
if es.getargc() == 3:
clearDatabase(es.getargv(2), userid)
else: es.tell(userid, "#multi", "#green[RateMap] #lightgreenSyntax: #defaultRateMap clear <map>/all")
elif subcommand == "popup":
if es.getargc() >= 3:
if not es.getargv(2) == "1":
senduserid = es.getuserid(es.getargv(2))
if es.getargc() == 4: force = int(es.getargv(3))
else: force = 0
if es.exists("userid", senduserid):
if not hasRated(senduserid) or force == 1:
popupRating(senduserid)
es.tell(userid, "#multi", "#green[RateMap] #defaultSent RateMap popup to #lightgreen%s#default." % es.getplayername(senduserid))
else:
es.tell(userid, "#multi", "#green[RateMap] #defaultCouldn't find player: #lightgreen%s#default." % es.getargv(2))
else:
for senduserid in playerlib.getUseridList("#all"): popupRating(senduserid)
es.tell(userid, "#multi", "#green[RateMap] #defaultSent RateMap popup to all players.")
else:
for senduserid in playerlib.getUseridList("#all"):
if not hasRated(senduserid): popupRating(senduserid)
es.tell(userid, "#multi", "#green[RateMap] #defaultSent RateMap popup to all players.")
elif subcommand == "help" or subcommand == "commands":
es.tell(0, "#green[RateMap] #defaultCommands: #lightgreenhelp#default, #lightgreenclear#defualt, #lightgreenpopup#default.")
else:
es.tell(userid, "#multi", "#green[RateMap] #lightgreenSyntax: #defaultRateMap <command> [paramaters]")
def RateMapAdmin():
if es.getargc() > 1:
subcommand = es.getargv(1)
if subcommand == "clear":
if es.getargc() == 3:
clearDatabase(es.getargv(2), userid)
else: es.dbgmsg(0, "[RateMap] Syntax: RateMap clear <map>/all")
elif subcommand == "popup":
if es.getargc() >= 3:
if not es.getargv(2) == "1":
senduserid = es.getuserid(es.getargv(2))
if es.getargc() == 4: force = int(es.getargv(3))
else: force = 0
if es.exists("userid", senduserid):
if not hasRated(senduserid) or force == 1:
popupRating(senduserid)
es.dbgmsg(0, "[RateMap] Sent RateMap popup to %s." % es.getplayername(senduserid))
else:
es.dbgmsg(0, "[RateMap] Couldn't find player: %s." % es.getargv(2))
else:
for senduserid in playerlib.getUseridList("#all"): popupRating(senduserid)
es.dbgmsg(0, "[RateMap] Sent RateMap popup to all players.")
else:
for senduserid in playerlib.getUseridList("#all"):
if not hasRated(senduserid): popupRating(senduserid)
es.dbgmsg(0, "[RateMap] Sent RateMap popup to all players.")
elif subcommand == "help" or subcommand == "commands":
es.dbgmsg(0, "[RateMap] Commands: help, clear, popup")
else:
es.dbgmsg(0, "[RateMap] Syntax: RateMap <command> [paramaters]")
def clearDatabase(map, userid=None):
global ratemaps
if map.lower() == "all":
ratemaps = {}
if userid: es.tell(userid, "#multi", "#green[RateMap] #defaultThe map database has been cleared.")
else: es.dbgmsg(0, "[RateMap] The map database has been cleared.")
else:
try:
del ratemaps[map]
if userid: es.tell(userid, "#multi", "#green[RateMap] #defaultDeleted #lightgreen%s#default from the map database." % map)
else: es.dbgmsg(0, "[RateMap] Deleted %s from the map database." % map)
except:
if userid: es.tell(userid, "#multi", "#green[RateMap] #defaultCould not find map: #lightgreen%s#default." % map)
else: es.dbgmsg(0, "[RateMap] Could not find map: %s." % map)
saveMaps()
def printMaplist():
prefix = ""
if es.getargc() > 1:
prefix = es.getargs()
es.dbgmsg(0, "---------------")
es.dbgmsg(0, "RateMap Maplist")
es.dbgmsg(0, "---------------")
if len(ratemaps) > 0:
for map in ratemaps:
if map.startswith(prefix):
es.dbgmsg(0, "%s: %s/5.00 with %s votes" % (map, getRating(map), getVotes(map)))
else:
es.dbmsg(0, "No maps in database.")
es.dbgmsg(0, "---------------")